Linux

擴展 VM 磁碟大小後如何增加 LVM 中卷組中的可用空間

  • November 15, 2020

我們想在我們的 VM centOS 伺服器中增加卷組中的空間

例如

pvs我們看到

pvs
 PV         VG   Fmt  Attr PSize    PFree
 /dev/sda2  VLwol lvm2 a--  <100.00g <5.09g

主要目標是在 PFree 下具有值 - 300g

例子

pvs
 PV         VG   Fmt  Attr PSize    PFree
 /dev/sda2  VLwol lvm2 a--  <400.00g <305g

所以首先我們從 Vsphaere 客戶端將 OS 磁碟增加 + 300g

然後我們重新掃描磁碟

echo 1>/sys/class/block/sda/device/rescan

從這一點來看,為了增加卷組中的可用空間,最好的建議方法是什麼?

這是一個在 KVM 虛擬機上使用 iSCSI 驅動器執行此操作的範例,因為此過程適用於任何執行 LVM2 的現代 Linux 作業系統,而不僅僅是 VMware 上的 CentOS。我在一個測試虛擬機上做了這個,/dev/sda大小/dev/sda1都是 64G:

root@xi:~# lsblk /dev/sda
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda           8:0    0   64G  0 disk 
+-sda1        8:1    0   64G  0 part 
 +-vg-root 254:0    0 22.4G  0 lvm  /
 +-vg-swap 254:1    0  952M  0 lvm  [SWAP]
 +-vg-tmp  254:2    0  952M  0 lvm  /tmp
 +-vg-var  254:3    0  7.5G  0 lvm  /var

root@xi:~# pvs
 PV         VG Fmt  Attr PSize   PFree  
 /dev/sda1  vg lvm2 a--  <63.99g <32.33g

我去了我的儲存子系統並將磁碟擴展了 8GB。現在我們可以告訴核心重新掃描您提到的設備(儘管我的設備是在下面找到的/sys/class/scsi_disk)。

root@xi:~# echo 1 > /sys/class/scsi_disk/0\:0\:0\:0/device/rescan

root@xi:~# lsblk /dev/sda
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda           8:0    0   72G  0 disk 
+-sda1        8:1    0   64G  0 part 
 +-vg-root 254:0    0 22.4G  0 lvm  /
 +-vg-swap 254:1    0  952M  0 lvm  [SWAP]
 +-vg-tmp  254:2    0  952M  0 lvm  /tmp
 +-vg-var  254:3    0  7.5G  0 lvm  /var

我們現在可以看到,lsblk現在顯示了一個更大的驅動器,但分區仍然是原來的大小。我們需要使用分區工具調整分區大小以填充擴展空間。為此fdisk,您必須擦除分區並從同一塊開始創建一個新分區,但這有點嚇人。更簡單的方法是使用parted resizepart,如下所示:

root@xi:~# parted /dev/sda resizepart 1 100%                                  
Information: You may need to update /etc/fstab.

root@xi:~# lsblk /dev/sda
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda           8:0    0   72G  0 disk 
+-sda1        8:1    0   72G  0 part 
 +-vg-root 254:0    0 22.4G  0 lvm  /
 +-vg-swap 254:1    0  952M  0 lvm  [SWAP]
 +-vg-tmp  254:2    0  952M  0 lvm  /tmp
 +-vg-var  254:3    0  7.5G  0 lvm  /var

parted程序調整了磁碟上的分區大小,但核心可能還不知道更改。執行partprobe以確保核心更新其在記憶體中的表:

root@xi:~# partprobe /dev/sda

在我們知道分區已經調整大小並且核心知道之後,我們終於可以擴展物理捲了。該pvresize命令會自動擴展物理卷以填充所有可用空間:

root@xi:~# pvresize /dev/sda1
 Physical volume "/dev/sda1" changed
 1 physical volume(s) resized or updated / 0 physical volume(s) not resized

root@xi:~# pvs
 PV         VG Fmt  Attr PSize  PFree 
 /dev/sda1  vg lvm2 a--  71.99g 40.33g

引用自:https://serverfault.com/questions/1042636