如何使用Hyper-V Manager和Powershell合并Hyper-V检查点-程序员宅基地

如何使用Hyper-V Manager和Powershell合并Hyper-V检查点

 

Hyper-V检查点在Hyper-V虚拟机的整个生命周期管理中起着关键作用,因为它们可以在出现问题时通过有效的回滚机制有效地管理和执行软件更新,升级和安装。

在最新版本的Hyper-V中,Microsoft增强了检查点功能并将其添加到更强大的功能中,包括生产检查点以及利用了ReFS文件系统的优势,从而增加了检查点功能。但是,在使用Hyper-V检查点之后,摆脱检查点的作用后,无疑是管理Hyper-V检查点的最佳实践过程。

在之前的文章中,我们介绍了如何创建Hyper-V检查点管理Hyper-V检查点

在这篇文章中,我们将看一下以下内容:

  • 为什么需要合并Hyper-V检查点
  • 如何使用Hyper-V Manager和PowerShell合并检查点
  • 如何手动合并Hyper-V检查点

为什么需要合并Hyper-V检查点

尽管检查点提供了非常强大的功能来补救失败的软件更新或与对Hyper-V VM进行更改有关的其他问题,但仍需要对其进行适当的管理。正确管理Hyper-V虚拟机涉及确保检查点被合并回基本磁盘。

这涉及什么?

检查点通过创建“增量”磁盘来工作,这些磁盘可容纳对虚拟机磁盘的所有新写入。这样可以确保对增量磁盘或“差异”磁盘进行任何新的数据更改。这样就可以防止失败的软件更新或对虚拟机所做的其他更改,好像这些更新不成功一样,可以简单地还原检查点,并使虚拟机恢复到进行更改之前的状态。

如果在创建检查点后决定保留对虚拟机所做的更改,并且认为软件更新或其他更改已成功,则该合并该检查点了。合并操作基本上将对差异磁盘(AVHDX文件)中捕获的虚拟机所做的所有更改集成回基本虚拟磁盘。最终结果是基本磁盘包含了对虚拟机的所有数据和更改,就好像从未创建过检查点,而所有更改都只是在基本磁盘中捕获一样。即使我们知道事实并非如此,但这还是虚拟化和Hyper-V检查点的魔力。

检查点并不是Hyper-V虚拟机的永久固定装置。实际上,将检查点长期保留会导致不良后果,例如性能下降。在Hyper-V虚拟机上具有多个检查点会导致在Hyper-V虚拟机上执行磁盘I / O的方式效率低下。即使虚拟机上的所有写入都捕获在当前检查点AVHDX文件中,从虚拟机读取的数据可能也必须遍历许多检查点和基本磁盘,这会导致磁盘延迟和一段时间后的性能下降。检查点在Hyper-V虚拟机上保留的时间越长,它们将继续在磁盘上增长。

保持检查点合并,并使虚拟机远离长期的检查点,可确保性能达到最佳,并且不会不必要地占用空间。当Hyper-V虚拟机上存在不必要的检查点时,虚拟磁盘损坏的可能性就更大。

此外,Hyper-V虚拟机上存在不必要的检查点可能导致数据保护解决方案无法有效利用弹性变更跟踪机制来确保自执行上一次备份操作以来仅复制变更。

这些是Hyper-V检查点需要以适当的方式及时合并不必要的检查点的方式进行管理的一些更重要的原因。漫长的检查点会导致多个方面的问题。

众所周知,Hyper-V检查点合并操作是保持Hyper-V环境高效运行并按预期执行的必要最佳实践,因此,让我们看一下合并Hyper-V检查点的各种方法。

通过Hyper-V Manager合并Hyper-V检查点

通常,如果大多数Hyper-V管理员只有一个Hyper-V检查点需要在单个虚拟机上进行合并,则他们会选择使用Hyper-V Manager作为工具。Hyper-V Manager提供了一个简单直观的GUI界面来合并检查点。

所谓的检查点树提供了Hyper-V虚拟机上存在的检查点的层次结构视图。使用Hyper-V管理器,Hyper-V可以为每个VM容纳50个检查点。使用System Center Virtual Machine Manager或SCVMM,此限制可以扩展到64个检查点。

合并操作仅仅是一个删除快照与实现在后台-该处理是在数据合并到基础磁盘而不是简单地删除数据。

要执行此Hyper / V检查点的删除/合并,您只需右键单击有问题的快照,它将产生Delete CheckpointDelete Checkpoint Subtree选项。

  • 删除检查点 –删除您关注的单个检查点。
  • 删除检查点子树 –此选项将删除当前突出显示的检查点及其后的所有内容。这是由于“子树”检查点是根据先前创建的检查点构建的。

 

如何使用Hyper-V Manager和Powershell合并Hyper-V检查点

 

通过使用“删除检查点”或“删除检查点子树”选项来删除Hyper-V检查点

 

使用PowerShell合并Hyper-V检查点

使用PowerShell管理和合并检查点是在Hyper-V中大规模执行这些操作的好方法。

