GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

So installieren und konfigurieren Sie DRBD unter CentOS

Dieses Tutorial erklärt, wie Sie DRBD für Ihren Server installieren und einrichten. Bevor ich anfange, lassen Sie mich erklären, was eigentlich DRBD darstellt und wofür es verwendet wird. DRBD steht für Distributed Replicated Block Device, eine softwarebasierte, Shared-Nothing-, replizierte Speicherlösung zum Spiegeln des Inhalts von Blockgeräten wie Festplatten, Partitionen, logischen Volumes usw. Der Hauptzweck von DRBD besteht darin, eine alternative Lösung bereitzustellen auf Hochverfügbarkeitsszenarien wie FailOver oder Disaster Recovery stoßen. Sie können die grundlegenden Details auf der Website hier   einsehen.

1. Vorbemerkung


Für dieses Tutorial verwende ich CentOS 6.4 in der 32-Bit-Version. Das Beispiel-Endergebnis zeigt, wie Sie Dateien oder Ordner in einer Partition auf Server A erstellen und den gesamten Inhalt erfolgreich auf einem anderen Server (Server B) mit DRBD anzeigen.

Unten ist die Skizze der Serverarchitektur :-

+-----------------------------------+                                                        +------------ ------------------+
| [DRBD-Server A]                 | 192.168.43.101 | 192.168.43.102     | [ DRBD-Server B ]         |
| OEL641                               +----------------------+-----------------------+      OEL642 |
| OrdnerA                                 | | OrdnerB                  |
+------------------------------+                                                        +------ -----------------------+

Dieses Tutorial ist mit jeder Version von CentOS/Redhat/Oracle Linux 6 kompatibel. Es ist erforderlich, dass der Server, auf dem Sie DRBD installieren möchten, über ein freies Blockgerät verfügt. Dieses Beispiel zeigt, wie das Blockgerät /dev/sdb1.

konfiguriert und verwendet wird

2. Installationsphase


Bevor wir beginnen, müssen wir das System aktualisieren und die erforderlichen Pakete für die DRBD-Abhängigkeiten installieren. Unten sind die Befehle, die ausgeführt werden müssen, und die Liste der Pakete, die aktualisiert oder installiert werden. In diesen Fällen verwenden wir den Befehl yum, um die neuesten Pakete aus dem öffentlichen CentOS-Repository abzurufen.

yum -y update 
yum -y install gcc make automake autoconf libxslt libxslt-devel flex rpm-build kernel-devel
Installationsprozess einrichten
Paket gcc-4.4.7-3.el6.i686 bereits installiert und neuste Version
Paket 1:make-3.81-20.el6.i686 bereits installiert und neuste Version
Paket automake-1.11.1-4.el6.noarch bereits installiert und neueste Version
Paket autoconf-2.63-5.1.el6.noarch bereits installiert und neueste Version
Paket libxslt-1.1.26- 2.0.2.el6_3.1.i686 bereits installiert und neueste Version
Paket libxslt-devel-1.1.26-2.0.2.el6_3.1.i686 bereits installiert und neueste Version
Paket flex-2.5. 35-8.el6.i686 bereits installiert und neueste Version
Paket rpm-build-4.8.0-32.el6.i686 bereits installiert und neueste Version
Paket kernel-devel-2.6.32-358. el6.i686 bereits installiert und neuste Version

Wir müssen den obigen Schritt auf beiden Servern durchführen.

Sobald die Installation des Abhängigkeitspakets auf beiden Servern abgeschlossen ist, beginnen wir mit der Installation der DRBD-Pakete. Die Pakete können von dieser Website heruntergeladen werden.

Unten sind die Schritte.

Zuerst erstelle ich einen Ordner unter dem Pfad /root/ mit den Namen BUILD, BUILDROOT usw. Dieser Pfad wird benötigt, um die RPM-Datei zu speichern, nachdem wir die DRBD-Pakete erstellt haben.

mkdir -p /root/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}

Laden Sie die DRBD-Pakete herunter.

wget http://oss.linbit.com/drbd/drbd-utils-latest.tar.gz http://oss.linbit.com/drbd/8.4/drbd-8.4.7-1.tar.gz 

Extrahieren Sie die Dateien drbd-8.4.7-1.tar.gz und drbd-utils-latest.tar.gz.

