Oscar Mas, de Cadinor, nos deja hoy otro fantástico Post sobre almacenamiento >> Continuando la búsqueda de un Storage más económico, nos podemos encontrar con GlusterFS. GlusterFS, no es un sistema orientado a objetos (object-store systems), es un sistema orientado a ficheros (file storage).
Uno de los inconvenientes de GlusterFS, es el tamaño del bloque, el cual es de 128KB y a día de hoy no se puede modificar. A consecuencia de esto, si lo comparamos con otros sistemas de Storage, GlusterFS ofrece un menor rendimiento que los demás. Igual por este motivo RedHat ha adquirido Ceph, pero esto es una opinión personal.
Para hacer el montaje, he usado tres equipos basados en CentOS 7. Dos servidores harán las funciones de GlusterFS y el tercer servidor será el cliente de GlsuterFS, en el cual implementaremos Zimbra. Nos quedaran de la siguiente manera:
El esquema del montaje quedaría de la siguiente manera:
El primer paso antes de empezar a desarrollar la instalación, es que los tres equipos tengan las mismas entradas en el fichero de hosts:
[syntax type="php"][root@zimbra ~]# cat /etc/hosts[/syntax]
Implementación de GlusterFS en los servidores de Storage
Para realizar la implementación de GlusterFS, hemos de añadir en los dos servidores ( glusterfs1.ilba.cat y glusterfs2.ilba.cat ) los repositorios de GlusterFS para poder instalarlo. Os dejo una explicación del porqué se han de añadir los repositorios y no podremos hacer un “yum install GlusterFS”:
El procedimiento para instalar GlusterFS, será el siguiente:
[syntax type="php"][root@glusterfs1 ~]# cd /usr/local/src/
[root@glusterfs1 src]# yum install -y wget
[root@glusterfs1 src]# wget http://download.gluster.org/pub/gluster/glusterfs/LATEST/CentOS/glusterfs-epel.repo -O /etc/yum.repos.d/glusterfs-epel.repo
[root@glusterfs1 src]# yum -y install glusterfs-server
[root@glusterfs1 src]# systemctl start glusterd
[root@glusterfs1 src]# systemctl enable glusterd[/syntax]
Podremos observar que la versión que nos ha instalado es la 3.5.2:
[syntax type="php"][root@glusterfs1 ~]# glusterfsd --version[/syntax]
Verificaremos que los servicios estén levantados en los dos servidores de GlusterFS ( glusterfs1.ilba.cat y glusterfs2.ilba.cat ):
[syntax type="php"][root@glusterfs1 ~]# netstat -nlpt | grep gluster[/syntax]
Añadimos el servidor glusterfs2.ilba.cat a nuestro Storage Pool. Esto se ha de lanzar únicamente desde el servidor gluster1.ilba.cat y posteriormente verificaremos su estado:
[syntax type="php"][root@glusterfs1 ~]# gluster peer probe glusterfs2.ilba.cat
[root@glusterfs1 ~]# gluster peer status[/syntax]
A cada servidor de GlusterFS ( glusterfs1.ilba.cat y glusterfs2.ilba.cat ), le he añadido un disco duro de 50GB en formato XFS, donde irá ubicado el Storage que GlusterFS nos presentará a nuestro servidor de Zimbra:
Montaremos la partición, en los dos servidores de GlusterFS:
[syntax type="php"][root@glusterfs1 ~]# vim /etc/fstab
/dev/sdb1 /NOTOCAR xfs defaults 0 0
[root@glusterfs1 ~]# mkdir /NOTOCAR
[root@glusterfs1 ~]# mount -a[/syntax]
Al añadir el punto de montaje en nuestros servidores de GlusterFS ( glusterfs1.ilba.cat y glusterfs2.ilba.cat ), podréis observar:
- La partición la he llamado NOTOCAR, ya que NO podremos realizar modificaciones de los ficheros dentro de los servidores de GlusterFS, únicamente se podrán realizar cambios desde el servidor cliente, en nuestro caso el servidor de Zimbra.
- En el fichero fstab, le he puesto 0 al último valor, ya que cuando montamos una partición en formato XFS, el propio sistema realiza un chequeo del sistema de ficheros.
Ahora creamos el volumen con las dos particiones creadas anteriormente y lo iniciaremos. Lo que realizaremos es una réplica de los dos discos duros, esto se hace con el parámetro “replica”. Al crear el volumen, a parte de la opción replica, tenemos dos posibilidades más:
- Distributed – Distributes files throughout the cluster.
- Replicated – Replicates data across two or more nodes in the cluster, en definitiva un mirror
- Striped – Stripes files across multiple nodes in the cluster.
Este procedimiento se ha de hacer desde un servidor del GlusterFS, en nuestro caso glusterfs1.ilba.cat:
[syntax type="php"][root@glusterfs1 ~]# gluster volume create zimbra replica 2 transport tcp glusterfs1.ilba.cat:/NOTOCAR glusterfs2.ilba.cat:/NOTOCAR force
[root@glusterfs1 ~]# gluster volume start zimbra[/syntax]
Verificaremos que el GlusterFS, nos ha creado un storage que se replica entre los dos discos duros:
[syntax type="php"][root@glusterfs1 ~]# gluster volume info[/syntax]
Implementación del cliente de GlusterFS en el servidor de Zimbra
Una vez preparados nuestros servidores de GlusterFS, hemos de montar la partición en nuestro servidor de Zimbra. Lo primero que haremos, es instalar el cliente de GlusterFS:
[syntax type="php"][root@zimbra ~]# cd /usr/local/src/
[root@zimbra src]# yum install -y wget
[root@zimbra src]# wget http://download.gluster.org/pub/gluster/glusterfs/LATEST/CentOS/glusterfs-epel.repo -O /etc/yum.repos.d/glusterfs-epel.repo
[root@zimbra src]# yum -y install glusterfs glusterfs-fuse[/syntax]
Para no tener problemas, puede ser que los servicios de Zimbra arranquen y la partición /opt no esté montada con el sistema de Gluster. En este caso, es posible que se graben datos en el disco duro local, en vez de grabarse en la unidad montada de GlusterFS. Para eliminar esta posible incidencia, le cambiaremos los permisos al directorio /opt, para que no se pueda grabar a no ser que se haya montado el sistema de GlusterFS:
[syntax type="php"][root@zimbra ~]# chattr +i /opt/
[root@zimbra ~]# touch /opt/OscarMas
touch: cannot touch â/opt/OscarMasâ: Permission denied
[root@zimbra ~]# mount -t glusterfs glusterfs1.ilba.cat:/zimbra /opt
[root@zimbra ~]# touch /opt/OscarMas
[root@zimbra ~]# ls -la /opt/OscarMas
-rw-r--r-- 1 root root 0 Aug 22 14:45 /opt/OscarMas[/syntax]
Añadiremos la entrada de montaje en nuestro servidor de Zimbra, para cuando reiniciemos el servidor, la partición de GlusterFS se monte de manera automática:
[syntax type="php"][root@zimbra src]# vim /etc/fstab
glusterfs1.ilba.cat:/zimbra /opt glusterfs defaults,_netdev 0 0
[root@zimbra src]# mount –a[/syntax]
Ahora ya podemos empezar la instalación de nuestro sistema de Zimbra, con cualquiera de los magníficos post que ha creado Jorge. Si queremos implementar y administrar GlusterFS de una manera amigable, siempre podremos usar oVirt (http://www.ovirt.org).












Leave a Reply