Acontece que isso é totalmente factível com o LVM como syneticon-dj sugerido. Desde então, verifiquei que ele funciona nas configurações do cluster. No entanto, isso não é tão fácil quanto você pensa.
Antes que os grupos de volumes cLVM fiquem visíveis, ele deve ser descriptografado via cryptsetup luksOpen
no dispositivo que precisa de criptografia. Isso, por necessidade, acontece depois que os serviços de cluster são iniciados, portanto, qualquer recurso baseado nele não deve ser membro de nada crítico, como um dispositivo stonith.
Configurar o cluster é o mesmo de sempre, mas algumas diferenças:
- É uma boa ideia ter um segundo dispositivo de armazenamento no cluster que NÃO esteja criptografado, o que poderia ser usado pelo stonith (external/sbd type ).
- Crie o recurso clvm quando todos os nós tiverem o volume criptografado aberto por meio do mesmo comando cryptsetup e mapeado para o mesmo nome de dispositivo (por exemplo,
cryptsetup luksOpen /dev/sdd cryptmysql
)
- Crie o grupo de volumes em cluster no dispositivo criado por cryptsetup (por exemplo,
vgcreate ClusterMySQLVG /dev/mapper/cryptmysql
)
- Crie um script bash simples para executar a descriptografia da mesma maneira todas as vezes, isso será usado por um operador após a reinicialização para obter o volume acessível.
Como um nó requer intervenção manual para ser elegível para failover, é uma boa ideia ter mais de dois nós no cluster de failover.
Uma vez que o volume do grupo e os volumes lógicos são criados normalmente, instale o MySQL. Neste ponto, a instalação é executada de acordo com as instalações normais de armazenamento em cluster.
Quando um nó é reiniciado:
- Os serviços de cluster serão iniciados na inicialização e o nó ingressará no cluster. No entanto, como ele não tem visibilidade para o volume do MySQL, ele não será elegível para failover.
- Um operador se conecta ao nó por meio do ssh e executa o script de decriptografia criado acima, que solicita a chave de descriptografia.
- O script é executado e cria o mapeamento necessário em
/dev/mapper
, que o LVM então capta.
- O serviço LVM deve atualizar automaticamente e ver os novos metadados do grupo de volumes.
- Neste ponto, os serviços de cluster verão que o grupo de volumes MySQL está disponível e o nó será elegível para failover.