Linux虛擬機在使用過程中,硬盤空間不夠使用。由於前期沒有做LVM,所以只能手動添加新的硬盤。
給虛擬機添加硬盤有兩種方法:
1、通過virsh attach-disk命令添加一塊硬盤到系統中,即時生效,但系統重啟后新硬盤會消失。
2、通過修改虛擬機配置文件進行添加,永久生效。
現在我來一一介紹方法一和方法二。
方法一、通過virsh attach-disk命令添加硬盤
首先看看在未添加新硬盤系統的分區情況。
fdisk –l
df –h
從上圖我們可以看到目前系統中只有一塊硬盤vda,而且被分成3個分區,其中vda1為系統啟動分區。
下面開始添加硬盤:
先使用 qemu-img添加一塊新的硬盤
qemu-img create -f qcow2 /vhost/testdisk.img 20G
現在開始使用virsh attach-disk命令把新硬盤添加到虛擬機上。
virsh attach-disk ilanni01 /vhost/testdisk.img vdb
該命令的意思是把/vhost/testdisk.img硬盤添加到虛擬機ilanni01中,並且該硬盤在虛擬機系統中顯示的硬盤名稱為vdb。
現在在系統中查看是否已經掛載該硬盤,使用fdisk命令,如下圖:
以上操作是在虛擬機運行是,進行操作的。
現在我們把虛擬機關閉然后,再添加看看。
virsh destroy ilanni01
virsh list --all
再次使用virsh attach-disk添加新的硬盤vdc,如下命令:
virsh attach-disk ilanni01 /vhost/test1.img vdc
通過上圖我們可以發現,通過virsh attach-disk添加硬盤時,只能是虛擬機運行時才能添加,而且是即時生效的。
現在我們重新啟動虛擬機看看,如下圖:
fdisk –l
通過上圖,我們可以看到通過virsh attach-disk命令添加的硬盤在重啟系統后,添加的新硬盤失效。
那么現在我們來看第二種方法通過修改配置文件來添加新硬盤。
要通過修改配置文件來添加硬盤,我們首先要關閉虛擬機,否則無法正常添加。
關閉虛擬機,然后使用virsh edit命令修改虛擬機的主配置文件。
虛擬機的所有配置文件都存放在/etc/libvirt/qemu,如下圖:
編輯虛擬機配置文件,如下圖:
配置文件中,我們找到有關硬盤的代碼:
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' cache='none'/>
<source file='/vhost/ilanni01.img'/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</disk>
現在我們在</disk>這之后,添加如下的代碼
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' cache='none'/>
<source file='/vhost/testdisk.img'/>
<target dev='vdb' bus='virtio'/>
</disk>
注意其中type表示硬盤的格式
file表示硬盤所在的路徑
dev表示硬盤在系統中顯示的硬盤名稱
bus表示硬盤的接線類型,如果是windows系統一般是ide。
添加完畢后,我們來啟動虛擬機看看實際的效果。
可以看到硬盤已經被添加進來了。
第一種方法和第二種方法的區別,以上兩種方法都能添加硬盤。
但是如果是使用第一種方法添加的硬盤,使用virsh edit ilanni01編輯時,是無法看到第一種方法添加的硬盤的,同時在系統重啟添加的硬盤會消失。也就是說使用第一種方法添加的硬盤是在ilanni01.xml這個配置文件中看不到的。
除此之外,如果是卸載硬盤,通過第一種方法添加的一定要在虛擬機運行時卸載。否則會報錯,但是還會把該磁盤卸載掉。而且在此之前對硬盤的操作、分區,等都還存在。
卸載硬盤我們可以使用virsh detach-disk命令,如下圖:
virsh detach-disk ilanni01 --target vdb
使用virsh detach-disk ilanni01 --target vdb 也可以卸載通過virsh edit ilanni01添加的硬盤。但是此時配置文件ilanni01.xml中還是有此信息的。使用 virsh attach-disk ilanni01 /vhost/testdisk.img vdb命令可以再增加,系統重啟后還是存在的。
綜上所述,在我們添加硬盤時,建議還是使用第二種方法。