GNU/Linux >> Linux Esercitazione >  >> Linux

Inizia con GlusterFS:considerazioni e installazione

Questo articolo è stato aggiornato per coprire l'installazione di GlusterFS® 7 su CentOS® 7 e Ubuntu® 18.04. Tutto il lavoro originale in questo documento è lo stesso, ad eccezione del passaggio in cui crei il volume con la replica parola chiave.

Prima di iniziare a utilizzare GlusterFS, devi decidere quale tipo di volume ti serve per il tuo ambiente. I seguenti metodi vengono utilizzati più spesso per ottenere risultati diversi.

Volume replicato

Questo tipo di volume fornisce la replica dei file su più mattoni. È la scelta migliore per gli ambienti che richiedono disponibilità elevata, affidabilità elevata e storage scalabile. Questo tipo di volume funziona bene se prevedi di montare automaticamente il volume GlusterFS, ad esempio, come root del documento del server Web (/var/www ) o simili in cui tutti i file devono risiedere su quel nodo. Il valore passato a replica è lo stesso numero di nodi nel volume.

I file vengono copiati in ogni mattone del volume, in modo simile a un array ridondante di dischi indipendenti (RAID-1). Tuttavia, puoi avere tre o più mattoni o un numero dispari di mattoni. Lo spazio utilizzabile ha le dimensioni di un mattone e tutti i file scritti su un mattone vengono replicati su tutti gli altri. I volumi di questo tipo offrono anche prestazioni di lettura migliorate nella maggior parte degli ambienti e sono il tipo più comune di volume utilizzato quando i client sono esterni ai nodi GlusterFS stessi.

Volume distribuito con replica

Simile a un RAID-10, è necessario utilizzare un numero pari di mattoni. Lo spazio utilizzabile è la dimensione dei mattoni combinati passati alla replica valore. Ad esempio, se sono presenti quattro mattoni da 20 Gigabyte (GB) e superi la replica 2 alla creazione, i tuoi file vengono distribuiti su due nodi (40 GB) e replicati su due nodi. Con sei mattoncini da 20 GB e replica 3 , i tuoi file vengono distribuiti su tre nodi (60 GB) e replicati su tre nodi. Se hai utilizzato la replica 2, vengono quindi distribuiti su due nodi (40 GB) e replicati su quattro nodi in coppia. Questa distribuzione e replica vengono utilizzate quando i client sono esterni al cluster, non automontanti locali.

Prerequisiti

  • Due o più server con storage separato. Gli esempi in questo articolo sono basati sui server CentOS 7 e Ubuntu 18.04.
  • Una rete privata tra server. Gli esempi in questo articolo usano 192.168.0.0/24 .

Impostazione build

La build descritta in questo documento utilizza la seguente configurazione:

  • Quattro immagini del server Rackspace Cloud con un /dev/xvde partizione pronta all'uso per ogni mattone
  • Una rete privata cloud su 192.168.0.0/24 per la comunicazione GlusterFS
  • GlusterFS 7.1 installato dal repository del pacchetto del fornitore

Preparazione dei server

Eseguire la configurazione e le installazioni seguenti per preparare i server:

  1. Configura /etc/hosts .
  2. Installa gli aggiornamenti del sistema operativo (OS).
  3. Installa il software GlusterFS.
  4. Configura l'accesso alla rete.
  5. Collega i nodi GlusterFS.

Configura /etc/hosts per la comunicazione intra-nodo

Invece di usare il DNS, prepara /etc/hosts su ogni server e assicurarsi che i server possano comunicare tra loro. Tutti i server hanno il nome glusterN come nome host, quindi usa glusN per il livello di comunicazione privato tra i server.

# vi /etc/hosts
192.168.0.1  glus-01
192.168.0.2  glus-02
192.168.0.3  glus-03
192.168.0.4  glus-04

# ping -c2 glus-01; ping -c2 glus-02;  ping -c2 glus-03;  ping -c2 glus-04

Installa i pacchetti

Esegui i comandi in questa sezione per eseguire i seguenti passaggi:

  1. Installa gli aggiornamenti del sistema operativo.
  2. Installa il repository GlusterFS e i pacchetti GlusterFS.

CentOS

yum update -y
yum install -y centos-release-gluster7
yum install -y glusterfs-server

Sistema operativo Ubuntu

