GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come installare e configurare DRBD su CentOS

Questo tutorial spiega come installare e configurare DRBD per il tuo server. Prima di iniziare, lascia che ti spieghi cosa rappresenta effettivamente DRBD e a cosa serve. DRBD è l'acronimo di Distributed Replicated Block Device, una soluzione di archiviazione replicata basata su software per il mirroring del contenuto di dispositivi a blocchi come dischi rigidi, partizioni, volumi logici, ecc. Lo scopo principale di DRBD è fornire una soluzione alternativa per incontrare scenari di disponibilità elevata come il failover o il ripristino di emergenza. Puoi visualizzare i dettagli fondamentali sul suo sito Web qui  .

1. Nota preliminare


Per questo tutorial, utilizzo CentOS 6.4 nella versione a 32 bit. Il risultato finale dell'esempio mostrerà come creare file o cartelle all'interno di una partizione sul Server A e mostrare correttamente tutto il contenuto su un altro server (Server B) usando DRBD .

Di seguito è riportato lo schizzo dell'architettura del server :-

+-----------------------------------+                                                        +------------ ------------------+
| [Server DRBD A]                 | 192.168.43.101 | 192.168.43.102     | [ Server DRBD B ]         |
| OEL641                               +----------------------+-----------------------+      OEL642 |
| cartellaA                                 | | folderB                  |
+------------------------------------+                                                        +------ -----------------------+

Questo tutorial è compatibile con qualsiasi versione di CentOS/Redhat/Oracle Linux 6 . È necessario che il server su cui desideri installare DRBD abbia un dispositivo a blocchi gratuito. Questo esempio mostra come configurare e utilizzare il dispositivo a blocchi /dev/sdb1.

2. Fase di installazione


Prima di iniziare, è necessario aggiornare il sistema e installare i pacchetti richiesti per le dipendenze DRBD. Di seguito sono riportati i comandi che devono essere eseguiti e l'elenco dei pacchetti che vengono aggiornati o installati. In questi casi, utilizziamo il comando yum per ottenere gli ultimi pacchetti dal repository pubblico di CentOS.

yum -y update 
yum -y install gcc make automake autoconf libxslt libxslt-devel flex rpm-build kernel-devel
Setting up Install Process
Package gcc-4.4.7-3.el6.i686 already installed and latest version
Package 1:make-3.81-20.el6.i686 already installed and latest version
Package automake-1.11.1-4.el6.noarch already installed and latest version
Package autoconf-2.63-5.1.el6.noarch already installed and latest version
Package libxslt-1.1.26-2.0.2.el6_3.1.i686 already installed and latest version
Package libxslt-devel-1.1.26-2.0.2.el6_3.1.i686 already installed and latest version
Package flex-2.5.35-8.el6.i686 already installed and latest version
Package rpm-build-4.8.0-32.el6.i686 already installed and latest version
Package kernel-devel-2.6.32-358.el6.i686 already installed and latest version

Dobbiamo eseguire il passaggio precedente su entrambi i server.

Una volta terminata l'installazione del pacchetto di dipendenze su entrambi i server, inizieremo a installare i pacchetti DRBD. I pacchetti possono essere scaricati da questo sito web.

Di seguito sono riportati i passaggi.

Per prima cosa creo una cartella sotto /root/ percorso con il nome BUILD, BUILDROOT ecc. Questo percorso è necessario per memorizzare il file rpm dopo aver compilato i pacchetti DRBD.

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

Scarica i pacchetti DRBD.

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

Estrai i file del pacchetto drbd-8.4.7-1.tar.gz e drbd-utils-latest.tar.gz.

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

Compila il pacchetto DRBD.

cd drbd-8.4.7-1 
drbd-8.4.7-1]# make km-rpm
...
...
You have now:
/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

Compila e configura il pacchetto.

cd ..
cd drbd-utils-8.9.6
./configure
make rpm
...
...
You have now:
/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

Vai a /root/rpmbuild/RPMS/i686. I pacchetti di rpm dalla compilazione esisteranno al suo interno e installeranno i relativi pacchetti rpm.

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


Una volta terminato sul primo server, esegui gli stessi passaggi sul server OEL642 .

3. Fase di verifica


Ora siamo a metà strada dal completamento. Concentriamoci sull' OEL641 lato configurazione. Innanzitutto, verifica il nome host del tuo server, questo è importante perché la configurazione di DRBD richiederà lo stesso nome del nome host. Di seguito sono riportati i passaggi:

uname -n
OEL641

Quindi aggiorna il modulo DRBD

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

4. Questo è tutto, ora creeremo una nuova partizione del disco che fungerà da disco DRDB. Qui ho un nuovo disco /dev/sdb . Creerò una partizione /dev/sdb1 e la userò come disco DRBD.

