Introducción a GlusterFS (Sistema de Archivos) e Instalación en RHEL/CentOS y Fedora

Estamos viviendo en un mundo donde los datos están creciendo de una manera impredecible y es nuestra necesidad almacenar estos datos, ya sea estructurados o no estructurados, de manera eficiente. Los sistemas de computación distribuida ofrecen una amplia gama de ventajas sobre los sistemas de computación centralizados. Aquí los datos se almacenan de forma distribuida con varios nodos como servidores.

GlusterFS Storage

El concepto de un servidor de metadatos ya no es necesario en un sistema de archivos distribuido. En los sistemas de archivos distribuidos, ofrece un punto de vista común de todos los archivos separados entre diferentes servidores. Los archivos/directorios en estos servidores de almacenamiento se acceden de manera normal.

Por ejemplo, los permisos para archivos/directorios se pueden establecer como en el modelo de permisos del sistema habitual, es decir, el propietario, el grupo y otros. El acceso al sistema de archivos depende básicamente de cómo esté diseñado el protocolo particular para funcionar en el mismo.

¿Qué es GlusterFS?

GlusterFS es un sistema de archivos distribuido definido para ser utilizado en espacio de usuario, es decir, Sistema de Archivos en Espacio de Usuario (FUSE). Es un sistema de archivos basado en software que cuenta con su propia característica de flexibilidad.

Observe la siguiente figura que representa esquemáticamente la posición de GlusterFS en un modelo jerárquico. Por defecto, GlusterFS utilizará el protocolo TCP.

GlusterFS Design

Ventajas de GlusterFS

  1. Innovación – Elimina los metadatos y puede mejorar drásticamente el rendimiento, lo que nos ayudará a unificar datos y objetos.
  2. Elasticidad – Adaptado al crecimiento y reducción del tamaño de los datos.
  3. Escalado Lineal – Tiene disponibilidad de petabytes y más allá.
  4. Simplicidad – Es fácil de gestionar e independiente del núcleo mientras se ejecuta en el espacio de usuario.

¿Qué hace que Gluster sobresalga entre otros sistemas de archivos distribuidos?

  1. Escala – La ausencia de un servidor de metadatos proporciona un sistema de archivos más rápido.
  2. Asequible – Se implementa en hardware de commodity.
  3. Flexible – Como mencioné anteriormente, GlusterFS es un sistema de archivos solo de software. Aquí los datos se almacenan en sistemas de archivos nativos como ext4, xfs, etc.
  4. Código Abierto – Actualmente GlusterFS es mantenido por Red Hat Inc, una empresa de código abierto multimillonaria, como parte de Red Hat Storage.

Conceptos de almacenamiento en GlusterFS

  1. Ladrillo – El ladrillo es básicamente cualquier directorio que se pretende compartir entre el grupo de almacenamiento de confianza.
  2. Grupo de Almacenamiento de Confianza – Es una colección de estos archivos/directorios compartidos, que se basan en el protocolo diseñado.
  3. Almacenamiento en Bloque – Son dispositivos a través de los cuales los datos se están moviendo entre sistemas en forma de bloques.
  4. Clúster – En Red Hat Storage, tanto el clúster como el grupo de almacenamiento de confianza transmiten el mismo significado de colaboración de servidores de almacenamiento basados en un protocolo definido.
  5. Sistema de Archivos Distribuido – Un sistema de archivos en el que los datos se distribuyen en diferentes nodos donde los usuarios pueden acceder al archivo sin conocer la ubicación real del mismo. El usuario no experimenta la sensación de acceso remoto.
  6. FUSE – Es un módulo de kernel cargable que permite a los usuarios crear sistemas de archivos por encima del kernel sin involucrar ningún código del kernel.
  7. glusterd – glusterd es el demonio de gestión de GlusterFS que es la columna vertebral del sistema de archivos que se ejecutará todo el tiempo cuando los servidores estén en estado activo.
  8. POSIX – Portable Operating System Interface (POSIX) es la familia de estándares definida por el IEEE como una solución a la compatibilidad entre variantes de Unix en forma de una Interfaz Programable de Aplicaciones (API).
  9. RAID – Redundant Array of Independent Disks (RAID) es una tecnología que proporciona mayor fiabilidad de almacenamiento a través de la redundancia.
  10. Subvolumen – Un ladrillo después de ser procesado por al menos un traductor.
  11. Traductor – Un traductor es esa pieza de código que realiza las acciones básicas iniciadas por el usuario desde el punto de montaje. Conecta uno o más subvolúmenes.
  12. Volumen – Un volumen es una colección lógica de ladrillos. Todas las operaciones se basan en los diferentes tipos de volúmenes creados por el usuario.
Diferentes Tipos de Volúmenes

Se permiten representaciones de diferentes tipos de volúmenes y combinaciones entre estos tipos básicos de volúmenes, como se muestra a continuación.

Distributed Volume
Replicated Volume
Striped Volume
Volumen Replicado Distribuido

Representación de un volumen distribuido y replicado.

Distributed Replicated Volume

Instalación de GlusterFS en RHEL/CentOS y Fedora

En este artículo, estaremos instalando y configurando GlusterFS por primera vez para alta disponibilidad de almacenamiento. Para esto, tomaremos dos servidores para crear volúmenes y replicar datos entre ellos.

