Introducción
Drbd es un sistema de almacenamiento replicado distribuido para la plataforma Linux. Se implementa como un controlador de kernel, varias aplicaciones de administración de espacio de usuario y algunos scripts de shell. Se utiliza tradicionalmente en clústeres de equipos de alta disponibilidad (HA). Aún así, a partir de la versión 9 de DRBD, también puede usarlo para crear grupos de almacenamiento definidos por software más grandes que se centren en la integración de la nube.
Si está utilizando el núcleo virtual como parte de una máquina virtual, deberá compilar el módulo drbd manualmente. Puede ser más fácil instalar el paquete del servidor Linux dentro de la máquina virtual. Consulte la guía del usuario de drbd y MySQL.
Cree un libro de jugadas para instalar todos los requisitos
Playbook proporcionado es solo una tarea de muestra para dar una secuencia para configurar el clúster.
# 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
Eliminar la configuración predeterminada global de la instalación.
Mueva el archivo y cree un nuevo archivo de configuración.
# mv /etc/drbd.d/global_common.conf /etc/drbd.d/global_common.conf.back
Cree la nueva configuración que necesite
El archivo de configuración de este tutorial.
# cat > /etc/drbd.d/global_common.conf
global {
usage-count no;
}
common {
net {
protocol C;
}
}
Cree un archivo de configuración de recursos
Tenga en cuenta que el recurso debe ser el nombre del archivo como práctica estándar. En este tutorial, usaremos 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;
}
}
Parámetro de requisito simple de recursos para configuración en clúster
Verifique los parámetros requeridos para su elección de configuración
- en el nombre de host [uname -n]
- id-nodo [identificador único de nodo. rango de 0 a 16]
- disco {[disco] | ninguno}
- dirección [dirección-familia] dirección:puerto
Crear dispositivo de bloque drbd
Este comando creará el dispositivo de bloque requerido.
Habilitar el dispositivo drbd en todos los nodos
Habilite el dispositivo ejecutando el comando que se indica a continuación.
Comprobar el estado de drbd
Esto mostrará el estado del dispositivo en todos los nodos.
Configure quién será el nodo principal.
Esto configurará desde dónde se debe copiar la sincronización.
Comprobar el estado del clúster
Ahora los dispositivos están sincronizados.
Cree un sistema de archivos desde el dispositivo drbd en el primario
Este será el que se utilizará para la agrupación. Tenga en cuenta que solo se puede elegir a cualquiera del grupo.
Ahora monte el directorio mysql en el dispositivo drbd
Los datos se compartirán entre todos los nodos.
Mover recurso del nodo1 al nodo2
Tenga en cuenta que el servicio MySQL debe detenerse primero antes de la migración de recursos.