La traduzione dell'articolo è stata preparata alla vigilia dell'inizio del corso
DRBD (Distributed Replicated Block Device) è una soluzione di archiviazione distribuita, flessibile e universalmente replicabile per Linux. Riflette il contenuto dei dispositivi a blocchi come dischi rigidi, partizioni, volumi logici, ecc. tra server. Crea copie dei dati su due dispositivi di archiviazione in modo che, se uno di essi si guasta, è possibile utilizzare i dati sul secondo.
Si potrebbe dire che è qualcosa del genere
Inizialmente, DRBD veniva utilizzato principalmente in cluster di computer ad alta disponibilità (HA), tuttavia, a partire dalla versione XNUMX, può essere utilizzato per implementare soluzioni di archiviazione cloud.
In questo articolo spiegheremo come installare DRBD su CentOS e dimostreremo brevemente come utilizzarlo per replicare l'archiviazione (partizione) su due server. Questo è l'articolo perfetto per iniziare con DRBD su Linux.
Ambiente di test
Utilizzeremo un cluster a due nodi per questa configurazione.
- Nodo 1: 192.168.56.101 – tecmint.tecmint.lan
- Nodo 2: 192.168.56.102 – server1.tecmint.lan
Passaggio 1: installa i pacchetti DRBD
DRBD è implementato come modulo del kernel Linux. È un driver per un dispositivo a blocchi virtuale, quindi si trova in fondo allo stack I/O del sistema.
DRBD può essere installato da ELRepo o EPEL. Iniziamo importando la chiave di firma del pacchetto ELRepo e connettendo il repository su entrambi i nodi come mostrato di seguito.
# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
Quindi è necessario installare il modulo del kernel DRBD e le utilità su entrambi i nodi utilizzando:
# yum install -y kmod-drbd84 drbd84-utils
Se hai SELinux abilitato, devi configurare le policy per esentare i processi DRBD dal controllo di SELinux.
# semanage permissive -a drbd_t
Inoltre, se il tuo sistema utilizza un firewall (firewalld), dovrai aggiungere la porta DRBD 7789 per consentire la sincronizzazione dei dati tra i due nodi.
Esegui questi comandi per il primo nodo:
# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.56.102" port port="7789" protocol="tcp" accept'
# firewall-cmd --reload
Quindi esegui questi comandi per il secondo nodo:
# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.56.101" port port="7789" protocol="tcp" accept'
# firewall-cmd --reload
Passaggio 2: preparare l'archiviazione di basso livello
Ora che abbiamo installato DRBD su entrambi i nodi del cluster, dobbiamo fornire su di essi aree di storage approssimativamente della stessa dimensione. Potrebbe trattarsi di una partizione del disco rigido (o di un intero disco rigido fisico), di un dispositivo RAID software,
Per questo articolo creeremo un dispositivo con blocco di prova da 2 GB utilizzando il comando dd.
# dd if=/dev/zero of=/dev/sdb1 bs=2024k count=1024
Supponiamo che questa sia una partizione inutilizzata (/dev/sdb1) su un secondo dispositivo a blocchi (/dev/sdb) connesso ad entrambi i nodi.
Passaggio 3. Configurazione di DRBD
File di configurazione principale DRBD − /etc/drbd.conf
e file di configurazione aggiuntivi possono essere trovati nella directory /etc/drbd.d
.
Per replicare lo storage, dobbiamo aggiungere le configurazioni necessarie al file /etc/drbd.d/global_common.conf
, che contiene sezioni globali e generali della configurazione DRBD e dobbiamo definire le risorse in .res
File.
Facciamo una copia di backup del file originale su entrambi i nodi, quindi apriamo il nuovo file per la modifica (utilizza un editor di testo a tua scelta).
# mv /etc/drbd.d/global_common.conf /etc/drbd.d/global_common.conf.orig
# vim /etc/drbd.d/global_common.conf
Aggiungi le seguenti righe a entrambi i file:
global {
usage-count yes;
}
common {
net {
protocol C;
}
}
Salvare il file e quindi chiudere l'editor.
Diamo un'occhiata per un momento alla linea del protocollo C. DRBD supporta tre diverse modalità di replica (ovvero tre gradi di sincronia di replica), vale a dire:
- protocollo A: protocollo di replica asincrona; più spesso utilizzato in scenari di replica a lunga distanza.
- protocollo B: protocollo di replica semisincrona o protocollo di memoria sincrona.
- protocollo C: solitamente utilizzato per i nodi di reti a breve distanza; questo è di gran lunga il protocollo di replica più comunemente utilizzato nelle impostazioni DRBD.
È importante: La scelta del protocollo di replica influisce su due fattori di distribuzione: sicurezza e latenza. Al contrario, la velocità effettiva non dipende in modo significativo dal protocollo di replica selezionato.
Passaggio 4: aggiungi una risorsa
Risorsa è un termine generico che si riferisce a tutti gli aspetti di un particolare set di dati replicato. Definiremo la nostra risorsa nel file /etc/drbd.d/test.res
.
Aggiungi quanto segue al file su entrambi i nodi (ricordati di sostituire le variabili con i valori effettivi per il tuo ambiente).
Presta attenzione ai nomi host, dobbiamo specificare il nome host della rete, che può essere ottenuto utilizzando il comando uname -n
.
resource test {
on tecmint.tecmint.lan {
device /dev/drbd0;
disk /dev/sdb1;
meta-disk internal;
address 192.168.56.101:7789;
}
on server1.tecmint.lan {
device /dev/drbd0;
disk /dev/sdb1;
meta-disk internal;
address 192.168.56.102:7789;
}
}
}
dove:
- sul nome host: la sezione on a cui si applica l'istruzione di configurazione nidificata.
- test: Questo è il nome della nuova risorsa.
- dispositivo /dev/drbd0: Indica un nuovo dispositivo a blocchi virtuale gestito da DRBD.
- disco /dev/sdb1: Questa è una partizione del dispositivo a blocchi che è un dispositivo di backup per il dispositivo DRBD.
- meta-disco: Definisce dove DRBD memorizza i suoi metadati. Interno significa che DRBD memorizza i propri metadati sullo stesso dispositivo fisico di basso livello dei dati effettivi in produzione.
- indirizzo: Indica l'indirizzo IP e il numero di porta del nodo corrispondente.
Tieni inoltre presente che se i parametri hanno gli stessi valori su entrambi gli host, puoi specificarli direttamente nella sezione risorse.
Ad esempio, la configurazione di cui sopra potrebbe essere ristrutturata in:
resource test {
device /dev/drbd0;
disk /dev/sdb1;
meta-disk internal;
on tecmint.tecmint.lan {
address 192.168.56.101:7789;
}
on server1.tecmint.lan {
address 192.168.56.102:7789;
}
}
Passaggio 5. Inizializzare e avviare la risorsa
Per interagire con DRBD utilizzeremo i seguenti strumenti di amministrazione (che interagiscono con il modulo del kernel per configurare e amministrare le risorse DRBD):
- drbdadm: Strumento di amministrazione di alto livello DRBD.
- configurazione drbd: uno strumento di amministrazione di livello inferiore per connettere i dispositivi DRBD ai relativi dispositivi di backup, configurare coppie di dispositivi DRBD in modo che riflettano i relativi dispositivi di backup e per verificare la configurazione dei dispositivi DRBD in esecuzione.
- Drbdmeta: strumento di gestione dei metadati.
Dopo aver aggiunto tutte le configurazioni iniziali delle risorse, dobbiamo invocare la risorsa su entrambi i nodi.
# drbdadm create-md test
Inizializzazione dell'archivio metadati
Successivamente dobbiamo eseguirlo, che collegherà la risorsa al suo dispositivo di backup, quindi imposterà i parametri di replica e collegherà la risorsa al suo peer:
# drbdadm up test
Ora se esegui il comando /dev/sdb1
:
# lsblk
Elenco dei dispositivi a blocchi
Per disabilitare una risorsa, eseguire:
# drbdadm down test
Per verificare lo stato di una risorsa, esegui il comando seguente (nota che a questo punto è previsto lo stato dei dischi Incoerente/Incoerente):
# drbdadm status test
OR
# drbdsetup status test --verbose --statistics #for a more detailed status
Verifica dello stato di una risorsa su
cattivo
Passaggio 6: impostare la risorsa primaria/l'origine della sincronizzazione del dispositivo iniziale
In questa fase, DRBD è pronto a partire. Ora dobbiamo specificare quale nodo deve essere utilizzato come origine della sincronizzazione iniziale del dispositivo.
Esegui il comando seguente su un solo nodo per iniziare la sincronizzazione completa iniziale:
# drbdadm primary --force test
# drbdadm status test
Impostazione del nodo primario come dispositivo iniziale
Una volta completata la sincronizzazione, lo stato di entrambe le unità dovrebbe essere UpToDate.
Passaggio 7: test della configurazione DRBD
Infine, dobbiamo verificare se il dispositivo DRBD funzionerà come necessario per archiviare i dati replicati. Ricorda che abbiamo utilizzato un volume del disco vuoto, quindi dobbiamo creare un file system sul dispositivo e montarlo per verificare se possiamo utilizzarlo per archiviare i dati replicati.
Dobbiamo creare un file system sul dispositivo utilizzando il seguente comando sul nodo in cui abbiamo avviato la sincronizzazione completa iniziale (che ha una risorsa con il ruolo primario):
# mkfs -t ext4 /dev/drbd0
Creazione di un file system sul volume Drbd
Quindi montalo come mostrato (puoi dare al punto di montaggio un nome adatto):
# mkdir -p /mnt/DRDB_PRI/
# mount /dev/drbd0 /mnt/DRDB_PRI/
Ora copia o crea alcuni file nel punto di montaggio sopra e crea un lungo elenco con
# cd /mnt/DRDB_PRI/
# ls -l
Elenca il contenuto del volume Drbd principale
Successivamente, smonta il dispositivo (assicurati che il montaggio non sia aperto, cambia la directory dopo lo smontaggio per evitare errori) e cambia il ruolo del nodo da primario a secondario:
# umount /mnt/DRDB_PRI/
# cd
# drbdadm secondary test
Rendi primario l'altro nodo (che ha una risorsa con un ruolo secondario), quindi collega ad esso un dispositivo ed emetti un lungo elenco di punti di montaggio. Se la configurazione funziona correttamente, tutti i file archiviati sul volume dovrebbero essere presenti:
# drbdadm primary test
# mkdir -p /mnt/DRDB_SEC/
# mount /dev/drbd0 /mnt/DRDB_SEC/
# cd /mnt/DRDB_SEC/
# ls -l
Controllo della configurazione DRBD in esecuzione sul nodo secondario.
Per ulteriori informazioni, consultare le pagine della guida degli strumenti di amministrazione:
# man drbdadm
# man drbdsetup
# man drbdmeta
Informazioni:
Riassunto
DRBD è estremamente flessibile e versatile, il che lo rende una soluzione di replica dello storage adatta per aggiungere HA a quasi tutte le applicazioni. In questo articolo abbiamo mostrato come installare DRBD su CentOS 7 e illustrato brevemente come utilizzarlo per la replica dello storage. Sentiti libero di condividere i tuoi pensieri con noi utilizzando il modulo di feedback qui sotto.
Fonte: habr.com