Introducció a GlusterFS (sistema de fitxers) i instal·lació a RHEL/CentOS i Fedora


Vivim en un món on les dades creixen de manera impredictible i és la nostra necessitat d'emmagatzemar aquestes dades, ja siguin estructurades o no estructurades, d'una manera eficient. Els sistemes informàtics distribuïts ofereixen una àmplia gamma d'avantatges respecte als sistemes informàtics centralitzats. Aquí les dades s'emmagatzemen de manera distribuïda amb diversos nodes com a servidors.

El concepte de servidor de metadades ja no és necessari en un sistema de fitxers distribuït. En els sistemes de fitxers distribuïts, ofereix un punt de vista comú de tots els fitxers separats entre diferents servidors. S'accedeix als fitxers/directoris d'aquests servidors d'emmagatzematge de manera normal.

Per exemple, els permisos per a fitxers/directoris es poden establir com en el model de permisos del sistema habitual, és a dir, el propietari, el grup i altres. L'accés al sistema de fitxers depèn bàsicament de com estigui dissenyat el protocol en particular per treballar-hi.

Què és GlusterFS?

GlusterFS és un sistema de fitxers distribuït definit per utilitzar-lo a l'espai d'usuari, és a dir, File System in User Space (FUSE). És un sistema de fitxers basat en programari que té en compte la seva pròpia característica de flexibilitat.

Mireu la figura següent que representa esquemàticament la posició de GlusterFS en un model jeràrquic. Per defecte, GlusterFS utilitzarà el protocol TCP.

  1. Innovació: elimina les metadades i pot millorar dràsticament el rendiment, cosa que ens ajudarà a unificar dades i objectes.
  2. Elasticitat: adaptada al creixement i reducció de la mida de les dades.
  3. Escala linealment: té disponibilitat a petabytes i més enllà.
  4. Simplicitat: és fàcil de gestionar i independent del nucli mentre s'executa a l'espai d'usuari.

  1. Venible: l'absència d'un servidor de metadades proporciona un sistema de fitxers més ràpid.
  2. Assequible: es desplega en maquinari bàsic.
  3. Flexible: com he dit abans, GlusterFS és un sistema de fitxers només amb programari. Aquí les dades s'emmagatzemen en sistemes de fitxers nadius com ext4, xfs, etc.
  4. Codi obert: actualment GlusterFS el manté Red Hat Inc, una empresa de codi obert de mil milions de dòlars, com a part de Red Hat Storage.

  1. Brick: el brick és bàsicament qualsevol directori que s'ha de compartir entre l'agrupació d'emmagatzematge de confiança.
  2. Agrupació d'emmagatzematge de confiança: és una col·lecció d'aquests fitxers/directoris compartits, que es basen en el protocol dissenyat.
  3. Emmagatzematge en blocs: són dispositius a través dels quals les dades es mouen entre sistemes en forma de blocs.
  4. Clúster: a Red Hat Storage, tant el clúster com l'agrupació d'emmagatzematge de confiança transmeten el mateix significat de col·laboració de servidors d'emmagatzematge en funció d'un protocol definit.
  5. Sistema de fitxers distribuït: un sistema de fitxers en què les dades es reparteixen per diferents nodes on els usuaris poden accedir al fitxer sense saber la ubicació real del fitxer. L'usuari no experimenta la sensació d'accés remot.
  6. FUSE: és un mòdul del nucli carregable que permet als usuaris crear sistemes de fitxers per sobre del nucli sense implicar cap codi del nucli.
  7. glusterd: glusterd és el dimoni de gestió de GlusterFS que és la columna vertebral del sistema de fitxers que s'executarà durant tot el temps sempre que els servidors estiguin en estat actiu.
  8. POSIX: Interfície de sistema operatiu portàtil (POSIX) és la família d'estàndards definida per l'IEEE com a solució per a la compatibilitat entre variants Unix en forma d'interfície d'aplicació programable (API).
  9. RAID – Redundant Array of Independent Disks (RAID) és una tecnologia que augmenta la fiabilitat de l'emmagatzematge mitjançant la redundància.
  10. Subvolum: un maó després de ser processat per almenys un traductor.
  11. Traductor: un traductor és aquella peça de codi que realitza les accions bàsiques iniciades per l'usuari des del punt de muntatge. Connecta un o més subvolums.
  12. Volum: un volum és una col·lecció lògica de maons. Totes les operacions es basen en els diferents tipus de volums creats per l'usuari.

