Bonjour, Habrovsk. Il y avait une tĂąche - dĂ©ployer un stockage haute disponibilitĂ© Ă tolĂ©rance de pannes Ă l'aide de pacamaker + drbd (en mode primaire double) + clvmd + ctdb, qui sera montĂ© sur le serveur. Je ferai une rĂ©serve que je tombe sur tous ces outils pour la premiĂšre fois et serai heureux des critiques et des ajouts / corrections. Sur Internet, il n'y a pas d'instructions spĂ©cifiques Ă cet ensemble ou les informations sont obsolĂštes. Cela fonctionne pour le moment, mais il y a un problĂšme dont j'espĂšre trouver la solution dans un proche avenir. Toutes les actions doivent ĂȘtre effectuĂ©es sur les deux nĆuds, sauf indication contraire.
Commençons. Nous avons deux machines virtuelles sur CentOS 7.
1) Pour plus de fiabilité, présentez-les à / etc / hosts
192.168.0.1 node1 192.168.0.2 node2
2) Il n'y a pas de DRBD dans les référentiels standard, vous devez donc en connecter un tiers.
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org rpm -Uvh https://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
3) Installez drbd version 8.4 (je n'ai pas pu obtenir 9.0 en mode double primaire)
yum install -y kmod-drbd84 drbd84-utils
4) Activer et activer le module du noyau drbd au démarrage
modprobe drbd echo drbd > /etc/modules-load.d/drbd.conf
5) Créez le fichier de configuration pour la ressource drbd /etc/drbd.d/r0.res
resource r0 { protocol C; device /dev/drbd0; meta-disk internal; disk /dev/sdb; net { allow-two-primaries; } disk { fencing resource-and-stonith; } handlers { fence-peer "/usr/lib/drbd/crm-fence-peer.sh"; after-resync-target "/usr/lib/drbd/crm-unfence-peer.sh"; } on node1 { address 192.168.0.1:7788; } on node2 { address 192.168.0.2:7788; }
6) Désactivez l'unité drbd (le stimulateur cardiaque en sera responsable plus tard), créez des métadonnées pour le disque drbd, augmentez la ressource
systemctl disable drbd drbdadm create-md r0 drbdadm up r0
7) Sur le premier nĆud, rendez la ressource principale
drbdadm primary --force r0
8) Mettez le stimulateur cardiaque
yum install -y pacemaker pcs resource-agents
9) DĂ©finissez un mot de passe pour le hacluster utilisateur pour l'autorisation sur les nĆuds
echo CHANGEME | passwd --stdin hacluster
10) ExĂ©cutez un stimulateur cardiaque sur les deux nĆuds
systemctl enable pcsd systemctl start pcsd
11) Connectez-vous au cluster. A partir de cette Ă©tape, nous faisons tout sur un seul nĆud
pcs cluster auth node1 node2 -u hacluster
12) Créez un cluster nommé samba_cluster
pcs cluster setup --force --name samba_cluster node1 node2
13) activer les nĆuds
pcs cluster enable --all pcs cluster start --all
14) Puisque nous avons des machines virtuelles comme serveurs, nous désactivons le mécanisme STONITH
pcs property set stonith-enabled=false pcs property set no-quorum-policy=ignore
15) Créez un VIP
pcs resource create virtual_ip ocf:heartbeat:IPaddr2 ip=192.168.0.10 cidr_netmask=24 op monitor interval=60s
16) Créer une ressource drbd
pcs cluster cib drbd_cfg pcs -f drbd_cfg resource create DRBD ocf:linbit:drbd drbd_resource=r0 op monitor interval=60s pcs -f drbd_cfg resource master DRBDClone DRBD master-max=2 master-node-max=1 clone-node-max=1 clone-max=2 notify=true interleave=true pcs cluster cib-push drbd_cfg
17) Installez les packages nécessaires pour clvm et préparez clvm
yum install -y lvm2-cluster gfs2-utils /sbin/lvmconf --enable-cluster
18) Ajoutez la ressource dlm et clvd au stimulateur cardiaque
pcs resource create dlm ocf:pacemaker:controld op monitor interval=30s on-fail=fence clone interleave=true ordered=true pcs resource create clvmd ocf:heartbeat:clvm op monitor interval=30s on-fail=fence clone interleave=true ordered=true pcs constraint colocation add clvmd-clone with dlm-clone
19) à ce stade, le démarrage de clvmd et dlm devrait générer une erreur. Nous allons à l'interface Web pacemaker
192.168.0.1 : 2224. Si le cluster n'apparaßt pas, ajoutez-le à "Edd existant". Ensuite, allez dans Resources - dlm - arguments optionnels et définissez la valeur allow_stonith_disabled = true
20) Nous définissons la file d'attente de chargement des ressources
pcs constraint order start DRBDClone then dlm-clone pcs constraint order start dlm-clone then clvmd-clone
21) Interdire Ă LVM d'Ă©crire le cache et de l'effacer. Sur les deux nĆuds
sed -i 's/write_cache_state = 1/write_cache_state = 0/' /etc/lvm/lvm.conf rm /etc/lvm/cache/*
22) Nous Ă©ditons /etc/lvm/lvm.conf pour que lvm ne voie pas / dev / sdb. Sur les deux nĆuds
23) Créez une partition CLVM. Nous ne faisons qu'une seule note
$ vgcreate -Ay -cy cl_vg /dev/drbd0 Physical volume "/dev/drbd0" successfully created. Clustered volume group "cl_vg" successfully created $ lvcreate -l100%FREE -n r0 cl_vg Logical volume "r0" created.
24) Nous marquons la section dans gfs2
mkfs.gfs2 -j2 -p lock_dlm -t drbd-gfs2:r0 /dev/cl_vg/r0
25) Ensuite, ajoutez le montage de cette section dans le stimulateur cardiaque et dites-lui de démarrer aprÚs clvmd
pcs resource create fs ocf:heartbeat:Filesystem device="/dev/cl_vg/r0" directory="/mnt/" fstype="gfs2" --clone pcs constraint order start clvmd-clone then fs-clone
26) Maintenant c'est au tour de ctdb de lancer samba
yum install -y samba ctdb cifs-utils
27) Modifiez la configuration /etc/ctdb/ctdbd.conf
CTDB_RECOVERY_LOCK="/mnt/ctdb/.ctdb.lock" CTDB_NODES=/etc/ctdb/nodes CTDB_MANAGES_SAMBA=yes CTDB_LOGGING=file:/var/log/ctdb.log CTDB_DEBUGLEVEL=NOTICE
28) CrĂ©ez un fichier avec une liste de nĆuds. ATTENTION! AprĂšs chaque IP dans la liste des nĆuds, un saut de ligne doit ĂȘtre prĂ©sent. Sinon, le nĆud Ă©chouera lors de l'initialisation.
cat /etc/ctdb/nodes 192.168.0.1 192.168.0.2
29) Ajouter Ă la configuration /etc/samba/smb.conf
[global] clustering = yes private dir = /mnt/ctdb lock directory = /mnt/ctdb idmap backend = tdb2 passdb backend = tdbsam [test] comment = Cluster Share path = /mnt browseable = yes writable = yes
30) Enfin, crĂ©ez la ressource ctdb et indiquez qu'elle doit ĂȘtre chargĂ©e aprĂšs
pcs constraint order start fs-clone then samba
Et maintenant sur le problÚme que je n'ai pas encore décidé. Si vous redémarrez le noeud, le groupe entier s'effondre, car drbd a besoin de temps pour activer / dev / drbd0. DLM ne voit pas la partition, car elle n'est pas encore activée et ne démarre pas, etc. La solution consiste à activer la partition manuellement et à redémarrer les ressources du stimulateur cardiaque
vgchage -ay pcs resource refresh