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.