Eu configurei o gluserfs em um par de servidores e sou capaz de montá-lo nas máquinas dos meus clientes. Eu também quero ser capaz de montar o sistema de arquivos glusterfs em ambos os servidores glusterfs na inicialização quando eu coloco ambas as máquinas offline e as inicio do zero.
Esses servidores são configurados como um cluster usando o marca-passo. Além de um banco de dados compartilhado, o marcapasso também está fornecendo um endereço IP virtual para montar o sistema de arquivos gluster.
Eu posso montar manualmente o sistema de arquivos em cada um após os dois servidores estarem com o comando:
mount -t glusterfs nodea:/gv0 /data
O que é ótimo. Mas eu quero que isso aconteça automaticamente na inicialização.
Então, tentei adicionar uma entrada ao fstab:
nodea:/gv0 /data glusterfs _netdev 0 0
O que funciona quando eu executo o comando "mount -a" depois que o cluster está ativo e em execução. No entanto, não funciona na inicialização. (É assim que as máquinas clientes montam o glusterfs na inicialização, mas o cluster está ativo e em execução. Então, é claro que ele funciona na inicialização para elas.)
Eu também tentei criar um arquivo de unidade systemd para lidar com a montagem do glusterfs na inicialização. Meu arquivo de unidade está em / etc / systemd / system chamado "data.mount" e se parece com:
# Mounting gluster fs at /data
[Unit]
Description = Automount gluster filesystem
After=pcsd.service
[Mount]
What=nodea:/gv0
Where=/data
Type=glusterfs
[Install]
WantedBy = pcsd.service
Novamente, isso funciona quando os dois servidores estão ativos e em execução, executando o comando "systemctl start data.mount". Também funciona se eu reiniciar apenas uma das máquinas no cluster. Mas não funciona em uma reinicialização dos dois servidores.
Se ambos os nós do cluster forem desativados, ou se eu sentir vontade de reiniciar os dois ao mesmo tempo, por qualquer motivo, quero ter certeza de que, quando as duas máquinas voltarem, o glusterfs será montado em / data. / p>
Como uma solução, adicionei as seguintes linhas ao crontab do root em ambas as máquinas:
@reboot sleep 60 && mount -t glusterfs nodea:/gv0 /data
@reboot sleep 300 && mount -t glusterfs nodea:/gv0 /data
Isso funciona se eu começar ambos a partir do zero. Mas minha preocupação é que, se o serviço de marcapasso levar mais de 5 minutos para iniciar, ainda não tenho o sistema de arquivos gluster montado no servidor em / data.
Existe uma maneira de fazer com que o arquivo de unidade do systemd verifique se realmente montou o sistema de arquivos e se não tentar novamente até que ele faça?
Existe alguma outra maneira de montar o glusterfs na inicialização e verificar se ele está realmente montado?