Good morning folks; I have a pool comprised of spinning hard drives, and I know there are places I can put SSDs in my pool to improve performance:
- SLOG: buffer newly written blocks to the SSD so we can acknowledge the write to the client fater, then flush that buffer to the HDDs at our leisure
- L2ARC: utility is debated, but allows you to cache frequently used blocks on faster storage automatically based on the number of cache misses
- Special Metadata VDEV: store filesystem metadata on separate SSD instead of alongside the files
- bonus: separate, faster pool for cache data (e.g. an application wants a separate “cache” directory for data it wants to have available quickly, so maybe that should go on a separate, all-SSD pool?)
My problem is – if I bought a pair of SSDs to mirror for each one of those use cases it’d get very expensive and I’d start to run out of PCIe lanes. So I’m thinking about buying just two or three NVMe SSDs, and partitioning them (e.g. partition 1 on each drive is the L2ARC, partition 2 is for metadata, partition 3 is SLOG and partition 4 is the separate, faster pool.)
Are there any performance/longevity pitfalls I should consider in that approach? Are there any of those cases that really need to be their own separate drives?