Búsqueda de sitios web

Introducción a GlusterFS (sistema de archivos) e instalación en RHEL/CentOS y Fedora


Vivimos en un mundo donde los datos crecen de manera impredecible y es nuestra necesidad almacenarlos, ya sean estructurados o no estructurados, de manera eficiente. Los sistemas informáticos distribuidos ofrecen una amplia gama de ventajas sobre los sistemas informáticos centralizados. Aquí los datos se almacenan de forma distribuida con varios nodos como servidores.

El concepto de 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. Se accede a los archivos/directorios de estos servidores de almacenamiento de forma normal.

Por ejemplo, los permisos para archivos/directorios se pueden configurar como en el modelo de permisos habitual del sistema, 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 usarse en el espacio del usuario, es decir, sistema de archivos en el espacio del usuario (FUSE). Es un sistema de archivos basado en software que tiene su propia característica de flexibilidad.

Mire la siguiente figura que representa esquemáticamente la posición de GlusterFS en un modelo jerárquico. De forma predeterminada, GlusterFS utilizará el protocolo TCP.

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. Escalar linealmente: tiene disponibilidad de petabytes y más.
  4. Simplicidad: es fácil de administrar e independiente del kernel mientras se ejecuta en el espacio del usuario.

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

  1. Vendible: la ausencia de un servidor de metadatos proporciona un sistema de archivos más rápido.
  2. Asequible: se implementa en hardware básico.
  3. Flexible: como dije antes, GlusterFS es un sistema de archivos únicamente de software. Aquí los datos se almacenan en sistemas de archivos nativos como ext4, xfs, etc.
  4. Código abierto: actualmente GlusterFS lo mantiene Red Hat Inc, una empresa de código abierto de mil millones de dólares, como parte de Red Hat Storage.

Conceptos de almacenamiento en GlusterFS

  1. Brick: Brick es básicamente cualquier directorio que debe compartirse entre el grupo de almacenamiento confiable.
  2. Grupo de almacenamiento confiable: es una colección de estos archivos/directorios compartidos, que se basan en el protocolo diseñado.
  3. Almacenamiento en bloques: son dispositivos a través de los cuales los datos se mueven entre sistemas en forma de bloques.
  4. Clúster: en Red Hat Storage, tanto el clúster como el grupo de almacenamiento confiable 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 archivo. El usuario no experimenta la sensación de acceso remoto.
  6. FUSE: es un módulo del 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 administració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: la interfaz de sistema operativo portátil (POSIX) es la familia de estándares definida por el IEEE como una solución para la compatibilidad entre variantes de Unix en forma de una interfaz programable de aplicaciones (API).
  9. RAID: la matriz redundante de discos independientes (RAID) es una tecnología que proporciona una mayor confiabilidad del almacenamiento a través de la redundancia.
  10. Subvolumen: un ladrillo después de haber sido 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

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

Volumen replicado distribuido

Representación de un volumen replicado distribuido.

Instalación de GlusterFS en RHEL/CentOS y Fedora

En este artículo, instalaremos y configuraremos GlusterFS por primera vez para una alta disponibilidad de almacenamiento. Para ello, tomamos dos servidores para crear volúmenes y replicar datos entre ellos.

Paso: 1 Tener al menos dos nodos

  1. Instale CentOS 6.5 (o cualquier otro sistema operativo) en dos nodos.
  2. Establezca nombres de host denominados "servidor1" y "servidor2".
  3. Una conexión de red que funcione.
  4. Disco de almacenamiento en ambos nodos llamado “/data/brick”.

Paso 2: habilite el repositorio EPEL y GlusterFS

Antes de instalar GlusterFS en ambos servidores, debemos habilitar los repositorios 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

A continuación, debemos habilitar el repositorio 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: Instalar GlusterFS

Instale el software en ambos servidores.

yum install glusterfs-server

Inicie el demonio de gestión de GlusterFS.

service glusterd start

Ahora verifique el estado del demonio.

service glusterd status
Salida de muestra
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 al modo "permisivo" o "deshabilitado" 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, vacíe los iptables en ambos nodos o debe permitir 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 se haya conectado, solo los usuarios de confianza pueden probar nuevos servidores en este grupo.

Paso 6: configurar un volumen GlusterFS

Tanto en el servidor1 como en el servidor2.

mkdir /data/brick/gv0

Cree un volumen en cualquier servidor e inicie 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: Si el volumen en caso no se inicia, los mensajes de error se registran en '/var/log/glusterfs' en uno o ambos servidores.

Paso 7: verificar el volumen de GlusterFS

Monte el volumen en un directorio en '/mnt'.

mount -t glusterfs server1:/gv0 /mnt

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

Características de GlusterFS

  1. Autorreparación: si alguno de los bloques en un volumen replicado está inactivo y los usuarios modifican los archivos dentro del otro bloque, el demonio de autorreparación automática entrará en acción tan pronto como el bloque sea el siguiente. tiempo y las transacciones realizadas durante el tiempo de inactividad se sincronizan en consecuencia.
  2. Reequilibrar: si agregamos un nuevo bloque a un volumen existente, donde anteriormente residían 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. Replicación geográfica: proporciona copias de seguridad de los datos para la recuperación ante desastres. Aquí surge el concepto de volúmenes maestro y esclavo. De modo que, si el maestro no funciona, se puede acceder a todos los datos a través del esclavo. Esta función se utiliza para sincronizar datos entre servidores separados geográficamente. Inicializar una sesión de replicación geográfica requiere una serie de comandos de gluster.

Aquí está la siguiente captura de pantalla que muestra el módulo de replicación geográfica.

Enlaces de referencia

Página de inicio de GlusterFS

¡Eso es todo por ahora!. Manténgase actualizado para obtener una descripción detallada de funciones como autorreparación y reequilibrio, replicación geográfica, etc. en mis próximos artículos.