HPC Cluster (SLURM): maneiras recomendadas de configurar um sistema seguro e estável

2

Estou trabalhando com um cluster HPC acionado pelo SLURM, contendo 1 nó de controle e 34 nós de computação e, como o sistema atual não é exatamente muito estável, estou procurando diretrizes ou práticas recomendadas sobre como criar esse cluster em uma maneira de se tornar mais estável e segura. E, para deixar claro, não estou procurando respostas detalhadas sobre o gerenciamento de recursos ou talvez ferramentas adicionais, mas para conselhos sobre a configuração básica (consulte a "Pergunta" abaixo).

Minha configuração atual

  • 1 nó de controle

    Esta máquina possui slurm instalado em / usr / local / slurm e executa o daemon slurmctld. O diretório slurm completo (incluindo todos os executáveis e o slurm.conf) é exportado.

  • 34 Nós de Computação

    Essas máquinas montam o diretório de slurm exportado do nó de controle para / usr / local / slurm e executam o daemon slurmd.

Eu não uso nenhum nó de controle de backup.

Se nosso nó de controle for perdido, parece sempre uma questão de sorte se um trabalho em execução no momento sobreviver ou não, então estou procurando uma maneira de criar uma configuração mais estável.

Possíveis problemas com a configuração atual

1) O diretório slurm compartilhado. Eu não consegui encontrar nada na net se isso é realmente uma boa ou má prática, mas já que o arquivo slurm config tem que ser o mesmo em todos máquinas, eu pensei que poderia muito bem compartilhar a instalação completa de slurm. Mas, claro, se o nó de cálculo for perdido, todos os arquivos ficarão indisponíveis também.

2) O nó de controle de backup ausente. Isso requer um diretório NFS compartilhado onde o estado atual possa ser salvo. A questão seria, onde este diretório deveria estar localizado? É claro que não faz sentido colocá-lo no nó de controle, mas deveria estar no nó de controle de backup? Ou em uma máquina totalmente diferente?

Pergunta

Então, existem algumas diretrizes a serem seguidas para criar um cluster de HPC? As perguntas seriam, que tipos diferentes de nós estão envolvidos, qual é o trabalho deles e que tipo de dados devem ser compartilhados via NFS e onde esses diretórios compartilhados devem estar ao vivo? Eu também ficaria grato por qualquer tipo de literatura ou tutoriais, que me apontam na direção certa.

    
por basilikum 24.07.2014 / 16:49

1 resposta

1

Já faz um tempo desde que toquei o SLURM, então pegue o seguinte com um pouco de sal. Além disso, o design do cluster será determinado pela sua carga de trabalho. Geralmente, você começa com um nó principal e vários nós de computação e constrói a partir daí. Um pacote como o Rocks pode ser um bom lugar para começar.

Eu posso ver o diretório compartilhado sendo um problema. Dependendo da sua carga de trabalho, você já pode ter muito tráfego no NFS, então eu instalaria o SLURM localmente. Você pode disponibilizar uma cópia da sua configuração de slurm em um volume exportado do NFS e copiar no lugar com um script 'fornodes' ou usar um script scp. Se você está fazendo muitas mudanças na configuração do slurm, você pode até adicionar o slurmd restart ao script.

Em relação ao nó de controle de backup, eu não me preocuparia com isso. Seu nó principal é provavelmente um ponto único de falha, por isso, se você perder, já terá problemas com seus trabalhos. Eu também não tenho certeza de como o mecanismo de backup funciona para a contabilidade do SLURM se ele estiver ativado, já que normalmente ele usa um banco de dados como o MySQL.

Para exportações, eu normalmente exporto o diretório / home e / opt em clusters menores. Dependendo das suas necessidades de dados, você poderia considerar um nó de armazenamento separado com armazenamento adicional que distribuiria seu carregamento do NFS. Já que você mencionou que está tendo problemas com a estabilidade, pode considerar o uso de um pacote como o Ganglia, que monitorará a carga do nó, a utilização da memória, o rendimento da rede e outros valores e os apresentará em uma série de gráficos. Você também pode aprender bastante com as ferramentas de linha de comando, como o top running em seus nós de computação. Você também desejará testar o dimensionamento de seus trabalhos. Se seus trabalhos rodarem horrivelmente quando eles se expandem (MPI?), Você pode precisar de uma interconexão de latência mais baixa, como Infiniband ou Ethernet de 10 Gb.

Boa sorte com o SLURM. Eu gostei de usá-lo antes de mudar de emprego, mas como não é tão popular quanto as respostas do Torque / Maui ou Sun / Oracle Grid Engine às minhas estranhas perguntas, sempre foi difícil de encontrar.

    
por 25.07.2014 / 15:39