Azure仮想マシンのWindows Server 2022でWSL 2を試してみた
しばたです。
前の記事でEC2のWindows Server 2022ではWSL 2の導入が容易でないとお伝えしました。
これはAWSでは基本的にNested Virtualization(入れ子の仮想化)がサポートされていないためなのですが、それではAWSでなくAzureではどうかと思い調べてみることにしました。
Azure仮想マシンにおける入れ子の仮想化サポート
Azureでは当初入れ子の仮想化はサポートされていませんでいたが、2017年ごろより順次サポートされるシリーズが増えています。
これはWindows Server 2016より入れ子の仮想化がサポートされる様になり、Azureの基盤[1]にもその更新が波及したためと推測されます。
本日時点での状況を調べてみましたが、入れ子の仮想化をサポートするシリーズに対する明確な決まりはない様で、各シリーズ毎で直接サポート状況を調べるしかない感じでした。
傾向としてはざっくりこんな感じです。
- 基本Intel CPUを使っているシリーズでサポートされる
- AMD CPUでも新しい世代はサポートされる傾向がある
- D、Eシリーズでは
v3
以降の新しい世代でサポート - GPU搭載シリーズは非サポート
本記事の最後に詳細な調査結果を補足しておくので必要があればご覧ください。
試してみた
ここまでを踏まえて実際に試してみました。
今回は東日本リージョンでDシリーズの最新世代であるDsv5
からD2s_v5 (2vCPU, 8GiB Memory)
の仮想マシン(第2世代
)を作ってみます。
OSはAzureなのでWindows Server 2022 Datacenter Azure Edition
にしています。
Azureポータルより仮想マシンの作成をざっくり下図の様な設定で作成します。
図に無い設定はだいたいデフォルト設定のままです。
仮想マシンを作成後にRDPでOSにログインし、前の記事と同じ手順でWSL 2をインストールします。
# 要管理者権限
# ※ wsl --install コマンドが使えるのはWindows Server 2022から
wsl --install
# OS再起動
Restart-Computer
本日時点のOSでは必要な更新は既に適用済みで問題なくWSL 2のインストールが開始されます。
再起動後、再ログインするとインストールが続行されます。
EC2の場合はここでエラーとなりましたが、入れ子の仮想化をサポートしているAzure仮想マシンでは問題なく続行されユーザー名・パスワードの入力まで進みます。
初期設定を完了して無事WSL 2が利用可能になりました。
念のためにwsl -l -v
コマンドでWSLのバージョンを確認してみてもちゃんとVersion 2です。
# Azureのインスタンスメタデータを取得
Invoke-RestMethod -Headers @{"Metadata"="true"} -Uri 'http://169.254.169.254/metadata/instance/compute?api-version=2021-02-01' |
Select-Object name, location, vmSize
# WSLのバージョン確認
wsl -l -v
なお、Windows Terminalも問題なく使えます。
開始ディレクトリが~
だと起動エラーになる事象が今回も発生したのでどうやらこの事象はWSLのバージョンには関係ないようです。
最後に
以上となります。
入れ子の仮想化をサポートしている環境では本当にあっさりとWSL 2が利用可能でした。
この点についてはAzureが羨ましいですね。
補足 : シリーズ毎の入れ子の仮想化サポート状況
各シリーズ毎の入れ子の仮想化サポート状況を表にまとめました。
元ネタは以下のDocsを参照しており、本日(2022/06/26)時点の内容となります。
シリーズ | シリーズ(世代込み) | 概要 | 入れ子の仮想化 | 備考 |
---|---|---|---|---|
A | A | 汎用 | × | 2024年8月31日廃止予定 |
A | Av2 | 汎用 | × | |
Bs | Bs | 汎用 | × | 負荷の急増(バースト)に対応 |
D | D | 汎用 | × | 旧世代 |
D | Dv2 | 汎用 | × | |
D | Dsv2 | 汎用 | × | Premium Storageをサポート |
D | Dv3 | 汎用 | 〇 | |
D | Dsv3 | 汎用 | 〇 | Premium Storageをサポート |
D | Dv4 | 汎用 | 〇 | |
D | Dsv4 | 汎用 | 〇 | Premium Storageをサポート |
D | Dav4 | 汎用 | × | AMD CPU |
D | Dasv4 | 汎用 | × | AMD CPU, Premium Storageをサポート |
D | Ddv4 | 汎用 | 〇 | |
D | Ddsv4 | 汎用 | 〇 | Premium Storageをサポート |
D | Dv5 | 汎用 | 〇 | |
D | Dsv5 | 汎用 | 〇 | Premium Storageをサポート |
D | Ddv5 | 汎用 | 〇 | |
D | Ddsv5 | 汎用 | 〇 | Premium Storageをサポート |
D | Dasv5 | 汎用 | 〇 | AMD CPU, Premium Storageをサポート |
D | Dadsv5 | 汎用 | 〇 | AMD CPU, Premium Storageをサポート |
D | DCsv2 | 汎用 | × | 幾つかの機密保護機構が有効 |
D | DCsv3 | 汎用 | × | 〃 (同上) |
D | DCdsv3 | 汎用 | × | 〃 (同上) |
D | DCasv5 | 汎用 | × | AMD CPU, 幾つかの機密保護機構が有効 |
D | DCadsv5 | 汎用 | 不明 | 〃 (同上) |
E | Ev3 | メモリ最適 | 〇 | |
E | Esv3 | メモリ最適 | 〇 | Premium Storageをサポート |
E | Ev4 | メモリ最適 | 〇 | |
E | Esv4 | メモリ最適 | 〇 | Premium Storageをサポート |
E | Eav4 | メモリ最適 | × | AMD CPU |
E | Easv4 | メモリ最適 | × | AMD CPU, Premium Storageをサポート |
E | Edv4 | メモリ最適 | 〇 | |
E | Edsv4 | メモリ最適 | 〇 | Premium Storageをサポート |
E | Ev5 | メモリ最適 | 〇 | |
E | Esv5 | メモリ最適 | 〇 | Premium Storageをサポート |
E | Edv5 | メモリ最適 | 〇 | |
E | Edsv5 | メモリ最適 | 〇 | Premium Storageをサポート |
E | Ebdv5 | メモリ最適 | 〇 | リモートストレージ特化 |
E | Ebdsv5 | メモリ最適 | 〇 | リモートストレージ特化 |
E | Easv5 | メモリ最適 | 〇 | AMD CPU, Premium Storageをサポート |
E | Eadsv5 | メモリ最適 | 〇 | AMD CPU, Premium Storageをサポート |
E | ECasv5 | メモリ最適 | × | AMD CPU, 幾つかの機密保護機構が有効 |
E | ECadsv5 | メモリ最適 | 不明 | 〃 (同上) |
F | Fsv2 | コンピューティング最適 | 〇 | |
F | FX | コンピューティング最適 | 〇 | |
H | H | 高パフォーマンス | 不明 | 2022年8月31日提供終了予定 |
H | HB | 高パフォーマンス | 不明 | 2024年8月31日提供終了予定 |
H | HBv2 | 高パフォーマンス | 不明 | |
H | HBv3 | 高パフォーマンス | 不明 | |
H | HC | 高パフォーマンス | 不明 | |
Ls | Lsv2 | ストレージ最適 | × | |
Ls | Lsv3 | ストレージ最適 | × | |
Ls | Lsav3 | ストレージ最適 | × | |
M | M | メモリ最適 | 〇 | |
M | Mv2 | メモリ最適 | × | |
M | Msv2 | メモリ最適 | × | |
M | Mdsv2 | メモリ最適 | × | |
N | NC | GPU搭載 | × | 2023年8月31日提供終了予定 |
N | NCv2 | GPU搭載 | × | 2023年8月31日提供終了予定 |
N | NCv3 | GPU搭載 | × | |
N | NCasT4_v3 | GPU搭載 | × | AMD CPU |
N | NC_A100_v4 | GPU搭載 | × | |
N | ND | GPU搭載 | × | 2023年8月31日提供終了予定 |
N | NDv2 | GPU搭載 | × | |
N | NDasrA100_v4 | GPU搭載 | × | |
N | NDm_A100_v4 | GPU搭載 | × | |
N | NV | GPU搭載 | × | 2023年8月31日提供終了予定 |
N | NVv3 | GPU搭載 | × | |
N | NVv4 | GPU搭載 | × | |
N | NVads_v5 | GPU搭載 | × | AMD CPU |
N | NP | GPU搭載 | × | FPGA搭載 |
公開情報に変更がなければAzure OSおよびAzure Hypervisor ↩︎