Soy Oscar Mas y hoy vamos a ver cómo integrar nuestros sistemas de Backups de Zimbra, con la plataforma de Amazon Web Services S3. Una de las grandes ventajas de usar como sistema operativo de código abierto, es que podemos llegar a hacer cualquier cosa que nos pase por la cabeza.
Hoy os quiero enseñar cómo montar una partición en Amazon Web Services S3, para almacenar nuestros sistemas de backups en la nube y de esta manera conseguir reducir los costes de nuestra implementación.
Cabe destacar que todo el procedimiento lo he realizado con un sistema operativo basado en Ubuntu 14.04 LTS. Para realizar todo el procedimiento, únicamente nos hemos de dar de alta en el sistema de Amazon Web Services. El esquema quedaría de la siguiente manera:
Lo primero que hemos de asegurarnos, es que nuestro equipo tenga la hora sincronizada con un servidor NTP, ya que si existe un desfase superior a 15 minutos, tendremos problemas al integrar Amazon Web Services S3 con nuestro sistema de Zimbra.
[syntax type=”php”]root@zimbra:~# ntpdate hora.roa.es[/syntax]
Nos iremos a la web de Amazon: https://console.aws.amazon.com/iam/home?#security_credential y nos crearemos el Access Key ID y el Secret Access Key, de nuestro Bucket. Con los cuales nos autenticaremos con el sistema de Amazon Web Services S3:
Iremos a la consola de Amazon S3: https://console.aws.amazon.com/s3/ y desde aquí crearemos el Bucket, que no es más que el nombre que le daremos a nuestro Storage en la nube. Por cierto, este nombre ha de ser único, en todo el storage de Amazon S3.
A nuestro Bucket, lo llamaremos “zimbrailba” como se puede ver en la captura
Para la implementación hemos usado riofs, ya que los demás protocolos de comunicación son bastante inestables. Nos descargaremos las dependencias y compilaremos riofs.
[syntax type=”php”]
root@zimbra:~# apt-get update
root@zimbra:~# apt-get –y install build-essential gcc make automake autoconf libtool pkg-config intltool libglib2.0-dev libfuse-dev libxml2-dev libevent-dev libssl-dev
root@zimbra:~# cd /usr/local/src/
root@zimbra:/usr/local/src# wget https://github.com/skoobe/riofs/archive/master.zip
root@zimbra:/usr/local/src# apt-get -y install unzip
root@zimbra:/usr/local/src# unzip master.zip
root@zimbra:/usr/local/src# cd riofs-master/
root@zimbra:/usr/local/src/riofs-master# ./autogen.sh
root@zimbra:/usr/local/src/riofs-master# ./configure
root@zimbra:/usr/local/src/riofs-master# make
root@zimbra:/usr/local/src/riofs-master# make install
[/syntax]
Copiaremos el fichero de configuración, en una ubicación lógica como podría ser el directorio etc y añadiremos nuestro Access Key ID y el Secret Access Key, que nos ha proporcionado Amazon en el paso anterior:
[syntax type=”php”]
root@zimbra:/usr/local/src/riofs-master# cp /usr/local/etc/riofs/riofs.conf.xml /etc/riofs.conf.xml
root@zimbra:/usr/local/src/riofs-master# vim /etc/riofs/riofs.conf.xml
root@zimbra:/usr/local/src/riofs-master# chmod 600 /etc/riofs/riofs.conf.xml
[/syntax]
Una vez realizado el procedimiento, simplemente nos queda montar el sistema de Amazon Web Servides S3, en la ruta de los backups de Zimbra. Nos saldrán dos errores, pero los podemos obviar:
[syntax type=”php”]root@zimbra:~# riofs -c /etc/riofs.conf.xml zimbrailba /opt/zimbra/backup[/syntax]
Antes de poner el sistema en producción, es muy aconsejable que verifiquemos cuanto tiempo tarda en grabar un fichero en la partición de Amazon Web Services S3. Todo el tráfico de acceso, se realizar mediante el protocolo de navegación, a consecuencia de esto, la velocidad de grabación, es directamente proporcional al ancho de banda de nuestra ADSL. Por eso antes de implementar este tipo de sistemas, es imprescindible saber de qué ancho de banda disponemos, ya que si es muy bajo, este tipo de implementaciones no es viable. Para verificarlo, os dejo un ejemplo de cómo chequear vuestro ancho de banda:
[syntax type=”php”]
root@zimbra:~# apt-get –y install python-pip
root@zimbra:~# pip install speedtest-cli
root@zimbra:~# speedtest-cli
[/syntax]
Para que os hagáis a la idea, con esta ADSL, conseguimos grabar 10MB en 9 segundos:
[syntax type=”php”]
root@zimbra:~# dd if=/dev/zero of=FicheroDe10Megabyte bs=1MB count=10
root@zimbra:~# time cp FicheroDe10Megabyte /opt/zimbra/backup/
[/syntax]
Si las pruebas realizadas anteriormente son aceptables, ya podemos empezar a implementar la integración de los sistemas de backup de Zimbra en nuestro Amazon Web Services S3.
[alert style=”green”]
Nota de Jorge: Esta configuración no esta está soportada oficialmente por Zimbra, en caso de algún problema no podrán ayudarnos.
Algo de información en este Wiki y en este otro Wiki
Recomiendo lo siguiente para cumplir con la norma 3-2-1 de Backup y además no perder el soporte de Zimbra:
- 1.- Montar la carpeta de Amazon S3 en /backups o algo parecido
- 2.- Un simple script que copie o haga rsync cada día a las 04.00am de todo el contenido de /opt/zimbra/backup en esta carpeta /backups (que se subirá en background a Amazon S3)
[/alert]
Con lo que el diseño quedaría de la siguiente manera:







Hola Jorge, si en vez de implementar el backup lo que quiero es implementar el servidor de correo en la nube para que opere desde allí, hay alguna configuración especial que haya que hacer antes de hechar a andar el sistema o el proceso es igual que haciéndolo localmente?
Saludos David,
Tenemos unos posts pendientes sobre Amazon S3, no te los pierdas.
Un saludo
Buenas tardes Jorge
Como siempre pasando el tiempo leyendo tus post me tope recientemente con este, es recomendable o fiable que realize los respaldos de mi servidor zimbra en AWS S3? y de ser así la afiliación con ellos tiene algún costo
Saludos….
Saludos Mario,
Aunque Zimbra no soporta de manera oficial los Backups a Amazon S3, puedes hacerlos perfectamente, yo recomiendo hacerlos a local y luego un rsync a la unidad de S3, de esa manera tienes dos copias, y una fuera. El precio es realmente bajo, echa un vistazo aquí, depende de cuantos GB vayas a guardar claro.
https://aws.amazon.com/s3/pricing/
Un saludo