デル eカタログサイト | デル・テクノロジーズ製品 販売支援サイト
情報ガイドステーションメニュー
  Azure Stack HCIをシングルノードで動かしてみる






みなさま、こんにちは。
今回は思いつきでちょっと試してみたことではあるのですが、Azure Stack HCI環境をシングルノードで構成できるものなのか?を試した結果をご紹介しようと思います。
シングルノードなので、Windows Serverをインストールして使うのと何が違うの?わざわざAzure Stack HCI環境にする意味なんてなくない?というツッコミはあることは重々承知しています。
興味本位なので、実用性はかなり低いとは思いますが、試しながら思ったことや周りで少し聞いたことから得た知見もあるので、それについては最後で触れようと思います。

さて、Azure Stack HCIのシングルノード構成ですが、Microsoft社からもオフィシャルな情報が出ており、利用局面は限られるもののちゃんと利用形態の一つとして位置づけされています。

一般提供:Azure Stack HCI 単一ノード
Announcing Azure Stack HCI support for single-node lusters

それに合わせた形でDell TechnologiesでもAzure Stack HCIのシングルノードについての発表がされています。(実はもう1年以上前に発表されています。)

Single-Node Azure Stack HCI is now available!

今回ちょっと私が試してみようと思ったきっかけになったのがInfohubというDell Technologiesの各種プロダクトの導入方法やベストプラクティスをご紹介しているページで、こちらに前々からAzure Stack HCIのシングルノードについての紹介が載っていたのは気づいていたんですが、「本当にこの通りにやったら動くの?」と思ったところが今回の検証のきっかけになっています。

End-to-End Single-Node Deployment: Microsoft HCI Solutions from Dell Technologies

ということで、手順は上記Infohubの手順をベースに作業を実施していこうと思います。

環境

Azure Stack HCI環境を作るには専用のハードウェアがあるに越したことはありませんが、今回はハードウェアに依存するような話でもなく、Azure Stack HCIとしてシングルノード構成が動作するかというソフトウェアに関わる話なので、専用のハードウェアは準備しておりません。
つまりは、仮想化環境(今回はvSphere)上に準備した仮想マシンを準備しAzure Stack HCI OSをインストールして、このサーバー1台でAzure Stack HCI環境を作っていこうと思います。
Azure Stack HCI環境はWindows ServerでもAzure Stack HCI OSどちらを利用しても作ることができますが、今回はAzure Stack HCI OSを利用しています。
利用するAzure Stack HCI OSのバージョンは22H2で、詳細バージョンは20349.1607となります。私がMicrosoft社のページからダウンロードインストールイメージはこちらのバージョンになっていましたので、こちらをそのまま利用しています。
Azure Stack HCI OSのバージョン情報は以下を参照しましょう。
Azure Stack HCI のリリース情報



無事にAzure Stack HCI環境を構築出来たら、Azure Arcを使ってこのAzure Stack HCI環境を登録してみようと思います。
なお、ADサーバーは事前に構築済みとなります。

事前準備

事前に構築に必要なものを準備しておきましょう。

● Azure Stack HCI OSのダウンロード
Microsoft社のページからダウンロードが可能です。必要な情報を入力した上でインストールイメージをダウンロードしておいてください。
Azure Stack HCI ソフトウェアのダウンロード


● Windows Admin Centerのダウンロード
今回作業端末にWindows Admin Centerをインストールするので、事前にこちらをダウンロードしておきましょう。Windows Admin Centerのインストール手順については、ここでは記載しませんが、以下に載っていますので参考にしてください。
Windows Admin Centerを使ってPowerEdgeサーバーを管理してみよう


● Azureに接続するためのネットワーク環境
Azure Arcを使うため、Azureを利用することになります。Azureに接続できる環境でAzure Stack HCIを構築する必要があります。

● Azureを利用するためのアカウント
Azureを利用するためのアカウントを準備してください。

Azure Stack HCIのシングルノード環境の構築

大まかな作業の流れは以下となります。

① vSphere上で仮想マシンを作成
② Azure Stack HCI OSのインストール、設定
③ クラスターの作成
④ 記憶域スペースダイレクトの有効化
⑤ Azure Arcへの登録
⑥ Windows Admin Centerへの登録

では、手順をご紹介していきたいと思います。

① vSphere上で仮想マシンを作成
仮想マシンを作成する手順について細かく解説はしませんが、作成する際に注意が必要な点だけ記載しておきたいと思います。
今回はvSphere上でHyper-Vを動かす、いわゆるNested環境となるので、仮想マシンのハードウェア設定について少々注意が必要な点があります。

