Como alguém pode executar um script de prólogo como root no gridengine?

2

Em um de nossos clusters de computação, temos sistemas com recursos de hardware exclusivos aos quais o acesso é controlado por permissões de arquivo de dispositivo. Cada nó possui dois ou quatro deles e vários núcleos de CPU. Gostaríamos de poder agendar trabalhos de diferentes usuários no mesmo nó e restringir o acesso aos recursos atribuídos corretamente. (Algumas filas podem até ser apenas CPU, sem acesso.)

Por um tempo, seguimos uma política de "ei, preste atenção e seja gentil", mas é difícil para todos seguir em frente, mesmo com as melhores intenções. Então, apenas agendamos o nó inteiro para um determinado usuário de cada vez. Isso é um desperdício para tarefas de processo único e de thread único.

Com o Torque, é possível executar um script de prólogo como raiz antes do início da tarefa. Isso pode ser feito para definir as permissões do dispositivo adequadamente. Mas nós estamos correndo ( née Sun) Grid Engine. Possui prologscripts por fila , mas é executado como o usuário a quem o trabalho pertence (como o Torque prologue.user), o que não ajuda aqui.

Há algo óbvio que estou faltando (espero), ou uma maneira alternativa de abordar isso? Percebo que tenho o código fonte e, portanto, posso fazer qualquer coisa , mas espero que exista uma maneira padrão de que estou perdendo.

Obrigado!

mattdm
fonte

Respostas:

5

O script de prólogo pode realmente ser executado como qualquer usuário.

De man queue_conf:

prólogo

O caminho executável de um script de shell iniciado antes da execução dos trabalhos do Grid Engine com o mesmo ambiente configurado para o início dos trabalhos do Grid Engine. Um prefixo opcional "usuário @" especifica o usuário sob o qual esse procedimento deve ser iniciado.

Portanto, a configuração prolog root@/path/to/prologdeve executá-la como raiz.

Kamil Kisiel
fonte
Isso soa como a coisa óbvia que eu estava perdendo. :) Off para experimentá-lo ...
mattdm