存储 频道

专家博客:解析ZFS的重复数据删除功能

  【IT168 专稿】昨天有网友问起NextenaStor 的重复数据删除功能的实现机制,其实这个是使用了Zettabyte File System(ZFS)内置的重复数据删除功能。

  文件级重复数据删除对处理能力的要求最低,但是也是效率最低的方法。数据块级重复数据删除要求更多的处理能力,据说这种方法适用于虚拟机镜像。 字节排列重复数据删除使用的处理能力最多,是删除可能重复且在数据块级上不对称的小块数据如电子邮件附件的理想方案。Sun估计这种重复数据删除方案最适用于应用级环境,因为应用软件知道数据的具体情况。

  ZFS利用SHA 256hashing提供数据块级重复数据删除功能,它可以自然映射到ZFS的256比特数据块检查和。重复数据删除是在内部进行的,ZFS假定它正在服务器上运行一个多线程操作系统,具有很强的处理能力。 换句话说,就是多核处理器。

  要想开启这个功能,你只要对ZFS进行相关设置即可:

  Zfs set dedupe = on silo
  Zfs set dedupe = on silo /mydataset
  Zfs set dedupe = off silo /yourdataset

  由于数据集中包含了冗余数据,这样就可以释放一定的磁盘容量,提高磁盘写数据I/O速度,因为冗余数据没有被写入磁盘。

  如果你想确保散列重复数据删除的安全性,你可以让ZFS进行全部字节对比,而不是利用散列对比。

  Zfs set dedup = verify silo

  你也可以用其他方法,利用一个更简单的散列算法来减少所需的处理能力并将它与验证功能结合在一起以提高重复数据删除的整体速度:

  Zfs set dedup =fletcher 4,,verify silo

  ZFS的重复数据删除功能可根据文件系统的大小进行调整。一旦映射表过大而无法与内存相匹配,重复数据删除的性能就会降低,在这里采用固态盘存储可能要好一些。

  ZFS重复数据删除的优势在于你不需要使用特殊的存储阵列来对数据进行重复删除。普通的阵列产品就相当够用,它在数据集级上的适用性表明你只需对包含冗余数据的数据集进行重复删除,而不用牵扯到其他的数据集。

  由于它是内部重复数据删除功能(inline deduplication),因此增加处理核心和内存就可以提高重复数据删除的速度。让我们看看GreenBytes是否会从它现在所用的技术转向ZFS重复数据删除技术。 将ZFS重复数据删除产品与专业重复数据删除存储阵列作一个性能对比也将是一件有趣的事情。  

  博客摘自IXPUB云杉上的蝴蝶:http://www.ixpub.net/home.php?mod=space&uid=10821989

0
相关文章