Hướng dẫn resize phân vùng ổ đĩa chuẩn GPT trên Linux

Bài viết dưới đây sẽ hướng dẫn cách tăng dung lượng đĩa ở chuẩn GPT trên hệ điều hành Linux

TRƯỚC TIÊN CẦN XÁC ĐỊNH XEM PHÂN VÙNG Ổ ĐĨA LÀ CHUẨN GPT HAY MBR

Sử dụng lệnh parted để xác định xem phân vùng được tạo là chuẩn GPT hay MBR

MBR partition

Sau khi gõ lệnh parted và bấm Enter,  bảng phân vùng ổ đĩa sẽ xuất hiện như dưới đây và cho chúng ta biết nếu phân vùng đang là MBR
[user@myvm ~]# parted -l /dev/sda Model: Msft Virtual Disk (scsi) Disk /dev/sda: 107GB Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags 1 1049kB 525MB 524MB primary ext4 boot 2 525MB 34.4GB 33.8GB primary ext4 [user@myvm ~]#

GPT partition

Sau khi gõ lệnh parted và bấm Enter,  bảng phân vùng ổ đĩa sẽ xuất hiện như dưới đây và cho chúng ta biết nếu phân vùng đang là GPT
[user@myvm ~]# parted -l /dev/sda Model: Msft Virtual Disk (scsi) Disk /dev/sda: 68.7GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 525MB 524MB fat16 EFI System Partition boot 2 525MB 1050MB 524MB xfs 3 1050MB 1052MB 2097kB bios_grub 4 1052MB 68.7GB 67.7GB lvm
Nếu phân vùng máy là GPT, chúng ta có thể tiến hành resize ổ đĩa máy ảo. Resize ổ đĩa phân vùng

Resize ổ đĩa phân vùng

Lưu ý: Backup toàn bộ data, VM hoặc tạo snapshot trước khi thực hiện resize

UBUNTU

Để tăng dung lượng đĩa trên hệ điều hành Ubuntu:

  1. Shutdown VM
  2. tăng dung lượng qua trình quản lý server như esxi, proxmox.vcenter ….
  3. Restart VM, đăng nhập bằng quyền root
  4. Check lại thông số dung lượng đĩa đã được tăng hay chưa

Như ví dụ dưới đây, phân vùng ổ đã được tăng lên 100GB ở /dev/sda1
user@myvm:~# df -Th Filesystem Type Size Used Avail Use% Mounted on udev devtmpfs 314M 0 314M 0% /dev tmpfs tmpfs 65M 2.3M 63M 4% /run /dev/sda1 ext4 97G 1.8G 95G 2% / tmpfs tmpfs 324M 0 324M 0% /dev/shm tmpfs tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs tmpfs 324M 0 324M 0% /sys/fs/cgroup /dev/sda15 vfat 105M 3.6M 101M 4% /boot/efi /dev/sdb1 ext4 20G 44M 19G 1% /mnt tmpfs tmpfs 65M 0 65M 0% /run/user/1000 user@myvm:~#
SUSE

Để tăng dung lượng đĩa trên SUSE 12 SP4, SUSE SLES 12 cho SAP,  SUSE SLES 15, và SUSE SLES 15 cho SAP:

  1. Shutdown VM
  2. tăng dung lượng qua trình quản lý server
  3. Restart VM

Khi VM đã được restart, thao tác theo các bước sau:

  • Truy cập vào VM bằng quyền root bằng lệnh sau:

# sudo -i

  • Sử dụng lệnh sau để cài đặt gói growpart, thứ sẽ cần để resize phân vùng:

# zypper install growpart

  • Sử dụng lệnh lsblk để tìm phân vùng được gắn trên thư mục gốc của hệ thống tệp, trong trường hợp này là phân vùng sda4 đang được mount với :/

# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 48G 0 disk ├─sda1 8:1 0 2M 0 part ├─sda2 8:2 0 512M 0 part /boot/efi ├─sda3 8:3 0 1G 0 part /boot └─sda4 8:4 0 28.5G 0 part / sdb 8:16 0 4G 0 disk └─sdb1 8:17 0 4G 0 part /mnt/resource

  • Resize phân vùng được xác định ở bước trước bằng lệnh growpart:

# growpart /dev/sda 4 CHANGED: partition=4 start=3151872 old: size=59762655 end=62914527 new: size=97511391 end=100663263

  • Chạy lệnh lsblk để kiểm tra xem phân vùng đã được tăng hay chưa. Như ví dụ dưới đây, phân vùng /dev/sda4 đã được tăng lên 46.5 GB:

linux:~ # lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 48G 0 disk ├─sda1 8:1 0 2M 0 part ├─sda2 8:2 0 512M 0 part /boot/efi ├─sda3 8:3 0 1G 0 part /boot └─sda4 8:4 0 46.5G 0 part / sdb 8:16 0 4G 0 disk └─sdb1 8:17 0 4G 0 part /mnt/resource

  • Xác định loại định dạng đĩa bằng cách dùng lệnh lsblk với tùy chọn -f

linux:~ # lsblk -f NAME FSTYPE LABEL UUID MOUNTPOINT sda ├─sda1 ├─sda2 vfat EFI AC67-D22D /boot/efi ├─sda3 xfs BOOT 5731a128-db36-4899-b3d2-eb5ae8126188 /boot └─sda4 xfs ROOT 70f83359-c7f2-4409-bba5-37b07534af96 / sdb └─sdb1 ext4 8c4ca904-cd93-4939-b240-fb45401e2ec6 /mnt/resource
Dựa theo định dạng đĩa, sử dụng lệnh thích hợp để resize phân vùng hệ thống:

#xfs_growfs /

linux:~ # xfs_growfs / meta-data=/dev/sda4 isize=512 agcount=4, agsize=1867583 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0 spinodes=0 rmapbt=0 = reflink=0 data = bsize=4096 blocks=7470331, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal bsize=4096 blocks=3647, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 7470331 to 12188923

#resize2fs /dev/sda4

  • Check lại thông số dung lượng đĩa đã được tăng bằng lệnh df -Th

#df -Thl

linux:~ # df -Thl Filesystem Type Size Used Avail Use% Mounted on devtmpfs devtmpfs 445M 4.0K 445M 1% /dev tmpfs tmpfs 458M 0 458M 0% /dev/shm tmpfs tmpfs 458M 14M 445M 3% /run tmpfs tmpfs 458M 0 458M 0% /sys/fs/cgroup /dev/sda4 xfs 47G 2.2G 45G 5% / /dev/sda3 xfs 1014M 86M 929M 9% /boot /dev/sda2 vfat 512M 1.1M 511M 1% /boot/efi /dev/sdb1 ext4 3.9G 16M 3.7G 1% /mnt/resource tmpfs tmpfs 92M 0 92M 0% /run/user/1000 tmpfs tmpfs 92M 0 92M 0% /run/user/490
RHEL với LVM

  1. Truy cập VM bằng root với lệnh sau:

[root@dd-rhel7vm ~]# sudo -i

  1. Sử dụng lệnh lsblk để xác định phân vùng nào đang được gắn với root (/) trong hệ thống. Trong trường hợp này, ta có thể thấy rootvg-rootlv đang đang được mount với /. Nếu muốn gắn với tệp khác, các bạn có thể thay thế phân vùng và mount point khác theo cách dưới đây:

