Compartilhar via


Executando serviços HPC SOA no cluster HPC Pack híbrido

Esta documentação descreve como implantar e executar serviços HPC SOA em um cluster HPC Pack híbrido que contém nós de computação locais e nós de computação iaaS do Azure.

Pré-requisito

  • Uma assinatura do Azure.

    • Para criar uma assinatura do Azure, acesse o site de do Azure.
    • Para acessar uma assinatura existente, acesse o portal do Azure.
  • Uma conexão VPN site a site ou ExpressRoute da rede local para a rede virtual do Azure.

Implantar um cluster HPC Pack híbrido

Para implantar um cluster HPC Pack híbrido, você pode aproveitar o recurso de Intermitência de IaaS do HPC Pack 2016 Atualização 1. Consulte o Burst para a VM iaaS do Azure de um Cluster do HPC Pack para obter informações detalhadas.

Implantar serviços HPC SOA em um cluster HPC Pack híbrido

Nós de computação iaaS são ingressados no domínio

Se os nós de computação de IaaS forem ingressados no domínio, o cluster se comportará como um cluster de HPC Pack local. Consulte nossa série de tutoriais para obter mais informações sobre o HPC SOA.

Nós de computação iaaS não são ingressados no domínio

Se os nós de computação iaaS forem nós de computação não ingressados no domínio, a maneira de implantar um novo serviço HPC SOA será ligeiramente diferente.

Implantar um novo serviço HPC SOA

  1. Implantar binários de serviço

    Ao implantar um novo serviço HPC SOA em um Cluster HPC Pack híbrido que contém nós de computação IaaS ingressados no domínio, os binários de serviço precisam ser colocados na pasta local de cada nós de computação. (por exemplo ,C:\Services\Sample.dll)

  2. Alterar configurações no arquivo de registro de serviço

    • Alterar o caminho do assembly para o arquivo local em cada nó de computação

      <microsoft.Hpc.Session.ServiceRegistration>
          <!--Change assembly path below-->
          <service assembly="C:\Services\Sample.dll" />    
      </microsoft.Hpc.Session.ServiceRegistration>
      
    • Como a identidade de domínio não está disponível em nós de computação não ingressados no domínio, precisamos definir o modo de segurança entre nós do agente e nós de computação como None. Adicione a seção a seguir ao arquivo de registro de serviço ou altere o existente:

      <system.serviceModel>
          <bindings>
              <netTcpBinding>
                  <!--binding used by broker's backend-->
                  <binding name="Microsoft.Hpc.BackEndBinding" maxConnections="1000">
                      <!--for non domain joined compute nodes, the security mode should be None-->
                      <security mode="None"/>
                  </binding>
              </netTcpBinding>
          </bindings>
      </system.serviceModel>
      
  3. Implantar o arquivo de registro de serviço

    Há duas maneiras de implantar o arquivo de registro de serviço do novo serviço SOA

    • Implantar o arquivo de registro de serviço na pasta local de todos os nós de cluster

      Para implantar o arquivo de registro de serviço usando essa maneira, precisamos criar uma pasta de registro de serviço local em cada nó (por exemplo , C:\ServiceRegistration) e adicioná-la ao ambiente do cluster do CCP_SERVICEREGISTRATION_PATH HPC Pack.

      O ambiente do cluster pode ser buscado no nó principal usando o comando cluscfg listenvs e fornecerá uma saída como:

      C:\Windows\system32>cluscfg listenvs
      CCP_SERVICEREGISTRATION_PATH=CCP_REGISTRATION_STORE;\\<headnode>\HpcServiceRegistration
      HPC_RUNTIMESHARE=\\<headnode>\Runtime$
      CCP_MPI_NETMASK=10.0.0.0/255.255.252.0
      CCP_CLUSTER_NAME=<headnode>
      

      Para configurar o ambiente, use um comando cluscfg setenvs como

      cluscfg setenvs CCP_SERVICEREGISTRATION_PATH=CCP_REGISTRATION_STORE;\\<headnode>\HpcServiceRegistration;C:\ServiceRegistration
      

      Em seguida, copie o arquivo de registro de serviço para a pasta local recém-criada (por exemplo,C:\ServiceRegistration\Sample.config)

      Mais informações cluscfg podem ser encontradas na documentação do cluscfg.

      Mais informações sobre como criar e implantar um novo serviço SOA podem ser encontradas no Tutorial SOA do HPC Pack I – Escrever seu primeiro serviço SOA e cliente.

    • Implantar o arquivo de registro de serviço usando o recurso de arquivo de configuração de HA

      No HPC Pack Update 1, adicionamos o recurso de arquivo de configuração de HA para ajudar a implantar arquivos de registro de serviço em clusters de HA e em clusters com nós de computação não ingressados no domínio.

      Para usar esse recurso, verifique se CCP_REGISTRATION_STORE está definido no CCP_SERVICEREGISTRATION_PATH ambiente do cluster. Verifique o resultado de cluscfg listenvs, ele deve conter

      CCP_SERVICEREGISTRATION_PATH=CCP_REGISTRATION_STORE;\\<headnode>\HpcServiceRegistration
      

      Se o valor CCP_REGISTRATION_STORE estiver ausente, defina o comando cluscfg setenvs use como

      cluscfg setenvs CCP_SERVICEREGISTRATION_PATH=CCP_REGISTRATION_STORE;\\<headnode>\HpcServiceRegistration
      

      Para adicionar um arquivo de configuração de HA, no Gerenciador de Cluster do HPC Pack 2016, vá para o painel Configuração –> Serviços, clique em Importar Arquivo de Configuração De Alta Disponibilidade... no painel De ação. Em seguida, selecione o arquivo de configuração de HA a ser importado.

      A captura de tela mostra a página Configuração com os Serviços selecionados e o arquivo Importar Configuração Alta Disponível realçado.

      Depois de importada, uma nova entrada de serviço será exibida no painel Serviços com Alta Disponibilidade definida como True.

      A captura de tela mostra uma entrada de serviço com um valor true para alta disponibilidade.

