文章目录

    • 关于 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 libvirt5018033 1 09:18上午 " />0:00.07 /usr/local/opt/libvirt/sbin/libvirtd -f /usr/local/etc/libvirt/libvirtd.conf50180385154 09:19上午 ttys0010: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=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 到一个文件中以方便分析dumpxmlXML 中的域信息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-namespaceLXC 虚拟机进入名称空间managedsave管理的域状态的保存managedsave-remove 删除域的管理保存managedsave-edit 编辑域受管的保存状态文件的 XMLmanagedsave-dumpxmlXML 中受管保存状态文件的域信息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-attachQEMU 附加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 的状态(通过代理)setvcpuattach/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 可用内存freepagesNUMA 可用页面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-dumpxmlXML 中的接口信息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-dumpxmlXML 中的网络信息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-dumpxmlXML 中的节点设备详情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取消定义 secret Snapshot (指定关键字'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 正在进行的域块备份作业的转储 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把一个池名称转换为池 UUIDpool-event 存储池事件pool-capabilities存储池功能 Storage Volume (指定关键字'volume'时可以显示此部分帮助信息)vol-clone克隆卷。vol-create-as从一组变量中创建卷vol-create 从一个 XML 文件创建一个卷vol-create-from生成卷,使用另一个卷作为输入。vol-delete 删除卷vol-download 将卷内容下载到文件中vol-dumpxmlXML 中的卷信息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(二)