未解决
此帖子已超过 5 年
2 Intern
•
1.2K 消息
0
476
探究Avamar是如何进行Rolling HFS check的
探究Avamar是如何进行Rolling HFS check的
转载请在文首保留原文出处:EMC中文支持论坛https://community.emc.com/go/chinese
介绍
大家可能已经知道,Avamar主要有两种HFS check方式:Full和Rolling。成功的Full HFS check和Rolling HFS check都被认为是“完全并合法的”,可被用于回滚Avamar Server。执行Rolling HFS check的好处是:相比于Full HFS check,花费的时间大大降低(Full HFS check有时甚至需要执行超过24小时)。
Full HFS check很好理解,就是对GSAN上的所有数据执行检查。Rolling HFS check该如何理解呢?Avamar文档上的解释比较简单:完全检查所有新的和被修改的stripes并检查一部分未修改的stripes。
那么Avamar究竟是以何种机制来完全验证所有新的和被修改的stripes并检查一部分未修改的stripes呢?这和Rolling(回滚)这个词又有什么关系呢?
更多信息
在参阅了一些资料之后,我发现Avamar原来是这样进行Rolling HFS check的:
Rolling HFS check会检查所有index stripes、修改过的data stripes以及和它们相关的parity stripes、一些未修改的stripes以及和它们相关的parity stripes,最后会检查reference stripes。
以下这些stripes是每次Rolling HFS check一定会去检查的:
- index stripes
- 修改过的data stripes以及和它们相关的parity stripes
- reference stripes
默认,Rolling HFS check会检查GSAN上的10%的数据量。如果以上这些必查数据未能达到GSAN的10%数据量的要求,Rolling HFS check还会检查一些未修改的stripes以及和它们相关的parity stripes,直到达到10%的数据量要求为止。如果以上这些必查数据已经达到或超过GSAN的10%数据量的话,Rolling HFS check就不会再检查未修改的stripes以及和它们相关的parity stripes。
举例来说可能更清楚些:
如上图,假如在上一次HFS check之后,GSAN上有3%的数据量被修改了(包括index stripes和reference stripes),那么除了这部分数据会被检查之外,还会检查占GSAN总数据量7%的某些未修改的stripes以及和它们相关的parity stripes。完成之后,这些被检查过的stripes会被标记。
如上图,假如后一天,GSAN上又有5%的数据量被修改了(包括index stripes和reference stripes),那么除了这部分数据会被检查之外,还会检查占GSAN总数据量5%的某些未修改且未被标记的stripes以及和它们相关的parity stripes。完成之后,这些被检查过的stripes会被标记。
如上图,以此类推,假如GSAN上每次都有少于10%的数据量被修改,Rolling HFS check每次都会额外检查之前未修改且未被标记的stripes。一段时间以后,当整个GSAN上的所有stripes都被检查完时,整个过程就会重头开始,这就实现了所谓的“滚动检查”。
如上图,假如GSAN上有12%的数据量被修改(包括index stripes和reference stripes),由于已经超过10%的数据量检查要求,Rolling HFS check就只会检查这12%被修改的数据量,而不会再检查任何未修改的数据。
应用于
Avamar