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 ESXi 3.5
二、安?kvm
[root@target ~]# yum install -y qemu-kvm.x86_64
qemu-kvm-tools.x86_64 #安装kvm内核
[root@target ~]# yum install libvirt.x86_64 libvirt-cim.x86_64
libvirt-client.x86_64 libvirt-java.noarch
libvirt-python.x86_64 #安装virt管理工具
[root@target ~]# modprobe
kvm #加载kvm内核
[root@target ~]# modprobe kvm-intel #intel
cpu加载kvm-intel内核,要支持全虚拟化,必须开启;要求cpu支持,通过bios可设置。
[root@target ~]# modprobe kvm-amd #amd
cpu加载kvm-intel
三、安装guest虚拟机
1、直接通过virt-manager安装、管理虚拟机(略)
2、通过命令行安装guest虚拟机
[root@target ~]# yum install virt-viewer
#开启图形控制台安装虚拟客户机需要,
[root@target ~]# virt-install
#安装选项可用virt-install --help查看
--name node4
#虚拟机名
--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'
--disk
path=/virhost/node7.img,device=disk,bus=virtio,size=20,sparse=true
#虚拟机所用磁盘或镜像文件,size大小G
--bridge=br0
#指定网络,采用透明网桥
--noautoconsole
#不自动开启控制台
--pxe
#网络安装
四、利用virsh对虚拟机管理
1、开关机
[root@target ~]# virsh start node4
#开机
[root@target ~]# virsh create /etc/libvirt/qemu/node4.xml
#直接通过主机配置文档启动主机
[root@target ~]# virsh shutdown node4 #关机
[root@target ~]# virsh destroy node4 #强制关闭电源
[root@target ~]# virsh list
--all
#查看虚拟机状态
Id
名称
状态
----------------------------------
18
node4
running
-
node5
关闭
-
win8
关闭
[root@target ~]# virsh define /etc/libvirt/qemu/node6.xml
#使用虚拟描述文档建立虚拟机,可用virsh edit node6修改node6的配置文件
[root@target ~]# virsh start node6
#启动虚拟机
5 为虚拟机开启vnc
[root@target ~]# virsh edit node4
#编辑node4的配置文件;不建议直接通过vim node4.xml修改。
#port='-1'
autoport='yes':port自动分配,监听回环网络(virt-manager管理需要listen='127.0.0.1'),无密码
改为
#固定vnc管理端口5904,不自动分配,vnc密码xiaobai,监听所有网络
2. 远程vnc访问地址:192.168.32.40:5904
五、存储池和存储卷的管理
[root@target virhost]# virsh vol-info
/virhost/vmware/node6.img #查看卷信息
名称: node6.img
类型: 文件
容量: 10.00 GB
分配: 136.00 KB
2.创建 KVM 主机存储域(略)
virt-v2v 在迁移虚拟机的过程中,需要拷贝被迁移虚拟机到 KVM 主机预先定义的存储池中。
3.创建 KVM 主机网络接口(略)
虚拟机在迁移之后将连接 KVM 主机网络, 因此主机必须有一个与之相匹配的网络接口,比如说网桥。
4.在 KVM 主机上创建或修改 $HOME/.netrc 文件,添加 VMware ESXi 服务器的用户名和密码。
[root@target ~]# cat ~/.netrc
machine 192.168.2.251 login root password xxxxxx
[root@target ~]# chmod 0600 ~/.netrc
5.Vmware ESXi到KVM的迁移
[root@target ~]# virt-v2v -ic esx://192.168.2.251/?no_verify=1 -op
virhost -b br0 ipserver
** HEAD
https://192.168.2.251/folder/tserver21/RHEL4.6-flat.vmdk?dcPath=ha-datacenter&dsName=ESX35-bak%3Astorage1
==> 401 Unauthorized
** HEAD
https://192.168.2.251/folder/tserver21/RHEL4.6-flat.vmdk?dcPath=ha-datacenter&dsName=ESX35-bak%3Astorage1
==> 200 OK
** GET
https://192.168.2.251/folder/tserver21/RHEL4.6-flat.vmdk?dcPath=ha-datacenter&dsName=ESX35-bak%3Astorage1
==> 200 OK (2084s)
unknown filesystem /dev/hda
unknown filesystem /dev/fd0
virt-v2v: Installation failed because the following files
referenced in the configuration file are required, but missing:
rhel/4/kernel-smp-2.6.9-89.EL.i686.rpm
virt-v2v: 非 virtio 驱动程序配置的 tserver21
#所有选项可通过配置文件/etc/virt-v2v.conf来指定
#-op:指定用于转换后的存储域(pool),virhost
#-b:指定网络为网桥br0
#-ic:指定要转换的源地址
[root@target kvm_node]# virsh list --all
Id
名称
状态
----------------------------------
1
node4
running
-
node5
关闭
-
tserver21
关闭
-
win8
关闭
[root@target kvm_node]# virsh start tserver21
6.KVM到KVM迁移
[root@target kvm_node]# virt-v2v -ic
qemu+ssh://192.168.32.179/system -op virhost -b br0 node6
root@192.168.32.179's password:
root@192.168.32.179's password:
unknown filesystem label SWAP-vda3
virt-v2v: The connected hypervisor does not support a machine type
of rhel5.4.0. It will be set to the current default.
virt-v2v: virtio 驱动程序配置的 node6
[root@target kvm_node]# virsh list --all
Id
名称
状态
----------------------------------
1
node4
running
-
node5
关闭
-
node6
关闭
-
tserver21
关闭
-
win8
关闭
[root@target kvm_node]# virsh start node6