GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment installer et configurer DRBD sur CentOS

Ce tutoriel explique comment installer et configurer DRBD pour votre serveur. Avant de commencer, laissez-moi vous expliquer ce que représente réellement DRBD et à quoi il sert. DRBD signifie Distributed Replicated Block Device, une solution de stockage répliquée basée sur un logiciel, sans partage, pour mettre en miroir le contenu de périphériques de bloc tels que les disques durs, les partitions, les volumes logiques, etc. L'objectif principal de DRBD est de fournir une solution alternative pour rencontrer des scénarios de haute disponibilité tels que FailOver ou Disaster Recovery. Vous pouvez consulter les détails fondamentaux sur son site Web ici  .

1. Remarque préliminaire


Pour ce tutoriel, j'utilise CentOS 6.4 dans la version 32 bits. L'exemple de résultat final montrera comment créer des fichiers ou des dossiers dans une partition sur le serveur A et afficher avec succès tout le contenu sur un autre serveur (serveur B) à l'aide de DRBD .

Ci-dessous le croquis de l'architecture du serveur :-

+-----------------------------------+                                                        +------------ -----------------+
| [ Serveur DRBD A ]                 | 192.168.43.101 | 192.168.43.102     | [ Serveur DRBD B ]         |
| OEL641                               +----------------------+-----------------------+      OEL642 |
| dossierA                                 | | dossierB                  |
+-----------------------------------+                                                      +------ -----------------------+

Ce tutoriel est compatible avec toutes les versions de CentOS/Redhat/Oracle Linux 6 . Il est nécessaire que le serveur sur lequel vous souhaitez installer DRBD dispose d'un périphérique de bloc libre. Cet exemple montre comment configurer et utiliser le périphérique bloc /dev/sdb1.

2. Phase d'installation


Avant de commencer, nous devons mettre à jour le système et installer les packages requis pour les dépendances DRBD. Vous trouverez ci-dessous les commandes à exécuter et la liste des packages mis à jour ou installés. Dans ce cas, nous utilisons la commande yum pour obtenir les derniers packages du référentiel public CentOS.

yum -y update 
yum -y install gcc make automake autoconf libxslt libxslt-devel flex rpm-build kernel-devel
Configuration du processus d'installation
Package gcc-4.4.7-3.el6.i686 déjà installé et dernière version
Package 1 :make-3.81-20.el6.i686 déjà installé et dernière version
Package automake-1.11.1-4.el6.noarch déjà installé et dernière version
Package autoconf-2.63-5.1.el6.noarch déjà installé et dernière version
Package libxslt-1.1.26- 2.0.2.el6_3.1.i686 déjà installé et dernière version
Package libxslt-devel-1.1.26-2.0.2.el6_3.1.i686 déjà installé et dernière version
Package flex-2.5. 35-8.el6.i686 déjà installé et dernière version
Package rpm-build-4.8.0-32.el6.i686 déjà installé et dernière version
Package kernel-devel-2.6.32-358. el6.i686 déjà installé et dernière version

Nous devons effectuer l'étape ci-dessus sur les deux serveurs.

Une fois l'installation du package de dépendances terminée sur les deux serveurs, nous commencerons à installer les packages DRBD. Les packages peuvent être téléchargés à partir de  ce site Web.

Voici les étapes.

Je crée d'abord un dossier sous /root/ path avec le nom BUILD, BUILDROOT etc. Ce chemin est nécessaire pour stocker le fichier rpm après avoir construit les packages DRBD.

mkdir -p /root/rpmbuild/{CONSTRUIRE,CONSTRUIREROOT,RPMS,SOURCES,SPECS,SRPMS}

Téléchargez les packages 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 

Extrayez les fichiers drbd-8.4.7-1.tar.gz et drbd-utils-latest.tar.gz du package.

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

Compiler le package DRBD.

cd drbd-8.4.7-1 
drbd-8.4.7-1]# make km-rpm
...
...
Vous avez maintenant :
/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

Compilez et configurez le package.

cd ..
cd drbd-utils-8.9.6
./configure
make rpm
...
...
Vous avez maintenant :
/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

Accédez à /root/rpmbuild/RPMS/i686. Les packages de RPM de la compilation existeront à l'intérieur et installeront les packages RPM associés.

