Ci-dessous, les différences entre deux révisions de la page.
| Prochaine révision | Révision précédente | ||
|
cluster:samba [2020/01/05 16:57] etienne créée |
cluster:samba [2020/01/05 20:18] (Version actuelle) etienne |
||
|---|---|---|---|
| Ligne 13: | Ligne 13: | ||
| Nous gardons 172.20.1.20/ | Nous gardons 172.20.1.20/ | ||
| + | |||
| + | ===== Préparation ===== | ||
| + | |||
| + | Il est utile, une fois la configuration réseau créée, de créer des enregistrements pour les IP du lien de réplication dans le fichier ''/ | ||
| + | |||
| + | < | ||
| + | 10.0.0.10 | ||
| + | 10.0.0.11 | ||
| + | </ | ||
| + | |||
| + | Il est utile de créer des clés SSH pour l' | ||
| + | |||
| + | Sur S0 | ||
| + | <code bash> | ||
| + | # ssh-keygen | ||
| + | # scp / | ||
| + | </ | ||
| + | |||
| + | Sur S1 | ||
| + | <code bash> | ||
| + | # ssh-keygen | ||
| + | # scp / | ||
| + | </ | ||
| + | |||
| + | Pour que cela fonctionne, il faut temporairement mettre le '' | ||
| + | |||
| + | Finalement régler les droits du fichier '' | ||
| ===== Ressources DRBD ===== | ===== Ressources DRBD ===== | ||
| Ligne 42: | Ligne 69: | ||
| Il est important, là, de mettre en place des solutions d' | Il est important, là, de mettre en place des solutions d' | ||
| + | |||
| + | Un fois la configuration effectuée, sur chaque serveur créer le disque : | ||
| + | |||
| + | <code bash> | ||
| + | # drbdadm create-md sstorage | ||
| + | # drbdadm up sstorage | ||
| + | </ | ||
| + | |||
| + | À ce stade les disques ne contiennent rien et DRBD ne le sait pas encore, les deux serveurs sont donc en mode " | ||
| + | |||
| + | <code bash> | ||
| + | # cat / | ||
| + | version: 8.4.10 (api: | ||
| + | srcversion: 15055BDD6F0D23278182874 | ||
| + | 0: cs: | ||
| + | ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:4194140 | ||
| + | </ | ||
| + | |||
| + | Il devient donc nécessaire de faire passer un serveur en primaire et d' | ||
| + | |||
| + | Sur un seul serveur (S0 par exemple) | ||
| + | <code bash> | ||
| + | # drbdadm invalidate-remote sstorage | ||
| + | # drbdadm primary sstorage | ||
| + | # cat / | ||
| + | version: 8.4.10 (api: | ||
| + | srcversion: 15055BDD6F0D23278182874 | ||
| + | 0: cs: | ||
| + | ns:510724 nr:0 dw:0 dr:510912 al:0 bm:0 lo:0 pe:1 ua:1 ap:0 ep:1 wo:f oos:3684188 | ||
| + | [=> | ||
| + | finish: 0:03:00 speed: 20,336 (13,780) K/sec | ||
| + | </ | ||
| + | |||
| + | On peut donc faire passer l' | ||
| + | <code bash> | ||
| + | # drbdadm primary sstorage | ||
| + | </ | ||
| + | |||
| + | Finalement il faut s' | ||
| + | <code bash> | ||
| + | # systemctl enable drbd | ||
| + | </ | ||
| ===== OCFS2 ===== | ===== OCFS2 ===== | ||
| Ligne 47: | Ligne 116: | ||
| Le système de fichier OCFS2 est un système de fichier fonctionnant en cluster. Simple et complet, il suffit à bien des situations. Il vient avec un gestionnaire de verrou fonctionnel nous évitant de devoir déployer des outils comme '' | Le système de fichier OCFS2 est un système de fichier fonctionnant en cluster. Simple et complet, il suffit à bien des situations. Il vient avec un gestionnaire de verrou fonctionnel nous évitant de devoir déployer des outils comme '' | ||
| - | Un fois installé, il faut le configurer, sur Debian cela se fait avec '' | + | Un fois installé, il faut le configurer, sur Debian cela se fait avec '' |
| + | - Would you like to start an OCFS2 cluster (O2CB) at boot time? '' | ||
| + | - Name of the cluster to start at boot time: '' | ||
| + | |||
| + | Et pour les autres questions, les valeurs par défaut sont corrects. Il est nécessaire, | ||
| + | |||
| + | <code bash> | ||
| + | Requires=network-online.target drbd.service | ||
| + | After=network-online.target drbd.service | ||
| + | </ | ||
| + | |||
| + | |||
| + | Suivi de '' | ||
| + | |||
| + | La configuration du cluster est relativement simple, dans le fichier ''/ | ||
| + | |||
| + | <code bash> | ||
| + | cluster: | ||
| + | heartbeat_mode = local | ||
| + | node_count = 2 | ||
| + | name = scluster | ||
| + | |||
| + | node: | ||
| + | number = 0 | ||
| + | cluster = scluster | ||
| + | ip_port = 7777 | ||
| + | ip_address = 10.0.0.10 | ||
| + | name = s0 | ||
| + | |||
| + | node: | ||
| + | number = 1 | ||
| + | cluster = scluster | ||
| + | ip_port = 7777 | ||
| + | ip_address = 10.0.0.11 | ||
| + | name = s1 | ||
| + | |||
| + | heartbeat: | ||
| + | cluster = scluster | ||
| + | region = local | ||
| + | </ | ||
| + | |||
| + | Le mode " | ||
| + | |||
| + | Un fois le fichier sur les deux serveurs, il est temps de créer notre système de fichier. Lancer les services '' | ||
| + | |||
| + | <code bash> | ||
| + | # systemctl restart o2cb | ||
| + | # systemctl restart ocfs2 | ||
| + | </ | ||
| + | |||
| + | À ce stade vous pouvez vérifier le fonctionnement avec '' | ||
| + | |||
| + | Et création du système de fichier (sur un serveur) : | ||
| + | |||
| + | <code bash> | ||
| + | # mkfs.ocfs2 --cluster-stack=o2cb --fs-feature-level=max-features | ||
| + | </ | ||
| + | |||
| + | Finalement, si tout ce passe bien, vous pouvez monter votre système de fichier sur chaque serveur : | ||
| + | |||
| + | <code bash> | ||
| + | # mount -t ocfs2 /dev/drbd0 / | ||
| + | </ | ||
| + | |||
| + | Dès lors vous pouvez vous amuser à créer un fichier sur un serveur et le supprimer sur l' | ||
| + | |||
| + | L' | ||
| + | |||
| + | <code bash> | ||
| + | / | ||
| + | </ | ||
| + | |||
| + | Dès lors, si vous redémarrez le système, il reviendra avec votre système de fichier '' | ||
| + | |||
| + | ===== CTDB ===== | ||
| + | |||
| + | Après l' | ||
| + | |||
| + | <code bash> | ||
| + | 172.20.1.20/ | ||
| + | 172.20.1.21/ | ||
| + | < | ||
| + | |||
| + | Ensuite il faut indiquer tous les nœuds de notre cluster dans le fichier ''/ | ||
| + | <code bash> | ||
| + | 10.0.0.10 | ||
| + | 10.0.0.11 | ||
| + | </ | ||
| + | |||
| + | Il est nécessaire de créer quelques répertoires aussi (du moins sur Debian) : | ||
| + | <code bash> | ||
| + | # mkdir -p / | ||
| + | # mkdir -p / | ||
| + | # mkdir -p / | ||
| + | # mkdir / | ||
| + | </ | ||
| + | |||
| + | Le problème de '' | ||
| + | |||
| + | Sur S0 : | ||
| + | <code bash> | ||
| + | node address = 10.0.0.10 | ||
| + | </ | ||
| + | |||
| + | Sur S1: | ||
| + | <code bash> | ||
| + | node address = 10.0.0.11 | ||
| + | </ | ||
| + | |||
| + | Il est aussi nécessaire, | ||
| + | |||
| + | <code bash> | ||
| + | ExecStartPre=-/ | ||
| + | PIDFile=/ | ||
| + | </ | ||
| + | |||
| + | Il faut indiquer, aussi, de démarrer ctdb après ocfs2. Dans le même fichier : | ||
| + | <code bash> | ||
| + | After=network-online.target time-sync.target ocfs2.service | ||
| + | </ | ||
| + | |||
| + | Et recharger systemd avec '' | ||
| + | |||
| + | Dès lors, lorsqu' | ||
| + | |||
| + | <code bash> | ||
| + | # ctdb status | ||
| + | Number of nodes:2 | ||
| + | pnn:0 10.0.0.10 | ||
| + | pnn:1 10.0.0.11 | ||
| + | Generation: | ||
| + | Size:2 | ||
| + | hash:0 lmaster:0 | ||
| + | hash:1 lmaster:1 | ||
| + | Recovery mode:NORMAL (0) | ||
| + | Recovery master:1 | ||
| + | </ | ||