kvm相关安装包及其作用
qemu-kvm 主要的KVM程序包
python-virtinst 创建虚拟机所需要的命令行工具和程序库
virt-manager GUI虚拟机管理工具
virt-top 虚拟机统计命令
virt-viewer GUI连接程序,连接到已配置好的虚拟机
libvirt C语言工具包,提供libvirt服务
libvirt-client 为虚拟客户机提供的C语言工具包
virt-install 基于libvirt服务的虚拟机创建命令
bridge-utils 创建和管理桥接设备的工具

1.确定机器有VT
终端输入命令:
cat /proc/cpuinfo |grep vmx #intel cpu
cat /proc/cpuinfo |grpe svm # amd cpu
    如果flags: 里有vmx 或者svm就说明支持VT;如果没有任何的输出,说明你的cpu不支持,将无法使用KVM虚拟机。
2.确保BIOS里开启VT: Intel(R) Virtualization Tech [Enabled] 使用如下命令
lsmod | grep kvm modprobe kvm-intel
3.桥接网络
a、安装bridge-utils ,用来管理网桥的工具brctl

   yum -y install bridge-utils
   安装完之后systemctl restart network重启下网络

b、修改ifconfig-eno16777736的IP子网和网关dns,复制一份改名为ifcfg-br0文件,输入下面的内容,修改红色部分为真实相关环境。
TYPE="Bridge"
    BOOTPROTO="static"
    NAME="br0"
    DEVICE="br0"
    ONBOOT="yes"
    IPADDR="172.16.10.215" #要桥接的网卡上的 IP
    PREFIX="16"
    GATEWAY="172.16.11.1"
    DNS1="8.8.4.4"
    去掉UUID
c、修改ifconfig-eno16777736 直接在文件末尾插入一行

BRIDGE="br0"

d、重启网络,并查看网桥状态

systemctl restart network
brctl show

4、安装kvm

yum -y install libcanberra-gtk2 qemu-kvm.x86_64 qemu-kvm-tools.x86_64 libvirt.x86_64 libvirt-cim.x86_64 libvirt-client.x86_64 libvirt-java.noarch libvirt-python.x86_64 libiscsi-1.7.0-5.el6.x86_64 dbus-devel virt-clone tunctl virt-manager libvirt libvirt-python python-virtinst

5、安装x-windows,使用图形界面管理虚拟机
  yum groupinstall "X Window System"
6、安装中文字符,解决界面乱码问题
yum install dejavu-lgc-sans-fonts yum groupinstall "Fonts" -y
7、启用libvirt
     systemctl start libvirtd
     systemctl enable libvirtd
8、使用virt-manager管理kvm

本地需要安装xmanager和xshell工具 ,并使用xshell建立连接时勾选x11转移。

9. 上传ISO或者qcow2文件到/var/lib/libvirt/images #(该目录为KVM的镜像仓库)

使用xshell(使用步骤8进行连接)连接到主机之后,使用virt-manager进行创建虚拟机,需要在安装前进行配置,否则安装过程中键盘和鼠标没法使用。
systemctl stop/enable NetworkManager 关闭虚拟机里面的NetworkManager
问题:
实例不能PXE启动
问题如下:

创建vm没有任何报错,打开控制台提示:

SeaBIOS (versio xxxxxxx)
Machine UUID xxxxxxxxxx
iPXE (http://ipxe.org) 00.03.0 C980 PCI2.10 PnP PMM

导致这个问题的原因在于centos7.3源中的qemu1.5版本低,更新一下qemu版本即可
[root@compute01 ~]# yum install -y centos-release-qemu-ev.noarch

[root@compute01 ~]# yum update -y

查看更新后的版本为qemu2.6,之前是1.5

[root@compute01 ~]# virsh version
Compiled against library: libvirt 2.0.0
Using library: libvirt 2.0.0
Using API: QEMU 2.0.0
Running hypervisor: QEMU 2.6.0

kvm的快照、恢复、删除

这里用之前克隆的虚拟机vm1-clone进行快照操作
注:

1.快照实际上做的是虚拟机的XML配置文件,默认快照XML文件在/var/lib/libvirt/qemu/snapshot/虚拟机名/下
2.快照只支持qcow2磁盘格式的系统
一、虚拟机创建快照

virsh snapshot-create vm1-clone
Domain snapshot 1457941090 created
或创建快照的同时,再创建一个快照别名
virsh snapshot-create-as vm1-clone first_snap

二、查看虚拟机历史快照信息
[root@kvm01 ~]# virsh snapshot-list vm1-clone  

Name Creation Time State
1457941090 2016-03-14 15:38:10 +0800 running
ylhb 2016-03-14 16:23:04 +0800 running

三、查看虚拟机磁盘信息
[root@kvm01 ~]# qemu-img info /vm-images/vm1-clone.img

image: /vm-images/vm1-clone.img
file format: qcow2
virtual size: 10G (10737418240 bytes)
disk size: 3.7G
cluster_size: 65536
Snapshot list:
ID TAG VM SIZE DATE VM CLOCK
1 1457941090 212M 2016-03-14 15:38:10 00:50:13.868
2 ylhb 206M 2016-03-14 16:23:05 00:07:25.882
Format specific information:
compat: 1.1
lazy refcounts: true
可以看到里面已经含有虚拟机快照信息

四、查看当前快照信息
[root@kvm01 ~]# virsh snapshot-current vm1-clone  

ylhb
running

1457941090

1457943784

五、恢复到之前快照
[root@kvm01 ~]# virsh snapshot-revert vm1-clone 1457941090  

查看当前快照信息验证是否恢复成功:
[root@kvm01 ~]# virsh snapshot-current vm1-clone

1457941090
running
1457941090

六、删除指定快照
[root@kvm01 ~]# virsh snapshot-delete vm1-clone 1457941090  

Domain snapshot 1457941090 deleted