1. 程式人生 > >kvm熱新增磁碟,併為根目錄擴容,重啟依然生效

kvm熱新增磁碟,併為根目錄擴容,重啟依然生效

接上篇,<<熱新增磁碟,重啟檔案不丟失>>

一.理論掃盲:
centos7的磁碟預設使用lvm,所以是可以直接擴充套件根分割槽的,但是無法縮小,在物理機中會預設將磁碟分為兩個分割槽,分別為sda1和sda2,其中分割槽sda1作為系統盤/boot掛載,少量空間;sda2作為一個物理卷並且完全作為邏輯卷組VG(Volume Group)centos,在這個邏輯卷組centos中建立三個邏輯卷LV(Logical Volume)root和home還有swap,分別掛載到根目錄/和/home以及swap。而在kvm虛擬機器中則不是sda了,而是vda,其他都和物理機差不多。

二.下面我們看看磁碟分割槽的情況
kvm熱新增磁碟,併為根目錄擴容,重啟依然生效


這裡我們看到檔案系統是/dev/mapper/centos-root,然後掛載到根目錄上。下面來看下這個檔案系統到底是個啥?
kvm熱新增磁碟,併為根目錄擴容,重啟依然生效
好吧,對應根目錄的這個檔案系統,其實是個軟連結,真正指向的是dm-0這個塊裝置。
那麼再看看另外一張圖(這裡只是普及啊),還有個指向這個裝置的軟連結呢?
kvm熱新增磁碟,併為根目錄擴容,重啟依然生效

為啥還要個軟連結,待解決。。。。。先不管這個問題

三.正題來了,接上篇,我們可以熱新增磁碟到kvm虛擬機器中去,由於centos 7又支援磁碟擴充套件(lvm機制),那麼我們新增一塊磁碟到kvm虛擬機器中,然後加到root所在的vggroup裡去不就行了
宿主機下操作:
#新增一塊磁碟
qemu-img create -f qcow2 test3_add03.qcow2 5G
#將磁碟熱新增到kvm虛擬機器中去
virsh attach-disk centos7.0 /var/lib/libvirt/images/test3_add03.qcow2 vdc --cache=none --subdriver=qcow2
#讀取記憶體中關於kvm虛擬機器的新增的磁碟資訊
virsh dumpxml centos7.0
#將獲取到的磁碟資訊加入到現有的kvm配置中去
virsh edit centos7.0

以下在kvm虛擬機器中操作:
#新增物理卷vdc
pvcreate /dev/vdc
#將物理卷vdc新增至/root所在的卷組,centos可以通過lvdisplay查詢到
kvm熱新增磁碟,併為根目錄擴容,重啟依然生效
vgextend centos /dev/vdc
#擴充root所在的邏輯卷組,大小就是新增加的vdc大小
lvextend -L +5G /dev/mapper/centos-root
#重新讀取硬碟資訊
xfs_growfs /dev/mapper/centos-root
#再次檢視是否成功
df -hT
kvm熱新增磁碟,併為根目錄擴容,重啟依然生效
新增成功,之前是12g

重啟仍然生效