
かつて山市良と呼ばれたおじさんのブログ
セイテクエンジニアのブログ かつて山市良と呼ばれたおじさんのブログ vol.137 Windowsキャッシュノードの導入(後)|Microsoft Connected Cache for E/E 完全導入ガイド(6)
2025年09月16日配信
2025年09月16日更新
執筆者:山内 和朗
「Microsoft Connected Cache for Enterprise and Education(以下、Microsoft Connected Cache for E/E)」は、LinuxまたはWindowsに展開できる、ソフトウェアベースのキャッシュソリューションです。前回(vol.136)からWindowsキャッシュノードを構築中です。Windowsキャッシュノードの場合も、Linuxキャッシュノードと共通のLinuxベースのコンテナー(Azure IoT Edgeコンテナー)で動くのですが、Windows Subsystem for Linux 2(WSL 2)のレイヤーが1つ増える形になります。
前回から、Winodws Server 2025日本語版デスクトップエクスペリエンスのWindowsマシン(Hyper-V仮想マシン)に、Windowsキャッシュノードを構築しています。
前回(vol.136)までの内容:
(注意: 画面の番号は前回から継続しています)
Windowsキャッシュノードでは、Microsoft Connected Cache for E/Eの実行(ランタイム)アカウントとして、gMSA(グループ管理サービスアカウント)またはローカルユーザーアカウントまたはドメインユーザーアカウントがサポートされています。いずれの場合も、ユーザーの権利「バッチジョブとしてログオン」があればよく、管理者権限は不要です。ローカルまたはドメインユーザーアカウントを使用する場合は、複雑なパスワードを設定した上で、パスワードを無期限に設定してください。gMSAのパスワードは自動管理されるため設定は不要です。今回は、ローカルユーザーアカウント(コンピューター名¥mccaccount」を作成し、無期限のパスワードを設定して、ユーザーの権利を割り当てました(画面5)。
画面5 ローカルユーザーアカウント「mccaccount」を作成し、ユーザーの権利「バッチジョブとしてログオン」を割り当てる
!!重要!!実行アカウントとしてローカルユーザーアカウントまたはドメインユーザーアカウントを使用する場合、インストール作業を実行するユーザーアカウントとは別のユーザーとして準備してください。Windows Serverでは、ソフトウェアを評価する際に、安易にビルトインAdministratorを使用することがありますが(セキュリティ上推奨されません)、WindowsキャッシュノードをインストールユーザーAdministrator、実行アカウントAdministratorで展開すると、キャッシュノードの展開は成功したように見えますが、必ず失敗します。 |
キャッシュノードを展開するWindowsマシンに、ローカル管理者権限のあるユーザー(ビルドインAdministratorなど)でログインします。
PowerShellを管理者として開き、次のコマンドラインを実行して、キャッシュノードを展開します(画面6)。具体的には、Add-AppxPackageで展開用パッケージ(MSIXパッケージ)をインストールし、$Userと$myLocalAccountCredentialを設定後、控えておいたキャッシュノード展開コマンドを実行します。この例は、実行アカウントとしてローカルユーザーアカウントまたはドメインユーザーアカウントを使用する場合の例です。実行アカウントとしてgMSAを使用する場合は、Get-Credentialによる$myLocalAccountCredentialへの資格情報(パスワード)の入力は不要です。
既定では「C:¥mccwsl01」にWSL 2のLinux環境がセットアップされますが、C:ドライブに十分な空き領域がない場合は、キャッシュノード展開コマンドの「C:¥mccwsl01」を別ドライブ上のパス(D:¥mccwsl01など)に変更してください。このパスには、少なくとも100GB(キャッシュサイズによる)の容量固定VHDX(Ubuntu-24.04-Mcc-Converted.vhdx)が配置されます。
PS C:\>Add-AppxPackage "https://aka.ms/do-mcc-ent-windows-x64" (またはAdd-AppxPackage <ダウンロードパス先>\deliveryoptimization.msixbundle) PS C:\> $User = "$env:computername\ユーザー名またはドメイン名\ユーザー名" PS C:\> $myLocalAccountCredential = Get-Credential $user PS C:\> Push-Location (deliveryoptimization-cli mcc-get-scripts-path); PS C:\・・・\deliveryoptimization-cli> ./deploymcconwsl.ps1 -installationFolder c:\mccwsl01 -customerid XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX -cachenodeid XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX -customerkey XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX -registrationkey XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX -cacheDrives "/var/mcc,100" -mccRunTimeAccount $User -mccLocalAccountCredential $myLocalAccountCredential |
画面6 Windowsマシンにキャッシュノードを展開する
キャッシュノードの展開が完了すると、Azureポータルの「Connected Cache for Enterprise & Education」リソースの「Cache Nodes」にその状態(正常な場合はHealthy)とOS(Windows)、ソフトウェアバージョン(GAバージョンは2.0.0.2112_e)が表示されます。キャッシュノードが正常に動作しているかどうかは、Linuxキャッシュノードの場合と同様に、Webブラウザーまたはwgetコマンドで以下のURLにアクセスし、小さな画像ファイル「Microsoft.png」(Microsoftロゴ)を取得できるか、ステータスコード200が返ってくるかどうかで確認できます(画面7)。
http://localhost(キャッシュノードのローカルで確認する場合)またはIPアドレス/filestreamingservice/files/7bc846e0-af9c-49be-a03d-bb04428c9bb5/Microsoft.png?cacheHostOrigin=dl.delivery.mp.microsoft.com |
画面7 Windowsキャッシュノードの展開が成功し、正常に動作していることを確認する
vol.133(サービスのアーキテクチャ)に説明したように(右の図は前々回説明したWindowsキャッシュノードのアーキテクチャ図)、Windowsキャッシュノードでは、Linuxキャッシュノードと同様にキャッシュノードのキャッシュドライブはLinuxのファイルシステムが提供し、キャッシュエンジンはAzure IoT Edge展開サービスを通じてコンテナーランタイム(moby-engine)に展開されたMCCコンテナーが提供します。そして、Windowsキャッシュノードの場合、Linuxキャッシュノードを実行するLinuxディストリビューション(Ubuntu-24.04-Mcc)がインストールユーザーではなく、インストール時に指定した実行アカウントのWSL 2上で動作する形になります。Windowsマシンに実行アカウントでログインし(ローカルログオンまたはSSH接続)、「wsl」を実行してUbuntuのLinuxシェルに入り、「iotedge list」または「docker ps」を実行すると、MCCおよびAzure IoT関連の3つのコンテナー(MCC、edgeAgent、edgeHub)が実行中であることを確認することができます(画面8)。この多重にレイヤー化された実装が、Windowsキャッシュノードの導入や使用を、非常に分かり難くしている部分だと思います。
画面8 Windowsキャッシュノードでは、キャッシュドライブはWSL 2のLinuxのLinuxファイルシステムが、キャッシュエンジンはLinux内で実行されるMCCコンテナーが提供する
Windowsキャッシュノードの展開の詳細Windowsキャッシュノードの展開は次のように進みます。
Windowsキャッシュノードの展開には「deploymcconwsl.ps1」を使用しますが、実行アカウントへのインポートや、実行アカウントでの起動、ソフトウェアの更新、アンインストールには展開時に作成されるスケジュールタスク「MCC_Install_Task」「MCC_Monitor_Task」「MCC_PostUpdate_Task」「MCC_Uninstall_Task」が使用されます。 ※インストールユーザーと実行アカウントが同じ場合、キャッシュノードを展開しても、最終的にログオン中のユーザーのWSL 2上にインポートされたLinux環境(Ubuntu-24.04-Mcc)がクリーンアップタスクの一部(手順6)で削除(wsl.exe --unregister Ubuntu-24.04-Mcc)されてしまうので注意してください。 |
WindowsキャッシュノードのアンインストールWindowsキャッシュノードをアンインストールするには、PowerShell(管理者)で次のコマンドラインを実行します。実行アカウントからのLinuxディストリビューションのアンインストールにはスケジュールタスク「MCC_Uninstall_Task」が使用されます。なお、WSL2のインストール先(既定はC:¥mccwsl01)にアンインストール後もVHDXファイルが存在する場合は、手動で削除してください。
|
Microsoft Connected Cache for E/E 完全導入ガイド(1)|(2)|(3 前)|(4 後)|(5 前)|(6 後)|(7)