Introduzione
Drbd è un sistema di archiviazione replicato distribuito per la piattaforma Linux. È implementato come driver del kernel, diverse applicazioni di gestione dello spazio utente e alcuni script di shell. Viene tradizionalmente utilizzato nei cluster di computer ad alta disponibilità (HA). Tuttavia, a partire dalla versione 9 di DRBD, puoi utilizzarlo anche per creare pool di archiviazione software-defined più grandi incentrati sull'integrazione nel cloud.
Se stai usando il kernel virtuale come parte di una macchina virtuale, dovrai compilare manualmente il modulo drbd. Potrebbe essere più semplice installare il pacchetto del server Linux all'interno della macchina virtuale. Consulta la guida per l'utente di drbd e MySQL.
Crea un playbook per installare tutti i requisiti
Il playbook fornito è solo un'attività di esempio per fornire una sequenza per l'impostazione del cluster.
# cat > drbd.setupcentos8.yml
---
- hosts: all
gather_facts: no
become: true
tasks:
- hostname:
name: "{{ ansible_hostname }}"
- get_url:
url: https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm
dest: /tmp/elrepo-release-8.el8.elrepo.noarch.rpm
- name: install repo
command: rpm -ivh /tmp/elrepo-release-8.el8.elrepo.noarch.rpm
ignore_errors: yes
- command: rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-elrepo.org
ignore_errors: yes
- shell: echo drbd > /etc/modules-load.d/drbd.conf
- yum:
name: "{{ item }}"
state: present
loop:
- drbd90-utils
- kmod-drbd90
- lvm2
- policycoreutils-python-utils
- systemd:
name: firewalld
state: stopped
enabled: no
- selinux_permissive:
name: drbd_t
no_reload: false
permissive: true
- lvg:
vg: drbdvg
pvs: /dev/sdb
- lvol:
vg: drbdvg
lv: drbdlv
size: +100%FREE
Rimuovi la configurazione predefinita globale dall'installazione.
Sposta il file e crea un nuovo file di configurazione.
# mv /etc/drbd.d/global_common.conf /etc/drbd.d/global_common.conf.back
Crea la nuova configurazione di cui hai bisogno
Il file di configurazione in questo tutorial.
# cat > /etc/drbd.d/global_common.conf
global {
usage-count no;
}
common {
net {
protocol C;
}
}
Crea un file di configurazione delle risorse
Si noti che la risorsa dovrebbe essere il nome del file come pratica standard. In questo tutorial useremo drbd0.
#cat > /etc/drbd.d/drbd0.res
resource drbd0 {
protocol C;
net {
verify-alg sha256;
}
on node1 {
device /dev/drbd0;
disk /dev/drbdv/lvdrdb;
node-id 0;
address 192.168.55.61:7788;
meta-disk internal;
}
on node2 {
device /dev/drbd0;
disk /dev/drbdv/lvdrdb;
node-id 1;
address 192.168.55.62:7788;
meta-disk internal;
}
on node3 {
device /dev/drbd0;
node-id 2;
disk /dev/drbdv/lvdrdb;
address 192.168.55.63:7788;
meta-disk internal;
}
connection-mesh {
hosts node1 node2 node3;
}
}
Parametro dei requisiti semplici delle risorse per l'installazione in cluster
Si prega di controllare i parametri richiesti per la vostra scelta di configurazione
- su nome-host [uname -n]
- node-id [identificatore univoco del nodo. intervallo da 0 a 16]
- disco {[disco] | nessuno}
- indirizzo [address-family] address:port
Crea dispositivo a blocchi drbd
Questo comando creerà il dispositivo a blocchi richiesto.
Abilita dispositivo drbd su tutti i nodi
Abilita il dispositivo eseguendo il comando riportato di seguito.
Controlla lo stato drbd
Questo emetterà lo stato del dispositivo su tutti i nodi.
Configura chi sarà il nodo principale.
Questo configurerà da dove deve essere copiata la sincronizzazione.
Verifica lo stato del cluster
Ora i dispositivi sono sincronizzati.
Crea un filesystem dal dispositivo drbd sul primario
Questo sarà quello utilizzato per il clustering. Nota che è possibile scegliere solo chiunque dal cluster.
Ora monta la directory mysql sul dispositivo drbd
I dati verranno condivisi su tutti i nodi.
Sposta la risorsa dal nodo1 al nodo2
Tieni presente che il servizio MySQL deve essere interrotto prima della migrazione delle risorse.