Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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
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)
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>
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
comocluscfg 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 enCCP_SERVICEREGISTRATION_PATH
el entorno de clúster. Compruebe el resultado decluscfg listenvs
, debe contenerCCP_SERVICEREGISTRATION_PATH=CCP_REGISTRATION_STORE;\\<headnode>\HpcServiceRegistration
Si falta el valor
CCP_REGISTRATION_STORE
, establezca el comandocluscfg setenvs
use comocluscfg 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.
Una vez importado, se mostrará una nueva entrada de servicio en el panel Servicios con High Available establecido en True.
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.
Cambio del código del servicio SOA
Si el servicio llama
ServiceContext.GetDataClient
a para obtener una referencia deDataClient
antes, no se necesita ningún cambio de código.En su lugar, si el servicio usa
DataClient.Open
explí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.