tar -zxvf drbd-8.4.7-1.tar.gz
tar -zxvf drbd-utils-latest.tar.gz

Kompilieren Sie das DRBD-Paket.

cd drbd-8.4.7-1 
drbd-8.4.7-1]# macht km-rpm
...
...
Du hast jetzt:
/root/rpmbuild/RPMS/i686/drbd-km-debuginfo-8.4.7-1.i686.rpm
/root/rpmbuild/RPMS/i686/drbd-km-2.6.32_358.el6.i686-8.4.7-1.i686.rpm

Paket kompilieren und konfigurieren.

cd ..
cd drbd-utils-8.9.6
./configure
make rpm
...
...
Sie haben jetzt:
/root/rpmbuild/RPMS/i686/drbd-utils-8.9.6-1.el6.i686.rpm
/root/rpmbuild/RPMS/i686/drbd-debuginfo-8.9.6-1.el6.i686.rpm
/root/rpmbuild/RPMS/i686/drbd-heartbeat-8.9.6-1. el6.i686.rpm
/root/rpmbuild/RPMS/i686/drbd-xen-8.9.6-1.el6.i686.rpm
/root/rpmbuild/RPMS/i686/drbd-km- debuginfo-8.4.7-1.i686.rpm
/root/rpmbuild/RPMS/i686/drbd-pacemaker-8.9.6-1.el6.i686.rpm
/root/rpmbuild/RPMS/ i686/drbd-bash-completion-8.9.6-1.el6.i686.rpm
/root/rpmbuild/RPMS/i686/drbd-km-2.6.32_358.el6.i686-8.4.7-1. i686.rpm
/root/rpmbuild/RPMS/i686/drbd-8.9.6-1.el6.i686.rpm
/root/rpmbuild/RPMS/i686/drbd-udev-8.9.6- 1.el6.i686.rpm

Gehen Sie zu /root/rpmbuild/RPMS/i686. Die RPM-Pakete aus der Kompilierung sind darin vorhanden und installieren zugehörige RPM-Pakete.

cd /root/rpmbuild/RPMS/i686
rpm -Uvh drbd-xen* drbd-udev* drbd-pacemaker* drbd-bash-completion* drbd-utils-*.rpm drbd-km-*. rpm drbd-8*
Vorbereitung... ########################################### [100%]
1:drbd-utils ##################################### ###### [ 13 %]
2:drbd-xen ############################### ############ [ 25 %]
3:drbd-udev ######################### ################## [ 38%]
4:drbd-Schrittmacher ################### ######################## [ 50%]
5:drbd-bash-completion ########### ################################ [ 63%]
6:drbd ####### #################################### [ 75%]
7:drbd-km- 2.6.32_358.el6.########################################### [ 88%]
8:drbd-km-debuginfo ###################################### ####### [100 %]


Sobald Sie auf dem ersten Server fertig sind, führen Sie die gleichen Schritte auf dem Server OEL642 aus .

3. Verifizierungsphase


Jetzt sind wir zur Hälfte fertig. Konzentrieren wir uns auf den OEL641 Konfigurationsseite. Bestätigen Sie zuerst Ihren Server-Hostnamen. Dies ist wichtig, da die Konfiguration von DRBD denselben Namen wie seinen Hostnamen erfordert. Unten sind die Schritte:

uname -n
OEL641

Aktualisieren Sie dann das DRBD-Modul

modprobe drbd
lsmod |grep drbd
drbd 341783 0
libcrc32c 841 1 drbd

4. Das ist alles, jetzt erstellen wir eine neue Festplattenpartition, die als DRDB-Festplatte fungiert. Hier habe ich eine neue Festplatte /dev/sdb . Ich erstelle eine Partition /dev/sdb1 und verwende sie als DRBD-Festplatte.

