Add more disk using LVM

Step 1: Check disk

Chúng ta cần kiểm tra chắc chắn rằng partition của chúng ta đang thao tác là Linux LVM

fdisk -l

Như bạn có thể thấy là /dev/sda5 ở trên là Linux LVM và nó có ID là 8e. 8e là mã hex để thể hiện nó là type kiểu Linux LVM. Như vậy chúng ta đã kiểm tra được đang làm việc trên Linux LVM rồi.

Như thông tin trong ảnh bên dưới thì ổ cứng hiện tại là 20GB và nó đang được đặt trong logical với tên là /dev/mapper/Mega-root nơi mà chúng ta sẽ mở rộng ổ cứng mới.

2. Increasing the virtual hard disk

Tiếp theo chúng ta cần thay đổi ổ cứng của máy ảo từ 20GB thành 30GB bằng cách thay đổi setting của VMWare.

3. Detect the new disk space

Như vậy là chúng ta đã tăng được ổ cứng ở tầng hardware rồi, tiếp theo chúng ta sẽ tạo partition mới dựa trên ổ cứng này.

Trước khi chúng ta có thể làm được điều này thì cần phải check được “unallocated disk” đã được phát hiện ở server chưa. Bạn có thể sử dụng lệnh “fdisk -l” để xem danh sách primay disk. Tuy nhiên bạn có thể sẽ nhìn thấy list giống như trạng thái ban đầu, ở thời điểm này bạn không cần phải restart server mà vẫn có thể check được thay đổi bằng command dưới đây.

echo "- - -" > /sys/class/scsi_host/host0/scan

THeo như hình ảnh bên dưới thì chúng ta có thể xác nhận được là đã hiển thị bao gồm cả ổ cứng mới.

4. Partition the new disk space

Như bạn đã thấy chúng ta đang làm việc với /dev/sda và chúng ta sẽ tạo primary partition mới bằng cách sử dụng fdisk.

fdisk /dev/sda

Chúng ta sẽ làm theo hướng dẫn như bên dưới và nhập theo kí tự in đậm. Chú ý chọn m để có thể get tất cả commands liên quan đến fdisk

‘n’ là để thêm partition mới

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): n

‘p’ là để tạo primary partition

Command action
   l   logical (5 or over)
   p   primary partition (1-4)
p

Chúng ta đã có /dev/sda1 và /dev/sda2 như trên vì vậy sử dụng 3 để tạo /dev/sda3

Partition number (1-4): 3

Tiếp theo enter 2 lần để nhận default cylinders đầu và cuối

First cylinder (2611-3916, default 2611): "enter"
Using default value 2611
Last cylinder, +cylinders or +size{K,M,G} (2611-3916, default 3916): "enter"
Using default value 3916

‘t’ là để thay đổi system ID của partition, trong trường hợp này sẽ thay đổi về 3 vừa được tạo ở trên.

Command (m for help): t
Partition number (1-5): 3

Mã code hex 8e là code cho Linux LVM

Hex code (type L to list codes): 8e
Changed system type of partition 3 to 8e (Linux LVM)

‘w’ là để ghi vào bảng các disk và exit.

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

Bạn có thể thấy cảnh báo cần reboot lại nhưng nếu bạn ko thấy partition mới bằng cách sử dụng “fdisk -l” thì có thể chạy “partprobe -s” để quét lại bảng partition.

5. Increasing the logical volume

Sử dụng lệnh pvcreate để tạo physical volume sử dụng LVM.

  Device /dev/sda3 not found (or ignored by filtering).

để không phải reboot lại thì bạn phải sử dụng partprobe/partx sau đó thực hiện lại lệnh pvcreate.

root@Mega:~# pvcreate /dev/sda3
  Physical volume "/dev/sda3" successfully created

Tiếp theo kiểm tra xem tên hiện tại của volume group bằng lệnh vgdisplay.

root@Mega:~# vgdisplay
  --- Volume group ---
  VG Name               Mega
...
VG Size               19.76 GiB

Bây giờ mở rộng “Mega” bằng cách add thêm physical volume /dev/sda3 bằng lệnh pvcreate

root@Mega:~# vgextend Mega /dev/sda3
  Volume group "Mega" successfully extended

Sử dụng lệnh pvscan để scan tất cả disk cho physical volumes. Nó sẽ bao gồm /dev/sda5 ban đầu và physical volume vừa thêm /dev/sda3

root@Mega:~# pvscan
  PV /dev/sda5   VG Mega   lvm2 [19.76 GiB / 0    free]
  PV /dev/sda3   VG Mega   lvm2 [10.00 GiB / 10.00 GiB free]
  Total: 2 [29.75 GiB] / in use: 2 [29.75 GiB] / in no VG: 0 [0   ]

Tiếp theo là tăng logical volume Đầu tiên kiểm tra đường dẫn của logical volume sử dụng lvdisplay

root@Mega:~# lvdisplay
  --- Logical volume ---
  LV Path                /dev/Mega/root

Extend logical volume sử dụng

root@Mega:~# lvextend /dev/Mega/root /dev/sda3
 Extending logical volume root to 28.90 GiB
 Logical volume root successfully resized

Bước cuối cùng là resize lại file system sử dụng resize2fs

Step 2: xfs_growfs /dev/Mega/root