Einführung
Drbd ist ein verteiltes repliziertes Speichersystem für die Linux-Plattform. Es ist als Kernel-Treiber, mehrere Userspace-Verwaltungsanwendungen und einige Shell-Skripte implementiert. Es wird traditionell in Computerclustern mit hoher Verfügbarkeit (HA) verwendet. Ab DRBD Version 9 kann es jedoch auch verwendet werden, um größere softwaredefinierte Speicherpools mit Schwerpunkt auf Cloud-Integration zu erstellen.
Wenn Sie den virtuellen Kernel verwenden Als Teil einer virtuellen Maschine müssen Sie das drbd-Modul manuell kompilieren. Es kann einfacher sein, das Linux-Server-Paket in der virtuellen Maschine zu installieren. Überprüfen Sie das drbd-Benutzerhandbuch und MySQL.
Erstellen Sie ein Playbook, um alle Anforderungen zu installieren
Das bereitgestellte Playbook ist nur eine Beispielaufgabe, um eine Sequenz zum Festlegen des Clusters zu geben.
# 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
Entfernen Sie die globale Standardkonfiguration aus der Installation.
Verschieben Sie die Datei und erstellen Sie eine neue Konfigurationsdatei.
# mv /etc/drbd.d/global_common.conf /etc/drbd.d/global_common.conf.back
Erstellen Sie die gewünschte neue Konfiguration
Die Konfigurationsdatei in diesem Tutorial.
# cat > /etc/drbd.d/global_common.conf
global {
usage-count no;
}
common {
net {
protocol C;
}
}
Erstellen Sie eine Ressourcenkonfigurationsdatei
Beachten Sie, dass die Ressource standardmäßig der Name der Datei sein sollte. In diesem Tutorial verwenden wir 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;
}
}
Einfacher Ressourcenanforderungsparameter für Cluster-Setup
Bitte überprüfen Sie die erforderlichen Parameter für Ihre Setup-Wahl
- auf Hostname [uname -n]
- node-id [eindeutige Knotenkennung. Bereich 0 bis 16]
- Festplatte {[Festplatte] | keine
- Adresse [Adressfamilie] Adresse:Port
DRBD-Blockgerät erstellen
Dieser Befehl erstellt das erforderliche Blockgerät.
Aktivieren Sie das drbd-Gerät auf allen Knoten
Aktivieren Sie das Gerät, indem Sie den unten angegebenen Befehl ausführen.
DRBD-Status prüfen
Dadurch wird der Status des Geräts auf allen Knoten ausgegeben.
Konfigurieren Sie, wer der primäre Knoten sein soll.
Dadurch wird konfiguriert, woher die Synchronisierung kopiert werden soll.
Status des Clusters prüfen
Jetzt werden die Geräte synchronisiert.
Erstellen Sie ein Dateisystem vom drbd-Gerät auf dem Primärgerät
Dies wird derjenige sein, der für das Clustering verwendet wird. Beachten Sie, dass nur jeder aus dem Cluster ausgewählt werden kann.
Mounten Sie jetzt das mysql-Verzeichnis auf dem drbd-Gerät
Daten werden von allen Knoten gemeinsam genutzt.
Ressource von Knoten1 nach Knoten2 verschieben
Beachten Sie, dass der MySQL-Dienst zuerst gestoppt werden sollte, bevor Ressourcen migriert werden.