我是否需要“静止”正在运行的虚拟机以获取某个时间点的磁盘一致快照?
我愿意不是关心是否存在未写入的缓冲区或正在运行的应用程序是否与磁盘一致。我只关心磁盘本身是否是有效的文件系统,以及整个磁盘在某个时间点是否准确/一致。
我的目标是对 Postgres 数据库进行有效备份。只要我在恢复和启动时拥有有效的数据库,任何最近完成一半的写入或事务都可能丢失。
我的环境:
主机:ESXi 6.0 客户机:Ubuntu 14.04 LTS
答案1
为了 100% 确保快照不会出现问题,“理想”情况应该是在机器离线的情况下进行。我们知道,这种情况并不总是可行的,因为依赖机器的可能是无法停止的生产机器。
这取决于你正在运行的软件。尽量在活动最少时执行此操作。你知道你正在运行的软件、并发用户、网络流量、活动等。
如果是一个“正常”系统,我的意思是“正常”的服务器不属于集群,没有 DC,没有具有复制的数据库等......即使使用在线机器进行快照也不应该有问题。
请注意,如果您恢复到具有复制功能的系统(如 Active Directory 服务器)的快照……这通常会产生同步问题,并且您的 AD 数据库可能会出现麻烦。
编辑当我回答时,没有关于服务器类型和运行什么软件的数据。
答案2
答案与“如果我拔掉电脑电源插头而不正常关闭电脑,再次启动电脑时会没事吗?”这个问题的答案基本相同。大多数情况下,答案是肯定的。静止基本上是一种模拟正常关闭而不实际关闭的方法。因此,您需要回答的问题是,您是否愿意冒着百万分之一的概率让文件损坏的风险?