一、关于虚拟化
1、什么是虚拟化
虚拟化就是把硬件资源从物理的方式转变为逻辑的方式,打破原有物理结构,使用用户可以灵活管理这些资源,并且允许1台物理机上运行多个操作系统,以实现资源利用率最大化和灵活管理的一项技术。
2、虚拟化的优势
(1)减少服务器数量,降低硬件的采购成本。
(2)资源利用率最大化
(3)降低机房空间、散热、用电消耗的成本
(4)硬件资源可动态调整,提高企业IT业务灵活性
(5)高可用性
(6)在不断服务的情况下进行物理硬件调整
(7)具备更高效的灾备能力
3、KVM虚拟化
KVM自Linux 2.6.20版本后就直接整合Linux内核中,它依托CPU虚拟化指令集(如intel-VT、AMD-V)实现高性能的虚拟化的支持。由于与Linux内核高度整合,因此在性能、安装性、兼容性、稳定性上都有很好的表现。为了充分提高Linux系统的利用率,可以部署KVM,在物理机上运行多个业务系统。
4、和Docker区别
Docker 比虚拟机更节省内存,启动更快,不需要安装从操作系统。
Docker将容器与主操作系统隔离,并将各个容器互相隔离。
虚拟机隔离不同用户,Docker隔离不同应用。

二、搭建KVM虚拟化平台
1、系统环境
1)一台桌面环境版本的CentOS7
2) 开启CPU虚拟化

2、安装KVM所需软件
yum install -y \
qemu-kvm.x86_64 \ //安装KVM模块
qemu-kvm-tools.x86_64 \ //安装KVM调试工具,可不安装
python-virtinst.noarch \ //python组件,记录创建VM是的xml组件
qemu-img.x86_64 \ //qemu组件,创建磁盘、启动虚拟机等
bridge-utils.x86_64 \ //网路支持工具
libvirt \ //虚拟机管理工具
virt-manager \ //图形界面管理工具
openssh-askpass //图形界面口令组件

3、验证当前主机是否满足KVM的运行条件
cat /proc/cpuinfo | egrep -o "vmx|smv" //intel CPU过滤vmx,AMD CPU过滤smv
modprobe kvm
lsmod | grep kvm

4、创建桥接网卡
vi /etc/sysconfig/network-scripts/ifcfg-ens33 //末尾添加 同时要把网卡的IP相关参数去掉
BRIDGE="br0"
KVM虚拟化的部署及使用
vi /etc/sysconfig/network-scripts/ifcfg-br0 //创建桥接网卡配置文件
DEVICE=br0
BOOTPROTO=static
#NM_CONTROLLED=no
ONBOOT=yes
TYPE=Bridge
IPADDR=192.168.100.30
NETMASK=255.255.255.0
KVM虚拟化的部署及使用

systemctl restart network //重启网卡

5、创建系统和镜像存储池
virt-manager //在图形终端数入
KVM虚拟化的部署及使用
添加虚拟机文件存放位置
KVM虚拟化的部署及使用
KVM虚拟化的部署及使用
添加镜像文件存放位置
事先已经上传镜像文件到指定目录
KVM虚拟化的部署及使用
之后刷新卷列表
KVM虚拟化的部署及使用
6、新建虚拟机
KVM虚拟化的部署及使用
KVM虚拟化的部署及使用
KVM虚拟化的部署及使用
KVM虚拟化的部署及使用
KVM虚拟化的部署及使用
KVM虚拟化的部署及使用
KVM虚拟化的部署及使用
KVM虚拟化的部署及使用
7、安装centos7(步骤如VMware安装)
KVM虚拟化的部署及使用

三、使用命令工具管理虚拟机
1、安装命令工具

    yum install acpid -y    
    systemctl start acpid   //启动
    virsh list --all    //查看虚拟机状态   

KVM虚拟化的部署及使用

    virsh shutdown centos7.0    //相当于init 0
    virsh start centos7.0    //开机
    virsh destroy centos7.0     //强制关闭电源
    virsh suspend centos7.0     //挂起
    virsh resume centos7.0  //恢复
    virsh autostart centos7.0   //伴随随宿主机自启动

2、导出虚拟机

virsh dumpxml centos7.0 > /etc/libvirt/qemu/c02.xml

3、删除KVM虚拟机(配置文件被删除,磁盘文件不会删除)

  virsh shutdown centos7.0     //关机
    virsh undefine centos7.0      //删除

4、文件管理(查看文件)
yum install libguestfs-tools -y
virt-cat -a /date/cent/centS.qcow2 /etc/sysconfig/network/ifcfg-ens33 //查看网卡信息
5、克隆

yum install virt-install -y     //安装克隆工具
virsh list --all    //查看要克隆的机器名
virt-clone -o 源虚拟机名称 -n 克隆后的虚拟机名称 -f 克隆后的虚拟机磁盘存储卷路径(磁盘文件qcow2)
virsh start 克隆后的虚拟机名称
virsh shutdown centos7.0
virt-clone -o centos7.0 -n cent -f /date/cent/cent2.qcow2   

KVM虚拟化的部署及使用
KVM虚拟化的部署及使用
virsh start cent //开启克隆的系统

6、快照

virsh snapshot-create centos7.0 //创建centos7.0的快照
virsh snapshot-current centos7.0 //查看当前快照(状态)
virsh snapshot-list centos7.0 //查看快照详细信息
KVM虚拟化的部署及使用
virsh snapshot-revert centos7.0 1549805580 //恢复快照
virsh snapshot-delete centos7.0 1549805580ini //删除快照

有关KVM动态迁移可点击KVM动态迁移