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