文章目录
- 关于 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 libvirt501 8033 1 0 9:18上午 ?? 0:00.07 /usr/local/opt/libvirt/sbin/libvirtd -f /usr/local/etc/libvirt/libvirtd.conf501 8038 5154 0 9:19上午 ttys001 0:00.00 grep libvirt
$ virsh list
# virsh list --allId 名称 状态
-------------------
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=NUMkeepalive消息的发送间隔,以秒为单位。值为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 域显示连接 URIdomfsfreeze 冻结域的挂载的文件系统。domfsthaw 解冻域的挂载的文件系统.domfsinfo 获取域的挂载的文件系统的信息。domfstrim 在域挂载的文件系统中调用 fstrim。domhostname 输出域主机名domid 把一个域名或 UUID 转换为域 iddomif-setlink 设定虚拟接口的链接状态domiftune 获取/设定虚拟接口参数domjobabort 忽略活跃域任务domjobinfo 域任务信息domlaunchsecinfo 获取域启动安全性信息domsetlaunchsecstate 设置域启动安全状态domname 将域 id 或 UUID 转换为域名domrename 重命名域dompmsuspend 使用电源管理功能挂起域dompmwakeup 从 pmsuspended 状态唤醒域domuuid 把一个域名或 id 转换为域 UUIDdomxml-from-native 将原始配置转换为域 XMLdomxml-to-native 将域 XML 转换为原始配置dump 把一个域的内核 dump 到一个文件中以方便分析dumpxml XML 中的域信息edit 编辑某个域的 XML 配置get-user-sshkeys 列出给定用户的授权的 SSH 密钥(通过代理)inject-nmi 在虚拟机中输入 NMIiothreadinfo 查看域 IO 线程iothreadpin 控制域 IOThread 关联性iothreadadd 向 guest 域添加 IOThreadiothreadset 修改 guest 域的现有 IOThreadiothreaddel 从 guest 域中删除 IOThreadsend-key 向虚拟机发送序列号send-process-signal 向进程发送信号lxc-enter-namespace LXC 虚拟机进入名称空间managedsave 管理的域状态的保存managedsave-remove 删除域的管理保存managedsave-edit 编辑域受管的保存状态文件的 XMLmanagedsave-dumpxml XML 中受管保存状态文件的域信息managedsave-define 重新定义域的受管保存状态文件的 XMLmemtune 获取或者数值内存参数perf 获取或设置 perf 事件metadata 显示或设置域的自定义 XML 元数据migrate 将域迁移到另一个主机中migrate-setmaxdowntime 设定最大可耐受故障时间migrate-getmaxdowntime 获得最大可容忍停机时间migrate-compcache 获取/设定压缩缓存大小migrate-setspeed 设定迁移带宽的最大值migrate-getspeed 获取最长迁移带宽migrate-postcopy 将运行迁移从 pre-copy 切换到 post-copynumatune 获取或者数值 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 为域的保存状态文件重新定义 XMLsave-image-dumpxml 在 XML 中保存状态域信息save-image-edit 为域保存状态文件编辑 XMLschedinfo 显示/设置日程安排变量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 计算基线 CPUcpu-compare 使用 XML 文件中描述的 CPU 与主机 CPU 进行对比cpu-models CPU 型号domcapabilities 域功能freecell NUMA 可用内存freepages NUMA 可用页面hostname 打印管理程序主机名hypervisor-cpu-baseline 特定的 hypervisor 所使用的计算基准 CPUhypervisor-cpu-compare 将 CPU 与主机上的 hypervisor 创建的 CPU 进行比较maxvcpus 连接 vcpu 最大值node-memory-tune 获取或者设定节点内存参数nodecpumap 节点 cpu 映射nodecpustats 输出节点的 cpu 状统计数据。nodeinfo 节点信息nodememstats 输出节点的内存状统计数据。nodesevinfo 节点 SEV 信息nodesuspend 在给定时间段挂起主机节点sysinfo 输出 hypervisor sysinfouri 打印管理程序典型的URIversion 显示版本Checkpoint (指定关键字'checkpoint'时可以显示此部分帮助信息)checkpoint-create 从 XML 创建检查点checkpoint-create-as 从一组 args 创建检查点checkpoint-delete 删除域检查点checkpoint-dumpxml 域检查点的转储 XMLcheckpoint-edit 编辑检查点的 XMLcheckpoint-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 把一个网络名转换为网络UUIDnet-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 中的 secretsecret-dumpxml XML 中的 secret 属性secret-event Secret 事件secret-get-value secret 值输出secret-list 列出 secretsecret-set-value 设定 secret 值secret-undefine 取消定义 secretSnapshot (指定关键字'snapshot'时可以显示此部分帮助信息)snapshot-create 使用 XML 生成快照snapshot-create-as 使用一组参数生成快照snapshot-current 获取或者设定当前快照snapshot-delete 删除域快照snapshot-dumpxml 为域快照转储 XMLsnapshot-edit 编辑快照 XMLsnapshot-info 快照信息snapshot-list 为域列出快照snapshot-parent 获取快照的上级快照名称snapshot-revert 将域转换为快照Backup (指定关键字'backup'时可以显示此部分帮助信息)backup-begin 启动实时域的磁盘备份backup-dumpxml 正在进行的域块备份作业的转储 XMLStorage 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 把一个池名称转换为池 UUIDpool-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(二)