全部產品
Search
文件中心

Elastic High Performance Computing:通過後處理指令碼自訂部署擴容的計算節點

更新時間:Jul 06, 2024

設定後處理指令碼後,E-HPC叢集上後續擴容的節點均會自動執行指定的後處理指令碼,可以滿足計算節點預部署的需求。通過後處理指令碼,您可以對計算節點做定製化操作,例如擴容的計算節點自動掛載ossfs、自動部署軟體環境等。本文以自動掛載ossfs為例,介紹如何設定後處理指令碼。

背景資訊

設定後處理指令碼有以下兩種方式:

  • 建立叢集時,可在軟體配置頁的安裝後執行指令碼地區,設定後處理指令碼。

  • 叢集運行後,可通過OpenAPI配置和擷取後處理指令碼。

說明

建立叢集時設定的後處理指令碼對叢集內所有節點生效,叢集運行後設定的後處理指令碼僅對叢集新擴容的節點有效,叢集內原有節點不生效。

前提條件

  1. 已建立E-HPC叢集。具體操作,請參見使用嚮導建立叢集

    本文以叢集運行後設定後處理指令碼為例,如果您還未建立E-HPC叢集,可在建立叢集時直接設定後處理指令碼。

  2. 已建立OSS Bucket,用於存放ossfs包和後處理指令碼。具體操作,請參見建立儲存空間

步驟一:下載並配置ossfs

  1. 下載ossfs包。

    下載地址請參見ossfs快速安裝

  2. 將ossfs包上傳到您的OSS Bucket。

    具體操作,請參見簡單上傳。上傳時,檔案ACK請設定為公用讀取,以便後處理指令碼可以訪問擷取,上傳後,請在檔案詳情頁記錄ossfs包的私網下載地址,例如https://bucket-***.oss-cn-shanghai-internal.aliyuncs.com/demo/ossfs_1.80.6_centos7.0_x86_64.rpm

  3. 設定ossfs帳號。

    1. 登入E-HPC叢集。

    2. 將帳號資訊寫入帳號設定檔。

      您需要將實際帳號資訊(AccessKey ID和AccessKey Secret)按照$bucket_name:$access_key_id:$access_key_secret 的格式寫入到叢集的/home/passwd-ossfs共用儲存中,該檔案路徑將作為參數用於後處理指令碼。命令如下:

      echo "$bucket_name:$access_key_id:$access_key_secret" >  /home/passwd-ossfs
      說明
    3. 修改帳號設定檔的許可權。

      操作後,需要將/home/passwd-ossfs檔案使用權限設定為600,命令如下:

      chmod 600 /home/passwd-ossfs

步驟二:編寫並上傳後處理指令碼

  1. 編寫後處理指令碼。

    處理指令碼ehpcMountOss.sh的內容樣本如下,請根據實際情況填寫OssFsConfPath、OssFsUrl和OssEndpoint的值,並替換。

    重要

    後處理指令碼執行錯誤可能會導致節點異常,請確保指令碼內容編寫正確。更多資訊,請參見指令碼配置說明

    #!/bin/bash
    # 配置您的帳號設定檔路徑
    OssFsConfPath="/home/passwd-ossfs"
    
    # 配置您的ossfs包私網下載地址
    OssFsUrl="https://bucket-***.oss-cn-shanghai-internal.aliyuncs.com/demo/ossfs_1.80.6_centos7.0_x86_64.rpm"
    
    # 配置您的OSS 私網Endpoint
    OssEndpoint="http://oss-cn-shanghai-internal.aliyuncs.com"
    
    wget ${OssFsUrl}
    yum install -y ossfs_1.80.6_centos7.0_x86_64.rpm
    rm -rf ossfs_1.80.6_centos7.0_x86_64.rpm
    
    echo ${BucketName}:${AccessKeyId}:${AccessKeySecret} > /etc/passwd-ossfs
    chmod 640 /etc/passwd-ossfs
    mkdir /tmp/ossfs
    ossfs ${BucketName} /tmp/ossfs -opasswd_file=${OssFsConfPath} -ourl=${OssEndpoint} -oallow_other

    樣本指令碼中包含了ossfs的掛載步驟,更多關於ossfs的配置,請參見進階配置

  2. 將後處理指令碼上傳到OSS Bucket。

    具體操作,請參見簡單上傳。上傳時,檔案ACK請設定為公用讀取,以便叢集可以訪問擷取。上傳後,請在檔案詳情頁記錄後處理指令碼的私網下載地址,例如https://bucket-***.oss-cn-shanghai-internal.aliyuncs.com/demo/ehpcMountOss.sh

步驟三:使用OpenAPI設定叢集後處理指令碼

  1. 登入OpenAPI開發人員門戶

  2. 調用SetPostScripts介面設定後處理指令碼。

    說明

    如果您的叢集之前設定過後處理指令碼(指令碼預設存放在/opt/ehpc_user_scripts路徑下),請先登入叢集,執行rm -rf命令刪除已有指令碼。

    要填寫的參數如下,更多資訊,請參見SetPostScripts

    參數名稱

    樣本值

    說明

    RegionId

    cn-shanghai

    叢集所屬地區。

    ClusterId

    ehpc-sh-R1X01h****

    叢集ID。

    PostInstallScripts.0.Url

    https://bucket-***.oss-cn-shanghai-internal.aliyuncs.com/demo/ehpcMountOss.sh

    後處理指令碼的私網下載地址。

  3. 調用GetPostScripts介面查看後處理指令碼。

    要填寫的參數如下,更多資訊,請參見GetPostScripts

    參數名稱

    樣本值

    說明

    RegionId

    cn-shanghai

    叢集所屬地區。

    ClusterId

    ehpc-sh-R1X01h****

    叢集ID。

步驟四:擴容叢集測試後處理指令碼效果

  1. 擴容叢集。具體操作,請參見手動擴容叢集

  2. 登入擴容後的計算節點,確認ossfs掛載情況。

    登入後執行df -h命令,可以看到擴容的節點已自動執行後處理指令碼,掛載了ossfs。預期返回如下:

    後處理指令碼2