fdisk -l
Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
fdisk /dev/sdb
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-130, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-130, default 130):
Using default value 130
Command (m for help): p
Device Boot Start End Blocks Id System
/dev/sdb1 1 130 1044193+ 83 Linux
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
fdisk -l
Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x89770d51
Device Boot Start End Blocks Id System
/dev/sdb1 1 130 1044193+ 83 Linux

Al termine, ripeti i passaggi su OEL642

5. Configurazione DRBD


Ora arriviamo al passaggio finale che è la configurazione di DRBD. Fondamentalmente, dobbiamo impostare quale disco di partizione e server dovrebbe agire sotto il modulo DRBD. Per farlo, creeremo un file di risposta come di seguito e lo copieremo in OEL642 in modo che entrambi i server abbiano la stessa configurazione.

cd /etc/drbd.d/
vi s1.res
resource s1 {
on OEL641 {
device /dev/drbd1;
disk /dev/sdb1;
address 192.168.43.101:7799;
meta-disk internal;
}
on OEL642 {
device /dev/drbd1;
disk /dev/sdb1;
address 192.168.43.102:7799;
meta-disk internal;
}
}

Copia il file con scp sul secondo server:

scp /etc/drbd.d/s1.res [email protected]:/etc/drbd.d/s1.res

Una volta terminato, è necessario inizializzare la partizione su entrambi i server. Di seguito sono riportati i passaggi:

drbdadm create-md s1
initializing activity log
NOT initializing bitmap
Writing meta data...
New drbd meta data block successfully created.
success

s1 è il nome della risorsa che abbiamo definito nel file s1.res sopra.

Accedi al server OEL642 e fai gli stessi passaggi da sopra:

drbdadm create-md s1
initializing activity log
NOT initializing bitmap
Writing meta data...
New drbd meta data block successfully created.
success


Ora torna al server OEL641 e possiamo avviare il servizio DRBD. Di seguito sono riportati i passaggi:-

/etc/init.d/drbd status
drbd driver loaded OK; device status:
version: 8.4.7-1 (api:1/proto:86-101)
GIT-hash: 3a6a769340ef93b1ba2792c6461250790795db49 build by [email protected], 2016-08-20 01:23:44
m:res cs ro ds p mounted fstype
[[email protected] ~]# /etc/init.d/drbd start
Starting DRBD resources: [
create res: s1
prepare disk: s1
adjust disk: s1
adjust net: s1
]
..........
***************************************************************
DRBD's startup script waits for the peer node(s) to appear.
- If this node was already a degraded cluster before the
reboot, the timeout is 0 seconds. [degr-wfc-timeout]
- If the peer was available before the reboot, the timeout
is 0 seconds. [wfc-timeout]
(These values are for resource 's1'; 0 sec -> wait forever)
To abort waiting enter 'yes' [ 26]:
.


Nota sopra che il servizio DRBD non è stato ancora avviato. Ciò è dovuto al server OEL641 sta cercando il servizio DRBD su OEL642 .

Pertanto, durante questo periodo, accedi a OEL642 e avvia il servizio DRBD nello stesso modo in cui hai fatto om OEL641 . Noterai che una volta il servizio DRBD a OEL642 è avviato, il servizio DRBD a OEL641 smetterà di aspettare e inizierà anche.

Una volta terminato, lo stato del servizio DRBD apparirà come di seguito su entrambi i server:

/etc/init.d/drbd status
drbd driver loaded OK; device status:
version: 8.4.7-1 (api:1/proto:86-101)
GIT-hash: 3a6a769340ef93b1ba2792c6461250790795db49 build by [email protected], 2016-08-20 01:23:44
m:res cs ro ds p mounted fstype
1:s1 Connected Secondary/Secondary Inconsistent/Inconsistent C


Ora esegui i passaggi seguenti sul server OEL641 solo. Questo serve per inizializzare chi sarà il server primario iniziale.

