Avamar在备份数据时,对于重复数据的判断是具有高度逻辑性的。判断流程大致如下:
1. Avamar客户机遍历要备份的所有目录,并与本地文件缓存作比较来判断是否要备份的所有文件已经在本地文件缓存中有了。如果文件已经在本地缓存中有了,说明该文件之前已经被备份过,属于重复数据,那么Avamar就不会再备份它。
2. 如 果本地文件缓存中没有找到相匹配的文件,该文件会被分成多个可变长度的数据块。数据块会先被压缩,然后被哈希。哈希用于快速确定该数据块是否之前已经被存 储过。客户机会比较本地哈希缓存来确定是否该数据块之前已经被备份过。如果找到相匹配的数据块,说明该数据块之前已经被备份过,属于重复数据,Avamar就不会再备份它。
3. 如果本地哈希缓存中没有找到相匹配的数据块,客户机会将该数据块哈希添加入本地哈希缓存从而更新本地哈希缓存,并且询问Avamar服务器是否之前已经备份过其他客户机上的相同数据块。如果Avamar服务器上已经存有该数据块哈希,则说明已经备份过其他客户机上的相同数据块,该数据块属于重复数据,不会被备份。
4. 如果Avamar服务器上没有找到相匹配的数据哈希,客户机会将该数据块哈希和相应的数据发送给Avamar服务器。Avamar服务器会保存该数据块哈希和相应的数据。
通过以上流程的层层过滤,最后真正被Avamar备份的数据量显著减少了。这就是Avamar实现重复数据删除的大致机制。