fdisk -l
Festplatte /dev/sdb:1073 MB, 1073741824 Bytes
255 Köpfe, 63 Sektoren/Spur, 130 Zylinder
Einheiten =Zylinder von 16065 * 512 =8225280 Bytes
Sektorgröße (logisch /physical):512 Bytes / 512 Bytes
E/A-Größe (minimal/optimal):512 Bytes / 512 Bytes
Festplattenkennung:0x00000000
fdisk /dev/sdb
Befehl (m für Hilfe):n
Befehl Aktion
e erweitert
p primäre Partition (1-4)
p
Partitionsnummer (1-4 ):1
Erster Zylinder (1-130, Standard 1):
Standardwert 1 verwenden
Letzter Zylinder, +Zylinder oder +Größe{K,M,G} (1-130, default 130):
Standardwert 130 verwenden
Befehl (m für Hilfe):p
Gerät Boot Start Ende Blocks Id System
/dev/sdb1 1 130 1044193+ 83 Linux
Befehl (m für Hilfe):w
Die Partitionstabelle wurde geändert!
Aufruf von ioctl() zum erneuten Lesen der Partitionstabelle.
Synchronisieren von Datenträgern.
fdisk -l
Festplatte /dev/sdb:1073 MB, 1073741824 Bytes
255 Köpfe, 63 Sektoren/Spur, 130 Zylinder
Einheiten =Zylinder von 16065 * 512 =8225280 Bytes
Sektorgröße (logisch /physical):512 Bytes / 512 Bytes
E/A-Größe (Minimum/Optimal):512 Bytes / 512 Bytes
Festplattenkennung:0x89770d51
Gerät Boot Start Ende Blocks Id System
/dev/sdb1 1 130 1044193+ 83 Linux

Wenn Sie fertig sind, wiederholen Sie die Schritte auf OEL642

5. DRBD-Konfiguration


Jetzt kommen wir zum letzten Schritt, nämlich der Konfiguration von DRBD. Grundsätzlich müssen wir festlegen, welche Partitionsfestplatte und welcher Server unter dem DRBD-Modul agieren sollen. Dazu erstellen wir eine Antwortdatei wie unten und kopieren sie nach OEL642 sodass beide Server die gleiche Konfiguration haben.

cd /etc/drbd.d/
vi s1.res
Ressource s1 {
auf OEL641 {
Gerät /dev/drbd1;
Festplatte /dev/sdb1;
Adresse 192.168.43.101:7799;
meta- Festplatte intern;
}
auf OEL642 {
Gerät /dev/drbd1;
Festplatte /dev/sdb1;
Adresse 192.168.43.102:7799;
Metafestplatte intern;
}
}

Kopieren Sie die Datei mit scp auf den zweiten Server:

scp /etc/drbd.d/s1.res [E-Mail-geschützt]:/etc/drbd.d/s1.res

Sobald dies erledigt ist, müssen wir die Partition auf beiden Servern initialisieren. Unten sind die Schritte:

drbdadm create-md s1
Aktivitätsprotokoll wird initialisiert
Bitmap wird NICHT initialisiert
Metadaten werden geschrieben...
Neuer drbd-Metadatenblock erfolgreich erstellt.
Erfolg

s1 ist der Ressourcenname, den wir oben in der Datei s1.res definiert haben.

Bitte melden Sie sich auf dem Server OEL642 an und führen Sie die gleichen Schritte von oben aus:

drbdadm create-md s1
Aktivitätsprotokoll wird initialisiert
Bitmap wird NICHT initialisiert
Metadaten werden geschrieben...
Neuer drbd-Metadatenblock erfolgreich erstellt.
Erfolg


Gehe jetzt zurück zum Server OEL641 und wir können den DRBD-Dienst starten. Unten sind die Schritte:-

/etc/init.d/drbd-Status
drbd-Treiber geladen OK; Gerätestatus:
Version:8.4.7-1 (api:1/proto:86-101)
GIT-Hash:3a6a769340ef93b1ba2792c6461250790795db49 erstellt von [email protected], 2016-08-20 01:23:44
m:res cs ro ds p mount fstype
[[email protected] ~]# /etc/init.d/drbd start
DRBD-Ressourcen starten:[
res :s1
Festplatte vorbereiten:s1
Festplatte anpassen:s1
Netz anpassen:s1
]
...........
* ****************************************************** ************
Das Startskript von DRBD wartet darauf, dass der/die Peer-Knoten erscheinen.
- Wenn dieser Knoten vor dem
Neustart bereits ein degradierter Cluster war , beträgt die Zeitüberschreitung 0 Sekunden. [degr-wfc-timeout]
- Wenn der Peer vor dem Neustart verfügbar war, beträgt das Timeout
0 Sekunden. [wfc-timeout]
(Diese Werte gelten für Ressource 's1'; 0 Sek. -> ewig warten)
Um das Warten abzubrechen, geben Sie 'yes' [ 26] ein:
.


