提問(wèn): 我使用libvirt和virt-manager在我的Linux系統(tǒng)上創(chuàng)建虛擬機(jī)。我注意到虛擬機(jī)鏡像位于/var/lib/libvirt/images目錄。有沒(méi)有辦法改變虛擬機(jī)鏡像的默認(rèn)路徑?
libvirt和它的GUI前端virt-manager可以使用不同的虛擬機(jī)管理程序創(chuàng)建和管理VM,例如LVM和Xen。默認(rèn)上所有的虛擬機(jī)鏡像通過(guò)libvirt創(chuàng)建到/var/lib/libvirt/images目錄。然而,這有時(shí)并不是我們希望的。比如 /var/lib/libvirt/images 此處的磁盤(pán)分區(qū)大小有限。或者你想要存儲(chǔ)所有的虛擬機(jī)鏡像到一個(gè)特定的用于管理的倉(cāng)庫(kù)中。
實(shí)際上,你可以非常容易地改變libvirt鏡像的默認(rèn)目錄,或者稱(chēng)之為“存儲(chǔ)池”。
有兩種方法可以改變默認(rèn)存儲(chǔ)池。
方法一: Virt-Manager GUI
如果你正在使用virt-manager GUI程序,改變默認(rèn)存儲(chǔ)池非常容易。
進(jìn)入virt-manager的菜單GUI “編輯” -> "連接細(xì)節(jié)"。
你可以看到如下所是的默認(rèn)存儲(chǔ)池。在窗口的左下角,點(diǎn)擊叉形按鈕,將會(huì)停止默認(rèn)的存儲(chǔ)池。存儲(chǔ)池一旦停止后,點(diǎn)擊右邊的垃圾桶,將會(huì)刪除存儲(chǔ)池。注意這個(gè)動(dòng)作不會(huì)刪除池中的鏡像。
現(xiàn)在點(diǎn)擊左邊的加號(hào)增加一個(gè)新的存儲(chǔ)池。
輸入新的存儲(chǔ)池的名字(比如:default),并且選擇存儲(chǔ)池的類(lèi)型。本例中,因?yàn)槲覀冎皇歉淖兇鎯?chǔ)池目錄所以選擇“文件系統(tǒng)目錄”。
輸入新的存儲(chǔ)池路徑(比如,/storage)。
這時(shí),新的存儲(chǔ)池應(yīng)該啟動(dòng)了,并且自動(dòng)在你創(chuàng)建一個(gè)新的虛擬機(jī)的時(shí)候使用。
方法二: Virsh 命令行
另外一個(gè)改變默認(rèn)存儲(chǔ)池目錄的方法是使用來(lái)自libvirt包的virsh 命令行工具。
首先,運(yùn)行下面的命令來(lái)導(dǎo)出默認(rèn)存儲(chǔ)池的XML定義。
$ virsh pool-dumpxml default > pool.xml
用文本編輯器打開(kāi)XML文件,并且改變節(jié)點(diǎn)中的/var/lib/libvirt/images改成新的地址。
XML/HTML Code復(fù)制內(nèi)容到剪貼板
- pool type='dir'>
- name>default/name>
- uuid>0ec0e393-28a2-e975-feec-0c7356f38d08/uuid>
- capacity unit='bytes'>975762788352/capacity>
- allocation unit='bytes'>530052247552/allocation>
- available unit='bytes'>445710540800/available>
- source>
- /source>
- target>
- path>/var/lib/libvirt/images/path>
- permissions>
- mode>0711/mode>
- owner>-1/owner>
- group>-1/group>
- /permissions>
- /target>
- /pool>
移除現(xiàn)在的默認(rèn)池。
$ virsh pool-destroy default
Pool default destroyed
現(xiàn)在創(chuàng)建一個(gè)基于更新后的XML文件的新存儲(chǔ)池。
$ virsh pool-create pool.xml
Pool default created from pool.xml
這時(shí),默認(rèn)池已經(jīng)改變到新的地址了,并且可以使用了。