Manage KVM Hosts Through libvirt on Centos 6.4

System Environment:Centos 6.4 x86_64
Hardware:Lenovo IdeaCenter B300
要用KVM实现虚拟机系统,首先要确定主机是否支持虚拟化,通过/proc/cpuinfo可取得CPU信息!
:grep -E ‘(vmx|svm)’ /proc/cpuinfo | grep -E -o ‘(vmx|svm)’ /proc/cpuinfo若有任何信息打印基本上可以确定CPU是支持虚拟化的。
flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good aperfmperf pni dtes64 monitor ds_cplvmx est tm2 ssse3 cx16 xtpr pdcm xsave lahf_lm dts tpr_shadow vnmi flexpriority
flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good aperfmperf pni dtes64 monitor ds_cplvmx est tm2 ssse3 cx16 xtpr pdcm xsave lahf_lm dts tpr_shadow vnmi flexpriority  
#VMX:Intel VT-x 【Intel CPU】
#SVM:Secure Virtual Machine 【AMD CPU】
  安装qemu、kvm管理工具
yum install qemu-kvm libvirt python-virtinst
安装完成后,查看kvm模块是否加载,可用ls -l /dev/kvm是否存在,或是lsmod |grep kvm查看是否有信息打印。

[root@localhost kvm]# lsmod |grep kvm
kvm_intel 53484   0
kvm         316506 1 kvm_intel

若kvm模块未自动加载,用modprobe kvm_intel 加载【Intel CPU】或modprobe kvm_amd【AMD CPU】。
加载完毕后,修改/dev/kvm权限及属主。
chmod 644 /dev/kvm ; chown root:kvm /dev/kvm
将root添加至KVM用户组
 usermod -a -G kvm root

   在主机上创建网桥--让虚拟主机与现有网络互通安装bridge-utils :yum install bridge-utils
在/etc/sysconfig/network-scripts创建一个新文件名为ifcfg-br0,内容为:
DEVICE=”br0″
ONBOOT=yes
TYPE=Bridge
BOOTPROTO=static
IPADDR=192.168.0.21
NETMASK=255.255.255.0
GATEWAY=192.168.0.254

然后修改ifcfg-eth0配置文件,内容为:
DEVICE=eth0
HWADDR=44:87:FC:CD:E5:00
TYPE=Ethernet
UUID=a01b7c9f-2386-4aa2-967c-11dde58d13c1
ONBOOT=yes
BRIDGE=br0

修改完毕后重启网络:service network restart
网络重启后应可以看到新建的网桥信息
[root@localhost kvm]# brctl show
bridge name          bridge id            STP enabled      interfaces
br0               8000.4487fccde500      no                   eth0

    用libvirt 安装一个新的虚拟机操作系统

virt-install –connect qemu:///system \
–name Centos \                          #####虚拟主机名称
–ram 1024 \                             #####设定内存大小,单位M
–vcpus=1 \                              #####使用的CPU核心【线程】数
–disk path=/home/kvm/centos64.qcow2,device=disk,format=qcow2,bus=ide,cache=writeback,size=15 \
–network=bridge:br0 \
–cdrom /home/kvm/
CentOS-6.4-x86_64-minimal.iso \      #####用于系统安装的镜像文件
–hvm \
–graphics vnc,listen=0.0.0.0,port=5903 \ #####未安装图形环境,因此使用VNC访问
–virt-type=kvm \
–noautoconsole

  克隆虚拟机

virt-clone –connect=qemu:///system -o Centos -n Centos2 -f /home/kvm/centos2.qcow2
【-o:源有虚拟机名称 -n:指定用于新虚拟机的名称 -f:用于新虚拟主机的镜像文件】克隆完新虚拟机可用virsh list –all查看是否成功,接下来需要修改新的虚拟机的配置文件,如vnc监听端口等,避免与原有虚拟机冲突,配置文件位于/etc/libvirt/qemu中。启动新的虚拟机后,会发现网络不可用,应该IP跟MAC不对应造成的,在虚拟机中修改
/etc/udev/rules.d/70-persistent-net.rules文件,将MAC地址与网卡名称对应【需重启】,并修改网卡IP配置后重启网络。

    虚拟机查看及启停

启动虚拟机:virsh start [VirtualMachineName]
查看虚拟机列表:virsh list –all
启动虚拟机:virsh start [VirtualMachineName]
关闭虚拟机:virsh shutdown [VirtualMachineName] --需要虚拟机操作系统支持ACPI!
如虚拟主机操作系统为centos:yum install acpid
然后启动acpid:/etc/init.d/acpid start

    通过VNC访问虚拟机

由于上面定义了VNC端口,从远程计算机查看虚拟机需要对应端口访问,不同虚拟机配置文件中的VNC端口应该是不相同的。

要使用VNC访问虚拟机,需先安装VNCserver :yum install tigervnc-server
设置vnc访问密码:vncpasswd 
然后修改vncserver配置文件,在/etc/sysconfig/vncservers添加一行:
VNCSERVERS=”1:root”
让VNCServer开机自启:chkconfig –level 35 vncserver on
禁用iptables自启:chkconfig iptables off

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注