次の方法で共有


Azure の HPC Pack クラスターで Linux コンピューティング ノードを使い始める方法

重要

クラシック VM は、2023 年 3 月 1 日に廃止されます。

ASM の IaaS リソースを使用する場合は、2023 年 3 月 1 日までに移行を完了してください。 Azure Resource Manager の多数の機能強化を活用するために、早急に切り替えを行うことをお勧めします。

詳細については、「2023 年 3 月 1 日までに IaaS リソースを Azure Resource Manager に移行する」を参照してください。

Windows Server を実行するヘッド ノードと、サポートされている Linux ディストリビューションを実行する複数のコンピューティング ノードを含む Microsoft HPC Pack クラスターを Azure に設定します。 Linux ノードとクラスターの Windows ヘッド ノード間でデータを移動するオプションについて説明します。 Linux HPC ジョブをクラスターに送信する方法について説明します。

Azure には、リソースの作成と操作に関して、2 種類のデプロイ モデルがあります。Resource Manager とクラシックです。 この記事では、両方のモデルについて取り上げていますが、最新のデプロイではリソース マネージャー モデルの使用をお勧めします。

大まかに言うと、次の図は、作成して使用する HPC Pack クラスターを示しています。

Linux ノードを含む HPC Pack クラスター

Azure で Linux HPC ワークロードを実行するためのその他のオプションについては、 バッチコンピューティングとハイパフォーマンス コンピューティングの技術リソースに関するページを参照してください。

Linux コンピューティング ノードを使用して HPC Pack クラスターをデプロイする

この記事では、Linux コンピューティング ノードを使用して Azure に HPC Pack クラスターをデプロイする 2 つのオプションについて説明します。 どちらの方法でも、HPC Pack を使用して Windows Server の Marketplace イメージを使用してヘッド ノードを作成します。

  • Azure Resource Manager テンプレート - Azure Marketplace のテンプレートまたはコミュニティのクイックスタート テンプレートを使用して、Resource Manager デプロイ モデルでのクラスターの作成を自動化します。 たとえば、Azure Marketplace の Linux ワークロード用 HPC Pack クラスター テンプレートでは、Linux HPC ワークロード用の完全な HPC Pack クラスター インフラストラクチャが作成されます。
  • PowerShell スクリプト - Microsoft HPC Pack IaaS デプロイ スクリプト (New-HpcIaaSCluster.ps1) を使用して、クラシック デプロイ モデルでの完全なクラスターデプロイを自動化します。 この Azure PowerShell スクリプトは、Azure Marketplace の HPC Pack VM イメージを使用して高速デプロイを行い、Linux コンピューティング ノードをデプロイするための包括的な構成パラメーターのセットを提供します。

Azure での HPC Pack クラスターデプロイ オプションの詳細については、「 Microsoft HPC Pack を使用して Azure でハイ パフォーマンス コンピューティング (HPC) クラスターを作成および管理するためのオプション」を参照してください。

[前提条件]

  • Azure サブスクリプション - Azure グローバル サービスまたは Azure China サービスでサブスクリプションを使用できます。 アカウントがない場合は、 無料アカウント を数分で作成することができます。

  • コア クォータ - 特に複数のクラスター ノードをマルチコア VM サイズでデプロイする場合は、コアのクォータを増やす必要がある場合があります。 クォータを増やすには、オンラインカスタマー サポートリクエストを無料で開きます。

  • Linux ディストリビューション - 現在 HPC Pack では、コンピューティング ノードに対して次の Linux ディストリビューションがサポートされています。 利用可能な場合は、これらのディストリビューションの Marketplace バージョンを使用することも、独自のディストリビューションを提供することもできます。

    • CentOS ベース: 6.5、6.6、6.7、7.0、7.1、7.2、6.5 HPC、7.1 HPC

    • Red Hat Enterprise Linux: 6.7、6.8、7.2

    • SUSE Linux Enterprise Server: SLES 12、SLES 12 (Premium)、SLES 12 SP1、SLES 12 SP1 (Premium)、SLES 12 for HPC、SLES 12 for HPC (Premium)

    • Ubuntu Server: 14.04 LTS、16.04 LTS

      ヒント

      RDMA 対応のいずれかの VM サイズで Azure RDMA ネットワークを使用するには、Azure Marketplace の SUSE Linux Enterprise Server 12 HPC または CentOS ベースの HPC イメージを指定します。 詳細については、「 ハイ パフォーマンス コンピューティング VM のサイズ」を参照してください。

