クラスター ワークロードに応じて Azure の HPC Pack クラスター リソースを自動的に拡張および縮小する
HPC Pack クラスターに Azure "バースト" ノード (Windows と Linux の両方) をデプロイする場合、または Azure VM に HPC Pack クラスターを作成する場合は、クラスター上のワークロードに応じて、ノードやコアなどのクラスター リソースを自動的に拡張または縮小する方法が必要な場合があります。 この方法でクラスター リソースをスケーリングすると、Azure リソースをより効率的に使用し、コストを制御できます。
HPC Pack 2016 以降のバージョンでは、Windows PaaS ノード、Azure IaaS VM ノード、Azure バッチ プール ノード、Azure VM スケール セット ノードなど、Azure クラウドを実行している HPC Pack コンピューティング ノードを自動的に拡張および縮小できます。 ただし、ノードの種類によって、自動拡張の縮小ロジックは異なります。 概要を次に示します。
ノードの種類 | 有効にする方法 | 前提 | 監視方法 |
---|---|---|---|
Azure PaaS ノード | PowerShell コマンドレット を Set-HpcClusterProperty -EnableGrowShrink 1 |
1. Azure PaaS ノードのノード テンプレート 2. クラスターに追加されたノード |
ClusterManager の [自動拡張圧縮レポート] --> リソース管理 --> 操作 -- azureOperations> |
Azure IaaS ノード | PowerShell コマンドレット を Set-HpcClusterProperty -EnableGrowShrink 1 |
1. 構成された Azure サービス プリンシパル 2. クラスターに追加されたノード |
ClusterManager の [自動拡張圧縮レポート] --> リソース管理 --> 操作 -- azureOperations> |
Azure VM スケール セット ノード | PowerShell コマンドレット を Set-HpcClusterProperty -EnableGrowShrink 1 |
1. 構成された Azure サービス プリンシパル 2. クラスターに追加されたノード |
ClusterManager の [自動拡張圧縮レポート] --> リソース管理 --> 操作 -- azureOperations> |
Azure Batch プール | Azure Batch プール ノード テンプレート | Azure Batch プールを開始する必要がある | azure portal または Azure Batch Explorer |
注:
この機能は、Azure の既存の HPC コンピューティング ノードを開始または停止することによって、Azure リソースを自動的に拡大または縮小するだけで、新しい HPC コンピューティング ノードを自動的に作成したり、既存のノードを削除したりしません。
Azure VM スケール セット ノードの自動スケーリングは、HPC Pack 2016 Update 2 以降でサポートされています。
Azure IaaS VM ノードまたは Azure VM スケール セット ノードの自動スケーリング
HPC Pack クラスター内の Azure IaaS VM ノードまたは Azure VM スケール セット ノードを自動的に拡張または縮小するには、Azure サブスクリプションを管理するための証明書を使用して Azure サービス プリンシパルを構成する必要があります。 PowerShell コマンドまたはクラスター マネージャー GUI を使用して構成できます。
Azure サービス プリンシパルを構成したら、HPC Pack AutoGrowShrink コマンドレット を使用して、自動拡大圧縮を有効にすることができます。
注:
既定では、HPC Pack によって作成された Azure サービス プリンシパルには、サブスクリプション レベルで 共同作成者 ロールが付与されます。HPC Pack クラスター内の Azure リソースのアクセス制御 を参照、ユーザー シナリオに応じて Azure サービス プリンシパルのアクセス許可を手動で再構成できます。
PowerShell を使用して Azure サービス プリンシパルを構成する
クラスターのデプロイ後、リモート デスクトップで 1 つのヘッド ノードに接続します。
証明書 (秘密キーを含む PFX 形式) を各ヘッド ノードにアップロードし、Cert:\LocalMachine\My にインストールします。 この証明書は、Azure サービス プリンシパルの作成に使用されます。 証明書がない場合は、まず自己署名証明書を作成できます。
管理者として Azure PowerShell を起動し、1 つのヘッド ノードで次のコマンドを実行します。
cd $env:CCP_HOME\bin Connect-AzureRmAccount
アカウントが複数の Azure Active Directory テナントまたは Azure サブスクリプションにある場合は、次のコマンドを実行して、適切なテナントとサブスクリプションを選択できます。
Connect-AzureRmAccount -TenantId <TenantId> -SubscriptionId <subscriptionId>
次のコマンドを実行して、現在選択されているテナントとサブスクリプションを表示します。
Get-AzureRMContext
次のスクリプトを実行する
.\ConfigARMAutoGrowShrinkCert.ps1 -DisplayName "YourHpcPackAppName" -HomePage "https://YourHpcPackAppHomePage" -IdentifierUri "https://YourHpcPackAppUri" -CertificateThumbprint "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" -TenantId xxxxxxxx-xxxxx-xxxxx-xxxxx-xxxxxxxxxxxx
where
DisplayName - Azure Active Application の表示名。 アプリケーションが存在しない場合は、Azure Active Directory に作成されます。
HomePage - アプリケーションのホーム ページ。 前の例のように、ダミー URL を構成できます。
IdentifierUri - アプリケーションの識別子。 前の例のように、ダミー URL を構成できます。
CertificateThumbprint - 手順 2 でヘッド ノードにインストールした証明書の拇印。
TenantId - Azure Active Directory のテナント ID。 テナント ID は、Azure Active Directory ポータルの [プロパティ] ページ
取得できます。 ConfigARMAutoGrowShrinkCert.ps1の詳細については、
Get-Help .\ConfigARMAutoGrowShrinkCert.ps1 -Detailed
を実行します。構成後、HPC Powershell コマンドを使用してレジストリ キーの設定 (ApplicationId、TenantId、拇印を含む) を確認できます
Get-HpcClusterRegistry
クラスター マネージャー GUI を使用して Azure サービス プリンシパルを構成する
1 つのヘッド ノードで HPC Pack クラスター マネージャーを開きます。
[構成
に移動します。展開 to do リスト ページ 。 [Azure Deployment Configuration
設定] をクリックします。 このウィザードを実行すると、Azure サービス プリンシパル、azure リソース グループ
、Azure VM がプロビジョニングされる VNet 、クラスター通信に使用する証明書 構成するのに役立ちます。 ウィザードは次のように実行されます。 Azure デプロイ設定ウィザードの
構成の検証
Azure サービス プリンシパルを正常に構成すると、HPC Pack を使用して Azure IaaS VM ノードを開始および停止できるようになります。
HPC Pack 2016 Update 2 以降のバージョン
HPC Pack Update 1 以前のバージョン で手動で azure にインストール
Azure IaaS VM ノードがまだない場合は、「IaaS ノードの追加 に従って Azure IaaS ノード テンプレートを作成し、IaaS VM ノードをクラスターに追加できます。
Azure PaaS ノードの自動スケーリング
HPC Pack クラスターによる Azure Windows PaaS ノードの自動縮小を有効にする前に、Azure ノード テンプレートを確認し、時間スケジュールベースではなく、Azure PaaS ノードが手動で開始および停止するように構成されていることを確認する必要があります。
HPC Pack の自動拡張圧縮サービスでは、クラスターに新しいリソースが追加されることはありません。 したがって、Azure PaaS ノード テンプレートを作成した後は、まず次の方法でノードをクラスターに追加する必要があります。
- HPC クラスター マネージャーを起動し、[リソース管理の] ウィンドウ
移動します - [ノード 追加]をクリックします。アクション ウィンドウ、ウィザードから [Windows Azure ノードの追加] を選択します。
- ウィザードの [
完了] をクリックすると、多数のノードがデプロイされていない 状態クラスターに追加されます - HPC Pack AutoGrowShrink コマンドレット 使用して自動拡大圧縮を有効にする
注:
HPC Pack は、キューに登録されたジョブのリソースを増やすときに、手順 3 で追加したノードの数を増やします。 クラスターにリソースを追加することはありません。 そのため、サブスクリプションの容量を確認し、クラスターに適切な数のノードを追加できます。
Azure Batch プールの自動スケーリング
HPC Pack で Azure Batch プール テンプレートを作成する場合、既定では、プールに対して既定の自動スケール式が定義されます。 ただし、このドキュメント を参照して、独自のスケール式とバッチ ノード テンプレートの更新を定義することもできます。
クラスターの自動拡張と縮小プロパティを設定するための HPC PowerShell コマンド
次に示すのは、AutoGrowShrink
これらのコマンドを実行するには、クラスター ヘッド ノードで HPC PowerShell を管理者として起動します。
AutoGrowShrink の現在の設定を表示するには
Get-HpcClusterProperty –AutoGrowShrink
AutoGrowShrink プロパティを有効にするには
Set-HpcClusterProperty –EnableGrowShrink 1
AutoGrowShrink プロパティを無効にするには
Set-HpcClusterProperty –EnableGrowShrink 0
分単位で拡大間隔を変更するには
Set-HpcClusterProperty –GrowInterval <interval>
圧縮間隔を分単位で変更するには
Set-HpcClusterProperty –ShrinkInterval <interval>
AutoGrowShrink の現在の構成を表示するには
Get-HpcClusterProperty –AutoGrowShrink
AutoGrowShrink からノード グループを除外するには
Set-HpcClusterProperty –ExcludeNodeGroups <group1,group2,group3>
注:
このパラメーターは HPC Pack 2016 以降でサポートされています
AutoGrowShrink パラメーター
Set-HpcClusterProperty コマンドを使用して変更できる AutoGrowShrink パラメーターを次に示します。
EnableGrowShrink - AutoGrowShrink プロパティを有効または無効に切り替えます。
TasksPerResourceUnit - 1 つのリソース ユニットを拡張するタスクの数 (ジョブのリソース ユニットの種類に基づく)。 既定では、タスクごとに 1 つのリソースユニットを拡張します。
GrowThreshold - 自動拡張をトリガーするタスクがキューに登録されているジョブのしきい値。 既定値は 1 です。つまり、キューに登録されたタスクを持つジョブが 1 つ以上ある場合は、ノードが自動的に拡張されます。
GrowInterval - 自動拡張をトリガーする間隔 (分)。 既定の間隔は 5 分です。
ShrinkInterval - 自動縮小をトリガーする間隔 (分)。 既定の間隔は 5 分です。|
ShrinkIdleTimes - ノードがアイドル状態であることを示すために圧縮する継続的なチェックの数。 既定値は 3 回です。 たとえば、ShrinkInterval が 5 分の場合、HPC Pack はノードが 5 分ごとにアイドル状態かどうかを確認します。 すべての 3 つの連続チェック (15 分) でノードがアイドル状態になっている場合、HPC Pack はそのノードを縮小することにします。
ExtraNodesGrowRatio - メッセージ パッシング インターフェイス (MPI) ジョブで増加するノードの追加の割合。 既定値は 1 です。つまり、HPC Pack は MPI ジョブのノード 1% を拡張します。
GrowByMin - 自動拡張ポリシーがジョブに必要な最小リソースに基づいているかどうかを示すように切り替えます。 既定値は false です。つまり、HPC Pack は、ジョブに必要な最大リソースに基づいてジョブのノードを拡張します。
SoaJobGrowThreshold - 自動拡張プロセスをトリガーする受信 SOA 要求のしきい値。 既定値は 50000 です。
注:
このパラメーターは、HPC Pack 2012 R2 Update 3 以降でサポートされています。
SoaRequestsPerCore 、1 つのコアを拡張するための受信 SOA 要求の -Number。 既定値は 20000 です。
注:
このパラメーターは、HPC Pack 2012 R2 Update 3 以降でサポートされています。
ExcludeNodeGroups – 指定されたノード グループ内のノードは自動的に拡大および縮小されません。
注:
このパラメーターは、HPC Pack 2016 以降でサポートされています。
MPI の例
既定では、HPC Pack は MPI ジョブ用に 1% 追加ノードを増やします (extraNodesGrowRatio
Set-HpcClusterProperty -ExtraNodesGrowRatio 10
SOA の例
既定では、