També es permeten representacions de diferents tipus de volums i combinacions entre aquests tipus de volums bàsics, tal com es mostra a continuació.

Representació d'un volum distribuït-replicat.

Instal·lació de GlusterFS a RHEL/CentOS i Fedora

En aquest article, instal·larem i configurarem GlusterFS per primera vegada per a una alta disponibilitat d'emmagatzematge. Per això, utilitzem dos servidors per crear volums i replicar dades entre ells.

  1. Instal·leu CentOS 6.5 (o qualsevol altre sistema operatiu) en dos nodes.
  2. Definiu noms d'amfitrió anomenats servidor1 i servidor2.
  3. Una connexió de xarxa que funcioni.
  4. Disc d'emmagatzematge als dos nodes anomenat /data/brick.

Abans d'instal·lar GlusterFS als dos servidors, hem d'habilitar els repositoris EPEL i GlusterFS per tal de satisfer les dependències externes. Utilitzeu l'enllaç següent per instal·lar i habilitar el repositori epel als dos sistemes.

  1. Com habilitar el repositori EPEL a RHEL/CentOS

A continuació, hem d'habilitar el dipòsit de GlusterFs als dos servidors.

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

Instal·leu el programari als dos servidors.

# yum install glusterfs-server

Inicieu el dimoni de gestió de GlusterFS.

# service glusterd start

Ara comproveu l'estat del dimoni.

# service glusterd status
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/...

Obriu /etc/sysconfig/selinux i canvieu SELinux al mode \permissiu o \inhabilitat als dos servidors. Desa i tanca el fitxer.

# 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ó, esborreu els iptables als dos nodes o necessiteu permetre l'accés a l'altre node mitjançant iptables.

# iptables -F

Executeu l'ordre següent a Server1.

gluster peer probe server2

Executeu l'ordre següent a Server2.

gluster peer probe server1

Nota: un cop connectat aquest grup, només els usuaris de confiança poden investigar nous servidors en aquest grup.

Tant al servidor1 com al servidor2.

# mkdir /data/brick/gv0

Creeu un volum a qualsevol servidor i inicieu el volum. Aquí, he agafat Server1.

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

A continuació, confirmeu l'estat del volum.

# gluster volume info

Nota: si el volum per si no s'inicia, els missatges d'error es registren a /var/log/glusterfs en un o ambdós servidors.

Munteu el volum a un directori sota '/mnt'.

# mount -t glusterfs server1:/gv0 /mnt

Ara podeu crear, editar fitxers al punt de muntatge com a vista única del sistema de fitxers.

Característiques de GlusterFS

  1. Autocuració: si algun dels maons d'un volum replicat està caigut i els usuaris modifiquen els fitxers de l'altre maó, el dimoni d'autocuració automàtica entrarà en acció tan bon punt el maó estigui a punt la propera vegada i les transaccions. ocorregut durant el temps d'inactivitat es sincronitzen en conseqüència.
  2. Reequilibrar: si afegim un maó nou a un volum existent, on anteriorment hi havia una gran quantitat de dades, podem realitzar una operació de reequilibri per distribuir les dades entre tots els maons, inclòs el maó nou afegit.
  3. Georeplicació: proporciona còpies de seguretat de les dades per a la recuperació en cas de desastre. Aquí ve el concepte de volums mestres i esclaus. De manera que si el mestre està caigut, es pot accedir a totes les dades mitjançant l'esclau. Aquesta funció s'utilitza per sincronitzar dades entre servidors separats geogràficament. Inicialitzar una sessió de replicació geogràfica requereix una sèrie d'ordres gluster.

Aquí hi ha la següent captura de pantalla que mostra el mòdul de replicació geogràfica.

Enllaços de referència

Pàgina d'inici de GlusterFS

Això és tot de moment!. Manteniu-vos actualitzat per obtenir la descripció detallada de funcions com ara l'autocuració i el reequilibri, la replicació geogràfica, etc. als meus propers articles.