Can mimir be configured to use local SSD and HDD? #10280
-
I have two servers. One is running prometheus and mimir and has a 500GB nvme, the other has plenty of HDDs in a RAID system. The mimir server can reach the data volume via a folder mounted over the network. I mainly use it to store data of multiple solar inverters, so I need the long-term data (multiple years). My idea was to configure retention to drop resolution after 1y to ~30 minute values, which is good enough. But also, it would be great if I could configure mimir to store the first year on its host on the fast nvme and push old data to the HDD cluster. Is this possible? (My setup is running mimir from the distro packages, meaning no helm / docker involved, so I cannot do fancy cluster stuff) |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 3 replies
-
That's not how Mimir works, unfortunately. It require cloud object storage. You can use something like Minio for that, but maybe whole architecture will be too complex in your case. |
Beta Was this translation helpful? Give feedback.
-
How many is multiple? A couple, tens or thousands?
If the answer to the response above is tens, I wouldn't care about dropping the resolution at all. Also note that Mimir doesn't the downsampling feature. You should consider having recording rules that perform "downsampling".
IMO you're optimizing too early. Also note that Mimir will cache the query results, you can run a memcached with your nvme as additional storage, IMO that will be a much more efficient solution than using your nvme for raw blocks. Finally, as @deniszh points out, you should run Minio or something like that. Mimir has to talk to an object-storage-ish API. |
Beta Was this translation helpful? Give feedback.
I'll respond in reverse order:
It definitely works, but you need a layer of abstraction on top of the filesystem. Mimir focuses on implementing just one storage API: object storage. If we had to support a distributed filesystem on top of multiple machines with HDDs we'd just be building another Minio, and there's already an awesome project that does it very well: Minio.
Is it so big? We have it in our docker-compose for development, it doesn't really ask so much.