Construisez le serveur avec ACT / SBY
version | Remarques | |
---|---|---|
CentOS | 7.4 | |
DRBD | 9.0 | |
cryptSetup | 2.0.3 | |
paceMaker | 1.1.20-5.el7_7.2 | |
corosync | 2.4.3 |
Cette fois, nous utilisons KVM. On suppose que vous disposez d'instances de SERVER-1 et SERVER-2. Ajoutez des disques.
Confirmation d'instance
[root@kvm ~]# virsh list
Statut du nom de l'identifiant
----------------------------------------------------
126 SERVER-1 course
127 SERVER-2 en cours d'exécution
Création d'un xml de la définition de l'ajout d'un disque
/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>
Créé en 16G sur vdb pour les deux
[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
Devinez les paramètres
[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
Refléter les paramètres de manière permanente
[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
Choisissez une adresse IP, un nom d'hôte et un domaine.
Unité | hostname | IP |
---|---|---|
Unité 1 | SERVER-1 | 192.168.200.10 |
Unité 2 | SERVER-2 | 192.168.200.11 |
Écrivons l'adresse IP de chacun dans les hôtes.
[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
Tout d'abord, installez les éléments nécessaires pour les deux systèmes.
[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
Initialiser avec les deux
[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%
Modification de /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;
}
}
Distribution sur SERVER-2
[root@server-1 ~]# scp -p /etc/drbd.d/drbd0.res root@server-2:/etc/drbd.d/drbd0.res
Je vais créer-md.
[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 //Emplacement d'entrée
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 //Emplacement d'entrée
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
Unité 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
Vérifier après le démarrage avec lsblk Unité 1 drbd0 augmente
[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
Unité confirmée 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
Rendre le système de fichiers ext4
[root@server-1 ~]# mkfs.ext4 /dev/drbd0
Je vais le monter ici pour confirmation. Créez un répertoire à monter sur les deux systèmes.
[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
Essayez de créer un fichier approprié en vérifiant s'il est synchronisé davantage
[root@server-1 ~]# touch /opt/mntpoint/hoge.txt
Démonter de l'unité 1
[root@server-1 ~]# umount /opt/mntpoint
Monté sur l'unité 2 et 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
Il est correctement synchronisé. Supprimons hoge.txt.
[root@server-2 ~]# ll /opt/mntpoint/
-rw-r--r--1 racine racine 0 11 septembre 13:07 hoge.txt
Cette fois, cela n'a peut-être pas beaucoup de sens car il s'agit de KVM, mais il y a des cas où quelqu'un peut se sentir soulagé parce qu'il est crypté.
Tout d'abord, si drbd est monté, démontez-le.
[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 //Seule la capitale OUI a été reconnue
Enter passphrase for /dev/drbd0:
Verify passphrase: //【Saisie du mot de passe
encrypt success //【Retaper le mot de passe
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
Créez un répertoire chiffré avec le nom cryptdir
[root@server-1 ~]#echo [mot de passe]| cryptsetup luksOpen /dev/drbd0 cryptdir
Puis
[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 //Je peux faire quelque chose
[root@server-1 ~]# mkfs.ext4 /dev/mapper/cryptdir
Vérifiez si vous souhaitez synchroniser avec DRBD. confirmer. /dev/mapper/cryptdir Utilisez-le comme point de montage.
mount /dev/mapper/cryptdir /opt/mntpoint
Il était monté.
[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
Comme auparavant, essayez de créer un fichier approprié
[root@server-1 ~]# touch /opt/mntpoint/hoge.txt
Démonter de l'unité 1
[root@server-1 ~]# umount /opt/mntpoint
Décrypter
[root@server-1 ~]# cryptsetup luksClose cryptdir
Monter après le cryptage avec l'unité 2
[root@server-2 ~]#echo [mot de passe]| cryptsetup luksOpen /dev/drbd0 cryptdir
[root@server-2 ~]# mount /dev/mapper/cryptdir /opt/mntpoint
Il y a.
[root@server-2 ~]# ll /opt/mntpoint/
-rw-r--r--1 racine racine 0 11 septembre 13:51 hoge.txt
Démonter et décrypter de l'unité 2
[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
script de démarrage systemctl exécuté lors du chiffrement
/opt/bin/encryptstart.sh
[root@server-1 ~]# mkdir /opt/bin
[root@server-1 ~]# vi /opt/bin/encryptstart.sh
#!/usr/bin/sh
/usr/bin/echo [mot de passe]| /usr/sbin/cryptsetup luksOpen /dev/drbd0 cryptdir
script d'arrêt systemctl exécuté lors du chiffrement
/opt/bin/encryptstop.sh
[root@server-1 ~]# vi /opt/bin/encryptstop.sh
#!/usr/bin/sh
/usr/sbin/cryptsetup luksClose cryptdir
Envoyons-le également à l'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
réflexion de réglage systemd Unité 1
[root@server-1 ~]# systemctl daemon-reload
Unité 2
[root@server-2 ~]# systemctl daemon-reload
Tout d'abord, arrêtez DRBD.
[root@server-1 ~]# systemctl stop drbd
[root@server-2 ~]# systemctl stop drbd
Modifiez /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
}
Transférer à l'unité 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
Transférer à l'unité 2
[root@server-1 ~]# scp -p /etc/sysconfig/pacemaker 192.168.200.11:/etc/sysconfig/pacemaker
Je n'ai pas changé le contenu, mais pour le moment, copiez le service dans / 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
Refléter à nouveau les paramètres systemd Unité 1
[root@server-1 ~]# systemctl daemon-reload
Unité 2
[root@server-2 ~]# systemctl daemon-reload
Démarrer le stimulateur cardiaque
[root@server-1 ~]# systemctl start pacemaker
[root@server-1 ~]# systemctl start pcsd
[root@server-1 ~]# systemctl enable pcsd
Aussi, donnez un mot de passe à un utilisateur nommé hacluster Unité 1
[root@server-1 ~]#echo [ha mot de passe]| passwd -f hacluster --stdin
Unité 2
[root@server-2 ~]#echo [ha mot de passe]| passwd -f hacluster --stdin
[root@server-1 ~]# pcs cluster auth SERVER-1 SERVER-2 -u hacluster -p [ha mot de passe]
paramètres de cluster
[root@server-1 ~]# pcs cluster setup --name HA_cluster SERVER-1 SERVER-2 --force
Démarrez le cluster
[root@server-1 ~]# pcs cluster start --all
[root@server-1 ~]# pcs cluster enable --all
Enregistrement DRBD
[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
Cryptage du disque
[root@server-1 ~]# pcs resource create ENCRYPT systemd:encrypt --group HA
Montage du système de fichiers
[root@server-1 ~]# pcs resource create FS ocf:heartbeat:Filesystem device=/dev/mapper/criptdir directory=/opt/mntpoint fstype=ext4 --group HA
Quelque chose de différent
[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
Des ressources propres
[root@server-1 ~]# pcs resource cleanup
J'ai fait ce genre de réglage, mais j'ai oublié ce que c'était ...
[root@server-1 ~]# pcs property set stonith-enabled=false
[root@server-1 ~]# pcs property set no-quorum-policy=ignore
VIP est également ajouté à la ressource
[root@server-1 ~]# pcs resource create VIP ocf:heartbeat:IPaddr2 ip=192.168.200.12 cidr_netmask=24 --group HA
Vérification
[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