Για κάποιο λόγο, πρέπει να επεκτείνεις τον EC2 Linux server σου χωρίς επανεκκίνηση και με ασφάλεια. Σε αυτό το άρθρο, θα μάθεις πώς να επεκτείνεις τον EC2 Linux δίσκο σου στο AWS.

Σε αυτό το παράδειγμα, θα δεις την επέκταση του μεγέθους του δίσκου από 80GiB σε 120GiB.

Βήμα 1: Τροποποίηση Volume


Συνδέσου στο AWS Console και βρες το volume (δίσκο) του EC2 σου. Ορίστε η συμβουλή: στο αριστερό πλαίσιο, υπάρχει το Elastic Block Store > Volumes. Κάνε δεξί κλικ στο volume σου και μετά επίλεξε την επιλογή "Modify Volume". Μοιάζει με την παρακάτω εικόνα. Επίλεξε το σωστό μέγεθος και κάνε κλικ στο κουμπί Modify.


Βήμα 2: Έλεγχος του μεγέθους του δίσκου

Πρώτα απ' όλα, πρέπει να είσαι root ή sudo στον server πριν τρέξεις τις εντολές. Το πρώτο πράγμα, θα ελέγξουμε το μέγεθος του δίσκου, θα πρέπει να δείχνει το μέγεθος πριν την τροποποίηση του volume. Έτσι, σε αυτό το παράδειγμα, θα πρέπει να είναι 80 GiB.

[root@server ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        7.8G     0  7.8G   0% /dev
tmpfs           7.8G     0  7.8G   0% /dev/shm
tmpfs           7.8G  416K  7.8G   1% /run
tmpfs           7.8G     0  7.8G   0% /sys/fs/cgroup
/dev/nvme0n1p1   80G   51G   30G  64% /
tmpfs           1.6G     0  1.6G   0% /run/user/0

Ναι, λέει ότι το συνολικό μέγεθος του δίσκου είναι 80 GiB, αυτό είναι σωστό. Τώρα ας ελέγξουμε τη λίστα των block devices. Η έξοδος της εντολής θα πρέπει να δείχνει το νέο μέγεθος δίσκου στη συσκευή /dev/nvme0n1.

[root@server ~]# lsblk
NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
nvme0n1       259:0    0  120G  0 disk
├─nvme0n1p1   259:1    0   80G  0 part /
└─nvme0n1p128 259:2    0    1M  0 part

Ναι! Λέει ότι το nvme0n1p1 είναι 80GiB αλλά το nvme0n1 είναι 120GiB. Αυτό σημαίνει ότι μπορούμε να επεκτείνουμε το nvme0n1p1 partition από 80GiB σε 120GiB.

Βήμα 3: Ας Επεκτείνουμε

Ορίστε η μαγεία:

[root@server ~]# growpart /dev/nvme0n1 1
CHANGED: partition=1 start=4096 old: size=167768031 end=167772127 new: size=251654111 end=251658207

Η εντολή growpart απλώς μεγάλωσε το disk partition μας, δεν το αποθηκεύει ακόμα και τώρα ακόμα δεν έχουμε δίσκο 120GiB. Πρέπει να αποθηκεύσουμε την τροποποίηση στο file system αμέσως τώρα.

[root@server ~]# xfs_growfs /
meta-data=/dev/nvme0n1p1         isize=512    agcount=41, agsize=524159 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1 spinodes=0
data     =                       bsize=4096   blocks=20971003, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
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 20971003 to 31456763

Βήμα 4: Έλεγξε ξανά το μέγεθος του δίσκου

Ώρα να βεβαιωθείς για το νέο μέγεθος του δίσκου σου. Ορίστε πάλι οι εντολές για επιβεβαίωση.

[root@server ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        7.8G     0  7.8G   0% /dev
tmpfs           7.8G     0  7.8G   0% /dev/shm
tmpfs           7.8G  412K  7.8G   1% /run
tmpfs           7.8G     0  7.8G   0% /sys/fs/cgroup
/dev/nvme0n1p1  120G   51G   70G  42% /
tmpfs           1.6G     0  1.6G   0% /run/user/0

[root@server ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT nvme0n1 259:0 0 120G 0 disk ├─nvme0n1p1 259:1 0 120G 0 part / └─nvme0n1p128 259:2 0 1M 0 part

Συγχαρητήρια! Επέκτεινες επιτυχώς τον AWS EC2 Linux Server σου χωρίς επανεκκίνηση ή/και απώλεια δεδομένων στο EBS (Elastic Block Storage)