DRDB significa Distributed Replicated Storage System ou Sistema de armazenamento replicado distribuído. Ele é disponibilizado à comunidade pela LINBIT, empresa patrocinadora do projeto, gratuitamente.
Em resumo, o DRBD faz uma espécie de raid 1 via rede. Veja: Tipos de Raids em Discos: Linear, RAID 0, RAID 1, RAID 5, RAID 4, RAID 5, RAID 6 e RAID 10
O DRBD é uma solução para replicação de blocos(discos rígidos, partições, volumes lógicos e assim por diante) via rede e sem necessidade de compartilhar nada; ele espelha o conteúdo de dispositivos de bloco(discos rígidos, partições, volumes lógicos e assim por diante) entre mais de um pc(hosts).
DRBD espelha dados:
- em tempo real: A replicação ocorre continuamente enquanto os aplicativos modificam os dados no dispositivo.
- de forma transparente. Os aplicativos não precisam estar cientes de que os dados são armazenados em vários computadores(hosts).
- síncrona ou assincronamente:
- espelhamento síncrono: os aplicativos são notificados sobre a conclusão da gravação após a execução das gravações em todos os hosts conectados.
- espelhamento assíncrono: os aplicativos são notificados sobre a conclusão da gravação quando as gravações são concluídas localmente, o que geralmente ocorre antes de serem propagadas para os outros hosts.
Módulo do Kernel
A imagem é um pouco confusa pelo monte de itens que descreve, mas podemos ver dois hosts(computadores) sendo espelhado pelo DRBD. Storage é o dispositivo de armazenamento, um HD ou SSD. NIC é a placa de rede que o DRBD usa para espelhar os hosts.
O DRBD é implementado, ou seja, é instalado por meio de um módulo do kernel do Linux. Especificamente, o DRBD cria um driver para um dispositivo de bloco virtual, portanto, o DRBD está situado próximo à parte inferior da pilha de Entrada e Saída(E/S ou I/O) de um sistema. Por causa disso, o DRBD é extremamente flexível e versátil, o que o torna uma solução de replicação adequada para adicionar alta disponibilidade a praticamente qualquer aplicativo.
O DRBD é, conforme exigido pela arquitetura do kernel do Linux, independente das camadas acima dele. Portanto, é impossível para o DRBD adicionar milagrosamente recursos às camadas superiores que estas não possuem. Por exemplo, o DRBD não pode detectar automaticamente um sistema de arquivos corrompido.
Ferramentas para Administração do DRBD
O DRBD inclui um conjunto de ferramentas para configurar e administrar os recursos do DRBD. Essas ferramentas se comunicam com o módulo do kernel.
Do nível superior ao mais inferior, estes são:
- drbdadm: a ferramenta de administração de alto nível, ou seja, é a mais amigável para ser usada pelo usuário, pois atua como front-end das ferramentas drbdsetup e drbdmeta. drbdadm obtém todos os parâmetros de configuração do DRBD do arquivo de configuração /etc/drbd.conf. O que tudo isso quer dizer é que drbdadm faz com que o usuário não precide usar drbdsetup e drbdmeta. Podemos usar a opção -d para saber qual das duas ferramentas(drbdsetup ou drbdmeta) o drbdsetup está usando.
- drbdsetup: a maioria dos usuários raramente precisará usar o drbdsetup diretamente. drbdsetup configura o módulo DRBD que foi carregado no kernel.
- drbdmeta: permite criar, despejar, restaurar e modificar estruturas de metadados DRBD. A maioria dos usuários raramente precisará usar drbdmeta diretamente.
A separação entre drbdadm e drbdsetup permite uma maior flexibilidade.
Resources
Acima falamos das ferramentas que o usuário usará. Aqui iremos falar sobre algo muito importante, os resources.
Resource é o todo, todo o conjunto…
o site linbit descreve resources de um modo um pouco confuso:
No DRBD, resource é o termo coletivo que se refere a todos os aspectos de um determinado conjunto de dados replicados.
linbit
Mas se atente somente a isso: “resource se refere a todos os aspectos de …. dados replicados.” Como,
- Nome do resource: qualquer nome que dermos pelo qual o recurso é referido. Não pode ter espaços.
- volumes: todo resource contém um ou mais volumes. O volume compartilha o “fluxo comum da replicação“. Os volumes são numerados começando do 0 e pode ir até o 65.535. Um volume contém o conjunto de dados(data set) replicados e um conjunto de metadados para uso interno do DRBD. Podemos invocar um volume usando o “nome do resource + o número do volume“, assim nome_resource/número_volume.
- dispositivo DRBD: Esse é o bloco virtual criado e gerenciado pelo DRBD. Esse bloco é criado dentro de /dev com a seguinte nomeclatura: /dev/drbd0, /dev/drbd1, /dev/drbd2… indo até o 127. Podemos chamar esse bloco de dispositivo do DRBD. É aqui que salvamos e lemos arquivos. Está ligado(representa) com o HD, mas só existe dentro do DRBD, por isso chamamos de virtual. Cada Dispositivo do DRBD corresponde a um volume em um resource. udev normalmente também criará links simbólicos contendo o nome do recurso e o número do volume, como em /dev/drbd/by-res/resource/vol-nr. udev é o código que detecta quando você conecta coisas ao seu computador, como uma placa de rede, discos rígidos externos (incluindo pen drives USB), mouses, teclados, joysticks e gamepads, unidades de DVD-ROM e assim por diante.
- Connection: é um link de comunicação entre dois hosts(computadores) que compartilham um conjunto de dados replicados.
Obs.: Dependendo de como você instalou o DRBD, pode ser necessário instalar o pacote drbd-udev em sistemas baseados em RPM para instalar as regras udev do DRBD. Se seus recursos DRBD foram criados antes da instalação das regras udev DRBD, você precisará acionar manualmente as regras udev para gerar os links simbólicos udev para recursos DRBD, usando o comando udevadm trigger.
Obs.: Com o DRBD 9, cada recurso pode ser definido em vários hosts; com as versões atuais, isso requer uma configuração de conexão de malha completa entre esses hosts (ou seja, cada host conectado entre si para esse recurso).
Resource Pode Ser Primário ou Secundário
No DRBD, cada recurso tem um papel, ele pode atuar como primary(primário) ou secondary(Secundário).
Não use ativo ou passivo, mas sim primário e secundário!
- primary: Um dispositivo DRBD na função principal pode ser usado sem restrições. Pode ser usado para criar e montar sistemas de arquivos, para operações de leitura e gravação, leitura e gravação diretamente para o dispositivo de bloco etc.
- secondary: Um dispositivo DRBD atuando como secundário, espelha, recebendo todas as informações do dispositivo do primário. Mas ele está totalmente fechado, travado para acesso do usuário. Não pode ser usado por aplicativos, nem para acesso de leitura nem de gravação. A razão para proibir até mesmo o acesso somente leitura ao dispositivo é a necessidade de manter a coerência do cache, o que seria impossível se um recurso secundário fosse acessível de alguma forma.
Promotion e Demotion do Resource
Alterar a função do resource de secondary para primary é chamado de promotion(promoção), enquanto a operação inversa é chamada de demotion(rebaixamento).
O papel do resource pode ser alterado por intervenção manual, por meio de algum script(algoritmo automatizado) ou por um aplicativo de gerenciamento de cluster ou automaticamente.
Veja também:
- Vendo Informações do Sistema pelo CMD ou PowerShell
- Calcule Online Capacidade do RAID que Planeja Criar
- Windows: Redundância de Discos no Windows Usando “Espaços de Armazenamento”
- Windows: Redundância de Discos Usando o “Gerenciador de Discos”
- O que É AHCI e NVMe em Informática?
- DRBD: Introdução ao DRBD(Sistema de armazenamento replicado distribuído) – Artigo 001
- Tipos de Raids em Discos: Linear, RAID 0, RAID 1, RAID 5, RAID 4, RAID 5, RAID 6 e RAID 10
Comments on “DRBD: Introdução ao DRBD(Sistema de armazenamento replicado distribuído) – Artigo 001”