Présentation
Drbd est un système de stockage répliqué distribué pour la plate-forme Linux. Il est implémenté en tant que pilote de noyau, plusieurs applications de gestion de l'espace utilisateur et certains scripts shell. Il est traditionnellement utilisé dans les grappes d'ordinateurs à haute disponibilité (HA). Néanmoins, à partir de la version 9 de DRBD, vous pouvez également l'utiliser pour créer de plus grands pools de stockage définis par logiciel axés sur l'intégration dans le cloud.
Si vous utilisez le noyau virtuel dans le cadre d'une machine virtuelle, vous devrez compiler le module drbd manuellement. Il peut être plus facile d'installer le package Linux-server à l'intérieur de la machine virtuelle. Consultez le guide de l'utilisateur drbd et MySQL.
Créer un playbook pour installer toutes les exigences
Le playbook fourni n'est qu'un exemple de tâche pour donner une séquence de configuration du cluster.
# cat > drbd.setupcentos8.yml
---
- hosts: all
gather_facts: no
become: true
tasks:
- hostname:
name: "{{ ansible_hostname }}"
- get_url:
url: https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm
dest: /tmp/elrepo-release-8.el8.elrepo.noarch.rpm
- name: install repo
command: rpm -ivh /tmp/elrepo-release-8.el8.elrepo.noarch.rpm
ignore_errors: yes
- command: rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-elrepo.org
ignore_errors: yes
- shell: echo drbd > /etc/modules-load.d/drbd.conf
- yum:
name: "{{ item }}"
state: present
loop:
- drbd90-utils
- kmod-drbd90
- lvm2
- policycoreutils-python-utils
- systemd:
name: firewalld
state: stopped
enabled: no
- selinux_permissive:
name: drbd_t
no_reload: false
permissive: true
- lvg:
vg: drbdvg
pvs: /dev/sdb
- lvol:
vg: drbdvg
lv: drbdlv
size: +100%FREE
Supprimez la configuration globale par défaut de l'installation.
Déplacez le fichier et créez un nouveau fichier de configuration.
# mv /etc/drbd.d/global_common.conf /etc/drbd.d/global_common.conf.back
Créez la nouvelle configuration dont vous avez besoin
Le fichier de configuration de ce tutoriel.
# cat > /etc/drbd.d/global_common.conf
global {
usage-count no;
}
common {
net {
protocol C;
}
}
Créer un fichier de configuration de ressource
Notez que la ressource doit être le nom du fichier en tant que pratique standard. Dans ce tutoriel, nous utiliserons drbd0.
#cat > /etc/drbd.d/drbd0.res
resource drbd0 {
protocol C;
net {
verify-alg sha256;
}
on node1 {
device /dev/drbd0;
disk /dev/drbdv/lvdrdb;
node-id 0;
address 192.168.55.61:7788;
meta-disk internal;
}
on node2 {
device /dev/drbd0;
disk /dev/drbdv/lvdrdb;
node-id 1;
address 192.168.55.62:7788;
meta-disk internal;
}
on node3 {
device /dev/drbd0;
node-id 2;
disk /dev/drbdv/lvdrdb;
address 192.168.55.63:7788;
meta-disk internal;
}
connection-mesh {
hosts node1 node2 node3;
}
}
Paramètre d'exigence simple de ressource pour la configuration en cluster
Veuillez vérifier les paramètres requis pour votre choix de configuration
- sur le nom d'hôte [uname -n]
- node-id [identifiant de nœud unique. plage de 0 à 16]
- disque {[disque] | aucun
- adresse [adresse-famille] adresse :port
Créer un périphérique de bloc drbd
Cette commande créera le périphérique bloc requis.
Activer le périphérique drbd sur tous les nœuds
Activez l'appareil en exécutant la commande indiquée ci-dessous.
Vérifier l'état drbd
Cela affichera l'état de l'appareil sur tous les nœuds.
Configurez qui sera le nœud principal.
Cela configurera d'où la synchronisation doit être copiée.
Vérifier l'état du cluster
Les appareils sont maintenant synchronisés.
Créer un système de fichiers à partir du périphérique drbd sur le primaire
Ce sera celui qui sera utilisé pour le clustering. Notez que seule toute personne du cluster peut être choisie.
Montez maintenant le répertoire mysql sur le périphérique drbd
Les données seront partagées entre tous les nœuds.
Déplacer la ressource du nœud1 au nœud2
Notez que le service MySQL doit être arrêté avant la migration des ressources.