Xin chào,

Trong quá trình quản trị server Amazon Web Service (AWS), nhu cầu tăng dung lượng ổ cứng (volume) đôi khi bạn sẽ gặp phải.

Theo lý thuyết đơn giản thì một EC2 có thể gắn(attach) nhiều volume. Bạn có thể thêm volume rồi attach vào ec2 hoặc sử dụng volume đang có để tăng dung lượng lên.

Ở bài này mình sẽ hướng dẫn tăng dung lượng lên với volume có sẳn. Đối với việc này cũng có 2 loại cần chú ý: partition  là root và partition không phải root

Để kiểm tra nó chúng ta dùng lệnh sau: lsblk

[php]

[root ~]$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 30G 0 disk
└─xvda1 202:1 0 30G 0 part /
xvdb 202:16 0 30G 0 disk /mnt
xvdf 202:80 0 35G 0 disk
└─xvdf1 202:81 0 8G 0 part

[/php]

Root volume là /dev/xvda1 là một phân vùng(partition) trên /dev/xvda. Chúng có kích thước là 30GB. Trong trường hợp này phân vùng đã chiếm toàn bộ volume nên nó không cần thay đổi kích thước.

Volume /dev/xvdb : không phải là root, đã được mount vào thư mục /mnt

Tuy nhiên phân vùng /dev/xvdf1 là phân vùng 8Gb trên volume 35Gb tức là không gian còn trống 27GB chúng ta sẽ thay đổi kích thước để sử dụng được hết không gian này.

Phía trên là cách kiểm tra và xác định phân vùng nào mà chúng ta cần tăng, nên chú ý loại nào nhá.

Cách tăng dung lượng như sau trên Amazon

Bước 1: Login vào AWS, chọn service EC2, tiếp tục chọn Volume trong ELASTIC BLOCK STORE, rồi chọn Volume cần thay đổi, Chọn nút Action, rồi chọn Modify volume, tiến hành thay đổi dung lượng rồi chọn nút Modify

Bước 2:

SSH vào server và kiểm tra bằng lệnh lsblk

lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  16G  0 disk
└─xvda1 202:1    0   8G  0 part / 

Như trên ta thấy phân vùng xvda1 chỉ có 8GB trong 16GB tức là còn trống 8GB. Ta tiến hành sử dụng growpart để thay đổi kích thước này. Nếu chưa cài đặt growpart thì tiến hành cài bằng lệnh:

CentOS: yum install cloud-utils-growpart

Ubuntu: apt install cloud-guest-utils

Sử dụng growpart để thay đổi kích thước(nếu cần thì sử dụng sudo nhá)

growpart /dev/xvda 1

[php]

sudo growpart /dev/xvda 1
CHANGED: partition=1 start=16065 old: size=41913585 end=41929650 new: size=44018100,end=44034165

lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 16G 0 disk
└─xvda1 202:1 0 16G 0 part /

[/php]

Kiểm tra lệnh lại bằng lsblk sẽ thấy 2 cái đều là 16GB.

Tới đây vẫn chưa sử dụng được dung lượng trống đâu: có thể kiểm tra lại bằng df -h

[php]

df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 7.8G 6.3G 1.1G 86% /

[/php]

Bước 3: Tiến hành resize sử dụng lệnh resize2fs, nếu chưa cài đặt thì cài vô.

CentOS: yum install e2fsprogs

Ubuntu: …(các bạn search nha)

Cú pháp lệnh resize như sau:

[php]

sudo resize2fs /dev/xvda1
resize2fs 1.42.9 (4-Feb-2014)
Filesystem at /dev/xvda1 is mounted on /; on-line resizing required
old_desc_blocks = 2, new_desc_blocks = 2
The filesystem on /dev/xvda1 is now 5502262 blocks long.

[/php]

Sau lệnh trên thì thực hiện kiểm tra lại bằng cách df -h

[php]

df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 16G 6.3G 8.7G 42% /

[/php]

Chú ý: các bước trên là từng bước thực hiện cho root partition (phân vùng gốc), còn đối với phân vùng không phải root đã được mount vào thư mục (/dev/xvdb đã được mount vào thư mục /mnt) thì việc đầu tiên là unmount trước: sudo umount /mnt  rồi tiến hành bước 1 , rồi mount lại sudo mount /dev/xvdb /mnt . Nếu như không umount trước mà làm bước 1 trước thì khi kiểm tra bằng lệnh lsblk sẽ thấy 16GB đầy đủ nhưng lệnh df -h sẽ không thấy đủ 16Gb. Khi ấy điều cần làm là resize lại tức thực hiện bước 3.

Đây là video mình thực hiện trên CentOS các bạn có thể tham khảo:

[thongbao]

  1. Nếu có thắc mắc gì các bạn để lại comment bên dưới mình sẽ trả lời sớm nhất có thể.
  2. Cảm ơn các bạn đã đọc.

[/thongbao]

 

Tăng dung lượng AWS EBS Volume(CentOS or Ubuntu Linux Amazon)