Guten Tag, Habrovsk. Es gab eine Aufgabe - fehlertoleranten hochverfügbaren Speicher mit pacamaker + drbd (im dualen Primärmodus) + clvmd + ctdb bereitzustellen, der auf dem Server bereitgestellt wird. Ich werde reservieren, dass ich zum ersten Mal auf all diese Tools stoße und freue mich über Kritik und Ergänzungen / Korrekturen. Im Internet gibt es entweder keine speziellen Anweisungen für dieses Bundle oder die Informationen sind veraltet. Dies funktioniert im Moment, aber es gibt ein Problem, dessen Lösung ich hoffentlich in naher Zukunft finden werde. Alle Aktionen müssen auf beiden Knoten ausgeführt werden, sofern nicht anders angegeben.
Fangen wir an. Wir haben zwei virtuelle Maschinen unter CentOS 7.
1) Führen Sie sie aus Gründen der Zuverlässigkeit in / etc / hosts ein
192.168.0.1 node1 192.168.0.2 node2
2) In Standard-Repositorys befindet sich kein DRBD. Sie müssen daher eine Verbindung zu einem Drittanbieter herstellen.
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) Installieren Sie drbd Version 8.4 (ich konnte 9.0 im dualen Primärmodus nicht bekommen)
yum install -y kmod-drbd84 drbd84-utils
4) Aktivieren und aktivieren Sie das drbd-Kernelmodul beim Start
modprobe drbd echo drbd > /etc/modules-load.d/drbd.conf
5) Erstellen Sie die Konfigurationsdatei für die 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) Deaktivieren Sie die drbd-Einheit (später ist der Schrittmacher dafür verantwortlich), erstellen Sie Metadaten für die drbd-Festplatte und erhöhen Sie die Ressource
systemctl disable drbd drbdadm create-md r0 drbdadm up r0
7) Machen Sie auf dem ersten Knoten die Ressource primär
drbdadm primary --force r0
8) Setzen Sie den Schrittmacher
yum install -y pacemaker pcs resource-agents
9) Legen Sie ein Kennwort für den Benutzer-Hacluster für die Autorisierung auf Knoten fest
echo CHANGEME | passwd --stdin hacluster
10) Führen Sie den Schrittmacher auf beiden Knoten aus
systemctl enable pcsd systemctl start pcsd
11) Melden Sie sich beim Cluster an. Ab diesem Zeitpunkt erledigen wir alles auf einem Knoten
pcs cluster auth node1 node2 -u hacluster
12) Erstellen Sie einen Cluster mit dem Namen samba_cluster
pcs cluster setup --force --name samba_cluster node1 node2
13) Knoten aktivieren
pcs cluster enable --all pcs cluster start --all
14) Da wir virtuelle Maschinen als Server haben, deaktivieren wir den STONITH-Mechanismus
pcs property set stonith-enabled=false pcs property set no-quorum-policy=ignore
15) Erstellen Sie einen VIP
pcs resource create virtual_ip ocf:heartbeat:IPaddr2 ip=192.168.0.10 cidr_netmask=24 op monitor interval=60s
16) Erstellen Sie eine drbd-Ressource
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) Installieren Sie die erforderlichen Pakete für clvm und bereiten Sie clvm vor
yum install -y lvm2-cluster gfs2-utils /sbin/lvmconf --enable-cluster
18) Fügen Sie die Ressource dlm und clvd zum Schrittmacher hinzu
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) Zu diesem Zeitpunkt sollte das Starten von clvmd und dlm einen Fehler auslösen. Wir gehen zum Webinterface-Schrittmacher
192.168.0.1 : 2224. Wenn der Cluster nicht angezeigt wird, fügen Sie ihn zu "Vorhandene bearbeiten" hinzu. Gehen Sie als Nächstes zu Resources - dlm - optionale Argumente und setzen Sie den Wert allow_stonith_disabled = true
20) Wir stellen die Warteschlange zum Laden von Ressourcen ein
pcs constraint order start DRBDClone then dlm-clone pcs constraint order start dlm-clone then clvmd-clone
21) Verbieten Sie LVM, den Cache zu schreiben und ihn zu löschen. Auf beiden Knoten
sed -i 's/write_cache_state = 1/write_cache_state = 0/' /etc/lvm/lvm.conf rm /etc/lvm/cache/*
22) Wir bearbeiten /etc/lvm/lvm.conf so, dass lvm / dev / sdb nicht sieht. Auf beiden Knoten
23) Erstellen Sie eine CLVM-Partition. Wir machen nur eine Notiz
$ 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) Wir markieren den Abschnitt in gfs2
mkfs.gfs2 -j2 -p lock_dlm -t drbd-gfs2:r0 /dev/cl_vg/r0
25) Fügen Sie als Nächstes die Halterung dieses Abschnitts in Schrittmacher hinzu und weisen Sie ihn an, nach clvmd zu booten
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) Jetzt ist ctdb an der Reihe, Samba auszuführen
yum install -y samba ctdb cifs-utils
27) Bearbeiten Sie die Konfiguration /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) Erstellen Sie eine Datei mit einer Liste von Knoten. ACHTUNG! Nach jeder IP in der Liste der Knoten sollte ein Zeilenvorschub vorhanden sein. Andernfalls fällt der Knoten während der Initialisierung aus.
cat /etc/ctdb/nodes 192.168.0.1 192.168.0.2
29) Zur config /etc/samba/smb.conf hinzufügen
[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) Erstellen Sie abschließend die ctdb-Ressource und geben Sie an, dass sie danach geladen werden soll
pcs constraint order start fs-clone then samba
Und nun zu dem Problem, das ich noch nicht entschieden habe. Wenn Sie den Knoten neu starten, bricht die gesamte Gruppe zusammen, da drbd Zeit benötigt, um / dev / drbd0 zu aktivieren. DLM sieht die Partition nicht, da sie noch nicht aktiviert ist und nicht startet usw. Problemumgehung besteht darin, die Partition manuell zu aktivieren und die Schrittmacherressourcen neu zu starten
vgchage -ay pcs resource refresh