1. CPUのハードウェアアシスト設定
CPUのハードウェア仮想化の箇所にある、“ハードウェア アシストによる仮想化をゲストOSに公開”にチェックを入れましょう。


2. ハードディスクの追加
最初から用意されているハードディスクについては、Azure Stack HCI OSをインストール先、つまりOSインストール用のディスクとして使用します。
Azure Stack HCI上で記憶域スペースダイレクトを有効化してPoolとして構成するためのディスクについてはハードディスクの追加を行うことで用意することになるので、ディスクを追加しましょう。

4つほどハードディスクの追加を行いました。
容量は任意ですので、好きなだけ割り当てましょう。また、シンかシックどちらで作るべきかを悩むかも知れませんが、私はシンで作って動作できています。

3. 追加したディスクをSSDとして認識させる
仮想マシンのハードウェア構成情報はvmxファイルに記載されていますが、一旦仮想マシンを作成した後に、この仮想マシンのvmxファイルを仮想マシンを収容しているデータストアからダウンロードして、以下の様にファイルに追記しましょう。

 scsi0:1.virtualSSD = 1
 scsi0:2.virtualSSD = 1
 scsi0:3.virtualSSD = 1
 scsi0:4.virtualSSD = 1

※追加したディスクがscsiの何番に位置するかを確認し、追加した本数分パラメータを追加してください。

なお、CPUやメモリ、ディスク、NIC等のリソースはかなり適当です。
とりあえず動けばいいや、と思って作っているので、システム要件は無視しています。
CPUも2vCPU、メモリは16GB、ディスクは上記の通り、NICは1つというかなりケチったリソース割り当てになっています。

② Azure Stack HCI OSのインストール、設定
仮想マシンの準備ができたらOSをインストールし、 Infohubに記載のある手順を見ながらシングルノードとして構成するために必要な設定を投入していきたいと思います。

1.事前に準備したAzure Stack HCIのインストールイメージを仮想マシンにマウントして、OSのインストールを行いましょう。
インストール手順については説明しませんが、Windows Server のインストールをしたことがある方であれば、何も手順は変わらないので同じように操作をしてインストールを進めましょう。
一応インストール時の画面キャプチャーを撮ってみたので参考までに貼っておきます。


2. インストールが完了するとLocal Administratorのパスワードを設定するように要求があるので、パスワードを入力して設定します。
ログインすると、ようこそ Azure Stack HCIと表示された画面が表示されるので、15を入力して[Enter]キーを押します。


3. コマンドプロンプトが表示されるので、InfohubのInstall roles and featuresを参照し、以下のコマンドを実行します。
Hyper-Vやフェイルオーバークラスターといった役割を追加します。

 Install-WindowsFeature -Name Hyper-V, Failover-Clustering, Data-Center-Bridging, BitLocker, FS-FileServer, RSAT-Clustering-PowerShell, FS-Data-Deduplication -IncludeAllSubFeature -IncludeManagementTools -verbose

インストールが正常に完了しました。と表示されたことを確認しましょう。

4. InfohubのChange the hostnameを参照し、以下のコマンドを実行してホスト名を変更します。

 Rename-Computer -NewName <ホスト名> -Restart

再起動され、再度ようこそ Azure Stack HCI画面が表示されるので15と入力し、[Enter]キーを押します。
コマンドプロンプトが表示されます。

5. InfohubのRegistry settingsを参照し、以下のコマンドを実行して、レジストリ設定を追加します。

 New-ItemProperty “HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\OEMInformation” -name SupportProvider -value DellEMC


設定した値(DellEMC)がレジストリに反映されていることを確認します。

 (get-itemproperty “HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\OEMInformation”).SupportProvider

上記コマンドを実行した結果、DellEMCと表示されていれば問題ありません。

6. 次はネットワーク周りの設定をします。
InfohubのPAL and DPOR registration for Azure Stackはスキップし、Joining cluster nodes to an Active Directory domainに進みますが、IPアドレスやDNSの設定もしていない状態なので、Infohubに記載された内容を順番に設定しようとしても設定ができません。
ネットワーク周りの設定をするにあたっては、Single-node configurationを参照し、仮想スイッチの構成やネットワークの使用用途に応じたNICの使い分け(ConvergedまたはNon Converged)を検討してから設定を行う必要があります。
今回はシングルノードであるため、Live MigrationやReplica用のネットワークは考慮せず、管理系通信と仮想マシンが使用するサービス系の通信とも同じNICを通す形、つまりはNICは1つだけ使用して動作させる形で進めたいと思います。

まずは現在このサーバーが使用しているNICの状態を見てみましょう。

 Get-NetAdapter


