从 Oracle® Solaris 10 转换至 Oracle Solaris 11.2

退出打印视图

更新时间: 2014 年 12 月
 
 

ZFS 重复数据删除要求

可以使用重复数据删除 (dedup) 属性来删除 ZFS 文件系统中的冗余数据。如果文件系统启用了 dedup 属性,则会以同步方式删除重复的数据块。结果是仅存储唯一的数据,在文件之间共享通用组件。例如:

# zfs set dedup=on tank/home

只有在执行了以下步骤确定系统是否支持重复数据删除后,才能启用驻留在生产系统上的文件系统中的 dedup 属性。

  1. 确定数据是否将受益于重复数据删除产生的空间节省。如果不能进行重复数据删除,则启用 dedup 毫无意义。运行以下命令非常占用内存:

    # zdb -S tank
    Simulated DDT histogram:
    bucket              allocated                       referenced
    ______   ______________________________   ______________________________
    refcnt   blocks   LSIZE   PSIZE   DSIZE   blocks   LSIZE   PSIZE   DSIZE
    ------   ------   -----   -----   -----   ------   -----   -----   -----
    1    2.27M    239G    188G    194G    2.27M    239G    188G    194G
    2     327K   34.3G   27.8G   28.1G     698K   73.3G   59.2G   59.9G
    4    30.1K   2.91G   2.10G   2.11G     152K   14.9G   10.6G   10.6G
    8    7.73K    691M    529M    529M    74.5K   6.25G   4.79G   4.80G
    16      673   43.7M   25.8M   25.9M    13.1K    822M    492M    494M
    32      197   12.3M   7.02M   7.03M    7.66K    480M    269M    270M
    64       47   1.27M    626K    626K    3.86K    103M   51.2M   51.2M
    128       22    908K    250K    251K    3.71K    150M   40.3M   40.3M
    256        7    302K     48K   53.7K    2.27K   88.6M   17.3M   19.5M
    512        4    131K   7.50K   7.75K    2.74K    102M   5.62M   5.79M
    2K        1      2K      2K      2K    3.23K   6.47M   6.47M   6.47M
    8K        1    128K      5K      5K    13.9K   1.74G   69.5M   69.5M
    Total    2.63M    277G    218G    225G    3.22M    337G    263G    270G
    
    dedup = 1.20, compress = 1.28, copies = 1.03, dedup * compress / copies = 1.50

    如果估计的重复数据删除比大于 2,则重复数据删除可能会带来空间节省。

    在此示例中,由于重复数据删除比 (dedup = 1.20) 小于 2,因此不建议启用 dedup。

  2. 请确保系统具有足够的内存来支持重复数据删除,如下所示:

    • 每个核心中重复数据删除表项约为 320 字节。

    • 用分配的块数乘以 320。例如:

      in-core DDT size = 2.63M x 320 = 841.60M
  3. 当重复数据删除表可以完全装入内存时,重复数据删除的性能最佳。如果不得不将重复数据删除表写入磁盘,则性能将降低。如果对内存资源不足的文件系统启用重复数据删除,则在执行与文件系统相关的操作期间,系统性能可能会降低。例如,删除启用了重复数据删除的内存资源不足的大型文件系统时可能会影响系统性能。