rvassar
Guru
- Joined
- May 2, 2018
- Messages
- 972
So I'm shuffling my storage pools around. Moving infrequently accessed long term storage / media / photos, etc... to a RAIDz pool, block storage and things with parallel access to a dedicated block storage mirror pool, and lastly trying to get my security camera's off of either, and on to their own pool. One of the things I've been watching is the pool fragmentation percentage on the pool with the cameras. I suspect I'm suffering from the ZFS "gang block" fragmentation problem, with my pool fragmentation running in the high 30% range. Besides making swiss cheese of my pool, the problem with gang blocks is they way the whole gang block get loaded back into memory whenever any component fragment of the gang is needed. This hits the IOPS budget by forcing extra data reads, and consumes extra memory in the ARC.
So I'm considering adding a ZIL / SLOG device to help ZFS perform fsync() and still aggregate the writes in unfragmented allocations on the storage pool. I have a couple small Intel S3500 series SSD's I can add, which have PFP capacitors. They won't be fast by any means, but they should suffice. Back in the day, adding a ZIL was a "mirror is the only best practice" kind of deal, as loss of the ZIL caused all kinds of problems. I wondering if I can add one ZIL to the camera pool, and one to the block storage pool and forego mirroring.
My questions:
1. I'm under the impression, possibly incorrectly, that running a ZIL without redundancy is less risky on a modern OpenZFS filesystem. Is this true?
2. Will there be any ARC benefit from a reduction in fragmentation? The camera pool with be almost write-only, and very rarely read from. The block storage pool will see multiple clients.
So I'm considering adding a ZIL / SLOG device to help ZFS perform fsync() and still aggregate the writes in unfragmented allocations on the storage pool. I have a couple small Intel S3500 series SSD's I can add, which have PFP capacitors. They won't be fast by any means, but they should suffice. Back in the day, adding a ZIL was a "mirror is the only best practice" kind of deal, as loss of the ZIL caused all kinds of problems. I wondering if I can add one ZIL to the camera pool, and one to the block storage pool and forego mirroring.
My questions:
1. I'm under the impression, possibly incorrectly, that running a ZIL without redundancy is less risky on a modern OpenZFS filesystem. Is this true?
2. Will there be any ARC benefit from a reduction in fragmentation? The camera pool with be almost write-only, and very rarely read from. The block storage pool will see multiple clients.