若要將多個分散在不同地理位置的 VMware Cloud Director 安裝或伺服器群組及其組織作為單一實體進行管理和監控,您可以使用 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 站台的關聯。

站台名稱

每個 Site 物件皆使用 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>
雖然並不要求站台名稱與 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-VMWARE-VCLOUD-ACCESS-TOKEN 標頭 (其值為可供您使用的編碼金鑰) 以及 X-VMWARE-VCLOUD-TOKEN-TYPE 標頭的值,可建構 JWT Authorization 標頭以納入後續要求中,來取代過時的 x-vcloud-authorization 標頭,並不會針對關聯成員向您進行驗證。如需有關登入 VMware Cloud Director API 的詳細資訊,請參閱〈建立 VMware Cloud Director API 工作階段〉

透過在 Accept 標頭中指定 multisite=value 配對,可以提出扇出到多個關聯成員的要求。如果您想要扇出要求,value 可以是 global 或以冒號分隔的位置識別碼清單。如需取得位置識別碼的相關資訊,請參閱授權位置。當您將 value 設為 local 時,要求不會扇出,但會包含扇出上包含的多站台中繼資料。

例如,當您提出要求 (例如,從組織的關聯中擷取資源清單的查詢) 時,您可以在 Accept 標頭中指定 multisite=global 配對。透過指定 multisite=global 配對,您可以將要求扇出到所有關聯成員並傳回彙總清單。
Accept: application/*;version=30.0;multisite=global

您可以指定以冒號分隔的位置識別碼清單,例如 multisite=ID-a:ID-b:ID-x。除非您在 Accept 標頭中包含此值,否則此要求僅傳回做為要求目標的組織所擁有的資源。除非您已針對向其進行驗證的相同組織提出要求,否則還必須包含 X-VMWARE-VCLOUD-AUTH-CONTEXT 標頭以指定將滿足要求的組織的名稱。

當驗證要求包含 multisite= value 配對時,如果該要求在任何關聯成員中失敗,則回應包含 Link 元素。失敗類別由連結的 rel 值表示。
rel="fanout:failed"
成員狀態為 ACTIVE,但成員中的驗證因某些其他原因而失敗。
rel="fanout:skipped"
已略過成員中的驗證,因為關聯狀態為 ASYMMETRICUNREACHABLE
失敗或略過的要求 URL 在 href ( Link 的值) 中。

授權位置

當您向做為關聯成員的站台進行驗證時, Session 回應包含 AuthorizedLocations 元素,該元素可以為其他關聯成員提供 VMware Cloud Director API 和 VMware Cloud Director 租用戶入口網站端點。在此範例中:
  • 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>

使用者和群組身分識別

站台和組織的關聯必須同意使用相同的身分識別提供者 (IDP)。關聯中所有組織的使用者和群組身分識別必須透過此 IDP 來管理。

關聯可以自由選擇最適合它們的 IDP。請參閱在 VMware Cloud Director 中管理身分識別提供者

VMware Cloud Director 10.4.1 開始,服務帳戶可以使用多站台功能將分散在不同地理位置的多個 VMware Cloud Director 安裝或伺服器群組及其組織作為單一實體進行管理和監控。如果服務帳戶向不同於對其進行驗證的組織發出請求,請確認該服務帳戶存在於關聯的組織中,並且具有相同的名稱和軟體識別碼。請參閱在 VMware Cloud Director 中管理服務帳戶

用於組織使用者和群組的站台存取控制

組織管理員可以設定其 IDP 以產生使用者或群組存取 Token (在所有成員站台上有效或僅在部分成員站台上有效)。儘管使用者和群組身分識別在所有成員組織中必須相同,但使用者和群組權限仍受各成員組織中為這些使用者和群組所指派的角色限制。和所建立的任何自訂角色一樣,為使用者和群組指派的角色限於成員組織本身。

負載平衡器需求

若要有效實作多站台部署,您必須設定負載平衡器,負載平衡器會將送達機構端點 (例如 https://vcloud.example.com) 的要求散佈到站台關聯的每個成員的端點 (例如,https://us.vcloud.example.comhttps://uk.vcloud.example.com)。如果站台有多個儲存格,則還必須設定負載平衡器,以在其所有儲存格中散佈傳入要求,讓 https://cell1.us.vcloud.example.comhttps://cell2.us.vcloud.example.com 等能夠處理對 https://us.vcloud.example.com 的要求。

備註: 全域負載平衡器 (在此案例中為 https://vcloud.example.com) 只能用於使用者介面存取。如果您自行開發使用 REST API 的指令碼或程式,則這些呼叫必須針對某個特定的站台。

VMware Cloud Director 10.3 開始,送達多站台部署之負載平衡端點的所有用戶端要求都將重新導向。當要求送達負載平衡端點時,即使要求送達的站台是正確的站台,系統還是會發出重新導向並反映在使用者可見的 URL 中,以指定要求已導向至正確位置。

例如,位於全域負載平衡端點 https://us.vcloud.example.com 後方的部署可以由兩個站台 (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 Director10.2.x 及更早版本在以下情況下不會發出重新導向:當負載平衡器收到位於相同位置的組織要求,且該要求透過公用端點 URL https://us.vcloud.example.com/org1 提出。

網路連線需求

如果您要使用多站台功能,則每個站台上的每個儲存格必須能夠向所有站台的 REST API 端點提出 REST API 要求。如果使用「負載平衡器需求」部分中的範例,則 cell1.us.vcloud.example.comcell2.us.vcloud.example.com 必須能夠連線到 uk.example.com 的 REST API 端點。對於 uk.example.com 下的所有儲存格,反之亦然。這意味著,儲存格還必須能夠對自己的 REST API 端點進行 REST API 呼叫,以便 cell1.us.vcloud.example.com 必須能夠對 https://us.vcloud.example.com 進行 REST API 呼叫。

若要進行 REST API 扇出,則必須向所有站台的 REST API 端點提出 REST API 要求。例如,如果使用者介面或 API 用戶端提出多站台要求以從所有站台取得組織頁面,並且 cell1.us.vcloud.example.com 處理該要求。儲存格 cell1 必須進行 REST API 呼叫,以使用針對該站台設定的 REST API 端點從每個站台取得組織頁面。當所有站台傳回其組織頁面時,cell1 會將結果自動分頁並傳回包含所有其他站台中資料的單一結果頁面。

站台和憑證

當某個站台與其他站台相關聯時,如果要更新其憑證,可能必須讓其他站台瞭解變更。如果沒有讓其他站台瞭解憑證變更,則多站台扇出可能會受到影響。

如果您要將站台上的憑證取代為有效且妥善簽署的憑證,則無需通知其他站台。由於憑證有效且經過妥善簽署,因此其他站台中的儲存格可以繼續以安全的方式進行連線而不會中斷。

如果您要將站台上的憑證取代為自我簽署憑證,或者憑證存在其他問題,導致無法自動信任,則其他站台需要瞭解情況。例如,如果憑證到期,您必須讓其他站台瞭解此情況。在每一個其他站台中,必須將憑證上傳至 Service Provider Admin Portal 中的 受信任的憑證。請參閱 使用 VMware Cloud Director Service Provider Admin Portal匯入受信任的憑證。匯入憑證時,已上傳憑證的站台可以信任取得新憑證的站台。
備註: 在遠端站台中安裝這些憑證之前,可以將這些憑證匯入其他站台的 [受信任的憑證] 中。這可確保通訊不會中斷,因為舊憑證和新憑證均位於 [受信任的憑證] 集區中。您不必重新關聯站台。

關聯成員狀態

建立站台或組織的關聯後,本機系統會定期擷取每個遠端關聯成員的狀態,並在本機站台的 VMware Cloud Director 資料庫中更新該狀態。成員狀態在 SiteAssociationMemberOrgAssociationMemberStatus 元素中可見。 Status 元素的值可以是下列三者之一:
ACTIVE
雙方已建立關聯,且與遠端通訊成功。
ASYMMETRIC
本機站台已建立關聯,但遠端站台尚未交換。
UNREACHABLE
雙方已建立關聯,但遠端站台目前在網路上無法連線。

Service Provider Admin PortalTenant Portal中,狀態顯示為 ConnectedPartially ConnectedUnreachable

成員狀態「活動訊號」程序會以多站台系統使用者 (VMware Cloud Director 安裝期間系統組織中建立的本機 VMware Cloud Director 使用者帳戶) 的身分執行。雖然此帳戶是系統組織的成員,但它沒有系統管理員權限。它只有單一權限 Multisite: System Operations,可讓其有權提出 VMware Cloud Director API 要求,以擷取站台關聯的遠端成員狀態。