cd /root/rpmbuild/RPMS/i686
rpm -Uvh drbd-xen* drbd-udev* drbd-pacemaker* drbd-bash-completion* drbd-utils-*.rpm drbd-km-*. tr/min drbd-8*
Préparation... ########################################## [100 %]
1:drbd-utils ##################################### ###### [ 13%]
2:drbd-xfr ############################### ############ [ 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 %]


Une fois fait sur le premier serveur, faites les mêmes étapes sur le serveur OEL642 .

3. Phase de vérification


Nous sommes maintenant à mi-chemin de l'achèvement. Concentrons-nous sur OEL641 côté configuration. Tout d'abord, vérifiez le nom d'hôte de votre serveur, c'est important car la configuration de DRBD nécessitera le même nom que son nom d'hôte. Voici les étapes :

uname -n
OEL641

Puis mettez à jour le module DRBD

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

4. C'est tout, nous allons maintenant créer une nouvelle partition de disque pour agir en tant que disque DRDB. Ici, j'ai un nouveau disque /dev/sdb . Je vais créer une partition /dev/sdb1 et l'utiliser comme disque DRBD.

fdisk -l
Disque /dev/sdb :1073 Mo, 1073741824 octets
255 têtes, 63 secteurs/piste, 130 cylindres
Unités =cylindres de 16065 * 512 =8225280 octets
Taille de secteur (logique /physique) :512 octets / 512 octets
Taille d'E/S (minimale/optimale) :512 octets / 512 octets
Identifiant de disque :0x00000000
fdisk /dev/sdb
Commande (m pour l'aide) :n
Action de commande
e étendue
p partition primaire (1-4)
p
Numéro de partition (1-4 ) :1
Premier cylindre (1-130, par défaut 1) :
En utilisant la valeur par défaut 1
Dernier cylindre, +cylindres ou +taille{K,M,G} (1-130, par défaut 130) :
Utilisation de la valeur par défaut 130
Commande (m pour l'aide) :p
Système d'identification des blocs de démarrage de démarrage de périphérique
/dev/sdb1 1 130 1044193+ 83 Linux
Commande (m pour l'aide) :w
La table de partition a été modifiée !
Appeler ioctl() pour relire la table de partition.
Synchroniser les disques.
fdisk -l
Disque /dev/sdb :1073 Mo, 1073741824 octets
255 têtes, 63 secteurs/piste, 130 cylindres
Unités =cylindres de 16065 * 512 =8225280 octets
Taille de secteur (logique /physique) :512 octets / 512 octets
Taille d'E/S (minimale/optimale) :512 octets / 512 octets
Identifiant de disque :0x89770d51
Système d'identification des blocs de démarrage de démarrage de périphérique
/dev/sdb1 1 130 1044193+ 83 Linux

Une fois cela fait, répétez les étapes sur OEL642

5. Configuration DRBD


Nous arrivons maintenant à la dernière étape qui est la configuration de DRBD. Fondamentalement, nous devons définir quel disque de partition et quel serveur doivent agir sous le module DRBD. Pour ce faire, nous allons créer un fichier de réponse comme ci-dessous et le copier dans OEL642 afin que les deux serveurs aient la même configuration.

cd /etc/drbd.d/
vi s1.res
ressource s1 {
sur OEL641 {
appareil /dev/drbd1;
disque /dev/sdb1;
adresse 192.168.43.101:7799;
méta- disque interne ;
}
sur OEL642 {
périphérique /dev/drbd1 ;
disque /dev/sdb1 ;
adresse 192.168.43.102:7799 ;
méta-disque interne ;
}
}

Copiez le fichier avec scp sur le second serveur :

scp /etc/drbd.d/s1.res [protégé par e-mail] :/etc/drbd.d/s1.res

Une fois cela fait, nous devons initialiser la partition sur les deux serveurs. Voici les étapes :

drbdadm create-md s1
initialisation du journal d'activité
PAS d'initialisation du bitmap
Écriture des métadonnées...
Nouveau bloc de métadonnées drbd créé avec succès.
succès

s1 est le nom de la ressource que nous avons défini dans le fichier s1.res ci-dessus.

Veuillez vous connecter au serveur OEL642 et suivez les mêmes étapes ci-dessus :

drbdadm create-md s1
initialisation du journal d'activité
PAS d'initialisation du bitmap
Écriture des métadonnées...
Nouveau bloc de métadonnées drbd créé avec succès.
succès


Retournez maintenant au serveur OEL641 et nous pouvons démarrer le service DRBD. Voici les étapes :-

/etc/init.d/drbd status
pilote drbd chargé correctement ; état de l'appareil :
version :8.4.7-1 (api:1/proto:86-101)
GIT-hash :3a6a769340ef93b1ba2792c6461250790795db49 construit par [email protected], 2016-08-20 01:23 :44
m:res cs rods p mount fstype
[[email protected] ~]# /etc/init.d/drbd start
Démarrage des ressources DRBD :[
create res :s1
préparer le disque :s1
ajuster le disque :s1
ajuster le réseau :s1
]
.........
* ****************************************************** ************
Le script de démarrage de DRBD attend que le ou les nœuds homologues apparaissent.
- Si ce nœud était déjà un cluster dégradé avant le
redémarrage , le délai d'attente est de 0 seconde. [degr-wfc-timeout]
- Si le pair était disponible avant le redémarrage, le délai d'attente
est de 0 seconde. [wfc-timeout]
(Ces valeurs sont pour la ressource 's1'; 0 sec -> attendre toujours)
Pour annuler l'attente, entrez 'yes' [ 26] :
.


Notez ci-dessus que le service DRBD n'a pas encore démarré. Cela est dû au serveur OEL641 recherche le service DRBD sur OEL642 .

Par conséquent, pendant cette période, veuillez vous connecter à OEL642 et démarrez le service DRBD de la même manière que vous l'avez fait sur OEL641 . Vous remarquerez qu'une fois le service DRBD sur OEL642 est démarré, service DRBD à OEL641 arrêtera d'attendre et commencera également.

Une fois cela fait, l'état du service DRBD s'affichera comme ci-dessous sur les deux serveurs :

/etc/init.d/drbd status
pilote drbd chargé correctement ; état de l'appareil :
version :8.4.7-1 (api:1/proto:86-101)
GIT-hash :3a6a769340ef93b1ba2792c6461250790795db49 construit par [email protected], 2016-08-20 01:23 :44
m:res cs rods p monté fstype
1:s1 Connecté Secondaire/Secondaire Incohérent/Incohérent C


Effectuez maintenant les étapes ci-dessous sur le serveur OEL641 seul. Il s'agit d'initialiser qui sera le serveur primaire initial.

drbdadm -- --overwrite-data-of-peer primary s1
/etc/init.d/drbd status
pilote drbd chargé correctement ; état de l'appareil :
version :8.4.7-1 (api:1/proto:86-101)
GIT-hash :3a6a769340ef93b1ba2792c6461250790795db49 construit par [email protected], 2016-08-20 01:23 :44
m:res cs rods p monté fstype
... synchronisé :0,8 % (1037872/1044124)K
1:s1 SyncSource primaire/secondaire à jour/incohérent C

Vérifiez ensuite sur OEL642 :

/etc/init.d/drbd status
pilote drbd chargé correctement ; état de l'appareil :
version :8.4.7-1 (api:1/proto:86-101)
GIT-hash :3a6a769340ef93b1ba2792c6461250790795db49 construit par [email protected], 2016-08-20 01:23 :44
m:res cs rods p monté fstype
... synchronisé :12,2 % (921244/1044124)K
1:s1 SyncTarget Secondary/Primary Incohérent/UpToDate C


Vous remarquerez dans le rapport d'état ci-dessus que maintenant le serveur OEL641 a été vérifié en tant que primaire et OEL642 en tant que serveur secondaire.

Cela signifie que maintenant, quels que soient les fichiers ou dossiers que nous avons créés sous la partition DRBD sur le serveur OEL641 sera synchronisé sur la partition DRBD à OEL642 .

6. Phase de test DRBD

Maintenant, nous sommes arrivés à la dernière partie qui teste le service DRBD pour s'assurer qu'il répond à l'objectif.

Commençons par monter la partition DRBD.

Effectuez les étapes ci-dessous une fois sur le serveur principal OEL641 UNIQUEMENT !

mkfs.ext3 /dev/drbd1
...
...
Écriture des tables d'inodes :terminé
Création du journal (4 096 blocs) :terminé
Écriture des superblocs et des informations de comptabilité du système de fichiers :terminé


Cela formate la partition avec le système de fichiers ext3.

Créez maintenant un dossier et montez-y la partition DRBD.

mkdir /dossierA
mount /dev/drbd1 /dossierA
df -h
Taille du système de fichiers utilisé Avail Use% Mounted on
/dev/drbd1 1004M 18M 936M 2% /folderA
cd /dossierA/
ls -h
perdu+trouvé

Comme indiqué ci-dessus, le nouveau dossier appelé dossierA a été créé avec succès.

Créons maintenant un fichier d'une taille de 30 Mo dans le dossier :

dd if=/dev/zero of=/folderA/testfile bs=1M count=30
30+0 enregistrements entrants
30+0 enregistrements sortants
31457280 octets (31 Mo) copiés, 0,178448 s, 176 Mo/s
ls -lh
total 31M
drwx------. 2 root root 16K Aug 21 08:55 lost+found
-rw-r--r--. 1 root root 30M 21 août 09:09 testfile


Ce sont les prérequis, commençons à tester le processus.

Comme résultat final, une fois que nous avons monté la partition DRBD sur le serveur OEL642 , le fichier de test doit exister dans le dossier.

Démontons maintenant la partition DRBD dans OEL641 et en faire un état secondaire. L'état secondaire signifie que vous ne pourrez pas monter la partition DRBD dans le système d'exploitation pour l'utiliser.

/etc/init.d/drbd status
pilote drbd chargé correctement ; état de l'appareil :
version :8.4.7-1 (api:1/proto:86-101)
GIT-hash :3a6a769340ef93b1ba2792c6461250790795db49 construit par [email protected], 2016-08-20 01:23 :44
m:res cs rods p monté fstype
1:s1 Connecté Primaire/Secondaire UpToDate/UpToDate C /folderA ext3
umount /folderA
drbdadm secondaire s1
/etc/init.d/drbd status
pilote drbd chargé correctement ; état de l'appareil :
version :8.4.7-1 (api:1/proto:86-101)
GIT-hash :3a6a769340ef93b1ba2792c6461250790795db49 construit par [email protected], 2016-08-20 01:23 :44
m:res cs rods p monté fstype
1:s1 Connecté Secondaire/Secondaire UpToDate/UpToDate C


Maintenant, les deux serveurs DRBD sont à l'état secondaire. Passons au serveur OEL642 et changez-le de Secondaire à Primaire.

Créez d'abord un dossier vide et montez sur la partition DRBD sur OEL642 :

mkdir /dossierB
cd /dossierB
ls -lh
total 0
/etc/init.d/drbd status
pilote drbd chargé correctement ; état de l'appareil :
version :8.4.7-1 (api:1/proto:86-101)
GIT-hash :3a6a769340ef93b1ba2792c6461250790795db49 construit par [email protected], 2016-08-20 01:23 :44
m:res cs rods p monté fstype
1:s1 Connecté Secondaire/Secondaire UpToDate/UpToDate C
drbdadm primaire s1
/etc/init.d/drbd status
pilote drbd chargé correctement ; état de l'appareil :
version :8.4.7-1 (api:1/proto:86-101)
GIT-hash :3a6a769340ef93b1ba2792c6461250790795db49 construit par [email protected], 2016-08-20 01:23 :44
m:res cs rods p monté fstype
1:s1 connecté primaire/secondaire UpToDate/UpToDate C
mount /dev/drbd1 /dossierB
df -h
Taille du système de fichiers utilisé 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% /dossierB
ls -lh /dossierB/
total 31M
drwx------. 2 root root 16K Aug 21 08:55 lost+found
-rw-r--r--. 1 root root 30M 21 août 09:09 testfile


Une fois que vous avez monté avec succès la partition DRBD dans votre nouveau dossier, vous remarquerez que le fichier que vous avez créé sur le serveur OEL641 avant existait automatiquement !


FAIT ! Vous avez installé et configuré avec succès DRBD sur CentOS !


Cent OS
  1. Comment installer et configurer Nginx sur CentOS 7

  2. Comment installer dig sur CentOS 7 et 8

  3. Comment installer Node.js et NPM sur CentOS 7

  4. Comment installer et configurer Redis sur CentOS 7

  5. Comment installer Node.js et NPM sur CentOS

Comment installer et configurer GitLab CE sur CentOS 7

Comment installer et configurer Zabbix sur CentOS 7

Comment configurer et installer Oracle Weblogic dans CentOS 7

Comment installer et configurer GitLab CE sur CentOS 8

Comment installer et configurer Nagios 4.0.7 sur CentOS 7

Comment installer et configurer Asterisk 13 (PBX) sur Centos 7