Para administrar y supervisar varias instalaciones de VMware Cloud Director distribuidas geográficamente o grupos de servidores y sus organizaciones como entidades únicas, puede usar la función de multisitio de VMware Cloud Director.

Implementación efectiva de un multisitio

Cuando se asocian dos sitios de VMware Cloud Director, se habilita la administración de los sitios como una única entidad. También se permite que las organizaciones de esos sitios formen asociaciones entre sí. Consulte la Crear una asociación de sitios en su VMware Cloud Director. Cuando una organización forma parte de una asociación, los usuarios de la organización pueden utilizar el VMware Cloud Director Tenant Portal a fin de acceder a los activos de la organización en cualquier sitio miembro, aunque cada organización miembro y sus activos son locales para el sitio que ocupan.

Nota:

Los sitios deben tener la misma versión de API de VMware Cloud Director o una versión principal de diferencia. Por ejemplo, puede asociar un sitio de VMware Cloud Director 10.1 (versión de API 34.0) con un sitio de VMware Cloud Director versión 10.0, 10.1, 10.2 o 10.2.2, con las respectivas versiones de API 33.0, 34.0, 35.0 o 35.2.

Tras asociar dos sitios, puede usar la API de VMware Cloud Director o el VMware Cloud Director Tenant Portal para asociar las organizaciones que ocupan dichos sitios. Consulte el tema Guía de programación de API de VMware Cloud Director o Configurar y administrar implementaciones de varios sitios en Guía para subproveedores y tenants de VMware Cloud Director.

Un sitio o una organización puede formar un número ilimitado de asociaciones con un elemento de su mismo nivel, pero cada asociación incluye exactamente dos miembros. Cada sitio u organización debe tener su propia clave privada. Los miembros de la asociación establecen una relación de confianza mediante el intercambio de claves públicas, que se usan para comprobar las solicitudes firmadas de un miembro a otro.

Cada sitio de una asociación se define por el ámbito de un grupo de servidores de VMware Cloud Director (un grupo de servidores que comparten una base de datos de VMware Cloud Director). Cada organización en una asociación ocupa un sitio. El administrador de la organización controla el acceso de usuarios y grupos de la organización a los activos de cada sitio miembro.

Objetos de sitio y asociaciones de sitio

El proceso de instalación o actualización crea un objeto de Site que representa el grupo de servidores local de VMware Cloud Director. Un administrador del sistema cuya autoridad se extienda a más de un grupo de servidores de VMware Cloud Director puede configurar esos grupos del servidor como si se tratara de una asociación de sitios de VMware Cloud Director.

Nombres de sitio

Cada objeto Site se crea con un atributo de nombre que es un UUID.
GET https://Site-B.example.com/api/site
...
<Site name="b5920690-fe13-4c31-8e23-9e86005e7a7b" ...>
   ...
   <RestEndpoint>https://Site-A.example.com/api/org/Org-A</RestEndpoint>
   <RestEndpointCertificate>-----BEGIN CERTIFICATE-----
      MIIDDTCCAfWgAwIBAgI...Ix0eSE= -----END CERTIFICATE-----
   </RestEndpointCertificate>
   ...
</Site>
Si bien no es necesario que el nombre del sitio coincida con el nombre de host del endpoint de API, un administrador del sistema puede actualizar el nombre del sitio por comodidad para los usuarios de la API de VMware Cloud Director, con una solicitud como la siguiente:
PUT https://Site-B.example.com/api/site
content-type: application/vnd.vmware.vcloud.site+xml
...
<Site name="Site-B" ...>
   ...
   <RestEndpoint>https://Site-A.example.com/api/org/Org-A</RestEndpoint>
   <RestEndpointCertificate>-----BEGIN CERTIFICATE-----
      MIIDDTCCAfWgAwIBAgI...Ix0eSE= -----END CERTIFICATE-----
   </RestEndpointCertificate>
   ...
</Site>
El elemento Site del cuerpo de la solicitud debe conservar el formato con el que lo devolvió la solicitud GET .../site. Los caracteres adicionales, particularmente los retornos de carro, los avances de línea o los espacios, anteriores o posteriores a los certificados pueden provocar una excepción de solicitud incorrecta en el sistema.

Asociaciones de organizaciones