[root@dd-rhel7vm ~]# lsblk -f NAME FSTYPE LABEL UUID MOUNTPOINT fd0 sda ├─sda1 vfat C13D-C339 /boot/efi ├─sda2 xfs 8cc4c23c-fa7b-4a4d-bba8-4108b7ac0135 /boot ├─sda3 └─sda4 LVM2_member zx0Lio-2YsN-ukmz-BvAY-LCKb-kRU0-ReRBzh ├─rootvg-tmplv xfs 174c3c3a-9e65-409a-af59-5204a5c00550 /tmp ├─rootvg-usrlv xfs a48dbaac-75d4-4cf6-a5e6-dcd3ffed9af1 /usr ├─rootvg-optlv xfs 85fe8660-9acb-48b8-98aa-bf16f14b9587 /opt ├─rootvg-homelv xfs b22432b1-c905-492b-a27f-199c1a6497e7 /home ├─rootvg-varlv xfs 24ad0b4e-1b6b-45e7-9605-8aca02d20d22 /var └─rootvg-rootlv xfs 4f3e6f40-61bf-4866-a7ae-5c6a94675193 /

  1. Kiểm tra xem có phân vùng trống trong nhóm LVM chứa phân vùng root hay không. Nếu có thì các bạn có thể skip tới bước 12.

[root@dd-rhel7vm ~]# vgdisplay rootvg — Volume group — VG Name rootvg System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 7 VG Access read/write VG Status resizable MAX LV 0 Cur LV 6 Open LV 6 Max PV 0 Cur PV 1 Act PV 1 VG Size <63.02 GiB PE Size 4.00 MiB Total PE 16132 Alloc PE / Size 6400 / 25.00 GiB Free PE / Size 9732 / <38.02 GiB VG UUID lPUfnV-3aYT-zDJJ-JaPX-L2d7-n8sL-A9AgJb
Trong trường hợp này, dòng Free PE / Size hiển thị trống 38.02GB trong phân vùng. Bạn không cần phải thay đổi kích thước đĩa trước khi thêm dung lượng vào phân vùng

  • Để thêm dung lượng disk trên RHEL 7.x với LVM:
  • shutdown VM
  • Tăng dung lượng disk qua trình quản lý server
  • Bật lại VM
  • Khi VM đã được bật lên, thao tác tiếp như sau

Cài đặt gói cloud-utils-growpart để chạy được lệnh growpart. Lệnh này được dùng để tăng kích thước đĩa OS và trình xử lý gdisk cho GPT.
[root@dd-rhel7vm ~]# yum install cloud-utils-growpart gdisk
 

  • Xác định xem phân vùng nào chứa LVM vật lý hay phân vùng (PV) nằm trong nhóm rootvg bằng cách sử dụng lệnh pvscan. Lưu ý rằng kích thước đĩa và đĩa trống được đặt trong dấu [ ]

 
[root@dd-rhel7vm ~]# pvscan PV /dev/sda4 VG rootvg lvm2 [<63.02 GiB / <38.02 GiB free]
 

  • Xác định  dung lượng phân vùng bằng lệnh lsblk

 
[root@dd-rhel7vm ~]# lsblk /dev/sda4 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda4 8:4 0 63G 0 part ├─rootvg-tmplv 253:1 0 2G 0 lvm /tmp ├─rootvg-usrlv 253:2 0 10G 0 lvm /usr ├─rootvg-optlv 253:3 0 2G 0 lvm /opt ├─rootvg-homelv 253:4 0 1G 0 lvm /home ├─rootvg-varlv 253:5 0 8G 0 lvm /var └─rootvg-rootlv 253:6 0 2G 0 lvm /
 

  • Mở rộng phân vùng chứa PV bằng lệnh growpart, tên thiết bị và số phân vùng. Làm như vậy sẽ mở rộng phân vùng chỉ định và sử dụng toàn bộ dung lượng trên ổ.

 
[root@dd-rhel7vm ~]# growpart /dev/sda 4 CHANGED: partition=4 start=2054144 old: size=132161536 end=134215680 new: size=199272414 end=201326558
 

  • Chạy lệnh lsblk để kiểm tra xem phân vùng đã được tăng hay chưa. Như ví dụ dưới đây, phân vùng sda4 đã được tăng lên từ 63GB lên 95GB:

 
