HPC Pack 2012 R2 Update 1 Preview 登場!

今度はイメージギャラリーにもありますよ

HPC Pack 2012 R2の更新版、"Update 1"のプレビューが出ました。今回は、Azure IaaSでのクラスタ展開に関する改良点が多いようですが、スケジューラやMPIライブラリなどのコア部分も地味に手が入っています。
What's Newをドキュメントから主なものを抜き書きしてみると:

IaaS関連

Azure IaaSでヘッドノードや計算ノードを作成する、「IaaSクラスタ」関連の新機能です。IaaS計算ノードは、HPC Pack的にはオンプレミスの計算ノードと同じ扱いで、ノードテンプレートもオンプレと同じ奴を使います(Azureノードテンプレートではありません)

  • Azure IaaSのイメージギャラリーに HPC Pack インストール済みイメージが増えました!
    • ヘッドノードをAzure IaaSで作成するためのイメージです。HPC PackとSQL Server 2014 Expressがインストールされています。
    • イメージ名は "96316178b0644ae08bc4e037635ce104__HPC-Pack-2012R2-Update1-4.3.4596.1-WS2012R2-ENU"
  • HPC IaaS展開スクリプトの提供
    • 仮想ネットワーク、ストレージアカウント、クラウドサービス、ドメインコントローラ、SQL Serverデータベース等といった構成要素の作成を自動化し、手間いらずでHPC IaaSクラスターができあがっちゃうスクリプトが付いてきます。
  • HPC IaaS管理スクリプトの提供
    • ノードの追加・削除、需要に応じた開始・停止用のPowerShellスクリプトも登場。

PaaS関連

「 Azureノードテンプレート」でWorkerロールのインスタンスがデプロイされる、PaaS計算ノード関連の新機能です。

  • 新しいロールのサイズを自動認識!
    • これまでのHPC Packでは、Azureのインスタンスサイズ一覧を固定的に保持していました。昨年A5,A6,A7が登場したときや、今年A8,A9が追加されたとき、その時点のHPC Packはそれに対応できず、次のバージョンが出るまで新しいインスタンスを計算ノードとして選択できなかったのですが、今後はそういうことがなくなるようです。
      ※ ってことは、またインスタンスが増えるのかもしれませんね!
  • リージョナルVNETへの対応
    • かつて、Azureの仮想ネットワーク(VNET)は、VNET作成時に指定したアフィニティグループ内に存在するものでした。現在は、アフィニティグループではなく、リージョン全体をスコープとする仮想ネットワーク=「リージョナルVNET」が標準です。
      しかし、現在のHPC Packでは、計算ノードを仮想ネットワークに配置する際に「計算ノードを配置するクラウドサービスと同じアフィニティグループに属する仮想ネットワーク」だけを対象とするので、リージョナルVNETは選択肢に出てこず、選ぶことができません。この点が解消されます。
  • Azure計算ノードの部分的な起動
    • Azureノードテンプレートを使って作成したノード群を開始する際、今まではそのテンプレートで作成した全てのノード(これがAzure的には1デプロイメント)を一度に開始することしかできませんでした。
    • HPC Pack 2012 R2から、「停止」に関しては1ノードずつ個別に操作できるようになりましたが、今回「開始」操作も個別に可能となりました。

 

ダウンロード

まだプレビュー版なので、ダウンロードはConnectサイトから。https://connect.microsoft.com/HPC/Downloads/DownloadDetails.aspx?DownloadID=54095

とはいえ、Azure上で試す場合は800MBもある"HPCPack2012R2_Update1-Full.zip"をダウンロードする必要はありません。前述の通り、今回から「HPC Packインストール済みAzure VMイメージ」がギャラリーにありますから!

 

ヘッドノードを作ってみる。

というわけで、早速Azure上ヘッドノードを作ってみました。ヘッドノードがドメインコントローラとデータベースサーバも兼ねるスタンドアロン構成です。管理ポータルでポチポチクリックしても良いのですが、今回はAzure PowerShellでスクリプトを作って実行してみましたよ。

Azure PowerShellを使う準備が面倒!という方。そんなことないのでこちらをご覧ください↓
「Windows Azure PowerShell を使うには」とブログに書くまでもないほど簡単になってしまった話
※ なお、Azure PowerShellの最新バージョンは0.8.6です。(2014年8月17日現在)

では、スクリプトです。前半の変数に適当な値を設定して、実行してみてください。

  • $storage = "VHDを格納するストレージアカウント名"
  • $imgname = "96316178b0644ae08bc4e037635ce104__HPC-Pack-2012R2-Update1-4.3.4596.1-WS2012R2-ENU"

$vmname  = "ヘッドノードのホスト名"
$service = $vmname                 # 仮想マシンを配置するクラウドサービス名。ホスト名と同じである必要はない。
$vmsize  = "仮想マシンのサイズ"    # Large以上がオススメ

$location= "配置するリージョン"    # 日本(東) なら "Japan East"
$vnetname= "仮想ネットワーク名"
$subnet  = "配置するサブネット名"
$ipaddr  = "ヘッドノードに指定する内部IPアドレス"

$admin   = "管理者ユーザー名"
$passwd  = "パスワード"