GUI管理当然有其位置,可以有效地用于一次性检查点管理任务。但是,如果要处理的虚拟机运行的检查点可能需要合并数十台甚至数百台主机,则PowerShell是一种以自动化方式执行合并操作的好方法。

要删除在当前Hyper-V主机上的所有VM上找到的所有检查点,这是一个简单的单行PowerShell命令:

  • Get-VM | Get-VMSnapshot | Remove-VMSnapshot

如果要删除多个主机之间的检查点,则可以使用简单的“ for”循环来完成此操作,为什么要获取群集中的节点,然后遍历这些节点以获取VM列表,然后删除存在的所有检查点。

$hvnodes = get-clusternode | select name -expandproperty name

foreach ($hvnode in $hvnodes) {

Get-VM -computername $hvnode | Get-VMSnapshot | Remove-VMSnapshot

}

如何在Hyper-V中手动合并检查点

在某些情况下,如果损坏或失败,您需要手动合并Hyper-V检查点,并通过常规方法合并您的检查点。

让我们看一下如何将Hyper-V检查点手动合并到父磁盘中。

如您所见,我们有一个带有现有检查点的VM。在Hyper-V管理器中选择VM,在“ 操作”下,单击“ 编辑磁盘”。

 

如何使用Hyper-V Manager和Powershell合并Hyper-V检查点

 

开始手动合并检查点的过程

 

单击下一步继续。

 

如何使用Hyper-V Manager和Powershell合并Hyper-V检查点

 

开始编辑虚拟硬盘向导

 

将显示“ 查找虚拟硬盘”屏幕。单击浏览找到要合并的AVHDX文件。

 

如何使用Hyper-V Manager和Powershell合并Hyper-V检查点

 

浏览以找到AVHDX文件

 

选择AVHDX文件后,点击打开。这将使您返回到查找虚拟硬盘

 

如何使用Hyper-V Manager和Powershell合并Hyper-V检查点

 

选择AVHDX文件

 

 

如何使用Hyper-V Manager和Powershell合并Hyper-V检查点

 

选择AVHDX并读取以合并

 

下一个屏幕是“ 选择操作”屏幕。在这里选择合并选项

 

如何使用Hyper-V Manager和Powershell合并Hyper-V检查点

 

选择AVHDX文件的合并操作

 

我们正在将差异磁盘中的更改合并回父虚拟硬盘。但是,您也可以将其合并到全新的虚拟硬盘中。

 

如何使用Hyper-V Manager和Powershell合并Hyper-V检查点

 

选择父虚拟硬盘

 

在最后一个屏幕上,单击“ 完成”以开始合并操作。

 

如何使用Hyper-V Manager和Powershell合并Hyper-V检查点

 

合并操作准备完成

 

AVHDX文件已成功合并回父磁盘。如您所见,在合并操作之后查看磁盘文件时,不再有AVHDX文件,只有VHDX。

要使用新合并的文件,请创建一个新的虚拟机,然后将虚拟机指向手动合并的文件。如果仅将其保留在原始VM上,则会收到有关检查点链的错误。在下面,我们正在创建一个新的虚拟机,并将其指向合并的VHDX。

 

如何使用Hyper-V Manager和Powershell合并Hyper-V检查点

 

为合并的VHDX创建新的Hyper-V虚拟机

 

在“ 连接虚拟硬盘”屏幕上,选择“ 使用现有虚拟硬盘”,然后浏览到已合并的VHDX。

 

如何使用Hyper-V Manager和Powershell合并Hyper-V检查点

 

将虚拟机指向合并的VHDX

 

选择VHDX文件,然后选择打开

 

如何使用Hyper-V Manager和Powershell合并Hyper-V检查点

 

选择合并的VHDX文件

 

完成“新建虚拟机向导”。

 

如何使用Hyper-V Manager和Powershell合并Hyper-V检查点

 

完成附加了合并的VHDX的新虚拟机向导

 

打开新虚拟机的电源,您将可以访问合并的VHDX数据。

 

如何使用Hyper-V Manager和Powershell合并Hyper-V检查点

 

将AVHDX文件合并到VHDX中后,新的Hyper-V虚拟机将打开电源

 

结论思想

Hyper-V检查点合并操作是一个非常重要的过程,它允许正确删除检查点,并将保留在增量AVHDX磁盘中的数据合并回Hyper-V虚拟机的基本磁盘中。这有助于使虚拟机的性能保持最佳状态,最大程度地减少损坏的可能性,并使数据保护解决方案正确跟踪自上次备份操作以来对虚拟机所做的更改。有许多很棒的工具可用于管理和合并Hyper-V检查点,例如Hyper-V Manager GUI工具以及PowerShell,它可以在Hyper-V中以编程方式管理和合并检查点。此外,可以针对各种用例执行手动Hyper-V检查点合并。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/allway2/article/details/103360349

智能推荐

while循环&CPU占用率高问题深入分析与解决方案_main函数使用while(1)循环cpu占用99-程序员宅基地

