Extend EBS Volume AWS

Bila filesystem dah mencecah lebih 90%, kita kena usahakan untuk menambahkan space di filesystem tersebut, Kalau filesystem tersebut adalah root fileystem, concern perlu lebih sebab sebarang database file boleh corrupt sekiranya space penuh dan aplikasi akan berhenti beroperasi.

Untuk task yang aku dapat yang mana aku dah perasan yang filesystem usage untuk salah satu server Linux ( CentOS ) dah semakin penuh. Jadi dapat approval untuk tambah saiz filesystem dari 750G ke 800G.

Sebelum buat apa-apa, perlu buat snapshot dan pastikan anda mempunyai backup pada filesystem, sebab task ini disruptive, sebarang kemungkinan / human error boleh berlaku.

Pertama perlu identify EC2 / Instance yang perlu diubah dan modify volume kepada saiz volume yang baru, pastikan volume yang dipilih adalah betul.

Di sini console instance EC2, pastikan anda select EC2 Instance anda betul-betul dan kemudian select Action dan modify volume. Setelah modify volume option di pilih anda akan dapat view seperti bawah.

Kita akan nampak Volume ID attached pada server yang kita hendak ubah filesystem tersebut.

Klik pada hyperlink volume ID dan anda akan dapat view seperti di bawah.

Tukar value ke value volume yang baru. Untuk dalam kes ini, dari 750G ke 800G dan kemudian select Modify.

Bila dah modify boleh pergi ke console server semula dan verify samada value baru dah activate ke belum menggunakan command lsblk. Command ini boleh guna untuk CentOS / Amazon Linux.

Jadi dalam kes ini, saiz disk baru adalah 800G tetapi dalam disk tersebut ada partition jadi kita perlu ubah saiz partition pula.

Untuk mengubah saiz partition dalam AWS aku rujuk dua artikel di bawah sebab set up filesystem server ini lain.

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/recognize-expanded-volume-linux.html#extend-file-system

https://aws.amazon.com/premiumsupport/knowledge-center/extend-linux-file-system/

Jadi command yang digunakan macam di bawah. Pastikan yang ada jarak antara /dev/xvda dengan 1, ini dari rujukan URL di atas.

[centos@server ~]$ sudo growpart /dev/xvda 1
[sudo] password for centos: 
CHANGED: partition=1 start=2048 old: size=1572861919 end=1572863967 new: size=1677719519,end=1677721567
[centos@server ~]$ sudo lsblk
NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  800G  0 disk 
`-xvda1 202:1    0  800G  0 part /
[centos@server ~]$ 

Bila dah run command growpart, boleh verify saiz partition baru xvda1 adalah 800G tapi saiz filesystem belum berubah. Saiz filesystem / masih 750G.

[centos@server ~]$ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        3.9G     0  3.9G   0% /dev
tmpfs           3.9G     0  3.9G   0% /dev/shm
tmpfs           3.9G   89M  3.9G   3% /run
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/xvda1      750G  700G   51G  94% /
tmpfs           799M     0  799M   0% /run/user/4101
[centos@server ~]$ 

Jadi ada 2 perkara perlu di buat di sini;

  • Verify filesystem type, aku guna cara baca dari /etc/fstab, boleh juga guna command mount dan grep root filesystem. Ini penting sebab ia akan tentukan command seterusnya yang kita akan guna untuk extend filesystem.
  • Resize filesystem berdasarkan jenis filesystem. Dalam kes ini, sebab jenis filesystem adalah XFS, jadi aku perlu guna command growfs untuk resize filesystem size.
[centos@server ~]$ cat /etc/fstab 
LABEL=/ /         xfs    defaults,relatime  1 1
tmpfs   /dev/shm  tmpfs   defaults           0 0
devpts  /dev/pts  devpts  gid=5,mode=620     0 0
sysfs   /sys      sysfs   defaults           0 0
proc    /proc     proc    defaults           0 0
/mnt/swap.2048m	none	swap	sw	0	0
ephemeral0	/media/ephemeral0	auto	defaults,nofail,comment=cloudconfig	0	2
swap	none	swap	sw,comment=cloudconfig	0	0
[centos@server ~]$
[centos@server ~]$ sudo xfs_growfs -d /
meta-data=/dev/xvda1             isize=256    agcount=601, agsize=327616 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=196607739, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 196607739 to 209714939
[centos@server ~]$

Setelah run command xfs_growfs dan data blocks dah berubah, boleh verify saiz baru filesystem semula.

Leave a Comment