New-AzureVMConfig -Name $vmname -InstanceSize $vmsize -ImageName $imgname -MediaLocation https://${storage}.blob.core.windows.net/vhds/${vmname}-osdisk.vhd `
|Add-AzureProvisioningConfig -Windows -AdminUsername $admin -Password $passwd `
| Set-AzureSubnet -SubnetNames $subnet `
| Set-AzureStaticVNetIP -IPAddress $ipaddr `
| New-AzureVM -ServiceName $service -VNetName $vnetname -Location $location

なお、上のスクリプトですが、

  • あらかじめ、ストレージアカウントと仮想ネットワークを作っておくことが前提です。
    ※ HPC Packのドキュメントには、スタンドアロンのヘッドノードを作る際には仮想ネットワークは不要的なことが書かれており、確かになくても動くのですが、Azure IaaS上にドメインコントローラーを作る場合は仮想ネットワーク上に構築することが推奨されています。つまりドメインが必須なHPC Pack的には仮想ネットワークも必須と思ってください。
  • クラウドサービスは仮想マシンと一緒に新たに作られます。
  • Set-AzureStaticVNetIP でDIPを指定するのは必須ではありませんが、お勧めします。(ドメインコントローラー兼DNSサーバーにもなりますから、今後IaaSノードを追加したときなんかにアドレスが変わると困ります)

10分前後でヘッドノードのできあがり。ここまでは通常のAzure仮想マシンの作成と何も変わらないのですが、便利になったのはここからです。ヘッドノードにログオンして、インストール済みのソフトウェアを一覧してみましょう。

PS C:\> Get-WmiObject win32_product | sort name | ft Name,Version

Name Version
---- -------
Microsoft HPC Pack 2012 R2 Client Components 4.3.4596.0
Microsoft HPC Pack 2012 R2 Server Components 4.3.4596.0
Microsoft HPC Pack 2012 R2 Services for Excel 2010 4.3.4596.0
Microsoft MPI (5.0.12435.2) 5.0.12435.2
Microsoft ODBC Driver 11 for SQL Server 12.0.2000.8
Microsoft ReportViewer 2010 SP1 Redistributable 10.0.40219
Microsoft SQL Server 2008 Setup Support Files 10.3.5500.0
Microsoft SQL Server 2012 Native Client 11.0.2100.60
Microsoft SQL Server 2014 RsFx Driver 12.0.2000.8
Microsoft SQL Server 2014 Setup (English) 12.0.2000.8
Microsoft SQL Server 2014 Transact-SQL ScriptDom 12.0.2000.8
Microsoft SQL Server Compact 4.0 SP1 x64 ENU 4.0.8876.1
Microsoft Visual C++ 2010 x64 Redistributable - 10.0.40219 10.0.40219
Microsoft Visual C++ 2010 x86 Redistributable - 10.0.40219 10.0.40219
Microsoft VSS Writer for SQL Server 2014 12.0.2000.8
SQL Server 2014 Common Files 12.0.2000.8
SQL Server 2014 Common Files 12.0.2000.8
SQL Server 2014 Database Engine Services 12.0.2000.8
SQL Server 2014 Database Engine Services 12.0.2000.8
SQL Server 2014 Database Engine Shared 12.0.2000.8
SQL Server 2014 Database Engine Shared 12.0.2000.8
SQL Server Browser for SQL Server 2014 12.0.2000.8
Sql Server Customer Experience Improvement Program 12.0.2000.8

HPC Pack 2012 R2一式ととSQL Server 2014が入ってますね~。MSMPIはバージョン5になってます。

 

ドメインコントローラーにする

しかし、この段階ではまだヘッドノードとして機能していません。HPC PackはActive Directoryドメインの存在を前提としていますが、まだそれがありません。そこで、「管理者として実行」したPowerShellで以下のコマンドを実行しました。

まず、機能を追加して、

Add-WindowsFeature -name ad-domain-services -IncludeManagementTools

次にドメインを作成。ドメイン名は「hpc2012r2.local」にしてみました。パスワードは何か適当に指定してください。

Install-ADDSForest -CreateDnsDelegation:$false -DomainName "hpc2012r2.local" -DomainNetbiosName "HPC2012R2" -DomainMode "Win2012R2" -ForestMode "Win2012R2" -InstallDns:$true -NoRebootOnCompletion:$false -Force:$true -SafeModeAdministratorPassword (ConvertTo-SecureString -String パスワード -AsPlainText -Force)

 

HPC関連サービスの準備

ドメインコントローラーができあがり再起動が完了したら、もう一つ。HPC Packがどのデータベースを使用するのか指定するためのスクリプトを実行します。これは%CCP_HOME%\binに用意されています。

これまた「管理者として実行」したPowerShellで以下のコマンドを。

& $env:CCP_HOME\bin\HPCHNPrepare.ps1 –DBServerInstance “.\ComputeCluster”

すると、DB接続設定ほか諸々の処理が行われ、HPC関連サービスが起動してきます。最後に
"HPC head node is now ready for use"
と出てくれば準備完了です。

アプリ一覧にHPC Cluster Managerがいますから、スタート画面やタスクバーにピン留めしてやってください。

image

起動!

image 見た目は今まで通りですね、何も変わっていません。

最初に実施する必要のある構成タスクについては、以前の記事をご参照ください↓
HPC Pack 2012 R2で最新のクラスタ!InfiniBandも使えます - その2: 計算ノードデプロイ編

というわけで、今回は最新のギャラリーイメージによるヘッドノードの構築手順をお伝えしました。

 

次回は

IaaS計算ノードの追加方法や、今回提供される新機能の紹介をしたいと思います。お楽しみに!

__END__