1、KVM基本管理
shell
查看 启动 关闭 重启 重置
查看虚拟机
virsh list ## 只查看运行虚拟机
virsh list --all ## 不管关闭开启都显示出来
查看KVM虚拟机配置文件
virsh dumpxml VM-ceshi1 ## 记住查看那台就写那台虚拟机名字
将node4虚拟机配置文件保存到node6.xml
virsh dumpxml node4 > /etc/libvirt/qemu/node6.xml ### node4是虚拟机名字
修改node6的配置文件
virsh edit node6
如果直接用vim编译器修改配置文件,需要重启libvirtd服务
shell
启动
virsh start VM-ceshi1
暂停虚拟机
virsh suspend VM-ceshi1
恢复虚拟机
virsh resume VM-ceshi1
关闭
方法1:virsh shutdown VM-ceshi1
重启
virsh reboot VM-ceshi1
重置
virsh reset VM-ceshi1
删除虚拟机
virsh undefine VM-ceshi1 ## 启动状态只能删除配置文件磁盘镜像文件没有删除
virsh destroy VM-ceshi1 ## 虚拟机直接被删除,但是
## 虚拟机在开启状态下undefine无法删除,但是如果destro会直接删除
虚拟机开机自启
shell
virsh autostart VM-ceshi
## 当设置开启自动启动会多一个文件夹ls /etc/libvirt/qemu/autostart/
取消开机启动
virsh autostart --disable VM-ceshi
查看所有开机自启虚拟机
virsh list --all --autostart
ls /etc/libvirt/qemu/autostart/
virt-viewer 连接虚拟机画面
shell
virt-viewer --connect qemu:///system 1
KVM管理虚拟机克隆
- 图形界面克隆
- 字符终端,命令克隆
(1)virt-manager 利用命令调出图形管理工具,选中要克隆的虚拟机(确保vm处于关机状态) 然后右击克隆
shell
virt-clone -o VM-ceshi --auto-clone -n VM2-ceshi -f /var/lib/libvirt/images/vm2.qcow2
virt-clone -o kvmcentos -n kvm-centos79-1 -f /home/data/kvm/images/kvm-centos79-1.qcow2
- -n 指定新克隆机器名字
- -o 指定要克隆机器
- -f 新克隆机器使用新的磁盘文件
克隆过程中自动修改配置文件,他们都uuid name都不一样
增量镜像
针对qcow2文件格式创建的 创建增量镜像文件 -b 指定基本镜像 -f 镜像格式
shell
qemu-img create -b /var/lib/libvirt/images/VM-ceshi.qcow2 -f qcow2 /var/lib/libvirt/images/node_ceshi.qcow2
查看增量的详细信息
qemu-img info /var/lib/libvirt/images/node_ceshi.qcow2
创建虚拟机XML配置文件(node_ceshi.img)
cp /etc/libvirt/qemu/VM-ceshi.xml /etc/libvirt/qemu/node_ceshi.xml
修改配置
vim /etc/libvirt/qemu/node_ceshi.xml
name 不能一样
uuid 不能一样
source 磁盘镜像文件需要修改
mac地址 需要修改后面三段其中一位
新的定位一下
virsh define /etc/libvirt/qemu/node_ceshi.xml
启动虚拟机
virsh start node_ceshi
查看两镜像区别
du -h /var/lib/libvirt/images/node_ceshi.qcow2
du -h /var/lib/libvirt/images/VM-ceshi.qcow2
快照
1、通过图形方式如下图 2、通过命令行方式
QA
没有可以验证操作 'org.libvirt.unix.manage' 的 polkit 代理
解决办法:
shell
chmod 755 /etc/polkit-1/localauthority
/etc/polkit-1/localauthority/50-local.d# ll
-rw-r--r-- 1 root root 143 11月14日 14:54 50-org.libvirt-group-access.pkla
cat 50-org.libvirt-group-access.pkla
[libvirt group Management Access]
Identity=unix-group:libvirt
Action=org.libvirt.unix.manage
ResultAny=yes
ResultInactive=yes
ResultActive=yes