Después de que se complete la asociación de sitios, los administradores de organización de cualquier sitio miembro pueden comenzar a asociar sus organizaciones.
Nota: No puede asociar una organización System con una organización de tenants. La organización System en cualquier sitio puede asociarse solo con la organización System en otro sitio.

Encabezados de autorización y distribución ramificada de solicitudes

La respuesta de Session a una solicitud de inicio de sesión correcta incluye tanto un encabezado X-VMWARE-VCLOUD-ACCESS-TOKEN (cuyo valor es una clave codificada que puede utilizar) como el valor del encabezado X-VMWARE-VCLOUD-TOKEN-TYPE para generar un encabezado Authorization de JWT con el fin de incluirlo en posteriores solicitudes en lugar del encabezado x-vcloud-authorization obsoleto, el cual no le autentica ante miembros de la asociación. Consulte Crear una sesión de API de VMware Cloud Director para obtener más información sobre cómo iniciar sesión en la API de VMware Cloud Director.

Puede realizar solicitudes que se distribuyan a varios miembros de la asociación especificando el par multisite=valor en el encabezado Accept. Si desea que la solicitud se distribuya, el valor puede ser global o una lista separada por dos puntos de los identificadores de ubicación. Para obtener información sobre cómo conseguir los identificadores de ubicación, consulte Ubicaciones autorizadas. Cuando el valor se establece como local, la solicitud no se distribuye, pero incluye metadatos multisitio incluidos en la distribución.

