glusterfs são montados na inicialização em servidores em cluster - RHEL 7

3

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?

    
por user5807441 01.09.2016 / 16:50

2 respostas

8

Você deve poder ter o automount do sistema quando necessário. Eu estava tendo problemas com a montagem do Ubuntu 16.04 na inicialização também. Com base em esta mensagem , adicionei noauto,x-systemd.automount à minha fstab line:

gluster1:/volume1   /storage-pool   glusterfs   defaults,_netdev,noauto,x-systemd.automount 0 0

Eu reiniciei os servidores de aplicativos algumas vezes e eles foram montados com sucesso. Espero que isso ajude você também!

    
por 01.01.2017 / 11:55
5

Eu andei hackeando esse problema, dada a atitude do LP:

arquivo: /etc/systemd/system/glusterfsmounts.service :

[Unit]
Description=Glustermounting
Requires=glusterfs-server.service

[Service]
Type=simple
RemainAfterExit=true
ExecStartPre=/usr/sbin/gluster volume list
ExecStart=/bin/mount -a -t glusterfs
Restart=on-failure
RestartSec=3

[Install]
WantedBy=multi-user.target

então você faria:

systemctl daemon-reload

systemctl enable glusterfsmounts

e reinicie ... foi o melhor / stablest até agora para mim

    
por 02.05.2017 / 20:56

Tags