20個(gè)常用virsh命令介紹
由于virsh命令種類過多,因此管理員很難了解究竟哪些命令最適合于當(dāng)前管理需求,如果是這樣,那么下面的內(nèi)容會(huì)讓管理員擁有一個(gè)好的開始。
使用virsh命令行工具能夠大大簡化hypervisor和虛擬機(jī)管理工作,virsh工具基于開源libvirt管理API。通過virsh命令,管理員能夠創(chuàng)建、編輯、遷移和關(guān)閉虛擬機(jī)以及一些其他操作。事實(shí)上virsh包含大量命令,因此不得不將其分為多個(gè)類別,比如域相關(guān)命令、存儲(chǔ)池相關(guān)命令和快照相關(guān)命令等。面對如此多的virsh命令,管理員應(yīng)該如何選擇才能保證數(shù)據(jù)中心高效管理呢?下面列舉了一些使用頻率***的命令:
通用virsh命令
這個(gè)類別中的命令并不只適用于虛擬機(jī),而是能夠幫助完成一些通用管理任務(wù)。
help:獲取可用virsh命令的完整列表,并且分為不同的種類。管理員可以指定列表中的特定組來縮小查詢范圍,其中包含每個(gè)命令組的簡要描述;或者查詢特定命令以獲取更為詳細(xì)的信息,包括名稱、簡介、描述以及選項(xiàng)等。
list:管理員可以使用這個(gè)命令獲取現(xiàn)有虛擬機(jī)的各種信息以及當(dāng)前狀態(tài)。根據(jù)需求的不同,管理員可以使用—inactive或者—all選項(xiàng)進(jìn)行篩選。命令執(zhí)行結(jié)果中將會(huì)包含虛擬機(jī)ID、名稱以及當(dāng)前狀態(tài),可能的狀態(tài)包括運(yùn)行、暫?;蛘弑罎⒌取?/p>
connect:管理員可以使用這條命令連接到本地hypervisor,也可以通過統(tǒng)一資源標(biāo)識(shí)符來獲取遠(yuǎn)程訪問權(quán)限。其所支持的常見格式包括xen:///(默認(rèn))、qemu:///system、qemu:///session以及l(fā)xc:///等。如果想要建立只讀連接,需要在命令中添加—readonly選項(xiàng)。
域相關(guān)命令
使用這些virsh命令直接操作特定虛擬機(jī)。
desc:顯示或者更改虛擬機(jī)的描述和標(biāo)題。相關(guān)選項(xiàng)包括—live、--config、--edit和—title。需要注意的是如果同時(shí)使用—live 和—config,那么—config擁有更高的優(yōu)先級(jí)。同樣,建議保證虛擬機(jī)標(biāo)題盡量簡潔,雖然這并不是一項(xiàng)強(qiáng)制規(guī)定。
Save:這條命令將會(huì)關(guān)閉虛擬機(jī)并且將數(shù)據(jù)保存到文件中。這樣就能夠釋放之前分配給虛擬機(jī)的內(nèi)存,因?yàn)檫@些虛擬機(jī)不再運(yùn)行在系統(tǒng)上。如果想要查看具體的保存過程,可以使用—verbose選項(xiàng)。如果想要恢復(fù)之前保存的虛擬機(jī),可以使用restore命令。
sysmem:管理員可以使用這個(gè)命令調(diào)整分配給虛擬機(jī)的內(nèi)存,但是注意單位是kilobytes。借助于setmaxmem,管理員可以更改分配給虛擬機(jī)的***內(nèi)存數(shù)量。Setmem和setmaxmem可以使用—config、--live和—current flags作為選項(xiàng)。
migrate:將虛擬機(jī)遷移到另外一臺(tái)主機(jī),選項(xiàng)包括實(shí)時(shí)遷移或者直接遷移等。需要注意的是單臺(tái)hypervisor不能夠支持所有這些遷移類型。如果對虛擬機(jī)進(jìn)行實(shí)時(shí)遷移,則可以使用migrate –setmaxdowntime來設(shè)定***停機(jī)時(shí)間。
undefine:這條命令可以在不產(chǎn)生任何停機(jī)時(shí)間的情況下將一臺(tái)運(yùn)行狀態(tài)的虛擬機(jī)轉(zhuǎn)變?yōu)榕R時(shí)虛擬機(jī)。如果虛擬機(jī)沒有處于活動(dòng)狀態(tài),那么這條命令將會(huì)移除其配置。管理員還可以添加多種選項(xiàng),比如--managed-save、 --snapshots-metadata、 --storage、 --remove-all-storage 和 --wipe-storage等。
dump:為虛擬機(jī)創(chuàng)建dump日志文件,以便在排錯(cuò)時(shí)使用。如果想要在產(chǎn)生dump文件的過程中保持虛擬機(jī)一直運(yùn)行,則需要使用- -live選項(xiàng),否則虛擬機(jī)將會(huì)被置于掛起狀態(tài)。使用- - crash選項(xiàng),虛擬機(jī)將會(huì)被停止運(yùn)行,并且其狀態(tài)也會(huì)被改為崩潰。使用- - reset選項(xiàng)可以在產(chǎn)生dump日志文件之后重置虛擬機(jī)。
shutdown:正常關(guān)閉虛擬機(jī)。這條命令比destroy命令更加安全,只有在虛擬機(jī)沒有任何響應(yīng)的情況下才推薦使用destroy命令,因?yàn)檫@條命令可能導(dǎo)致文件系統(tǒng)損壞。管理員還可以使用- -more選項(xiàng)更改默認(rèn)的虛擬機(jī)關(guān)閉方式。
存儲(chǔ)池相關(guān)命令
這個(gè)類別中的命令主要用來操作存儲(chǔ)池資源。
pool-list:獲取處于活動(dòng)狀態(tài)的存儲(chǔ)池對象列表??梢允褂?-persistent、--transient、--autostart 或 --no-autostart等選項(xiàng)進(jìn)行分類篩選。如果想要獲取非活動(dòng)狀態(tài)的存儲(chǔ)池列表,可以使用--active選項(xiàng);如果想要獲取完整列表,需要使用--all選項(xiàng)。
pool-build:可以使用這條命令創(chuàng)建存儲(chǔ)池。這條命令的選項(xiàng)包括--overwrite和 --no-overwrite。如果使用—overwrite選項(xiàng),那么目標(biāo)設(shè)備上的現(xiàn)有數(shù)據(jù)將會(huì)被覆蓋,如果使用--no-overwrite參數(shù),當(dāng)目標(biāo)設(shè)備上已經(jīng)創(chuàng)建文件系統(tǒng)時(shí)用戶將會(huì)收到報(bào)錯(cuò)。
pool-edit:這條命令允許管理員使用默認(rèn)文本編輯器對存儲(chǔ)池的XML配置文件進(jìn)行編輯,并且還會(huì)進(jìn)行錯(cuò)誤檢查。
存儲(chǔ)卷相關(guān)命令
管理員可以使用下面這些virsh命令來管理存儲(chǔ)卷。
vol-create::基于XML文件或者命令行參數(shù)來創(chuàng)建存儲(chǔ)卷。進(jìn)一步來說,管理員可以使用vol-create-from命令將其他卷作為輸入來創(chuàng)建新的存儲(chǔ)卷,也可以使用vol-create-as命令加上一系列參數(shù)來創(chuàng)建存儲(chǔ)卷,還可以設(shè)定卷大小以及文件格式。
vol-resize:這條命令能夠以字節(jié)為單位更改指定存儲(chǔ)卷的大小。管理員需要輸入目標(biāo)卷大小,或者使用--delta選項(xiàng)指定在現(xiàn)有基礎(chǔ)上增加多少空間。需要注意的是在活動(dòng)虛擬機(jī)上使用vol-size命令是非常不安全的,但是管理員可以使用blockresize命令實(shí)時(shí)更改存儲(chǔ)空間。
vol-wipe:擦除存儲(chǔ)卷中的數(shù)據(jù),并且確保之前的所有數(shù)據(jù)都不能夠再被訪問。如果虛擬機(jī)中含有機(jī)密信息,那么這條命令非常有用。此外,管理員還可以使用其他數(shù)據(jù)擦除算法,默認(rèn)方式是使用0覆蓋整個(gè)存儲(chǔ)卷。
快照相關(guān)命令
這個(gè)類別中的命令能夠操作虛擬機(jī)快照。
snapshot-list:管理員可以使用這條命令獲取指定虛擬機(jī)的所有可用快照列表。列表包括快照名稱、創(chuàng)建時(shí)間以及虛擬機(jī)狀態(tài)等。同樣可以使用選項(xiàng)來對列表進(jìn)行篩選,比如--form、--leave、--metadata、--inactive和—internal等。
snapshot-create:管理員需要首先輸入快照名稱、描述,并且在XML文件中指定磁盤,之后使用這條命令創(chuàng)建虛擬機(jī)快照。如果不想使用XML文件中的屬性來創(chuàng)建創(chuàng)建快照,那么可以使用snapshot-create-as命令。如果使用—halt選項(xiàng),那么虛擬機(jī)被創(chuàng)建之后將處于非活動(dòng)狀態(tài)。
snapshot-revert:這條命令允許管理員將虛擬機(jī)恢復(fù)到之前的某個(gè)快照狀態(tài)。如果想要恢復(fù)到當(dāng)前快照,可以使用—current選項(xiàng)。虛擬機(jī)狀態(tài)將會(huì)保持和制作快照時(shí)相同,而之后所做的任何操作都將會(huì)被丟棄。
snapshot-delete:管理員可以使用這條命令來刪除指定快照,或者使用--current選項(xiàng)來刪除現(xiàn)有快照。如果想要?jiǎng)h除快照以及子快照或時(shí)間點(diǎn)拷貝,則可以使用--children選項(xiàng)。如果使用--children-only選項(xiàng),那么系統(tǒng)只會(huì)刪除子快照,原有快照不會(huì)受到影響。
當(dāng)然,上面的列表無法包含所有相關(guān)命令。除了上面列舉的這些命令之外,在每個(gè)類別中管理員肯定都能夠找到其他一些非常有幫助的命令。還有一些其他種類的命令,雖然這里沒有列舉,但是值得了解,比如設(shè)備相關(guān)命令、nodedev相關(guān)命令、虛擬網(wǎng)絡(luò)相關(guān)命令、接口相關(guān)命令、加密相關(guān)命令、nwfilter相關(guān)命令以及qemu-specific相關(guān)命令。如果想要順利管理hypervisor和虛擬機(jī),管理員需要掌握所有選項(xiàng)的功能、限制以及可能產(chǎn)生的結(jié)果。