使用Microsoft Data Protection Manager(DPM)有时会造成虚拟机的动态和固定磁盘变成差异磁盘,这个应该与DPM进行差异备份有关,未知原因造成DPM差异备份后无法复原原来的磁盘类型,并且在Hyper-V Manager中看到非常多树形结构的层层依赖的Checkpoints,这些Checkpoints名称中有Backup字样,这些Checkpoints无法通过Hyper-V Manager删除,也无法通过命令行删除,在文件系统中表现为虚拟机目录中Shapshots文件夹出现很多xml文件。然而Checkpoints的数量有50个上限,如果不删除这些Checkpoints会造成DPM无法继续备份这个虚拟机。那么我们只好手工合并这些差异磁盘,暴力删除这些Checkpoints。以下操作都需要关停虚拟机,并且有一定风险,请操作前备份相关文件。

1. 在SCVMM中先将该差异磁盘从虚拟机中删除,注意一定要选择不要从物理服务器中移除,即保留差异磁盘以备独立进行合并,操作请事先备份所有差异磁盘。

2. 在虚拟机所在物理服务器节点,使用Hyper-V Manager的Edit Disk功能,但是选择Locate Disk时需要特别注意的是必须从最新的那个差异磁盘开始向前合并。如果存在多个差异磁盘,他们之间的关系成树状结构,如果实现合并了前一个,那么后一个将无法找到其父磁盘。可以Merge到父磁盘,如果层次特别多的话,要一次一次操作相当费时费力,或者整体合并保存到其他位置,注意保存的文件名与之前的差异磁盘文件名一致(差异磁盘由1个文件vhdx和多个avhdx组成,这里才差异磁盘文件名指的是最初的那个,即vhdx文件名),以备后用。

如果选中的事差异磁盘,工具会出现Merge选项

完成合并

3. 差异磁盘完成了合并后,可以删除虚拟机目录中的所有差异磁盘(删除前确认有备份),拷贝合并后的固态磁盘或动态磁盘进入虚拟机目录,在SCVMM中为虚拟机添加该磁盘。这时虚拟机已经可以正常使用新的合并后的磁盘启动,但是这些备份用的Checkpoints还在,无论如何都无法删除,经尝试Hyper-V Manage和以下命令都无法删除:Get-VMSnapshot -VMName vmwithcheckpoint.domain.com -ComputerName hyper-v.domain.com | Remove-VMSnapshot。那么接下来使用暴力了。

在Services.msc中将Hyper-V Virtual Machine Management服务停止(在SCVMM管理下,该服务会自动启动,但有个几秒的窗口期),然后直接删除虚拟机目录中的Shapeshots文件夹。启动Hyper-V Virtual Machine Management后,在Hyper-V Manager中虚拟机不见了,SCVMM中虚拟机呈现Missing状态。可以想象Hyper-V Virtual Machine Management找不到虚拟机的Checkpoints文件,无法关联该虚拟机。但是别急,我们可以通过Hyper-V Manager重新导入该虚拟机,导入时选择Restore,所以文件夹都指向原先虚拟机目录,在选择Checkpoints时,注意选择删除Checkpoints。完成后一切都回来了。

注意删除Checkpoints时,一定是建立在Merge差异磁盘,而虚拟机配置也没有太大改动的基础上,简言之每个Checkpoints都会保存与上一个虚拟机状态(配置和磁盘)的差异。至此虚拟机终于恢复正常了,惊心动魄。

