Ricerca nel sito web

Introduzione a GlusterFS (File System) e installazione su RHEL/CentOS e Fedora


Viviamo in un mondo in cui i dati crescono in modo imprevedibile ed è nostra necessità archiviarli, siano essi strutturati o non strutturati, in modo efficiente. I sistemi informatici distribuiti offrono una vasta gamma di vantaggi rispetto ai sistemi informatici centralizzati. Qui i dati vengono archiviati in modo distribuito con diversi nodi come server.

Il concetto di server di metadati non è più necessario in un file system distribuito. Nei file system distribuiti, offre un punto di vista comune di tutti i file separati tra diversi server. L'accesso ai file/directory su questi server di archiviazione avviene normalmente.

Ad esempio, i permessi per file/directory possono essere impostati come nel consueto modello di permessi di sistema, ovvero il proprietario, il gruppo e altri. L'accesso al file system dipende fondamentalmente da come il particolare protocollo è progettato per funzionare sullo stesso.

Cos'è GlusterFS?

GlusterFS è un file system distribuito definito per essere utilizzato nello spazio utente, ovvero File System in User Space (FUSE). È un file system basato su software che tiene conto della propria caratteristica di flessibilità.

Guarda la figura seguente che rappresenta schematicamente la posizione di GlusterFS in un modello gerarchico. Per impostazione predefinita, GlusterFS utilizzerà il protocollo TCP.

Vantaggi di GlusterFS

  1. Innovazione – Elimina i metadati e può migliorare notevolmente le prestazioni che ci aiuteranno a unificare dati e oggetti.
  2. Elasticità – Adattato alla crescita e alla riduzione delle dimensioni dei dati.
  3. Scala linearmente: ha una disponibilità di petabyte e oltre.
  4. Semplicità: è facile da gestire ed è indipendente dal kernel durante l'esecuzione nello spazio utente.

Cosa rende Gluster eccezionale tra gli altri file system distribuiti?

  1. Vendibile: l'assenza di un server di metadati fornisce un file system più veloce.
  2. Conveniente: viene distribuito su hardware di base.
  3. Flessibile: come ho detto prima, GlusterFS è un file system esclusivamente software. Qui i dati vengono archiviati su file system nativi come ext4, xfs ecc.
  4. Open Source: attualmente GlusterFS è gestito da Red Hat Inc, una società open source da miliardi di dollari, come parte di Red Hat Storage.

Concetti di archiviazione in GlusterFS

  1. Brick – Brick è fondamentalmente qualsiasi directory che deve essere condivisa nel pool di archiviazione attendibile.
  2. Trusted Storage Pool: è una raccolta di file/directory condivisi basati sul protocollo progettato.
  3. Archiviazione a blocchi: sono dispositivi attraverso i quali i dati vengono spostati tra i sistemi sotto forma di blocchi.
  4. Cluster – In Red Hat Storage, sia il cluster che il pool di storage affidabile trasmettono lo stesso significato di collaborazione dei server di storage in base a un protocollo definito.
  5. File system distribuito: un file system in cui i dati sono distribuiti su diversi nodi in cui gli utenti possono accedere al file senza conoscere la posizione effettiva del file. L'utente non sperimenta la sensazione dell'accesso remoto.
  6. FUSE – È un modulo del kernel caricabile che consente agli utenti di creare file system sopra il kernel senza coinvolgere il codice del kernel.
  7. glusterd – glusterd è il demone di gestione GlusterFS che è la spina dorsale del file system che sarà in esecuzione per tutto il tempo ogni volta che i server sono in stato attivo.
  8. POSIX – Portable Operating System Interface (POSIX) è la famiglia di standard definita dall'IEEE come soluzione alla compatibilità tra varianti Unix sotto forma di Application Programmable Interface (API).
  9. RAID: Redundant Array of Independent Disks (RAID) è una tecnologia che offre maggiore affidabilità di archiviazione attraverso la ridondanza.
  10. Sottovolume – Un mattone dopo essere stato elaborato da almeno un traduttore.
  11. Traduttore: un traduttore è quel pezzo di codice che esegue le azioni di base avviate dall'utente dal punto di montaggio. Collega uno o più sottovolumi.
  12. Volume – Un volume è una raccolta logica di mattoni. Tutte le operazioni si basano sui diversi tipi di volumi creati dall'utente.
