Tuesday, December 24, 2019

Tăng/mở rộng (Increase/expand) ổ đĩa hệ thống tệp XFS trong RHEL7 / CentOS 7

Bài này hướng dẫn tăng/mở rộng ổ đĩa hệ thống XFS trên máy máy ảo (Vmware Vitual Machine) mà không cần phải khởi động lại máy chủ.
Để kiểm tra máy chủ của bạn có những tệp tin định nghĩa ổ cứng XFS dùng lệnh “df -hT”. Bạn chú ý ở côt “Type” có “xfs”:
[adminvpbs@ho-demops1 ~]$ df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/centos-root xfs 50G 1.5G 49G 3% /
devtmpfs devtmpfs 7.8G 0 7.8G 0% /dev
tmpfs tmpfs 7.8G 0 7.8G 0% /dev/shm
tmpfs tmpfs 7.8G 12M 7.8G 1% /run
tmpfs tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup
/dev/sda1 xfs 1014M 189M 826M 19% /boot
/dev/mapper/centos-home xfs 42G 33M 42G 1% /home
tmpfs tmpfs 1.6G 0 1.6G 0% /run/user/1000
[adminvpbs@ho-demops1 ~]$
Để tăng kích thước ổ đĩa của máy ảo, bạn cần thực hiện 2 bước chính:
1. Tăng kích thươc ổ đĩa trong vSphere Client hoặc thông qua CLI.
2. Sau đó bạn cần thực hiện tăng thêm kích thước ổ cứng của trong máy ảo.

Bước 1: Tăng ổ đĩa cứng vật lý trong VMWare ESXi host.

Kiểm tra xem bạn nên mở rộng ổ cứng hiện tại hay thêm một ổ logic mới

Đây là bước thu thập thông tin quan trọng, quyết định xem bạn dùng cách mở rộng ổ logic hiện tại hay sẽ phải thêm vào một ổ logic mới. Lý do là: 1 ổ đĩa logic chỉ được phép chia tối đa thành 4 phân vùng chính mà thôi. Nếu ổ có ít hơn 4 phân vùng chính thì bạn có thể mở rộng ổ logic đó bằng các thêm vào phân vùng nữa. Nếu ổ đĩa đã có 4 phân vùng chính thì bạn phải thêm 1 ổ logic mới cho máy chủ của bạn.
Để kiểm tra, đăng nhập vào máy chủ và chạy lệnh fdisk -l .
[root@ho-demops1 adminvpbs]# fdisk -l
Disk /dev/sda: 107.4 GB, 107374182400 bytes, 209715200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000a019c
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 209715199 103808000 8e Linux LVM
Disk /dev/mapper/centos-root: 53.7 GB, 53687091200 bytes, 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/mapper/centos-swap: 8455 MB, 8455716864 bytes, 16515072 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/mapper/centos-home: 44.1 GB, 44149243904 bytes, 86228992 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
[root@ho-demops1 adminvpbs]#
Như ở đây bạn sẽ thấy chỉ có 2 phân vùng ổ đĩa /dev/sda1 và /dev/sda2, như vậy bạn có thể mở rộng ổ đĩa logic này mà không cần phải thêm 1 ổ đĩa logic mới cho máy chủ này.
Tuy nhiên nếu như bạn nhìn thấy kết quả kiểu như dưới đây:
fdisk -l
Disk /dev/sda: 187.9 GB, 187904819200 bytes
255 heads, 63 sectors/track, 22844 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 25 200781 83 Linux
/dev/sda2 26 2636 20972857+ 8e Linux LVM
/dev/sda3 2637 19581 136110712+ 8e Linux LVM
/dev/sda4 19582 22844 26210047+ 8e Linux LVM
Như kết quả trên, bạn đã có 4 phân vùng ổ trên 1 ổ đĩa logic (sda1, sda2, sda3, sda4), khi đó bạn cần thêm một ổ đĩa logic (Virtual Disk) nữa cho máy chủ này của bạn. Nếu bạn thêm 1 ổ đĩa logic nữa, việc mở rộng phân vùng ổ đĩa cho máy chủ ảo hóa vẫn thực hiện được, bạn yên tâm.

Tăng kích thước ổ cứng cho máy ảo

Sử dụng VMWare vSphere Client, chọn máy cần thay đổi kích thước ổ cứng, cửa sổ bên phải, chọn Configure >> Settings >> VM Hardware >> Edit

Ổ cứng hiện tại đang là 100GB

Tăng thêm 200GB nữa (Tổng là 300GB).

Các bước này làm trên vCenter 6.5.

Bước 2: Mở rộng phân vùng ổ cứng trên máy chủ ảo hóa

