Esta questão está relacionada com um anterior, mais genérica , mas desta vez eu gostaria de perguntar mais especificamente se o ZFS pode substituir o DRBD em um caso de uso como o meu. Isso é dois servidores, ambos hospedando suas próprias VMs ou outros serviços enquanto replicam as VMs ou alguns outros dados entre si, para reduzir o tempo de inatividade em caso de falha de hardware ou manutenção. Esta configuração é a desejada, eu quero leituras / escritas locais preferidas e posso viver com perda potencial de dados em algum tempo arbitrário.
O DRBD suporta esse cenário com diferentes protocolos de espelhamento, onde o protocolo de replicação A é assíncrono como eu preciso. O principal benefício do DRBD em minha configuração é que a mudança para um protocolo mais de sincronização é fácil, simplesmente uma questão de configuração e reinicialização. Além disso, é possível colocar o dm-crypt em cima do dispositivo de bloco DRBD e colocar um sistema de arquivos em dm-crypt para que todos os dados sejam criptografados.
O problema do DRBD, por outro lado, é que ele precisa de dispositivos de bloco e é preciso se preocupar com sua disponibilidade e tamanho usando outras tecnologias como RAID, LVM e outras coisas. Especialmente o redimensionamento parece interessante, pois meus servidores possuem slots livres para anexar mais discos no futuro. Para suportar
redimensionamento , eu precisaria usar o LVM no DRBD, para primeiro adicionar armazenamento usando o LVM e depois redimensionar o DRBD para levar o novo armazenamento em conta. Do que eu ainda preciso lidar com dm-crypt, o próprio sistema de arquivos, etc. Isso me parece bastante complexo e um pouco propenso a erros.
Por outro lado, sistemas de arquivos como o ZFS já fornecem seu próprio LVM e são capazes de enviar / receber instantâneos incrementais. Então, em teoria, o ZFS deve ser capaz de implementar o mesmo protocolo. Uma abordagem como o DRBD faz sem a necessidade de usar RAID, LVM, etc. Basta adicionar armazenamento aos servidores, levar isso aos pools do ZFS e ficar imediatamente disponível para hospedar mais / VMs maiores ou o que for. O envio / recebimento de instantâneos soa tão eficiente quanto o que o DRBD está fazendo, porque são apenas dados binários incrementais com a sobrecarga necessária para descrever as alterações a serem entendidas no ZFS receptor. Já li pessoas usando loops infinitos sem tempo de espera enviando / recebendo snapshots do ZFS e excluindo-os diretamente na fonte novamente, porque eles são necessários apenas para replicação de curto prazo.
A criptografia parece um problema para o ZFS, no entanto. O dm-crypt pode funcionar em coisas como o zvols e, no futuro, o suporte criptografia diretamente , mas atualmente não. Além disso, o envio / recebimento de snapshots parece ser sempre assíncrono, não há como implementar um protocolo de sincronização como o DRBD fornece, se necessário. Isso pode ser aceitável, por não precisar usar o LVM e facilitar a configuração geral.
Ou estou errado, existe alguma outra maneira, além de enviar / receber instantâneos, de como o ZFS é capaz de encaminhar dados para outros hosts imediatamente e apenas para o ZFS?
Você vê alguma diferença ou limitação de desempenho fundamental no envio / recebimento de instantâneos usando o ZFS com muita frequência em curtos períodos de tempo em comparação com os protocolos de espelhamento do DRBD? O último pode ser um pouco mais eficiente por causa do nível de bloco, eu acho.
Quaisquer outras diferenças entre o DRBD e o ZFS em que você possa pensar? Lembre-se que eu não preciso do material de HA do DRBD atualmente, estou focando na replicação de dados por enquanto.
Obrigado!