Erstellen Sie den Server mit ACT / SBY
version | Bemerkungen | |
---|---|---|
CentOS | 7.4 | |
DRBD | 9.0 | |
cryptSetup | 2.0.3 | |
paceMaker | 1.1.20-5.el7_7.2 | |
corosync | 2.4.3 |
Diesmal verwenden wir KVM. Es wird davon ausgegangen, dass Sie Instanzen von SERVER-1 und SERVER-2 haben. Festplatten hinzufügen.
Instanzbestätigung
[root@kvm ~]# virsh list
ID-Status
----------------------------------------------------
126 SERVER-1 läuft
127 SERVER-2 läuft
Erstellen einer XML-Datei mit der Definition des Hinzufügens einer Festplatte
/tmp/server-1-adddisk.xml
[root@kvm ~]# vi /tmp/server-1-adddisk.xml
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' cache='none' />
<source file='/var/lib/libvirt/images/SERVER-1-vdb.qcow2' />
<target dev='vdb' bus='virtio' />
</disk>
/tmp/server-2-adddisk.xml
[root@kvm ~]# vi /tmp/server-2-adddisk.xml
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' cache='none' />
<source file='/var/lib/libvirt/images/SERVER-2-vdb.qcow2' />
<target dev='vdb' bus='virtio' />
</disk>
Erstellt in 16G auf vdb für beide
[root@kvm ~]# qemu-img create -f qcow2 /var/lib/libvirt/images/SERVER-1-vdb.qcow2 16G
[root@kvm ~]# qemu-img create -f qcow2 /var/lib/libvirt/images/SERVER-2-vdb.qcow2 16G
Errate die Einstellungen
[root@kvm ~]# virsh attach-device SERVER-1 --file /tmp/server-1-adddisk.xml
[root@kvm ~]# virsh attach-device SERVER-2 --file /tmp/server-2-adddisk.xml
Einstellungen dauerhaft widerspiegeln
[root@kvm ~]# virsh attach-device SERVER-1 --file /tmp/server-1-adddisk.xml --config
[root@kvm ~]# virsh attach-device SERVER-2 --file /tmp/server-2-adddisk.xml --config
Legen Sie eine IP, einen Hostnamen und eine Domain fest.
Einheit | hostname | IP |
---|---|---|
Einheit 1 | SERVER-1 | 192.168.200.10 |
Einheit 2 | SERVER-2 | 192.168.200.11 |
Schreiben wir die IP des anderen in Hosts.
[root@server-1 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.200.10 SERVER-1
192.168.200.11 SERVER-2
[root@server-2 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.200.10 SERVER-1
192.168.200.11 SERVER-2
Installieren Sie zunächst die erforderlichen Elemente für beide Systeme.
[root@server-1 ~]# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
[root@server-1 ~]# yum --enablerepo=extras -y install kmod-drbd90
[root@server-1 ~]# yum -y install cryptsetup cryptsetup-libs
[root@server-1 ~]# yum -y install pacemaker
[root@server-1 ~]# yum -y install pcs fence-agents-all
[root@server-2 ~]# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
[root@server-2 ~]# yum --enablerepo=extras -y install kmod-drbd90
[root@server-2 ~]# yum -y install cryptsetup cryptsetup-libs
[root@server-2 ~]# yum -y install pacemaker
[root@server-2 ~]# yum -y install pcs fence-agents-all
Mit beiden initialisieren
[root@server-1 ~]# parted /dev/vdb -s mklabel msdos -s mkpart primary 0% 100%
[root@server-2 ~]# parted /dev/vdb -s mklabel msdos -s mkpart primary 0% 100%
Bearbeiten von /etc/drbd.d/drbd0.res
:/etc/drbd.d/drbd0.res
[root@server-1 ~]# vi /etc/drbd.d/drbd0.res
resource drbd0 {
protocol C;
volume 0 {
device /dev/drbd0;
disk /dev/vdb;
meta-disk internal;
}
on SERVER-1 {
node-id 0;
address 192.168.200.10:7789;
}
on SERVER-2 {
node-id 1;
address 192.168.200.11:7789;
}
}
Verteilung an SERVER-2
[root@server-1 ~]# scp -p /etc/drbd.d/drbd0.res root@server-2:/etc/drbd.d/drbd0.res
Ich werde-md erstellen.
[root@server-1 ~]# drbdadm create-md drbd0
md_offset 17179865088
al_offset 17179832320
bm_offset 17179308032
Found some data
==> This might destroy existing data! <==
Do you want to proceed?
[need to type 'yes' to confirm] yes //Eingabeort
initializing activity log
initializing bitmap (512 KB) to all zero
Writing meta data...
New drbd meta data block successfully created.
[root@server-2 ~]# drbdadm create-md drbd0
md_offset 17179865088
al_offset 17179832320
bm_offset 17179308032
Found some data
==> This might destroy existing data! <==
Do you want to proceed?
[need to type 'yes' to confirm] yes //Eingabeort
initializing activity log
initializing bitmap (512 KB) to all zero
Writing meta data...
New drbd meta data block successfully created.
[root@server-1 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 1024M 0 rom
vda 252:0 0 16G 0 disk
├─vda1 252:1 0 1G 0 part /boot
└─vda2 252:2 0 15G 0 part
├─centos-root 253:0 0 13.4G 0 lvm /
└─centos-swap 253:1 0 1.6G 0 lvm [SWAP]
vdb 252:16 0 16G 0 disk
Einheit 2
[root@server-2 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 1024M 0 rom
vda 252:0 0 16G 0 disk
├─vda1 252:1 0 1G 0 part /boot
└─vda2 252:2 0 15G 0 part
├─centos-root 253:0 0 13.4G 0 lvm /
└─centos-swap 253:1 0 1.6G 0 lvm [SWAP]
vdb 252:16 0 16G 0 disk
[root@server-1 ~]# systemctl start drbd
[root@server-2 ~]# systemctl start drbd
Überprüfen Sie nach dem Start mit lsblk Einheit 1 drbd0 nimmt zu
[root@server-1 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 1024M 0 rom
vda 252:0 0 16G 0 disk
├─vda1 252:1 0 1G 0 part /boot
└─vda2 252:2 0 15G 0 part
├─centos-root 253:0 0 13.4G 0 lvm /
└─centos-swap 253:1 0 1.6G 0 lvm [SWAP]
vdb 252:16 0 16G 0 disk
└─drbd0 147:0 0 16G 0 disk
Bestätigte Einheit 2
[root@server-2 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 1024M 0 rom
vda 252:0 0 16G 0 disk
├─vda1 252:1 0 1G 0 part /boot
└─vda2 252:2 0 15G 0 part
├─centos-root 253:0 0 13.4G 0 lvm /
└─centos-swap 253:1 0 1.6G 0 lvm [SWAP]
vdb 252:16 0 16G 0 disk
└─drbd0 147:0 0 16G 0 disk
[root@server-1 ~]# drbdadm primary --force drbd0
Machen Sie das Dateisystem ext4
[root@server-1 ~]# mkfs.ext4 /dev/drbd0
Ich werde es hier zur Bestätigung montieren. Erstellen Sie ein Verzeichnis, das auf beiden Systemen bereitgestellt werden soll.
[root@server-1 ~]# mkdir /opt/mntpoint
[root@server-1 ~]# mount /dev/drbd0 /opt/mntpoint
[root@server-1 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 1024M 0 rom
vda 252:0 0 16G 0 disk
├─vda1 252:1 0 1G 0 part /boot
└─vda2 252:2 0 15G 0 part
├─centos-root 253:0 0 13.4G 0 lvm /
└─centos-swap 253:1 0 1.6G 0 lvm [SWAP]
vdb 252:16 0 16G 0 disk
└─drbd0 147:0 0 16G 0 disk /opt/mntpoint
Versuchen Sie, eine geeignete Datei zu erstellen, indem Sie prüfen, ob sie weiter synchronisiert ist
[root@server-1 ~]# touch /opt/mntpoint/hoge.txt
Von Einheit 1 aushängen
[root@server-1 ~]# umount /opt/mntpoint
Montiert auf Einheit 2 und lsblk
[root@server-2 ~]# mkdir /opt/mntpoint
[root@server-2 ~]# mount /dev/drbd0 /opt/mntpoint
[root@server-2 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 1024M 0 rom
vda 252:0 0 16G 0 disk
├─vda1 252:1 0 1G 0 part /boot
└─vda2 252:2 0 15G 0 part
├─centos-root 253:0 0 13.4G 0 lvm /
└─centos-swap 253:1 0 1.6G 0 lvm [SWAP]
vdb 252:16 0 16G 0 disk
└─drbd0 147:0 0 16G 0 disk /opt/mntpoint
Es ist richtig synchronisiert. Löschen wir hoge.txt.
[root@server-2 ~]# ll /opt/mntpoint/
-rw-r--r--1 Wurzel Wurzel 0 11. September 13:07 hoge.txt
Diesmal macht es vielleicht nicht viel Sinn, weil es KVM ist, aber es gibt Fälle, in denen sich jemand erleichtert fühlen kann, weil es verschlüsselt ist.
Wenn drbd gemountet ist, entfernen Sie es zuerst.
[root@server-2 ~]# umount /opt/mntpoint
Format
[root@server-1 ~]# cryptsetup luksFormat -c aes-cbc-essiv:sha256 -s 256 /dev/drbd0
WARNING!
========
This will overwrite data on /dev/drbd0 irrevocably.
Are you sure? (Type uppercase yes): YES //Nur das Kapital JA wurde anerkannt
Enter passphrase for /dev/drbd0:
Verify passphrase: //【Passworteingabe
encrypt success //【Kennwort erneut eingeben
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1048576 inodes, 4193655 blocks
209682 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2151677952
128 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
Erstellen Sie ein verschlüsseltes Verzeichnis mit dem Namen cryptdir
[root@server-1 ~]#echo [Passwort]| cryptsetup luksOpen /dev/drbd0 cryptdir
Dann
[root@server-1 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 1024M 0 rom
vda 252:0 0 16G 0 disk
├─vda1 252:1 0 1G 0 part /boot
└─vda2 252:2 0 15G 0 part
├─centos-root 253:0 0 13.4G 0 lvm /
└─centos-swap 253:1 0 1.6G 0 lvm [SWAP]
vdb 252:16 0 16G 0 disk
└─drbd0 147:0 0 16G 0 disk
└─cryptdir 253:2 0 16G 0 crypt //Ich kann etwas tun
[root@server-1 ~]# mkfs.ext4 /dev/mapper/cryptdir
Überprüfen Sie, ob Sie mit DRBD synchronisieren möchten. bestätigen. /dev/mapper/cryptdir Verwenden Sie dies als Einhängepunkt.
mount /dev/mapper/cryptdir /opt/mntpoint
Es wurde montiert.
[root@server-1 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 1024M 0 rom
vda 252:0 0 16G 0 disk
├─vda1 252:1 0 1G 0 part /boot
└─vda2 252:2 0 15G 0 part
├─centos-root 253:0 0 13.4G 0 lvm /
└─centos-swap 253:1 0 1.6G 0 lvm [SWAP]
vdb 252:16 0 16G 0 disk
└─drbd0 147:0 0 16G 0 disk
└─cryptdir 253:2 0 16G 0 crypt /opt/mntpoint
Versuchen Sie nach wie vor, eine entsprechende Datei zu erstellen
[root@server-1 ~]# touch /opt/mntpoint/hoge.txt
Von Einheit 1 aushängen
[root@server-1 ~]# umount /opt/mntpoint
Entschlüsseln
[root@server-1 ~]# cryptsetup luksClose cryptdir
Mount nach der Verschlüsselung mit Unit 2
[root@server-2 ~]#echo [Passwort]| cryptsetup luksOpen /dev/drbd0 cryptdir
[root@server-2 ~]# mount /dev/mapper/cryptdir /opt/mntpoint
Es gibt.
[root@server-2 ~]# ll /opt/mntpoint/
-rw-r--r--1 Wurzel Wurzel 0 11. September 13:51 hoge.txt
Hängen Sie die Bereitstellung von Einheit 2 aus und entschlüsseln Sie sie
[root@server-1 ~]# umount /opt/mntpoint
[root@server-1 ~]# cryptsetup luksClose cryptdir
/usr/lib/systemd/system/encrypt.service
[root@server-1 ~]# vi /usr/lib/systemd/system/encrypt.service
[Unit]
Description=encrypt
[Service]
ExecStart=/opt/bin/encryptstart.sh
ExecStop=/opt/bin/encryptstop.sh
Type=oneshot
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
systemctl Startskript wird beim Verschlüsseln ausgeführt
/opt/bin/encryptstart.sh
[root@server-1 ~]# mkdir /opt/bin
[root@server-1 ~]# vi /opt/bin/encryptstart.sh
#!/usr/bin/sh
/usr/bin/echo [Passwort]| /usr/sbin/cryptsetup luksOpen /dev/drbd0 cryptdir
systemctl stop script wird beim verschlüsseln ausgeführt
/opt/bin/encryptstop.sh
[root@server-1 ~]# vi /opt/bin/encryptstop.sh
#!/usr/bin/sh
/usr/sbin/cryptsetup luksClose cryptdir
Senden wir es auch an Unit 2.
[root@server-1 ~]# scp -p /usr/lib/systemd/system/encrypt.service root@server-2:/usr/lib/systemd/system/encrypt.service
[root@server-1 ~]# scp -rp /opt/bin root@server-2:/opt/bin
Systemd Einstellung Reflexion Einheit 1
[root@server-1 ~]# systemctl daemon-reload
Einheit 2
[root@server-2 ~]# systemctl daemon-reload
Stoppen Sie zunächst DRBD.
[root@server-1 ~]# systemctl stop drbd
[root@server-2 ~]# systemctl stop drbd
Bearbeiten Sie /etc/corosync/corosync.conf
/etc/corosync/corosync.conf
[root@server-1 ~]# vi /etc/corosync/corosync.conf
totem {
version: 2
cluster_name: XXX_cluster
secauth: off
transport: udpu
}
nodelist {
node {
ring0_addr: SERVER-1
nodeid: 1
}
node {
ring0_addr: SERVER-2
nodeid: 2
}
}
quorum {
provider: corosync_votequorum
two_node: 1
}
logging {
to_logfile: yes
logfile: /var/log/cluster/corosync.log
to_syslog: yes
}
Transfer zu Einheit 2
[root@server-1 ~]# scp -p /etc/corosync/corosync.conf 192.168.200.11:/etc/corosync/corosync.conf
/etc/sysconfig/pacemaker
[root@server-1 ~]# vi /etc/sysconfig/pacemaker
# PCMK_fail_fast=no
↓
PCMK_fail_fast=yes
Transfer zu Einheit 2
[root@server-1 ~]# scp -p /etc/sysconfig/pacemaker 192.168.200.11:/etc/sysconfig/pacemaker
Ich habe den Inhalt nicht geändert, aber kopiere den Dienst vorerst nach / etc / systemd / system /
[root@server-1 ~]# cp -p /usr/lib/systemd/system/corosync.service /etc/systemd/system/
[root@server-1 ~]# cp -p /usr/lib/systemd/system/pacemaker.service /etc/systemd/system/
[root@server-1 ~]# scp -p /usr/lib/systemd/system/corosync.service [email protected]:/usr/lib/systemd/system/corosync.service
[root@server-1 ~]# scp -p /usr/lib/systemd/system/pacemaker.service [email protected]:/usr/lib/systemd/system/pacemaker.service
Reflektieren Sie die Systemeinstellungen erneut Einheit 1
[root@server-1 ~]# systemctl daemon-reload
Einheit 2
[root@server-2 ~]# systemctl daemon-reload
Starten Sie den Schrittmacher
[root@server-1 ~]# systemctl start pacemaker
[root@server-1 ~]# systemctl start pcsd
[root@server-1 ~]# systemctl enable pcsd
Geben Sie außerdem einem Benutzer mit dem Namen hacluster ein Kennwort Einheit 1
[root@server-1 ~]#echo [ha Passwort]| passwd -f hacluster --stdin
Einheit 2
[root@server-2 ~]#echo [ha Passwort]| passwd -f hacluster --stdin
[root@server-1 ~]# pcs cluster auth SERVER-1 SERVER-2 -u hacluster -p [ha Passwort]
Cluster-Einstellungen
[root@server-1 ~]# pcs cluster setup --name HA_cluster SERVER-1 SERVER-2 --force
Starten Sie den Cluster
[root@server-1 ~]# pcs cluster start --all
[root@server-1 ~]# pcs cluster enable --all
DRBD-Registrierung
[root@server-1 ~]# pcs resource create DRBD ocf:linbit:drbd drbd_resource=drbd0 op monitor interval=10s role=Master monitor interval=30s role=Slave
[root@server-1 ~]# pcs resource master MS_DRBD DRBD master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 notify=true
Festplattenverschlüsselung
[root@server-1 ~]# pcs resource create ENCRYPT systemd:encrypt --group HA
Dateisystem-Mount
[root@server-1 ~]# pcs resource create FS ocf:heartbeat:Filesystem device=/dev/mapper/criptdir directory=/opt/mntpoint fstype=ext4 --group HA
Etwas anderes
[root@server-1 ~]# pcs constraint colocation add HA MS_DRBD INFINITY with-rsc-role=Master
[root@server-1 ~]# pcs constraint order promote MS_DRBD then start HA
Ressourcen reinigen
[root@server-1 ~]# pcs resource cleanup
Ich habe diese Art von Einstellung gemacht, aber ich habe vergessen, was es war ...
[root@server-1 ~]# pcs property set stonith-enabled=false
[root@server-1 ~]# pcs property set no-quorum-policy=ignore
Auch VIP wird der Ressource hinzugefügt
[root@server-1 ~]# pcs resource create VIP ocf:heartbeat:IPaddr2 ip=192.168.200.12 cidr_netmask=24 --group HA
Bestätigung
[root@server-1 ~]# pcs status
Cluster name: HA_cluster
Stack: corosync
Current DC: SERVER-2 (version 1.1.20-5.el7_7.2-3c4c782f70) - partition with quorum
Last updated: Sun Sep 13 06:57:08 2020
Last change: Thu Sep 10 14:31:58 2020 by root via cibadmin on SERVER-1
2 nodes configured
7 resources configured
Online: [ SERVER-1 SERVER-2 ]
Full list of resources:
Master/Slave Set: MS_DRBD [DRBD]
Masters: [ SERVER-1 ]
Slaves: [ SERVER-2 ]
Resource Group: HA
ENCRYPT (systemd:encrypt): Started SERVER-1
FS (ocf::heartbeat:Filesystem): Started SERVER-1
VIP (ocf::heartbeat:IPaddr2): Started SERVER-1
Daemon Status:
corosync: active/enabled
pacemaker: active/enabled
pcsd: active/enabled
Recommended Posts