在部署重复数据删除系统时,考虑其可伸缩性和可靠性很重要。随着存储容量和重复数据删除粒度性的增加,系统性能需要保持在可接受性的水准之上。如果由于重复删除算法错误而产生数据损失,重复数据删除应能够不受影响。
可伸缩性与哈希冲突
重复数据删除产品检测重复的数据元素,判断一个文件、块或比特是否和另一个文件、块或比特相同。重复数据删除产品将每个数据元素用数学的"哈希"算法来进行处理,并得到一个名叫哈希码的唯一的认证数。每个数字都被编译到一个清单,这个清单经常被称为哈希索引。
当新的数据元素被处理时,它们所产生的哈希码将和已经在索引表中的哈希码相比较。如果新的数据元素所得到的哈希码和另一个已经在索引表中的哈希码相同,那么这个新数据将被认为是一个重复数据,将不被保存到磁盘--只有一个很小的参照"存根"能够相联到已经被存储的同一数据。如果索引表中没有这个新的哈希码,那么该数据元素将被认为是新数据而被正常保存到磁盘中。
即使这个数据不是和已保存的那个数据完全相同,这个数据元素还是可能会产生同样的哈希码。这就是误确认,或者称为哈希冲突,这将导致数据丢失。有几种方法可以缓解误确认。重复数据删除厂商可以选择在每个数据元素上使用多于一个的哈希算法。例如,FalconStor 软件公司的虚拟磁带库(VTL)上的单实例存储(SIR)技术就用SHA-1和MD5算法来进行带外索引。这在很大程度上减少了误确认的机率。另一个选择就是使用一个哈希算法,但是在数据元素的比较上精确到比特单位。
这两种方法的共同问题是它们需要主机系统更多的处理能力,降低了索引效率,减缓了重复数据删除进程。随着重复数据删除进程越来越粒化,所检验的数据块也越来越小,索引变得更加庞大,而哈希冲突的机率也随之增加,更加拖累了性能。
可伸缩性和加密
另一个问题就是在一个公司的存储架构中,重复数据删除和传统的压缩及加密之间的关系。普通的压缩是将冗余数据移出文件,而加密则是"打乱"数据,使得数据完全随机而不可读。在数据存储中,压缩和加密都扮演着重要的角色,但是删除冗余数据可能影响重复数据删除进程。如果加密或传统的压缩和重复数据删除一起被请求进行,那么编制索引和重复数据删除应当先进行。
网友评论