Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
linux_faq:deduplication_win2012r2_vs_ubuntuzfs [2017/04/25 06:36] – [Windows 2012R2 + NTFS + deduplication] admin | linux_faq:deduplication_win2012r2_vs_ubuntuzfs [2019/03/13 08:14] (current) – [Выводы] admin | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | Сравнение дедупликации **Windows 2012 R2**, **ZFS**, **BTRFS** и **SDFS** на базе **Ubuntu 16.04** | ||
+ | ====== Условия тестирования ====== | ||
+ | К виртуальным машинам на базе | ||
+ | В **Windows 2012 R2** просто создан том и включена дедупликация. \\ | ||
+ | В **Ubuntu** включаются различные варианты настроек файловых систем. \\ | ||
+ | После этого тома заполняются одинаковым набором данных - архивы и дистрибутивы. То есть типичная файлопомойка. | ||
+ | На **BTRFS** дедупликация выполняется после записи данных с помощью **duperemove**. | ||
+ | \\ | ||
+ | \\ | ||
+ | Если отдельно не указано - на всех файловых системах используются дефолтные настройки. | ||
+ | |||
+ | ====== ZFS + deduplication ====== | ||
+ | |||
+ | Перед заполнением данными на **ZFS** включена дедупликация со сжатием: | ||
+ | zfs set compression=on zroot | ||
+ | zfs set dedup=on zroot | ||
+ | | ||
+ | < | ||
+ | sudo zfs get used, | ||
+ | NAME | ||
+ | testdedup | ||
+ | testdedup | ||
+ | testdedup | ||
+ | |||
+ | df -h | ||
+ | Filesystem | ||
+ | testdedup | ||
+ | </ | ||
+ | ====== ZFS + deduplication + compression====== | ||
+ | < | ||
+ | NAME | ||
+ | testdedup | ||
+ | testdedup | ||
+ | testdedup | ||
+ | |||
+ | df -h | ||
+ | Filesystem | ||
+ | testdedup | ||
+ | </ | ||
+ | |||
+ | ====== ZFS + deduplication, | ||
+ | sudo zfs set dedup=on testdedup | ||
+ | sudo zfs set recordsize=4k testdedup | ||
+ | Производительность на запись упала очень сильно. С **recordsize=4k** ZFS как файлопомойка не эффективна. | ||
+ | |||
+ | ====== ZFS + deduplication + compression , recordsize=64k====== | ||
+ | sudo zfs set dedup=on testdedup | ||
+ | sudo zfs set compress=on testdedup | ||
+ | sudo zfs set recordsize=64k testdedup | ||
+ | Результат: | ||
+ | < | ||
+ | sudo zfs get used, | ||
+ | NAME | ||
+ | testdedup | ||
+ | testdedup | ||
+ | testdedup | ||
+ | testdedup | ||
+ | |||
+ | df -h | ||
+ | Filesystem | ||
+ | testdedup | ||
+ | </ | ||
+ | |||
+ | ====== BTRFS + duperemove v0.11.beta4 ====== | ||
+ | Связка **BTRFS** + **duperemove** | ||
+ | < | ||
+ | sudo btrfs filesystem df -h /mnt | ||
+ | Data, single: total=48.73GiB, | ||
+ | System, single: total=4.00MiB, | ||
+ | Metadata, single: total=264.00MiB, | ||
+ | GlobalReserve, | ||
+ | |||
+ | df -h | ||
+ | Filesystem | ||
+ | / | ||
+ | </ | ||
+ | |||
+ | ====== BTRFS + compress-force=zlib + duperemove v0.11.beta4 ====== | ||
+ | **BTRFS** смонтирован с опцией **compress-force**, | ||
+ | < | ||
+ | System, single: total=4.00MiB, | ||
+ | Data+Metadata, | ||
+ | GlobalReserve, | ||
+ | |||
+ | df -h | ||
+ | Filesystem | ||
+ | / | ||
+ | </ | ||
+ | |||
+ | |||
+ | ====== ext4 + SDFS default settings ====== | ||
+ | wget http:// | ||
+ | sudo dpkg -i sdfs-latest.deb | ||
+ | sudo apt-get -f install | ||
+ | sudo su | ||
+ | sudo mkfs.ext4 /dev/xvdb | ||
+ | sudo mkdir --parents /opt/sdfs/ | ||
+ | sudo mount /dev/xvdb /opt/sdfs/ | ||
+ | |||
+ | Вот объем незанятного места: | ||
+ | df -h | ||
+ | | ||
+ | Filesystem | ||
+ | / | ||
+ | |||
+ | Создаем том: | ||
+ | sudo mkfs.sdfs --volume-name=pool0 --volume-capacity=50GB | ||
+ | sudo mount.sdfs pool0 /mnt | ||
+ | Настройки по-умолчанию получились такие: | ||
+ | io chunk-size=" | ||
+ | dedup-files=" | ||
+ | hash-type=" | ||
+ | **hash-type=" | ||
+ | |||
+ | Вот результаты после заливки файлов: | ||
+ | df -h | ||
+ | Filesystem | ||
+ | / | ||
+ | sdfs:/ | ||
+ | И статистика по тому: | ||
+ | < | ||
+ | Files : 3578 | ||
+ | Volume Capacity : 50 GB | ||
+ | Volume Current Logical Size : 46.84 GB | ||
+ | Volume Max Percentage Full : 95.0% | ||
+ | Volume Duplicate Data Written : 8.76 GB | ||
+ | Unique Blocks Stored: 38.3 GB | ||
+ | Unique Blocks Stored after Compression : 38.4 GB | ||
+ | Cluster Block Copies : 2 | ||
+ | Volume Virtual Dedup Rate (Unique Blocks Stored/ | ||
+ | Volume Actual Storage Savings (Compressed Unique Blocks Stored/ | ||
+ | Compression Rate: -0.25% </ | ||
+ | |||
+ | ====== BTRFS + compression=zlib + SDFS ====== | ||
+ | Данные SDFS размещены на томе **BTRFS**, на котором включена компрессия **zlib**. \\ | ||
+ | **SDFS**: | ||
+ | io chunk-size=" | ||
+ | dedup-files=" | ||
+ | hash-type=" | ||
+ | |||
+ | df -h | ||
+ | Filesystem | ||
+ | / | ||
+ | sdfs:/ | ||
+ | |||
+ | < | ||
+ | sdfscli --volume-info | ||
+ | Files : 3578 | ||
+ | Volume Capacity : 50 GB | ||
+ | Volume Current Logical Size : 46.84 GB | ||
+ | Volume Max Percentage Full : 95.0% | ||
+ | Volume Duplicate Data Written : 8.76 GB | ||
+ | Unique Blocks Stored: 38.3 GB | ||
+ | Unique Blocks Stored after Compression : 38.4 GB | ||
+ | Cluster Block Copies : 2 | ||
+ | Volume Virtual Dedup Rate (Unique Blocks Stored/ | ||
+ | Volume Actual Storage Savings (Compressed Unique Blocks Stored/ | ||
+ | Compression Rate: -0.25% | ||
+ | </ | ||
+ | |||
+ | Производительность: | ||
+ | < | ||
+ | dd if=/ | ||
+ | 1478190+0 records in | ||
+ | 1478190+0 records out | ||
+ | 24218664960 bytes (24 GB, 23 GiB) copied, 148.419 s, 163 MB/s | ||
+ | |||
+ | Tasks: 586 total, | ||
+ | %Cpu(s): 43.3 us, 34.3 sy, 0.0 ni, 21.8 id, 0.0 wa, 0.0 hi, 0.2 si, 0.4 st | ||
+ | KiB Mem : 4037716 total, | ||
+ | KiB Swap: 1171452 total, | ||
+ | |||
+ | PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND | ||
+ | 24084 root 20 0 3943336 768132 | ||
+ | 24251 root 20 | ||
+ | 24342 user 20 | ||
+ | </ | ||
+ | ====== BTRFS + SDFS + sdfs compression LZ4 ====== | ||
+ | sudo mkfs.sdfs --volume-name=pool0 --volume-capacity=50GB --chunk-store-compress=true --compress-metadata=true | ||
+ | sudo mount.sdfs pool0 /mnt | ||
+ | | ||
+ | После заливки файлов: | ||
+ | < | ||
+ | df -h | ||
+ | Filesystem | ||
+ | / | ||
+ | sdfs:/ | ||
+ | |||
+ | |||
+ | sdfscli --volume-info | ||
+ | Files : 3578 | ||
+ | Volume Capacity : 50 GB | ||
+ | Volume Current Logical Size : 46.84 GB | ||
+ | Volume Max Percentage Full : 95.0% | ||
+ | Volume Duplicate Data Written : 8.76 GB | ||
+ | Unique Blocks Stored: 38.3 GB | ||
+ | Unique Blocks Stored after Compression : 36.9 GB | ||
+ | Cluster Block Copies : 2 | ||
+ | Volume Virtual Dedup Rate (Unique Blocks Stored/ | ||
+ | Volume Actual Storage Savings (Compressed Unique Blocks Stored/ | ||
+ | Compression Rate: 3.65% | ||
+ | </ | ||
+ | |||
+ | Производительность: | ||
+ | < | ||
+ | dd if=/ | ||
+ | 497921+0 records in | ||
+ | 497921+0 records out | ||
+ | 8157937664 bytes (8.2 GB, 7.6 GiB) copied, 52.3913 s, 156 MB/s | ||
+ | |||
+ | Tasks: 582 total, | ||
+ | %Cpu(s): 47.4 us, 34.0 sy, 0.0 ni, 16.4 id, 0.0 wa, 0.0 hi, 0.0 si, 2.2 st | ||
+ | KiB Mem : 4037716 total, | ||
+ | KiB Swap: 1171452 total, | ||
+ | |||
+ | PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND | ||
+ | 20824 root 20 0 4020188 1.226g 319568 S 151.3 31.8 20:51.12 jsvc | ||
+ | 23450 root 20 | ||
+ | 23487 user 20 | ||
+ | </ | ||
+ | |||
+ | ====== BTRFS + SDFS - no compression ====== | ||
+ | После заливки файлов: | ||
+ | < | ||
+ | Filesystem | ||
+ | / | ||
+ | sdfs:/ | ||
+ | |||
+ | |||
+ | sdfscli --volume-info | ||
+ | Files : 3578 | ||
+ | Volume Capacity : 50 GB | ||
+ | Volume Current Logical Size : 46.84 GB | ||
+ | Volume Max Percentage Full : 95.0% | ||
+ | Volume Duplicate Data Written : 8.76 GB | ||
+ | Unique Blocks Stored: 38.3 GB | ||
+ | Unique Blocks Stored after Compression : 38.4 GB | ||
+ | Cluster Block Copies : 2 | ||
+ | Volume Virtual Dedup Rate (Unique Blocks Stored/ | ||
+ | Volume Actual Storage Savings (Compressed Unique Blocks Stored/ | ||
+ | Compression Rate: -0.25% | ||
+ | </ | ||
+ | |||
+ | Производительность: | ||
+ | < | ||
+ | 401942+0 records in | ||
+ | 401942+0 records out | ||
+ | 6585417728 bytes (6.6 GB, 6.1 GiB) copied, 41.545 s, 159 MB/s | ||
+ | |||
+ | |||
+ | |||
+ | Tasks: 581 total, | ||
+ | %Cpu(s): 44.8 us, 35.8 sy, 0.0 ni, 18.9 id, 0.2 wa, 0.0 hi, 0.0 si, 0.3 st | ||
+ | KiB Mem : 4037716 total, | ||
+ | KiB Swap: 1171452 total, | ||
+ | |||
+ | PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND | ||
+ | 3024 root 20 0 4008900 1.273g 320148 S 143.2 33.1 18:12.32 jsvc | ||
+ | 5337 root 20 | ||
+ | 5345 user 20 | ||
+ | </ | ||
+ | |||
+ | ====== Windows 2012R2 + NTFS + deduplication ====== | ||
+ | В то же время с тем же набором данных на NTFS: | ||
+ | < | ||
+ | PS C: | ||
+ | |||
+ | |||
+ | Volume | ||
+ | VolumeId | ||
+ | Capacity | ||
+ | FreeSpace | ||
+ | UsedSpace | ||
+ | UnoptimizedSize | ||
+ | SavedSpace | ||
+ | SavingsRate | ||
+ | OptimizedFilesCount | ||
+ | OptimizedFilesSize | ||
+ | OptimizedFilesSavingsRate | ||
+ | InPolicyFilesCount | ||
+ | InPolicyFilesSize | ||
+ | LastOptimizationTime | ||
+ | LastOptimizationResult | ||
+ | LastOptimizationResultMessage | ||
+ | LastGarbageCollectionTime | ||
+ | LastGarbageCollectionResult | ||
+ | LastGarbageCollectionResultMessage : There are no actions associated with this job. | ||
+ | LastScrubbingTime | ||
+ | LastScrubbingResult | ||
+ | LastScrubbingResultMessage | ||
+ | </ | ||
+ | |||
+ | ====== Windows 2012R2 + NTFS + compression + deduplication ====== | ||
+ | А вот результат, | ||
+ | < | ||
+ | PS C: | ||
+ | |||
+ | |||
+ | Volume | ||
+ | VolumeId | ||
+ | Capacity | ||
+ | FreeSpace | ||
+ | UsedSpace | ||
+ | UnoptimizedSize | ||
+ | SavedSpace | ||
+ | SavingsRate | ||
+ | OptimizedFilesCount | ||
+ | OptimizedFilesSize | ||
+ | OptimizedFilesSavingsRate | ||
+ | InPolicyFilesCount | ||
+ | InPolicyFilesSize | ||
+ | LastOptimizationTime | ||
+ | LastOptimizationResult | ||
+ | LastOptimizationResultMessage | ||
+ | </ | ||
+ | |||
+ | Эффективность немного выше, чем без компрессии. | ||
+ | ====== Выводы ====== | ||
+ | Эффективность дедупликации **Windows 2012R2** существенно превышает эффективность дедупликации **ZFS** и **BTRFS**. На одинаковом наборе данных дедупликация **Windows 2012R2** сохраняет больше места, чем **ZFS** и **BTRFS**, которые показывают примерно одинаковую эффективность дедупликации. \\ | ||
+ | Конкурировать с дедупликацией **Windows** может только **SDFS** - http:// | ||
+ | |||
+ | Важно отметить, | ||
+ | |||
+ | Даже на плохосжимаемых данных компрессия **ZFS** дает больший выигрыш, | ||
+ | |||
+ | В результате лидером по количеству сэкономленного места, по моим наблюдениям, |