libvirt(virsh命令介绍)
? ?有了virt-install是安裝虛擬機的命令,當然也需要一個管理虛擬機的命令了,那就是virsh。
virsh命令使用
? ? ? ?virsh <command> <domain-id> [OPTIONS]
? ? ? ? virsh既有命令行模式,也有交互模式,在命令行直接輸入virsh就進入交互模式,virsh 后面跟命令參數,則是命令行模式。下面主要介紹交互式用法。
virsh 回車
help <command> 單獨help命令會顯示所有的可用命令,如果后面有command,則會簡單的解釋該命令的用法
quit/exit 退出交互窗口
version 顯示相關版本號
cd directory 從當前目錄跳轉到directory,此命令只能用在交互模式
pwd ?顯示當前目錄
connect URI optional 連接到超級管理程序,
uri ?顯示超級管理程序的標準URI,可以用在shell mode
hostname 顯示超級管理程序的主機名
nodeinfo ?顯示一個node的基本信息
list optional 顯示正在running的domin,虛擬機共有7中狀態
? ? ? ? ? running ?虛擬機正在運行在cpu上
?idel ?虛擬機是閑置的,沒有在運行,在等待IO或者休眠時虛擬機會進入這種狀態
?paused ?虛擬機處于暫停狀態,一般情況下是被admin運行了virsh ? suspend才會處于這種狀態,但是仍然消耗資源,只不過不被超級管理程序調度而已。
?shutdown 虛擬機在關閉過程中
?shut off ?虛擬機沒有運行,已經完全關閉
?crashed ?虛擬機崩潰
?dying ?虛擬機處于垂死的狀態,但是又沒完全關閉或崩潰
virsh shutdown <domin> 關閉虛擬機domin,如果不設置domin則關閉所有的虛擬機
virsh destory <domin> 強制關閉虛擬機
virsh start <domin> ?啟動虛擬機
?
以下的命令可以直接操作domain
autostart [--disable] domain-id 配置一個domain后自動該domain disable是禁止啟動
console domain-id 通過串行線路連接至虛擬機
create FILE optional --console --paused 通過XML文件才創建一個虛擬機,也可以先用dumpxml導出已有的虛擬機的配置文件,然后修改使用,默認的虛擬機創建后都是直接running,加上paused參數后,新創建的虛擬機不會直接running
?
define FILE ?從XML配置文件定義一個domian,相當于注冊一個domain但是不啟動。
destroy domain-id 直接關閉一個虛擬機,不給機器反映時間,類似于直接拔電源
dommemstat domain ?獲取domain的內存狀態
edit domain-id ?編輯XML配置文件,等效于:
? ? ? ? ? ? virsh dumpxml domain > domain.xml
? ? ? ? ? ? edit domain.xml
? ? ? ? ? ? virsh define domain.xml
?
managedsave domain-id ?保存當前運行的虛擬機的狀態,當虛擬機再次啟動的時候會恢復到之前保存的狀態
migrate optional --live --suspend domain-id desturi migrateuri 遷移虛擬機到其他機器 --live表示動態遷移,--suspend表示遷移到目的地時虛擬機處于paused狀態,desturi是遷移到目的地主機的URI,migrateuri是遷移機器的URI。
save domain-id state-file 保存一個正在運行的虛擬機的狀態到一個文件中,以便以后恢復到此狀態,一旦保存后虛擬機將不會再運行,占有的資源也會釋放,virsh restore可以恢復到此前的狀態。eg:save 12 /tmp/test
restore state-file 恢復到之前保存的一個狀態.eg:restore /tmp/test
setmem domain-id kilobytes 改變當前虛擬機分配的內存,立即生效,單位KB
setmaxmem domain-id kilobytes ?設置一個虛擬機可分配的最大內存,它不改變當前使用的內存
setvcpus domain-id count ?改變當前虛擬機的vcpu個數
shutdown domain-id 正常的關閉一個虛擬機
start domain-name ?啟動一個虛擬機
suspend domain-id ?掛起一個正在運行的虛擬機,該虛擬機仍舊占用資源。
resume domain-id 從掛起狀態恢復一個虛擬機
vcpuinfo domain-id 顯示一些虛擬機的vcpu信息,包括幾個vcpu,運行時間,和那個物理cpu親和
vcpupin domain-id vcpu cpulist ?把vcpu綁定到物理cpu,vcpu的數量必須提供,cpulist是一個以逗號分割的物理cpu列表
vncdisplay domain-id ?顯示vnc監聽的地址和端口
?
快照命令
snapshots可以保存一個domain的disk memory device在某個時間點的狀態以便將來會使用到,保存的文件名稱必須是唯一的
snapshot-create domain xmlfile 給domain創建一個snapshot,詳細內容保存在xmlfile中
snapshot-current domain 顯示一個domain的當前的snapshot
snapshot-list domain ?顯示一個domain的所有的snapshot
snapshot-revert domain snapshot 恢復一個domian到以前的snapshot
snapshot-delete domain snapshot --children 刪除一個domain的snapshot
?
如何用libvirt遠程管理虛擬機?
? ? ? ?要用libvirt連接到超級管理程序,我們需要一個URI,這個URI配合virsh和virt-viewer命令使用,后面可以跟一些可選項,virt-viewer可以調用一些鏈接參數,例如:virsh -c qemu:///system 當鏈接到遠程機器時,可以定義幾種使用的協議:ssh,tcp,tls。當鏈接到遠程機器時,需要使用遠程主機的用戶和主機名進行鏈接,如果沒有定義鏈接用戶,則會使用本機環境的$USER的用戶進行鏈接,當連接到qemu hypervisor時,接受兩種鏈接類型:system可以有所有的訪問權限,session有限制的訪問。例如:
? ?使用full access鏈接至本機的qemu hypervisor,前面的-c 是為了執行后面的list命令(--connect)
virsh -c ?qemu:///system list
?
? ? 使用full access鏈接至遠程主機的qemu hypervisor,每次都要輸入ssh密碼,改成ssh無密碼登陸就不需要輸入密碼了,直接顯示結果。
virsh -c qemu+ssh://tux@mercury.example.com/system ? 直接進入交互virsh模式
virsh -c qemu+ssh://10.1.1.8/system list ? 直接顯示list后的結果
其余連接格式如下:
qemu:///session ? ? ? ? ? ? ? ? ? ? ?(local access to per-user instance)
qemu+unix:///session ? ? ? ? ? ? ? ? (local access to per-user instance)
qemu:///system ? ? ? ? ? ? ? ? ? ? ? (local access to system instance)
qemu+unix:///system ? ? ? ? ? ? ? ? ?(local access to system instance)
qemu://example.com/system ? ? ? ? ? ?(remote access, TLS/x509)
qemu+tcp://example.com/system ? ? ? ?(remote access, SASl/Kerberos)
qemu+ssh://root@example.com/system ? (remote access, SSH tunnelled)
總結
以上是生活随笔為你收集整理的libvirt(virsh命令介绍)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何成为一个合格的 Java程序员
- 下一篇: HDU1300DP