後処理スクリプトは、Elastic High Performance Computing (E-HPC) クラスターに追加された各計算ノードで自動的に実行され、ジョブキューに参加する前にノードを事前設定できます。このチュートリアルでは、OpenAPI Explorer を通じて後処理スクリプトを設定し、スケールアウトされたすべての計算ノードに ossfs をマウントする具体的な例を説明します。
設定方法
後処理スクリプトを設定するには、2 つの方法があります:
クラスターの作成時: [Post-Install スクリプト] パラメーターを [ソフトウェア構成] ステップで設定します。このスクリプトは、クラスター内のすべてのノードで実行されます。
クラスター実行中:OpenAPI Explorer を介して SetPostScripts または GetPostScripts を呼び出します。このスクリプトは、設定後に追加されたノードでのみ実行され、既存のノードには影響しません。
このチュートリアルでは、実行中のクラスターへのアプローチを使用します。まだクラスターを作成していない場合は、代わりにクラスター作成時に後処理スクリプトを設定してください。
前提条件
開始する前に、以下を確認してください:
E-HPC クラスター。詳細については、「ウィザードを使用したクラスターの作成」をご参照ください。
ossfs インストールパッケージと後処理スクリプトを保存するための Object Storage Service (OSS) バケット。詳細については、「バケットの作成」をご参照ください。
ステップ 1:ossfs のダウンロードと設定
ossfs インストールパッケージをダウンロードします。詳細については、「インストール」をご参照ください。
インストールパッケージをご利用の OSS バケットにアップロードします。詳細については、「単純アップロード」をご参照ください。アップロード時に、[ファイルの ACL] を [パブリック読み取り] に設定します。アップロードが完了したら、ファイル詳細ページから非公開ダウンロード URL を記録します。例:
https://bucket-***.oss-cn-shanghai-internal.aliyuncs.com/demo/ossfs_1.80.6_centos7.0_x86_64.rpmAccessKey ペアをクラスターの共有ディレクトリに書き込みます。E-HPC クラスターにログインし、AccessKey ID と AccessKey Secret を
/home/passwd-ossfsに$bucket_name:$access_key_id:$access_key_secretのフォーマットで書き込みます:AccessKey ID と AccessKey Secret を取得するには、「AccessKey ペアの作成」をご参照ください。AccessKey ペアは機密情報として扱ってください。詳細については、「AccessKey ペアの漏洩を防ぐためのベストプラクティス」をご参照ください。
echo "$bucket_name:$access_key_id:$access_key_secret" > /home/passwd-ossfs認証情報ファイルへのアクセスを制限します:
chmod 600 /home/passwd-ossfs
ステップ 2:後処理スクリプトの作成とアップロード
後処理スクリプトを作成します。次のサンプルスクリプト (
ehpcMountOss.sh) は、OSS から ossfs RPM をダウンロードしてインストールし、バケットをマウントします。OssFsConfPath、OssFsUrl、OssEndpointをご自身の値に置き換えてください。重要後処理スクリプトが失敗すると、ノードはエラー状態になり、クラスターに参加できなくなります。アップロードする前にスクリプトの内容を検証してください。詳細については、「インストールスクリプトの設定」をご参照ください。
#!/bin/bash # アカウント設定ファイルのディレクトリを入力します。 OssFsConfPath="/home/passwd-ossfs" # ossfs インストールパッケージの非公開ダウンロード URL を入力します。 OssFsUrl="https://bucket-***.oss-cn-shanghai-internal.aliyuncs.com/demo/ossfs_1.80.6_centos7.0_x86_64.rpm" # OSS バケットの内部エンドポイントを入力します。 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 マウントオプションについては、「高度な構成」をご参照ください。
後処理スクリプトを OSS バケットにアップロードします。詳細については、「単純アップロード」をご参照ください。アップロード時に、[ファイルの ACL] を [パブリック読み取り] に設定します。アップロードが完了したら、非公開ダウンロード URL を記録します。例:
https://bucket-***.oss-cn-shanghai-internal.aliyuncs.com/demo/ehpcMountOss.sh
ステップ 3:OpenAPI Explorer を使用した後処理スクリプトの設定
OpenAPI Explorer を開きます。
SetPostScripts操作を次のパラメーターで呼び出します。完全なパラメーターリファレンスについては、「SetPostScripts」をご参照ください。以前にこのクラスターに後処理スクリプトを設定したことがある場合は、まずそれを削除してください。デフォルトでは、スクリプトは
/opt/ehpc_user_scriptsに保存されています。新しいスクリプトを設定する前にrm -rfを実行して削除してください。パラメーター 例 説明 RegionId cn-shanghai クラスターが存在するリージョンの ID ClusterId ehpc-sh-R1X01h**** E-HPC クラスターの ID PostInstallScripts.0.Url https://bucket-***.oss-cn-shanghai-internal.aliyuncs.com/demo/ehpcMountOss.sh 後処理スクリプトの非公開ダウンロード URL GetPostScripts操作を呼び出して、スクリプトが登録されていることを確認します。完全なパラメーターリファレンスについては、「GetPostScripts」をご参照ください。パラメーター 例 説明 RegionId cn-shanghai クラスターが存在するリージョンの ID ClusterId ehpc-sh-R1X01h**** E-HPC クラスターの ID
ステップ 4:クラスターのスケールアウトと検証
E-HPC クラスターをスケールアウトします。詳細については、「E-HPC クラスターの手動スケールアウト」をご参照ください。
新しいノードが追加された後、そのノードにログインし、
df -hを実行して ossfs が正常にマウントされたことを確認します:df -h出力には次のような行が含まれ、ossfs が
/tmp/ossfsにマウントされていることを確認できます:ossfs <size> 0 <size> 0% /tmp/ossfsマウントエントリが存在しない場合は、ノードの後処理スクリプトのログを確認して問題を診断してください。