GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come configurare l'archiviazione GlusterFS su CentOS 7 / RHEL 7

GlusterFS è una soluzione di archiviazione di file e oggetti gratuita e open source che può essere utilizzata su server fisici, virtuali e cloud sulla rete. Il vantaggio principale di GlusterFS è che possiamo aumentare o ridurre lo storage fino a più petabyte senza tempi di inattività, inoltre fornisce la ridondanza e l'elevata disponibilità dello storage.

Dove usare GluserFS... ?

Lo storage basato su GllusterFS può essere utilizzato in server fisici, virtuali e cloud sulla rete.

Può essere utilizzato anche nelle aziende in cui fornivano contenuti multimediali o di altro tipo agli utenti di Internet e devono gestire centinaia di terabyte di file.

GlusterFS può essere utilizzato anche come Object Storage in cloud privato e pubblico.

Diversa terminologia utilizzata nello storage GlusterFS :

  • Pool di archiviazione affidabile :è un gruppo di più server che si fidano l'uno dell'altro e formano un cluster di archiviazione.
  • Nodo :Un nodo è un server di archiviazione che partecipa al pool di archiviazione attendibile
  • Mattone :Un mattone è un file system XFS (inode a 512 byte) basato su LVM montato su una cartella o una directory.
  • Volume :Un volume è un file system presentato o condiviso ai client sulla rete. Un volume può essere montato usando i metodi glusterfs, nfs e smbs.
Diversi tipi di volumi che possono essere configurati utilizzando GlusterFS :
  • Distribuisci volumi :È il volume predefinito che viene creato quando non viene specificata alcuna opzione durante la creazione del volume. In questo tipo di volume i file verranno distribuiti tra i mattoni utilizzando l'algoritmo hash elastico
  • Volumi replica :come suggerisce il nome, in questo tipo di volume i file verranno replicati o rispecchiati sui mattoncini, in altre parole un file scritto in un mattoncino verrà replicato anche su un altro mattoncino.
  • Volumi a righe : In questo tipo di volume i file più grandi vengono tagliati o divisi in blocchi e quindi distribuiti sui mattoni.
  • Distribuisci volumi di replica :Come suggerisce il nome in tipo di volume, i file verranno prima distribuiti tra i mattoncini e poi replicati su diversi mattoncini.

Sebbene sia possibile provare altre combinazioni per formare volumi diversi come la replica a strisce.

In questo articolo dimostrerò come configurare GlusterFS Storage su RHEL 7.x e CentOS 7.x. Nel mio caso, prendo quattro server RHEL 7 / CentOS 7 con un'installazione minima e presumo che un disco aggiuntivo sia collegato a questi server per l'installazione di glustesfs.

  • server1.example.com (192.168.43.10 )
  • server2.example.com ( 192.168.43.20 )
  • server3.example.com ( 192.168.43.30 )
  • server4.example.com ( 192.168.43.40 )

Aggiungi le seguenti righe nel file /etc/hosts nel caso tu abbia il tuo server DNS.

192.168.43.10  server1.example.com server1
192.168.43.20  server2.example.com server2
192.168.43.30  server3.example.com server3
192.168.43.40  server4.example.com server4

Installa i pacchetti server Glusterfs su tutti i server.

I pacchetti Glusterfs non sono inclusi nei repository centos e RHEL predefiniti, quindi configureremo il repository gluster e il repository EPEL. Esegui i seguenti comandi uno dopo l'altro su tutti e 4 i server.

~]# yum install wget
~]# yum install centos-release-gluster -y
~]#yum install epel-release -y
~]# yum install glusterfs-server -y

Avvia e abilita il servizio GlusterFS su tutti e quattro i server.

~]# systemctl start glusterd
~]# systemctl enable glusterd

Consenti le porte nel firewall in modo che i server possano comunicare e formare un cluster di archiviazione (pool attendibile). Esegui i comandi seguenti su tutti e 4 i server.

~]# firewall-cmd --zone=public --add-port=24007-24008/tcp --permanent
~]# firewall-cmd --zone=public --add-port=24009/tcp --permanent
~]# firewall-cmd --zone=public --add-service=nfs --add-service=samba --add-service=samba-client --permanent
~]# firewall-cmd --zone=public --add-port=111/tcp --add-port=139/tcp --add-port=445/tcp --add-port=965/tcp --add-port=2049/tcp --add-port=38465-38469/tcp --add-port=631/tcp --add-port=111/udp --add-port=963/udp --add-port=49152-49251/tcp --permanent
~]# firewall-cmd --reload