Trường hợp bạn tăng kích thước ổ cứng logic hiện tại.

Khi bạn tăng kích thước ổ cứng logic hiện tại trong VMWare, nếu bạn khởi động lại máy chủ ảo, bạn không cần phải quét lại (scan) các thiết bị SCSI, nếu bạn không khởi động lại máy chủ, bạn cần phải quét lại các thiết bị ổ cứng SCSI. Cách làm như sau:
Trước tiên, kiểm tra tên của các thiết bị SCSI.
[root@ho-demops1 adminvpbs]# ls /sys/class/scsi_device/
0:0:0:0 3:0:0:0
[root@ho-demops1 adminvpbs]#
Sau đó thực hiện quét lại SCSI. Trên máy này, chúng ta có 2 thiết bị. Chạy lệnh dưới đây để quét lại chúng. Bạn có thể thay “0:0:0:0” với các số hiệu khác tùy theo hệ thống của bạn. Chú ý, trước mỗi dấu “:” bạn cần phải thêm dấu “\” để hệ thống có thể hiểu được câu lệnh của bạn.
[root@ho-demops1 adminvpbs]#
[root@ho-demops1 adminvpbs]# echo 1 > /sys/class/scsi_device/0\:0\:0\:0/device/rescan
[root@ho-demops1 adminvpbs]# echo 1 > /sys/class/scsi_device/3\:0\:0\:0/device/rescan
[root@ho-demops1 adminvpbs]#
Dùng lệnh fdisk -l để kiểm tra xem phần ổ đĩa mở rộng đã được nhận bởi máy chủ ảo hóa chưa:
[root@ho-demops1 adminvpbs]# fdisk -l
Disk /dev/sda: 322.1 GB, 322122547200 bytes, 629145600 sectors
Units = sectors of 1 * 512 = 512 bytes
Như bạn thấy ổ /dev/sda đã tăng từ 107.4 GB lên 322.1 GB

Trường hợp bạn thêm một ổ đĩa logic mới

Nếu bạn thêm một ổ đĩa logic mới vào máy chủ, các thao tác cũng tương tự như trên. Nhưng thay vì quét lại các thiết bị SCSI, bạn quét lại máy chủ để nhận diện ổ cứng logic mới thêm vào.
ls /sys/class/scsi_host/
total 0
drwxr-xr-x 3 root root 0 Feb 13 02:55 .
drwxr-xr-x 39 root root 0 Feb 13 02:57 ..
drwxr-xr-x 2 root root 0 Feb 13 02:57 host0
Thiết bị của bạn được gọi là host0, quét lại bằng lệnh sau:
echo "- - -" > /sys/class/scsi_host/host0/scan
Nó sẽ không hiển thị ra kết quả gì, nhưng bạn kiểm tra đĩa mới bằng lệnh fdisk -l .

Tạo phân vùng ổ đĩa mới

Sử dụng fdisk, để tạo phân vùng mới trên thiết bị /dev/sda . Gõ n, để tạo phân vùng ổ đĩa mới
[root@ho-demops1 adminvpbs]# fdisk /dev/sda
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): n
Chọn p để tạo phân vùng ổ chính (primary). Lưu ý, hệ thống chỉ có thể có 4 phân vùng chính (primary)! Nếu bạn đã có 4 phân vùng chính (primary), bạn chỉ có thể tạo phân vùng phụ (extended).
Partition type:
p primary (2 primary, 0 extended, 2 free)
e extended
Select (default p): p
Chọn số cho phân vùng ổ cứng mới tạo. Chúng ta đã có /dev/sda1 và /dev/sda2, vậy số tiếp theo sẽ là 3.
Select (default p): p
Partition number (3,4, default 3): 3
Chọn sector đầu tiên và cuối cho phân vùng ổ mới, nếu bạn ấn ENTER, các giá trị mặc định sẽ được sử dụng.
Partition number (3,4, default 3): 3
First sector (209715200-629145599, default 209715200):
Using default value 209715200
Last sector, +sectors or +size{K,M,G} (209715200-629145599, default 629145599):
Using default value 629145599
Partition 3 of type Linux and of size 200 GiB is set
Bây giờ gõ t để thay đổi loại phân vùng ổ cứng. Nhập vào số phân vùng ổ cứng bạn đã tạo lúc trước (là số 3). Khi được hỏi “Hex code“, điền 8e, và gõ phím ENTER để xác nhận.
Command (m for help): t
Partition number (1-3, default 3): 3
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'
Khi bạn được đưa trở lại màn hình chính của lệnh fdisk, gõ chữ w để lưu lại các thông số bạn đã cấu hình cho phân vùng mới. Hệ thống sẽ hiển thị thông báo bạn cần khởi động lại hệ thống để sử dụng được phân vùng mới. Tuy nhiên việc khởi khộng lại là không cần thiết nếu bạn sử dụng lênh partprobe để quét lại các phân vùng ổ cứng.
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.
[root@ho-demops1 adminvpbs]#
Chạy lệnh sau để quét lại phân vùng mới tạo:
[root@ho-demops1 adminvpbs]# partprobe -s
/dev/sda: msdos partitions 1 2 3
[root@ho-demops1 adminvpbs]#
Nếu lênh trên không hoạt động bạn có thể thử dùng lệnh “partx” để quét lại hệ thống.
partx -v -a /dev/sda
Nếu cả 2 cách bạn thực hiện xong mà hệ thống vẫn không hiển thị phân vùng mới, bạn phải khởi động lại máy chủ.