次に仮想スイッチを作成します。

 New-VMSwitch -Name <仮想スイッチ名> -AllowManagementOS 0 -NetAdapterName “Ethernet0″ -MinimumBandwidthMode Weight -Verbose


さらに仮想NICを作成します。

 Add-VMNetworkAdapter -ManagementOS -Name <仮想NIC名> -SwitchName <仮想スイッチ名> -Passthru | Set-VMNetworkAdapterVlan -Access -VlanId -Verbose

※今回はVLAN IDは指定していません。

実際に設定した内容は以下の通りです。

仮想NICまで作成が終わったら、コマンドプロンプトからようこそ Azure Stack HCI画面に戻るため、SConfigと入力します。
8と入力してネットワーク設定を行います。

ネットワーク設定画面が表示されます。
 I. ネットワークアダプタ、つまりNICを選択します。1つしかNICはありませんので、4を押します。
 II. ネットワークアダプタ アドレス設定をする を選択するため、1を入力して[Enter]キーを押します。
 以下の通り設定していきます。
  ● DHCPまたは静的IPアドレスを選択してください
  ● S を入力して[Enter]キーを押します。
  ● 静的IPアドレスを入力する
  ● 使用するIPアドレスを入力します。
  ● サブネットマスクを入力してください
  ● サブネットマスクを入力します。
  ● デフォルトゲートウェイを入力
  ● デフォルトゲートウェイのIPアドレスを入力します。
 III. DNSサーバーの設定をする を選択するため、2を入力して[Enter]キーを押します。以下の通り設定していきます。
  ● 新しい優先DNSサーバーを入力
  ● 使用するIPアドレスを入力します。
  ● 代替DNSサーバーを入力
  ● 使用するIPアドレスを入力します。

設定が終わったら、[Enter]キーを押します。

これでサーバーの管理IPアドレスを付与できました。

7. InfohubのJoining cluster nodes to an Active Directory domainを参照し、サーバーをドメインに参加させます。
ようこそ Azure Stack HCI画面で15を入力して、コマンドプロンプトに戻ります。
以下のコマンドを実行します。
すると、資格情報を入力するように要求があるので、ドメインに参加が可能なユーザーとパスワードを入力します。

 $credential = Get-Credential


以下のコマンドを、ドメイン名を指定しながら実行します。実行後は再起動が行われます。

 Add-Computer -DomainName <ドメイン名> -Credential $credential -Restart

再起動後は、ログインしてようこそ Azure Stack HCI画面にて1)ドメイン/ワークグループの箇所でドメインに参加できていることを確認してください。

③ クラスターの作成
サーバーが1台しかいませんが、クラスターを作成します。

InfohubのCreating the host clusterを参照し、クラスターを作成します。
Infohubに記載された順序でいくとクラスターを作成しする前にUpdating a standalone node before adding it to the clusterを参照して、ノードのアップデートを行う必要があります。
こちらは内容を見ていただくと分かりますが、物理サーバーでシングルノードを構成する場合に必要な手順で、事前にFirmwareやドライバを更新する手順となります。
今回、仮想マシンで環境を作っているのでこちらの手順はスキップします。

ようこそAzure Stack HCI画面が表示されるので15と入力し、[Enter]キーを押します。
以下のコマンドを実行します。

 runas /user:<ドメイン名\ユーザー名> powershell

ローカルのAdminユーザーでログインしている状態なので、ドメインユーザーで操作が可能なようにコマンドプロンプトを別で開きますが、ドメインユーザーはクラスターを組む権限を持ったユーザーを指定する必要があります。
コマンドを実行するとパスワード要求があるので、パスワードを入力します。

以下のコマンドを実行して、シングルノードでクラスターを組みます。
クラスタの管理IPアドレスについては予め決めておいてください。

 New-Cluster -Name <クラスター名> -Node <ノードのホスト名> -StaticAddress <クラスターが使用するIPアドレス> -NoStorage

実行結果は以下の通りです。

サーバー1台のシングル構成ですが、クラスターを作成してノードとして構成することができました。

④ 記憶域スペースダイレクトの有効化
InfohubのEnabling Storage Spaces Directを参照し、記憶域スペースダイレクトを有効化します。いよいよAzure Stack HCI環境として仕上げる操作となります。

まず、ノードにマウントされているディスクを確認します。
①のvSphere上での仮想マシンを作成する際に割り当てたディスクが正しく認識できていることを確認しましょう。

 Get-PhysicalDisk


