Récupérer DRBD de l’état Standalone / Unknown

summer-is-coming

DRBD c’est très bien, mais si jamais une coupure de courant arrive, vous avez de grandes chances que vos petits nœuds soient complètement perdus et ne puissent plus être en mesure de se voir les uns les autres.

Ce petit problème m’est arrivé sur le cluster de stockage que j’ai mis en place pour mon projet de fin d’année et comme la solution est toute simple, je me la mets en mémo.

Voici ce que j’obtiens sur mon nœud primaire après coupure de courant :

# /etc/init.d/drbd status
drbd driver loaded OK; device status:
version: 8.3.8.1 (api:88/proto:86-94)
2011-01-21 17:26:47
m:res   cs          ro                   ds                     p      mounted  fstype
...     sync'ed:    51.1%                (8720/17804)M
1:nfs   StandAlone  Primary/Unknown      UpToDate/DUnknown      r----

Le secondaire est lui aussi un peu perdu :

# /etc/init.d/drbd status
drbd driver loaded OK; device status:
version: 8.3.8.1 (api:88/proto:86-94)
2011-01-21 17:26:47
m:res   cs            ro                   ds                     p  mounted  fstype
...     sync'ed:      24.5%                (13448/17804)M
1:nfs   WFConnection  Secondary/Unknown    UpToDate/DUnknown      C

Pour réparer tout ça, il va simplement déclarer le nœud secondaire comme obsolète et reconnecter les deux périphériques afin qu’il puissent reprendre leur synchronisation.

Sur la machine que vous déclarez obsolète (le secondaire en général) :

sudo drbdadm disconnect nfs
sudo drbdadm -- --discard-my-data connect nfs
sudo service drbd status
drbd driver loaded OK; device status:
version: 8.3.8.1 (api:88/proto:86-94)
2011-01-21 17:26:47
m:res   cs            ro                   ds                     p  mounted  fstype
...     sync'ed:      41.8%                (10376/17804)M
1:nfs   WFConnection  Secondary/Unknown    UpToDate/DUnknown      C

(nfs étant le nom de ma ressource DRBD)

Et sur la machine avec les données valides :

sudo drbdadm connect nfs
sudo service drbd status
drbd driver loaded OK; device status:
version: 8.3.8.1 (api:88/proto:86-94)
GIT-hash: 0d8589fcc32c874df57c930ca1691399b55ec893 build by gardner@, 2011-01-21 17:26:47
m:res   cs          ro                   ds                     p  mounted  fstype
...     sync'ed:    12.1%                (1254008/1422724)K
1:nfs   SyncSource  Primary/Secondary    UpToDate/Inconsistent  C
sudo drbdadm primary nfs
sudo service drbd status
drbd driver loaded OK; device status:
version: 8.3.8.1 (api:88/proto:86-94)
GIT-hash: 0d8589fcc32c874df57c930ca1691399b55ec893 build by gardner@, 2011-01-21 17:26:47
m:res   cs          ro                 ds                     p  mounted  fstype
...     sync'ed:    32.2%              (968504/1422724)K
1:nfs   SyncSource  Primary/Secondary  UpToDate/Inconsistent  C

Et voilà ! Après ça, tout devrait rentrer dans l’ordre et vos deux petits devraient reprendre leur synchronisation.

Cet article vous a plu ? Partagez-le sur les réseaux sociaux !

Twitter Facebook Google Plus email