Cómo presentar un nuevo disco o volumen a una EC2 Linux.
La situación es la siguiente: tenemos una instancia (o máquina virtual) Linux en AWS y queremos presentarle un nuevo disco o volumen EBS para montarlo en una carpeta y almacenar ficheros en él.
Primero de todo, creamos un nuevo volumen en la consola de AWS con el tamaño que necesitemos (luego se puede ampliar) y lo adjuntamos a la instancia EC2 en cuestión.
Lo podemos ver ahora en la instancia ejecutando el comando
lsblk como xvdb:
HOST# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 300G 0 disk
├─xvda1 202:1 0 2M 0 part
├─xvda2 202:2 0 20M 0 part /boot/efi
└─xvda3 202:3 0 300G 0 part /
xvdb 202:16 0 1.5T 0 disk
A continuación, formateamos el volumen. En este caso, lo he formateado a XFS:
HOST# mkfs -t xfs /dev/xvdb
meta-data=/dev/xvdb isize=512 agcount=4, agsize=98304000 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=0, rmapbt=0
= reflink=0
data = bsize=4096 blocks=393216000, imaxpct=5
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=192000, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
En este punto, ya podemos crear el directorio donde se montará el disco (/oradata):
HOST# mkdir /oradata
Monto el disco sobre la carpeta:
HOST# mount /dev/xvdb /oradata
Compruebo que el disco esté montado sobre el directorio en cuestión mediante
df:
HOST# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 16G 4.0K 16G 1% /dev
tmpfs 16G 0 16G 0% /dev/shm
tmpfs 16G 353M 16G 3% /run
tmpfs 16G 0 16G 0% /sys/fs/cgroup
/dev/xvda3 300G 57G 244G 19% /
/dev/xvda2 20M 142K 20M 1% /boot/efi
tmpfs 3.2G 0 3.2G 0% /run/user/1000
/dev/xvdb 1.5T 1.6G 1.5T 1% /oradata
Se observa que /dev/xvdb está montado sobre /oradata.
Llegados aquí, toca hacer que el montaje sea persistente. Para ello, miramos el ID del volumen con
blkid:
HOST# blkid
/dev/xvda1: PARTLABEL="p.legacy" PARTUUID="73cfc22b-6651-4fa1-9cee-04818d0607be"
/dev/xvda2: SEC_TYPE="msdos" LABEL_FATBOOT="EFI" LABEL="EFI" UUID="564C-A498" TYPE="vfat" PARTLABEL="p.UEFI" PARTUUID="2d0407cf-5df1-4ff4-9c7f-5796c942fd32"
/dev/xvda3: LABEL="ROOT" UUID="15991bdf-394d-4e90-b988-5061b112debe" TYPE="xfs" PARTLABEL="p.lxroot" PARTUUID="0e94321a-99d8-4a89-8b3e-ee0ffaad835c"
/dev/xvdb: UUID="3a21705d-ad34-4ce2-94ab-9df6edcc727d" TYPE="xfs"
Vemos el ID de xvdb en la última línea.
Ahora, modifico el archivo /etc/fstab para que el volumen se monte automáticamente tras un reinicio:
HOST# vi /etc/fstab
El archivo /etc/fstab queda así:
LABEL=ROOT / xfs defaults 0 0
LABEL=EFI /boot/efi vfat defaults 0 0
UUID="3a21705d-ad34-4ce2-94ab-9df6edcc727d" /oradata xfs defaults 0 0
Por último, podemos probar a desmontar /oradata y montarlo automáticamente siguiendo los puntos de montaje presentes en /etc/fstab para emular el comportamiento tras un reinicio de la instancia:
HOST# umount /oradata
Ahora monto todas las particiones automáticamente:
HOST# mount -a
Y compruebo que el disco esté montado usando
df:
HOST# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 16G 4.0K 16G 1% /dev
tmpfs 16G 0 16G 0% /dev/shm
tmpfs 16G 353M 16G 3% /run
tmpfs 16G 0 16G 0% /sys/fs/cgroup
/dev/xvda3 300G 57G 244G 19% /
/dev/xvda2 20M 142K 20M 1% /boot/efi
tmpfs 3.2G 0 3.2G 0% /run/user/1000
/dev/xvdb 1.5T 1.6G 1.5T 1% /oradata
Fuentes:
https://docs.aws.amazon.com/es_es/AWSEC2/latest/UserGuide/ebs-using-volumes.html