kvm virtual 克隆脚本踩坑

Butterfly ·
更新时间:2024-11-13
· 656 次阅读

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进虚拟机了
作者:zwlzzs



virtual kvm 脚本

需要 登录 后方可回复, 如果你还没有账号请 注册新账号