Suggestions for planning out VDEVs and ZPools

Notice: Page may contain affiliate links for which we may earn a small commission through services like Amazon Affiliates or Skimlinks.

Hello_User

New Member
Apr 9, 2023
2
0
1
Hello,
I'm trying to migrate from tiered Windows Storage Spaces volume where I have 2 HDD's (3TB and 4TB) in a slow tier and a 512GB SSD in a fast tier.
Windows is, and TrueNAS will be, virtualized with disks connected to a passed-through HBA. Performance is fairly important as I have VM's that store data (not boot or os data) on iSCSI disks. The amount of RAM available to assign to the TrueNAS VM is about 40GB. Storage Spaces deduplication saves me about 1.5TB. I'm wondering if there is a way to calculate how much savings compression would net me considering I don't have enough memory for zfs dedupe. I'd rather have more storage than disk redundancy so I'm assuming I can place each of the HDD's in their own VDEV and place those VDEV's in a pool.

I'm having trouble figuring out where the SSD should fit in. Ideally I would add it to a "tiered" vdev so I have 7.5TB of raw writable storage but I don't think that's possible in zfs. I probably also shouldn't make it an L2ARC because of the aforementioned RAM problem and because it feels like a waste of SSD storage. SLOG also feels like a waste of storage. I'm planning to add a 32GB virtual disk backed by a gen 4 nvme drive for that purpose.
 

mattventura

Active Member
Nov 9, 2022
443
210
43
To answer the question directly - no, ZFS doesn't do true tiered storage. The best option if you really want the SSD to act as additional storage rather than just a cache would be to use it as a dedicated metadata device.

You can also just use it as an L2ARC and implement a sort of faux-tiering by using the 'secondarycache' property to control which datasets are eligible for L2 caching. You can also use the same drive for multiple purposes - there's no reason to use a massive SLOG, so you can use a small portion of the SSD for SLOG and the rest for metadata or cache.

If you already have the data on a zpool, you can estimate the effectiveness of compression and/or dedup with `zdb -S pool`. But as long as you have sufficient CPU, compression is typically desirable for performance because it means less physical disk I/O is needed for the same amount of user-facing I/O.
 

Hello_User

New Member
Apr 9, 2023
2
0
1
To answer the question directly - no, ZFS doesn't do true tiered storage. The best option if you really want the SSD to act as additional storage rather than just a cache would be to use it as a dedicated metadata device.

You can also just use it as an L2ARC and implement a sort of faux-tiering by using the 'secondarycache' property to control which datasets are eligible for L2 caching. You can also use the same drive for multiple purposes - there's no reason to use a massive SLOG, so you can use a small portion of the SSD for SLOG and the rest for metadata or cache.

If you already have the data on a zpool, you can estimate the effectiveness of compression and/or dedup with `zdb -S pool`. But as long as you have sufficient CPU, compression is typically desirable for performance because it means less physical disk I/O is needed for the same amount of user-facing I/O.
Hey, thanks for the response.

Using the SSD for multiple purposes seems like the way to go for me. From what I understand, it's strongly discouraged to partition up a disk and use it for multiple things like this though. With that said, I don't really see a better way forward at this time.