Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
utilisateurs:mrwaloo:drbd [Le 25/01/2009, 22:19]
MrWaloo
— (Version actuelle)
Ligne 1: Ligne 1:
-====== Mirroring sur deux serveurs : drbd ====== 
- 
-===== Installation sur Ubuntu Server ===== 
-<​note>​Le module ''​drbd''​ est disponible avec le noyau ''​server''​ "de base" depuis Hardy Heron((à vrai dire je ne sais pas si c'​était déjà le cas pour les versions précédentes)). Cependant, afin d'​avoir un système récent avec un minimum de bug et de faille de sécurité, on passera au noyau ''​server''​ le plus récent.</​note>​ 
- 
-Mise à jour du système : 
-  * [[http://​doc.ubuntu-fr.org/​apt-get#​mise_a_jour_depots|Mise à jour des dépots]] 
-  * [[http://​doc.ubuntu-fr.org/​apt-get#​mise_a_jour_paquets|Mise à jour des paquets]] (dist-upgrade) 
-Passer à la version du noyau la plus récente. Redémarrer. 
- 
-Vérification de la présence du module ''​drbd''​ : 
-<​code>​cat /​proc/​drbd</​code>​ 
-<​file>​cat:​ /proc/drbd: Aucun fichier ou répertoire de ce type</​file>​ 
-<​code>​modprobe drbd 
-cat /​proc/​drbd</​code>​ 
-<​file>​version:​ 8.2.6 (api:​88/​proto:​86-88) 
-GIT-hash: 3e69822d3bb4920a8c1bfdf7d647169eba7d2eb4 build by phil@fat-tyre,​ 2008-05-30 12:​59:​17</​file>​ 
-Sous Hardy Heron, la version du module et des outils est la 8.0.11. 
- 
-[[http://​doc.ubuntu-fr.org/​apt-get#​installation|Installation]] de ''​drbd8-utils''​ version **idem à la version du module** sans quoi le fonctionnement correct n'est pas garanti.\\ 
-Un paquet suggéré : ''​heartbeat''​ : tout le monde est sur la même longueur d'​onde... ​ 
- 
-<note important>​Il faut que le service ''​drbd''​ démarre, sinon le script de démarrage de ''​drbd''​ de ''​heartbeat''​ ne fonctionne pas. Il faut donc lancer la commande\\ 
-<​code>​update-rc.d drbd defaults 70</​code>​ 
-ou simplement copier le lien qui se trouve dans **/​etc/​rc3.d** vers **/​etc/​rc2.d** si ça ne fonctionne pas.</​note>​ 
- 
-Finalisation pour faire en sorte que les outils ''​heartbeat''​ fonctionnent :((à faire après l'​installation de heartbeat, évidemment)) 
-<​code>​chgrp haclient /​sbin/​drbdsetup 
-chmod o-x /​sbin/​drbdsetup 
-chmod u+s /​sbin/​drbdsetup 
- 
-chgrp haclient /​sbin/​drbdmeta 
-chmod o-x /​sbin/​drbdmeta 
-chmod u+s /​sbin/​drbdmeta</​code>​ 
- 
-===== Configuration ===== 
-[[:​tutoriel:​comment_editer_un_fichier|Éditer le fichier]] **/​etc/​drbd.conf** : 
-<​file>​global { 
-  usage-count no; 
-} 
- 
-common { 
-  protocol C; 
-  ​ 
-  syncer { 
-    rate 3M; 
-    verify-alg sha1; 
-  } 
-  ​ 
-  handlers { 
-    pri-lost-after-sb "​reboot -f"; 
-    pri-lost "echo Déconnection des serveurs, vérifier les logs | mail -s '​SERVEUR:​ Alerte DRBD' admin@domain.fr";​ 
-    out-of-sync "echo Désynchronisation des serveurs, vérifier les logs | mail -s '​SERVEUR:​ Alerte DRBD' admin@domain.fr";​ 
-    pri-on-incon-degr "​reboot -f"; 
-    outdate-peer "/​usr/​lib/​heartbeat/​drbd-peer-outdater -t 5"; 
-    local-io-error "echo o > /​proc/​sysrq-trigger ; halt -f"; 
-  } 
-} 
- 
-resource r0 { 
-  device ​   /dev/drbd0; 
-  disk      /dev/sda6; 
-  meta-disk internal; 
-  ​ 
-  disk { 
-    on-io-error ​  ​detach;​ 
-  } 
-  ​ 
-  startup { 
-    wfc-timeout ​ 60; 
-    degr-wfc-timeout 30; 
-    become-primary-on serv1; 
-  } 
-  ​ 
-  net { 
-    after-sb-0pri discard-older-primary;​ 
-    after-sb-1pri call-pri-lost-after-sb;​ 
-    after-sb-2pri call-pri-lost-after-sb;​ 
-  } 
-  on serv1 { 
-    address ​  ​192.168.214.10:​7788;​ 
-  } 
-  on serv2 { 
-    address ​  ​192.168.214.11:​7788;​ 
-  } 
-}</​file>​ 
-<​note>​Ce fichier de configuration doit être scrupuleusement identique sur les deux serveurs.</​note>​ 
- 
-==== À faire sur chaque serveur en même temps ==== 
-<note tip>Si vous vous êtes dit que vous alliez tout installer sur un serveur puis [[http://​doc.ubuntu-fr.org/​tutoriel/​comment_sauvegarder_partition_avec_partimage|cloner]] le premier serveur pour en obtenir un second identique (ce qui peut engendrer d'​autres problèmes FIXME (interface réseau via udev, fstab,​...)),​ c'est là qu'il faut que vous sachiez que les instructions qui suivent doivent être lancées sur chacun des 2 serveurs, à moins de n'​utiliser ''​dd''​ pour l'​ensemble du/des disque(s) dur(s). Ce qui peut prendre //pas mal de temps//​...\\ 
-**Sinon, il faut répéter tout ce qui vient d'​être fait sur le second serveur avant d'​aller plus loin.**</​note>​ 
- 
-<​note>//​En même temps// signifie simplement que la commande doit être lancée sur les 2 serveurs et que la suivante ne peut être lancée sur quelque serveur que ce soit que si la précédente a terminé sans erreur sur les 2 serveurs.</​note>​ 
- 
-Lancer : 
-<​code>​drbdadm create-md r0</​code>​ 
-<​file>​v08 Magic number not found 
-md_offset 1093922816 
-al_offset 1093890048 
-bm_offset 1093853184 
- 
-Found some data 
- ​==>​ This might destroy existing data! <== 
- 
-Do you want to proceed? 
-[need to type '​yes'​ to confirm] </​file>​ 
-Taper ''​yes''​. Il est possible qu'une autre question demandant confirmation de destruction des données de la partition soit posée, répondez ''​yes''​ si vous êtes sur de ce que vous faites. 
-<​file>​v07 Magic number not found 
-v07 Magic number not found 
-v08 Magic number not found 
-Writing meta data... 
-initialising activity log 
-NOT initialized bitmap 
-New drbd meta data block sucessfully created. 
-success</​file>​ 
-<​note>​Il se peut qu'un message disant que cette partition contient des données vous empêche de continuer, il faut alors lancer la commande\\ 
-<​code>​shred -zvf -n 1 /​dev/​sda6</​code>​ 
-afin de remplir la partition avec des zéros, puis de relancer la commande.</​note>​ 
- 
-Si le module ''​drbd''​ n'est pas chargé : 
-<​code>​modprobe drbd</​code>​ 
-Puis : 
-<​code>​drbdadm up r0</​code>​ 
-La commande suivante doit donner quelque chose du genre : 
-<​code>#​ cat /​proc/​drbd</​code>​ 
-<​file>​version:​ 8.2.6 (api:​88/​proto:​86-88) 
-GIT-hash: 3e69822d3bb4920a8c1bfdf7d647169eba7d2eb4 build by phil@fat-tyre,​ 2008-05-30 12:59:17 
- 0: cs:​Connected st:​Secondary/​Secondary ds:​Inconsistent/​Inconsistent C r--- 
-    ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 oos:​149134808</​file>​ 
-Puisque ''​drbd''​ est lancé mais aucun serveur //​primaire//​ n'est déclaré. On le voit car après ''​st:'',​ il est indiqué ''​Secondary/​Secondary''​ ce qui signifie que le nœud sur lequel la commande est exécuté est //​secondaire//​ (le premier avant le ''/''​) et que l'​autre l'est aussi (le second après le ''/''​).\\ 
-Pour ne connaître que l'​état de la grappe ''​drbd'',​ la commande suivante suffit : 
-<​code>​drbdadm state r0</​code>​ 
-<​file>​Secondary/​Secondary</​file>​ 
- 
-==== À ne faire que sur le serveur primaire ==== 
-Il s'agit maintenant de déclarer un des 2 serveurs comm 
- //​primaire//,​ le serveur //​secondaire//​ se synchronisera //​automagiquement//​((oui je sais, ce terme n'est pas de moi, il est souvent utilisé dans les documentations Debian et dérivés, d'où sa place ici.)).\\ 
-Lancer la commande : 
-<​code>​drbdadm -- --overwrite-data-of-peer primary r0 
- 
-cat /​proc/​drbd</​code>​ 
-<​file>​version:​ 8.2.6 (api:​88/​proto:​86-88) 
-GIT-hash: 3e69822d3bb4920a8c1bfdf7d647169eba7d2eb4 build by phil@fat-tyre,​ 2008-05-30 12:59:17 
- 0: cs:​SyncSource st:​Primary/​Secondary ds:​UpToDate/​Inconsistent C r--- 
-    ns:2240 nr:0 dw:0 dr:2240 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 oos:​149132568 
-        [>​....................] sync'​ed: ​ 0.1% (145637/​145639)M 
-        finish: 17:15:38 speed: 2,240 (2,240) K/​sec</​file>​ 
-On voit que le serveur secondaire se synchronise avec une superbe barre de progression.\\ 
-Le temps indiqué après ''​finish:''​ est le temps indicatif restant avant la fin de la première synchronisation. Pour diminuer ce temps, il est vivement conseillé de //​débrider//​ le taux de transfert de la synchronisation en modifiant **provisoirement** la configuration de ''​drbd''​. Dans le fichier **/​etc/​drbd.conf**,​ remplacer : 
-<​file> ​   rate 3M;</​file>​ 
-par 
-<​file> ​   rate 100M;</​file>​ 
-Pour prendre la modification en compte : 
-<​code>​drbdadm adjust r0</​code>​ 
-Le débit ira donc aussi vite qu'il peut. Lire le chapitre concernant les débits à la fin de ce document. 
- 
-Une fois les serveurs synchronisés,​ 
-<​code>​cat /​proc/​drbd</​code>​ 
-<​file>​version:​ 8.2.6 (api:​88/​proto:​86-88) 
-GIT-hash: 3e69822d3bb4920a8c1bfdf7d647169eba7d2eb4 build by phil@fat-tyre,​ 2008-05-30 12:59:17 
- 0: cs:​Connected st:​Primary/​Secondary ds:​UpToDate/​UpToDate C r--- 
-    ns:2240 nr:0 dw:0 dr:2240 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 oos:​149132568</​file>​ 
-il est temps de formater la partition ''​drbd''​ (vous avez, bien évidemment pensé à revenir à un débit de synchronisation normal) : 
-<​code>​mkfs.ext3 /​dev/​drbd0</​code>​ 
-et de monter votre partition. Le montage de la partition doit utiliser **/​dev/​drbd0**. 
-<note important>​ 
-Dans le cas de l'​utilisation de ''​drbd''​ avec ''​heartbeat''​ et ''​samba'',​ le montage du disque est géré par ''​heartbeat''​.</​note>​ 
- 
-===== Au sujet de la gestion de la bande passante ===== 
-La valeur du paramètre ''​rate''​ est exprimée en Mo/sec (d'où le ''​M''​),​ si vous êtes en réseau 100Mbit/s, n'​allez pas au dessus de ''​9M'',​ puisqu'​il s'agit (environ) de la valeur maximale de débit. La valeur ''​3M''​ correspond au tiers de ce débit afin de laisser de la bande passante aux utilisateurs. Le tiers de la bande passante est une valeur ​ conseillée sur le site de ''​drbd''​. 
- 
-Si vos serveurs ont une carte réseau Gigabit, vous pouvez optimiser les débits de deux manières : 
-  * Séparation physique des flux 
-  * Sous-réseau Gigabit dédié 
- 
-==== Séparation physique des flux ==== 
-Il est tout à fait possible (et conseillé, mais je n'ai pas mis cette solution en place) d'​avoir 2 cartes réseau sur les serveurs : 
-  * une pour la connexion au réseau : cette connexion sert aux utilisateurs pour accéder aux données, 
-  * une pour une connexion directe (via câble croisé) entre les serveurs : celle-ci pour la synchronisation des données **uniquement**((il ne faut pas faire passer le signe de vie ''​heartbeat''​ par cette connexion, car le signe de vie **doit** passer par le lien que les utilisateurs utilisent pour vérifier son bon fonctionnement.)). 
- 
-==== Sous-réseau Gigabit dédié ==== 
-Dans le cas où le réseau utilisateur est en 100Mbit/s, il est possible d'​utiliser un //petit// switch Gigabit (de 3 ports minimum) : 
-  * Port 1 : liaison avec le switch du réseau utilisateur (lien 100Mbit/s) 
-  * Port 2 : liaison avec un serveur (lien Gigabit) 
-  * Port 3 : liaison avec l'​autre serveur (lien Gigabit) 
-De cette manière, la synchronisation entre les deux serveurs se fait via un lien Gigabit, et les utilisateurs ne sont pas pénalisés. La valeur du débit peut alors être fixée à ''​10M''​. 
- 
----- 
  
  • utilisateurs/mrwaloo/drbd.1232918358.txt.gz
  • Dernière modification: Le 18/04/2011, 14:42
  • (modification externe)