macOS - 安装使用 libvirt、virsh

macOS - 安装使用 libvirt、virsh_第1张图片


文章目录

    • 关于 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(二)

你可能感兴趣的:(嵌入式,macos,libvirt,virsh,kvm,虚拟化)