以下の実行結果の通り、100GBのディスクが1本と50GBのディスクが4本確認できますが、Storage Spaces Directで使用するのは50GBのディスク4本となります。
MediaTypeがSSDとなっており、追加したディスクがちゃんとSSDとして認識されていることが分かります。

次に以下のコマンドを実行し、Storage Spaces Directを有効化します。

 Enable-ClusterS2D -Verbose

途中で「この操作を実行しますか?」と聞かれるので、Aを入力して[Enter]キーを押します。

実行結果は以下の通りです。


以下のコマンドを実行します。

 Get-ClusterS2D


実行結果は以下の通りです。
キャッシュディスクがない旨の警告が出ていますが、仮想化環境上かつディスクを全てSSDとして認識させて動作させているのでこのような警告メッセージが表示されますが、動作はしますので無視して進めます。


以下のコマンドを実行します。

 Get-StoragePool


実行結果は以下の通りですが、S2D on <クラスター名>というのがStorage Spaces Directを有効化したことで作られたプールになります。
容量はディスク4本分でプールを作成したので、約200GBとなっています。
Primordialはサーバーにマウントされているディスク全てを合算したもので、Sizeの箇所を見ると分かる通り、合算値が表示されます(100GB+50GB×4本=300GB)。


以下のコマンドを実行します。
Storage Spaces Directを有効にしたクラスター全体の情報を取得します。

 Get-StorageSubSystem -FriendlyName *Cluster* | Get-StorageHealthReport


実行結果は以下の通りです。


ここまでの操作で一応、シングルノードのAzure Stack HCI環境が出来上がりました。
InfohubのUpdating the page file settingsを参照し、ページングファイルの設定を行います。

 

 $blockCacheMB = (Get-Cluster).BlockCacheSize

$pageFilePath = “C:\pagefile.sys”
$initialSize = [Math]::Round(51200 + $blockCacheMB)
$maximumSize = [Math]::Round(51200 + $blockCacheMB)

$system = Get-WmiObject -Class Win32_ComputerSystem -EnableAllPrivileges
if ($system.AutomaticManagedPagefile) {
$system.AutomaticManagedPagefile = $false
$system.Put()
}

$currentPageFile = Get-WmiObject -Class Win32_PageFileSetting
if ($currentPageFile.Name -eq $pageFilePath)
{
$currentPageFile.InitialSize = $InitialSize
$currentPageFile.MaximumSize = $MaximumSize
$currentPageFile.Put()
}
else
{
$currentPageFile.Delete()
Set-WmiInstance -Class Win32_PageFileSetting -Arguments @{Name=$pageFilePath; InitialSize = $initialSize; MaximumSize = $maximumSize}
}


⑤ Azure Arcへの登録
InfohubのAzure onboarding for Azure Stack HCI operating systemを参照し、Azureに接続します。
Infohubにも記載のある通り、ファイアーウォールに対する設定やAzureに接続するための準備をしておく必要があります。

Azureに接続するためのネットワーク環境が整った状態であれば、以下のMicrosoft社の情報を元にAzureへ接続し、構築したAzure Stack HCI環境を登録する操作を行います。
Azure に Azure Stack HCI を登録する

※こちらのブログに記載されている手順でほぼ実施できましたが、3の②に記載のある以下のコマンドについては、リージョンの指定がなかったので、追加オプションとして-Region を付けて実行してください。

 Register-AzStackHCI -SubscriptionId “subscription_ID” -ComputerName Server1 -Reagion japaneast


登録するとAzure Portal上では以下の様に見えます。


Azure Portalにログインしたら、検索ボックスにAzure Arcで検索をし、Azure Arcの中身を見ると以下の様に登録内容が確認できます。
作成したAzure Stack HCIのクラスターが登録されていることが確認できます。

ノードも以下の様に登録されています。

Azure Stack HCI OSを使っている環境の場合、Azure上から管理操作を行うことができますが、そのためにはAzure上にAzure Stack HCI環境を登録することは不可欠でしたね。
忘れずに登録を行いましょう。

⑥ Windows Admin Centerの登録
ここまで多くの操作をコマンドラインで実施してきましたが、管理ツールの一つであるWindows Admin CenterにAzure Stack HCI クラスターを登録してみたいと思います。
Windows Admin Centerがどんなもので、どのように導入したらよいかをご存じない方は以下を参考にしていただくとよいかと思います。
Windows Admin Centerを使ってPowerEdgeサーバーを管理してみよう

今回は作業端末にWindows Admin Centerをインストールしていますが、このWindows Admin Centerの管理画面を開き、リソースの追加を行います。追加するリソースとして、サーバークラスターを選択して、[追加]を押します。
クラスター名を入力するとクラスターが検出されるので、画面下の[追加]を押します。
クラスターとクラスターを構成するノードが登録されます。
クラスターの名前をクリックするとダッシュボードが現れ、クラスターの情報を確認することができます。
このような形でAzure Stack HCIクラスターの登録を行います。


