Blackhold

sshfs

Posted on setembre 24th, 2014 by admin

Si tienes un datacenter montado con pocos recursos, lo mas probable es que el sistema de backups se realice en discos duros externos, que tengas pocos y de gran tamaño.
El problema está en cuando la diógenes tecnológica haga que tengas muchos hierros de poco procesamiento (quad cores o como mucho algun dual quad core xeon) y tengas que tener los servicios repartidos en varias maquinas. El problema está cuando el numero de hierros es superior al numero de discos duros al que hacer los backups.

Tienes varias formas de compartir un disco duro en red o hacer backups remotos:
– HFS
– samba (lo descarto por feo, viejo, comer mucho ancho de banda y recordarme a windows)
– rsync sobre scp

La cuestión es que se me murió una máquina que tenía un disco duro enchufado, pero por motivos de espacio no puedo conectar el disco duro a la nueva maquina, así que la solución ha sido conectar el disco duro a otra maquina y hacer el backup por red.

Como los informáticos somos unos perezosos de pega, tenía que modificar los scripts de backup y quería evitarlo, así que me pregunté, si rsync por scp es tan cojonudo, hay posibilidad de conectar un disco duro remoto por ssh en lugar de hacerlo por HFS? y efectivamente se puede, con sshfs :D

Así que tenemos una maquina con proxmox y lo que era la máquina física se ha virtualizado en un contenedor.
Los contenedores openvz tienen algunas limitaciones, pero conociéndolas, puedes salvar cualquiera de estos problemas :) luego explico como y el porqué!

Vamos a instalar pues sshfs en la maquina FÍSICA

root@burnell:~# apt-get install sshfs

Ahora compartimos las claves con el servidor el cual tenemos el disco duro remoto conectado

# cd /root/.ssh
# ssh-keygen -t rsa
# ssh-copy-id -i id_rsa.pub root@10.139.39.76

La sintaxis para conectar el disco duro remoto es esta (en la maquina remota tenemos el disco montado en /mnt/hd y en la local queremos montarlo también en /mnt/hd):

# mkdir /mnt/hd
# sshfs root@10.139.39.76:/mnt/hd/ /mnt/hd

Si queremos que se monte el disco duro remoto al arrancar el sistema tenemos 2 opciones, o añadirlo en /etc/fstab

sshfs#root@10.139.39.76:/mnt/hd/ /mnt/hd

O hacer un script.

En este caso, prefiero crear un script, ya que quiero añadir otro comando para montar el disco duro remoto dentro del contenedor. Para que el script se ejecute al arrancar el sistema lo vamos a llamar desde /etc/inittab.

# cd /root/scripts
# vi mount_remote_backup_disk.sh

#!/bin/bash

sshfs root@10.139.39.76:/mnt/hd/ /mnt/hd
mount -n -t simfs /mnt/hd /var/lib/vz/root/100/mnt/hd -o /mnt/hd


# vi /etc/inittab
/root/scripts/mount_remote_backup_disk.sh

Y listos, ahora ya podemos volver a ejecutar los scripts de backup como si el disco duro estuviese conectado físicamente a la maquina!

This entry was posted on dimecres, setembre 24th, 2014 at 18:04 and is filed under Linux. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

« »

guy fawkes