virsh日常管理命令
- virsh日常管理命令
- 创建vm实例
- 规范网卡编号从0开始
- Centos7最小化安装环境勾选
- VM实例建议只分配`/`分区
- 查看vm列表
- 启动vm实例--start
- vm实例(软)关机--shutdown
- vm实例断电关机--destroy
- vm实例(软)重启--reboot
- vm实例重命名--domrename
- vm实例挂起--suspend
- 查看vm实例挂起之后的运行进程
- vm实例恢复--resume
- 查看vnc端口号--vncdisaplay
- vm实例开机自启
- 查看哪些vm实例开机自启
- 查看vm实例是否开机自启
- vm实例配置管理命令
- --config, --live, --current
- 查看虚拟机信息
- 查看虚拟机磁盘
- 查看虚拟网卡
- 查看vm实例的虚拟接口IP地址--domifaddr(不管用)
- 查看vm实例的cpu数量--vcpucount
- 查看/导出vm实例配置--dumpxml
- 导入vm实例配置--define
- 删除vm实例配置文件--undefine
- 修改vm实例配置--edit
- 修改内存的大小--setmem
- 设置内存的最大值--setmaxmem
- 修改虚拟处理器的数量--setvcpus
- 修改vm实例的网络配置--net-edit
- 删除vm实例的网卡
- console控制台管理
- vm实例中添加ttyS0许可
- Centos7的console配置
- RHEL8的console配置
- RHEL9的console配置
- console控制台登陆vm
virsh日常管理命令
参考1: https://blog.csdn.net/vast0906/article/details/75549263
参考2: https://mp.weixin.qq.com/s?src=3×tamp=1673845152&ver=1&signature=8t9e7mpq30t0Q9NNpuhVGldTgflPvvJ9rFrKCCHlzjcPb1xHZgkvwMbTpJdYASGhqXhKY-FObZ1rAK7Se4p9a5t3kXUpZg5DVEpLIDZYcFYodqA6X6bad2X35WZOVHySAyuT0FQ97ogdQ9ULF3MvJoMcPcy5mtXb0aPcwP8=
参考3: https://blog.51cto.com/aaronstudy/1417425
help | 显示该命令的说明 |
---|---|
quit | 结束 virsh,回到 Shell |
connect | 连接到指定的虚拟机服务器 |
create | 启动一个新的虚拟机 |
destroy | 删除一个虚拟机 |
start | 开启(已定义的)非启动的虚拟机 |
define | 从 XML定义一个虚拟机(导入配置) |
undefine | 取消定义的虚拟机(删除配置) |
dumpxml | 转储虚拟机的设置值 |
list | 列出虚拟机 |
reboot | 重新启动虚拟机 |
save | 存储虚拟机的状态 |
restore | 回复虚拟机的状态 |
suspend | 暂停虚拟机的执行 |
resume | 继续执行该虚拟机 |
dump | 将虚拟机的内核转储到指定的文件,以便进行分析与排错 |
shutdown | 关闭虚拟机 |
setmem | 修改内存的大小 |
setmaxmem | 设置内存的最大值 |
setvcpus | 修改虚拟处理器的数量 |
创建vm实例
https://www.cnblogs.com/wshenjin/p/11082906.html
注意,参数指定的路径
要kvm
用户有读写权限
才可以正常创建。
## --virt-type 指定虚拟化类型
## --os-type=linux 指定操作系统类型
## --os-variant 指定操作系统版本
## --name 指定vm实例名称
## --memory 指定内存大小单位MB
## --vcpus 指定cpu核数
## --disk 指定vm实例的磁盘路径
### format=raw,size=10 指定磁盘格式为raw,磁盘大小10GB
## --cdrom 系统安装光盘文件的路径
## network 指定网络类型,默认是NAT模式
## graphics vnc 把图形画面交给vnc的服务端来输出
### listen=0.0.0.0 vnc服务器监听的IP地址
virt-install \
--virt-type kvm \
--os-type=linux \
--os-variant rhel7 \
--name vm名称 \
--memory 1024 \
--vcpus 1 \
--disk /opt/centos3.qcow2,format=qcow2,size=10 \
--cdrom /opt/CentOS-7-x86_64-Minimal-1810.iso \
--network network=default \
--graphics vnc,listen=0.0.0.0 \
--console pty,target_type=serial \
--extra-args 'console=ttyS0,115200n8 serial' \
--noautoconsole
规范网卡编号从0开始
https://blog.csdn.net/omaidb/article/details/128706852
之前默认的网卡都是eth0
,Centos7.6只会的系统会以ens33
开头
Centos7最小化安装环境勾选
VM实例建议只分配/
分区
分区建议只分配/
,swap
视情况而定
查看vm列表
# 查看所有开机的vm实例
virsh list
# 查看所有vm实例,包括关机
virsh list --all
启动vm实例–start
# 启动vm实例
virsh start vm名称
vm实例(软)关机–shutdown
Linux通过acpid
服务来执行电源关闭的动作,vm实例
如果没有安装acpiid
服务,使用virsh
可能无法关机
.
# vm实例安装acpid电源管理服务
yum install -y acpid
# vm实例启动acpid电源管理服务
systemctl enable --now acpid
# 将vm实例关机
virsh shutdown vm名称
vm实例断电关机–destroy
在shutdown无响应
的情况下才推荐执行,暴力关机,可能会丢数据
# 断开vm实例电源
virsh destroy vm名称
vm实例(软)重启–reboot
# vm实例(软)重启
virsh reboot vm名称
vm实例重命名–domrename
kvm低版本
不支持domrename
命令
# vm实例重命名
virsh domrename vm名称
vm实例挂起–suspend
# vm实例挂起
virsh suspend vm名称
查看vm实例挂起之后的运行进程
# 查看挂起之后的运行进程
ps -ef|grep qemu
vm实例恢复–resume
# vm实例恢复
virsh resume vm名称
查看vnc端口号–vncdisaplay
# 查看vnc端口号
virsh vncdisplay vm名称
vm实例开机自启
kvm宿主机
的libvirt服务
启动后,指定vm实例
随宿主机
启动。
# 设置vm实例开机自启
virsh autostart vm名称
# 取消vm实例开机自启
virsh autostart --disable vm名称
查看哪些vm实例开机自启
# 查看哪些vm实例开机自启
ll /etc/libvirt/qemu/autostart/
查看vm实例是否开机自启
# 查看vm实例是否开机自启
virsh dominfo vm名称 | grep -i autostart
vm实例配置管理命令
–config, --live, --current
- –config(写入到VM实例的配置文件,下次VM生效)
使用–config时,只会修改对应虚拟机的XML配置。这个配置直到虚拟机下一次启动时才会生效。注意,使用virsh reboot domain并不会让新的设置生效!
- –live(立即生效)
当使–live时,客户机(就是虚拟机)必须是活动状态,配置会立即生效。可以看到,如果使–live时,客户机没有启动,系统会报错的。而且,这时并没有将配置写到虚拟机的XML配置中,即,在虚拟机下一次启动时,这个配置就没了。
如果hypervisor支持的话,可以同时使用–config 和 --live。
- –current
使用 --current时,会根据当前客户机的状态来生效。这个说的有点隐晦,实际上就是说,当客户机处于关闭状态时,它等价–config;当客户机处于运行状态时,它等价于–live。
查看虚拟机信息
# 查看虚拟机信息
virsh dominfo vm名称
查看虚拟机磁盘
# 查看虚拟机磁盘
virsh domblklist vm名称
查看虚拟网卡
# 查看虚拟网卡
virsh domiflist vm名称
查看vm实例的虚拟接口IP地址–domifaddr(不管用)
# 查看vm实例的虚拟接口IP地址
virsh domifaddr vm名称
查看vm实例的cpu数量–vcpucount
# 查看vm实例的cpu数量
virsh vcpucount vm名称
查看/导出vm实例配置–dumpxml
# 查看vm实例配置
virsh dumpxml vm名称
# 导出vm实例配置
virsh dumpxml vm名称 > /tmp/vm名称.xml
导入vm实例配置–define
# 导入vm实例配置
virsh define vm名称 /tmp/vm名称.xml
删除vm实例配置文件–undefine
推荐先destroy(关闭vm电源)
,再undefine
,否则虚拟机关机后会消失。
# 关闭vm电源
virsh destroy vm名称
# 删除vm实例配置
virsh undefine vm名称
修改vm实例配置–edit
使用virsh edit有自动语法检查功能,配置错误的将无法保存。
# 修改vm实例配置
virsh edit vm名称
修改内存的大小–setmem
https://www.cnblogs.com/wshenjin/p/11083337.html
# 修改内存的大小
## 通过--live参数直接生效
virsh setmem vm名称 --size 524288 --live --config
设置内存的最大值–setmaxmem
https://www.cnblogs.com/wshenjin/p/11083337.html
需要关闭虚拟机再配置
# 设置内存的最大值
virsh setmaxmem vm名称 1572864 --config
修改虚拟处理器的数量–setvcpus
https://www.cnblogs.com/wshenjin/p/11086655.html
# 查看vm示例限定的最大CPU
virsh vcpucount vm名称
# 修改虚拟处理器的数量
## --maximum 限定的最大数量
virsh setvcpus vm名称 --maximum 4 --config
# 可以通过--live参数直接生效
## 支持热增加,但不支持热减少
virsh setvcpus vm名称 --count 2 --live
修改vm实例的网络配置–net-edit
# 修改vm实例的网络配置
virsh net-edit --network hostonly
删除vm实例的网卡
https://www.cnblogs.com/wshenjin/p/11060636.html
console控制台管理
vm实例中添加ttyS0许可
如果vm实例
不指定console端口
和波特率
,是无法通过virsh console
控制的。
# 备份Grup文件
cp /boot/grub2/grup.cfg{,.bak}
# 更新内核参数配置
## 115200是波特率
## n8的意思是8位
grubby --update-kernel=ALL --args="console=ttyS0,115200n8"
# vm实例重启后console生效
reboot
Centos7的console配置
# 查看Centos7的console配置
grep console /boot/grub2/grub.cfg
RHEL8的console配置
# 查看RHEL8的grup配置
grep console /boot/grub2/grub.cfg
RHEL9的console配置
# 查看RHEL9的grup配置
grep console /boot/grub2/grub.cfg
console控制台登陆vm
# console控制台登陆vm
virsh console vm名称