谈谈Avamar的文件缓存和哈希缓存

Avamar在备份数据时,会通过查找本地文件缓存和哈希缓存来快速找到已经备份过的数据,从而达到数据消重的目的。

 

利用本地文件缓存和哈希缓存来进行对重复数据的判断流程大致如下图所示:

 

Untitled.jpg


如果缓存过小,Avamar备份时就很可能无法快速在缓存中找到已经备份过的数据(图中的前两个菱形判断格)。文件缓存过小意味着很多文件都需要被打散进行chunk并哈希,哈希缓存过小意味着经常需要去Avamar服务器上查找数据是否已经被备份过(图中最下面的菱形判断格),这样不但会大大加重对CPU的负担,而且备份的速度也会严重降低。

 

为了提高备份的速度,我们需要给缓存大小设置一个合理的值。

 

缓存文件都保存在Program FilesAvamarvar下,文件缓存的文件名是f_cache2.dat, 哈希缓存的文件名是p_cache2.dat

 

默认,最多可以将Avamar客户端的物理内存大小的8分之1分配给文件缓存。例如,如果Avamar客户端的物理内存为4GB,那么我们可为它分配的文件缓存最多不能超过512MB。文件缓存需要成倍设置,如5.5 MB->11 MB->22 MB->44 MB->88 MB->176 MB->352 MB->704 MB->1,408 MB等。

 

默认,最多可以将Avamar客户端的物理内存大小的16分之1分配给哈希缓存。例如,如果Avamar客户端的物理内存为4GB,那么我们可为它分配的哈希缓存最多不能超过218MB。哈希缓存也需要成倍设置,如1.5MB->3MB->6MB->12MB->24 MB->48 MB->96 MB->192 MB->384 MB->768 MB等。

 

如果客户端备份的是文件系统数据(如文件服务器),那么建议优先增加文件缓存;如果客户端备份的是数据库数据,那么建议优先增加哈希缓存。

 

要增加文件缓存和哈希缓存,首先需要删除Avamar客户端上的f_cache2.datp_cache2.dat,然后在Program Filesavsvar下找到名为avtar.cmd的文件(如果没有该文件就创建一个)。用记事本打开这个文件并填入以下两行:

 

–filecachemax=<VALUE>

–hashcachemax=<VALUE>

 

<VALUE>可以填入正数,如–filecachemax=704,那么文件缓存就设置为704MB

<VALUE>也可以填入负数。当填入负数时,表示占物理内存的多少分之一。如–filecachemax=-5,意味着文件缓存设置为物理内存大小的5分之1,也就是20%

 

创建并修改完avtar.cmd以后,重启Avamar客户端,新的文件缓存和哈希缓存值就会生效。

 

注意:不要将超过物理内存的4分之1大小分配给缓存,否则会影响备份的性能。另外,由于缓存依赖于物理内存的大小,所以有时候增加物理内存是无法避免的。