吸烟
有害健康!

解决CAS因快速克隆或者快速部署出现多级镜像文件导致虚拟机无法进行主机迁移的方法

因为之前对虚拟机克隆或者部署的时候做的是快速克隆或者快速部署,系统对于这种快速的方式是以多级镜像的方式来实现,多台虚拟机使用同一个基础镜像文件,故无法迁移某一台虚拟机。如下图所示:

迁移的时候提示“该虚拟机使用的基础存储文件“/vms/images/VM2008-110-xdfxweb_base_0”保存在本地存储中,不允许以更改主机方式进行迁移”。

正是因为用户之前在生成这个虚拟机或者使用这个虚拟机的时候选择了快速克隆或者快速部署,导致这个虚拟机使用的磁盘文件是一个三级镜像文件,而且三级镜像文件和二级镜像文件在共享存储上,但是基础镜像文件在这台CVK的本地磁盘中,而以主机方式进行迁移的方式是只会迁移主机信息,前提是磁盘文件需要放置在共享存储上,但是此案例中的基础镜像文件是在本地磁盘中,所以导致无法进行迁移。

解决方案

第一种方法是将虚拟机的磁盘文件后台操作将多级镜像文件合并为一个文件,然后修改这个磁盘文件作为虚拟机使用的磁盘文件,操作的时候建议虚拟机关机操作。
第二种方法是对这个虚拟机进行完全克隆,完全克隆出新的虚拟机就是使用单一文件作为磁盘文件的,这样就可以进行以主机迁移了。

方案一

我们先在实验环境复现此问题,对一台虚拟机进行快速部署,部署出来两台虚拟机。以vsr-kuais_001为例,在前台页面上我们可以看到这台虚拟机的磁盘文件存储路径为/vms/images/vsr-kuais_001。

通过后台查看虚拟机的磁盘文件的信息

root@cvknode:~#cd/vms/images//进入磁盘文件所在的路径
root@cvknode:/mslimages#ls-h//查看有哪些文件
total 174M
-rw-r--r-- 1 root root 170M May 8 01:53 vsr2
-rw-r--r-- 1 root root 1.5M May 8 01:53 vs-kuais_001
-rw-r--r-- 1 root root 769K May 8 01:53 vsr-kuais_001_base_1
-rw------- 1 root root 1.5M May 7 14:41 vs-kuais_002
-rw------- 1 root root 769K May 7 14:41 vsr-kuais_002_base_1
root@cvknode:/mslimages#qemu-imginfovsr-kuais_0o11/查看这个磁盘文件的具体信息
image: vsr-kuais_001
file format: qcow2
virtual size: 80G (85899345920 bytes)
disksize:1.5M//此文件大小为1.5M
cluster_size:262144 backingfile:/ms/images/vsr-kuais_001_base_1/可以看到vsr-kuais_001_base_1这个文件是vsr-ku
ais_001的二级镜像文件
Format specific information:
compat: 1.1
lazy refcounts: false
root@cvknode:/mslimages#qemu-imginfovsr-kuais_001_base_11/我们在看vsr-kuais_001_base_
1这个文件的信息
image: vsr-kuais_001_base_1
file format: qcow2
virtual size: 80G (85899345920 bytes)
disksize:772K1文件大小是772K
cluster_size:262144
backingfile:/ms/images/sr21/他的基础镜像文件是vs2
Format specific information: compat: 1.1
lazy refcounts: false
root@cvknode:Nms/imagesqemu-imginfovsr21/查看vsr2文件,可以看到此文件为基础镜像文件
image: vsr2
file format: qow2
virtual size: 80G (85899345920 bytes) disk size: 170M
cluster_size: 262144
Format specific information: compat: 1.1
lazy refcounts: false
root@ cvknode:/vms/images#

为了不影响之前的镜像文件,可以先通过cp命令手动备份这三个磁盘文件,即使中间操作过程中对镜像有影响,也不会影响原来的文件,保障数据安全。

