執行動態擴展

本頁面將說明如何納入更多儲存空間和運算資源,動態擴充系統。以下是各類擴展功能的說明:

  • 水平擴充伺服器機架:在區域中新增機架。這個機架包含運算節點、控制台、機架頂端 (ToR) 交換器和管理 (MGMT) 交換器。
  • 垂直伺服器擴充:在有空擴充插槽的機架中新增伺服器擴充區塊。
  • 垂直檔案和區塊儲存空間擴充:在現有儲存空間叢集中,將儲存空間節點新增至有空擴充插槽的機架。附加至相同儲存空間交換器的儲存空間節點屬於同一個叢集。

如要進一步瞭解不同類型的動態擴展功能,請參閱「動態擴展功能總覽」。

事前準備

變更區域前,請務必先完成下列事項:

  1. 檢查硬體並與原始設備製造商 (OEM) 簽署。請按照「機架檢查」中的指示操作。
  2. 按照 KUBECONFIG 生成步驟,為控制層節點的管理員叢集生成 KUBECONFIG。在本指南中,所有 kubectl 步驟都會使用產生的 KUBECONFIG 設定檔。
  3. 確認根叢集上的 Google Distributed Cloud (GDC) 實體隔離版本至少為 1.13.1 版:

    kubectl --kubeconfig $KUBECONFIG get org root -n gpc-system
    
  4. 下載 GDC tar 檔案。詳情請參閱「下載檔案」。

  5. 準備新裝置的韌體:

    1. GDC 硬體中的封包交換裝置。詳情請參閱「切換鈕」。
    2. 按照「手動升級 ONTAP」一文中的操作說明,更新 ONTAP 檔案和區塊儲存空間。
  6. 使用 gdcloud system doctor 驗證 GDCH 系統是否正常運作。如果 gdcloud system doctor 指令無法使用,請改用「網路安裝驗證」一節中的替代方法。

執行水平伺服器機架擴充作業

透過水平伺服器機架擴充功能,將由運算節點、控制台、ToR 和管理交換器組成的新機架新增至區域。本節所述步驟適用於單一機架。如有數個機架,請分別為每個機架執行這些步驟。

執行重設作業

您必須安全地重設下列設備:

  1. 安全重設序列主控台伺服器。請向 Google 索取這些操作說明,因為每個部署作業的序列埠可能不同。
  2. 安全重設 Raritan 配電裝置 (PDU):

    1. 將 USB-b 傳輸線從系統控制器連接至 Raritan PDU。
    2. 在本地序列控制台中,使用 reset factorydefaults 指令將 PDU 重設為出廠預設設定。
    3. PDU 現在設為 admin/legrand
  3. 按照「安全清除」一文中的說明,執行安全重設、更新韌體,並將 ToR 和 MGMT 交換器重設為 PowerOn Auto Provisioning (POAP)。

  4. 連線至各個伺服器,然後手動執行安全清除作業。

準備構件

請按照下列步驟套用必要的設定檔和自訂資源:

  1. 使用 gdcloud system assets add 指令產生 ZonalExpansion YAML 檔案、硬體 CustomResources 和硬體 SubcomponentOverride 資源:

    gdcloud system assets add \
    --kubeconfig $KUBECONFIG \
    --license-dir FILE_PATH/licenses/ \
    --secrets FILE_PATH/secrets.yaml \
    --devices FILE_PATH/devices.csv \
    --cables FILE_PATH/cables.csv \
    --include-cellcfg \
    --name az-ae-expansion \
    --output ./outputs/af
    

    針對使用的每個檔案,取代 FILE_PATH。請注意,如果每個檔案位於不同位置,這個路徑可能會有所不同。

    ZonalExpansion自訂資源會追蹤所有新增的物件,並回報所有物件的狀態。

    查看 ZonalExpansion YAML 檔案時,請參考下列指引:

    • name 欄位必須是描述性欄位,例如 az-ae-expansion
    • assets 欄位必須包含新擴充機架中的所有新設備。

    以下是 ZonalExpansion 資源的範例:

    apiVersion: system.private.gdc.goog/v1alpha1
    kind: ZonalExpansion
    metadata:
      name: file
      namespace: gpc-system
    spec:
      assets:
      - kind: ManagementSwitch
        name: az-ae-mgmtsw01
      - kind: ManagementSwitch
        name: az-ae-mgmtsw02
      - kind: TORSwitch
        name: az-ae-torsw01
      - kind: TORSwitch
        name: az-ae-torsw02
      - kind: TORSwitch
        name: az-ae-bm01
    
  2. 使用基礎架構即程式碼 (IAC) 工具套用 ZonalExpansion 自訂資源。詳情請參閱「基礎架構即程式碼設定」。或者,您也可以按照 IAM-R0004 執行手冊,使用 kubectl 執行這項操作。

  3. 確認 ZonalExpansionNonCompliantDeviceSet 資源已建立:

    1. 檢查 ZonalExpansion 資源的狀態:

      kubectl --kubeconfig $KUBECONFIG get -A zonalexpansion -o yaml
      

      預檢應在此階段失敗,原因為:ReasonAssetsNotExisted

    2. NonCompliantDeviceSet 資源必須存在,且名稱前置字元為 noncompliantassets-

    3. 資產清單必須與 ZonalExpansion 自訂資源中的 assets 欄位相同。

  4. 請按照 OLT-R0003 中的指示更新資產。

  5. 將新機架中的 ToR 和 MGMT 交換器,連線至現有機架中的匯聚交換器。

  6. 將交換器實體連接至底架。

