lee*_*d00 9 virtual-machine database application virtualization
静止文件系统允许您在数据库和其他程序及其数据仍在运行时对其进行备份。
通常需要通知应用程序静默备份操作,因为所有缓冲区都需要刷新到磁盘,并且需要停止任何传入的写入请求,以便可以在不完全停止系统的情况下创建有效的备份。
Linux 是否还支持这种事情?我读到 Microsoft Windows 自 Windows Server 2003 起就对此提供支持,并且我在一些地方看到他们谈论如何使用 VM 在 Linux 上实现这一点。但是我不知道哪些特定的虚拟机,如果虚拟机必须作为主机在 Windows 上运行。
还有像Java这样的操作系统级别以上的平台呢?那里是否有对 quiesce 的支持?
当您执行 LVM 快照时,挂起的数据(在内核缓冲区中,而不是应用程序的)被刷新到磁盘,并且在快照正在进行时应用程序被阻止写入。如果您通过某种外部方式(例如磁盘是虚拟的并且您在主机上备份它)使用fsfreeze
或来备份 FS 所在的块设备,您也可以以相同的方式冻结 FS xfs_aio
。实现快照的文件系统(如 BTRFS、NILFS、ZFS...)也可以这样做。一般来说,这些级别的快照确实保证快照中的数据是在给定时间提交给 FS 的内容的即时冻结,并且冻结的 FS 处于一致的干净状态。
至于告诉应用程序静默并将其缓冲数据刷新到 FS,没有通用框架,我上次检查时,普遍的共识是,引入不必要的复杂性和相关错误更可能造成伤害,而不是改进应用程序的问题无论如何,应该专注于在磁盘上保持一致的数据,以防系统/硬件崩溃。
某些应用程序(如某些数据库)可以像 MySQL 的FLUSH TABLES WITH READ LOCK
.