Paso 1: Tener al menos dos nodos

  1. Instalar CentOS 6.5 (o cualquier otro sistema operativo) en dos nodos.
  2. Establecer nombres de host llamados “servidor1” y “servidor2”.
  3. A working network connection.
  4. Disco de almacenamiento en ambos nodos llamado “/data/brick”.

Paso 2: Habilitar EPEL y Repositorio de GlusterFS

Antes de instalar GlusterFS en ambos servidores, necesitamos habilitar los repositorios de EPEL y GlusterFS para satisfacer las dependencias externas. Utilice el siguiente enlace para instalar y habilitar el repositorio epel en ambos sistemas.

  1. Cómo Habilitar el Repositorio EPEL en RHEL/CentOS

Luego, necesitamos habilitar el repositorio de GlusterFS en ambos servidores.

# wget -P /etc/yum.repos.d http://download.gluster.org/pub/gluster/glusterfs/LATEST/EPEL.repo/glusterfs-epel.repo

Paso 3: Instalación de GlusterFS

Instalar el software en ambos servidores.

# yum install glusterfs-server

Iniciar el demonio de gestión de GlusterFS.

# service glusterd start

Ahora verificar el estado del demonio.

# service glusterd status
Salida de Ejemplo
service glusterd start
  service glusterd status
  glusterd.service - LSB: glusterfs server
   	  Loaded: loaded (/etc/rc.d/init.d/glusterd)
  	  Active: active (running) since Mon, 13 Aug 2012 13:02:11 -0700; 2s ago
  	 Process: 19254 ExecStart=/etc/rc.d/init.d/glusterd start (code=exited, status=0/SUCCESS)
  	  CGroup: name=systemd:/system/glusterd.service
  		  ├ 19260 /usr/sbin/glusterd -p /run/glusterd.pid
  		  ├ 19304 /usr/sbin/glusterfsd --xlator-option georep-server.listen-port=24009 -s localhost...
  		  └ 19309 /usr/sbin/glusterfs -f /var/lib/glusterd/nfs/nfs-server.vol -p /var/lib/glusterd/...

Paso 4: Configurar SELinux e iptables

Abra ‘/etc/sysconfig/selinux y cambie SELinux a modo “permissive” o “disabled” en ambos servidores. Guarde y cierre el archivo.

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

A continuación, limpie las reglas de iptables en ambos nodos o permita el acceso al otro nodo a través de iptables.

# iptables -F

Paso 5: Configurar el Grupo de Confianza

Ejecute el siguiente comando en ‘Servidor1‘.

gluster peer probe server2

Ejecute el siguiente comando en ‘Servidor2‘.

gluster peer probe server1

Nota: Una vez que este grupo haya sido conectado, solo los usuarios de confianza pueden agregar nuevos servidores a este grupo.

Paso 6: Configurar un Volumen GlusterFS

En ambos servidor1 y servidor2.

# mkdir /data/brick/gv0

Cree un volumen en un solo servidor y comience el volumen. Aquí, he tomado ‘Servidor1‘.

# gluster volume create gv0 replica 2 server1:/data/brick1/gv0 server2:/data/brick1/gv0
# gluster volume start gv0

A continuación, confirme el estado del volumen.

# gluster volume info

Nota: En caso de que el volumen no se haya iniciado, los mensajes de error se registran en ‘/var/log/glusterfs‘ en uno o ambos servidores.

Paso 7: Verificar el Volumen GlusterFS

Monte el volumen en un directorio bajo ‘/mnt‘.

# mount -t glusterfs server1:/gv0 /mnt

Ahora puede crear, editar archivos en el punto de montaje como una vista única del sistema de archivos.

Características de GlusterFS

  1. Auto-curación – Si alguno de los bloques en un volumen replicado está caído y los usuarios modifican los archivos dentro del otro bloque, el demonio automático de auto-curación entrará en acción tan pronto como el bloque esté activo la próxima vez y las transacciones ocurridas durante el tiempo caído se sincronizarán en consecuencia.
  2. Reequilibrar – Si agregamos un nuevo bloque a un volumen existente, donde previamente residía una gran cantidad de datos, podemos realizar una operación de reequilibrio para distribuir los datos entre todos los bloques, incluido el bloque recién agregado.
  3. Geo-replicación – Proporciona copias de seguridad de datos para la recuperación ante desastres. Aquí entra en juego el concepto de volúmenes maestro y esclavo. De modo que si el maestro está caído, todos los datos pueden ser accedidos a través del esclavo. Esta función se utiliza para sincronizar datos entre servidores separados geográficamente. Inicializar una sesión de geo-replicación requiere una serie de comandos de gluster.

Aquí está la captura de pantalla que muestra el módulo de Geo-replicación.

Geo Replication

Enlaces de referencia

Página de inicio de GlusterFS

¡Eso es todo por ahora! Mantente actualizado para obtener una descripción detallada de características como Auto-curación y Reequilibrio, Geo-replicación, etc. en mis próximos artículos.

Source:
https://www.tecmint.com/introduction-to-glusterfs-file-system-and-installation-on-rhelcentos-and-fedora/