共计 3443 个字符,预计需要花费 9 分钟才能阅读完成。
一、虚拟机基本管理
虚拟机管理方法:
-
virt-manager
-
cockpit web 控制台
-
virsh 命令
1.1.1、virt-manager 管理工具
1.1.2、cockpit 管理工具
1.1.3、virsh 命令用法
a、virsh 交互界面
[root@zutuanxue ~]# virsh
欢迎使用 virsh,虚拟化的交互式终端。输入:'help' 来获得命令的帮助信息
'quit' 退出
virsh # list
Id 名称 状态
----------------------------------------------------
b、shell 命令行使用 virsh
[root@zutuanxue ~]# virsh list
Id 名称 状态
----------------------------------------------------
c、查看虚拟机
virsh # list --all
Id 名称 状态
----------------------------------------------------
- rhel8 关闭
- win10 关闭
d、虚拟机启动、关闭、重启
虚拟机启动
virsh # start rhel8
域 rhel8 已开始
virsh # list --all
Id 名称 状态
----------------------------------------------------
12 rhel8 running
- win10 关闭
虚拟机关闭
virsh # shutdown rhel8
域 rhel8 被关闭
virsh # list --all
Id 名称 状态
----------------------------------------------------
- rhel8 关闭
- win10 关闭
# 强制关闭
virsh # destroy rhel8
域 rhel8 被删除
virsh # list --all
Id 名称 状态
----------------------------------------------------
- rhel8 关闭
- win10 关闭
# 重启虚拟机,前提是必须是启动状态
virsh # reboot rhel8
域 rhel8 正在被重新启动
e、虚拟机挂起与恢复
# 挂起虚拟机
virsh # suspend --domain rhel8
域 rhel8 被挂起
virsh # list --all
Id 名称 状态
----------------------------------------------------
12 rhel8 暂停
- win10 关闭
# 恢复虚拟机
virsh # resume --domain rhel8
域 rhel8 被重新恢复
virsh # list --all
Id 名称 状态
----------------------------------------------------
12 rhel8 running
- win10 关闭
二、虚拟机模板
模板介绍:
模板类似于生活中的模具,可以根据模具制作出很多一模一样的产品。模板在计算机中应用是比较多的,用户可以根据模板去批量生成应用。
虚拟机模板作用:
- 批量生成虚拟机
- 缩短部署时间
- 提升工作效率
模板制作步骤
-
删除 ssh 主机密钥:rm -rf /etc/ssh/ssh_host_*
-
在 /etc/hostname 中设置 HOSTNAME=localhost.localdomain。
-
从 /etc/sysconfig/network-scripts/==ifcfg-ens*== 中删除 HWADDR 行和 UUID 行。
-
另外,从 /var/log 中删除所有日志,从 /root 中删除 build 日志。
-
关机,备份模板机硬盘
生成模板硬盘,保存,用于后续可以复制出来 N 多个这样的硬盘,让虚拟机直接导入使用
根据模板机生成虚拟机
- 复制模板硬盘
- 创建虚拟机,导入硬盘
virt-install --name centos8-3 --memory 1024 --vcpus 2 --disk /var/lib/libvirt/images/centos8-3.qcow2,bus=virtio,format=qcow2 --import --os-variant win10 --network network=default
三、虚拟机快照管理
- 创建快照
- 查看快照
- 删除快照
- 还原快照
快照创建方法:
- LVM 快照
- 基于 qcow2 磁盘格式创建快照
3.1、基于 KVM 的虚拟机快照
创建快照
KVM 快照是基于 LVM 快照来实现的,具体操作方法是:
- 创建一个 LV,假设为 node1_disk
- 创建虚拟机使用现有 LV:node1_disk
- 安装系统并做好应用 [创建快照之前]
- 关闭虚拟机
- 创建 kvm 的快照:node1_disk_snap
- 修改虚拟机磁盘使用快照磁盘:node1_disk_snap
虚拟机使用的是快照盘
还原虚拟机就是基于原盘再做一次快照,继续使用快照就可以了
还原快照
- 关闭虚拟机
- 删除 kvm 的快照:node1_disk_snap
- 创建新快照:node1_disk_snap
- 开机
拓展知识点 -lvm
# 创建 lv kvm_disk
[root@zutuanxue ~]# lvcreate -n kvm_disk -L5G cl
Logical volume "kvm_disk" created.
# 生成 lv 快照
[root@zutuanxue ~]# lvcreate -n kvm_disk_snap -L 5G -s /dev/cl/kvm_disk
# 删除快照
[root@zutuanxue ~]# lvremove /dev/cl/kvm_disk_snap
Do you really want to remove active logical volume cl/kvm_disk_snap? [y/n]: y
Logical volume "kvm_disk_snap" successfully removed
3.2、KVM 自带快照功能
创建快照: snapshot-create-as
命令格式
virsh snapshot-create-as 虚拟机的名称 snapshot 的名称
# 为 rhel8 创建一个快照
virsh # snapshot-create-as rhel8 web01
已生成域快照 web01
查看快照
# 查看快照
virsh # snapshot-list rhel8
名称 生成时间 状态
------------------------------------------------------------
web01 2020-03-21 00:37:35 -0400 running
# 查看快照信息
virsh # snapshot-info --domain rhel8 --snapshotname web01
名称:web01
域:rhel8
当前:是
状态:running
位置:内部
上级:-
下级:0
降序:0
元数据:是
还原快照
# 命令格式
virsh snapshot-revert 虚拟机的名称 --snapshotname 快照名称
#还原快照 web01
virsh # snapshot-revert --domain rhel8 --snapshotname web01
删除快照
virsh # snapshot-delete --domain rhel8 web01
已删除域快照 web01
扩展:raw 磁盘转换 qcow2 方法
qemu-img 命令
-f 源镜像的格式
-O 目标镜像的格式
#a、转换磁盘格式
[root@zutuanxue ~]# qemu-img convert -fraw -O qcow2 /var/lib/libvirt/images/win10.img /var/lib/libvirt/images/win10.qcow2
#b、修改 xml 文件定义磁盘格式
[root@zutuanxue ~]# vim /etc/libvirt/qemu/win10.xml
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/var/lib/libvirt/images/win10.qcow2'/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
</disk>
#c、重启服务生效
[root@zutuanxue ~]# systemctl restart libvirtd.service
思考 :如何将其他格式的磁盘 转换为 qcow2
qemu-img - f 原格式 - O 转换后的格式 源磁盘路径 转换后的磁盘路径
正文完
星哥玩云-微信公众号