完成伺服器啟動程序

這個階段大多是自動進行,但仍需執行部分步驟。您必須監控啟動程序進度,並處理任何失敗情況:

  1. 條件 PreflightCheck=True 滿足後,控制器就會自動啟動啟動程序。
  2. 確認條件 NetworkBootstrapSucceed=True 已發布至 ZonalExpansion 自訂資源。這個條件位於 ZonalExpansion.Status.PNETBootstrapStatus
  3. 確認交換器已從 NonCompliantDeviceSet 清單中移除:

    kubectl --kubeconfig $KUBECONFIG get noncompliantdeviceset noncompliantassets-EXPANSION_NAME -A -o yaml
    

    EXPANSION_NAME 替換成區域擴展自訂資源的名稱。

    確認傳回的 YAML 檔案 Spec.Assets 欄位中沒有切換開關。 移除後,GDC 就能更新網路 ACL,允許其他裝置啟動程序。更新後的兩個網路 ACL 分別是 quarantine-mgmt-switch-aclquarantine-data-switch-acl

  4. 列出伺服器的所有基板管理控制器 (BMC) IP 位址,並確認 iLO IP 位址已指派給新的裸機,且可啟動啟動程序:

    kubectl --kubeconfig $KUBECONFIG get servers -n gpc-system -o=custom-columns=SERVER:.metadata.name,BMC_IP:.spec.bmc.ip
    

    輸出內容範例:

     SERVER       BMC_IP
     yz-aa-bm01   10.128.136.2
     yz-aa-bm02   10.128.136.3
     yz-aa-bm03   10.128.136.4
     yz-ab-bm01   10.128.136.66
     yz-ab-bm02   10.128.136.67
     yz-ab-bm03   10.128.136.68
     yz-ac-bm01   10.128.136.130
     yz-ac-bm02   10.128.136.131
     yz-ac-bm03   10.128.136.132
     yz-ac-bm04   10.128.136.133
     yz-ac-bm05   10.128.136.134
     yz-ac-bm06   10.128.136.135
     yz-ac-bm07   10.128.136.136
     yz-ac-bm08   10.128.136.137
     yz-ac-bm09   10.128.136.138
     yz-ac-bm10   10.128.136.139
     yz-ac-bm11   10.128.136.140
     yz-ac-bm12   10.128.136.141
     yz-ac-bm13   10.128.136.142
     yz-ac-bm14   10.128.136.143
     yz-ac-bm15   10.128.136.144
     yz-ac-bm16   10.128.136.145
     yz-ac-bm17   10.128.136.146
     yz-ac-bm18   10.128.136.147
    

    GDC 會平行啟動伺服器,執行安全清除、驗證、BIOS 設定更新和其他啟動程序。

  5. 確認 ServerBootstrapSucceeded=True 條件已發布至 ZonalExpansion 自訂資源。這個狀況發生在以下位置: ZonalExpansion.Status.SERVBootstrapStatus

    • 啟動成功後,伺服器裸機主機狀態會進入 AvailableProvisioned 狀態。
    • 在 CLI 詳細程度為 4 的情況下,您會看到類似 "Not all servers in the ZonalExpansion are bootstrapped" 的記錄,其中列出尚未準備就緒的伺服器。
  6. 確認伺服器現在已從 NonCompliantDeviceSet 清單中移除:

    kubectl --kubeconfig $KUBECONFIG get noncompliantdevicesets -n gpc-system "noncompliantassets-EXPANSION_NAME" -o yaml
    
  7. 確認條件 ExpansionSucceeded=True 已發布至ZonalExpansion自訂資源。這個條件位於 ZonalExpansion.Status.Conditions

  8. 確認 NonCompliantDeviceSet 清單已刪除:

    kubectl --kubeconfig $KUBECONFIG get noncompliantdeviceset noncompliantassets-EXPANSION_NAME -A
    

    預期輸出內容:

    `Error from server (NotFound): noncompliantdevicesets.system.private.gdc.goog "noncompliantassets-EXPANSION_NAME" not found`
    

