Hướng dẫn cách mở rộng disk Linux LVM khi mở rộng ổ cứng máy ảo
Bài viết này mình sẽ hướng dẫn các bạn cách nâng cấp ổ cứng server elastic search nói riêng và ổ cứng cho server Linux sử dụng LVM nói chung. I. Các bước chuẩn bị trước khi tiến hành nâng cấp. 1.Query get tổng số lượng các object trước khi tiến hành nâng cấp disk. (ví dụ cho trường hợp get số ...
Bài viết này mình sẽ hướng dẫn các bạn cách nâng cấp ổ cứng server elastic search nói riêng và ổ cứng cho server Linux sử dụng LVM nói chung.
I. Các bước chuẩn bị trước khi tiến hành nâng cấp.
1.Query get tổng số lượng các object trước khi tiến hành nâng cấp disk. (ví dụ cho trường hợp get số lượng object candidates, company)
curl http://localhost:9200/candidates/_count curl http://localhost:9200/companies/_count
2.Get thông tin primary shard & replicas shard và ghi ra file before.txt để sau khi tiến hành nâng cấp xong sẽ so sánh lại.
curl -XGET http://localhost:9200/_cat/shards > before.txt
II. Tiến hành nâng cấp mở rộng ổ cứng
Một số chú ý quan trọng: Bạn phải rất cẩn thận khi làm việc với các lệnh trong bài viết này vì nó có thể làm mất data. Nếu như bạn đang làm việc trên máy ảo thì cần phải tạo snapshot trước khi tiến hành các thao tác. hoặc là cần có back up data trước khi tiến hành các thao tác.
1. Identifying the partition type
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
root@Mega:~# resize2fs /dev/Mega/root resize2fs 1.41.12 (17-May-2010) Filesystem at /dev/Mega/root is mounted on /; on-line resizing required old desc_blocks = 2, new_desc_blocks = 2 Performing an on-line resize of /dev/Mega/root to 7576576 (4k) blocks. The filesystem on /dev/Mega/root is now 7576576 blocks long.
Và bây giờ sử dụng df để kiểm tra dung lượng ổ cứng available
III. Các bước chuẩn bị trước khi tiến hành nâng cấp.
1.Query get tổng số lượng các object sau khi tiến hành nâng cấp disk và so sánh với lúc trước khi nâng cấp. (ví dụ cho trường hợp get số lượng object candidates, company)
curl http://localhost:9200/candidates/_count curl http://localhost:9200/companies/_count
2.Get thông tin primary shard & replicas shard và ghi ra file after.txt và so sánh với file before.txt.
curl -XGET http://localhost:9200/_cat/shards > after.txt diff before.txt after.txt
Tham khảo. https://www.rootusers.com/how-to-increase-the-size-of-a-linux-lvm-by-expanding-the-virtual-machine-disk/