环境要求:
rhel5.4 64位系统以上版本才支持。
KVM 2.6.20以上,CPU支持虚拟化指令集(Intel-VT | AMD-V)
物理主机BIOS上设置CPU支持虚拟化、虚拟机设置中勾选Intel VT-x或AMD-V/RVI(V)
一、安装RHEL6/7或CENTOS6/7 ,英文最小化安装,配置好yum源,关闭iptables和selinux;
二、安装必要的软件:
安装kvm模块:
#yum install qemu-kvm.x86_64
安装kvm调试工具:
#yum install qemu-kvm-tools.x86_64
安装python组件,主要用来记录创建vm时的xml文件:
#yum install python-virtinst.noarch
安装qemu组件,使用qemu命令来创建磁盘,启动虚拟机时用到:
#yum install qemu-img.x86_64
安装网络支持工具:
#yum install bridge-utils.x86_64
安装虚拟机管理工具,使用virsh或者virt-manager来管理虚拟机
#yum install libvirt virt-manager
三、安装以上软件之后,重新启动,检查kvm模块是否安装完成:
#lsmod | grep kvm 会显示两个模块:
kvm_intel/kvm_amd
kvm
四、检查虚拟化软件的安装情况:
#virsh list –all
Id Name State
-------------------------------------------------
出现以上表名已经安装成功。
五、设置网络bridge模式:
#cd /etc/sysconfig/network-scripts/
#vim ifcfg-eth0
在该文件中新加一行BRIDGE=br0
新建一个桥接网卡文件:
#vim ifcfg-br0 内容如下:
DEVICE=br0
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=static
NM_CONTROLLED=no
IPADDR=
NETMASK=
GATEWAY=
创建好该文件之后关闭NetworkManager服务,重启network服务;
#serviceNetworkManager stop
#service networkrestart 能正常重启表明网络设置成功。
六、创建虚拟机,有两种方法:一是通过virt-manager图形化界面创建;二是通过virt-install命令创建。
A、命令创建如下:
#virt-install–name vmtest1 –ram 4096 –vcpus=2 /
–diskpath=/data_kvm/store/test.img,size=50 ,format=raw,bus=virtio /
--networkbridge=br0,model=virtio –cdrom /data_kvm/iso/rhel-6.7-x86_64.iso /
--vnc –accelerate –force–autostart
参数含义:
--name 为虚拟机起个名字;
--ram 分配给虚拟机的内存,单位MB;
--vcpus 分配给虚拟机的cpu个数;
--cdrom 指定安装文件的绝对路径;
--disk 指定虚拟机img文件路径,如果虚拟机使用lvm分区,这里指向到lvm的分区;
size 虚拟机文件大小,单位GB;
bus 虚拟机磁盘使用的总线类型,为了使虚拟机达到好的性能,这里使用virtio;
cache 虚拟机磁盘的cache类型;
--network bridge 指定桥接网卡;
model 网卡模式,这里使用性能更好的virtio;
--graphics 图形参数;
B、图形化创建如下:
宿主机上安装vnc-server:
#yum installtigervnc-server
#vim ~/.vnc/xstartup 最后一行改为:gnome-session&
#vim/etc/sysconfig/vncservers 添加一行:VNCSERVERS=”1:root”
#vncpasswd 设置vnc连接密码;
#service vncserver start
#vncserver &
#service iptables stop
#setenforce 0
之后在windows客户端打开vnc.exe连接即可在windows客户机上远程打开linux的图形界面。连接时填写IP:1其中IP为linux主机的IP,1表示第一个桌面;
打开宿主机的图形界面之后,打开一个terminal终端,键入命令virt-manager会打开一个虚拟机管理窗口如下:
在这个窗口中可以管理虚拟机也可以创建新的虚拟机。
七、使用KVM命令集管理虚拟机
7.1、查看命令帮助:
#virsh –h
7.2、查看KVM的配置文件存放目录:
#ls /etc/libvirt/qemu
7.3、查看虚拟机的状态:
#virsh list –all
7.4、虚拟机的开机与关机:
首先要确认acpid服务安装并运行:
#service acpid status
#virsh shutdown centos7.0
#virsh start centos7.0
7.5、强制关闭虚拟机的电源:
#virsh destroy centos7.0
7.6、通过配置文件启动虚拟机:
#virsh create /etc/libvirt/qemu/centos7.0.xml
7.7、挂起虚拟机:
#virsh suspend centos7.0
7.8、恢复挂起的虚拟机:
#virsh resume centos7.0
7.9、配置虚拟机伴随宿主机自动启动:
#virsh autostart centos7.0
7.10、导出虚拟机的配置:
#virsh dumpxml centos7.0 > /etc/libvirt/qemu/centos7.0.xml
7.11、修改虚拟机的配置信息:
#virsh edit centos7.0
#vim /etc/libvirt/qemu/centos7.0.xml
八、KVM的快照管理
注:
1. 快照实际上做的是虚拟机的XML配置文件,默认快照XML文件在/var/lib/libvirt/qemu/snapshot/虚拟机名/下;
2. 快照只支持qcow2磁盘格式的系统。
8.1、虚拟机创建快照
[root@kvm ~]# virshsnapshot-create vm1
或创建快照的同时,再创建一个快照别名:
[root@kvm ~]# virsh snapshot-create-as vm1first_snap
8.2、查看虚拟机历史快照信息
[root@kvm ~]# virshsnapshot-list vm1
8.3、查看虚拟机磁盘信息
[root@kvm ~]# qemu-imginfo /vm-images/vm1.img
8.4、查看当前快照信息
[root@kvm ~]#virshsnapshot-current vm1
8.5、恢复到之前快照
[root@kvm ~]# virshsnapshot-revert vm1 first-snap
查看当前快照信息是否恢复成功:
[root@kvm ~]# virshsnapshot-current vm1 //查看输出的name是不是要恢复的快照name。
8.6、删除指定快照
[root@kvm ~]#virshsnapshot-delete vm1 first-snap