HPC Pack IaaS デプロイ スクリプトを使用してクラスターをデプロイするための追加の前提条件:

  • クライアント コンピューター - クラスター展開スクリプトを実行するには、Windows ベースのクライアント コンピューターが必要です。
  • Azure PowerShell - クライアント コンピューターに Azure PowerShell (バージョン 0.8.10 以降) をインストールして構成します。
  • HPC Pack IaaS デプロイ スクリプト - Microsoft ダウンロード センターから最新バージョンのスクリプトをダウンロードして展開します。 スクリプトのバージョンは、 .\New-HPCIaaSCluster.ps1 –Versionを実行して確認できます。 この記事は、スクリプトのバージョン 4.4.1 以降に基づいています。

展開オプション 1。 Resource Manager テンプレートを使用する

  1. Azure Marketplace で Linux ワークロード用 HPC Pack クラスター テンプレートに移動し、[ デプロイ] をクリックします。

  2. Azure portal で情報を確認し、[ 作成] をクリックします。

    ポータルの作成

  3. [ 基本 ] ブレードで、クラスターの名前を入力します。ヘッド ノード VM の名前も入力します。 既存のリソース グループを選択するか、利用可能な場所にデプロイ用のグループを作成できます。 この場所は、特定の VM サイズとその他の Azure サービスの可用性に影響します ( リージョン別の利用可能な製品を参照)。

  4. [ ヘッド ノードの設定] ブレードでは、最初のデプロイでは、通常、既定の設定をそのまま使用できます。

    構成後スクリプトの URL は、ヘッド ノード VM の実行後に実行する、一般公開されている Windows PowerShell スクリプトを指定するためのオプションの設定です。

  5. [ コンピューティング ノードの設定] ブレードで、ノードの名前付けパターン、ノードの数とサイズ、デプロイする Linux ディストリビューションを選択します。

  6. [ インフラストラクチャ設定 ] ブレードで、仮想ネットワークと Active Directory ドメインの名前、ドメインと VM 管理者の資格情報、ストレージ アカウントの名前付けパターンを入力します。

    HPC Pack では、Active Directory ドメインを使用してクラスター ユーザーを認証します。

  7. 検証テストを実行し、使用条件を確認したら、[ 購入] をクリックします。

展開オプション 2。 IaaS デプロイ スクリプトを使用する

HPC Pack IaaS デプロイ スクリプトを使用してクラスターをデプロイするための追加の前提条件を次に示します。

  • クライアント コンピューター - クラスター展開スクリプトを実行するには、Windows ベースのクライアント コンピューターが必要です。
  • Azure PowerShell - クライアント コンピューターに Azure PowerShell (バージョン 0.8.10 以降) をインストールして構成します。
  • HPC Pack IaaS デプロイ スクリプト - Microsoft ダウンロード センターから最新バージョンのスクリプトをダウンロードして展開します。 スクリプトのバージョンは、 .\New-HPCIaaSCluster.ps1 –Versionを実行して確認できます。 この記事は、スクリプトのバージョン 4.4.1 以降に基づいています。

XML 構成ファイル

HPC Pack IaaS デプロイ スクリプトは、入力として XML 構成ファイルを使用して HPC クラスターを記述します。 次のサンプル構成ファイルでは、HPC Pack ヘッド ノードと 2 つのサイズの A7 CentOS 7.0 Linux コンピューティング ノードで構成される小さなクラスターを指定します。

環境と目的のクラスター構成に必要に応じてファイルを変更し、HPCDemoConfig.xmlなどの名前で保存します。 たとえば、サブスクリプション名と一意のストレージ アカウント名とクラウド サービス名を指定する必要があります。 さらに、コンピューティング ノードでサポートされている別の Linux イメージを選択することもできます。 構成ファイルの要素の詳細については、スクリプト フォルダーの Manual.rtf ファイルと HPC Pack IaaS デプロイ スクリプトを使用した HPC クラスターの作成に関する説明を参照してください。