drbdadm -- --overwrite-data-of-peer primary s1
/etc/init.d/drbd status
drbd driver loaded OK; device status:
version: 8.4.7-1 (api:1/proto:86-101)
GIT-hash: 3a6a769340ef93b1ba2792c6461250790795db49 build by [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

Quindi controlla OEL642:

/etc/init.d/drbd status
drbd driver loaded OK; device status:
version: 8.4.7-1 (api:1/proto:86-101)
GIT-hash: 3a6a769340ef93b1ba2792c6461250790795db49 build by [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


Nel rapporto di stato precedente noterai che ora server OEL641 è stato verificato come Primario e OEL642 come server secondario.

Ciò significa che ora qualsiasi file o cartella che abbiamo creato nella partizione DRBD sul server OEL641 verrà sincronizzato con la partizione DRBD su OEL642 .

6. Fase di test DRBD

Ora, siamo arrivati ​​alla parte finale che consiste nel testare il servizio DRBD per garantire che soddisfi l'obiettivo.

Per prima cosa, montiamo la partizione DRBD.

Esegui i passaggi seguenti una volta sul server primario OEL641 SOLO!

mkfs.ext3 /dev/drbd1
...
...
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done


Questo formatta la partizione con il filesystem ext3.

Ora crea una cartella e monta la partizione DRBD su di essa.

mkdir /folderA
mount /dev/drbd1 /folderA
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/drbd1 1004M 18M 936M 2% /folderA
cd /folderA/
ls -h
lost+found

Come mostrato sopra, la nuova cartella denominata folderA è stata creata con successo.

Ora creiamo un file con una dimensione di 30Mb all'interno della cartella:

dd if=/dev/zero of=/folderA/testfile bs=1M count=30
30+0 records in
30+0 records out
31457280 bytes (31 MB) copied, 0.178448 s, 176 MB/s
ls -lh
total 31M
drwx------. 2 root root 16K Aug 21 08:55 lost+found
-rw-r--r--. 1 root root 30M Aug 21 09:09 testfile


Questi sono stati i prerequisiti, iniziamo a testare il processo.

Come risultato finale, una volta montata la partizione DRBD sul server OEL642 , il file di prova dovrebbe esistere all'interno della cartella.

Ora smontiamo la partizione DRBD in OEL641 e renderlo uno stato secondario. Lo stato secondario significa che non sarai in grado di montare la partizione DRBD nel sistema operativo da utilizzare.

/etc/init.d/drbd status
drbd driver loaded OK; device status:
version: 8.4.7-1 (api:1/proto:86-101)
GIT-hash: 3a6a769340ef93b1ba2792c6461250790795db49 build by [email protected], 2016-08-20 01:23:44
m:res cs ro ds p mounted fstype
1:s1 Connected Primary/Secondary UpToDate/UpToDate C /folderA ext3
umount /folderA
drbdadm secondary s1
/etc/init.d/drbd status
drbd driver loaded OK; device status:
version: 8.4.7-1 (api:1/proto:86-101)
GIT-hash: 3a6a769340ef93b1ba2792c6461250790795db49 build by [email protected], 2016-08-20 01:23:44
m:res cs ro ds p mounted fstype
1:s1 Connected Secondary/Secondary UpToDate/UpToDate C


Ora entrambi i server DRBD sono in stato secondario. Andiamo al server OEL642 e cambialo dallo stato Secondario allo stato Primario.

Per prima cosa crea una cartella vuota e monta sulla partizione DRBD su OEL642 :

mkdir /folderB
cd /folderB
ls -lh
total 0
/etc/init.d/drbd status
drbd driver loaded OK; device status:
version: 8.4.7-1 (api:1/proto:86-101)
GIT-hash: 3a6a769340ef93b1ba2792c6461250790795db49 build by [email protected], 2016-08-20 01:23:44
m:res cs ro ds p mounted fstype
1:s1 Connected Secondary/Secondary UpToDate/UpToDate C
drbdadm primary s1
/etc/init.d/drbd status
drbd driver loaded OK; device status:
version: 8.4.7-1 (api:1/proto:86-101)
GIT-hash: 3a6a769340ef93b1ba2792c6461250790795db49 build by [email protected], 2016-08-20 01:23:44
m:res cs ro ds p mounted fstype
1:s1 Connected Primary/Secondary UpToDate/UpToDate C
mount /dev/drbd1 /folderB
df -h
Filesystem Size Used 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/
total 31M
drwx------. 2 root root 16K Aug 21 08:55 lost+found
-rw-r--r--. 1 root root 30M Aug 21 09:09 testfile


Una volta montata correttamente la partizione DRBD nella nuova cartella, noterai che il file che hai creato nel server OEL641 prima esisteva automaticamente!


FATTO! Hai impostato e configurato correttamente DRBD su CentOS!


Cent OS
  1. Come installare e configurare Nginx su CentOS 7

  2. Come installare dig su CentOS 7 e 8

  3. Come installare Node.js e NPM su CentOS 7

  4. Come installare e configurare Redis su CentOS 7

  5. Come installare Node.js e NPM su CentOS

Come installare e configurare GitLab CE su CentOS 7

Come installare e configurare Zabbix su CentOS 7

Come configurare e installare Oracle Weblogic in CentOS 7

Come installare e configurare GitLab CE su CentOS 8

Come installare e configurare Nagios 4.0.7 su CentOS 7

Come installare e configurare Asterisk 13 (PBX) su Centos 7