Il repository Ubuntu predefinito ha GlusterFS 3.13.2 installato. Utilizzare i seguenti comandi per installare 7.1:

apt update
apt upgrade -y
add-apt-repository -y ppa:gluster/glusterfs-7
apt install -y glusterfs-server

Configura l'accesso alla rete

CentOS

Utilizza i seguenti comandi per consentire il traffico Gluster tra i tuoi nodi e consentire i montaggi dei client:

firewall-cmd --add-service=glusterfs
firewall-cmd --add-service=glusterfs --permanent

Sistema operativo Ubuntu

Utilizza i seguenti comandi per consentire a tutto il traffico sul tuo segmento di rete privata di facilitare la comunicazione Gluster:

ufw enable
ufw allow from 192.168.0.0/24

Prepara i mattoni

Esegui i comandi in questa sezione per eseguire i seguenti passaggi:

  1. Dispositivi di blocco delle partizioni.
  2. Crea la base del gestore del volume logico (LVM).
  3. Prepara i mattoncini volumetrici.

I mattoni sottostanti sono un file system standard e un punto di montaggio. Monta ogni mattone in modo tale da scoraggiare qualsiasi utente dal passare alla directory e scrivere sui mattoni sottostanti stessi.

Avviso: Scrivere direttamente su un mattone danneggia il volume.

I mattoni devono essere univoci per nodo e dovrebbe esserci una directory all'interno del punto di montaggio da utilizzare nella creazione del volume. Il tentativo di creare un volume replicato utilizzando il livello superiore dei punti di montaggio genera un errore con le istruzioni per utilizzare una sottodirectory.

Tutti i nodi

parted -s -- /dev/xvde mktable gpt
parted -s -- /dev/xvde mkpart primary 2048s 100%
parted -s -- /dev/xvde set 1 lvm on
pvcreate /dev/xvde1
vgcreate vgglus-01 /dev/xvde1
lvcreate -l 100%VG -n gbrick1 vgglus-01
mkfs.xfs /dev/vgglus-01/gbrick1
echo '/dev/vgglus-01/gbrick1 /var/lib/gvol0 xfs defaults 0 0' >> /etc/fstab
mkdir /var/lib/gvol0
mount /var/lib/gvol0
  • glus-01

     mkdir /var/lib/gvol0/brick1
    
  • glus-02

     mkdir /var/lib/gvol0/brick2
    
  • glus-03

     mkdir /var/lib/gvol0/brick3
    
  • glus-04

     mkdir /var/lib/gvol0/brick4
    

Imposta GlusterFS

Utilizzare i passaggi seguenti per eseguire l'installazione di GlusterFS.

Avvia il demone glusterfsd

Puoi riavviare il demone in fase di esecuzione utilizzando i seguenti comandi:

systemctl enable glusterd
systemctl start glusterd

Crea un gruppo di pari

Un gruppo di peer è noto come pool di archiviazione attendibile in GlusterFS.

  • glus-01

    gluster peer probe glus-02
    gluster peer probe glus-03
    gluster peer probe glus-04
    gluster peer status
    
  • glus-02

    gluster peer status
    
  • glus-03

    gluster peer status
    
  • glus-04

    gluster peer status
    

Ora puoi verificare lo stato del tuo nodo e del pool di server gluster:

[root@gluster1 ~]# gluster pool list
UUID	                				Hostname	State
734aea4c-fc4f-4971-ba3d-37bd5d9c35b8	glus-04   	Connected
d5c9e064-c06f-44d9-bf60-bae5fc881e16	glus-03   	Connected
57027f23-bdf2-4a95-8eb6-ff9f936dc31e	glus-02   	Connected
e64c5148-8942-4065-9654-169e20ed6f20	localhost	Connected

Crea il volume

Per impostazione predefinita, glusterd NFS consente la lettura/scrittura globale durante la creazione del volume, quindi è necessario impostare restrizioni di autorizzazione di base solo per la sottorete privata. glusterd avvia automaticamente NFSd su ciascun server ed esporta il volume attraverso di esso da ciascuno dei nodi. La ragione di questo comportamento è che per utilizzare il client nativo Filesystem in Userspace (FUSE) per montare il volume sui client, i client devono eseguire esattamente la stessa versione dei pacchetti GlusterFS. Se le versioni sono diverse, potrebbero esserci differenze negli algoritmi di hashing utilizzati da server e client e i client non saranno in grado di connettersi.

