Centos

如何在沒有空閒分區的情況下擴展 lvm+xfs

  • January 29, 2021

我被一個帶有 1 個磁碟的 centos 7 vm 卡住了,該磁碟創建了 4 個主分區……現在我需要添加更多空間:

它目前看起來像這樣 - 簡化:

mount
/dev/mapper/centos-root on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)

Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root  175G   14G  162G   8% /

lsblk
sda               8:0    0  250G  0 disk
├─sda1            8:1    0  500M  0 part /boot
├─sda2            8:2    0 59.5G  0 part
│ └─centos-root 253:0    0  175G  0 lvm  /
├─sda3            8:3    0   60G  0 part
│ └─centos-root 253:0    0  175G  0 lvm  /
└─sda4            8:4    0   80G  0 part
 └─centos-root 253:0    0  175G  0 lvm  /

磁碟/dev/sda已擴展,有 50GB 空閒空間且未分區。通常,我會執行以下操作之一:

  • 使用可用空間創建一個新分區並將其添加到centos-rootLV。不幸的是,sda1-4 都是主分區,所以我實際上不能再創建了。
  • 用於resize2fs縮小文件系統,然後lvreduce是 LV。但是這個文件系統是 xfs,不能減少。

我還嘗試創建一個新的虛擬磁碟/dev/sdb,並執行以下命令來清除其中一個分區:

pvcreate /dev/sdb
vgextend centos /dev/sdb
pvmove /dev/sda4 /dev/sdb
 /dev/sda4: Moved: 0.00%
 /dev/sda4: Moved: 3.06%
 [kernel panic] ????

但這實際上會使整個虛擬機崩潰……現在我被卡住了。如何至少清理這些分區中的一個,或者至少添加我已經擴展的空間?

似乎您一開始是sda2作為唯一的物理卷。後來,您添加了sda3, then sda4(我不明白您為什麼這樣做,因為您的根文件系統僅使用 14GB)。現在你有一個sda有四個分區的磁碟,但如果我計算正確的話,仍然有大約 50GB 可用空間。

LVM 的存在是為了自動化儲存空間管理並使其更加靈活。但是,您sda手動管理空間並仍然使用 LVM。這沒有多大意義。您應該sda2從一開始就提供全部剩餘空間,而不是添加分區,然後使用 LVM 來管理該空間。

我不知道是什麼/dev/sdb以及為什麼您的系統在pvmove. 我不確定您的捲組現在處於什麼狀態。假設它仍然可以,我會簡單地擴展sda4. 使用正確的版本parted,這是一個簡單的命令resizepart。請參閱Red Hat 在 parted 上的部落格條目

不幸的是,某些版本的 Centos 7 包含一個parted沒有resizepart. 如果是這種情況,請嘗試更新parted,或使用fdisk刪除然後重新創建分區。或使用gparted Live DVD

如果您使用上面的 Live DVD,我認為您已經完成了,因為它還處理 LVM 和文件系統。如果不是,pvresize /dev/sda4則需要通知 LVM 新大小。

理想情況下,您應該將三個 PVsda合併為一個,但這需要複製數據,例如使用pvmove. 由於我不明白的原因,在您的情況下失敗了。

引用自:https://unix.stackexchange.com/questions/631540