Impostazione del volume di distribuzione:

Formerò un pool di archiviazione affidabile che consiste nel server 1 e nel server 2 e creerò dei mattoni su quello e successivamente creerà un volume distribuito. Presumo anche che un disco grezzo da 16 GB (/dev/sdb) sia allocato a entrambi i server.

Eseguire il comando seguente dalla console del server 1 per formare un pool di archiviazione attendibile con il server 2.

[[email protected] ~]# gluster peer probe server2.example.com
peer probe: success.
[[email protected] ~]#

Possiamo controllare lo stato del peer usando il comando seguente:

[[email protected] ~]# gluster peer status
Number of Peers: 1

Hostname: server2.example.com
Uuid: 9ef0eff2-3d96-4b30-8cf7-708c15b9c9d0
State: Peer in Cluster (Connected)
[[email protected] ~]#

Crea mattone sul server 1

Per creare prima il mattone, dobbiamo prima impostare il provisioning dei volumi logici sul disco grezzo (/dev/sdb).

Esegui i seguenti comandi sul Server 1

[[email protected] ~]# pvcreate /dev/sdb /dev/vg_bricks/dist_brick1 /bricks/dist_brick1 xfs rw,noatime,inode64,nouuid 1 2
[[email protected] ~]# vgcreate vg_bricks /dev/sdb
[[email protected] ~]# lvcreate -L 14G -T vg_bricks/brickpool1

Nel comando precedente brickpool1 è il nome di thin pool.

Ora crea un volume logico di 3 GB

[[email protected] ~]# lvcreate -V 3G -T vg_bricks/brickpool1 -n dist_brick1

Ora formatta il volume logico usando il file system xfs

[[email protected] ~]# mkfs.xfs -i size=512 /dev/vg_bricks/dist_brick1
[[email protected] ~]# mkdir -p /bricks/dist_brick1

Monta il mattone usando il comando mount

[[email protected] ~]# mount /dev/vg_bricks/dist_brick1 /bricks/dist_brick1/

Per montarlo in modo permanente aggiungi la seguente riga in /etc/fsatb

/dev/vg_bricks/dist_brick1 /bricks/dist_brick1 xfs rw,noatime,inode64,nouuid 1 2

crea una directory con brick sotto il punto di montaggio

[[email protected] ~]# mkdir /bricks/dist_brick1/brick

Allo stesso modo, esegui la seguente serie di comandi sul server 2

[[email protected] ~]# pvcreate /dev/sdb ; vgcreate vg_bricks /dev/sdb
[[email protected] ~]# lvcreate -L 14G -T vg_bricks/brickpool2
[[email protected] ~]# lvcreate -V 3G -T vg_bricks/brickpool2 -n dist_brick2
[[email protected] ~]# mkfs.xfs -i size=512 /dev/vg_bricks/dist_brick2
[[email protected] ~]# mkdir -p /bricks/dist_brick2
[[email protected] ~]# mount /dev/vg_bricks/dist_brick2 /bricks/dist_brick2/
[[email protected] ~]# mkdir /bricks/dist_brick2/brick

Crea un volume distribuito utilizzando il comando gluster di seguito :

[[email protected] ~]# gluster volume create distvol server1.example.com:/bricks/dist_brick1/brick server2.example.com:/bricks/dist_brick2/brick
[[email protected] ~]# gluster volume start distvol
volume start: distvol: success
[[email protected] ~]#

Verifica lo stato del volume utilizzando il seguente comando:

[[email protected] ~]# gluster volume info distvol

Monta Distribuisci volume sul client :

Prima di montare il volume usando glusterfs dobbiamo prima assicurarci che il pacchetto glusterfs-fuse sia installato sul client. Assicurati anche di aggiungere le voci del server di archiviazione gluster nel file /etc/hosts nel caso in cui non disponi di un server DNS locale.

Accedi al client ed esegui il comando seguente dalla console per installare glusterfs-fuse

[[email protected] ~]# yum install glusterfs-fuse -y

Crea un supporto per distribuire il volume :

[[email protected] ~]# mkdir /mnt/distvol

Ora monta il "distvol ' usando il comando di montaggio sotto:

[[email protected] ~]# mount -t glusterfs -o acl server1.example.com:/distvol /mnt/distvol/