Diversi tipi di volumi

Sono consentite anche rappresentazioni di diversi tipi di volumi e combinazioni tra questi tipi di volume di base, come mostrato di seguito.

Volume replicato distribuito

Rappresentazione di un volume replicato distribuito.

Installazione di GlusterFS in RHEL/CentOS e Fedora

In questo articolo installeremo e configureremo GlusterFS per la prima volta per un'elevata disponibilità dello storage. Per questo, prendiamo due server per creare volumi e replicare i dati tra di loro.

Passaggio: 1 Avere almeno due nodi

  1. Installa CentOS 6.5 (o qualsiasi altro sistema operativo) su due nodi.
  2. Imposta i nomi host denominati "server1" e "server2".
  3. Una connessione di rete funzionante.
  4. Disco di archiviazione su entrambi i nodi denominato "/data/brick".

Passaggio 2: abilita il repository EPEL e GlusterFS

Prima di installare GlusterFS su entrambi i server, dobbiamo abilitare i repository EPEL e GlusterFS per soddisfare le dipendenze esterne. Utilizza il seguente collegamento per installare e abilitare il repository epel in entrambi i sistemi.

  1. Come abilitare il repository EPEL in RHEL/CentOS

Successivamente, dobbiamo abilitare il repository GlusterFs su entrambi i server.

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

Passaggio 3: installazione di GlusterFS

Installa il software su entrambi i server.

yum install glusterfs-server

Avviare il demone di gestione GlusterFS.

service glusterd start

Ora controlla lo stato del demone.

service glusterd status
Uscita del campione
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/...

Passaggio 4: configura SELinux e iptables

Apri "/etc/sysconfig/selinux" e modifica SELinux in modalità "permissiva" o "disabilitata" su entrambi i server. Salva e chiudi il file.

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

Successivamente, svuota gli iptables in entrambi i nodi o devi consentire l'accesso all'altro nodo tramite iptables.

iptables -F

Passaggio 5: configurare il pool attendibile

Esegui il seguente comando su "Server1".

gluster peer probe server2

Esegui il seguente comando su "Server2".

gluster peer probe server1

Nota: una volta connesso questo pool, solo gli utenti fidati possono sondare nuovi server in questo pool.

Passaggio 6: imposta un volume GlusterFS

Sia sul server1 che sul server2.

mkdir /data/brick/gv0

Crea un volume su qualsiasi singolo server e avvia il volume. Qui ho preso "Server1".

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

Successivamente, conferma lo stato del volume.

gluster volume info

Nota: se il volume In-case non viene avviato, i messaggi di errore vengono registrati in '/var/log/glusterfs' su uno o entrambi i server.

Passaggio 7: verificare il volume GlusterFS

Monta il volume in una directory in "/mnt".

mount -t glusterfs server1:/gv0 /mnt

Ora puoi creare e modificare file sul punto di montaggio come un'unica vista del file system.

Caratteristiche di GlusterFS

  1. Autoriparazione: se uno qualsiasi dei mattoni in un volume replicato è inattivo e gli utenti modificano i file all'interno dell'altro mattone, il demone di autoriparazione automatica entrerà in azione non appena il mattone verrà ripristinato tempo e le transazioni avvenute durante il periodo di inattività vengono sincronizzate di conseguenza.
  2. Ribilanciamento: se aggiungiamo un nuovo mattone a un volume esistente, dove precedentemente risiedeva una grande quantità di dati, possiamo eseguire un'operazione di ribilanciamento per distribuire i dati tra tutti i mattoni, compreso quello appena aggiunto.
  3. Replica geografica: fornisce backup dei dati per il ripristino di emergenza. Ecco il concetto di volumi master e slave. In questo modo, se il master è inattivo, è possibile accedere a tutti i dati tramite lo slave. Questa funzionalità viene utilizzata per sincronizzare i dati tra server geograficamente separati. L'inizializzazione di una sessione di replica geografica richiede una serie di comandi gluster.

Di seguito è riportata la schermata seguente che mostra il modulo di replica geografica.

Collegamenti di riferimento

Home page di GlusterFS

Per ora è tutto!. Rimani aggiornato per la descrizione dettagliata di funzionalità come Auto-riparazione e ribilanciamento, Replica geografica, ecc. nei miei prossimi articoli.