[root@dd-rhel7vm ~]# lsblk /dev/sda4 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda4 8:4 0 95G 0 part ├─rootvg-tmplv 253:1 0 2G 0 lvm /tmp ├─rootvg-usrlv 253:2 0 10G 0 lvm /usr ├─rootvg-optlv 253:3 0 2G 0 lvm /opt ├─rootvg-homelv 253:4 0 1G 0 lvm /home ├─rootvg-varlv 253:5 0 8G 0 lvm /var └─rootvg-rootlv 253:6 0 2G 0 lvm /
 

  • Mở rộng PV để sử dụng phần còn lại của phân vùng mới được mở rộng:

 
[root@dd-rhel7vm ~]# pvresize /dev/sda4 Physical volume “/dev/sda4” changed 1 physical volume(s) resized or updated / 0 physical volume(s) not resized
 

  • Xác minh rằng dung lượng của PV mới được thêm bằng với dung lượng bạn muốn tạo, sau đó so sánh với thông số ban đầu

 
[root@dd-rhel7vm ~]# pvscan PV /dev/sda4 VG rootvg lvm2 [<95.02 GiB / <70.02 GiB free]
 

  • Mở rộng phân vùng (LV) bạn cần. Dung lượng không nhất thiết phải là toàn bộ dung lượng trống trong phân vùng. Như ví dụ dưới đây, phân vùng /dev/mapper/rootvg-rootlv được thay đổi kích thước từ 2GB thành 12GB (tăng 10GB). Lệnh này cũng sẽ thay đổi kích thước tệp hệ thống.

 
[root@dd-rhel7vm ~]# lvresize -r -L +10G /dev/mapper/rootvg-rootlv
Ví dụ:
[root@dd-rhel7vm ~]# lvresize -r -L +10G /dev/mapper/rootvg-rootlv Size of logical volume rootvg/rootlv changed from 2.00 GiB (512 extents) to 12.00 GiB (3072 extents). Logical volume rootvg/rootlv successfully resized. meta-data=/dev/mapper/rootvg-rootlv isize=512 agcount=4, agsize=131072 blks = sectsz=4096 attr=2, projid32bit=1 = crc=1 finobt=0 spinodes=0 data = bsize=4096 blocks=524288, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal bsize=4096 blocks=2560, version=2 = sectsz=4096 sunit=1 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 524288 to 3145728
 

  • Lệnh lvresize sẽ tự động gọi lệnh thay đổi kích thước thích hợp cho tệp hệ thống trong phân vùng (LV). Kiểm tra xem /dev/mapper/rootvg-rootlv được gắn trên / có tăng kích thước tệp hệ thống hay không bằng lệnh sau:

 
[root@dd-rhel7vm ~]# df -Th /
Ví dụ:
[root@dd-rhel7vm ~]# df -Th / Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/rootvg-rootlv xfs 12G 71M 12G 1% / [root@dd-rhel7vm ~]#
RHEL RAW
Để tăng dung lượng đĩa trên RHEL RAW:

  • shutdown VM
  • Tăng dung lượng disk qua trình quản lý server
  • Bật lại VM

Khi VM đã được bật lên, thao tác tiếp như sau:

  1. Truy cập VM bằng quyền root bằng lệnh dưới đây:

[root@dd-rhel7vm ~]# sudo -i

  1. Khi VM khởi động lại xong, làm theo các bước dưới đây:
    • Cài đặt gói cloud-utils-growpart để chạy được lệnh growpart. Lệnh này được dùng để tăng kích thước đĩa OS và trình xử lý gdisk cho GPT.

[root@dd-rhel7vm ~]# yum install cloud-utils-growpart gdisk

  1. Sử dụng lệnh lsblk -f để xác định phân vùng và loại phân vùng đang gắn với root (/)

[root@vm-dd-cent7 ~]# lsblk -f NAME FSTYPE LABEL UUID MOUNTPOINT sda ├─sda1 xfs 2a7bb59d-6a71-4841-a3c6-cba23413a5d2 /boot ├─sda2 xfs 148be922-e3ec-43b5-8705-69786b522b05 / ├─sda14 └─sda15 vfat 788D-DC65 /boot/efi sdb └─sdb1 ext4 923f51ff-acbd-4b91-b01b-c56140920098 /mnt/resource

  1. Để xác định, hãy bắt đầu bằng cách list bảng phân vùng sda bằng gdisk. Trong ví dụ này, ta thấy 1 đĩa 48GB với phân vùng 2 29GB. Đĩa đã được nâng lên từ 30 tới 48GB bằng trình quản lý Azure

