KVM虚拟机的创建管理和迁移.docx
《KVM虚拟机的创建管理和迁移.docx》由会员分享,可在线阅读,更多相关《KVM虚拟机的创建管理和迁移.docx(10页珍藏版)》请在冰豆网上搜索。
![KVM虚拟机的创建管理和迁移.docx](https://file1.bdocx.com/fileroot1/2023-1/22/e0430758-bd80-4659-a21f-6dd6634e77bb/e0430758-bd80-4659-a21f-6dd6634e77bb1.gif)
KVM虚拟机的创建管理和迁移
KVM虚拟机的创建、管理与迁移
2012-03-1414:
29:
55 我来说两句
收藏 我要投稿 [字体:
小大]
kvm虚拟机管理
一、环境
role hostname ip OS
kvm_server target 192.168.32.40/24 rhel6.0_x64
vir_guest1 node4 192.168.32.34/24 rhel5.5_i386
vir_guest2 node5 192.168.32.35/24 rhel5.5_i386
manager manager 192.168.32.33/24 rhel5.5_i386
ESXi ESXi 192.168.2.251/24 ESXi3.5
二、安裝kvm
[root@target~]#yuminstall-yqemu-kvm.x86_64qemu-kvm-tools.x86_64 #安装kvm内核
[root@target~]#yuminstalllibvirt.x86_64libvirt-cim.x86_64libvirt-client.x86_64libvirt-java.noarch libvirt-python.x86_64#安装virt管理工具
[root@target~]#modprobekvm #加载kvm内核
[root@target~]#modprobekvm-intel #intelcpu加载kvm-intel内核,要支持全虚拟化,必须开启;要求cpu支持,通过bios可设置。
[root@target~]#modprobekvm-amd #amdcpu加载kvm-intel
[root@target~]#modprobe-ls|grepkvm #查看内核是否开启
kernel/arch/x86/kvm/kvm.ko
kernel/arch/x86/kvm/kvm-intel.ko
kernel/arch/x86/kvm/kvm-amd.ko
[root@target~]#modprobe-ls|grepkvm-intel
kernel/arch/x86/kvm/kvm-intel.ko
三、安装guest虚拟机
1、直接通过virt-manager安装、管理虚拟机(略)
2、通过命令行安装guest虚拟机
[root@target~]#yuminstallvirt-viewer #开启图形控制台安装虚拟客户机需要,
[root@target~]#virt-install\ #安装选项可用virt-install--help查看
--namenode4\ #虚拟机名
--ram=1024\ #分配内存大小,MB
--arch=x86_64\ #模拟的CPU构架
--vcpus=1\ #配置虚拟机的vcpu数目
--check-cpu\ #检查确定vcpu是否超过物理CPU数目,如果超过则发出警告。
--os-type=linux\ #要安装的操作系统类型,例如:
'linux'、'unix'、'windows'
--os-variant=rhel5\ #操作系统版本,如:
'fedora6','rhel5','solaris10','win2k'
--diskpath=/virhost/node7.img,device=disk,bus=virtio,size=20,sparse=true\ #虚拟机所用磁盘或镜像文件,size大小G
--bridge=br0\ #指定网络,采用透明网桥
--noautoconsole\ #不自动开启控制台
--pxe #网络安装
四、利用virsh对虚拟机管理
1、开关机
[root@target~]#virshstartnode4 #开机
[root@target~]#virshcreate/etc/libvirt/qemu/node4.xml#直接通过主机配置文档启动主机
[root@target~]#virshshutdownnode4 #关机
[root@target~]#virshdestroynode4 #强制关闭电源
[root@target~]#virshlist--all #查看虚拟机状态
Id名称 状态
----------------------------------
18node4 running
-node5 关闭
-win8 关闭
2、添加删除虚拟机
[root@target~]#virshdefine/etc/libvirt/qemu/node5.xml #根据主机配置文档添加虚拟机
[root@target~]#virshlist--all #node5已经添加
Id名称 状态
----------------------------------
18node4 running
-node5 关闭
-win8 关闭
[root@target~]#virshundefinenode5 #移除虚拟机
[root@target~]#ls/etc/libvirt/qemu
networks node4.xml win8.xml
[root@target~]#virshlist--all #node5已经被移除
Id名称 状态
----------------------------------
18node4 running
-win8 关闭
3、远程管理虚拟机(qemu+ssh连接)
[root@target~]#yuminstallvirt-viewer
[root@target~]#exportDISPLAY=192.168.40.18:
0.0
[root@target~]#virt-viewer-cqemu///systemnode4 #本地管理虚拟机,system:
获取system权限,注意qemu后是三个/
[root@manager~]#virt-viewer-cqemu+ssh:
//root@192.168.32.40/systemnode4 #远程linux通过virt-viewer+ssh管理虚拟机
Xlib:
extension"RANDR"missingondisplay"192.168.40.18:
0.0".
root@192.168.32.40'spassword:
root@192.168.32.40'spassword:
#会弹出virt-viwer的gtk管理界面
4、使用已存在的虚拟机配置文档安裝新的虚拟机
[root@target~]#qemu-imgcreate-fqcow2/virhost/kvm_node/node6.img20G
#为新建虚拟机生产磁盘镜像文件
[root@target~]#virshlist
Id名称 状态
----------------------------------
18node4 running
[root@target~]#virshdumpxmlnode4>/etc/libvirt/qemu/node6.xml
#导出虚拟机node6的硬件配置信息为/etc/libvirt/qemu/node6.xml
[root@target~]#vim/etc/libvirt/qemu/node6.xml
#修改node6的id号
node6 #虚拟机node6的name
4b7e91eb-6521-c2c6-cc64-c1ba72707fc7 #uuid必须修改,否则会和node4的冲突
524288
524288
1
hvm
destroy
restart
restart
/usr/libexec/qemu-kvm
#指定新虚拟机的硬盘文件
52:
00:
69:
d5:
c7'/>
52:
00:
69:
d5:
d7'/>
[root@target~]#virshdefine/etc/libvirt/qemu/node6.xml
#使用虚拟描述文档建立虚拟机,可用virsheditnode6修改node6的配置文件
[root@target~]#virshstartnode6
#启动虚拟机
5为虚拟机开启vnc
[root@target~]#virsheditnode4 #编辑node4的配置文件;不建议直接通过vimnode4.xml修改。
#port='-1'autoport='yes':
port自动分配,监听回环网络(virt-manager管理需要listen='127.0.0.1'),无密码
改为
#固定vnc管理端口5904,不自动分配,vnc密码xiaobai,监听所有网络
2.远程vnc访问地址:
192.168.32.40:
5904
五、存储池和存储卷的管理
1.创建KVM主机存储池
1).创建基于文件夹(目录)的存储池
[root@targetvirhost]#virshpool-define-asvmware_pool--typedir--target/virhost/vmware
#定义存储池vmware_pool
或
[root@targetvirhost]#virshpool-create-as--namevmware_pool--typedir--target/virhost/vmware
#创建存储池vmware_pool,类型为文件目录,/virhost/vmware,与pool-define-as结果一样
2).创建基于文件系统的存储池
[root@targetvirhost]#virshpool-define-as--namevmware_pool--typefs--source-dev/dev/vg_target/LogVol02--source-formatext4--target/virhost/vmware
或
[root@targetvirhost]#virshpool-create-as--namevmware_pool--typefs--source-dev/dev/vg_target/LogVol02--source-formatext4--target/virhost/vmware
3).查看存储池信息
[root@targetvirhost]#virshpool-infovmware_pool #查看存储域(池)信息
名称:
vmware_pool
UUID:
2e9ff708-241f-fd7b-3b57-25df273a55db
状态:
running
Persistent:
no
自动启动:
no
容量:
98.40GB
分配:
18.39GB
可用:
80.01GB
4).启动存储池
[root@targetvirhost]#virshpool-startvmware_pool #启动存储池
[root@targetvirhost]#virshpool-list
名称 状态 自动开始
-----------------------------------------
default 活动 yes
virhost 活动 yes
vmware_pool 活动 no
5)销毁存储域,取消存储池
[root@targetvirhost]#virshpool-destroyvmware_pool #销毁存储池
[root@targetvirhost]#virshpool-list--all
名称 状态 自动开始
-----------------------------------------
default 活动 yes
virhost 活动 yes
vmware_pool 不活跃 no
[root@targetvirhost]#virshpool-undefinevmware_pool #取消存储池的定义
[root@targetvirhost]#virshpool-list--all
名称 状态 自动开始
-----------------------------------------
default 活动 yes
virhost 活动 yes
2.创建了存储池后,就可以创建一个卷,这个卷是用来做虚拟机的硬盘
[root@targetvirhost]#virshvol-create-as--poolvmware_pool--namenode6.img--capacity10G--allocation1G--formatqcow2
#创建卷node6.img,所在存储池为vmware_pool,容量10G,初始分配1G,文件格式类型qcow2
[root@targetvirhost]#virshvol-info/virhost/vmware/node6.img #查看卷信息
名称:
node6.img
类型:
文件
容量:
10.00GB
分配:
136.00KB
3.在存储卷上安装虚拟主机
[root@targetvirhost]#virt-install--connectqemu:
///system\
-nnode7\
-r512\
-f/virhost/vmware/node7.img\
--vnc\
--os-type=linux\
--os-variant=rhel6 \
--vcpus=1\
--networkbridge=br0\
-c/mnt/rhel-server-6.0-x86_64-dvd.iso
六、虚拟机的迁移(vmware2kvm)
1.安装软件
[root@target~]#yuminstall-yvirt-v2v.x86_64
[root@target~]#rpm-ivhlibguestfs-winsupport-1.0-7.el6.x86_64.rpm virtio-win-1.2.0-1.el6.noarch.rpm
#虚拟机为windows时需要libguestfs-winsupport包来支持NTFS文件系统和virtio-win包来支持Windowspara-virtualized存储和网络设备驱动
2.创建KVM主机存储域(略)
virt-v2v在迁移虚拟机的过程中,需要拷贝被迁移虚拟机到KVM主机预先定义的存储池中。
3.创建KVM主机网络接口(略)
虚拟机在迁移之后将连接KVM主机网络,因此主机必须有一个与之相匹配的网络接口,比如说网桥。
4.在KVM主机上创建或修改$HOME/.netrc文件,添加VMwareESXi服务器的用户名和密码。
[root@target~]#cat~/.netrc
machine192.168.2.251loginrootpasswordxxxxxx
[root@target~]#chmod0600~/.netrc
5.VmwareESXi到KVM的迁移
[root@target~]#virt-v2v-icesx:
//192.168.2.251/?
no_verify=1-opvirhost-bbr0ipserver
**HEADhttps:
//192.168.2.251/folder/tserver21/RHEL4.6-flat.vmdk?
dcPath=ha-datacenter&dsName=ESX35-bak%3Astorage1==>401Unauthorized
**HEADhttps:
//192.168.2.251/folder/tserver21/RHEL4.6-flat.vmdk?
dcPath=ha-datacenter&dsName=ESX35-bak%3Astorage1==>200OK
**GEThttps:
//192.168.2.251/folder/tserver21/RHEL4.6-flat.vmdk?
dcPath=ha-datacenter&dsName=ESX35-bak%3Astorage1==>200OK(2084s)
unknownfilesystem/dev/hda
unknownfilesystem/dev/fd0
virt-v2v:
Installationfailedbecausethefollowingfilesreferencedintheconfigurationfilearerequired,butmissing:
rhel/4/kernel-smp-2.6.9-89.EL.i686.rpm
virt-v2v:
非virtio驱动程序配置的tserver21
#所有选项可通过配置文件/et