合并SCVMM虚拟机的差异磁盘,并删除那些难以删除的Checkpoints(Shapshots)的更多相关文章

  1. Hyper-v之利用差异磁盘快速创建多个虚拟机

    在新建Hyper-v磁盘的时候 有3种选项 其中分别是 固定大小 动态扩展 和 差异(differencing,个人习惯叫 差分) 其中 固定大小是新建的时候 Hyper-v创建一个设置大小值的文件, ...

  2. kvm上的Linux虚拟机使用virtio磁盘

    kvm上的Linux虚拟机使用virtio磁盘 系统:centos6.6  64位 网上的文章比较少,怎麽将Linux虚拟机的磁盘改为使用virtio磁盘 因为centos6或以上系统已经包含了vir ...

  3. 如何从 Windows 虚拟机分离数据磁盘

    当不再需要附加到虚拟机的数据磁盘时,可以轻松地分离它. 这会从虚拟机中删除该磁盘,但不会从存储中删除它. Warning 如果用户分离磁盘,它不会自动删除. 如果订阅了高级存储,则将继续承担该磁盘的存 ...

  4. Hyper-V:利用差异磁盘安装多个Win2008

    签于成本的原因,在学习了解一项新的技术或是产品时,在没有部署到生产环境之中前,大家都会选择在虚拟机来搭建一套实验环境.但如何快速搭建呢?如何节省磁盘空间呢? 说到此都不得不说下Hyper-V的差异磁盘 ...

  5. 合同主体列表添加两条合同主体,返回合并支付页面,支付总弹"请选择合同主体",删除后,竟然还能支付(改合并支付页面的字段状态)

    bug描述: 操作步骤:1.进入"商标续展"产品详情页面,点击立即购买(数量设为2),进入合并订单界面,选择合同主体,点击全部,清空所有合同主体2.新建合同主体保存,设置该合同主体 ...

  6. ViutualBox虚拟机里添加磁盘

    1.首先在VirtualBox界面给虚拟机添加一块磁盘 2. 启动系统,查看当前磁盘空间 Last login: Tue Mar 15 22:24:47 2016 from 192.168.1.100 ...

  7. kvm linux虚拟机在线扩展磁盘

    说明: 1) vmware ESXi虚拟化平台也支持这台在线扩展磁盘功能. 2) kvm虚拟机也支持在线扩展磁盘功能,在线扩展有特定的使用环境,主要用于不能随便停用的生产环境中. 3) 经过测试KVM ...

  8. vmware vsphere client 虚拟机动态添加磁盘

    0x00 事件 为了在虚拟机添加了磁盘之后,不重启机器加载新磁盘. 如上图,添加了一块 10G 的磁盘之后. 在虚拟机中是看不到新添加的磁盘: 0x01 解决 运行如下命令,通过重新扫描 SCSI ( ...

  9. VM删除快照失败,磁盘空间不足,只是删除了快照名字(全网唯一解决办法)

    原创: 删除之前的快照,发现只是把名字删除了, 看着这么多文件也不知道怎么删,一顿百度google也是没找到答案 于是就自己琢磨 因为删除快照的时候,是先把快照删除,然后删除无效的文件 所以先让这个盘 ...

随机推荐

  1. C++getline使用

    C++getline使用 一.心得 getline(cin,s);多去看函数的使用默认说明 二.使用 getline(istream &in, string &s) 从输入流读入一行到 ...

  2. c#LINQ表达树

    如果你已经用过LINQ, 你应该知道函数方式,以及包含的丰富的类库, 如果你仍不了解, 那根据下面的链接去熟悉一下 the LINQ tutorial,  lambda. 表达树提供了丰富的包含参数的 ...

  3. windows使用git记录

    1.免密码clone远程服务器代码开启ssh 生成私钥公钥 命令:查看自己配置的邮箱 git config user.name git config user.email 生成密钥:邮箱填写上面查看出 ...

  4. 菜鸟帮你跳过openstack配置过程中的坑[文末新添加福利]

    一:前言 对于一个以前做java全栈工程师而言,而且没学过Linux,很少用虚拟机(还是在大学的时候简单的用过),去配置openstack我想我入的坑肯定比有基础的一定要多,躺在每个坑中徘徊思索的时间 ...

  5. 008——php字符串中的处理函数(七)

    <?php /** *字符串处理函数(六)get_magic_quotes_runtime set_magic_quotes_runtime strip_tags *get_magic_quot ...

  6. CF 160D Edges in MST 最小生成树的性质,寻桥,缩点,批量处理 难度:3

    http://codeforces.com/problemset/problem/160/D 这道题要求哪条边存在于某个最小生成树中,哪条边不存在于最小生成树中,哪条边绝对存在于最小生成树中 明显桥边 ...

  7. hdu 3268 09 宁波 现场 I - Columbus’s bargain 读题 最短路 难度:1

    Description On the evening of 3 August 1492, Christopher Columbus departed from Palos de la Frontera ...

  8. jQuery中 attr和Prop的区别

    出自这里: http://www.365mini.com/page/jquery_noconflict.htm 在jQuery中,attr()函数和prop()函数都用于设置或获取指定的属性,它们的参 ...

  9. python高级编程之列表推导式

    1. 一个简单的例子 在Python中,如果我们想修改列表中所有元素的值,可以使用 for 循环语句来实现. 例如,将一个列表中的每个元素都替换为它的平方: >>> L = [1, ...

  10. Ethereum部署私有合约常见问题汇总

    常见问题 问题1 问题描述: callback contain no result Error: authentication needed: password or unlock 这里的问题是当前所 ...