virsh日常管理命令

virsh日常管理命令

KVM日常管理命令:

参考1: https://blog.youkuaiyun.com/vast0906/article/details/75549263

参考2: https://mp.weixin.qq.com/s?src=3&timestamp=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实例

创建虚拟机,创建kvm虚拟机。
https://www.cnblogs.com/wshenjin/p/11082906.html
注意,参数指定的路径kvm用户有读写权限才可以正常创建。

## --virt-type 指定虚拟化类型
## --os-type=linux  指定操作系统类型
## --os-variant   指定操作系统版本
## --name     指定vm实例名称
## --memory   指定内存大小单位MB
### maxmemory=2048 最大可用内存,扩容时不能超过这个数值
## --vcpus    指定cpu核数
### maxvcpus=10  最大使用CPU核数,扩容时不能超过这个数值
## --disk     指定vm实例的磁盘路径
### format=raw,size=10 指定磁盘格式为raw,磁盘大小10GB
## --cdrom    系统安装光盘文件的路径
## --network    指定网络类型,默认是NAT模式
## --graphics vnc  把图形画面交给vnc的服务端来输出
### listen=0.0.0.0 vnc服务器监听的IP地址
## --noautoconsole 支持console登录
virt-install \
--virt-type kvm \
--os-type=linux \
--os-variant rhel7 \
--name vm名称 \
--memory 512,maxmemory=2048 \
--vcpus 1,maxvcpus=10 \
--disk /opt/centos3.qcow2 \
--boot hd
--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.youkuaiyun.com/omaidb/article/details/128706852
之前默认的网卡都是eth0,Centos7.6只会的系统会以ens33开头
image.png


Centos7最小化安装环境勾选

image.png


VM实例建议只分配/分区

分区建议只分配/swap视情况而定

image.png


查看vm列表

# 查看所有开机的vm实例
virsh list

# 查看所有vm实例,包括关机
virsh list --all

image.png


启动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名称

image.png


vm实例开机自启

kvm宿主机libvirt服务启动后,指定vm实例宿主机启动。

# 设置vm实例开机自启
virsh autostart vm名称

# 取消vm实例开机自启
virsh autostart --disable vm名称

查看哪些vm实例开机自启

# 查看哪些vm实例开机自启
ll /etc/libvirt/qemu/autostart/

image.png


查看vm实例是否开机自启

# 查看vm实例是否开机自启
virsh dominfo vm名称 | grep -i autostart

image.png


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名称

image.png


查看虚拟机磁盘

# 查看指定虚拟机的磁盘
virsh domblklist vm名称

image.png


查看虚拟网卡

# 查看虚拟网卡
virsh domiflist vm名称

image.png


查看vm实例的虚拟接口IP地址–domifaddr(不管用)

# 查看vm实例的虚拟接口IP地址
virsh domifaddr vm名称

查看vm实例的cpu数量–vcpucount

# 查看vm实例的cpu数量
virsh vcpucount vm名称

image.png


查看/导出vm实例配置–dumpxml

# 查看vm实例配置
virsh dumpxml vm名称

# 导出vm实例配置
virsh dumpxml vm名称 > /tmp/vm名称.xml

image.png


导入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参数直接生效
### maxmemory=2048 最大可用内存,扩容时不能超过这个数值
virsh setmem vm名称 --size 524288  --live --config 

设置内存的最大值–setmaxmem

https://www.cnblogs.com/wshenjin/p/11083337.html
需要关闭虚拟机再配置

# 设置内存的最大值
### maxmemory=2048 最大可用内存,扩容时不能超过这个数值
virsh setmaxmem vm名称 1572864 --config

修改虚拟处理器的数量–setvcpus

https://www.cnblogs.com/wshenjin/p/11086655.html

# 查看vm示例限定的最大CPU
virsh vcpucount vm名称

image.png

# 修改虚拟处理器的数量
## --maximum 限定的最大CPU核数,扩容时不能超过这个数值
virsh setvcpus vm名称 --maximum 4 --config

# 可以通过--live参数直接生效
## 支持热增加,但不支持热减少 
### maxvcpus=10  最大使用CPU核数,扩容时不能超过这个数值
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

image.png


Centos7的console配置

# 查看Centos7的console配置
grep console /boot/grub2/grub.cfg

image.png


RHEL8的console配置

# 查看RHEL8的grup配置
grep console /boot/grub2/grub.cfg

image.png


RHEL9的console配置

# 查看RHEL9的grup配置
grep console /boot/grub2/grub.cfg

image.png


console控制台登陆vm

# console控制台登陆vm
virsh console vm名称
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

教Linux的李老师

赞赏是第一生产力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值