<?xml version="1.0" encoding="utf-8" ?>
<IaaSClusterConfig>
  <Subscription>
    <SubscriptionName>Subscription-1</SubscriptionName>
    <StorageAccount>allvhdsje</StorageAccount>
  </Subscription>
  <Location>Japan East</Location>  
  <VNet>
    <VNetName>centos7rdmavnetje</VNetName>
    <SubnetName>CentOS7RDMACluster</SubnetName>
  </VNet>
  <Domain>
    <DCOption>HeadNodeAsDC</DCOption>
    <DomainFQDN>hpc.local</DomainFQDN>
  </Domain>
  <Database>
    <DBOption>LocalDB</DBOption>
  </Database>
  <HeadNode>
    <VMName>CentOS7RDMA-HN</VMName>
    <ServiceName>centos7rdma-je</ServiceName>
  <VMSize>ExtraLarge</VMSize>
  <EnableRESTAPI />
  <EnableWebPortal />
  </HeadNode>
  <LinuxComputeNodes>
    <VMNamePattern>CentOS7RDMA-LN%1%</VMNamePattern>
    <ServiceName>centos7rdma-je</ServiceName>
    <VMSize>A7</VMSize>
    <NodeCount>2</NodeCount>
    <ImageName>5112500ae3b842c8b9c604889f8753c3__OpenLogic-CentOS-70-20150325</ImageName>
  </LinuxComputeNodes>
</IaaSClusterConfig>

HPC Pack IaaS デプロイ スクリプトを実行するには

  1. 管理者としてクライアント コンピューターで Windows PowerShell を開きます。

  2. スクリプトがインストールされているフォルダー (この例では E:\IaaSClusterScript) にディレクトリを変更します。

    cd E:\IaaSClusterScript
    
  3. 次のコマンドを実行して、HPC Pack クラスターをデプロイします。 この例では、構成ファイルが E:\HPCDemoConfig.xml に配置されていると仮定します。

    .\New-HpcIaaSCluster.ps1 –ConfigFile E:\HPCDemoConfig.xml –AdminUserName MyAdminName
    

    ある。 前のコマンドでは AdminPassword が指定されていないため、ユーザー MyAdminName のパスワードを入力するように求められます。

    b。 その後、スクリプトによって構成ファイルの検証が開始されます。 ネットワーク接続によっては、最大で数分かかる場合があります。

    検証

    c. 検証に合格すると、作成するクラスター リソースがスクリプトに一覧表示されます。 「Y」と入力して続行します。

    リソース

    d. このスクリプトは HPC Pack クラスターのデプロイを開始し、追加の手動手順なしで構成を完了します。 スクリプトは数分実行できます。

    展開

    この例では、 -LogFile パラメーターが指定されていないため、スクリプトによってログ ファイルが自動的に生成されます。 ログはリアルタイムで書き込まれませんが、検証とデプロイの最後に収集されます。 スクリプトの実行中に PowerShell プロセスが停止すると、一部のログが失われます。

ヘッド ノードに接続する

Azure に HPC Pack クラスターをデプロイした後、クラスターのデプロイ時に指定したドメイン資格情報 (hpc\clusteradmin など) を使用して、リモート デスクトップによってヘッド ノード VM に接続します。 ヘッド ノードからクラスターを管理します。

ヘッド ノードで HPC クラスター マネージャーを起動し、HPC Pack クラスターの状態を確認します。 Linux コンピューティング ノードは、Windows コンピューティング ノードと同じ方法で管理および監視できます。 たとえば、 リソース管理 に Linux ノードが一覧表示されます (これらのノードは LinuxNode テンプレートと共にデプロイされます)。

ノード管理

ヒート マップ ビューには Linux ノードも表示されます。

ヒート マップ

Linux ノードを使用してクラスター内のデータを移動する方法

