GNU/Linux >> Linux Esercitazione >  >> Linux

Come installare DRBD su CentOS Linux

Cos'è DRBD?

DRBD (Distributed Replicated Block Device) è un pacchetto software per sistemi basati su Linux. Viene utilizzato per replicare i dispositivi di archiviazione da un nodo all'altro su una rete.

Può fornire assistenza per gestire il ripristino di emergenza e i failover. DRBD può essere inteso come un'elevata disponibilità per l'hardware e può essere visto come un sostituto dello storage di rete condiviso.

Come funziona DRBD?

Supponiamo di voler raggruppare una partizione di archiviazione su due sistemi CentOS, abbiamo bisogno di un dispositivo a blocchi (come /dev/sdb1) su entrambi i sistemi. Tali sistemi sono definiti come nodo primario e nodo secondario (possono cambiare nodo primario e secondario).

DRBD utilizza un dispositivo a blocchi virtuale (come drbd0) per condividere i dispositivi a blocchi /dev/sdb1 di entrambi i sistemi. Il nodo primario è quello in cui l'unità virtuale drbd0 è montata per scopi di lettura/scrittura.

Per prima cosa dobbiamo installare i pacchetti DRBD che vengono utilizzati per creare un disco virtuale drbd0. Possiamo formattarlo come filesystem xfs o ext3 per usare il dispositivo /dev/drbd0. Il dispositivo drbd0 è configurato per utilizzare i dispositivi a blocchi /dev/sdb1 su entrambi i sistemi. Ora lavoriamo solo sul dispositivo drbd0.

Poiché drbd0 può essere montato solo sul nodo primario, è possibile accedere al contenuto solo dal nodo primario alla volta. Ad ogni modo, se il sistema principale si arresta in modo anomalo, potremmo perdere i file di sistema, ma il dispositivo virtuale drbd0 sarà disponibile. Possiamo cambiare il nodo inizialmente secondario come primario e accedere nuovamente al suo contenuto.

Utilizzo di DRBD su CentOS

Questo tutorial è stato eseguito su CentOS 7 ma dovrebbe funzionare anche con altre versioni di CentOS. Leggi questo per sapere come controllare la versione di CentOS.

Requisiti

  • Due sistemi CentOS installati
  • Un dispositivo a blocchi gratuito come /dev/sdb1 su entrambi i sistemi (preferibilmente avere le stesse dimensioni)
  • Selinux Permissive o disabilitato
  • porta 7788 consentita sul firewall
  • I nodi devono trovarsi all'interno della stessa rete.

Installazione

Qui seguiamo l'installazione aggiungendo il repository epel poiché i pacchetti drbd non sono disponibili nelle distribuzioni CentOS.

$ rpm -ivh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

Aggiungi anche la chiave GPG su entrambi i nodi. GPG-key è la chiave pubblica utilizzata per crittografare la comunicazione tra i nodi.

$ rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-elrepo.org

Ora possiamo usare yum per installare i pacchetti drbd. Dobbiamo identificare le versioni drbd supportate dal nostro kernel. Controlla le versioni di drbd disponibili per il tuo kernel:

$ yum info *drbd* | grep Name

L'output è come:

Ora installa la versione richiesta di drbd insieme ai moduli del kernel necessari.

$ yum -y install drbd84-utils kmod-drbd84

Verifica se il modulo del kernel è caricato o meno.

$ lsmod | grep -i drbd

Se la risposta del comando precedente fornisce un output vuoto, i moduli del kernel non vengono caricati. Devi riavviare il sistema e provare:

$ modprobe drbd

modprobe è un comando che aggiunge o rimuove in modo intelligente moduli dal kernel Linux. Per caricare i moduli ad ogni avvio, systemd-modules-load viene utilizzato il servizio. Quindi, crea un file chiamato drbd.conf  all'interno di /etc/modulesload.d.

$ echo drbd > /etc/modules-load.d/drbd.conf

Configurazione DRBD

I file di configurazione DRBD si trovano in /etc/drbd.d/

Per impostazione predefinita, /etc/drbd.d/global_common.conf  è disponibile globale che contiene le configurazioni globali o principali. Altri file di configurazione sono chiamati file di risorse con estensione *.res.

Ora creiamo i file di configurazione delle risorse su entrambi i nodi per usare drbd per i nostri dispositivi a blocchi specificati.

Creiamo il file di risorse chiamato linuxhandbook.res

$ vi /etc/drbd.d/linuxhandbook.res

copia e incolla il contenuto seguente nel file di risorse

resource linuxhandbook {
protocol C;          
on node1 {
                device /dev/drbd0;
                disk /dev/sdb1;
                address 10.20.222.14:7788;
                meta-disk internal;
                }
on node2 {
                device /dev/drbd0;
                disk /dev/sdb1;
                address 10.20.222.15:7788;
                meta-disk internal;
                }
} 

Ecco,

  • linuxhandbook è il nome della risorsa. I nomi delle risorse devono essere sempre univoci.
  • Il protocollo C viene utilizzato per la comunicazione sincrona. È un protocollo di replica completamente sincrono. Altri protocolli disponibili sono il protocollo A e il protocollo B.
  1. protocollo A :Protocollo di replica asincrono. Generalmente preferito per i nodi in reti a lunga distanza.
  2. protocollo B :Protocollo di replica semisincrono. Chiamato anche protocollo sincrono di memoria.
  3. protocollo C :preferito per i nodi in reti a breve distanza.
  • nodo 1 e nodo2 sono il nome host dei singoli nodi. Utilizzare solo per identificare i blocchi.
  • device /dev/drbd0 è il dispositivo logico creato per essere utilizzato come  device.
  • il disco /dev/sdb1 è il dispositivo a blocchi fisico che drbd0 occuperà.
  • l'indirizzo 10.20.222.14:7788 e l'indirizzo 10.20.222.15:7788 sono gli indirizzi IP di due rispettivi nodi  con la porta tcp 7788 aperta.
  • il meta-disco interno viene utilizzato per definire di utilizzare i metadati interni del disco.

