Ubuntu Server延伸Disk與LVM的空間
$ df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 1.2G 7.7M 1.2G 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 97G 76G 17G 82% /
話說,早期自架 Kubernetes 的 Ubuntu Server,不小心由 PoC 轉正之後,各項 Pod 服務陸續上線。但 PoC 的規格沒開到那麼好,近期發現, LVM(Logical Volume Manager)空間使用率已超過 8 成。在 IT 同事擴充 Disk 容量後,不論 Windows 或 Ubuntu 都一樣,還需要在 OS 層級些設定調整。以下學習一下 Ubuntu Server 如何做延伸 Disk 與 LVM 兩者的磁碟容量。
這類磁碟異動有其風險,記得先快照一下再進行以下作業。
parted
一般來說,你查詢到 Linux 的 Disk 管理工具會是 fdisk
。不過 fdisk
年事已高,還有 2TB 磁碟容量的限制。現在會建議改用 parted
來進行磁碟區管理。
- 搜尋
parted
可以找到很全面的指令教學,這裡我就不多介紹指令本身了。- 離開輸入
quit
。- 輸入
help
可以看指令說明。
$ sudo parted
[sudo] password for brucechen:
GNU Parted 3.4
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print
Model: VMware Virtual disk (scsi)
Disk /dev/sda: 215GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 2097kB 1049kB bios_grub
2 2097kB 2150MB 2147MB ext4
3 2150MB 215GB 213GB
(parted)
這是 IT 同事還沒擴充 Disk 時,進入 parted
後執行了 print
的訊息,可以看到就是個 200GB 大小的磁碟。
$ sudo parted
[sudo] password for brucechen:
GNU Parted 3.4
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print
Warning: Not all of the space available to /dev/sda appears to be used, you can fix the GPT to use all of the space (an extra 209715200 blocks) or continue with the current setting?
Fix/Ignore? Fix
Model: VMware Virtual disk (scsi)
Disk /dev/sda: 322GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 2097kB 1049kB bios_grub
2 2097kB 2150MB 2147MB ext4
3 2150MB 215GB 213GB
(parted)
這是 IT 同事調整 Disk 後(加 100GB),我們進入 parted
並執行了 print
指令後,parted
自動發現現有磁碟區有被異動過,問你是否要進行修正。輸入 Fix
就完成了 Disk 延伸了。
這裡在 IT 同事調整後,Ubuntu Server (或說 Kubernetes 叢集)需要重開機後,
parted
才能發現到 Disk 有異動。
超簡單吧!(如果你看過網路上其他 fdisk
的教學的話)
lvextend + resize2fs
在 Ubuntu 架構下,把 Disk 延伸之後還沒結束,Ubuntu 採用 LVM 來管理,因此,我們必須把剛剛 Disk 延伸拿到的 Free PE / Size
分配給 LVM 來使用。
$ sudo vgdisplay
--- Volume group ---
VG Name ubuntu-vg
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 2
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 1
Act PV 1
VG Size <198.00 GiB
PE Size 4.00 MiB
Total PE 50687
Alloc PE / Size 25343 / <99.00 GiB
Free PE / Size 25344 / 99.00 GiB
VG UUID Pq1Qe9-eVBC-BhCb-aI9q-jRHC-q1rI-4IqCxU
$ sudo lvdisplay
--- Logical volume ---
LV Path /dev/ubuntu-vg/ubuntu-lv
LV Name ubuntu-lv
VG Name ubuntu-vg
LV UUID rDEyov-xsQC-J6iH-7QE2-PIIV-Mkz3-uaLziz
LV Write Access read/write
LV Creation host, time ubuntu-server, 2022-10-11 16:24:39 +0800
LV Status available
# open 1
LV Size <99.00 GiB
Current LE 25343
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
在 vgdisplay
可以看到 Free PE/Size 25344/99.00 GiB
的延伸容量空間。在 lvdisplay
可以看到,目前 LV 分配到只有 99 GiB 的容量空間。接下來我們利用 lvextend
指令來延伸 LV 容量空間
這裡就不細部討論什麼是
vg
與lv
了。
$ sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
Size of logical volume ubuntu-vg/ubuntu-lv changed from <99.00 GiB (25343 extents) to <198.00 GiB (50687 extents).
Logical volume ubuntu-vg/ubuntu-lv successfully resized.
$ sudo lvdisplay
--- Logical volume ---
LV Path /dev/ubuntu-vg/ubuntu-lv
LV Name ubuntu-lv
VG Name ubuntu-vg
LV UUID rDEyov-xsQC-J6iH-7QE2-PIIV-Mkz3-uaLziz
LV Write Access read/write
LV Creation host, time ubuntu-server, 2022-10-11 16:24:39 +0800
LV Status available
# open 1
LV Size <198.00 GiB
Current LE 50687
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
lvextend -l +100%FREE
是 100% 分配容量給 LV 使用,後面帶的是 LV Path
。在 lvdisplay
也能發現,LV Size
從 99 GiB 上升到 198 GiB。還沒結束,最後還需要用 resize2fs
延伸 File System。
$ sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
resize2fs 1.46.5 (30-Dec-2021)
Filesystem at /dev/mapper/ubuntu--vg-ubuntu--lv is mounted on /; on-line resizing required
old_desc_blocks = 13, new_desc_blocks = 25
The filesystem on /dev/mapper/ubuntu--vg-ubuntu--lv is now 51903488 (4k) blocks long.
resize2fs
的路徑可以從一開始的 df
取得。最後比較一下開始與延伸過後的 LV 結果:
# source
$ df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 1.2G 7.7M 1.2G 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 97G 76G 17G 82% /
# extend
$ df -ht ext4
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/ubuntu--vg-ubuntu--lv 195G 76G 110G 41% /
/dev/sda2 2.0G 242M 1.6G 14% /boot
Avail 從 17G 上升到 110G,Use 也從 82% 下降到 41%。這樣就能確定 Ubuntu Server 的 Disk 與 LVM 磁碟容量延伸有成功。
沒有留言:
張貼留言
感謝您的留言,如果我的文章你喜歡或對你有幫助,按個「讚」或「分享」它,我會很高興的。