Usando dados comuns

No HPC Pack 2016 Atualização 2, nós de computação não ingressados no domínio podem ler dados comuns soa do Armazenamento de Blobs do Azure diretamente sem acessar o compartilhamento HPC Runtime que geralmente está localizado no nó principal. Isso habilita as cargas de trabalho SOA em um Cluster HPC Pack híbrido com recurso de computação provisionado no Azure.

  • Configurar o cluster do HPC Pack

    Para habilitar esse recurso, uma cadeia de conexão de armazenamento do Azure precisa ser configurada no Cluster HPC. No Gerenciador de Cluster do HPC Pack 2016, localize Definir cadeia de conexão de armazenamento do Microsoft Azure em Configuração –> Lista de Tarefas Pendentes de Implantação e preencha a cadeia de conexão correta.

    A captura de tela mostra a lista De implantação de configuração para fazer com Definir cadeia de conexão de armazenamento do Microsoft Azure realçada.

  • Alterar o código do serviço SOA

    Se o serviço chamar ServiceContext.GetDataClient para obter uma referência de antes, nenhuma alteração de DataClient código será necessária.

    Em vez disso, se o serviço usar explicitamente, você precisará alterar a chamada para uma nova API se o serviço estiver em execução em um nó não ingressado DataClient.Openno domínio. Aqui está o exemplo dele.

    // Get Job ID from environment variable
    string jobIdEnvVar = Environment.GetEnvironmentVariable(Microsoft.Hpc.Scheduler.Session.Internal.Constant.JobIDEnvVar);
    if (!int.TryParse(jobIdEnvVar, out int jobId))
    {
        throw new InvalidOperationException($"jobIdEnvVar is invalid:{jobIdEnvVar}");
    }
    // Get Job Secret from environment variable
    string jobSecretEnvVar = Environment.GetEnvironmentVariable(Microsoft.Hpc.Scheduler.Session.Internal.Constant.JobSecretEnvVar);
    return DataClient.Open(dataClientId, jobId, jobSecretEnvVar);
    

Mais informações cluscfg podem ser encontradas na documentação do cluscfg.

Para ler mais sobre cadeias de conexão de armazenamento do Azure, consulte Configurar cadeias de conexão do Armazenamento do Azure.

Para ler mais sobre os Dados Comuns do HPC SOA, consulte o Tutorial IV do SOA do HPC Pack – Dados Comuns.

Tutoriais do SOA do HPC Pack