miércoles, 8 de abril de 2020

AWS: mover partición a un disco EBS en Linux



Mover carpeta a un disco EBS distinto al disco principal de una instancia EC2 Linux de AWS.



Puede que tengamos una instancia con un sistema operativo Linux en nuestra cuenta de AWS que ejecute una aplicación que trabaje sobre la carpeta /data. Y puede que esa carpeta vaya a crecer hasta llegar a más de 1 TB de información en los próximos meses. Si nos encontramos ante un caso similar, tiene sentido separar la carpeta /data en una partición independiente, montada en un disco EBS independiente, del cual podamos generar snapshots separados del disco de sistema operativo.

Para mover una carpeta a una partición independiente en un disco a parte, primero necesitamos crear ese disco a parte. Desde la consola de AWS, creamos un nuevo volumen EBS en el apartado 'Volumes'.

Adjuntamos este nuevo disco a la instancia sobre la que queramos hacer el cambio. En este caso, he adjuntado un disco de 50 GB que el sistema ve como xvdc:

admin@ip-10-10-10-10:~$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 10G 0 disk └─xvda1 202:1 0 10G 0 part / xvdb 202:16 0 30G 0 disk /var xvdc 202:32 0 50G 0 disk

Formateo el disco xvdc con el sistema de archivos ext4:

admin@ip-10-10-10-10:~$ sudo mkfs -t ext4 /dev/xvdc mke2fs 1.43.4 (31-Jan-2017) Creating filesystem with 13107200 4k blocks and 3276800 inodes Filesystem UUID: 4ac39902-6cdc-498a-b3e6-c68c47653629 Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424 Allocating group tables: done Writing inode tables: done Creating journal (65536 blocks): done Writing superblocks and filesystem accounting information: done

Monto el disco temporalmente en /mnt:

admin@ip-10-10-10-10:~$ sudo mount /dev/xvdc /mnt

Sincronizo el contenido de /data a /mnt:

admin@ip-10-10-10-10:~$ sudo rsync -aulvXpogtr /data/* /mnt

Edito /etc/fstab para que /data se monte siempre al iniciar la máquina:

admin@ip-10-10-10-10:~$ sudo vi /etc/fstab

/dev/xvdc /data ext4 defaults 0 2

Desmonto el volumen EBS que está actualmente montado en /mnt:

admin@ip-10-10-10-10:~$ sudo umount /mnt

Muevo el contenido de la carpeta original a "data.original" a modo de backup:

admin@ip-10-10-10-10:~$ sudo mv /data /data.original

Creo un nuevo directorio data:

admin@ip-10-10-10-10:~$ sudo mkdir /data

Re-monto todas las particiones existentes en /etc/fstab:

admin@ip-10-10-10-10:~$ sudo mount -av / : ignored /data : successfully mounted

Reinicio la máquina:

admin@ip-10-10-10-10:~$ sudo reboot

Compruebo que /data se monta automáticamente sobre /dev/xvdc al iniciar la máquina:

admin@ip-10-10-10-10:~$ df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 7.6G 0 7.6G 0% /dev tmpfs 7.6G 0 7.6G 0% /dev/shm tmpfs 7.6G 17M 7.6G 1% /run tmpfs 7.6G 0 7.6G 0% /sys/fs/cgroup /dev/xvda1 40G 1.5G 39G 4% / tmpfs 1.6G 0 1.6G 0% /run/user/1000 /dev/xvdc1 50G 228M 49G 1% /data

A partir de este momento, cada vez que se reinicie la máquina se montará /data en el volumen EBS, es decir, fuera del disco de sistema operativo. Ahora podemos generar snapshots específicos de este volumen, con una periodicidad distinta a los snapshots del disco principal.
0

0 comentarios:

Publicar un comentario