Per il montaggio permanente aggiungi la voce seguente nel file /etc/fstab

server1.example.com:/distvol   /mnt/distvol    glusterfs     _netdev    0 0

Esegui il comando df per verificare lo stato di montaggio del volume.

Ora inizia ad accedere al volume “distvol

Impostazione volume replica:

Per la configurazione del volume di replica utilizzerò il server 3 e il server 4 e presumo che il disco aggiuntivo (/dev/sdb ) per glusterfs sia già assegnato ai server. Fare riferimento ai seguenti passaggi:

Aggiungi il server 3 e il server 4 nel pool di archiviazione attendibile

[[email protected] ~]# gluster peer probe server3.example.com
peer probe: success.
[[email protected] ~]# gluster peer probe server4.example.com
peer probe: success.
[[email protected] ~]#

Crea e monta il mattoncino sul Server 3. Esegui i comandi sotto uno dopo l'altro.

[[email protected] ~]# pvcreate /dev/sdb ; vgcreate vg_bricks /dev/sdb
[[email protected] ~]# lvcreate -L 14G -T vg_bricks/brickpool3
[[email protected] ~]# lvcreate -V 3G -T vg_bricks/brickpool3 -n shadow_brick1
[[email protected] ~]# mkfs.xfs -i size=512 /dev/vg_bricks/shadow_brick1
[[email protected] ~]# mkdir -p /bricks/shadow_brick1
[[email protected] ~]# mount /dev/vg_bricks/shadow_brick1 /bricks/shadow_brick1/
[[email protected] ~]# mkdir /bricks/shadow_brick1/brick

Esegui la voce seguente nel file /etc/fstab per il montaggio permanente dei mattoni:

/dev/vg_bricks/shadow_brick1  /bricks/shadow_brick1/  xfs  rw,noatime,inode64,nouuid 1 2

Allo stesso modo, esegui gli stessi passaggi sul server 4 per la creazione e il montaggio del mattone:

[[email protected] ~]# pvcreate /dev/sdb ; vgcreate vg_bricks /dev/sdb
[[email protected] ~]# lvcreate -L 14G -T vg_bricks/brickpool4
[[email protected] ~]# lvcreate -V 3G -T vg_bricks/brickpool4 -n shadow_brick2
[[email protected] ~]# mkfs.xfs -i size=512 /dev/vg_bricks/shadow_brick2
[[email protected] ~]# mkdir -p /bricks/shadow_brick2
[[email protected] ~]# mount /dev/vg_bricks/shadow_brick2 /bricks/shadow_brick2/
[[email protected] ~]# mkdir /bricks/shadow_brick2/brick

Per il montaggio permanente del mattone, fai la voce fstab.

Crea volume replicato utilizzando il comando gluster di seguito .

[[email protected] ~]# gluster volume create shadowvol replica 2 server3.example.com:/bricks/shadow_brick1/brick server4.example.com:/bricks/shadow_brick2/brick
volume create: shadowvol: success: please start the volume to access data
[[email protected] ~]# gluster volume start shadowvol
volume start: shadowvol: success
[[email protected] ~]#

Verifica le informazioni sul volume usando il comando gluster sotto:

[[email protected] ~]# gluster volume info shadowvol

Se vuoi accedere a questo volume “shadowvol ” tramite nfs impostare quanto segue:

[[email protected] ~]# gluster volume set shadowvol nfs.disable off

Monta il volume Replicate sul client tramite nfs

Prima di montare, crea prima un punto di montaggio.

[[email protected] ~]# mkdir /mnt/shadowvol

Nota:una delle limitazioni nello storage gluster è che il server GlusterFS supporta solo la versione 3 del protocollo NFS.

Aggiungi la voce seguente nel file "/etc/nfsmount.conf ” su entrambi i server di archiviazione (Server 3 e Server 4)

Defaultvers=3

Dopo aver eseguito la voce precedente, riavviare entrambi i server una volta. Utilizzare il comando mount di seguito sul volume "shadowvol

[[email protected] ~]# mount -t nfs -o vers=3 server4.example.com:/shadowvol /mnt/shadowvol/

Per il montaggio permanente aggiungi la seguente voce nel file /etc/fstab

server4.example.com:/shadowvol  /mnt/shadowvol/  nfs vers=3  0 0

Verifica le dimensioni e lo stato di montaggio del volume :

[[email protetta] ~]# df -Th