Volume replicato

L'esempio seguente crea la replica su tutti e quattro i nodi. Ogni nodo contiene una copia di tutti i dati e la dimensione del volume è la dimensione di un singolo mattone. Nota che l'output mostra 1 x 4 = 4 .

Un solo nodo :

 gluster volume create gvol0 replica 4 transport tcp \
 glus-01:/var/lib/gvol0/brick1 \
 glus-02:/var/lib/gvol0/brick2 \
 glus-03:/var/lib/gvol0/brick3 \
 glus-04:/var/lib/gvol0/brick4
 gluster volume start gvol0

[root@gluster1 ~]# gluster volume info gvol0

Volume Name: gvol0
Type: Replicate
Volume ID: 8d12cb5a-77ad-43a3-bdd1-ab48405ff1da
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 4 = 4
Transport-type: tcp
Bricks:
Brick1: glus-01:/var/lib/gvol0/brick1
Brick2: glus-02:/var/lib/gvol0/brick2
Brick3: glus-03:/var/lib/gvol0/brick3
Brick4: glus-04:/var/lib/gvol0/brick4
Options Reconfigured:
transport.address-family: inet
storage.fips-mode-rchecksum: on
performance.client-io-threads: off

Volume distribuito-replicato

Questo esempio crea una replica distribuita su nodi 2x2. Ogni coppia di nodi contiene i dati e la dimensione del volume è la dimensione di due mattoni. Nota che l'output mostra 2 x 2 = 4 .

Un solo nodo :

gluster volume create gvol0 replica 2 transport tcp \
glus-01:/var/lib/gvol0/brick1 \
glus-02:/var/lib/gvol0/brick2 \
glus-03:/var/lib/gvol0/brick3 \
glus-04:/var/lib/gvol0/brick4
gluster volume start gvol0

[root@gluster1 ~]# gluster volume info gvol0

Volume Name: gvol0
Type: Distributed-Replicate
Volume ID: b2ddd34b-ffb4-4fd8-ae60-b90adbd4c2ab
Status: Started
Snapshot Count: 0
Number of Bricks: 2 x 2 = 4
Transport-type: tcp
Bricks:
Brick1: glus-01:/var/lib/gvol0/brick1
Brick2: glus-02:/var/lib/gvol0/brick2
Brick3: glus-03:/var/lib/gvol0/brick3
Brick4: glus-04:/var/lib/gvol0/brick4
Options Reconfigured:
transport.address-family: inet
storage.fips-mode-rchecksum: on
performance.client-io-threads: off

Elimina il volume

Dopo esserti assicurato che nessun client (locale o remoto) stia montando il volume, puoi arrestare il volume ed eliminarlo utilizzando i seguenti comandi:

gluster volume stop gvol0
gluster volume delete gvol0

Pulizia dei mattoni

Se i mattoni vengono utilizzati in un volume e devono essere rimossi, puoi utilizzare uno dei seguenti metodi:

GlusterFS imposta un attributo nelle sottodirectory brick. Se cancelli questo attributo, i mattoni possono essere riutilizzati.

  • glus-01:

    setfattr -x trusted.glusterfs.volume-id /var/lib/gvol0/brick1/setfattr -x trusted.gfid /var/lib/gvol0/brick1rm -rf /var/lib/gvol0/brick1/.glusterfs

  • glus-02:

    setfattr -x trusted.glusterfs.volume-id /var/lib/gvol0/brick2/setfattr -x trusted.gfid /var/lib/gvol0/brick2rm -rf /var/lib/gvol0/brick2/.glusterfs

  • glus-03:

    setfattr -x trusted.glusterfs.volume-id /var/lib/gvol0/brick3/setfattr -x trusted.gfid /var/lib/gvol0/brick3rm -rf /var/lib/gvol0/brick3/.glusterfs

  • glus-04:

    setfattr -x trusted.glusterfs.volume-id /var/lib/gvol0/brick4/setfattr -x trusted.gfid /var/lib/gvol0/brick4rm -rf /var/lib/gvol0/brick4/.glusterfs

In alternativa, puoi eliminare le sottodirectory e poi ricrearle.

  • glus-01

    rm -rf /var/lib/gvol0/brick1mkdir /var/lib/gvol0/brick1

  • glus-02:

    rm -rf /var/lib/gvol0/brick2mkdir /var/lib/gvol0/brick2

  • glus-03:

    rm -rf /var/lib/gvol0/brick3mkdir /var/lib/gvol0/brick3

  • glus-04:

    rm -rf /var/lib/gvol0/brick4mkdir /var/lib/gvol0/brick4

