지리적으로 분산되어 있는 여러 VMware Cloud Director 설치 또는 서버 그룹과 해당 조직을 단일 엔티티로 관리하고 모니터링하기 위해, VMware Cloud Director 다중 사이트 기능을 사용할 수 있습니다.

다중 사이트의 효과적인 구현

VMware Cloud Director 사이트를 연결하는 경우 해당 사이트를 단일 엔티티로 관리할 수 있도록 설정합니다. 또한 해당 사이트의 조직이 서로 간에 연결을 구성하도록 설정합니다. 사이트 연결 만들기의 내용을 참조하십시오. 조직이 연결의 구성원일 때 조직 사용자는 각 구성원 조직과 해당 자산이 조직에서 사용하는 사이트에 대해 로컬인 경우에도 VMware Cloud Director Tenant Portal을 사용하여 모든 구성원 사이트의 조직 자산에 액세스할 수 있습니다.

참고:

사이트는 동일한 VMware Cloud Director API 버전이거나 주 버전이 하나 떨어져 있어야 합니다. 예를 들어 VMware Cloud Director 10.1(API 버전 34.0) 사이트를 VMware Cloud Director 사이트 버전 10.0, 10.1, 10.2 또는 10.2.2(각각의 API 버전 33.0, 34.0, 35.0 또는 35.2)와 연결할 수 있습니다.

두 사이트를 연결한 후 VMware Cloud Director API 또는 VMware Cloud Director Tenant Portal을 사용하여 해당 사이트에 위치한 조직을 연결할 수 있습니다. "VMware Cloud Director API 프로그래밍 가이드" 또는 "VMware Cloud Director 테넌트 가이드" 의 다중 사이트 배포 구성 및 관리 항목을 참조하십시오.

사이트 또는 조직은 피어와 무제한 연결을 구성할 수 있지만 각 연결에는 정확히 두 개의 멤버가 포함됩니다. 각 사이트 또는 조직에는 고유한 개인 키가 있어야 합니다. 연결 구성원은 한 구성원에서 다른 구성원 간에 서명된 요청을 확인하는 데 사용되는 공용 키를 교환하여 신뢰 관계를 설정합니다.

연결의 각 사이트는 VMware Cloud Director 서버 그룹(VMware Cloud Director 데이터베이스를 공유하는 서버 그룹)의 범위로 정의됩니다. 연결의 각 조직은 단일 사이트를 사용합니다. 조직 관리자는 조직 사용자 및 그룹의 각 멤버 사이트의 자산에 대한 액세스를 제어합니다.

사이트 개체 및 사이트 연결

설치 또는 업그레이드 프로세스는 로컬 VMware Cloud Director 서버 그룹을 나타내는 Site 개체를 생성합니다. 두 개 이상의 VMware Cloud Director 서버 그룹으로 확장되는 인증이 있는 시스템 관리자는 이러한 서버 그룹을 VMware Cloud Director 사이트의 연결로 구성할 수 있습니다.

사이트 이름

이름 특성(UUID)을 포함한 각 Site 개체가 생성됩니다.
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>
사이트 이름이 API 끝점의 호스트 이름과 일치할 필요는 없지만 시스템 관리자는 요청된 경우 VMware Cloud Director API 사용자 관리의 편의를 위해 사이트 이름을 다음과 같이 업데이트할 수 있습니다.
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>
요청 본문에서 Site 요소는 GET .../site 요청으로 반환된 형식을 유지해야 합니다. 인증서 앞뒤로 추가 문자, 특히 캐리지 리턴, 줄 바꿈 또는 공백이 있는 경우 시스템에서 잘못된 요청 예외가 반환될 수 있습니다.

조직의 연결

사이트 연결이 완료된 후, 임의 멤버 사이트의 조직 관리자가 조직 연결을 시작할 수 있습니다.
참고: System 조직을 테넌트 조직과 연결할 수 없습니다. 임의 사이트의 System 조직은 다른 사이트의 System 조직하고만 연결할 수 있습니다.

인증 헤더 및 요청 팬아웃

