Windows Server 2016正在慢慢揭开它的面纱,大家如果感兴趣可以下载最新推出的Windows Server 2016 技术预览版4, 一部分虚拟机的功能在Windows 10的虚拟机中已经开放了,一个有趣的功能就是虚拟机生产检查点(Production Checkpoint)。
对于检查点的概念,可能我们都是熟知的这个功能不是Hyper-V中早就提供了吗?注意,新推出的叫生产检查点,那么与之对应的功能就是标准检查点了(Standard Checkpoint)。标准检查点和生产检查点?有神马不同?顾名思义,现在推出的检查点功能才适用于生产环境,而之前的检查点功能只是适用于开发测试环境,这就是最大的不同!也许你曾经因为在生产环境创建Hyper-V虚拟机快照出现过问题,那么看看这个生产环境检查点是否可以解决这些问题。
不知道之前是否注意到,在开机状态运行的检查点做虚拟机还原时还原的是打开状态的虚拟机,这其实已经说明了这个快照是针对虚拟机内存做的内存瞬时快照,而并没有对虚拟机磁盘状态做相应的快照,这种情况下的状态并不是一致性快照;对于像SQL Server,Exchange等正在运行的部分应用在恢复时不能运行状态与数据的一致性是很有可能造成问题的,甚至需要进行备份恢复。当然这种情况可以通过关闭虚拟机进行一致性快照得以避免,但这也失去了快照不需要关闭虚拟机的意义了。
那么生产检查点的不同就在于其提供了基于卷影拷贝服务(Volume Shadow Copy)做的一致性快照,这种拷贝是确保所有内存中应用(微软)脏数据写盘后冻结IO后所做的瞬时磁盘卷检查点,这样检查点数据可以确保是一致性可靠的可恢复状态快照,这种技术在多数三方备份软件或SAN拷贝中经常被用到,现在微软在自己的虚拟机服务中把这个功能也加入进来了;当然也许你会问这个技术用到的VSS不是微软系统的服务吗,那么对于Linux虚拟机呢?对于Linux环境,生产检查点服务提供了文件系统级别的数据一致性,文件系统缓存检查点提交和IO冻结来保证在文件系统级别的一致性。这样的快照因为是在存储级别的一致性快照,自然也就不需要像之前的标准检查点快照一样拷贝内存设备状态等信息了;当然恢复过程不包含内存状态,因此都是从一个离线状态启动进行恢复,所有就会包括虚拟机启动的系统加载内存过程而非标准快照中的直接内存快照恢复。
根据我们使用的系统是开发测试还是生产环境,我们可以通过虚拟机级别的设置来进行选择采用哪种检查点方式用于虚拟机的快照。如下图所示:
从这里我们也可以看到在生产检查点无法完成的时候,可以通过采用标准检查点进行替换快照操作。有时候进行卷快照需要一定的IO静默时间,如果系统处于频繁IO的操作,有可能会造成VSS无法捕获的情况造成无法进行生产检查点创建,这时候我们可以选择是否采用标准检查点来进行快照捕获,具体检查点方式选择可以参考MSDN的相关说明。
如果你喜欢采用PowerShell来进行修改检查点方式并操作检查点都是可以的,对于运维的大型环境,熟悉使用这种方式也是必须的,
查看虚拟机当前检查点设置:
1
|
Get-VM
-Name <YourVMName> | Select -ExpandProperty CheckpointType
|
设置虚拟机当前检查点类型属性:
1
|
Set-VM
Name <YourVMName> -CheckpointType ProductionOnly
|
*注意:对于虚拟机的操作需要通过管理员权限的PowerShell会话环境进行操作。