Linux ノードとクラスターの Windows ヘッド ノード間でデータを移動するには、いくつかの選択肢があります。 以下のセクションで詳しく説明する 3 つの一般的な方法を次に示します。

  • Azure File - マネージド SMB ファイル共有を公開して、Azure Storage にデータ ファイルを格納します。 Windows ノードと Linux ノードは、異なる仮想ネットワークにデプロイされている場合でも、Azure ファイル共有をドライブまたはフォルダーとして同時にマウントできます。
  • ヘッド ノード SMB 共有 - ヘッド ノードの標準 Windows 共有フォルダーを Linux ノードにマウントします。
  • ヘッド ノード NFS サーバー - Windows と Linux の混在環境向けのファイル共有ソリューションを提供します。

Azure ファイル ストレージ

Azure File サービスは、標準の SMB 2.1 プロトコルを使用してファイル共有を公開します。 Azure VM とクラウド サービスは、マウントされた共有を介してアプリケーション コンポーネント間でファイル データを共有でき、オンプレミスのアプリケーションは File Storage API を使用して共有内のファイル データにアクセスできます。

Azure ファイル共有を作成してヘッド ノードにマウントする詳細な手順については、「Windows での Azure File Storage の概要」を参照してください。 Linux ノードに Azure ファイル共有をマウントするには、「Linux で Azure File Storage を使用する方法」を参照してください。 接続の永続化を設定するには、「 Microsoft Azure Files への接続の永続化」を参照してください。

次の例では、ストレージ アカウントに Azure ファイル共有を作成します。 ヘッド ノードに共有をマウントするには、コマンド プロンプトを開き、次のコマンドを入力します。

cmdkey /add:allvhdsje.file.core.windows.net /user:allvhdsje /pass:<storageaccountkey>

net use Z: \\allvhdje.file.core.windows.net\rdma /persistent:yes

この例では、allvhdsje はストレージ アカウント名、storageaccountkey はストレージ アカウント キー、rdma は Azure ファイル共有名です。 Azure ファイル共有は、ヘッド ノードに Z: としてマウントされます。

Linux ノードに Azure ファイル共有をマウントするには、ヘッド ノードで clusrun コマンドを実行します。 Clusrun は、複数のノードで管理タスクを実行するのに便利な HPC Pack ツールです。 この記事では、Linux ノード用の Clusrun も参照してください。

Windows PowerShell ウィンドウを開き、次のコマンドを入力します。

clusrun /nodegroup:LinuxNodes mkdir -p /rdma

clusrun /nodegroup:LinuxNodes mount -t cifs //allvhdsje.file.core.windows.net/rdma /rdma -o vers=2.1`,username=allvhdsje`,password=<storageaccountkey>'`,dir_mode=0777`,file_mode=0777

最初のコマンドは、LinuxNodes グループ内のすべてのノードに /rdma という名前のフォルダーを作成します。 2 番目のコマンドは、dir ビットとファイル モード ビットを 777 に設定して、Azure ファイル共有 allvhdsjw.file.core.windows.net/rdma を /rdma フォルダーにマウントします。 2 番目のコマンドでは、allvhdsje はストレージ アカウント名、storageaccountkey はストレージ アカウント キーです。

2 番目のコマンドの "'" 記号は、PowerShell のエスケープ シンボルです。 "'," は、"," (コンマ文字) がコマンドの一部であることを意味します。

ヘッド ノード共有

または、ヘッド ノードの共有フォルダーを Linux ノードにマウントします。 共有はファイルを共有する最も簡単な方法ですが、ヘッド ノードとすべての Linux ノードを同じ仮想ネットワークにデプロイする必要があります。 手順は、次のとおりです。

  1. ヘッド ノードにフォルダーを作成し、読み取り/書き込みアクセス許可を持つ Everyone に共有します。 たとえば、ヘッド ノードで D:\OpenFOAM を \CentOS7RDMA-HN\OpenFOAM として共有します。 ここで CentOS7RDMA-HN はヘッド ノードのホスト名です。

    ファイル共有のアクセス許可

    ファイル共有

  2. Windows PowerShell ウィンドウを開き、次のコマンドを実行します。

    clusrun /nodegroup:LinuxNodes mkdir -p /openfoam
    
    clusrun /nodegroup:LinuxNodes mount -t cifs //CentOS7RDMA-HN/OpenFOAM /openfoam -o vers=2.1`,username=<username>`,password='<password>'`,dir_mode=0777`,file_mode=0777
    