Beachten Sie oben, dass der DRBD-Dienst noch nicht gestartet wurde. Dies liegt am Server OEL641 sucht nach dem DRBD-Dienst auf OEL642 .

Bitte melden Sie sich daher während dieser Zeit bei OEL642 an und starten Sie den DRBD-Dienst auf die gleiche Weise wie bei OEL641 . Das merkt man einmal beim DRBD-Service bei OEL642 gestartet ist, DRBD-Dienst bei OEL641 wird aufhören zu warten und auch gestartet.

Sobald dies erledigt ist, wird der Status des DRBD-Dienstes auf beiden Servern wie folgt angezeigt:

/etc/init.d/drbd-Status
drbd-Treiber geladen OK; Gerätestatus:
Version:8.4.7-1 (api:1/proto:86-101)
GIT-Hash:3a6a769340ef93b1ba2792c6461250790795db49 erstellt von [email protected], 2016-08-20 01:23:44
m:res cs ro ds p montiert fstype
1:s1 Connected Secondary/Secondary Inconsistent/Inconsistent C


Führen Sie nun die folgenden Schritte auf dem Server OEL641 aus nur. Dies dient der Initialisierung, wer der anfängliche primäre Server sein wird.

drbdadm -- --overwrite-data-of-peer primary s1
/etc/init.d/drbd status
drbd-Treiber geladen OK; Gerätestatus:
Version:8.4.7-1 (api:1/proto:86-101)
GIT-Hash:3a6a769340ef93b1ba2792c6461250790795db49 erstellt von [email protected], 2016-08-20 01:23:44
m:res cs ro ds p mounted fstype
... sync'ed:0.8% (1037872/1044124)K
1:s1 SyncSource Primary/Secondary UpToDate/Inconsistent C

Überprüfen Sie dann OEL642:

/etc/init.d/drbd-Status
drbd-Treiber geladen OK; Gerätestatus:
Version:8.4.7-1 (api:1/proto:86-101)
GIT-Hash:3a6a769340ef93b1ba2792c6461250790795db49 erstellt von [email protected], 2016-08-20 01:23:44
m:res cs ro ds p mounted fstype
... sync'ed:12.2% (921244/1044124)K
1:s1 SyncTarget Secondary/Primary Inconsistent/UpToDate C


Sie werden im obigen Statusbericht feststellen, dass jetzt Server OEL641 wurde als primär und OEL642 verifiziert als Sekundärserver.

Das bedeutet, dass jetzt alle Dateien oder Ordner, die wir unter der DRBD-Partition auf dem Server OEL641 erstellt haben wird auf die DRBD-Partition unter OEL642 synchronisiert .

6. DRBD-Testphase

Jetzt sind wir beim letzten Teil angelangt, bei dem es darum geht, den DRBD-Dienst zu testen, um sicherzustellen, dass er das Ziel erreicht.

Lassen Sie uns zuerst die DRBD-Partition mounten.

Führen Sie die folgenden Schritte einmal auf dem primären Server OEL641 aus NUR!

mkfs.ext3 /dev/drbd1
...
...
Inode-Tabellen schreiben:fertig
Journal erstellen (4096 Blöcke):fertig
Superblöcke und Dateisystem-Accounting-Informationen schreiben:fertig


Dadurch wird die Partition mit dem ext3-Dateisystem formatiert.

Erstellen Sie nun einen Ordner und mounten Sie die DRBD-Partition darin.

mkdir /folderA
mount /dev/drbd1 /folderA
df -h
Verwendete Dateisystemgröße Avail Use% Mounted on
/dev/drbd1 1004M 18M 936M 2% /folderA
cd /folderA/
ls -h
verloren+gefunden

Wie oben gezeigt, wurde der neue Ordner mit dem Namen OrdnerA erfolgreich erstellt.

Jetzt erstellen wir eine Datei mit einer Größe von 30 MB im Ordner:

dd if=/dev/zero of=/folderA/testfile bs=1M count=30
30+0 Datensätze rein
30+0 Datensätze raus
31457280 Byte (31 MB) kopiert, 0,178448 s, 176 MB/s
ls -lh
insgesamt 31M
drwx------. 2 root root 16K 21. Aug 08:55 lost+found
-rw-r--r--. 1 root root 30M 21. August 09:09 Testdatei


Dies waren die Voraussetzungen, beginnen wir mit dem Testen des Prozesses.