Impostazione del volume di distribuzione e replica:

Per configurare il volume Distribute-Replicate userò un mattone da ciascun server e formerò il volume. Creerò il volume logico dal thin pool esistente sui rispettivi server.

Crea un mattone su tutti e 4 i server usando i comandi sotto

Server 1

[[email protected] ~]# lvcreate -V 3G -T vg_bricks/brickpool1 -n prod_brick1
[[email protected] ~]# mkfs.xfs -i size=512 /dev/vg_bricks/prod_brick1
[[email protected] ~]# mkdir -p /bricks/prod_brick1
[[email protected] ~]# mount /dev/vg_bricks/prod_brick1 /bricks/prod_brick1/
[[email protected] ~]# mkdir /bricks/prod_brick1/brick

Server 2

[[email protected] ~]# lvcreate -V 3G -T vg_bricks/brickpool2 -n prod_brick2
[[email protected] ~]# mkfs.xfs -i size=512 /dev/vg_bricks/prod_brick2
[[email protected] ~]# mkdir -p /bricks/prod_brick2
[[email protected] ~]# mount /dev/vg_bricks/prod_brick2 /bricks/prod_brick2/
[[email protected] ~]# mkdir /bricks/prod_brick2/brick

 Server 3

[[email protected] ~]# lvcreate -V 3G -T vg_bricks/brickpool3 -n prod_brick3
[[email protected] ~]# mkfs.xfs -i size=512 /dev/vg_bricks/prod_brick3
[[email protected] ~]# mkdir -p /bricks/prod_brick3
[[email protected] ~]# mount /dev/vg_bricks/prod_brick3 /bricks/prod_brick3/
[[email protected] ~]# mkdir /bricks/prod_brick3/brick

 Server 4

[[email protected] ~]# lvcreate -V 3G -T vg_bricks/brickpool4 -n prod_brick4
[[email protected] ~]# mkfs.xfs -i size=512 /dev/vg_bricks/prod_brick4
[[email protected] ~]# mkdir -p /bricks/prod_brick4
[[email protected] ~]# mount /dev/vg_bricks/prod_brick4 /bricks/prod_brick4/
[[email protected] ~]# mkdir /bricks/prod_brick4/brick

Ora crea un volume con il nome "dist-rep-vol ” usando il comando gluster sotto:

[[email protected] ~]# gluster volume create dist-rep-vol replica 2 server1.example.com:/bricks/prod_brick1/brick server2.example.com:/bricks/prod_brick2/brick server3.example.com:/bricks/prod_brick3/brick server4.example.com:/bricks/prod_brick4/brick force
[[email protected] ~]# gluster volume start dist-rep-vol

Verifica le informazioni sul volume usando il comando seguente:

[[email protected] ~]# gluster volume info dist-rep-vol

In questo volume i primi file verranno distribuiti su due mattoncini qualsiasi e poi i file verranno replicati nei restanti due mattoncini.

Ora monta questo volume sulla macchina client tramite gluster

creiamo prima il punto di montaggio per questo volume :

[[email protected] ~]# mkdir  /mnt/dist-rep-vol
[[email protected] ~]# mount.glusterfs server1.example.com:/dist-rep-vol /mnt/dist-rep-vol/

Aggiungi sotto la voce in fstab per l'ingresso permanente

server1.example.com:/dist-rep-vol /mnt/dist-rep-vol/  glusterfs   _netdev 0 0

Verifica la dimensione e il volume usando il comando df :

Questo è tutto. Spero che ti siano piaciuti i passaggi di configurazione dello storage gluster.


Cent OS
  1. Come configurare il server SysLog su CentOS 7 / RHEL 7

  2. Come configurare il server NFS su CentOS 7 / RHEL 7

  3. Come configurare Icinga Web 2 su CentOS 7 / RHEL 7

  4. Come configurare il server SVN su CentOS, RHEL e Fedora

  5. Come configurare un server proxy squid su CentOS/RHEL 7

Come configurare il cluster ad alta disponibilità su CentOS 7 / RHEL 7

Installa e configura GlusterFS su CentOS 7 / RHEL 7

Come configurare uno Chef 12 su CentOS 7 / RHEL 7

Come configurare l'accesso senza password SSH su CentOS 8 / RHEL 8

Come configurare il server SysLog centralizzato su CentOS 8 / RHEL 8

Come impostare la replica MySQL in RHEL/Centos