如何在沒有空閒分區的情況下擴展 lvm+xfs
我被一個帶有 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-root
LV。不幸的是,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
, thensda4
(我不明白您為什麼這樣做,因為您的根文件系統僅使用 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 新大小。理想情況下,您應該將三個 PV
sda
合併為一個,但這需要複製數據,例如使用pvmove
. 由於我不明白的原因,在您的情況下失敗了。