全部產品
Search
文件中心

Elastic High Performance Computing:混合雲主控模式最佳實務

更新時間:Jul 06, 2024

混合雲主控模式叢集的管理節點為雲上新增叢集的管理節點,計算節點由線下已有計算節點和雲上新增計算節點組成。本文以E-HPC雲上叢集將線下已有計算節點納入管理的情境為例,介紹混合雲主控模式叢集(SGE調度器)的部署方案。

重要

本文的部署方案僅支援使用SGE調度器,並且需要提交工單申請開通白名單才能使用。

背景資訊

在HPC生命科學領域,大部分企業均已經部署了線下的IDC資料中心,但可能會存在基礎設施陳舊、算力不足的問題。隨著業務的快速增長,企業希望在雲上搭建新的算力叢集,但同時需要利用上原有IDC內的資源。為滿足上述情境的需求,阿里雲E-HPC提供了混合雲的解決方案,可以統一、高效地管控雲上和線下的計算資源,並支援靈活運用雲上資源的彈性優勢,實現自動調整。

混合雲解決方案分為主控模式和代理模式。

  • 主控模式:管理節點屬於雲上新增叢集。

  • 代理模式:管理節點屬於原先已有叢集。

    說明

    代理模式下,已有叢集可以是線下叢集,也可以是雲上其他地區的叢集。

情境說明

假設已有線下叢集的計算節點的配置為:

  • 作業系統:CentOS 7.6

    重要

    對於線下計算節點,目前暫支援作業系統為CentOS 7系列的節點。

  • 規格:2 vCPU、4 GiB記憶體

操作流程

本實踐包含以下操作:

操作

操作內容

步驟一:建立雲上E-HPC叢集

準備雲上的E-HPC叢集,並配置網路。

步驟二:擷取雲上叢集配置資訊

擷取雲上叢集配置資訊,用於線下計算節點配置使用。

步驟三:部署線下計算節點

線上下計算節點部署調度器用戶端、使用者管理用戶端,並掛載雲上儲存。

步驟四:將線下計算節點加入到雲上叢集

在雲上叢集中建立用於管理線下計算節點的隊列,並將線下計算節點加入到雲上叢集的隊列中。

步驟五:配置自動調整

配置叢集進行自動調整,自動增加或減少雲上計算節點。

步驟六:提交作業進行測試

在雲上叢集中提交作業至隊列,測試節點能否正常工作。

(可選)從雲上叢集中移除線下計算節點

對於不再需要使用的線下計算節點,可以從雲上叢集中移除,同時需要在節點中停止相關服務。

步驟一:建立雲上E-HPC叢集

  1. 建立一個E-HPC叢集。

    具體操作,請參見使用嚮導建立叢集。配置時,需要注意的參數如下:

    • 部署方式選擇精簡,預設包括1個管控節點和1個計算節點(可不選),其中管控節點的規格建議選擇4 vCPU,8 GiB及以上。

    • 調度器使用SGE,即選擇opengridscheduler

    • 域帳號服務選擇nis

  2. 打通雲上叢集和線下IDC的網路。

    支援通過VPN網關或者物理專線打通雲上和線下網路。

  3. 配置安全性群組。

    由於線下計算節點需要加入到雲上叢集進行統一管理,因此需要為叢集所屬的安全性群組配置入方向規則,允許線下計算節點訪問雲上叢集。

    您可以在E-HPC叢集詳情頁單擊安全性群組ID,快速跳轉到叢集所屬的安全性群組頁面,添加入方向訪問規則,其中源IP為線下計算節點的IP地址網段。樣本如下:

    混合雲最佳實務6

本文採用的環境樣本如下:

類型

說明

管控節點

1台ECS,規格為ecs.c7a.xlarge。

計算節點

1台ECS,規格為ecs.c7a.xlarge;2台本機伺服器。作業系統為CentOS 7.6。

網路

使用SSL-VPN打通雲上叢集和線下IDC的網路。

步驟二:擷取雲上叢集配置資訊

建立E-HPC叢集後,需擷取叢集管控資訊,提供給線下計算節點配置使用。

  1. 登入E-HPC叢集。具體操作,請參見登入叢集

  2. 下載用於擷取叢集配置資訊的指令碼。

    wget https://public-ehpc-package.oss-cn-hangzhou.aliyuncs.com/scheduler/offpremise_config_fetch.sh
  3. 執行指令碼擷取配置資訊。

    source offpremise_config_fetch.sh

    指令碼輸出的OFFPREMISE_PARAMS檔案即為配置資訊。執行cat命令擷取配置資訊。

    混合雲最佳實務1

步驟三:部署線下計算節點

您需要線上下計算節點上部署調度器用戶端、使用者管理用戶端,並掛載雲上儲存。

說明

