ubuntu虚拟机折腾之----virsh指令
前言
时常折腾一些东西,检索->尝试->纠错->成功带来很多喜悦。但又时常忘记,就想着作些记录。之前有过记录在百度脑图上、石墨笔记上,但脑图记录东西多了就又不方便查看,也不便分享,也不知道X度怎么想的,挺好一产品不好好做......同时,由于经常网上搜索信息,认识了CSDN和博客园,看来看去还是喜欢博客园的清爽的样子。也不知道这会儿开博客会不会有点49年入国军的样子。不管了,玩玩吧。
Libvirt
Libvirt 是一个开源的软件集合,用于管理计算机上的虚拟化资源。它提供了多个组件,其中包括一个守护进程(libvirtd)、API 接口、以及一系列工具。
virsh
virsh 是 Libvirt 提供的一个命令行工具,它是 Libvirt 的一部分,用于通过命令行界面来执行各种虚拟化管理任务。virsh 提供了许多命令,可以让用户执行以下操作:
管理虚拟机:启动、停止、重启、暂停、恢复虚拟机。
配置虚拟机:修改虚拟机的硬件配置(如 CPU、内存、磁盘、网络接口等)。
管理存储:创建、删除、挂载存储池。
管理网络:定义、启动、停止、删除虚拟网络。
实时迁移:迁移虚拟机到另一个主机。
监控和报告:查看虚拟机的状态和性能指标。
定义和编辑虚拟机配置:通过 XML 文件定义新的虚拟机或将现有虚拟机的配置导出为 XML 文件。
两者关系
依赖关系:virsh 依赖于 libvirtd 守护进程来执行其命令。libvirtd 是 Libvirt 的核心组件,负责与底层虚拟化引擎进行通信,并提供 API 接口。
接口:virsh 作为 Libvirt 的命令行接口,为用户提供了一个简单的方式来与虚拟化资源进行交互。
功能扩展:除了 virsh 外,Libvirt 还提供了其他工具和库函数,如 virt-install、virt-manager 等,用于图形化管理虚拟机。
virsh
1. 基本管理命令
list
功能:列出当前正在运行的虚拟机。
示例:
$ virsh list
Id Name State
---------------------------
3 debian12 running
4 linux2022 running
5 win10 running
还可以加参数 --all
用于显示所有的虚拟机及其状态
示例:
$ virsh list --all
Id Name State
----------------------------------------
3 debian12 running
4 linux2022 running
- win10 shut off
- win10-Eplan shut off
- win10-inoance shut off
- win10-netdisk shut off
- win10-workstation shut off
- win10-workstation-Tia shut off
可以看出来我装了好几台虚拟机,计划把软件单独装在虚拟机里,使用时候再开虚拟机。主要目的是想解决一台电脑装太多软件导致卡顿的问题。
domstate
功能:查看虚拟机的状态。
示例:
virsh domstate debian12
running
virsh domstate win10
shut off
start
功能:启动虚拟机。
示例:
virsh start win10
Domain 'win10' started
shutdown
功能:关闭虚拟机。
示例:
virsh shutdown win10
Domain 'win10' is being shutdown
destroy
功能:强制关闭虚拟机,相当于拔电源
示例:
virsh destroy debian12
Domain 'debian12' destroyed
suspend
功能:暂停虚拟机。
resume
功能:恢复暂停的虚拟机。
2. 配置管理命令
undefine
功能:删除定义的虚拟机(但不删除磁盘文件)。
示例:
virsh undefine win10
define
功能:定义一个新的虚拟机,但不启动它。
示例:
virsh define /etc/libvirt/qemu/win10.xml
dumpxml
功能:获取虚拟机的 XML 配置。
示例:
virsh dumpxml win10
类似于
sudo cat /etc/libvirt/qemu/win10.xml
直接查看虚拟机配置xml文件的的内容,但cat查看需要定位到xml文件路径,但dumxml后面直接跟虚拟机名字。
edit
功能:编辑虚拟机的 XML 配置。
示例:
virsh edit win10
等同于直接编辑win10.xml文件,但无需定位到路径。
net-list
列出虚拟网络
$ sudo virsh net-list --all
Name State Autostart Persistent
--------------------------------------------
default active no yes
如上所示,本机存在一个名为default的虚拟网络,这是KVM默认的。
net-dumpxml
查看网络详细配置
$ sudo virsh net-dumpxml default
<network connections='2'>
<name>default</name>
<uuid>a6115379-f255-46a5-ad81-07a55b17ac99</uuid>
<forward mode='nat'>
<nat>
<port start='1024' end='65535'/>
</nat>
</forward>
<bridge name='virbr0' stp='on' delay='0'/>
<mac address='52:54:00:0d:f7:6a'/>
<ip address='192.168.122.1' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.122.2' end='192.168.122.254'/>
</dhcp>
</ip>
</network>
配置说明:
解读配置
名称:default
UUID:a6115379-f255-46a5-ad81-07a55b17ac99
转发模式:nat(网络地址转换)
NAT 端口范围:1024 到 65535
桥接接口:virbr0
STP(生成树协议):开启
延迟:0
MAC 地址:52:54:00:0d:f7:6a
IP 地址:192.168.122.1
子网掩码:255.255.255.0
DHCP 服务:
IP 地址范围:192.168.122.2 到 192.168.122.254
后面的还没试过
3. 设备管理命令
attach-disk
功能:附加磁盘设备到虚拟机。
示例:
virsh attach-disk myvm /path/to/image.img vdb --persistent
detach-disk
功能:从虚拟机分离磁盘设备。
示例:
virsh detach-disk myvm vdb --persistent
attach-interface
功能:附加网络接口到虚拟机。
示例:
virsh attach-interface myvm bridge br0 --model virtio --persistent
detach-interface
功能:从虚拟机分离网络接口。
示例:
virsh detach-interface myvm bridge --persistent
4. 网络管理命令
domifaddr
功能:获取虚拟机的网络接口地址。
示例:
virsh domifaddr myvm
domiflist
功能:列出虚拟机的网络接口。
示例:
virsh domiflist myvm
domifstat
功能:获取虚拟机网络接口的统计信息。
示例:
virsh domifstat myvm
5. 控制台管理命令
console
功能:连接到虚拟机的控制台。
示例:
virsh console myvm
6. 内存管理命令
setmaxmem
功能:设置虚拟机的最大内存。
示例:
virsh setmaxmem myvm 2097152
setmem
功能:设置虚拟机的当前内存。
示例:
virsh setmem myvm 1048576
7. CPU管理命令
setvcpus
功能:设置虚拟机的CPU数量。
示例:
virsh setvcpus myvm 2
8. 迁移命令
migrate
功能:迁移虚拟机到另一个主机。
示例:
virsh migrate myvm qemu+ssh://user@otherhost/system
9. 存储管理命令
blockcommit
功能:开始一个块提交操作。
示例:
virsh blockcommit myvm vda
blockcopy
功能:开始一个块复制操作。
示例:
virsh blockcopy myvm vda /path/to/newimage.img
blockjob
功能:管理活动的块操作。
示例:
virsh blockjob myvm vda
10. 事件管理命令
event
功能:处理虚拟机事件。
示例:
virsh event
11. 主机信息命令
nodeinfo
功能:获取主机信息。
示例:
virsh nodeinfo
capabilities
功能:获取主机的硬件和软件功能。
示例:
virsh capabilities

浙公网安备 33010602011771号