성공적인 로그인 요청에 대한 Session 응답에는 연결 구성원에 대해 사용자를 인증하지 않는 x-vcloud-authorization 헤더(더 이상 사용되지 않음)를 대신하여, X-VMWARE-VCLOUD-ACCESS-TOKEN 헤더(해당 값은 사용자가 사용할 수 있는 인코딩된 키임) 및 X-VMWARE-VCLOUD-TOKEN-TYPE 헤더의 값이 포함되어 이후 요청에 포함되는 JWT Authorization 헤더를 구성합니다. VMware Cloud Director API 로그인에 대한 자세한 내용은 VMware Cloud Director API 세션 만들기를 참조하십시오.

Accept 헤더에 multisite=value 쌍을 지정하여 여러 연결 구성원에 대한 팬아웃을 요청할 수 있습니다. 요청이 팬아웃되도록 하려면 valueglobal 또는 콜론으로 구분된 위치 ID 목록일 수 있습니다. 위치 ID 가져오기에 대한 자세한 내용은 인증된 위치 항목을 참조하십시오. valuelocal로 설정하면 요청이 팬아웃되지는 않지만 팬 아웃에 포함된 다중 사이트 메타데이터가 포함됩니다.

예를 들어 조직 연결에서 리소스 목록을 검색하는 쿼리와 같은 요청을 수행하는 경우 Accept 헤더에 multisite=global 쌍을 지정할 수 있습니다. multisite=global 쌍을 지정하여 모든 연결 구성원에게 요청을 팬아웃하고 집계된 목록을 반환합니다.
Accept: application/*;version=30.0;multisite=global

콜론으로 구분된 위치 ID 목록(예: multisite=ID-a:ID-b:ID-x)을 지정할 수 있습니다. Accept 헤더에 이 값을 포함하지 않으면 요청은 요청의 대상인 조직이 소유한 리소스만 반환합니다. 사용자가 인증한 동일한 조직에 대해 요청을 수행하는 경우가 아니면 사용자의 요청을 수행할 조직의 이름을 지정하는 X-VMWARE-VCLOUD-AUTH-CONTEXT 헤더도 포함해야 합니다.

인증 요청에 multisite= value 쌍이 포함된 경우 요청이 연결 구성원에서 실패하면 응답에 Link 요소가 포함됩니다. 실패의 범주는 링크의 rel 값으로 표시됩니다.
rel="fanout:failed"
구성원 상태는 ACTIVE였지만 구성원의 인증은 다른 이유로 실패했습니다.
rel="fanout:skipped"
연결 상태가 ASYMMETRIC 또는 UNREACHABLE이었기 때문에 구성원의 인증을 건너뛰었습니다.
실패하거나 건너뛴 요청 URL은 Link의 값 href에 있습니다.

인증된 위치

연결의 구성원인 사이트에 인증하는 경우 Session 응답에는 다른 연결 구성원에 대해 VMware Cloud Director API 및 VMware Cloud Director 테넌트 포털 끝점을 제공하는 AuthorizedLocations 요소가 포함됩니다. 이 예의 경우:
  • Site-A.example.comSite-B.example.com이 연결됩니다.
  • 사용자가 Site-A에 시스템 관리자로 로그인합니다.
요청:
POST https://Site-A.example.com/api/sessions
Authorization: Basic ...
Accept: application/*;version=30.0
...
응답:
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>

사용자 및 그룹 ID

사이트 및 조직이 연결되려면 동일한 IDP(ID 제공자)를 사용하는 데 동의해야 합니다. 연결의 모든 조직에 대한 사용자 및 그룹 ID는 이 IDP를 통해 관리되어야 합니다.

연결에서는 자신에 가장 적합한 IDP를 자유롭게 선택할 수 있습니다. VMware Cloud Director에서 ID 제공자 관리의 내용을 참조하십시오.

VMware Cloud Director 10.4.1부터 서비스 계정은 다중 사이트 기능을 사용하여 지리적으로 분산된 여러 VMware Cloud Director 설치 또는 서버 그룹과 해당 조직을 단일 엔티티로 관리하고 모니터링할 수 있습니다. 서비스 계정이 인증된 조직이 아닌 다른 조직에 요청을 수행하는 경우에는 연결된 조직에 서비스 계정이 존재하고 이름과 소프트웨어 ID가 동일한지 확인합니다. 서비스 계정 관리의 내용을 참조하십시오.

조직 사용자 및 그룹에 대한 사이트 액세스 제어

조직 관리자는 모든 멤버 사이트에서 유효하거나 멤버 사이트의 하위 집합에서만 유효한 사용자 또는 그룹 액세스 토큰을 생성하도록 IDP를 구성할 수 있습니다. 사용자 및 그룹 ID는 모든 멤버 조직에서 동일해야 하지만 사용자 및 그룹 권한은 각 멤버 조직에서 해당 사용자와 그룹에 할당된 역할로 제한됩니다. 사용자 또는 그룹에 할당된 역할은 멤버 조직에만 로컬로 적용되며, 생성하는 모든 사용자 지정 역할도 마찬가지입니다.

로드 밸런서 요구 사항

다중 사이트 배포를 효과적으로 구현하려면 https://vcloud.example.com과 같은 기관 끝점에 도달하는 요청을 사이트 연결의 각 구성원에 대한 끝점(예: https://us.vcloud.example.com https://uk.vcloud.example.com)으로 분산하는 로드 밸런서를 구성합니다. 또한 사이트에 둘 이상의 셀이 있는 경우 수신 요청을 모든 셀에 분산하는 로드 밸런서를 구성하여 https://us.vcloud.example.com에 대한 요청이 https://cell1.us.vcloud.example.com , https://cell2.us.vcloud.example.com 등에 의해 처리될 수 있도록 해야 합니다.

참고: 글로벌 로드 밸런서(이 경우 https://vcloud.example.com)는 UI 액세스에만 사용해야 합니다. REST API를 사용하는 자체 스크립트 또는 프로그램을 개발하는 경우 이러한 호출은 특정 사이트를 대상으로 해야 합니다.

VMware Cloud Director 10.3부터는 다중 사이트 배포를 위해 로드 밸런싱 끝점에 도착하는 모든 클라이언트 요청이 리디렉션됩니다. 요청이 로드 밸런싱 끝점에 도착하면 요청이 도착한 사이트가 올바른 사이트인 경우에도, 리디렉션이 실행되고 사용자에게 표시되는 URL에 반영되어 요청이 올바른 위치로 전달되었음을 나타냅니다.

예를 들어 글로벌 로드 밸런싱 끝점 https://us.vcloud.example.com 뒤에 2개의 사이트(https://site1.vcloud.example.comhttps://site2.vcloud.example.com)로 구성된 배포가 있을 수 있습니다. VMware Cloud Director 10.3부터는 요청이 사이트1(https://us.vcloud.example.com/org1)에 있는 조직의 로드 밸런싱 끝점에 도착할 때 요청이 사이트1에 도착하면, 사이트에서 자체 리디렉션이 발생하여 요청을 https://site1.vcloud.example.com/org1로 전달합니다. VMware Cloud Director 10.2.x 및 이전 버전에서는 로드 밸런서가 동일한 위치에 있는 조직에 대한 요청을 수신할 경우 리디렉션이 발생하지 않고 공용 끝점의 URL(https://us.vcloud.example.com/org1)을 통해 요청이 처리됩니다.

네트워크 연결 요구 사항

다중 사이트 기능을 사용하려면 각 사이트의 각 셀은 모든 사이트의 REST API 끝점에 REST API 요청을 수행할 수 있어야 합니다. 로드 밸런서 요구 사항 섹션의 예를 사용하는 경우 cell1.us.vcloud.example.comcell2.us.vcloud.example.comuk.example.com의 REST API 끝점에 도달할 수 있어야 합니다. 그 반대는 uk.example.com의 모든 셀에 적용됩니다. 즉, 셀은 자체 REST API 끝점에 REST API 호출을 수행할 수 있어야 합니다. 즉 cell1.us.vcloud.example.comhttps://us.vcloud.example.com에 REST API 호출을 수행할 수 있어야 합니다.

REST API 팬아웃을 위해 모든 사이트의 REST API 끝점에 REST API 요청을 해야 합니다. 예를 들어 UI 또는API 클라이언트가 모든 사이트에서 조직의 페이지를 가져오기 위해 다중 사이트 요청을 수행하고 cell1.us.vcloud.example.com에서 요청이 처리됩니다. cell1 셀은 REST API를 호출하여 사이트에 대해 구성된 REST API 끝점을 사용하여 각 사이트에서 조직의 페이지를 가져와야 합니다. 모든 사이트가 조직의 페이지를 반환하면 cell1은 결과를 수집하고 다른 모든 사이트의 데이터가 포함된 단일 결과 페이지를 반환합니다.

사이트 및 인증서

사이트가 다른 사이트와 연결되어 있는 경우 사이트의 인증서를 업데이트하면 다른 사이트에 변경을 알려야 할 수도 있습니다. 인증서 변경을 다른 사이트에 알리지 않으면 다중 사이트 팬아웃이 영향을 받을 수 있습니다.

사이트의 인증서를 잘 서명된 유효한 인증서로 교체하는 경우에는 다른 사이트에 알릴 필요가 없습니다. 인증서가 유효하고 잘 서명된 것이기 때문에 다른 사이트의 셀은 중단 없이 안전하게 인증서에 계속 연결할 수 있습니다.

사이트의 인증서를 자체 서명된 인증서로 교체하는 경우 또는 자동 신뢰를 방해하는 다른 문제가 인증서에 있는 경우에는 다른 사이트에서 알아야 합니다. 예를 들어 인증서가 만료되면 다른 사이트에 알려야 합니다. 다른 각 사이트에서는 Service Provider Admin Portal신뢰할 수 있는 인증서에 인증서를 업로드해야 합니다. 신뢰할 수 있는 인증서 가져오기의 내용을 참조하십시오. 인증서를 가져오면 인증서가 업로드된 사이트는 새 인증서를 받는 사이트를 신뢰할 수 있습니다.
참고: 이러한 인증서를 원격 사이트에 설치하기 전에 다른 사이트의 신뢰할 수 있는 인증서로 가져올 수 있습니다. 이렇게 하면 이전 인증서와 새 인증서가 모두 신뢰할 수 있는 인증서 풀에 있기 때문에 통신이 중단되지 않습니다. 사이트를 다시 연결할 필요가 없습니다.

연결 구성원 상태

사이트 또는 조직의 연결을 만들면 로컬 시스템이 주기적으로 각 원격 연결 구성원의 상태를 검색하고 로컬 사이트의 VMware Cloud Director 데이터베이스에서 해당 상태를 업데이트합니다. 구성원 상태는 SiteAssociationMember 또는 OrgAssociationMemberStatus 요소에 표시됩니다. Status 요소는 다음 세 가지 값 중 하나를 포함할 수 있습니다.
ACTIVE
연결이 두 상대방에 의해 설정되었으며 원격 상대방과의 통신이 성공했습니다.
ASYMMETRIC
연결이 로컬 사이트에서 설정되었지만 원격 사이트가 아직 응답하지 않았습니다.
UNREACHABLE
연결이 두 상대방에 의해 만들어졌지만 현재 네트워크에서 원격 사이트를 연결할 수 없습니다.

Service Provider Admin PortalTenant Portal에서 상태는 Connected, Partially ConnectedUnreachable로 나타납니다.

구성원 상태 "하트비트" 프로세스는 VMware Cloud Director 설치 중 시스템 조직에서 만들어진 로컬 VMware Cloud Director 사용자 계정인 다중 사이트 시스템 사용자의 ID로 실행됩니다. 이 계정은 시스템 조직의 멤버이지만 시스템 관리자 권한이 없습니다. 사이트 연결의 원격 구성원의 상태를 검색하는 VMware Cloud Director API 요청을 수행하기 위한 사용 권한을 부여하는 단일 권한인 Multisite: System Operations만 있습니다.