常用操作
快照管理
- 最好先关机再打快照,否则内存一同打进快照后,恢复时非常慢。
# 创建快照 -atomic 确保快照创建是原子操作,要么成功要么失败,不会部分完成。
virsh snapshot-create-as 虚拟机名称 快照名称 --atomic
# 查看快照
virsh snapshot-list 虚拟机名称
# 恢复快照
virsh snapshot-revert 虚拟机名称 快照名称
# 删除快照
virsh snapshot-delete 虚拟机名称 快照名称创建虚拟机
通过官方 qcow2 镜像
下面以 openEuler 为例
# 下载镜像
wget https://repo.openeuler.org/openEuler-24.03-LTS-SP3/virtual_machine_img/x86_64/openEuler-24.03-LTS-SP3-x86_64.qcow2.xz
# 备份一份(可选)
cp openEuler-24.03-LTS-SP3-x86_64.qcow2.xz openEuler-24.03-LTS-SP3-x86_64.qcow2.xz.bak
# 解压镜像
xz -d openEuler-24.03-LTS-SP3-x86_64.qcow2.xz
# 将镜像的虚拟容量扩展到所需大小,例如 100GB
qemu-img resize openEuler-24.03-LTS-SP3-x86_64.qcow2 100G
# 自定义 CPU、内存并拉起虚拟机,名称、cpu、内存、磁盘路径、网络等按需填写
sudo virt-install \
--name t1 \
--vcpus 4 \
--memory 8192 \
--disk path=t1.qcow2,format=qcow2,bus=virtio \
--network network=default,model=virtio \
--os-variant generic \
--import \
--noautoconsole
# 启动后可通过console配置ip等信息,另外还需扩容分区和创建文件系统,否则扩容的磁盘空间将无法使用通过克隆
# 确定源虚拟机名称
virsh list --all
# 克隆前建议先停止(关机)源虚拟机,以确保磁盘数据的一致性。
virsh shutdown 源虚拟机名称
# 执行克隆
virt-clone -o 源虚拟机名称 -n 新虚拟机名称 -f 新虚拟机磁盘文件的存储路径.qcow2为虚拟机添加描述
# 创建虚拟机时添加,在使用 virt-install 创建虚拟机时,添加 --description 参数即可:
virt-install --name my-vm-01 --description "研发部-张三-用于Web接口测试" ...
# 创建后添加描述
virsh desc prod-harbor --new-desc "生产环境harbor" --live --config
# --config:修改下次启动时生效(持久化)
# --live:修改立即生效(仅限本次运行,重启丢失)
# 通常两个参数配合使用,如果机器已经关机,则只添加 --config 参数即可虚拟机改名
# 停止虚拟机(重命名必须在关机状态下进行):
virsh shutdown 老名称
# 执行重命名:
virsh domrename 老名称 新名称关闭虚拟机
- 正常关机(建议首选):
virsh shutdown <虚拟机名称>- 强制断电(如果正常关机无响应):
virsh destroy <虚拟机名称>删除虚拟机
较新版本的 virsh 支持使用参数在删除配置的同时一并删除关联的存储和 NVRAM 变量。
virsh undefine <虚拟机名称> --remove-all-storage --nvram --managed-save--remove-all-storage:删除该虚拟机所有挂载的磁盘卷。--nvram:如果虚拟机使用了 UEFI 启动,此参数会一并清理 NVRAM 文件。--managed-save:清理可能存在的休眠保存状态。