« LINUX:Drbd » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
Ligne 41 : | Ligne 41 : | ||
=Configuration= | =Configuration= | ||
Les fichiers de configuration se retrouvent dans le répertoire "/etc/drbd.d"; le fichier de démarrage se nomme "global_common.conf". Ensuite sont chargés tous les fichiers dont l'extension est ".res". | Les fichiers de configuration se retrouvent dans le répertoire "/etc/drbd.d"; le fichier de démarrage se nomme "global_common.conf". Nous n'y intervenons pas. Ensuite sont chargés tous les fichiers dont l'extension est ".res". Ils définissent les nouveaux devices Drbd. | ||
Nous créer un fichier que l'on nomme "data.res" dont voici le contenu: | Nous devons créer un fichier que l'on nomme "data.res" dont voici le contenu: | ||
---- | ---- | ||
resource '''drbddata''' { | resource '''drbddata''' { | ||
Ligne 90 : | Ligne 90 : | ||
** Derrière la sous-option "disk", nous avons le nom des deux devices de type disque dur que nous avons préparés ci-dessus | ** Derrière la sous-option "disk", nous avons le nom des deux devices de type disque dur que nous avons préparés ci-dessus | ||
** Derrière la sous-option "address", nous les informations réseaux: l'adresse réseau IPV4 de l'interface et le n° de port TCP | ** Derrière la sous-option "address", nous les informations réseaux: l'adresse réseau IPV4 de l'interface et le n° de port TCP | ||
** Derrière la sous-option "device", le nom du device résultant nommé "/dev/drbd1" | ** Derrière la sous-option "device", le nom du device résultant nommé "'''/dev/drbd1'''" | ||
L'ancienne option "syncer" permet de définir la vitesse de transfert en bytes; il existe des options plus récentes, plus adaptatives. Mais le système s'adapte de lui-même et il est calculé à la base pour des cartes réseaux 1Gb, ce que nous avons. Pour cette raison, cette option est mise en commentaire. Le plus facile, pour calculer cette vitesse en bytes et non en bits, on prend la vitesse du périphérique le plus lent entre les disques et les cartes réseaux et on la divise par trois. | L'ancienne option "syncer" permet de définir la vitesse de transfert en bytes; il existe des options plus récentes, plus adaptatives. Mais le système s'adapte de lui-même et il est calculé à la base pour des cartes réseaux 1Gb, ce que nous avons. Pour cette raison, cette option est mise en commentaire. Le plus facile, pour calculer cette vitesse en bytes et non en bits, on prend la vitesse du périphérique le plus lent entre les disques et les cartes réseaux et on la divise par trois. | ||
Version du 12 février 2023 à 17:21
→ retour au menu de la Haute disponibilité
But
Drbd est un équivalent du Raid 1 mais les deux disques sont sur des machines différentes et la synchronisation se fait à travers le réseau. Avec cette pièce de logiciel, on augmente la haute disponibilité. Deux disques en Raid 1 sur la même machine ne nous mettent pas à l’abri d'un arrêt de la machine. Cette configuration est plus délicate et lente mais évite ce cas de figure.
Il est conçu à être intégré à Pacemaker ou équivalent.
Installation
Quelques paquets sont à installer.
dnf install drbd dnf install drbd-utils dnf install drbd-pacemaker
Matériel et adressage IP
Pour ces exercices, nous avons besoin de deux machines, chacune avec deux interfaces réseaux. Le schéma ci-dessous reprend la connectique, le nom des machines Linux et leur adressage IP.
Les deux interfaces réseaux "eth2" sont réservés exclusivement à la synchronisation des disques en Drbd afin de ne pas être ralentis par d'autres accès et inversement.
Sur chaque machine, nous avons besoin d'un disque dur de même capacité; nous avons mis un disque de 160 Gb.
Prérequis
Comme par la suite, on va intégrer Drbd à Pacemaker, les prérequis de l'article sur la Configuration de base de Pacemaker sont d'actualité.
Préparation des disques durs
Il faut maintenant préparer ces disques. Comme vu dans l'article sur les Notions de gestion des disques, nous les préparons avec une seule partition de type LVM ("/dev/sdb1").
Ensuite nous ajoutons une couche LVM. On ajoutons ce device à un Volume Group nommé "fo1_vg_data" pour la machine "fo1.home.dom" et nommé "fo2_vg_data" pour la machine "fo2.home.dom". Ce device est seul dans ce Volume Group. Enfin on y ajoute un Logical Volume qui prend la totalité de l'espace nommé "fo1_lv_data" pour la machine "fo1.home.dom" et nommé "fo2_lv_data" pour la machine "fo2.home.dom". La couche LVM n'est pas obligatoire mais elle permet, si on le désire, utiliser plus d'un disque. Dans la seconde application, nous partirons directement sur les partitions sans couche LVM.
En synthèse, nous avons les devices suivants:
- "/dev/fo1_vg_data/fo1_lv_data" sur la machine "fo1.home.dom"
- "/dev/fo2_vg_data/fo2_lv_data" sur la machine "fo2.home.dom"
Configuration
Les fichiers de configuration se retrouvent dans le répertoire "/etc/drbd.d"; le fichier de démarrage se nomme "global_common.conf". Nous n'y intervenons pas. Ensuite sont chargés tous les fichiers dont l'extension est ".res". Ils définissent les nouveaux devices Drbd.
Nous devons créer un fichier que l'on nomme "data.res" dont voici le contenu:
resource drbddata { net { protocol C; verify-alg sha1; after-sb-0pri discard-zero-changes; after-sb-1pri discard-secondary; after-sb-2pri disconnect; } # syncer { rate 40M; } disk { on-io-error detach; } handlers { fence-peer "/usr/lib/drbd/crm-fence-peer.9.sh"; after-resync-target "/usr/lib/drbd/crm-unfence-peer.9.sh"; split-brain "/usr/lib/drbd/notify-split-brain.sh root"; out-of-sync "/usr/lib/drbd/notify-out-of-sync.sh root"; } on fo1.home.dom { disk /dev/fo1_vg_data/fo1_lv_data; address ipv4 192.168.2.71:7789; device /dev/drbd1 minor 1; meta-disk internal; } on fo2.home.dom { disk /dev/fo2_vg_data/fo2_lv_data; address ipv4 192.168.2.72:7789; device /dev/drbd1 minor 1; meta-disk internal; } }
--- Quelques options sont importantes:
- le nom de la ressource Drbd se nomme "drbddata"
- Les deux sections derrière l'option "on" définissent les caractéristiques des deux blocs constituant ce device Drbd
- Derrière l'option "on", nous avons le nom des machines
- Derrière la sous-option "disk", nous avons le nom des deux devices de type disque dur que nous avons préparés ci-dessus
- Derrière la sous-option "address", nous les informations réseaux: l'adresse réseau IPV4 de l'interface et le n° de port TCP
- Derrière la sous-option "device", le nom du device résultant nommé "/dev/drbd1"
L'ancienne option "syncer" permet de définir la vitesse de transfert en bytes; il existe des options plus récentes, plus adaptatives. Mais le système s'adapte de lui-même et il est calculé à la base pour des cartes réseaux 1Gb, ce que nous avons. Pour cette raison, cette option est mise en commentaire. Le plus facile, pour calculer cette vitesse en bytes et non en bits, on prend la vitesse du périphérique le plus lent entre les disques et les cartes réseaux et on la divise par trois.
Configurer le mur de feu ou FireWall
Si vous activez le Firewall, ce qui est recommandé, il faut y ajouter les règles suivantes qui sont déduites du fichier de configuration du paragraphe précédent.
- sur la machine "fo1.home.dom", on ajoute:
-A INPUT -p tcp -m tcp --sport 7789 -s 192.168.2.72 -m conntrack --ctstate NEW -j ACCEPT -A OUTPUT -p tcp -m tcp --dport 7789 -d 192.168.2.72 -j ACCEPT
- sur la machine "fo1.home.dom", on ajoute:
-A INPUT -p tcp -m tcp --sport 7789 -s 192.168.2.71 -m conntrack --ctstate NEW -j ACCEPT -A OUTPUT -p tcp -m tcp --dport 7789 -d 192.168.2.71 -j ACCEPT
→ retour au menu de la Haute disponibilité