文章目錄
- 關于 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(二)