AWS: Montowanie wolumenu EBS pod Linux-em

19-maj-2022

Modyfikacja ustawień maszyny wirtualnej w chmurze to czysta przyjemność. Wszystko dzieje się samo, wystarczy tylko wyklikać nowe zasoby i już. Czy jednak aby na pewno? Załóżmy, że na AWS chcę dodać do instancji EC2 z Linuxem dodatkowy zasób dyskowy.

Zaczyna się przyjemnie od dodania nowego wolumenu EBS w EC2 >> Volumes >> Create Volume

Najważniejsze parametry, to oprócz typu i rozmiaru, również region, w kórym ten dysk jest utworzony. Dysk da się podłączyć tylko do maszyn, które są w tym samym regionie.

Po utworzeniu wolumenu można wejść do jego właściwości i z menu Action wybrać Attach:

W formularzu podajemy, dla jakiej instancji ten wolumen ma być dostępny. Można też skonfigurować nazwę urządzenia dyskowego:

Tutaj utworzony wolumen zostanie podłączony do Linuxa poprzez urządzenie /dev/sdg

Teraz pora na zabawę po stronie systemu operacyjnego. Najpierw wylistujmy wolumeny. Jak widać w wyniku tej komendy, nowe urządzenie xvdg pojawiło się na liście:

ubuntu:~$ lsblk
NAME     MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
loop0      7:0    0 25.1M  1 loop /snap/amazon-ssm-agent/5656
loop1      7:1    0 55.5M  1 loop /snap/core18/2409
loop2      7:2    0 61.9M  1 loop /snap/core20/1518
loop3      7:3    0 79.9M  1 loop /snap/lxd/22923
loop4      7:4    0   47M  1 loop /snap/snapd/16010
xvda     202:0    0    8G  0 disk
├─xvda1  202:1    0  7.9G  0 part /
├─xvda14 202:14   0    4M  0 part
└─xvda15 202:15   0  106M  0 part /boot/efi
xvdf     202:80   0    1G  0 disk /newvolume
xvdg     202:96   0    1G  0 disk

Operacje na dyskach niestety należą do tych bardziej krytycznych, bo łatwo zamazać istniejące dane przez przypadek. Dlatego warto zawsze sprawdzać, czy dysk jest rzeczywiście pusty. Można się w tym celu posłużyć poleceniem file. W zaprezentowanym poniżej wyniku widać, że dysk xvdg jest pusty, ale dysk xvdf ma już istniejący file system:

ubuntu:~$ sudo file -s /dev/xvdg
/dev/xvdg: data
ubuntu:~$ sudo file -s /dev/xvdf
/dev/xvdf: Linux rev 1.0 ext4 filesystem data, 
UUID=1865b1e2-0734-47f6-8ed9-9492bab0348a (needs journal recovery) 
(extents) (64bit) (large files) (huge files)

Mając pewność, że to TEN dysk, można na nim utworzyć system plików:

ubuntu:~$ sudo mkfs -t ext4 /dev/xvdg
mke2fs 1.46.5 (30-Dec-2021)
Creating filesystem with 262144 4k blocks and 65536 inodes
Filesystem UUID: 12e55613-5f1a-4ca1-9316-e8541fd6a48e
Superblock backups stored on blocks:
    32768, 98304, 163840, 229376

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

Teraz pozostaje zmontować nowy dysk. Zaczynamy od utworzenia nowego katalogu, a następnie ręcznie montujemy system plików z nowego wolumenu. Poleceniem df można sprawdzić, że montowanie powiodło się:

ubuntu:~$ sudo mkdir /vol_g
ubuntu:~$ sudo mount /dev/xvdg /vol_g/
ubuntu:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root       7.6G  2.2G  5.5G  29% /
tmpfs           484M     0  484M   0% /dev/shm
tmpfs           194M  880K  193M   1% /run
tmpfs           5.0M     0  5.0M   0% /run/lock
/dev/xvdf       974M   24K  907M   1% /newvolume
/dev/xvda15     105M  5.3M  100M   5% /boot/efi
tmpfs            97M  4.0K   97M   1% /run/user/1000
/dev/xvdg       974M   24K  907M   1% /vol_g

Jeśli system plików miałby się montować każdorazowo przy uruchomieniu Linuxa pozostanie jeszcze modyfikacja pliku /etc/fstab. Należy w nim dodać linijkę podobną do ostatniej poniżej:

LABEL=cloudimg-rootfs   /        ext4   discard,errors=remount-ro       0 1
LABEL=UEFI      /boot/efi       vfat    umask=0077      0 1
/dev/xvdf       /newvolume      ext4    defaults,nofail 0       0
/dev/xvdg       /vol_g          ext4    defaults,nofail 0       0

Żeby przetestować tą konfigurację można teraz odmontować system plików i zmontować go ponownie poleceniem mount -a

ubuntu:~$ sudo umount /vol_g 
ubuntu:~$ sudo mount -a

Ponowne uruchomienie df pozwoli sprawdzić, że system plików jest dostępny:

ubuntu:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root       7.6G  2.2G  5.5G  29% /
tmpfs           484M     0  484M   0% /dev/shm
tmpfs           194M  880K  193M   1% /run
tmpfs           5.0M     0  5.0M   0% /run/lock
/dev/xvdf       974M   24K  907M   1% /newvolume
/dev/xvda15     105M  5.3M  100M   5% /boot/efi
tmpfs            97M  4.0K   97M   1% /run/user/1000
/dev/xvdg       974M   24K  907M   1% /vol_g

 

 

 

 

 

 

 

 

 

 

Komentarze są wyłączone

Autor: Rafał Kraik