A tradución do artigo preparouse na véspera do comezo do curso .
DRBD (Distributed Replicated Block Device — распределённое реплицируемое блочное устройство) представляет собой распределенное, гибкое и универсально реплицируемое решение хранения данных для Linux. Оно отражает содержимое блочных устройств, таких как жесткие диски, разделы, логические тома и т.д. между серверами. Оно создает копии данных на двух устройствах хранения для того, чтобы в случае сбоя одного из них можно было использовать данные на втором.
Poderíase dicir que é algo así 1 con discos asignados a diferentes servidores. Non obstante, funciona de forma completamente diferente que o RAID (incluso o RAID de rede).
Inicialmente, DRBD utilizouse principalmente en clústeres de ordenadores de alta dispoñibilidade (HA), non obstante, a partir da versión XNUMX, pódese usar para implementar solucións de almacenamento na nube.
В этой статье мы расскажем, как установить DRBD в CentOS, и кратко продемонстрируем, как использовать его для репликации хранилища (раздела) на двух серверах. Это идеальная статья для начала работы с DRBD в Linux.
Entorno de proba
Usaremos un clúster de dous nodos para esta configuración.
- Nodo 1: 192.168.56.101 - tecmint.tecmint.lan
- Nodo 2: 192.168.56.102 – server1.tecmint.lan
Paso 1: Instala os paquetes DRBD
DRBD реализован как модуль ядра Linux. Он представляет из себя драйвер для виртуального блочного устройства, поэтому он располагается в самом низу стека ввода-вывода системы.
DRBD pódese instalar desde ELRepo ou EPEL. Comecemos importando a clave de sinatura do paquete ELRepo e conectando o repositorio en ambos os nós como se mostra a continuación.
# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpmEntón cómpre instalar o módulo do núcleo DRBD e as utilidades en ambos os nodos usando:
# yum install -y kmod-drbd84 drbd84-utilsЕсли у вас подключен SELinux, вам нужно настроить политики так, чтобы освободить процессы DRBD от контроля SELinux.
# semanage permissive -a drbd_t
Ademais, se o seu sistema está executando un firewall (firewalld), terá que engadir o porto DRBD 7789 para permitir a sincronización de datos entre os dous nodos.
Execute estes comandos para o primeiro nodo:
# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.56.102" port port="7789" protocol="tcp" accept'
# firewall-cmd --reloadA continuación, execute estes comandos para o segundo nodo:
# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.56.101" port port="7789" protocol="tcp" accept'
# firewall-cmd --reloadPaso 2: prepare o almacenamento de baixo nivel
Agora que temos DRBD instalado en ambos os nodos do clúster, debemos fornecer neles áreas de almacenamento de aproximadamente o mesmo tamaño. Pode ser unha partición do disco duro (ou un disco duro físico completo), un dispositivo RAID de software, ou calquera outro tipo de dispositivo de bloqueo que se atope no seu sistema.
Para este artigo, crearemos un dispositivo de bloque de proba de 2 GB usando o comando dd.
# dd if=/dev/zero of=/dev/sdb1 bs=2024k count=1024Supoñamos que esta é unha partición non utilizada (/dev/sdb1) nun segundo dispositivo de bloque (/dev/sdb) conectado a ambos os nós.
Paso 3. Configurar DRBD
Ficheiro de configuración principal DRBD − /etc/drbd.conf, e pódense atopar ficheiros de configuración adicionais no directorio /etc/drbd.d.
Para replicar o almacenamento, necesitamos engadir as configuracións necesarias ao ficheiro /etc/drbd.d/global_common.conf, que contén seccións globais e xerais da configuración DRBD, e necesitamos definir recursos en .res arquivos.
Fagamos unha copia de seguridade do ficheiro orixinal en ambos os nodos e, a continuación, abramos o ficheiro novo para editalo (utilice o editor de texto que elixas).
# mv /etc/drbd.d/global_common.conf /etc/drbd.d/global_common.conf.orig
# vim /etc/drbd.d/global_common.conf Engade as seguintes liñas a ambos ficheiros:
global {
usage-count yes;
}
common {
net {
protocol C;
}
}Garda o ficheiro e despois pecha o editor.
Vexamos por un momento a liña do protocolo C. DRBD admite tres modos de replicación diferentes (é dicir, tres graos de sincronía de replicación), a saber:
- protocolo A: protocolo de replicación asíncrona; usado con máis frecuencia en escenarios de replicación a longa distancia.
- protocolo B: protocolo de replicación semisíncrona ou protocolo de memoria síncrona.
- protocolo C: adoita utilizarse para nodos en redes con distancias curtas; este é, con moito, o protocolo de replicación máis usado na configuración DRBD.
É importante: A elección do protocolo de replicación afecta a dous factores de implantación: seguridade e latencia. Pola contra, o rendemento non depende significativamente do protocolo de replicación seleccionado.
Paso 4: Engade un recurso
O recurso é un termo xeral que se refire a todos os aspectos dun conxunto de datos replicado particular. Definiremos o noso recurso no ficheiro /etc/drbd.d/test.res.
Engade o seguinte ao ficheiro en ambos os nós (lembra substituír as variables polos valores reais para o teu contorno).
Preste atención aos nomes de host, necesitamos especificar o nome de host da rede, que se pode obter usando o comando uname -n.
resource test {
on tecmint.tecmint.lan {
device /dev/drbd0;
disk /dev/sdb1;
meta-disk internal;
address 192.168.56.101:7789;
}
on server1.tecmint.lan {
device /dev/drbd0;
disk /dev/sdb1;
meta-disk internal;
address 192.168.56.102:7789;
}
}
}en que:
- no nome de host: A sección on á que se aplica a instrución de configuración aniñada.
- proba: Este é o nome do novo recurso.
- dispositivo /dev/drbd0: Indica un novo dispositivo de bloque virtual xestionado por DRBD.
- disco /dev/sdb1: Esta é unha partición de dispositivo en bloque que é un dispositivo de copia de seguridade para o dispositivo DRBD.
- metadisco: Define onde DRBD almacena os seus metadatos. Interno significa que DRBD almacena os seus metadatos no mesmo dispositivo físico de baixo nivel que os datos reais en produción.
- enderezo: Indica o enderezo IP e o número de porto do nodo correspondente.
Teña en conta tamén que se os parámetros teñen os mesmos valores en ambos os hosts, pode especificalos directamente na sección de recursos.
Por exemplo, a configuración anterior podería reestruturarse para:
resource test {
device /dev/drbd0;
disk /dev/sdb1;
meta-disk internal;
on tecmint.tecmint.lan {
address 192.168.56.101:7789;
}
on server1.tecmint.lan {
address 192.168.56.102:7789;
}
}Paso 5. Inicializa e inicia o recurso
Para interactuar con DRBD utilizaremos as seguintes ferramentas de administración (que interactúan co módulo do núcleo para configurar e administrar os recursos DRBD):
- drbdadm: Ferramenta de administración de alto nivel DRBD.
- drbdsetup: unha ferramenta de administración de nivel inferior para conectar dispositivos DRBD aos seus dispositivos de copia de seguridade, configurar pares de dispositivos DRBD para reflectir os seus dispositivos de copia de seguridade e verificar a configuración dos dispositivos DRBD en execución.
- Drbdmeta: Ferramenta de xestión de metadatos.
Despois de engadir todas as configuracións iniciais de recursos, debemos invocar o recurso en ambos os nós.
# drbdadm create-md test 
Iniciando a tenda de metadatos
A continuación, necesitamos executalo, que conectará o recurso ao seu dispositivo de copia de seguridade, despois establecerá os parámetros de replicación e conectará o recurso ao seu par:
# drbdadm up test Agora se executa o comando , notarás que o dispositivo DRBD/volume drbd0 está asociado co dispositivo de copia de seguridade /dev/sdb1:
# lsblk 
Lista de dispositivos de bloque
Para desactivar un recurso, executa:
# drbdadm down testPara comprobar o estado dun recurso, execute o seguinte comando (ten en conta que o estado dos discos espérase neste momento Incoherente/Incoherente):
# drbdadm status test
OR
# drbdsetup status test --verbose --statistics #for a more detailed status 
Comprobando o estado dun recurso activado
mal
Paso 6: Establece o recurso principal/fonte de sincronización do dispositivo inicial
Nesta fase, DRBD está listo para comezar. Agora necesitamos especificar que nodo debe usarse como fonte de sincronización inicial do dispositivo.
Executa o seguinte comando nun só nodo para comezar a sincronización completa inicial:
# drbdadm primary --force test
# drbdadm status test 
Configurando o nodo principal como dispositivo inicial
Unha vez completada a sincronización, o estado de ambas as unidades debería ser UpToDate.
Paso 7: probar a configuración de DRBD
Finalmente, debemos comprobar se o dispositivo DRBD funcionará segundo sexa necesario para almacenar os datos replicados. Lembra que utilizamos un volume de disco baleiro, polo que debemos crear un sistema de ficheiros no dispositivo e montalo para comprobar se podemos utilizalo para almacenar datos replicados.
Necesitamos crear un sistema de ficheiros no dispositivo usando o seguinte comando no nodo onde iniciamos a sincronización completa inicial (que ten un recurso co rol principal):
# mkfs -t ext4 /dev/drbd0 
Creando un sistema de ficheiros no volume Drbd
A continuación, monte como se mostra (pode darlle un nome axeitado ao punto de montaxe):
# mkdir -p /mnt/DRDB_PRI/
# mount /dev/drbd0 /mnt/DRDB_PRI/
Agora copia ou crea algúns ficheiros no punto de montaxe anterior e fai unha longa lista con :
# cd /mnt/DRDB_PRI/
# ls -l 
Enumere o contido do volume principal de Drbd
A continuación, desmonte o dispositivo (asegúrese de que o montaxe non estea aberto, cambie o directorio despois de desmontalo para evitar erros) e cambie o rol do nodo de principal a secundario:
# umount /mnt/DRDB_PRI/
# cd
# drbdadm secondary testFai que o outro nodo (que ten un recurso cun papel secundario) sexa o principal, despois conecte un dispositivo a el e emita unha longa lista de puntos de montaxe. Se a configuración funciona ben, todos os ficheiros almacenados no volume deberían estar alí:
# drbdadm primary test
# mkdir -p /mnt/DRDB_SEC/
# mount /dev/drbd0 /mnt/DRDB_SEC/
# cd /mnt/DRDB_SEC/
# ls -l 
Comprobando a configuración DRBD en execución no nodo secundario.
Para obter máis información, consulte as páxinas de axuda das ferramentas administrativas:
# man drbdadm
# man drbdsetup
# man drbdmetaFAQ: .
Resumo
DRBD чрезвычайно гибок и универсален, что делает его решением для репликации хранилища, подходящим для добавления HA практически в любое приложение. В этой статье мы показали, как установить DRBD в CentOS 7, и кратко продемонстрировали, как использовать его для репликации хранилища. Не стесняйтесь делиться своими мыслями с нами с помощью формы обратной связи ниже.
Fonte: www.habr.com
