1、虚拟机的组成:
磁盘镜像文件:虚拟机的硬盘,/var/lib/libvirt/images/xxxx.qcow2
XML文件:虚拟机配置声明文件,/etc/libvirt/qemu/xxxx.xml
2、磁盘镜像文件:
RAW:一次性分配大小
QCOW2:copy on write
3、qemu-img命令:(管理镜像盘,多种格式)
qemu-img create -f qcow2 node1.qcow2 50G #创建大小为50G的磁盘镜像,-f指定了类型
qemu-img info node1.qcow2 #查看磁盘信息
qemu-img create -b disk.qcow2 -f qcow2 node1.qcow2 50G # -b指定了后端盘
# 后端盘copy on write
# 首先从前端盘读取数据,如果没有,则从后端盘读取数据,并把数据写入到前端盘
# 对前端盘进行修改,后端盘不会改变
# 前端盘的大小应该大于等于后端盘
# 后端盘可以多层嵌套,后端盘也可以指定自己的后端盘。前端盘-->后端盘-->后端盘....
4、虚拟机配置声明文件:
# 配置文件,到官网上找模板,自己修改
vim /etc/libvirt/qemu/xxxx.xml
<domain type='kvm'>
<name>node1</name> #虚拟机名称,通过virsh list查看
<memory unit='KB'>2248000</memory> #最大内存大小
<currentMemory unit='KB'>2248000</currentMemory > #当前内存大小
<vcpu placement='static'>2</vcpu> #cpu个数
<disk type='file' device='disk'> #磁盘
<driver name='qemu' type='qcow2'/> #磁盘类型
<source file='/var/lib/libvirt/images/node1.qcow2'/> #磁盘路径
<target dev='vda' bus='virtio'/> #磁盘名称,通过fdisk -l查看
</disk>
...
<interface type='bridge'> #网卡
<source bridge='default'/> #虚拟交换机,通过virsh domiflist node1查看的source
<model type='virtio'/>
</interface>
...
</domain>
5、批量创建虚拟机的脚本:
vim createvhost.sh
#!/bin/bash
function createvhost(){
vhost=$1
cd /var/lib/libvirt/images/
qemu-img create -b disk.qcow2 -f qcow2 ${vhost}.qcow2 50G #创建磁盘
sed 's,node,${vhost}' node.xml > /etc/libvirt/qemu/${vhost}.xml #创建配置文件,node.xml是模板
virsh define /etc/libvirt/qemu/${vhost}.xml # 根据配置文件创建虚拟机
}
if (( $# == 0 )); then
echo "no hostname"
esle
for i in $*; # $*表示所有的参数列表
do
createvhost ${i}
done
fi
# 创建两台虚拟机
bash createvhost.sh web1 db1
virsh start web1 #开机
virsh console web1 #连接
写总结的第六十八天!!!