Jason Keller
Explorer
- Joined
- Apr 2, 2015
- Messages
- 61
Just throwing this out there since I noticed it (and largely caught me off guard). I enabled dedup on a dataset (yes I have enough memory for this test, and DDT fits comfortably in the 25% metadata space in ARC)...and then I kicked off some clone operations in VMware on the ZVOL...
Currently using SHA256 without verify. My intention was to see if it would significantly lessen the writes to the pool to increase performance and/or save writes to the pool by not writing duplicate data (very useful for an all SSD pool where write cycles are at a premium). As this will mainly be a swift recovery/test environment utilizing template-deployed clones in VMware, I am seeing very high (+3.25:1) dedup ratios, with dedup+compression ratios hitting +4.88:1. So dedup is potentially useful for me on both space-saving and write-lessening levels.
I am a bit puzzled as to where these pool writes are coming from, as this is entirely duplicate data. I'm not sure if this is by design or a bug. My understanding was that ZFS doesn't commit writes to the pool that are matched as duplicates in the DDT.
Code:
capacity operations bandwidth
pool alloc free read write read write
-------------------------------------- ----- ----- ----- ----- ----- -----
dpool 36.2G 1.59T 0 181K 0 724M
mirror 6.02G 272G 0 28.8K 0 115M
gptid/8c26088f-d8a9-11e4-8f6f-5cf3fc4c16c0 - - 0 919 0 115M
gptid/8cd38744-d8a9-11e4-8f6f-5cf3fc4c16c0 - - 0 957 0 120M
mirror 6.03G 272G 0 32.0K 0 128M
gptid/8d642fac-d8a9-11e4-8f6f-5cf3fc4c16c0 - - 0 1023 0 128M
gptid/8dce09c1-d8a9-11e4-8f6f-5cf3fc4c16c0 - - 0 1.25K 0 159M
mirror 6.03G 272G 0 30.1K 0 121M
gptid/8e39b615-d8a9-11e4-8f6f-5cf3fc4c16c0 - - 0 1.18K 0 151M
gptid/8eaba4d9-d8a9-11e4-8f6f-5cf3fc4c16c0 - - 0 964 0 121M
mirror 6.04G 272G 0 27.6K 0 111M
gptid/8f3efbad-d8a9-11e4-8f6f-5cf3fc4c16c0 - - 0 1.12K 0 144M
gptid/8ff4afa1-d8a9-11e4-8f6f-5cf3fc4c16c0 - - 0 884 0 111M
mirror 6.02G 272G 0 31.4K 0 126M
gptid/907bf327-d8a9-11e4-8f6f-5cf3fc4c16c0 - - 0 1.21K 0 155M
gptid/c02ca290-d8b8-11e4-96f0-5cf3fc4c16c0 - - 0 1004 0 126M
mirror 6.02G 272G 0 31.0K 0 124M
gptid/c47779b9-dc60-11e4-908f-5cf3fc4c16c0 - - 0 992 0 124M
gptid/b6e90ead-d8a9-11e4-8f6f-5cf3fc4c16c0 - - 0 1.18K 0 151M
cache - - - - - -
gptid/351cd1d2-dcb0-11e4-908f-5cf3fc4c16c0 32.5G 27.1G 0 0 0 0
-------------------------------------- ----- ----- ----- ----- ----- -----
capacity operations bandwidth
pool alloc free read write read write
-------------------------------------- ----- ----- ----- ----- ----- -----
dpool 38.5G 1.59T 0 766 0 5.82M
mirror 6.41G 272G 0 130 0 1018K
gptid/8c26088f-d8a9-11e4-8f6f-5cf3fc4c16c0 - - 0 112 0 1018K
gptid/8cd38744-d8a9-11e4-8f6f-5cf3fc4c16c0 - - 0 105 0 1018K
mirror 6.42G 272G 0 137 0 1.00M
gptid/8d642fac-d8a9-11e4-8f6f-5cf3fc4c16c0 - - 0 137 0 1.00M
gptid/8dce09c1-d8a9-11e4-8f6f-5cf3fc4c16c0 - - 0 137 0 1.00M
mirror 6.42G 272G 0 179 0 1.35M
gptid/8e39b615-d8a9-11e4-8f6f-5cf3fc4c16c0 - - 0 179 0 1.35M
gptid/8eaba4d9-d8a9-11e4-8f6f-5cf3fc4c16c0 - - 0 177 0 1.35M
mirror 6.44G 272G 0 108 0 866K
gptid/8f3efbad-d8a9-11e4-8f6f-5cf3fc4c16c0 - - 0 108 0 866K
gptid/8ff4afa1-d8a9-11e4-8f6f-5cf3fc4c16c0 - - 0 108 0 866K
mirror 6.42G 272G 0 73 0 587K
gptid/907bf327-d8a9-11e4-8f6f-5cf3fc4c16c0 - - 0 73 0 587K
gptid/c02ca290-d8b8-11e4-96f0-5cf3fc4c16c0 - - 0 71 0 571K
mirror 6.42G 272G 0 135 0 1.05M
gptid/c47779b9-dc60-11e4-908f-5cf3fc4c16c0 - - 0 135 0 1.05M
gptid/b6e90ead-d8a9-11e4-8f6f-5cf3fc4c16c0 - - 0 134 0 1.04M
cache - - - - - -
gptid/351cd1d2-dcb0-11e4-908f-5cf3fc4c16c0 32.5G 27.1G 0 0 0 0
-------------------------------------- ----- ----- ----- ----- ----- -----
capacity operations bandwidth
pool alloc free read write read write
-------------------------------------- ----- ----- ----- ----- ----- -----
dpool 35.1G 1.59T 0 0 0 0
mirror 5.84G 272G 0 0 0 0
gptid/8c26088f-d8a9-11e4-8f6f-5cf3fc4c16c0 - - 0 0 0 0
gptid/8cd38744-d8a9-11e4-8f6f-5cf3fc4c16c0 - - 0 0 0 0
mirror 5.84G 272G 0 0 0 0
gptid/8d642fac-d8a9-11e4-8f6f-5cf3fc4c16c0 - - 0 0 0 0
gptid/8dce09c1-d8a9-11e4-8f6f-5cf3fc4c16c0 - - 0 0 0 0
mirror 5.84G 272G 0 0 0 0
gptid/8e39b615-d8a9-11e4-8f6f-5cf3fc4c16c0 - - 0 0 0 0
gptid/8eaba4d9-d8a9-11e4-8f6f-5cf3fc4c16c0 - - 0 0 0 0
mirror 5.85G 272G 0 0 0 0
gptid/8f3efbad-d8a9-11e4-8f6f-5cf3fc4c16c0 - - 0 0 0 0
gptid/8ff4afa1-d8a9-11e4-8f6f-5cf3fc4c16c0 - - 0 0 0 0
mirror 5.85G 272G 0 0 0 0
gptid/907bf327-d8a9-11e4-8f6f-5cf3fc4c16c0 - - 0 0 0 0
gptid/c02ca290-d8b8-11e4-96f0-5cf3fc4c16c0 - - 0 0 0 0
mirror 5.85G 272G 0 0 0 0
gptid/c47779b9-dc60-11e4-908f-5cf3fc4c16c0 - - 0 0 0 0
gptid/b6e90ead-d8a9-11e4-8f6f-5cf3fc4c16c0 - - 0 0 0 0
cache - - - - - -
gptid/351cd1d2-dcb0-11e4-908f-5cf3fc4c16c0 32.5G 27.1G 0 0 0 0
-------------------------------------- ----- ----- ----- ----- ----- -----
capacity operations bandwidth
pool alloc free read write read write
-------------------------------------- ----- ----- ----- ----- ----- -----
dpool 32.6G 1.60T 0 0 0 0
mirror 5.44G 273G 0 0 0 0
gptid/8c26088f-d8a9-11e4-8f6f-5cf3fc4c16c0 - - 0 0 0 0
gptid/8cd38744-d8a9-11e4-8f6f-5cf3fc4c16c0 - - 0 0 0 0
mirror 5.43G 273G 0 0 0 0
gptid/8d642fac-d8a9-11e4-8f6f-5cf3fc4c16c0 - - 0 0 0 0
gptid/8dce09c1-d8a9-11e4-8f6f-5cf3fc4c16c0 - - 0 0 0 0
mirror 5.42G 273G 0 0 0 0
gptid/8e39b615-d8a9-11e4-8f6f-5cf3fc4c16c0 - - 0 0 0 0
gptid/8eaba4d9-d8a9-11e4-8f6f-5cf3fc4c16c0 - - 0 0 0 0
mirror 5.45G 273G 0 0 0 0
gptid/8f3efbad-d8a9-11e4-8f6f-5cf3fc4c16c0 - - 0 0 0 0
gptid/8ff4afa1-d8a9-11e4-8f6f-5cf3fc4c16c0 - - 0 0 0 0
mirror 5.44G 273G 0 0 0 0
gptid/907bf327-d8a9-11e4-8f6f-5cf3fc4c16c0 - - 0 0 0 0
gptid/c02ca290-d8b8-11e4-96f0-5cf3fc4c16c0 - - 0 0 0 0
mirror 5.46G 273G 0 0 0 0
gptid/c47779b9-dc60-11e4-908f-5cf3fc4c16c0 - - 0 0 0 0
gptid/b6e90ead-d8a9-11e4-8f6f-5cf3fc4c16c0 - - 0 0 0 0
cache - - - - - -
gptid/351cd1d2-dcb0-11e4-908f-5cf3fc4c16c0 32.5G 27.1G 0 0 0 0
-------------------------------------- ----- ----- ----- ----- ----- -----
Currently using SHA256 without verify. My intention was to see if it would significantly lessen the writes to the pool to increase performance and/or save writes to the pool by not writing duplicate data (very useful for an all SSD pool where write cycles are at a premium). As this will mainly be a swift recovery/test environment utilizing template-deployed clones in VMware, I am seeing very high (+3.25:1) dedup ratios, with dedup+compression ratios hitting +4.88:1. So dedup is potentially useful for me on both space-saving and write-lessening levels.
I am a bit puzzled as to where these pool writes are coming from, as this is entirely duplicate data. I'm not sure if this is by design or a bug. My understanding was that ZFS doesn't commit writes to the pool that are matched as duplicates in the DDT.