最初のコマンドは、LinuxNodes グループ内のすべてのノードに /openfoam という名前のフォルダーを作成します。 2 番目のコマンドは、共有フォルダー //CentOS7RDMA-HN/OpenFOAM を、dir ビットとファイル モード ビットが 777 に設定されたフォルダーにマウントします。 コマンドのユーザー名とパスワードは、ヘッド ノード上のクラスター ユーザーのユーザー名とパスワードである必要があります。 ( クラスター ユーザーの追加または削除を参照してください)。

2 番目のコマンドの "'" 記号は、PowerShell のエスケープ シンボルです。 "'," は、"," (コンマ文字) がコマンドの一部であることを意味します。

NFS サーバー

NFS サービスを使用すると、SMB プロトコルを使用して Windows Server 2012 オペレーティング システムを実行しているコンピューターと NFS プロトコルを使用する Linux ベースのコンピューター間でファイルを共有および移行できます。 NFS サーバーとその他のすべてのノードは、同じ仮想ネットワークにデプロイする必要があります。 SMB 共有と比較して、Linux ノードとの互換性が向上します。 たとえば、ファイル リンクがサポートされています。

  1. NFS サーバーをインストールしてセットアップするには、「 ネットワーク ファイル システム用サーバーの最初の共有のエンド ツー エンド」の手順に従います。

    たとえば、次のプロパティを使用して nfs という名前の NFS 共有を作成します。

    NFS 承認

    NFS 共有のアクセス許可

    NFS NTFS アクセス許可

    NFS 管理プロパティ

  2. Windows PowerShell ウィンドウを開き、次のコマンドを実行します。

    clusrun /nodegroup:LinuxNodes mkdir -p /nfsshare
    
    clusrun /nodegroup:LinuxNodes mount CentOS7RDMA-HN:/nfs /nfsshared
    

    最初のコマンドは、LinuxNodes グループ内のすべてのノードに /nfsshared という名前のフォルダーを作成します。 2 番目のコマンドは、NFS 共有 CentOS7RDMA-HN:/nfs をフォルダーにマウントします。 ここで CentOS7RDMA-HN:/nfs は NFS 共有のリモート パスです。

作業を送信する方法

HPC Pack クラスターにジョブを送信するには、いくつかの方法があります。

  • HPC クラスター マネージャーまたは HPC ジョブ マネージャー GUI
  • HPC Web ポータル
  • REST API

HPC Pack GUI ツールと HPC Web ポータルを使用した Azure のクラスターへのジョブの送信は、Windows コンピューティング ノードの場合と同じです。 HPC Pack ジョブ マネージャー、オンプレミスのクライアント コンピューターからジョブを送信する方法に関する説明を参照してください。

REST API を使用してジョブを送信するには、 Microsoft HPC Pack の REST API を使用したジョブの作成と送信に関するページを参照してください。 Linux クライアントからジョブを送信するには、 HPC Pack SDK の Python サンプルも参照してください。

Linuxノード用のClusrun

HPC Pack の clusrun ツールを使用すると、コマンド プロンプトまたは HPC クラスター マネージャーを使用して Linux ノードでコマンドを実行できます。 次に、いくつかの基本的な例を示します。

  • クラスター内のすべてのノードで現在のユーザー名を表示します。

    clusrun whoami
    
  • linuxnodes グループ内のすべてのノードに yum を使用して gdb デバッガー ツールをインストールし、10 分後にノードを再起動します。

    clusrun /nodegroup:linuxnodes yum install gdb –y; shutdown –r 10
    
  • クラスター内の各 Linux ノードで 1 ~ 10 の各数値を 1 秒間表示するシェル スクリプトを作成し、それを実行して、ノードからの出力をすぐに表示します。

    clusrun /interleaved /nodegroup:linuxnodes echo \"for i in {1..10}; do echo \\\"\$i\\\"; sleep 1; done\" ^> script.sh; chmod +x script.sh; ./script.sh
    

clusrun コマンドでは、特定のエスケープ文字を使用することが必要になる場合があります。 この例に示すように、コマンド プロンプトで ^ を使用して、">" 記号をエスケープします。

次のステップ