首页 > 代码库 > 菜鸟玩云计算之十六:Ubuntu14.04上创建的虚拟机迁移到RHEL6.4
菜鸟玩云计算之十六:Ubuntu14.04上创建的虚拟机迁移到RHEL6.4
菜鸟玩云计算之十六:Ubuntu14.04上创建的RHEL6.4虚拟机迁移到RHEL6.4主机上
RHEL6.4 Server作为虚拟机的HOST,执行以下的命令检查配置和安装相关软件:
# egrep ‘^flags.*(vmx|svm)‘ /proc/cpuinfo 有显示说明CPU支持VT功能 2、在主板BIOS中开启CPU的Virtual Technolege(VT,虚化技术) 3、安装kvm # yum install kvm virt-* libvirt 4、检查kvm模块是否安装: # lsmod | grep kvm 显示相似以下: kvm_intel 53484 9 kvm 316506 1 kvm_intel 5、启动服务 # service libvirtd start
Ubuntu14.04上的 qemu比RHEL6.4上的版本号要新,导致在Ubuntu14.04创建的Guest(RHEL6.4)虚拟机拷贝到RHEL6.4HOST主机上不能执行。为解决问题,能够按以下的步骤:
1)在Ubuntu14.04上把qcow2格式的vm转成raw格式的。
2)在RHEL6.4上define raw格式的vm。
既然RHEL6.4支持raw格式的vm,那么能够在Ubuntu上直接创建 raw格式的虚拟机,然后拷贝到RHEL6.4。可是raw格式的vm占有空间太多,复制起来颇费时间。
查看虚拟机镜像格式命令:
$ qume-img info vm.img
image: vm.img
file format: raw
virtual size: 80G
disk size: 80G # 这个在開始创建的时候很小。稀疏文件。
因此能够採用以下的办法:
1)在Ubuntu14.04上用virt-manager安装kvm类型的虚拟机vm.img。默认就是raw格式。能够用80G。
2)拷贝这个vm.img和vm.xml到RHEL6.4上。注意文件夹位置一定是(能够用链接):
/etc/libvirt/qemu/vm.xml
/var/lib/libvirt/images/vm.img
3)改动vm.xml。此处须要注意,RHEL6.4使用的vm.xml和Ubuntu14.04上的略有不同。以下列出RHEL6.4上个的vm.xml(不同之处):
<domain type=‘kvm‘> <name>vm</name> <uuid>...</uuid> <memory unit=‘KiB‘>4194304</memory> <currentMemory unit=‘KiB‘>4194304</currentMemory> <vcpu placement=‘static‘>4</vcpu> <os> <type arch=‘x86_64‘ machine=‘rhel6.4.0‘>hvm</type> <boot dev=‘hd‘/> </os> <features> <acpi/> <apic/> <pae/> </features> <clock offset=‘utc‘/> <!-- <clock offset=‘localtime‘/> --> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>destroy</on_crash> <devices> <!-- diff below --> <emulator>/usr/libexec/qemu-kvm</emulator> <disk type=‘file‘ device=‘disk‘> <driver name=‘qemu‘ type=‘raw‘/> <source file=‘/var/lib/libvirt/images/vm.img‘/> <target dev=‘vda‘ bus=‘virtio‘/> </disk> <disk type=‘block‘ device=‘cdrom‘> <driver name=‘qemu‘ type=‘raw‘/> <target dev=‘hdc‘ bus=‘ide‘/> <readonly/> <address .../> </disk> ... <serial type=‘pty‘> <target port=‘0‘/> </serial> <console type=‘pty‘> <target type=‘serial‘ port=‘0‘/> </console> ... </devices> </domain>
不同之处在于:
<emulator>/usr/libexec/qemu-kvm</emulator>
$ virsh define vm.xml
5)启动和关闭:
$ virsh start vm
$ virsh shutdown vm
以下说明怎样virsh console登录虚拟机。首先须要在vm的/etc/init/下创建ttyS0.conf文件,内容例如以下:
# /etc/init/ttyS0.conf: # ttyS0 - agetty stop on runlevel [016] start on runlevel [345] instance ttyS0 respawn pre-start exec /sbin/securetty ttyS0 exec /sbin/agetty /dev/ttyS0 115200 vt100-nav
因为我们此时还没有正确配置vm的网络,无法ssh到虚拟机。因此须要使用libguestfs-tools拷贝ttyS0.conf到vm中。
1)首先主机RHEL6.4上须要安装libguestfs-tools:
$ yum install libguestfs-tools
2)在主机上创建并编辑好:ttyS0.conf,然后拷贝到vm中:
$ virsh shutdown vm # 必须首先关闭虚拟机 $ virt-copy-in -d vm ttyS0.conf /etc/init $ virt-ls -d vm /etc/init $ virt-cat -d vm /etc/init/ttyS0.conf
3)启动并console到vm:
$ virsh start vm $ virsh console vm
4)配置vm的网络。重新启动虚拟机。然后就能够ssh到vm上了。
大功告成!假设认为 vm小,能够resize。见我的其它文章!
菜鸟玩云计算之十六:Ubuntu14.04上创建的虚拟机迁移到RHEL6.4
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。