Por ejemplo, si realiza una solicitud como puede ser una consulta que recupera listas de recursos de una asociación de organizaciones, puede especificar el par multisite=global en el encabezado Accept. Al especificar el par multisite=global, la solicitud se distribuye a todos los miembros de la asociación y se devuelve una lista de agregados.
Accept: application/*;version=30.0;multisite=global

Puede especificar una lista separada por dos puntos de identificadores de ubicación (por ejemplo, multisite=ID-a:ID-b:ID-x). A menos que incluya este valor en el encabezado Accept, la solicitud solo devuelve los recursos que pertenezcan a la organización que es el destino de la solicitud. A menos que realice una solicitud a la misma organización en la que se ha autenticado, también debe incluir un encabezado X-VMWARE-VCLOUD-AUTH-CONTEXT que especifique el nombre de la organización que satisfará la solicitud.

Cuando una solicitud de autenticación incluye el par multisite= valor, la respuesta incluye elementos Link si se han producido errores en la solicitud en algún miembro de la asociación. La categoría del error está representada mediante el valor rel del vínculo.
rel="fanout:failed"
El estado del miembro era ACTIVE, pero no se ha podido autenticar en el miembro por algún otro motivo.
rel="fanout:skipped"
La autenticación en el miembro se ha omitido porque el estado de la asociación era ASYMMETRIC o UNREACHABLE.
La URL de la solicitud que tiene errores o que se ha omitido se encuentra en el valor href de Link.

Ubicaciones autorizadas

Cuando un usuario se autentica en un sitio que pertenece a una asociación, la respuesta de Session incluye un elemento AuthorizedLocations que proporciona endpoints de API de VMware Cloud Director y del portal para tenants de VMware Cloud Director a otros miembros de la asociación. En este ejemplo:
  • Sitio-A.ejemplo.com y Sitio-B.ejemplo.com están asociados.
  • El usuario inicia sesión en Sitio-A como administrador del sistema.
Solicitud:
POST https://Site-A.example.com/api/sessions
Authorization: Basic ...
Accept: application/*;version=30.0
...
Respuesta:
200 OK
...
X-VMWARE-VCLOUD-ACCESS-TOKEN: eyJhbGciOiJSUzI1NiJ9....Rn4Xw
X-VMWARE-VCLOUD-TOKEN-TYPE: Bearer
Content-Type: application/vnd.vmware.vcloud.session+xml;version=30.0;multisite=global
...
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Session ...
   ...  
   <AuthorizedLocations>
      <Location>
         <LocationId>a93c9db9-7471-3192-8d09-a8f7eeda85f9@9a41...
         </LocationId>
         <SiteName>Site-A</SiteName>
         <OrgName>System</OrgName>
         <RestApiEndpoint>https://site-a.example.com
         </RestApiEndpoint>
         <UIEndpoint>https://site-a.example.com
         </UIEndpoint>
         <AuthContext>System</AuthContext>
      </Location>
      <Location>
         <LocationId>a93c9db9-7471-3192-8d09-a8f7eeda85f9@4f56...
         </LocationId>
         <SiteName>Site-B</SiteName>
         <OrgName>System</OrgName>
         <RestApiEndpoint>https://site-b.example.com
         </RestApiEndpoint>
         <UIEndpoint>https://site-b.example.com
         </UIEndpoint>
         <AuthContext>System</AuthContext>
      </Location>
   </AuthorizedLocations>
</Session>

Identidades de grupo y usuario

Las asociaciones de sitios y organizaciones deben aceptar usar el mismo proveedor de identidades (IDP). Las identidades de los usuarios y grupos que componen todas las organizaciones de la asociación deben administrarse mediante este IDP.

Las asociaciones pueden elegir el IDP que mejor les funcione. Consulte la Administrar proveedores de identidad en VMware Cloud Director.

A partir de VMware Cloud Director 10.4.1, las cuentas de servicio pueden administrar y supervisar varios grupos de servidores o instalaciones de VMware Cloud Director distribuidas geográficamente y sus organizaciones como entidades únicas mediante la función multisitio. Si una cuenta de servicio realiza una solicitud a una organización diferente de aquella en la que está autenticada, compruebe que la cuenta de servicio existe en la organización asociada y que tiene el mismo nombre y el mismo identificador de software. Consulte la Administrar cuentas de servicio en VMware Cloud Director.

Control de acceso del sitio para grupos y usuarios de la organización

Los administradores de organización pueden configurar su IDP para que genere tokens de acceso para grupos o usuarios que sean válidos en todos los sitios miembro, o bien que solo sean válidos en un subconjunto de sitios miembro. Aunque las identidades de usuario y grupo deben ser las mismas en todas las organizaciones miembro, los derechos de usuario y grupo están limitados por las funciones asignadas a dichos usuarios y grupos en cada organización miembro. La asignación de una función a un usuario o un grupo se realiza de forma local en cada organización miembro del mismo modo que las funciones personalizadas que se crean.

Requisitos de equilibrador de carga

Para que una implementación de varios sitios sea eficaz, hay que configurar un equilibrador de carga que distribuya las solicitudes que llegan a un endpoint institucional, como https://vcloud.example.com, hasta los endpoints de cada miembro de la asociación de sitios (por ejemplo, https://us.vcloud.example.com y https://uk.vcloud.example.com). Si un sitio tiene más de una celda, también se debe configurar un equilibrador de carga que distribuya las solicitudes entrantes entre todas sus celdas, de manera que una solicitud a https://us.vcloud.example.com la pueda procesar https://cell1.us.vcloud.example.com, https://cell2.us.vcloud.example.com, etc.

Nota: Debe usar el equilibrador de carga global, en este caso, https://vcloud.example.com, solo para el acceso a la interfaz de usuario. Si desarrolla sus propios scripts o programas que usan REST API, dichas llamadas deben dirigirse a un sitio en particular.

A partir VMware Cloud Director 10.3, se redireccionan todas las solicitudes de cliente que llegan al endpoint de equilibrio de carga para una implementación multisitio. Cuando una solicitud llega al endpoint de equilibrio de carga, incluso si el sitio en el que llega la solicitud es el correcto, se emite un redireccionamiento y se refleja en la URL visible para el usuario para especificar que la solicitud se dirige a la ubicación correcta.

Por ejemplo, puede tener una implementación que consta de dos sitios (https://site1.vcloud.example.com y https://site2.vcloud.example.com) detrás de un endpoint de equilibrio de carga global https://us.vcloud.example.com. A partir de VMware Cloud Director 10.3, cuando una solicitud llega al endpoint de equilibrio de carga de una organización ubicada en el sitio 1 - https://us.vcloud.example.com/org1, si la solicitud llega al sitio 1, el sitio emite un redireccionamiento a sí mismo reenviando la solicitud a https://site1.vcloud.example.com/org1. VMware Cloud Director 10.2.x y versiones anteriores no emiten redireccionamientos cuando un equilibrador de carga recibe una solicitud de una organización que se encuentra en el mismo lugar y la solicitud se atiende a través de la URL del endpoint público https://us.vcloud.example.com/org1.

Requisitos de conectividad de red

Si desea utilizar la función multisitio, cada celda de cada sitio debe poder realizar solicitudes de REST API a los endpoints de REST API de todos los sitios. Si utiliza los ejemplos de la sección Requisitos de equilibrador de carga, cell1.us.vcloud.example.com y cell2.us.vcloud.example.com, debe poder acceder al endpoint de REST API para uk.example.com. Lo contrario sucede con todas las celdas en uk.example.com. Esto significa que una celda también debe poder realizar llamadas de REST API a su propio endpoint de REST API, por lo que cell1.us.vcloud.example.com debe poder realizar una llamada de REST API a https://us.vcloud.example.com.

Es necesario realizar solicitudes de REST API a los endpoints de REST API de todos los sitios para la distribución de REST API. Por ejemplo, si la interfaz de usuario o un cliente de API realiza una solicitud multisitio para obtener una página de organizaciones de todos los sitios y cell1.us.vcloud.example.com da respuesta a la solicitud. El grupo cell1 debe realizar una llamada de REST API para obtener una página de organizaciones de cada sitio mediante el endpoint de REST API configurado para ese sitio. Cuando todos los sitios devuelven su página de organizaciones, cell1 recopila los resultados y devuelve una única página de resultados que contiene los datos del resto de los sitios.

Sitios y certificados

Cuando un sitio está asociado a otros sitios, si actualiza su certificado, es posible que deba hacer que los otros sitios sepan del cambio. Si no permite que los otros sitios estén al corriente del cambio de certificado, la distribución multisitio se puede ver afectada.

Si va a reemplazar un certificado en un sitio por un certificado válido y correctamente firmado, no es necesario que informe a los otros sitios. Debido a que el certificado es válido y está correctamente firmado, las celdas de otros sitios pueden seguir conectándose a él de forma segura sin interrupciones.

Si va a reemplazar un certificado en un sitio por un certificado autofirmado o si hay algún otro problema con el certificado que impida la confianza automática, es necesario que otros sitios lo sepan. Por ejemplo, si el certificado caduca, debe informar a los otros sitios. En cada uno de los otros sitios, debe cargar el certificado en Certificados de confianza en el Service Provider Admin Portal. Consulte la Importar certificados de confianza mediante el VMware Cloud Director Service Provider Admin Portal. Cuando se importa el certificado, el sitio donde este se carga puede confiar en el sitio en el que se obtiene el nuevo certificado.
Nota: Puede importar estos certificados en los certificados de confianza de los otros sitios antes de instalarlos en el sitio remoto. Esto garantiza que no se interrumpa la comunicación, ya que tanto el certificado antiguo como el nuevo están en el grupo de certificados de confianza. No es necesario que vuelva a asociar los sitios.

Estado de miembro de la asociación

Después de crear una asociación de sitios u organizaciones, el sistema local recupera periódicamente el estado de cada miembro remoto de la asociación y actualiza ese estado en la base de datos de VMware Cloud Director del sitio local. El estado del miembro se puede ver en el elemento Status de SiteAssociationMember o OrgAssociationMember. El elemento Status puede tener uno de los siguientes tres valores:
ACTIVE
La asociación se ha establecido por ambas partes y la comunicación con la parte remota se ha realizado correctamente.
ASYMMETRIC
La asociación se ha establecido en el sitio local, pero el sitio remoto todavía no ha correspondido.
UNREACHABLE
Ambas partes han creado una asociación, pero actualmente no se puede acceder al sitio remoto en la red.

En Service Provider Admin Portal y Tenant Portal, los estados aparecen como Connected, Partially Connected y Unreachable.

El proceso de "latido" de estado del miembro se ejecuta con la identidad del usuario del sistema multisitio, una cuenta de usuario local de VMware Cloud Director creada en la organización del sistema durante la instalación de VMware Cloud Director. Aunque esta cuenta forma parte de la organización del sistema, no tiene derechos de administrador del sistema. Solo tiene el derecho Multisite: System Operations, que le da permiso para realizar una solicitud de API de VMware Cloud Director para recuperar el estado del miembro remoto de una asociación de sitios.