次にディスクの状態を見てみましょう。

画面左のメニューからドライブをクリックし、インベントリタブを選択します。
記憶域スペースダイレクトで使用しているディスクが表示されます。
④の記憶域スペースダイレクトの有効化の手順でGet-PhysicalDiskコマンドを実行しましたが、その結果と同じものがこちらで参照できます。
画面左のメニューからボリュームをクリックし、インベントリタブを選択します。
構築直後だと、ClusterPerformanceHistoryというボリュームができていますが、実際にHyper-V上のディスクとしてディスクを用意するにはボリュームを作成する必要があります。


+作成という文字をクリックし、画面右に表示されるメニューからボリュームを作成します。
容量やシンorシックかディスクの種別を選択して、[作成]を押してボリュームを作成します。


ボリュームの作成もコマンドラインから操作ができますが、今回はWindows Admin Centerを使って作成してみました。
次にWindows Admin Centerを使ってAzure Stack HCIクラスターに更新プログラムを適用してみようと思います。
クラスター環境であれば通常は複数台のノードがいますので、クラスター対応更新を使用してノードを1台ずつ更新していく形になりますが、この環境はシングルノードですので単純なアップデートにならざるを得ません。
Windows Admin Centerの画面左のメニューから更新プログラムを選択します。
初めてこちらをクリックするとクラスター対応更新機能を追加するというようなメッセージが出るかもしれませんが、こちらは自動で開始されてすぐに終わります。
更新画面で[インストール]を押します。
ハードウェアの更新については、無視して[次のステージ:インストール]を押します。

※Azure Stack HCIの専用モデルであるAXシリーズをお使いで、Windows Admin CenterにOpenManage Integration with Microsoft Windows Admin Center(通称OMIMSWAC)というプラグイン機能を追加している場合であれば、ハードウェア更新が可能となるはずですが、今回は利用していないので何も表示されておりません。OMIMSWACについて知りたい方はこちらをご覧ください。

更新プログラムのインストール画面で[インストール]を押します。


15分位待ちましたが、以下の様に更新プログラムの適用が完了しました。
履歴を見てみると適用された更新プログラムが確認できます。2023年7月にリリースされた更新プログラムも適用されていますね。
※この検証は2023年8月に実施した内容のため、この時点で最新のものとなります。


おわりに

以上で今回の話は終わりとなります。
どうしても長くなってしまうので端折ったところもありますが、Azure Stack HCI環境をシングルノードで構成することはできる、ということが分かりました。
またInfohubの情報だと構築をするには足りていない情報があるなということが分かりました。
こういうのがあるので、やはり試してみることは大事ですね。

今回は物理的なハードを用意して試すことができていませんが、Azure Stack HCI認定の製品(AXシリーズ)を利用する場合はiDRACを含むハードウェア周りの設定やFirmwareやドライバ類の更新、物理NICを踏まえたネットワーク設計と設定が今回の作業の差分になる部分かと思います。

本ブログの最初でも触れましたが、シングルノードのAzure Stack HCIなんて需要ないでしょ?という話に対しては、データセンターにあるメインのAzure Stack HCI環境とは別にエッジで何らかのワークロードを動かす必要がありAzureと連携して使いたいといったニーズであったり、今年(2023年)の10月10日でサポート期限が終了となるWindows Server 2012をお使いのサーバーをサーバー1台という最小限の投資で延命稼働させられる基盤を用意したり、そんな使い方ができるのではないかと思います。
シングルノードなので、耐障害性が低い点を理解した上で利用する必要はありますが、後者のWindows Server 2012の話については、3年間は猶予を設けられるので、新しい環境への移行がどうしても間に合わない時には一時しのぎをする環境として利用することができるものと思います。
Azure Stack HCIの利用を検討される場合は2ノード以上の構成をオススメしますが、リスクを理解した上でならシングルノードのAzure Stack HCIという割り切った使い方をするのも一つの手になるかなと思いました。
Azure Stack HCI製品をご検討の際は、Dell TechnologiesのAXシリーズをぜひご検討いただければと思います。
Azure Stack HCIやAXシリーズについての情報をまとめたサイトもありますので、ぜひこちらもご活用ください。
またどこかで何かAzure Stack HCIネタをご提供できればいいなと思います。最後まで読んでいただきありがとうございました。


パートナーセールスエンジニア 川奈部 真



 

タグ: , , , ,