Compartir vía


Ejecución de servicios DE SOA de HPC en un clúster híbrido de HPC Pack

En esta documentación se describe cómo implementar y ejecutar servicios de SOA de HPC en un clúster híbrido de HPC Pack que contiene nodos de proceso locales y nodos de proceso de IaaS de Azure.

Requisito previo

  • Una suscripción a Azure.

    • Para crear una suscripción de Azure, vaya al sitio de Azure.
    • Para acceder a una suscripción existente, vaya a Azure Portal.
  • Una conexión VPN de sitio a sitio o ExpressRoute desde la red local a la red virtual de Azure.

Implementación de un clúster de HPC Pack híbrido

Para implementar un clúster híbrido de HPC Pack, puede aprovechar la característica De ráfaga de IaaS de HPC Pack 2016 Update 1. Consulte Expansión a una máquina virtual iaaS de Azure desde un clúster de HPC Pack para obtener información detallada.

Implementación de servicios DE SOA de HPC en un clúster híbrido de HPC Pack

Los nodos de proceso de IaaS están unidos a un dominio

Si los nodos de proceso de IaaS están unidos a un dominio, el clúster se comportará como un clúster de HPC Pack local. Consulte nuestra serie de tutoriales para obtener más información sobre HPC SOA.

Los nodos de proceso de IaaS no están unidos a un dominio

Si los nodos de proceso de IaaS son nodos de proceso no unidos a un dominio, la manera de implementar un nuevo servicio DE SOA de HPC es ligeramente diferente.

Implementación de un nuevo servicio DE SOA de HPC

  1. Implementación de archivos binarios de servicio

    Al implementar un nuevo servicio DE SOA de HPC en un clúster híbrido de HPC Pack que contiene nodos de proceso iaaS no unidos a un dominio, los archivos binarios de servicio deben colocarse en cada carpeta local de los nodos de proceso. (por ejemplo ,C:\Services\Sample.dll)

  2. Cambio de la configuración en el archivo de registro del servicio

    • Cambiar la ruta de acceso del ensamblado al archivo local en cada nodo de proceso

      <microsoft.Hpc.Session.ServiceRegistration>
          <!--Change assembly path below-->
          <service assembly="C:\Services\Sample.dll" />    
      </microsoft.Hpc.Session.ServiceRegistration>
      
    • Dado que la identidad de dominio no está disponible en nodos de proceso no unidos a un dominio, es necesario establecer el modo de seguridad entre el nodo de agente y los nodos de proceso en None. Agregue la siguiente sección al archivo de registro del servicio o cambie una 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. Implementación del archivo de registro del servicio

    Hay dos maneras de implementar el archivo de registro de servicio del nuevo servicio SOA.

    • Implementación del archivo de registro de servicio en cada carpeta local de nodos de clúster

      Para implementar el archivo de registro de servicio mediante este método, es necesario crear una carpeta de registro de servicio local en cada nodo (por ejemplo , C:\ServiceRegistration) y agregarla al entorno del clúster de CCP_SERVICEREGISTRATION_PATH HPC Pack.

      El entorno de clúster se puede capturar en el nodo principal mediante el comando cluscfg listenvs y proporcionará resultados 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 el entorno, use el comando cluscfg setenvs como

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

      A continuación, copie el archivo de registro del servicio en la carpeta local recién creada (por ejemplo ,C:\ServiceRegistration\Sample.config)

      Puede encontrar más información en cluscfg la documentación de cluscfg.

      Puede encontrar más información sobre la creación e implementación de un nuevo servicio SOA en EL TUTORIAL de SOA de HPC Pack I: escribir su primer servicio y cliente de SOA.

    • Implementación del archivo de registro de servicio mediante la característica de archivo de configuración de alta disponibilidad

      En HPC Pack Update 1, hemos agregado la característica de archivo de configuración de alta disponibilidad para ayudar a implementar archivos de registro de servicio en clústeres de alta disponibilidad y en clústeres con nodos de proceso no unidos a un dominio.

      Para usar esta característica, asegúrese CCP_REGISTRATION_STORE de que está establecida en CCP_SERVICEREGISTRATION_PATH el entorno de clúster. Compruebe el resultado de cluscfg listenvs, debe contener

      CCP_SERVICEREGISTRATION_PATH=CCP_REGISTRATION_STORE;\\<headnode>\HpcServiceRegistration
      

      Si falta el valor CCP_REGISTRATION_STORE , establezca el comando cluscfg setenvs use como

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

      Para agregar un archivo de configuración de alta disponibilidad, en HPC Pack 2016 Cluster Manager, vaya al panel Configuración -> Servicios, haga clic en Importar archivo de configuración alta disponible... en el panel Acción. A continuación, seleccione el archivo de configuración de alta disponibilidad que se va a importar.

      Captura de pantalla que muestra la página Configuración con Servicios seleccionados y el archivo Importar configuración alta disponible resaltado.

      Una vez importado, se mostrará una nueva entrada de servicio en el panel Servicios con High Available establecido en True.

      Captura de pantalla que muestra una entrada de servicio con un valor true para alta disponibilidad.

Uso de datos comunes

Desde HPC Pack 2016 Update 2, los nodos de proceso no unidos a un dominio pueden leer datos comunes de SOA de Azure Blob Storage directamente sin tener acceso al recurso compartido de HPC Runtime que normalmente se encuentra en el nodo principal. Esto habilita las cargas de trabajo de SOA en un clúster híbrido de HPC Pack con el recurso de proceso aprovisionado en Azure.

  • Configuración del clúster de HPC Pack

    Para habilitar esta característica, es necesario configurar una cadena de conexión de Azure Storage en el clúster de HPC. En el Administrador de clústeres de HPC Pack 2016, busque Establecer cadena de conexión de almacenamiento de Microsoft Azure en Configuración:> lista de tareas pendientes de implementación y rellene la cadena de conexión correcta.

    Captura de pantalla que muestra la lista Implementación de configuración para hacer con establecer la cadena de conexión de almacenamiento de Microsoft Azure resaltada.

  • Cambio del código del servicio SOA

    Si el servicio llama ServiceContext.GetDataClient a para obtener una referencia de DataClient antes, no se necesita ningún cambio de código.

    En su lugar, si el servicio usa DataClient.Openexplícitamente , deberá cambiar la llamada a una nueva API si el servicio se ejecuta en un nodo no unido a un dominio. Este es el ejemplo de él.

    // 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);
    

Puede encontrar más información en cluscfg la documentación de cluscfg.

Para más información sobre las cadenas de conexión de Azure Storage, consulte Configuración de cadenas de conexión de Azure Storage.

Para obtener más información sobre los datos comunes de SOA de HPC, consulte HPC Pack SOA Tutorial IV : Datos comunes.

Tutoriales de SOA de HPC Pack