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://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.