在数字化时代,虚拟化技术已成为数据中心管理与云计算领域的基石。虚拟化技术允许在单一物理服务器上运行多个独立的虚拟环境,即虚拟机。每个虚拟机都能拥有专属的操作系统、应用程序和配置,彼此隔离,互不影响。然而,如何快速恢复或复现虚拟机状态成为一大挑战,虚拟机快照技术便是在这样的背景下脱颖而出,以其独特的魅力,为系统的可靠性和灵活性提供了强有力的支撑。
应用场景:灵活应变,安全无忧
在系统变更、故障诊断等场景都会使用到快照,它可以帮助我们轻松地将虚拟机恢复到特定时刻的状态。
-
系统备份与恢复:在进行系统升级、打补丁或安装新软件前,创建快照,一旦操作导致系统不稳定或故障,可迅速恢复到快照状态,保障业务连续性。
-
开发与测试:开发者可通过快照功能快速创建和恢复测试环境,实现环境一致性,加速软件开发周期。
-
故障诊断:当虚拟机遇到问题时,回滚到故障发生前的快照,帮助识别和解决问题。
-
数据保护与合规:定期创建快照作为数据保护措施,满足法规遵从要求,如数据保留政策。
CNware 中的快照技术
快照定义
虚拟机快照可保存其特定时刻数据和配置信息,虚拟机和虚拟机快照是独立的存在,它们并不互相依赖。
虚拟机快照包含下面信息:
-
虚拟磁盘的快照(共享虚拟磁盘除外)。
-
虚拟机的配置信息,例如 vCPU 个数、内存大小、磁盘配置、网络配置等。
快照增强
虚拟机在关机、运行时均支持创建快照,多个磁盘的情况下,支持任意选择磁盘。同时,提供内存快照和一致性快照功能。
内存快照
虚拟机执行快照时,除了对硬盘数据执行快照之外,虚拟机会进入静默状态,内存也会同时执行快照,并持久化保存内存数据;当执行虚拟机快照恢复时,可加载内存快照数据。
一致性快照
特别设计用于确保应用程序数据一致性的快照,通常在配合特定应用程序的协调机制(如数据库事务日志)下创建,确保即使在快照过程中,应用程序数据也是完整且可恢复的。除了虚拟硬盘上的数据之外,还会记录内存和待处理 I/O 操作中的所有数据。在一致性快照之前,访客操作系统上的文件系统会进入静默状态,内存中的所有文件系统缓存数据和待处理I/O 操作都会刷新到硬盘。
内外兼修,降低性能影响
CNware同时提供内部快照与外部快照两种模式,内部快照与外部快照相辅相成,应用于不同的业务场景,解决虚拟机磁盘性能和存储空间占用之间的权重,执行快照时、执行快照后虚拟机性能下降,快照管理复杂等问题。
内部快照
内部快照主要应用于虚拟机高速硬盘,磁盘文件可以包含多个快照层,形成一个快照链。主要应用于对业务连续性要求极高的场景。
技术原理
内部快照的核心机制在于“写时复制”(Copy-on-Write, COW)技术。
快照过程的关键步骤如下:
-
状态捕捉:在某一时间点,虚拟化平台会记录下虚拟机的当前状态,包括内存、CPU及所有虚拟设备的状态。这些信息被汇总保存为快照元数据文件,形成一个恢复点。
-
磁盘层处理:对于虚拟磁盘,快照并不立即复制整个磁盘内容,而是创建一个指向原始磁盘的指针(即快照层)。当虚拟机继续运行并有新的写入请求时,COW机制发挥作用——新的数据会被写入一个新的区域(快照层),而原始数据保持不变,从而“冻结”了快照时刻的磁盘状态。
-
快照链:如果再次创建快照,同样的过程会发生,只不过这次新的写入会记录到一个新的快照层,而前一个快照层会变为只读,形成了一个快照链。每个快照都包含一个指向前一个快照或基础磁盘的指针,以及自己的差异数据。
-
回滚到快照:当需要回滚到某个快照时,将磁盘的活动层设置为该快照对应的快照层,之前的所有增量变化被忽略,这样就可以迅速恢复到快照时的状态。
-
合并快照:为了释放空间或优化性能,可以将快照链中的快照合并,减少快照链的复杂度和存储占用。
优点与限制
优点:内部快照占用的空间初始时很小,因为它们只存储差异数据。快照创建速度快,适合频繁备份和快速恢复场景。
限制:随着快照数量增加,磁盘I/O性能可能会下降,特别是在快照链较长的情况下。
外部快照
外部快照是在虚拟机的存储层次之外创建的一个时间点映像,可以存储在本地磁盘、网络存储或云存储等多种位置,而不局限于虚拟化平台自身的存储设备。主要应用于数据备份和长期数据保护的场景。
技术原理
外部快照的核心机制在于引入差异磁盘的概念,通过协调虚拟磁盘与一个或多个辅助磁盘文件来实现对虚拟机状态的即时保存和灵活恢复。数据结构如下:
-
基础磁盘:包含虚拟机初始状态或上一个快照时的数据,是快照链的起点。
-
差异磁盘:一系列增量数据块,记录自上一个快照以来的所有变化,每个快照对应一个差异磁盘。
-
元数据:存储快照的元信息,包括快照时间、快照名称、指向基础磁盘和差异磁盘的指针等,用于管理快照之间的关系和恢复流程。
快照过程的关键步骤如下:
-
冻结虚拟机状态:在创建快照之前,首先要确保虚拟机的文件系统处于一致的状态,避免数据损坏。需暂时停止虚拟机的所有活动,确保没有正在进行的I/O操作。
-
创建基快照:对于首次创建快照,原始虚拟磁盘(如qcow2格式)会被复制或标记为“基础快照”。qcow2格式支持一种称为“CoW(Copy-on-Write)”的机制,这意味着只有在数据需要修改时才会被复制到新的位置,从而减少快照创建时的空间需求和时间成本。
-
建立差异磁盘:一旦基础快照准备就绪,系统会创建一个或多个“差异磁盘”(delta disk)。这个差异磁盘是一个薄层,仅记录自快照创建以来虚拟机对磁盘所做的所有更改。这意味着后续的写操作将直接写入差异磁盘,而不会改变基础快照的内容。
-
解冻并恢复运行:完成差异磁盘的设置后,虚拟机被解冻,恢复正常运行。此时,所有新的读写请求会根据快照机制透明地重定向到差异磁盘。对于读操作,如果数据存在于差异磁盘,则直接从差异磁盘读取;如果不存在,则从基础快照中读取。
优点与限制
优点:外部快照与虚拟机之间没有直接的紧密关联,其创建和管理过程对虚拟机的性能影响较小;同时,即使虚拟机被误删除或损坏,快照数据仍然可以独立存在并被恢复。
限制:差异磁盘会占用额外的存储空间,长期累积可能造成存储资源紧张。读取数据时,若需同时访问原始磁盘和差异磁盘,可能会导致I/O性能下降,尤其是在频繁读取旧数据的情况下更为明显。
---
CNware虚拟化平台的快照技术,采用内部&外部快照双轨服务模式,针对不同存储类型,细分使用场景,显著改善了执行快照时、执行快照后虚拟机性能下降问题;同时,即能节省存储空间,也能保证多个快照间的独立性,方便运维人员对快照进行管理。