執行垂直伺服器擴充作業

將伺服器擴充區塊新增至有空擴充插槽的機架,方法是垂直擴充伺服器。這項擴充作業的許多操作說明,都與水平運算擴充作業類似。請按照下列步驟執行直向伺服器機架擴充作業:

  1. 實際安裝標準伺服器區塊 (佔用六個節點的容量),或 GPU 伺服器區塊 (佔用三個節點的容量)。每個機架可新增多個區塊。警告:請勿將電線插入 mgmtswaggsw 交換器,詳情請參閱「切換鈕」。
  2. 除了電源線之外,請勿連接任何纜線。這個步驟可讓伺服器啟動程序驗證伺服器在抵達時並未離線。
  3. 使用 gdcloud system assets add 指令產生 ZonalExpansion YAML 檔案和硬體 SubcomponentOverride 資源:

    gdcloud system assets add \
    --kubeconfig $KUBECONFIG \
    --license-dir FILE_PATH/licenses/ \
    --secrets FILE_PATH/secrets.yaml \
    --devices FILE_PATH/devices.csv \
    --cables FILE_PATH/cables.csv \
    --include-cellcfg \
    --name az-ae-expansion \
    --output ./outputs/af
    

    針對使用的每個檔案,取代 FILE_PATH。請注意,如果每個檔案位於不同位置,這個路徑可能會有所不同。

    查看 ZonalExpansion YAML 檔案時,請參考下列指引:

    • name 欄位必須是描述性欄位,例如 az-ae-expansion
    • assets 欄位必須包含新擴充機架中的所有新設備。

    以下是 ZonalExpansion 資源的範例:

    apiVersion: system.private.gdc.goog/v1alpha1
    kind: ZonalExpansion
    metadata:
      name: file
      namespace: gpc-system
    spec:
      assets:
      - kind: ManagementSwitch
        name: az-ae-mgmtsw01
      - kind: ManagementSwitch
        name: az-ae-mgmtsw02
      - kind: TORSwitch
        name: az-ae-torsw01
      - kind: TORSwitch
        name: az-ae-torsw02
      - kind: TORSwitch
        name: az-ae-bm01
    
  4. 將剛建立的ZonalExpansion自訂資源套用至叢集。

  5. 確認 ZonalExpansionNonCompliantDeviceSet 資源已建立:

    1. 檢查 ZonalExpansion 資源的狀態。預檢應在此階段失敗,原因為:ReasonAssetsNotExisted
    2. NonCompliantDeviceSet 資源必須存在,且名稱前置字元為 noncompliantassets-
    3. 資產清單必須與 ZonalExpansion 自訂資源中的 assets 欄位相同。
  6. 請按照 OLT-R0003 中的指示更新資產。

  7. 請按照 OLT-R0001 執行手冊操作,確認隔離交換器 ACL 正在執行。

  8. 如果尚未完成,請連接伺服器的纜線。請按照 Hewlett Packard Enterprise (HPE) 提供的纜線檔案操作。

  9. 確認伺服器啟動程序已順利啟動並完成。詳情請參閱「完成伺服器啟動程序」。

執行垂直檔案和區塊儲存空間擴充作業

這些說明包含執行垂直或單一機架儲存節點擴充作業所需的步驟。新增 ONTAP 儲存空間節點,擴充現有機架的儲存空間容量時,就會執行儲存空間節點擴充作業。本文不會提供新儲存裝置的佈線說明,只會說明如何清除、升級及將新儲存節點新增至現有叢集。

執行儲存節點擴充設定

