Sincroniza a data e a hora nos nós de computação

1

Eu quero definir um trabalho nos nós de computação, mas verifiquei e a data e a hora dos nós de cálculo não estão sincronizados com os nós principais.

Head node mostra: Wed Jul 22 16:57:32 PDT 2015
nodo 2 mostra: Qua 22 de julho 11:52:21 PDT 2015
mostras do nó 3: Qua 22 de julho às 12:00h38 PDT 2015

Eu quero sincronizá-lo com o nó principal sem nenhuma mudança no tempo do nó principal (porque eu tenho alguns trabalhos no nó principal que estão relacionados ao tempo, então é importante não perturbá-los). Você sabe como eu posso sincronizá-los com o nó principal?

Alguém me disse para reiniciar o serviço ntpd no nó Compute usando o comando service ntpd restart , mas não sei se isso afeta ou não o nó principal?

    
por hamideh Habibi 28.07.2015 / 21:35

2 respostas

3

Supondo que você executa o SSH no nó principal, você pode simplesmente recuperar o horário atual usando o comando date sobre SSH.

ssh user@host date

É mais fácil e seguro autenticar-se com o nó principal usando a autenticação de chave privada , então você não precisa digitar uma senha para fazer login.

Nos nós escravos, você pode definir a hora atual usando o valor obtido usando o seguinte comando como root :

date --set=STRING

em que STRING é o valor da string obtido do nó principal. Isso pode ser combinado em um comando usando substituição de comando

date --set="$(ssh user@host date)"

Eu admito que esta é uma solução de sincronização de tempo do homem pobre , mas não vejo por que isso não funcionaria. Basta desativar o serviço de sincronização de horário, se tiver algum. Portanto, as alterações do seu script não serão alteradas, por exemplo:

/etc/init.d/ntpd stop

Você não forneceu muitas informações sobre seus sistemas, portanto, isso é o máximo que posso fazer. É melhor configurar uma ferramenta de sincronização de horário adequada, mas para isso precisamos de mais informações sobre seu sistema, por exemplo, qual distribuição você está executando.

    
por 28.07.2015 / 22:11
1

Se você tiver acesso root nos nós, configure a sincronização de horário. A ferramenta mais usada para isso é ntpd , disponível em todas as distribuições Linux mais especializadas (assim como em outros sistemas Unix). ). O Ntpd envia periodicamente consultas pela rede para obter a hora atual, mede o desvio do relógio local e ajusta o relógio local para compensar sua distorção. Você pode ficar melhor que a precisão de milissegundos em uma LAN.

Para melhores resultados, selecione um ou alguns nós como servidores, por exemplo, o (s) nó (s) principal (ais). Instale o pacote do servidor NTP (por exemplo, ntp no Debian / Ubuntu / Mint, assim como no Fedora / RHEL / CentOS) e configure os servidores para serem seus nós principais, bem como alguns servidores da Internet. No arquivo de configuração /etc/ntp.conf , você deve ter algo como

server 0.fedora.pool.ntp.org
server 1.fedora.pool.ntp.org
server 2.fedora.pool.ntp.org
server 3.fedora.pool.ntp.org
server head1.mycluster.internal.example.com
server head2.mycluster.internal.example.com

(deixe as linhas configuradas pela sua distribuição e adicione as suas). Nos nós principais, se houver uma linha restrict , verifique se ela permite os endereços IP de todos os nós. Nos outros nós, você pode ter restrict 127.0.0.1 .

Antes de configurar o NTP, defina os relógios aproximadamente no momento certo. O Ntpd não sincronizará a hora se ela estiver mais do que cerca de 20 minutos desligada (presume-se que você tenha configurado o fuso horário incorretamente ou há algo muito errado no relógio ou na rede). Então, primeiro acerte o relógio manualmente, por ex. primeiro defina a data e hora corretas na máquina local, então você pode usar

ssh somenode "date -d $(date +%m%d%H%M%Y.%S)"

para definir o relógio de somenode para algumas dezenas de segundos atrás do relógio local. Uma vez feito isso, instale o ntp ou, se ele já estiver instalado, reinicie o daemon com service ntpd restart ou qualquer método usado pela distribuição.

    
por 29.07.2015 / 02:59

Tags