文章目录
- 关于 libvirt
- 使用
- 安装
- 启动服务
- virsh 交互模式
- virsh 帮助命令
关于 libvirt
- libvirt 官网: https://libvirt.org/
- gitlab : https://gitlab.com/libvirt/libvirt
- github : https://github.com/libvirt/libvirt 只读,gitlab 的镜像
libvirt是一套用于管理硬件虚拟化的开源API、守护进程与管理工具。
此套组可用于管理KVM、Xen、VMware ESXi、QEMU及其他虚拟化技术。
libvirt内置的API广泛用于云解决方案开发中的虚拟机监视器编排层(Orchestration Layer)。
virsh 包含在 libvirt 中,安装 libvirt 后,就会自带 virsh 工具。
virsh 是管理 虚拟化系统和虚拟机的工具。
相关博客/教程
- 木易:KVM笔记12(virsh的应用)
https://www.bilibili.com/video/BV1f34y197Kk/ - (linux) virsh使用总结
https://www.cnblogs.com/wn1m/p/11280804.html
使用
安装
- libvirt : macOS support
https://libvirt.org/macos.html
brew install libvirt
启动服务
brew services restart libvirt
# 停止服务
brew services stop libvirt
查看服务是否启动
$ ps -ef | grep libvirt
501 8033 1 0 9:18上午 ?? 0:00.07 /usr/local/opt/libvirt/sbin/libvirtd -f /usr/local/etc/libvirt/libvirtd.conf
501 8038 5154 0 9:19上午 ttys001 0:00.00 grep libvirt
$ virsh list
# virsh list --all
Id 名称 状态
-------------------
virsh 交互模式
$ virsh
欢迎使用虚拟化环境下的交互式终端 virsh。
输入:'help' 获得命令的帮助信息
'quit' 退出
virsh # quit
virsh 帮助命令
$ virsh -h
virsh [options]... [<command_string>]
virsh [options]... <command> [args...]
options:
-c | --connect=URI 可以连接到管理程序(即虚拟化层)的 URI
-d | --debug=NUM 调试级别 [0-4]
-e | --escape <char> 设置退出console的字符。可以设置为单字符或CTRL+单字符。默认是CTRL+]
-h | --help 显示帮助信息
-k | --keepalive-interval=NUM
keepalive消息的发送间隔,以秒为单位。值为0时禁止发送keepalive消息
-K | --keepalive-count=NUM
将发送keepalive消息的最大次数设置为NUM,若在NUM次后仍未收到响应,则断开连接
-l | --log=FILE 将日志输出到指定文件中
-q | --quiet 显示简洁的消息
-r | --readonly 以只读模式连接管理程序(即虚拟化层)。只读模式下,操作会受限
-t | --timing 额外显示virsh执行子命令所耗费的时间
-v 显示简略的版本信息
-V 显示详细的版本信息
--version[=TYPE] 显示版本信息, “TYPE”的值是“short”或“long” (默认是“short”)
命令列表 (非交互模式):
Domain Management (指定关键字'domain'时可以显示此部分帮助信息)
attach-device 从一个XML文件附加装置
attach-disk 附加磁盘设备
attach-interface 获得网络界面
autostart 自动开始一个域
blkdeviotune 设定或者查询块设备 I/O 调节参数。
blkiotune 获取或者数值 blkio 参数
blockcommit 启动块提交操作。
blockcopy 启动块复制操作。
blockjob 管理活跃块操作
blockpull 使用其后端映像填充磁盘。
blockresize 创新定义域块设备大小
change-media 更改 CD 介质或者软盘驱动器
console 连接到客户会话
cpu-stats 显示域 cpu 统计数据
create 从一个 XML 文件创建一个域
define 从一个 XML 文件定义(但不开始)一个域
desc 显示或者设定域描述或者标题
destroy 销毁(停止)域
detach-device 从一个 XML 文件分离设备
detach-device-alias 从别名中分离设备
detach-disk 分离磁盘设备
detach-interface 分离网络界面
domdisplay 域显示连接 URI
domfsfreeze 冻结域的挂载的文件系统。
domfsthaw 解冻域的挂载的文件系统.
domfsinfo 获取域的挂载的文件系统的信息。
domfstrim 在域挂载的文件系统中调用 fstrim。
domhostname 输出域主机名
domid 把一个域名或 UUID 转换为域 id
domif-setlink 设定虚拟接口的链接状态
domiftune 获取/设定虚拟接口参数
domjobabort 忽略活跃域任务
domjobinfo 域任务信息
domlaunchsecinfo 获取域启动安全性信息
domsetlaunchsecstate 设置域启动安全状态
domname 将域 id 或 UUID 转换为域名
domrename 重命名域
dompmsuspend 使用电源管理功能挂起域
dompmwakeup 从 pmsuspended 状态唤醒域
domuuid 把一个域名或 id 转换为域 UUID
domxml-from-native 将原始配置转换为域 XML
domxml-to-native 将域 XML 转换为原始配置
dump 把一个域的内核 dump 到一个文件中以方便分析
dumpxml XML 中的域信息
edit 编辑某个域的 XML 配置
get-user-sshkeys 列出给定用户的授权的 SSH 密钥(通过代理)
inject-nmi 在虚拟机中输入 NMI
iothreadinfo 查看域 IO 线程
iothreadpin 控制域 IOThread 关联性
iothreadadd 向 guest 域添加 IOThread
iothreadset 修改 guest 域的现有 IOThread
iothreaddel 从 guest 域中删除 IOThread
send-key 向虚拟机发送序列号
send-process-signal 向进程发送信号
lxc-enter-namespace LXC 虚拟机进入名称空间
managedsave 管理的域状态的保存
managedsave-remove 删除域的管理保存
managedsave-edit 编辑域受管的保存状态文件的 XML
managedsave-dumpxml XML 中受管保存状态文件的域信息
managedsave-define 重新定义域的受管保存状态文件的 XML
memtune 获取或者数值内存参数
perf 获取或设置 perf 事件
metadata 显示或设置域的自定义 XML 元数据
migrate 将域迁移到另一个主机中
migrate-setmaxdowntime 设定最大可耐受故障时间
migrate-getmaxdowntime 获得最大可容忍停机时间
migrate-compcache 获取/设定压缩缓存大小
migrate-setspeed 设定迁移带宽的最大值
migrate-getspeed 获取最长迁移带宽
migrate-postcopy 将运行迁移从 pre-copy 切换到 post-copy
numatune 获取或者数值 numa 参数
qemu-attach QEMU 附加
qemu-monitor-command QEMU 监控程序命令
qemu-monitor-event QEMU 监控事件
qemu-agent-command QEMU 虚拟机代理命令
guest-agent-timeout 设置客户机代理超时
reboot 重新启动一个域
reset 重新设定域
restore 从一个存在一个文件中的状态恢复一个域
resume 重新恢复一个域
save 把一个域的状态保存到一个文件
save-image-define 为域的保存状态文件重新定义 XML
save-image-dumpxml 在 XML 中保存状态域信息
save-image-edit 为域保存状态文件编辑 XML
schedinfo 显示/设置日程安排变量
screenshot 提取当前域控制台快照并保存到文件中
set-lifecycle-action 更改生命周期操作
set-user-sshkeys 操作给定用户的授权的 SSH 密钥文件(通过代理)
set-user-password 设置域中用户的密码
setmaxmem 改变最大内存限制值
setmem 改变内存的分配
setvcpus 改变虚拟 CPU 的号
shutdown 关闭一个域
start 启动一个(以前定义的)非活跃的域
suspend 挂起一个域
ttyconsole tty 控制台
undefine 取消定义一个域
update-device 从 XML 文件中关系设备
update-memory-device 更新域的内存设备
vcpucount 域 vcpu 计数
vcpuinfo 详细的域 vcpu 信息
vcpupin 控制或者查询域 vcpu 亲和性
emulatorpin 控制火车查询域模拟器亲和性
vncdisplay vnc 显示
guestvcpus 查询或修改客户机中 vcpu 的状态(通过代理)
setvcpu attach/detach vcpu 或线程组
domblkthreshold 为给定的块设备或其后备链元素设置 block-threshold 事件的阈值
guestinfo 查询有关客户机的信息(通过代理)
domdirtyrate-calc 计算虚拟机的内存脏率
dom-fd-associate 将 FD 与一个域关联
Domain Monitoring (指定关键字'monitor'时可以显示此部分帮助信息)
domblkerror 在块设备中显示错误
domblkinfo 域块设备大小信息
domblklist 列出所有域块
domblkstat 获得域设备块状态
domcontrol 域控制接口状态
domif-getlink 获取虚拟接口链接状态
domifaddr 获取正在运行的域的网络接口地址
domiflist 列出所有域虚拟接口
domifstat 获得域网络接口状态
dominfo 域信息
dommemstat 获取域的内存统计
domstate 域状态
domstats 获取有关一个或多个域的统计信息
domtime 域时间
list 列出域
Domain Events (指定关键字'events'时可以显示此部分帮助信息)
event 域事件
Host and Hypervisor (指定关键字'host'时可以显示此部分帮助信息)
allocpages 操作页池大小
capabilities 性能
cpu-baseline 计算基线 CPU
cpu-compare 使用 XML 文件中描述的 CPU 与主机 CPU 进行对比
cpu-models CPU 型号
domcapabilities 域功能
freecell NUMA 可用内存
freepages NUMA 可用页面
hostname 打印管理程序主机名
hypervisor-cpu-baseline 特定的 hypervisor 所使用的计算基准 CPU
hypervisor-cpu-compare 将 CPU 与主机上的 hypervisor 创建的 CPU 进行比较
maxvcpus 连接 vcpu 最大值
node-memory-tune 获取或者设定节点内存参数
nodecpumap 节点 cpu 映射
nodecpustats 输出节点的 cpu 状统计数据。
nodeinfo 节点信息
nodememstats 输出节点的内存状统计数据。
nodesevinfo 节点 SEV 信息
nodesuspend 在给定时间段挂起主机节点
sysinfo 输出 hypervisor sysinfo
uri 打印管理程序典型的URI
version 显示版本
Checkpoint (指定关键字'checkpoint'时可以显示此部分帮助信息)
checkpoint-create 从 XML 创建检查点
checkpoint-create-as 从一组 args 创建检查点
checkpoint-delete 删除域检查点
checkpoint-dumpxml 域检查点的转储 XML
checkpoint-edit 编辑检查点的 XML
checkpoint-info 检查点信息
checkpoint-list 列出域的检查点
checkpoint-parent 获取检查点的父名称
Interface (指定关键字'interface'时可以显示此部分帮助信息)
iface-begin 生成当前接口设置快照,可在今后用于提交 (iface-commit) 或者恢复 (iface-rollback)
iface-bridge 生成桥接设备并为其附加一个现有网络设备
iface-commit 提交 iface-begin 后的更改并释放恢复点
iface-define 定义不活跃的持久性物理主机接口,或者从 XML 文件中修改现有的持久性物理主机接口
iface-destroy 删除物理主机接口(启用它请执行 "if-down")
iface-dumpxml XML 中的接口信息
iface-edit 为物理主机界面编辑 XML 配置
iface-list 物理主机接口列表
iface-mac 将接口名称转换为接口 MAC 地址
iface-name 将接口 MAC 地址转换为接口名称
iface-rollback 恢复到之前保存的使用 iface-begin 生成的更改
iface-start 启动物理主机接口(启用它请执行 "if-up")
iface-unbridge 在分离其设备后取消网桥设备的定义
iface-undefine 取消定义物理主机接口(从配置中删除)
Network Filter (指定关键字'filter'时可以显示此部分帮助信息)
nwfilter-define 使用 XML 文件定义或者更新网络过滤器
nwfilter-dumpxml XML 中的网络过滤器信息
nwfilter-edit 为网络过滤器编辑 XML 配置
nwfilter-list 列出网络过滤器
nwfilter-undefine 取消定义网络过滤器
nwfilter-binding-create 从 XML 文件创建网络过滤器绑定
nwfilter-binding-delete 删除网络过滤器绑定
nwfilter-binding-dumpxml XML 中的网络过滤器信息
nwfilter-binding-list 列出网络过滤器绑定
Networking (指定关键字'network'时可以显示此部分帮助信息)
net-autostart 自动开始网络
net-create 从一个 XML 文件创建一个网络
net-define 定义不活跃的持久性虚拟网络,或者从 XML 文件中修改现有的持久性虚拟网络
net-destroy 销毁(停止)网络
net-dhcp-leases 打印给定网络的租期信息
net-dumpxml XML 中的网络信息
net-edit 为网络编辑 XML 配置
net-event 网络事件
net-info 网络信息
net-list 列出网络
net-name 把一个网络UUID 转换为网络名
net-start 启动一个(以前定义的)不活跃的网络
net-undefine 取消持久性网络的定义
net-update 更新现有网络配置的部分
net-uuid 把一个网络名转换为网络UUID
net-port-list 列出网络端口
net-port-create 从 XML 文件创建网络端口
net-port-dumpxml XML 中的网络端口信息
net-port-delete 删除指定的网络端口
Node Device (指定关键字'nodedev'时可以显示此部分帮助信息)
nodedev-create 根据节点中的 XML 文件定义生成设备
nodedev-destroy 销毁(停止)节点中的设备
nodedev-detach 将节点设备与其设备驱动程序分离
nodedev-dumpxml XML 中的节点设备详情
nodedev-list 这台主机中的枚举设备
nodedev-reattach 重新将节点设备附加到他的设备驱动程序中
nodedev-reset 重置节点设备
nodedev-event 节点设备事件
nodedev-define 通过节点上的 xml 文件定义设备
nodedev-undefine 对一个停用的节点设备取消定义
nodedev-start 启动一个停用的节点设备
nodedev-autostart 自动启动一个定义的节点设备
nodedev-info 节点设备信息
Secret (指定关键字'secret'时可以显示此部分帮助信息)
secret-define 定义或者修改 XML 中的 secret
secret-dumpxml XML 中的 secret 属性
secret-event Secret 事件
secret-get-value secret 值输出
secret-list 列出 secret
secret-set-value 设定 secret 值
secret-undefine 取消定义 secret
Snapshot (指定关键字'snapshot'时可以显示此部分帮助信息)
snapshot-create 使用 XML 生成快照
snapshot-create-as 使用一组参数生成快照
snapshot-current 获取或者设定当前快照
snapshot-delete 删除域快照
snapshot-dumpxml 为域快照转储 XML
snapshot-edit 编辑快照 XML
snapshot-info 快照信息
snapshot-list 为域列出快照
snapshot-parent 获取快照的上级快照名称
snapshot-revert 将域转换为快照
Backup (指定关键字'backup'时可以显示此部分帮助信息)
backup-begin 启动实时域的磁盘备份
backup-dumpxml 正在进行的域块备份作业的转储 XML
Storage Pool (指定关键字'pool'时可以显示此部分帮助信息)
find-storage-pool-sources-as 找到潜在存储池源
find-storage-pool-sources 发现潜在存储池源
pool-autostart 自动启动某个池
pool-build 建立池
pool-create-as 从一组变量中创建一个池
pool-create 从一个 XML 文件中创建一个池
pool-define-as 在一组变量中定义池
pool-define 定义不活跃的持久性存储池,或者从 XML 文件中修改现有的持久性存储池
pool-delete 删除池
pool-destroy 销毁(删除)池
pool-dumpxml XML 中的池信息
pool-edit 为存储池编辑 XML 配置
pool-info 存储池信息
pool-list 列出池
pool-name 将池 UUID 转换为池名称
pool-refresh 刷新池
pool-start 启动一个(以前定义的)非活跃的池
pool-undefine 取消定义一个不活跃的池
pool-uuid 把一个池名称转换为池 UUID
pool-event 存储池事件
pool-capabilities 存储池功能
Storage Volume (指定关键字'volume'时可以显示此部分帮助信息)
vol-clone 克隆卷。
vol-create-as 从一组变量中创建卷
vol-create 从一个 XML 文件创建一个卷
vol-create-from 生成卷,使用另一个卷作为输入。
vol-delete 删除卷
vol-download 将卷内容下载到文件中
vol-dumpxml XML 中的卷信息
vol-info 存储卷信息
vol-key 为给定密钥或者路径返回卷密钥
vol-list 列出卷
vol-name 为给定密钥或者路径返回卷名
vol-path 为给定密钥或者路径返回卷路径
vol-pool 为给定密钥或者路径返回存储池
vol-resize 创新定义卷大小
vol-upload 将文件内容上传到卷
vol-wipe 擦除卷
Virsh itself (指定关键字'virsh'时可以显示此部分帮助信息)
cd 更改当前目录
echo echo 参数。用于内部测试。
exit 退出当前的交互式终端
help 显示帮助信息
pwd 显示当前目录
quit 退出当前的交互式终端
connect (重新)连接到 hypervisor
(执行help <group>来获取指定组中全部命令的帮助信息)
(执行help <command> 来获取指定命令的帮助信息)
伊织 2023-08-15(二)