Compartir archivos con GlusterFS en CentOS 7

En mi quehacer diario, manejo un serie de servidores virtuales remotos que utilizo para los distintos servicios que necesito/brindo, servidor Web, Campus virtual para dictar los cursos, sistema distribuido de facturación de llamadas.

Normalmente para acordarme de un comando inusual o que utilizo muy de vez en cuando, suelo crear una archivo de texto donde guardo el comando y una descripción si es el caso.

Resulta que ahora me encontraba con muchos textos distribuidos entre los distintos servidores con el riesgo de no acordarme donde había guardado mi pequeño HowTo. Es por eso que decidí compartir todos los textos entre todos los servidores de forma que pudiera acceder a esos pequeños HowTo desde cualquier servidor al que estuviera conectado.

Después de pensarlo, he decidido optar por GlusterFS. No se si es la mejor opción pero me pareció bastante funcional y sobre todo muy fácil de instalar y configurar.

En este articulo veremos como crear una sistema de dos servidores y N clientes. Mano a la obra.

Los dos servidores tienen las siguientes IP:

ServidorA: 1.2.3.4

ServidorB: 5.6.7.8

En ambos Servidores (A y B) seguimos los siguientes pasos:

  • Instalamos los repositorios de Gluster para CentOS:

yum install centos-release-gluster -y

  • instalamos el servidor:

yum install glusterfs-server -y

  • lo configuramos para que arranque en automático y lo iniciamos:

systemctl enable glusterd.service

systemctl start glusterd.service

miramos que versión tenemos instalada:

glusterfsd --version

  • Abrimos los puertos que necesita GlusterFS para que los servidores y los clientes puedan comunicarse:

nano /etc/sysconfig/iptables

antes de la linea del puerto que usamos para la conexión SSH, por ejemplo, añadimos:

##### GLUSTERFS

-A INPUT -p tcp -m state --state NEW -m tcp --dport 111 -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 24007:24008 -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 38465:38467 -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 49152:49153 -j ACCEPT

La linea importante es la ultima donde se indican tantos puertos cuantos son los servidores que se van a configurar; en nuestro caso siendo dos servidores los puertos son 49152 y 49153; en el caso de tres servidores serían 49152 49153 y 49154 y así a seguir. Guardamos los cambios y reiniciamos IPtables en ambos servidores:

systemctl restart iptables

  • probamos la conexión de un servidor con otro (de A a B):

gluster peer probe 5.6.7.8

peer probe: success.

de B a A:

gluster peer probe 1.2.3.4

peer probe: success.

Para mirar el estado del otro servidor:

gluster peer status

  • creamos el volumen que compartirán los dos servidores indicando el numero de replicas (2), el protocolo de transporte (TCP) y las carpetas utilizadas. En nuestro caso el comando será:

gluster volume create howto replica 2 transport tcp 1.2.3.4:/howto 5.6.7.8:/howto force

volume create: howto: success: please start the volume to access data

  • Iniciamos el volumen creado con el comando:

gluster volume start howto

volume start: howto: success

Para ver el estado del volumen:

gluster volume info

Resultado:

en las lineas Brick1 y Brick2 aparecerán las IP del ServidorA y ServidorB respectivamente.

Con esta configuración cualquiera puede conectarse a los dos servidores. Para que se puedan conectarse solamente los clientes que queramos, tenemos que autenticar a priori las IPs de los clientes. Esto se realiza con el comando:

gluster volume set howto auth.allow 9.10.11.12,13.14.15.16

9.10.11.12 es la IP del Cliente1 y 13.14.15.16 es la IP del Cliente2.

Una vez autorizados los dos clientes en CADA UNO de ellos seguimos los siguientes pasos:

  • instalamos el cliente de GlusterFS:

yum install glusterfs-client -y

  • creamos la carpeta donde vamos a guardar nuestros HowTo (la misma indicada en la configuración de los dos servidores):

mkdir -p /howto

  • Montamos la partición de GlusterFS:

mount.glusterfs 1.2.3.4:/howto /howto

en lugar de 1.2.3.4 podemos indicar la IP del segundo servidor (5.6.7.8). Cada cliente se puede conectar a cualquiera de los dos servidores sin problemas.

Para que la partición se monte al iniciar el servidor de cada cliente:

nano /etc/rc.local

al final del archivo añadimos:

mount.glusterfs 1.2.3.4:/howto /howto

Terminada la configuración de los clientes podemos empezar, desde cualquier servidor virtual, a copiar nuestros HowTo en la carpeta /howto

Este tipo de configuración puede ser útil también si queremos replicar, por ejemplo, copia de seguridad de base de datos, carpetas, en todos los servidores configurados con GlusterFS:

Si en un determinado momento queremos añadir un nuevo cliente, tendremos que repetir, en uno de los dos servidores, el comando gluster volume set howto auth.allow añadiendo la nueva IP; ejemplo:

gluster volume set howto auth.allow 9.10.11.12,13.14.15.16,18.19.20.21

hay que repetir las IPs de los clientes ya autorizados y añadir la nueva IP.

Cualquier cosa me comentan.

Vota el Articulo: 

Sin votos (todavía)
Evalúa la calidad del articulo
Suscribirse a Comentarios de "Compartir archivos con GlusterFS en CentOS 7" Suscribirse a VozToVoice - Todos los comentarios