Aggiungi mattoni

Puoi aggiungere più mattoni a un volume in esecuzione. Aggiungi un mattone aggiuntivo al nostro esempio di volume replicato sopra utilizzando il comando seguente:

gluster volume add-brick gvol0 replica 5 gluster5:/var/lib/gvol0/brick5

Puoi usare il add-brick comando per modificare il layout del volume, ad esempio per modificare un volume distribuito a due nodi in un volume replicato distribuito a quattro nodi. Dopo tale operazione, è necessario ribilanciare il volume. I nuovi file vengono creati automaticamente sui nuovi nodi, ma i vecchi non vengono spostati.

gluster volume add-brick gvol0 replica 2 \
gluster5:/var/lib/gvol0/brick5 ;
gluster6:/var/lib/gvol0/brick6
gluster volume rebalance gvol0 start
gluster volume rebalance gvol0 status

## If needed (something didn't work right)
gluster volume rebalance gvol0 stop

Opzioni volume

Per visualizzare le opzioni del volume configurate, eseguire il comando seguente:

gluster volume info gvol0

Quello che segue è un esempio di output:

Volume Name: gvol0
Type: Replicate
Volume ID: 8d12cb5a-77ad-43a3-bdd1-ab48405ff1da
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 4 = 4
Transport-type: tcp
Bricks:
Brick1: glus-01:/var/lib/gvol0/brick1
Brick2: glus-02:/var/lib/gvol0/brick2
Brick3: glus-03:/var/lib/gvol0/brick3
Brick4: glus-04:/var/lib/gvol0/brick4
Options Reconfigured:
transport.address-family: inet
storage.fips-mode-rchecksum: on
performance.client-io-threads: off

Per impostare un'opzione per un volume, usa il set parola chiave come segue:

gluster volume set gvol0 performance.write-behind off
volume set: success

Per ripristinare l'impostazione predefinita di un'opzione per un volume, utilizza il ripristino parola chiave come segue:

gluster volume reset gvol0 performance.read-ahead
volume reset: success: reset volume successful

Client monta

Il metodo preferito per un client per montare un volume GlusterFS consiste nell'usare il client FUSE nativo. I supporti NFS sono possibili quando GlusterFS viene distribuito in tandem con NFS-Ganesha®.

Client FUSE

Il client FUSE consente che il montaggio avvenga con una connessione in stile "round robin" GlusterFS. In /etc/fstab , viene utilizzato il nome di un nodo. Tuttavia, i meccanismi interni consentono a quel nodo di fallire e i client passano ad altri nodi connessi nel pool di archiviazione attendibile.

CentOS :

yum install -y centos-release-gluster7
yum install -y glusterfs-fuse

Ubuntu :

add-apt-repository -y ppa:gluster/glusterfs-7
apt install glusterfs-client

Comune :

vi /etc/hosts
192.168.0.2  glus-01
192.168.0.4  glus-02
192.168.0.1  glus-03
192.168.0.3  glus-04

`modprobe fuse
 echo 'glus-01:/gvol0 /mnt/gluster/gvol0 glusterfs _netdev 0 0' >> /etc/fstab
 mkdir -p /mnt/gluster/gvol0
 mount /mnt/gluster/gvol0`

Riferimenti

  • https://www.gluster.org/announcing-gluster-7-0/
  • https://docs.gluster.org/en/latest/
  • https://wiki.centos.org/HowTos/GlusterFSonCentOS
  • https://kifarunix.com/install-and-setup-glusterfs-on-ubuntu-18-04/
  • https://launchpad.net/~gluster

Articolo successivo

Risoluzione dei problemi di GlusterFS


Linux
  1. Come hai iniziato con Linux?

  2. Inizia con i server cloud

  3. Inizia con Magento su Debian 10

  4. Inizia con Tasksel su Debian

  5. Inizia con Latex su Linux

Inizia con GNUPlot

Tutorial Podman - Inizia con Podman

Come installare e iniziare con Itch su Ubuntu Linux

Come iniziare con Arch Linux

Installazione e primi passi con Git

Come iniziare con Midnight Commander nel 2022