Replies: 5 comments 3 replies
-
DRAID by design can't allocate small blocks. I don't know that code path exactly, but guess it may propagate to compression layer. Increase of recordsize should in theory minimize the difference. |
Beta Was this translation helpful? Give feedback.
-
It is not that.
Again, exactly the same data on a draid vs a zraid2 with zstd as compression. |
Beta Was this translation helpful? Give feedback.
-
It can't be the same between 1M and 512 bytes. The last should explode in size by order of magnitude, since neither RAIDZ nor especially DRAID can store blocks that small. |
Beta Was this translation helpful? Give feedback.
-
Ah, I see 2.1 branch still default zfs_max_recordsize parameter to 1MB, but it can be increased up to 16MB, same as it is on master. |
Beta Was this translation helpful? Give feedback.
-
@aheahe this behavior is expected for dRAID and described in the
|
Beta Was this translation helpful? Give feedback.
-
I have create 4 testpools.
zraid0
zraid1
zraid2
draid
I have set compression=zstd on all 4 pools.
I then copyed the same dataset to all 4 pools.
On the draid pool, the USED space is larger and the compressratio is smaller, which seems weird
NAME USED AVAIL REFER MOUNTPOINT
dr-test/prox190-rpool-root-pve1 9.71G 41.1G 9.71G /dr-test/prox190-rpool-root-pve1
zraid0/prox190-rpool-root-pve1 7.11G 30.7G 7.11G /zraid0/prox190-rpool-root-pve1
zraid1/prox190-rpool-root-pve1 7.11G 38.9G 7.11G /zraid1/prox190-rpool-root-pve1
zraid2/prox190-rpool-root-pve1 7.11G 38.9G 7.11G /zraid2/prox190-rpool-root-pve1
Compression is ZSTD on all 4 pools.
But the compressratio is diffrent
zfs get compressratio dr-test/prox190-rpool-root-pve1 zraid0/prox190-rpool-root-pve1 zraid1/prox190-rpool-root-pve1 zraid2/prox190-rpool-root-pve1
NAME PROPERTY VALUE SOURCE
dr-test/prox190-rpool-root-pve1 compressratio 1.24x -
zraid0/prox190-rpool-root-pve1 compressratio 1.37x -
zraid1/prox190-rpool-root-pve1 compressratio 1.37x -
zraid2/prox190-rpool-root-pve1 compressratio 1.37x -
` zpool status zraid0 zraid1 zraid2 dr-test
pool: dr-test
state: ONLINE
config:
errors: No known data errors
pool: zraid0
state: ONLINE
config:
errors: No known data errors
pool: zraid1
state: ONLINE
config:
errors: No known data errors
pool: zraid2
state: ONLINE
config:
`
Is there a logical explanation to this - or is it a bug?
All pools created same option with "-o ashift=12"
Best Regards
Beta Was this translation helpful? Give feedback.
All reactions