La configurazione deve essere la stessa su entrambi i nodi.

Ora, dobbiamo inizializzare l'archiviazione dei metadati su ciascun nodo:

$ drbdadm create-md linuxhandbook

Se viene visualizzato un messaggio di errore, è necessario creare manualmente un file di dati fittizio e successivamente il comando try sopra.

$ dd if=/dev/zero of=/dev/sdb1 bs=1024k count=1024

Il comando dd viene utilizzato per creare un file casuale della memoria specificata. Il comando create-md deve avere successo dopo.

Dopo aver reso utilizzabile il dispositivo logico, collegare il dispositivo drbd0 al disco sdb1 su entrambi i nodi. Vedi l'output di lsblk

$ lsblk

l'output dovrebbe essere così

In caso contrario, collegare il dispositivo drbd0 al disco sdb1 tramite il file di risorse.

$ drbdadm attach linuxhandbook
or
$ drbdadm up linuxhandbook

Once again try,
$ lsblk

Avvia e abilita il servizio drbd su entrambi i nodi.

$ systemctl start drbd
$ systemctl enable drbd

Se drbd start può essere veloce per un nodo e richiedere del tempo per un altro nodo.

Configurazione di nodi primari e secondari

DRDB utilizza solo un nodo alla volta come nodo primario in cui è possibile eseguire la lettura e la scrittura.

Per prima cosa specificheremo il nodo 1 come nodo primario.

$ drbdadm primary linuxhandbook --force

Controlla lo stato del processo drbd:

$ cat /proc/drbd 
or 
$ drbd-overview

L'output è simile a:

Qui, le informazioni che possiamo ottenere sono:

  • attualmente quale nodo è primario e quale secondario.
  • il processo di sincronizzazione dei dati.
  • Stato del dispositivo drbd come:Incoerente, Aggiornato, Senza disco.

Un altro nodo, node2, viene impostato automaticamente come nodo secondario. Vedi lo stato del processo di panoramica di drbd.

Il passaggio principale che non abbiamo ancora eseguito è formattare il dispositivo drbd0. Questo può essere fatto solo su uno dei nodi.

Qui formattiamo drbd0 come ext3 con il comando mkfs. funziona anche il file system xfs. È meglio usare lo stesso tipo di disco di /dev/sdb1.

$ mkfs -t ext3 /dev/drbd0

Ora,  di nuovo nel nodo primario (ad esempio, è il nodo 1 in questo tutorial) dobbiamo montare il dispositivo drbd0 per poterci lavorare.

$ mount /dev/drbd0  /mnt 

you can select your required mount point instead of /mnt. for example, I can mount the /dev/drbd0 device to /var/lib/mysql to use it for mysql database drbd.

NOTA :Ricorda sempre il processo. Innanzitutto, dovresti rendere il nodo primario per DRBD. Quindi monta il dispositivo drbd0 sul tuo sistema e ti è permesso eseguire azioni sul dispositivo. Senza rendere il nodo primario non è possibile montare il dispositivo drb0 non può utilizzare il contenuto di quel dispositivo.

Test del processo DRBD

Dopo che drbd è stato impostato su entrambi i nodi e un nodo è diventato primario. Abbiamo montato il dispositivo nella posizione /mnt. Ora crea un file per testare la sincronizzazione dei nodi drbd.

$ touch  /mnt/drbdtest.txt
$ ll /mnt/

Successivamente, imposteremo node1 come secondary e node2 come primary. Il processo è analogamente rispecchiato. Al nodo 1 (al nodo primario dell'istanza), smonta il dispositivo /dev/drbd0, rendilo secondario. Al nodo2 (al nodo secondario dell'istanza), rendilo nodo primario e monta nella posizione richiesta.

al nodo 1:

$ umount  /mnt
$ drbdadm secondary linuxhandbook

al nodo 2:

$ drbdadm primary linuxhandbook
$ mount /dev/drbd0  /mnt

Dopo aver eseguito correttamente il montaggio su node2, controllare i file nella cartella /mnt. Devi vedere il file drbdtest.txt (creato su node1).

$ ll  /mnt/

Se desideri avere un'interfaccia GUI per gestire e visualizzare i nodi del cluster drbd, puoi utilizzare LCMC (Linux Cluster Management Console).

Questo è tutto! Hai implementato con successo DRBD nel tuo sistema. Se rimangono domande, puoi commentare di seguito nella sezione commenti.

Autore :Rishi Raj Gautam è un amante di Linux e un attivista open source.


Linux
  1. Come eseguire il debootstrap su CentOS Linux

  2. Come installare Erlang su Rocky Linux/Alma Linux/CentOS 8

  3. Come installare Ansible su CentOS 8 Linux

  4. Come installare PHP 8 su CentOS 8 Linux

  5. Come installare Linux Kernel 5.0 su CentOS 7

Come installare R su CentOS 7

Come installare R su CentOS 8

Come installare Webmin su CentOS Linux

Come installare JIRA su CentOS 8 Linux

Come aggiornare CentOS 7 a CentOS 8 Linux

Come installare Java 14 su Linux, Ubuntu, CentOS