文章浏览阅读3.8k次,点赞9次,收藏28次。直接上一个工作中碰到的问题,另外一个系统开启多线程调用我这边的接口,然后我这边会开启多线程批量查询第三方接口并且返回给调用方。使用的是两三年前别人遗留下来的方法,放到线上后发现确实是可以正常取到结果,但是一旦调用,CPU占用就直接100%(部署环境是win server服务器)。因此查看了下相关的老代码并使用JProfiler查看发现是在某个while循环的时候有问题。具体项目代码就不贴了,类似于下面这段代码。​​​​​​while(flag) {//your code;}这里的flag._main函数使用while(1)循环cpu占用99

【无标题】jetbrains idea shift f6不生效_idea shift +f6快捷键不生效-程序员宅基地

文章浏览阅读347次。idea shift f6 快捷键无效_idea shift +f6快捷键不生效

node.js学习笔记之Node中的核心模块_node模块中有很多核心模块,以下不属于核心模块,使用时需下载的是-程序员宅基地

文章浏览阅读135次。Ecmacript 中没有DOM 和 BOM核心模块Node为JavaScript提供了很多服务器级别,这些API绝大多数都被包装到了一个具名和核心模块中了,例如文件操作的 fs 核心模块 ,http服务构建的http 模块 path 路径操作模块 os 操作系统信息模块// 用来获取机器信息的var os = require('os')// 用来操作路径的var path = require('path')// 获取当前机器的 CPU 信息console.log(os.cpus._node模块中有很多核心模块,以下不属于核心模块,使用时需下载的是

数学建模【SPSS 下载-安装、方差分析与回归分析的SPSS实现(软件概述、方差分析、回归分析)】_化工数学模型数据回归软件-程序员宅基地

文章浏览阅读10w+次,点赞435次,收藏3.4k次。SPSS 22 下载安装过程7.6 方差分析与回归分析的SPSS实现7.6.1 SPSS软件概述1 SPSS版本与安装2 SPSS界面3 SPSS特点4 SPSS数据7.6.2 SPSS与方差分析1 单因素方差分析2 双因素方差分析7.6.3 SPSS与回归分析SPSS回归分析过程牙膏价格问题的回归分析_化工数学模型数据回归软件

利用hutool实现邮件发送功能_hutool发送邮件-程序员宅基地

文章浏览阅读7.5k次。如何利用hutool工具包实现邮件发送功能呢?1、首先引入hutool依赖<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.7.19</version></dependency>2、编写邮件发送工具类package com.pc.c..._hutool发送邮件

docker安装elasticsearch,elasticsearch-head,kibana,ik分词器_docker安装kibana连接elasticsearch并且elasticsearch有密码-程序员宅基地

文章浏览阅读867次,点赞2次,收藏2次。docker安装elasticsearch,elasticsearch-head,kibana,ik分词器安装方式基本有两种,一种是pull的方式,一种是Dockerfile的方式,由于pull的方式pull下来后还需配置许多东西且不便于复用,个人比较喜欢使用Dockerfile的方式所有docker支持的镜像基本都在https://hub.docker.com/docker的官网上能找到合..._docker安装kibana连接elasticsearch并且elasticsearch有密码

随便推点

Python 攻克移动开发失败!_beeware-程序员宅基地

文章浏览阅读1.3w次,点赞57次,收藏92次。整理 | 郑丽媛出品 | CSDN(ID:CSDNnews)近年来,随着机器学习的兴起,有一门编程语言逐渐变得火热——Python。得益于其针对机器学习提供了大量开源框架和第三方模块,内置..._beeware

Swift4.0_Timer 的基本使用_swift timer 暂停-程序员宅基地

文章浏览阅读7.9k次。//// ViewController.swift// Day_10_Timer//// Created by dongqiangfei on 2018/10/15.// Copyright 2018年 飞飞. All rights reserved.//import UIKitclass ViewController: UIViewController { ..._swift timer 暂停

元素三大等待-程序员宅基地

文章浏览阅读986次,点赞2次,收藏2次。1.硬性等待让当前线程暂停执行,应用场景:代码执行速度太快了,但是UI元素没有立马加载出来,造成两者不同步,这时候就可以让代码等待一下,再去执行找元素的动作线程休眠,强制等待 Thread.sleep(long mills)package com.example.demo;import org.junit.jupiter.api.Test;import org.openqa.selenium.By;import org.openqa.selenium.firefox.Firefox.._元素三大等待

Java软件工程师职位分析_java岗位分析-程序员宅基地

文章浏览阅读3k次,点赞4次,收藏14次。Java软件工程师职位分析_java岗位分析

Java:Unreachable code的解决方法_java unreachable code-程序员宅基地

文章浏览阅读2k次。Java:Unreachable code的解决方法_java unreachable code

标签data-*自定义属性值和根据data属性值查找对应标签_如何根据data-*属性获取对应的标签对象-程序员宅基地

文章浏览阅读1w次。1、html中设置标签data-*的值 标题 11111 222222、点击获取当前标签的data-url的值$('dd').on('click', function() { var urlVal = $(this).data('ur_如何根据data-*属性获取对应的标签对象

推荐文章

热门文章

相关标签