Gostaria de entender qual é a melhor solução para replicação em tempo real entre duas caixas ZFS on Linux (ZoL) conectadas por um link de 10 GbE. O objetivo é usá-los para máquinas virtuais; apenas uma caixa de cada vez executará as máquinas virtuais e o próprio sistema de arquivos ZFS. O instantâneo precisa ser possível na primeira caixa (ativa). Eu pretendo usar discos SATA de nível empresarial/quase, portanto, discos SAS de porta dupla estão fora de questão.
Pensei nas seguintes possibilidades:
- use iSCSI para exportar os discos remotos e fazer um espelho entre os discos ZFS da caixa local e os discos iSCSI remotos. O maior apelo desta solução é sua simplicidade, pois usa o próprio espelhamento do ZFS. Por outro lado, o ZFS não dará prioridade aos discos locais sobre os remotos, e isso pode causar alguma degradação de desempenho (pouco relevante em uma rede de 10 GbE, suponho). Além disso, e causa de maior preocupação, é como o ZFS se comportará em caso de perda de link de rede entre as duas caixas. Ele ressincronizará o array quando a máquina remota estiver disponível ou será necessária a intervenção manual?
- use o DRBD para sincronizar dois ZVOLS e coloque o ZFS em cima do dispositivo DRBD . Em outras palavras, estou falando de uma solução empilhada ZVOL + DRBD + ZFS. Essa parece ser a abordagem preferida para mim, pois o DRBD 8.4 é muito estável e comprovado. No entanto, muitas camadas de E/S estão em jogo aqui e o desempenho pode ser prejudicado.
- use ZFS simples + GlusterFS no topo . Do ponto de vista do ZFS, esta é a solução mais simples/melhor, pois todo o tráfego de replicação é delegado ao GlusterFS. Você achou o GlusterFS estável o suficiente?
Qual você acha que é a melhor abordagem? Obrigado.
Eu recomendo uma configuração SAS compartilhada de nó duplo em cluster ou replicação assíncrona contínua em intervalos de 15 ou 30 segundos. O último é bom para a continuidade, enquanto o último fornece uma maneira de obter a separação geográfica. Eles podem ser usados juntos.
No entanto, se você quiser experimentar, poderá usar o Infiniband SRP ou 100 GbE RDMA para criar um espelho ZFS entre seus dois nós.
Por exemplo, node1 e node2, cada um tem disco local (suponha RAID de hardware) e apresenta esse armazenamento local sobre SRP. Um nó está no controle do zpool por vez, e esse pool é composto pelos discos locais do nó1 e pelo disco remoto do nó2.
Seu espelhamento é síncrono porque é um espelho ZFS. O failover e a consistência são tratados pelo comportamento normal de resilvering. A importação/propriedade/exportação do Zpool é feita pelo Pacemaker e pelos utilitários de cluster padrão...
Ou você pode usar uma solução comercial que faça o mesmo. Ver:
http://www.zeta.systems/blog/2016/10/11/High-Availability-Storage-On-Dell-PowerEdge-&-HP-ProLiant/