KVM

从rhel6开始 centos都是采用kvm 之前都是采用xen
openstack 底层的虚拟化技术都是kvm

kvm == kerner based virtual machine 基于内核的虚拟化技术

{虚拟化代码以模块的形式加载到linux内核中}
内核有关的默认centos6以上就装好的,只要安装管理软件就行

需要cpu去支持虚拟化技术

虚拟化技术: kvm/vmware workstation
1.纯软件模拟的 qemu/ linux 特点: 开源,对于硬件的要求低 速度慢 模拟磁盘网卡等…
KVM不模拟网卡磁盘等依赖 qemu来进行模拟 qemu/kvm

3.完全虚拟化:不需要去修改guest操作系统,直接运行在这种虚拟化上

4.半虚拟化技术:guest必须修改内核, XEN速度快
rhev—ovirt
openstack

安装KVM本质就是安装软件

yum -y install virt-manager virt-install virtsh libvirt*

使用virt-manager安装centos7.4虚拟机会/var/lib/libvirt/images/目录下生成虚拟硬盘在/etc/libvirt/qemu/下生成配置文件

克隆脚本的思路就是 复制xml 根据之前的盘克隆新的qcow2盘,修改XML对应新的盘然后virsh define 导入

#!/bin/bash
read -p 'new host name:' name ##交互定义名字变量
cp /etc/libvirt/qemu/backup.xml /var/lib/libvirt/qemu/${name}.xml  ###将xml 复制定义
read -p 'how much disk is 30G 50G 100G :'  disk  ##交互定义硬盘大小
qemu-img create -f qcow2 -b /var/lib/libvirt/images/backup.qcow2  /var/lib/libvirt/images/${name}.qcow2  ${disk} ##根据后端盘生成新的磁盘
sed -i '10d ' /var/lib/libvirt/qemu/${name}.xml  ##去掉UUID 
sed -i 's!backup!'${name}'!g' /var/lib/libvirt/qemu/${name}.xml ##修改NAME和SOURCE硬盘对应的xml
sed -i '74d ' /var/lib/libvirt/qemu/${name}.xml ###修改MAC 网卡地址
virsh define /var/lib/libvirt/qemu/${name}.xml ###导入配置
virsh start ${name}
注意这里有2个坑 查看 backup.xml配置文件

kvm启用vnc kvm virtual_xml


删掉此行的uuid 不然导入配置时会报错,UUID只能是唯一参数删掉后导入时会自动生成一个新的UUID

UUID下面是内存,修改可以调整内存大小

kvm启用vnc kvm virtual_xml_02


vim 进去 /source 一共有2个source 第一个对应的 修改 ${name}.qcow2上面的代码已经写好

第二个source

kvm启用vnc kvm virtual_虚拟化技术_03


上面的 mac地址删掉 如果不去掉生成多个虚拟机会因为MAC地址相同互相抢IP

试验脚本

kvm启用vnc kvm virtual_虚拟化技术_04


通过上面的脚本成功复制并启动虚拟机 创造开发环境

这里还有一点 virsh console 可能进不去虚拟机

原因是创建的虚拟机内核参数没有修改

echo "ttyS0" >> /etc/securetty
grubby --update-kernel=ALL --args="console=ttyS0"
reboot 
    #### 重启就可以console进虚拟机了