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配置文件
删掉此行的uuid 不然导入配置时会报错,UUID只能是唯一参数删掉后导入时会自动生成一个新的UUID
UUID下面是内存,修改可以调整内存大小
vim 进去 /source 一共有2个source 第一个对应的 修改 ${name}.qcow2上面的代码已经写好
第二个source
上面的 mac地址删掉 如果不去掉生成多个虚拟机会因为MAC地址相同互相抢IP
试验脚本
通过上面的脚本成功复制并启动虚拟机 创造开发环境
这里还有一点 virsh console 可能进不去虚拟机
原因是创建的虚拟机内核参数没有修改
echo "ttyS0" >> /etc/securetty
grubby --update-kernel=ALL --args="console=ttyS0"
reboot
#### 重启就可以console进虚拟机了