INSTALACION DE OWNCLOUD EN ALTA DISPONIBILIDAD
Lo que vamos a hacer a continuación es crear una alta disponibilidad para Owncloud. Owncloud es un sistema de almacenamiento y aplicaciones en línea.
nuestro objetivo es lograr un paridad y disponibilidad que sean transparentes para el usuario. Para empezar lo que hemos hecho es crear dos máquinas virtuales de unas 300 GB cada una para para tener un espacio de almacenamiento grande. Nuestras máquinas se encuentran en redes distintas con un direccionamiento IP distintos.
El primero paso que debemos de hacer es lograr que las máquinas tengan conexión entre ellas, para ello la solución que hemos dado es que ambas estén en la misma VPN.
Cluster de MariaDB
Una vez que tengamos las dos máquinas virtuales metidas en la VPN vamos a proceder a instalar MariaDB en los servidores que vamos a utilizar, las bases de datos se replicarán.
Ahora nos vamos al primero servidor y añadimos los siguientes repositorios:
#apt-get install software-properties-common #apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db #add-apt-repository 'deb [arch=amd64,i386] http://tedeco.fi.upm.es/mirror/mariadb/repo/10.0/debian jessie main' #apt update
A continuación instalamos Galera con el siguiente comando en todos los servidores que tengamos para la alta disponibilidad, en este caso 2:
#apt install rsync galera mariadb-galera-server
Una vez instalado procederemos a crear el cluster de Galera con MariaDB, para eso debemos de crear el fichero «galera.cnf» en «/etc/mysql/conf.d/» y añadimos las siguiente configuración en cada uno de los nodos:
[mysqld] binlog_format=ROW default-storage-engine=innodb innodb_autoinc_lock_mode=2 query_cache_size=0 query_cache_type=0 bind-address=0.0.0.0 # Galera Provider Configuration wsrep_provider=/usr/lib/galera/libgalera_smm.so wsrep_cluster_name="avengers" wsrep_cluster_address="gcomm://10.100.0.10,10.100.0.20" wsrep_sst_method=rsync wsrep_node_address="10.100.0.10"#
Donde pone «bind-addres» hemos puesto la dirección de la VPN, también está la opción de poner la dirección «0.0.0.0» para que permita todas las conexiones de la máquina.
Ahora vamos a proceder a para MySQL en todos los nodos ejecutando el siguiente comando:
# systemctl stop mysql
Una vez hecho esto debemos de tener especial cuidado en el siguiente paso, ya que debemos tener un archivo exactamente igual en todos los nodos, replicando el que más nos interese en todos los demás, que sea el cual vayamos a empezar el cluster. El fichero de configuración al que nos referimos en este caso es «/etc/mysql/debian.cnf».
Hechos esto procedemos a arrancar el cluster. Para ellos empleamos el siguiente comando solo en un nodo:
# /etc/init.d/mysql start --wsrep_new_cluster --wsrep-cluster-address="gcomm://10.100.0.10,10.100.0.20"
Después, en los otros nodos arrancamos mysql
# systemctl start mysql
Y en el primer nodo, debemos «apagar» mysql y volverlo a encender con systemd:
#/etc/init.d/mysql stop #systemctl start mysql
Esta ultima parte de arrancar el cluster habrá que hacerla siempre que se caigan todos los nodos y queramos volver a arrancar el cluster. Es muy importante hacer el «–wsrep_new_cluster» solo en una máquina y solo cuando sea necesario porque no haya ningún otro nodo arrancado, ya que si no, tendríamos una bifurcación
GlusterFS
A continuación lo que vamos a hacer es isntalar GlusterFS, que no aportará la replicación de ficheros entre los servidores, de manera todo lo que se guarde en un servidor se replicará en los otros.
En primer lugar lo que debemos de hacer es instalar en este caso en los dos nodos que usamos el paquete «glusterfs-server»:
#apt install glusterfs-server
Una vez instalado, creamos la carpeta que se replicará entre los nodos:
#mkdir /gluster
Luego nos vamos a «/etc/glusterfs/glusterfsd.vol» y pegamos el siguiente contenido. Esto hay que hacerlo en ambos nodos:
volume posix type storage/posix option directory /gluster end-volume volume locks type features/posix-locks subvolumes posix end-volume volume brick type performance/io-threads option thread-count 8 subvolumes locks end-volume volume server type protocol/server option transport-type tcp subvolumes brick option auth.addr.brick.allow * end-volume volume posix type storage/posix option directory /gluster end-volume volume locks type features/posix-locks subvolumes posix end-volume volume brick type performance/io-threads option thread-count 8 subvolumes locks end-volume volume server type protocol/server option transport-type tcp subvolumes brick option auth.addr.brick.allow * end-volume
Una vez hayamos creado el archivo lo que debemos de hacer es reiniciar el servicio:
#service glusterfs-server restart
Para el siguiente paso debemos crear el fichero «/etc/glusterfs/glusterfs.vol»:
volume node1 type protocol/client option transport-type tcp option remotehost 10.100.0.10 option remote-subvolume brick end-volume volume node2 type protocol/client option transport-type tcp option remotehost 10.100.0.20 option remote-subvolume brick end-volume volume replicated_storage type cluster/replicate subvolumes node1 node2 end-volume
Luego por seguridad reiniciamos el servicio de Gluster como hemos hecho anteriormente.
Para probar que funciona y se conectan ejecutamos desde el nodo1 el siguiente comando con la dirección IP del nodo2:
# gluster peer probe 10.100.0.20 peer probe: success.
Ahora crearemos el volumen que sera el que se replique. Debemos ejecutar el siguiente comando solo en una maquina y automáticamente se pondrá en la otra:
#gluster volume create owncloud replica 2 transport tcp 10.100.0.10:/gluster 10.100.0.20:/gluster force
Después arrancamos el volumen que hemos creado anteriormente, solo hace falta hacerlo en una máquina:
# gluster volume start owncloud volume start: owncloud: success
Para tener exito tuvimos que parar el volumen y volverlo a arrancar
# gluster volume stop owncloud # gluster volume start owncloud
Por último con Gluster lo que vamos a hacer es montar los volúmenes en ambas máquinas de la siguiente forma:
#mount localhost:owncloud /var/www/html/ -t glusterfs
Ya tenemos toda preparado y lo único que quedaría, seria instalar ownCloud de manera habitual en una máquina y automáticamente se hará en la otra.
Manuel Jesús Begines González y Gabriel Amador Garcia.