存储博客 期待内置重复数据删除的ZFS

本文作者Howard Marks是Networks Are Our Lives公司的首席科学家。这家公司总部位于新泽西州霍博肯,从事顾问工作。1987年以来,他一直专注于系统的分析和写作。  

尽管人们还在猜测欧盟对垄断的担忧是否会导致Oracle与Sun的合并流产,Sun的博文作者和ZFS的创造者Jeff Bonwick本周还是宣布ZFS现在增加了在线重复数据删除功能。我们从7月起就一直在等待Sun实现重复数据删除功能,我感兴趣的是ZFS重复数据删除的工作方式。同时,在基于服务器的存储解决方案中加入价格合理的重复数据删除功能会带来什么样的结果,这也让我感兴趣。

当我第一次听说Sun准备在ZFS上增加重复数据删除功能的时候,我预计会是一个类似于NetApp重复数据删除那样的系统–以前也被称为A-SIS(高级单实例存储)。那是一个后处理重复数据删除系统,数据缩减率相对较低。Sun的用户可能会对那样的系统感兴趣。我以前曾经提到企业级NAS(网络附加存储)人士在集成数据缩减技术的时候非常谨慎,为的是不让他们的客户有任何理由认为新的功能会影响NAS设备的性能。

另一方面,Sun已经意识到服务器CPU周期正变得越来越快于磁盘I/O带宽,并且已经决定利用可用的CPU周期来管理存储。这使得他们可以设计一个可以作为数据中心计算节点或存储节点的服务器。

和NetApp的重复数据删除一样,在每个块被写入磁盘的时候,ZFS利用计算出的块校验码来确保数据完整性,从而确定重复的数据块。管理员用一个命令就可以启动存储池的重复数据删除功能。他们还可以选择不信赖非常抗冲突的SHA-256散列算法而启用逐个字节的确认方式。聪明的用户甚至还可以使用计算密集型的fletcher4校验码来确认"相似"的数据块并通过查对来确保他们不会对那些从一开始并不是真的重复数据的数据进行重复数据删除。

加上ZFS很多年前就已经具备的数据压缩功能和运行NexentaStor的服务器(或Sun设备),这可以成为一个通用的存储系统,为NFS(网络文件系统),iSCSI(互联网小型计算机系统接口)或甚至FC(光纤通道)连接系统提供很好的数据缩减功能。

一两个月后,我们应该就可以看到带有ZFS重复数据删除功能的OpenSolaris供用户下载。也许Nexenta人员会将它扩展到NexentaStor。我期待着它的实现。