我只需要在更新失败后恢复一个虚拟服务器。 由于受影响的文件的范围并不完全知道,我完全恢复了大多数目录,除了/ home没有受到影响。
在恢复过程中,服务器处于特殊恢复模式,因此closures了所有服务。
恢复后,最初一切看起来不错。 但是,令我惊讶的是,一个svn仓库和一个git仓库被破坏了。 大多数情况下,我们每天大约有1-2次提交,所以在备份时恰好发生2次提交的概率是不太可能的。 在这种情况下,重build仓库并不是什么大不了的事,但是怎么会发生呢? 这是因为caching的数据没有写入磁盘或类似的东西?
快照备份会消除这种风险吗?
Offhand我会这样想:这可能是文件系统的问题,所以腐败就是这个结果。
或者系统有内存中的文件,正如你怀疑的那样,它还没有写入磁盘。 然后当它下降,文件处于不一致的状态。
不知道对文件系统造成的损害是很难说明的。
至于快照,如果您指的是托pipe服务上的虚拟专用服务器的快照,则不一定。 文件系统的快照不会帮助您处理“正在运行”的文件。 就是在内存中被操纵。 如果要对运行数据库的EC2实例执行快照,则快照将获取文件系统的状态,但不会获取数据库在内存中保存的caching数据,因此恢复最终可能会导致计算机不一致。 这就是为什么亚马逊build议在拍摄快照之前closures正在运行的实例或卸载EBS卷,尽pipe可以实时捕捉。