Als Endergebnis, sobald wir die DRBD-Partition auf dem Server OEL642 gemountet haben , sollte die Testdatei im Ordner vorhanden sein.

Lassen Sie uns nun die DRBD-Partition in OEL641 aushängen und machen Sie es als sekundären Zustand. Sekundärzustand bedeutet, dass Sie die DRBD-Partition nicht in das Betriebssystem einhängen können, um sie zu verwenden.

/etc/init.d/drbd-Status
drbd-Treiber geladen OK; Gerätestatus:
Version:8.4.7-1 (api:1/proto:86-101)
GIT-Hash:3a6a769340ef93b1ba2792c6461250790795db49 erstellt von [email protected], 2016-08-20 01:23:44
m:res cs ro ds p montiert fstype
1:s1 Verbunden Primär/Sekundär UpToDate/UpToDate C /folderA ext3
umount /folderA
drbdadm sekundär s1
/etc/init.d/drbd-Status
drbd-Treiber geladen OK; Gerätestatus:
Version:8.4.7-1 (api:1/proto:86-101)
GIT-Hash:3a6a769340ef93b1ba2792c6461250790795db49 erstellt von [email protected], 2016-08-20 01:23:44
m:res cs ro ds p montiert fstype
1:s1 Connected Secondary/Secondary UpToDate/UpToDate C


Jetzt befinden sich beide DRBD-Server im sekundären Zustand. Gehen wir zum Server OEL642 und ändern Sie es vom sekundären in den primären Zustand.

Erstellen Sie zuerst einen leeren Ordner und mounten Sie ihn auf der DRBD-Partition auf OEL642 :

mkdir /folderB
cd /folderB
ls -lh
insgesamt 0
/etc/init.d/drbd-Status
drbd-Treiber geladen OK; Gerätestatus:
Version:8.4.7-1 (api:1/proto:86-101)
GIT-Hash:3a6a769340ef93b1ba2792c6461250790795db49 erstellt von [email protected], 2016-08-20 01:23:44
m:res cs ro ds p montiert fstype
1:s1 Connected Secondary/Secondary UpToDate/UpToDate C
drbdadm primär s1
/etc/init.d/drbd status
drbd-Treiber geladen OK; Gerätestatus:
Version:8.4.7-1 (api:1/proto:86-101)
GIT-Hash:3a6a769340ef93b1ba2792c6461250790795db49 erstellt von [email protected], 2016-08-20 01:23:44
m:res cs ro ds p montiert fstype
1:s1 Verbunden Primär/Sekundär UpToDate/UpToDate C
mount /dev/drbd1 /folderB
df -h
Verwendete Dateisystemgröße Avail Use% Mounted on
/dev/mapper/vg_oel641-lv_root
96G 3.5G 88G 4% /
tmpfs 640M 80K 640M 1% /dev/shm
/dev/sda1 485M 32M 428M 7% /boot
/dev/drbd1 1004M 48M 906M 5% /folderB
ls -lh /folderB/
insgesamt 31M
drwx------. 2 root root 16K 21. Aug 08:55 lost+found
-rw-r--r--. 1 root root 30M 21. August 09:09 Testdatei


Sobald Sie die DRBD-Partition erfolgreich in Ihren neuen Ordner eingebunden haben, werden Sie feststellen, dass die Datei, die Sie auf dem Server OEL641 erstellt haben vorher automatisch existiert!


FERTIG! Sie haben DRBD erfolgreich auf CentOS eingerichtet und konfiguriert!


Cent OS
  1. So installieren und konfigurieren Sie Nginx unter CentOS 7

  2. So installieren Sie dig unter CentOS 7 und 8

  3. So installieren Sie Node.js und NPM unter CentOS 7

  4. So installieren und konfigurieren Sie Redis unter CentOS 7

  5. So installieren Sie Node.js und NPM unter CentOS

So installieren und konfigurieren Sie GitLab CE unter CentOS 7

So installieren und konfigurieren Sie Zabbix unter CentOS 7

So richten Sie Oracle Weblogic in CentOS 7 ein und installieren es

So installieren und konfigurieren Sie GitLab CE unter CentOS 8

So installieren und konfigurieren Sie Nagios 4.0.7 unter CentOS 7

So installieren und konfigurieren Sie Asterisk 13 (PBX) auf Centos 7