Estamos tentando eliminar um único ponto de falha em nossos arquivos sem SAN. Atualmente temos um único servidor para servir arquivos (localmente), servidor web e banco de dados (em VM). Analisando o uso do DRBD com GFS2 para criar um sistema de arquivos em cluster e, em seguida, executar o máximo possível desse sistema de arquivos, incluindo o sistema operacional host, VMs e arquivos compartilhados.
Gostaríamos de ter dois servidores configurados em uma configuração mestre/escravo rodando a partir de uma fonte compartilhada; mas os servidores teriam configurações de hardware ligeiramente diferentes (atribuições de porta da unidade, marcas e modelos reais da placa principal, NICs, etc.), de modo que os arquivos de configuração de hardware seriam mantidos locais (fstab e mdadm, por exemplo).
Idealmente,um servidor atuaria como primário. O gerenciamento de pacotes aconteceria pelo servidor primário apenas no sistema de arquivos clusterizadoporque o servidor escravo não precisará fazer isso se estiver usando os mesmos dados (dados do mesmo dispositivo de bloco).
O servidor mestre também seria o único ponto de administraçãopara ambos os servidores simplesmente porque eles compartilham os dados e arquivos de configuração, e o segundo servidor simplesmente funciona como um conjunto redundante de hardware para executar o software configurado no servidor 1 e faz isso via STONITH, Hearbeat, Pacemaker, etc.
Mas, pelo que li, parece que a maioria das pessoas administra os servidores independentemente umas das outras e tenta automatizar usando cron jobs e rsync.
Parece também que a maioria dos arquivos é bastante estática e modificada pelo usuário; esse é o número de arquivos/pastas que são modificados ativamente pelo sistema operacional (logs, arquivo de troca, etc.), independente da entrada do usuário e/ou dependente do hardware, é muito pequeno.
Gostaríamos de manter os arquivos servidos pelo sistema operacional nativo (não em uma VM).
Então agora as perguntas.
A administração do software pode ser separada da administração do hardware? Parece que a única coisa que precisa ser administrada de forma independente é o hardware de cada máquina; o software deve ser gerenciado imediatamente por meio do sistema de arquivos em cluster. (Pode estar errado, daí a pergunta)
O sistema operacional host pode ser executado a partir de um conjunto compartilhado de arquivos por qualquer uma das duas máquinas, uma de cada vez? Ou seja, ambas as máquinas podem estar prontas para administrar o sistema operacional host, mas apenas o mestre o faz até o failover, momento em que a máquina escrava assume o trabalho de administração? Ou esta suposição é imprecisa?
Podemos colocar uma máquina em estado escravo/inativo até que o mestre fique inativo? (Suspender cron jobs, suspender serviços, etc.) Presumo que parte disso será uma questão de software de esgrima.
(Esta não é uma questão de como executar ambas as máquinas a partir do mesmo conjunto de dadosao mesmo tempo; eles seriam executados efetivamente a partir do mesmo conjunto de dados em momentos diferentes. Os arquivos que cada servidor precisa modificar constantemente estariam no sistema de arquivos local)
Queremos simplesmente configurar um servidor redundante e minimizar a administração redundante.