操作前,請確保節點所在網路與雲上叢集網路互連。例如如果採用SSL-VPN,線下計算節點需要安裝SSL用戶端。

  • 單節點操作

    登入某一計算節點執行以下操作:

    1. 下載部署服務指令碼。

      wget https://public-ehpc-package.oss-cn-hangzhou.aliyuncs.com/scheduler/deploy_nis_sge_client.sh 
    2. 執行指令碼部署服務。

      sh deploy_nis_sge_client.sh <叢集配置資訊>

      請根據實際擷取的叢集配置資訊替換<叢集配置資訊>,樣本如下:

      sh deploy_nis_sge_client.sh ehpc-hz-e5WF****** manager 10.18.XX.XX 000a******-vm***.cn-hangzhou.nas.aliyuncs.com:/ehpc-hz-e5WF****** manager 10.18.XX.XX
  • 多節點操作

    登入本地的配置節點或者某一計算節點執行以下操作,需確保該節點與其他線下計算節點的網路連通。

    1. 下載部署服務指令碼。

      wget https://public-ehpc-package.oss-cn-hangzhou.aliyuncs.com/scheduler/batch_install_clients.sh
    2. 建立hosts檔案。

      hosts檔案中每一行對應一台計算節點,格式為[host_name]  [host_ip],樣本如下:

      混合雲最佳實務2

    3. 執行指令碼部署服務。

      sh batch_install_clients.sh <叢集配置資訊> ./hosts

      請根據實際擷取的叢集配置資訊替換<叢集配置資訊>,樣本如下:

      sh batch_install_clients.sh ehpc-hz-e5WF****** manager 10.18.XX.XX 000a******-vm***.cn-hangzhou.nas.aliyuncs.com:/ehpc-hz-e5WF****** manager 10.18.XX.XX ./hosts

步驟四:將線下計算節點加入到雲上叢集

線下計算節點暫不支援移動隊列,您需要先建立用於管理線下計算節點的隊列,然後再擴容叢集,將線下計算節點加入到叢集的指定隊列。

  1. 建立隊列。具體操作,請參見管理隊列

  2. 將線下計算節點加入到叢集中。

    1. 在彈性高效能運算控制台的叢集頁面,找到目的地組群,單擊右上方的擴容

    2. 在彈出面板選擇線下節點頁簽。

    3. 選擇新建立的隊列,根據需要逐個錄入或者大量匯入線下計算節點資訊,單擊確定

      混合雲最佳實務3

      要錄入的節點資訊如下:

      • 主機名稱:與實際節點主機名稱保持一致。

      • 節點IP:與實際節點IP保持一致。

      • CPU:通過lscpu命令查看的節點CPU數。

      • 記憶體:節點總記憶體大小。

      重要

      請確保填寫的主機名稱和節點IP與實際節點一致,否則無法加入叢集。

      對於基於SSL-VPN串連的節點,節點IP地址需使用VPN虛擬網卡tun0的IP地址,您可以通過ifconfig命令查看。

  3. 節點與隊列頁面,找到目的地組群,篩選節點類型和隊列,查看線下計算節點。

    重新整理頁面更新節點狀態,等待1~2分鐘,當線下計算節點的狀態為運行中時,表示添加成功。

步驟五:配置自動調整

E-HPC叢集支援配置自動調整策略,實現根據即時負載自動增加或減少雲上的計算節點。具體操作,請參見配置自動調整

混合雲最佳實務4

說明

線下計算節點及所屬隊列不支援自動調整。

步驟六:提交作業進行測試

  1. 提交作業至雲上計算節點所在隊列進行測試。

    qsub sample1.sh

    測試指令碼sample1.sh的內容樣本如下,請根據實際替換隊列(-q)和路徑(-o-e)。

    #!/bin/bash
    
    #$ -cwd
    #$ -l vf=1G
    #$ -q workq
    #$ -N sge-demo1
    #$ -o /home/test/
    #$ -e /home/test/
    
    echo "demo start, sleep 10s and ping localhost"
    sleep 10
    ping -c 10 localhost
    echo "demo complete"
  2. 提交作業至線下計算節點所在隊列進行測試。

    qsub sample2.sh

    測試指令碼sample2.sh的內容樣本如下,請根據實際替換隊列(-q)和路徑(-o-e)。

    #!/bin/bash
    
    #$ -cwd
    #$ -l vf=1G
    #$ -q local
    #$ -N sge-demo2
    #$ -o /home/test/
    #$ -e /home/test/
    
    echo "demo start, sleep 10s and ping localhost"
    sleep 10
    ping -c 10 localhost
    echo "demo complete"

(可選)從雲上叢集中移除線下計算節點

  1. 從叢集中移除線下計算節點。

    具體操作,請參見刪除節點

  2. 線上下計算節點中停止相關服務。

    • 單節點操作

      登入某一計算節點執行以下操作:

      1. 下載停止服務指令碼。

        wget https://public-ehpc-package.oss-cn-hangzhou.aliyuncs.com/scheduler/nis_sge_client_stop.sh 
      2. 執行指令碼停止服務。

        sh nis_sge_client_stop.sh <叢集配置資訊>

        請根據實際擷取的叢集配置資訊替換<叢集配置資訊>,樣本如下:

        sh nis_sge_client_stop.sh ehpc-hz-e5WF****** manager 10.18.XX.XX 000a******-vm***.cn-hangzhou.nas.aliyuncs.com:/ehpc-hz-e5WF****** manager 10.18.XX.XX
    • 多節點操作

      登入本地的配置節點或者某一計算節點執行以下操作,需確保該節點與其他線下計算節點的網路連通。

      1. 下載停止服務指令碼。

        wget https://public-ehpc-package.oss-cn-hangzhou.aliyuncs.com/scheduler/batch_stop_clients.sh
      2. 建立host檔案。

        hosts檔案中每一行對應一台計算節點,格式為[host_name]  [host_ip],樣本如下:

        混合雲最佳實務2

      3. 執行指令碼停止服務。

        sh batch_stop_clients.sh <叢集配置資訊> ./hosts

        請根據實際擷取的叢集配置資訊替換<叢集配置資訊>,樣本如下:

        sh batch_stop_clients.sh  ehpc-hz-e5WF****** manager 10.18.XXX.XX 000a******-vm***.cn-hangzhou.nas.aliyuncs.com:/ehpc-hz-e5WF****** manager 10.18.XX.XX ./hosts