root@cvknode:/vms/images# cp vsr2 vsr2bf
root@cvknode:/vms/images# cp vsr-kuais_001_base_1 vsr-ks001bf
root@cvknode:/mslimages#cpvsr-kuais_001vsr-ksf
root@cvknode:/ms/mages#ls-1h1/查看存储路径有这三个文件,且大小和原来的文件一样
total 346M
-rw-r--r-- 1 root root 170M May 8 01:53 vsr2
-rw-r--r-- 1 root root 170M May 8 02:16 vsr2bf
-rw-r--r-- 1 root root 769K May 8 02:16 vsr-ks001bf
-rw-r--r-- 1 root root 1.5M May 8 02:17 vs-ksf
-rw-r---- 1 root root 1.5M May 8 01:53 vs-kuais_001
-rw-r--r-- 1 root root 769K May 8 01:53 vs-kuais_001_base_1
-rw------- 1 root root 1.5M May 7 14:41 vs-kuais_002
-rw------- 1 root root 769K May 7 14:41 vs-kuais 002 base 1
root@ cvknode:/vms/images#
使用qemu-img命令对三级文件进行合并
root@cvknode:/ms/images#qemu-imgconvert-Ogcow2-fqcow2vsr-ksfvsr-ksoo1bfvsr2bfvsroo 111合并镜像,生成一个新的文件,此过程需要一定的时间,根据磁盛文件的大小所需的时问不定,
请耐心等待,不要做任何操作。等执行成功。
root@cvknode:/vms/images#ls-lh1/再次查看路径可以看到新生成的这个磁盘文件
total 852M
-rw-r--r-- 1 root root 507M May 8 02:30 vsr001
-rw-r--r-- 1 root root 170M May 8 01:53 vsr2
-rw-r--r-- 1 root root 170M May 8 02:16 vsr2bf
-rw-r--r-- 1 root root 769K May 8 02:16 vsr-ks001bf
-rw-r--r-- 1 root root 1.5M May 8 02:17 vs-ksf
-rw-r--r-- 1 root root 1.5M May 8 01:53 vs-kuais_001
-rw-r--r-- 1 root root 769K May 8 01:53 vsr-kuais_001_base_1
-W------- 1 root root 1.5M May 7 14:41 vs-kuais_002
-rw------- 1 root root 769K May 7 14:41 vs-kuais_002_base_1
root@cvknode:/ms/images#qemu-imginfovsro011/查看这个磁盘文件的信息
image: vsr001
file format: qcow2
virtual size: 240G (257698037760 bytes) disk size: 506M
cluster_size: 262144
Format specific information: compat: 1.1
lazy refcounts: false
root@cvknode:/mslimages#

在前台将这个vsr-kuais-001的磁盘文件改为vsr001,先通过修改虚拟机删除原来的磁盘文件

点到磁盘这里,选择删除硬件来删除这个磁盘文件

删除成功之后再选择添加硬件

选择添加存储

类型为文件,在文件路径那里浏览路径

选择到这个vsr001文件

修改完之后可以在页面上看到磁盘文件改过来了。

修改完之后启动这个虚拟机看是否有问题,多等待一段时间,最后虚拟机启动正常,说明数据没有丢失,完全正常,然后就可以对这台虚拟机做迁移了,迁移到另外一台CVK主机上去。

把磁盘文件放在共享存储上,就可以选择只迁移主机的形式进行迁移。

方案二

选择“完全克隆”,在原来有三级镜像文件的虚拟机克隆出一个新的虚拟机,这个新的虚拟机是只有一个磁盘文件,方法如下:
vsr_kuais-002是一个有三级镜像文件的虚拟机,把他进行完全克隆,克隆出一台新的虚拟机。

之后系统进行克隆操作。

等待系统提示完全克隆成功。

然后查看这个新的虚拟机磁盘情况。

root@cvknode:/vms# cd /vms/images root@cvknode:/vms/images# Is
vsr001 vsr2bf
VSr-Ksf vsr-kuais_001_base_1 vsr-kuais_002_base_1 vsr2 vsr-ks001bf vsr-kuais 001 vsr-kuais 002 vs-kuais_002-clone root@cvknode:/vms/images# gemu-img info vsr-kuais_002-clone image: vsr-kuais_002-clone
file format: acow2
virtual size: 80G (85899345920 bytes) disk size: 170M
cluster_size: 262144
Format specific information:
compat: 1.1
lazy recounts: false
root@cvknode:/ms/images#f

我们使用这个新的虚拟机进行操作即可,可以删除原来的虚拟机,使用这个新的虚拟机进行替换。
如果存储空间允许的话在创建虚拟机的时候不建议使用快速克隆或快速部署,采用这种方式能节省存储空间和部署时间,但是会导致生成出来的虚拟机无法进行快照和像这种无法进行以主机形式迁移的结果。

赞(0) 打赏
未经允许不得转载:交换云生 » 解决CAS因快速克隆或者快速部署出现多级镜像文件导致虚拟机无法进行主机迁移的方法
分享到

评论 抢沙发

交换云生

始于1908

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