以下是个人整理理解的有关KVM构建及管理 virsh控制工具 、 镜像管理 虚拟机快建技术:
要想搭建虚拟机使用必须在物理机上安装能够提供虚拟化的软件,通过这些软件和虚拟化技术,部署虚拟机。虚拟机使用的是真实机的物理内存、物理CPU以及物理硬盘。通过创建镜像文件的方式,使虚拟机存储数据都存储在镜像文件中。磁盘格式一般使用:QCOW2
一、安装虚拟化服务平台
1、KVM /QEMU /LIBVIRTD:
KVM 是Linux内核模块,它需要CPU的支持,采用硬件辅助虚拟化技术,内存的相关虚拟化技术等。(内核虚拟化大小模块)
QEMU 是一个虚拟化的仿真工具,通过ioctl与内和kvm交互完成对硬件的虚拟化支持。(系统设备仿真)
Libvirt 是一个对虚拟化管理的接口和工具,提供用户端程序virsh、virt-install、virt-manager、virt-view与用户交互(虚拟机管理程序)
2、必备软件:
qemu-kvm :为kvm提供底层仿真支持
libvirt-daemon :守护进程,管理虚拟机
libvirt-client :用户端软件,提供客户端管理命令
libvirt-daemon-driver-qemu :libvirtd 连接 qemu 的驱劢
3、可选功能:
virt-install # 系统安装工具
virt-manager # 图形管理工具
virt-v2v # 虚拟机迁移工具
virt-p2v 物理机迁移工具
4、虚拟化平台的安装
yum install -y qemu-kvm \
libvirt-daemon \
libvirt-client \
libvirt-daemon-driver-qemu
systemctl start libvirtd
二、虚拟机的组成
内核虚拟化模块(KNM)
系统设备仿真(QEMU)
虚拟机管理程序(LIBVIRT)
一个虚拟机配置声明文件,xml类型:/etc/libvirt/qemu/
一个磁盘镜像文件(虚拟机的硬盘):/var/lib/libvirt/images/
三、命令
1、virsh命令
virsh nodeinfo #查看KVM服务器信息
virsh list #列出当前开机的虚拟机 virsh list --all #列出当前所有的虚拟机
virsh net-list #列出虚拟网络(网卡信息) virsh dominfo 虚拟机名称 #查看指定虚拟机的信息
virsh start | reboot | shutdown 虚拟机名称 #运行 | 重启 | 关闭 指定虚拟机
virsh destroy 虚拟机名称 #强制关闭指定的虚拟机
virsh autostart 虚拟机名称 #将指定的虚拟机设为开机自动运行
virsh autostart --disable 虚拟机名称 #将指定的虚拟机设为开机不自动运行
2、qemu-img
qemu-img 是虚拟机的磁盘管理命令,支持非常多的磁盘格式,例如:qcow、raw等
qemu-img 命令 参数 块文件名称 大小
常用的命令有:
– create 创建一个磁盘
– convert 转换磁盘格式
– info 查看磁盘信息
– snapshot 管理磁盘快照
• 创建新的镜像盘文件
– qemu-img create -f 格式 磁盘路径 大小
qemu-img create -f qcow2 disk.img 50G #创建一个大小为50G,格式为qcow2的镜像盘文件disk.img
• 查询镜像盘文件的信息
– qemu-img info 磁盘路径
– qemu-img info disk.img #查询disk.img的文件信息
• -b 使用后端模板文件
– qemu-img create -b disk.img -f qcow2 disk1.img #以disk.img为后端模板文件创建一个disk1.img的镜像盘文件(前端)
四、创建虚拟交换机
• libvirtd 网络接口(物理机)
– 原理:调用 dnsmasq 提供DNS、DHCP等功能
– 创建配置文件 /etc/libvirt/qemu/networks/vbr.xml
<network>
<name>vbr</name>
<bridge name="vbr"/>
<forward mode="nat"/>
<ip address="192.168.1.254" netmask="255.255.255.0">
<dhcp>
<range start="192.168.1.100" end="192.168.1.200"/>
</dhcp>
</ip>
</network>
五、网络管理
• virsh 管理虚拟网络
– net-list 查看虚拟网络
– net-define vbr.xml 创建虚拟网络
– net-undefine vbr 初除虚拟网络
– net-start vbr 启劢虚拟网络
– net-destroy vbr 停止虚拟网络
– net-edit vbr 修改 vbr 网络的配置
– net-autostart vbr 设置 vbr 虚拟网络开机自启劢