請按照下列步驟準備叢集,以便擴充儲存空間節點:

  1. 按照 KUBECONFIG 生成步驟,為控制層節點的管理員叢集生成 KUBECONFIG。在本指南的所有 kubectl 步驟中,請使用產生的 KUBECONFIG 設定檔:

  2. 套用 SubcomponentOverride 資源,在執行節點擴充的初始設定時停用儲存空間協調器:

    kubectl --kubeconfig $KUBECONFIG apply -f - <<EOF
    apiVersion: lcm.private.gdc.goog/v1
    kind: SubcomponentOverride
    metadata:
        name: file-storage-sub-override
        namespace: root
    spec:
        subComponentRef: "file-storage"
        backend:
            operableParameters:
                controller:
                    enableReconcilers: ""
                    disableReconcilers: "*"
    EOF
    
  3. 確認覆寫作業已生效,且 file-storage 調解程式已停用:

    kubectl --kubeconfig $KUBECONFIG describe deployment file-storage -n
    file-system | grep reconcilers
    

    您必須看到以下內容:

    --enable-reconcilers=
    --disable-reconcilers=*
    

    如果沒有看到這個狀態,請稍候幾分鐘,讓 SubcomponentOverride 資源套用,然後再次執行這項檢查。如果 SubcomponentOverride 在幾分鐘後仍未套用,請與 GDC 工程支援團隊聯絡。

  4. 使用 gdcloud system assets add 指令產生 ZonalExpansion YAML 檔案和硬體 SubcomponentOverride 資源:

    gdcloud system assets add \
    --kubeconfig $KUBECONFIG \
    --license-dir FILE_PATH/licenses/ \
    --secrets FILE_PATH/secrets.yaml \
    --devices FILE_PATH/devices.csv \
    --cables FILE_PATH/cables.csv \
    --include-cellcfg \
    --name az-ae-expansion \
    --output ./outputs/af
    ```
    Replace FILE_PATH for each of the files used. Note, this path might be different if each file is in a different location.
    
    Use the following guidance when reviewing the `ZonalExpansion` YAML file:
    
    The `name` field must be descriptive, such as aj-ad-expansion.
    The `assets` field must include all new appliances in the new expansion rack.
    Here is an example of a `ZonalExpansion` resource:
    
    ```sh
    apiVersion: system.private.gdc.goog/v1alpha1
    kind: ZonalExpansion
    metadata:
    name: file
    namespace: gpc-system
    spec:
    assets:
    - kind: StorageNode
        name: aj-ad-stge03-01
    - kind: StorageNode
        name: aj-ad-stge03-02
    ```
    
  5. 將剛建立的ZonalExpansion自訂資源套用至叢集。

  6. 確認 ZonalExpansionNonCompliantDeviceSet 資源已建立:

    1. 檢查 ZonalExpansion 資源的狀態。預檢應在此階段失敗,原因為:ReasonAssetsNotExisted
    2. NonCompliantDeviceSet 資源必須存在,且名稱前置字元為 noncompliantassets-
    3. 資產清單必須與 ZonalExpansion 自訂資源中的資產欄位相同。
  7. 使用 IaC 工具,將下列硬體資產 SubcomponentOverride 資源套用至根管理員叢集。

    • file/file-storage.yaml
    • inv/inv-core.yaml
  8. 確認新節點已新增至叢集:

    kubectl --kubeconfig $KUBECONFIG get storagenodes -n gpc-system
    

    您應該會看到新增的節點自訂資源,且年齡值較新:

      NAME              MGMTIP           INTERCONNECTIP   MODEL      AGE
      aj-ad-stge01-01   172.22.243.129   169.254.0.1      AFF-A250   37d
      aj-ad-stge01-02   172.22.243.130   169.254.0.3      AFF-A250   37d
      aj-ad-stge03-01   172.22.243.133   169.254.0.9      AFF-A400   20d
      aj-ad-stge03-02   172.22.243.134   169.254.0.11     AFF-A400   20d
    
  9. 使用 describe 指令取得這兩個節點的相關資訊,因為後續步驟會用到這些資訊。

    kubectl --kubeconfig $KUBECONFIG describe storagenode NODE_NAME -n gpc-system
    

    NODE_NAME 替換為每個已建立節點的名稱。

    輸出內容範例:

    NAME              MGMTIP           INTERCONNECTIP   MODEL      AGE
    aj-ad-stge03-02   172.22.243.134   169.254.0.11     AFF-A400   20d
    

完成儲存空間節點擴充程序

請按照下列步驟完成儲存空間節點擴充程序:

  1. 手動升級新的儲存空間節點。針對每個節點,請按照手動升級 ONTAP 一文的步驟,從系統控制器提供檔案。
  2. 對新儲存空間節點執行安全清除作業。如要重設新的 ONTAP 節點,請按照「ONTAP Reset」一文中的步驟操作。

  3. 初始化新的儲存空間節點。使用上一個步驟中新增的 StorageNode 自訂資源資訊。針對每個節點,執行「初始化 ONTAP 裝置」一文中的步驟。

  4. 按照「設定 ONTAP」的說明,將新節點的纜線連接至目前的叢集。

  5. 請按照「將新節點新增至現有叢集」一文中的操作說明,將新節點新增至叢集。

排解動態展開功能問題

請使用服務手冊中的下列執行手冊,排解動態擴展問題:

  • OLT-R0001
  • OLT-R0002
  • OLT-R0003