Mở rộng Logical Volume với phân vùng ổ mới thêm

Bây giờ việc tạo physical volume khá là đơn giản cho hệ thống LVM của bạn.
[root@ho-demops1 adminvpbs]# pvcreate /dev/sda3
Physical volume "/dev/sda3" successfully created.
[root@ho-demops1 adminvpbs]#
Bây giờ bạn cần xác định tên của “Volume Group” là gì? Trong trường hợp này nó tên là “centos
[root@ho-demops1 adminvpbs]# vgdisplay
--- Volume group ---
VG Name centos
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 3
Max PV 0
Cur PV 1
Act PV 1
VG Size <99.00 GiB
PE Size 4.00 MiB
Total PE 25343
Alloc PE / Size 25342 / 98.99 GiB
Free PE / Size 1 / 4.00 MiB
VG UUID zhEZWp-wA01-tz20-0NAA-qmJ0-cnPj-4sLRux
[root@ho-demops1 adminvpbs]#
Sau đó ta mở rộng “Volume Group” bằng cách thêm physical volume mà ta đã tạo phía trên cho nó.
[root@ho-demops1 adminvpbs]# vgextend centos /dev/sda3
Volume group "centos" successfully extended
[root@ho-demops1 adminvpbs]#
Với lệnh pvscan, chúng ta có thể nhìn thấy physical volume mà chúng ta đã thêm, và dung lượng khả dụng của nó là 200GB.
[root@ho-demops1 adminvpbs]# pvscan
PV /dev/sda2 VG centos lvm2 [<99.00 GiB / 4.00 MiB free]
PV /dev/sda3 VG centos lvm2 [<200.00 GiB / <200.00 GiB free]
Total: 2 [298.99 GiB] / in use: 2 [298.99 GiB] / in no VG: 0 [0 ]
[root@ho-demops1 adminvpbs]#
Bây giờ chúng ta sẽ mở rộng Logical. Nhưng trước tiên, ta phải kiểm tra logical volumes có sẵn trên hệ thống bằng dòng lệnh ls /dev/VolGroupName (trong ví dụ này VolGroupName là centos):
[root@ho-demops1 adminvpbs]# ls /dev/centos
home root swap
[root@ho-demops1 adminvpbs]#
Chúng ta có 3 logical volume là homeroot và swap . Để mở rộng logical volume root, chạy lệnh sau:
[root@ho-demops1 adminvpbs]# lvextend /dev/centos/root /dev/sda3
Size of logical volume centos/root changed from 50.00 GiB (12800 extents) to <250.00 GiB (63999 extents).
Logical volume centos/root successfully resized.
[root@ho-demops1 adminvpbs]#
Bước cuối cùng là chạy lệnh xfs_growfs như bên dưới (thay centos-root bằng tên tương ứng với hệ thống của bạn).
[root@ho-demops1 adminvpbs]# xfs_growfs /dev/mapper/centos-root
meta-data=/dev/mapper/centos-root isize=512 agcount=4, agsize=3276800 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=13107200, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=6400, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 13107200 to 65534976
[root@ho-demops1 adminvpbs]#
Chạy lệnh df -h để kiểm tra lại dung lượng ổ cứng.
[root@ho-demops1 adminvpbs]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 250G 1.5G 249G 1% /
devtmpfs 7.8G 0 7.8G 0% /dev
tmpfs 7.8G 0 7.8G 0% /dev/shm
tmpfs 7.8G 12M 7.8G 1% /run
tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup
/dev/sda1 1014M 189M 826M 19% /boot
/dev/mapper/centos-home 42G 33M 42G 1% /home
tmpfs 1.6G 0 1.6G 0% /run/user/1000
[root@ho-demops1 adminvpbs]#

No comments:

Post a Comment