[root@vm-dd-cent7 ~]# gdisk -l /dev/sda GPT fdisk (gdisk) version 0.8.10 Partition table scan: MBR: protective BSD: not present APM: not present GPT: present Found valid GPT with protective MBR; using GPT. Disk /dev/sda: 100663296 sectors, 48.0 GiB Logical sector size: 512 bytes Disk identifier (GUID): 78CDF84D-9C8E-4B9F-8978-8C496A1BEC83 Partition table holds up to 128 entries First usable sector is 34, last usable sector is 62914526 Partitions will be aligned on 2048-sector boundaries Total free space is 6076 sectors (3.0 MiB) Number Start (sector) End (sector) Size Code Name 1 1026048 2050047 500.0 MiB 0700 2 2050048 62912511 29.0 GiB 0700 14 2048 10239 4.0 MiB EF02 15 10240 1024000 495.0 MiB EF00 EFI System Partition

  1. Mở rộng phân vùng root, trong trường hợp này là sda2 bằng lệnh growpart. Làm như vậy sẽ mở rộng phân vùng chỉ định và sử dụng toàn bộ dung lượng trên ổ.

[root@vm-dd-cent7 ~]# growpart /dev/sda 2 CHANGED: partition=2 start=2050048 old: size=60862464 end=62912512 new: size=98613214 end=100663262

  1. Kiểm tra lại bảng phân vùng mới bằng lệnh gdisk, ta có thể thấy phân vùng 2 đã được nâng lên 47GB

[root@vm-dd-cent7 ~]# gdisk -l /dev/sda GPT fdisk (gdisk) version 0.8.10 Partition table scan: MBR: protective BSD: not present APM: not present GPT: present Found valid GPT with protective MBR; using GPT. Disk /dev/sda: 100663296 sectors, 48.0 GiB Logical sector size: 512 bytes Disk identifier (GUID): 78CDF84D-9C8E-4B9F-8978-8C496A1BEC83 Partition table holds up to 128 entries First usable sector is 34, last usable sector is 100663262 Partitions will be aligned on 2048-sector boundaries Total free space is 4062 sectors (2.0 MiB) Number Start (sector) End (sector) Size Code Name 1 1026048 2050047 500.0 MiB 0700 2 2050048 100663261 47.0 GiB 0700 14 2048 10239 4.0 MiB EF02 15 10240 1024000 495.0 MiB EF00 EFI System Partition

  1. Mở rộng filesystem trên phân vùng bằng xfs_growfs

[root@vm-dd-cent7 ~]# xfs_growfs / meta-data=/dev/sda2 isize=512 agcount=4, agsize=1901952 blks = sectsz=4096 attr=2, projid32bit=1 = crc=1 finobt=0 spinodes=0 data = bsize=4096 blocks=7607808, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal bsize=4096 blocks=3714, version=2 = sectsz=4096 sunit=1 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 7607808 to 12326651

  1. kiểm tra lại dung lượng mới bằng lệnh df

[root@vm-dd-cent7 ~]# df -hl Filesystem Size Used Avail Use% Mounted on devtmpfs 452M 0 452M 0% /dev tmpfs 464M 0 464M 0% /dev/shm tmpfs 464M 6.8M 457M 2% /run tmpfs 464M 0 464M 0% /sys/fs/cgroup /dev/sda2 48G 2.1G 46G 5% / /dev/sda1 494M 65M 430M 13% /boot /dev/sda15 495M 12M 484M 3% /boot/efi /dev/sdb1 3.9G 16M 3.7G 1% /mnt/resource tmpfs 93M 0 93M 0% /run/user/1000

Chia sẻ cho bạn bè cùng đọc