クリーンな環境でWSL2を使いたかったが、ボロいノートパソコンしかないので、クリーンではない。WSL2はHyper-Vだし、簡単にできるだろうと思ったら、できなかった。。。
ちょっとハマったのでメモ。また、根拠はよくわからないけど、動作実績がある設定。もしかすると一部の設定は不要かも。
変更が必要な設定はCPUの以下の3つ。それだけ。
- Expose hardware assisted virtualization to the guest OSは、あたりまえに必要。
- Enable virtualized CPU performance countersはいるかどうか正直不明
- I/O MMU Enabledは、いるという話をどこかでみた。
実際は、WSL2はHyper-Vだから、ESXの上のHyper-Vなので、リソースも必要だし、パフォーマンスもそれほどではない。あくまでもテスト用途にしたほうがいいかも。いざ使うとESXホストのCPUロードが高いという警告が結構でる。
これで、仮想マシン上でもコンテナが動くはず。。。
ちなみに、WSLが動作しているか、バージョンはwsl -l -vで確認可能。また、WSLのアップデートは、管理者権限で開いたコマンドプロンプトで wsl –updateで更新できる。(アップデート後、再起動が必要)
VMware WorkstationでネストESXが動かないワケ
WSLとVMware Workstationなどの同居は可能だが、WSLに対応している仮想基盤ソフトウェアとバージョンが必要。
今は、あまり問題にならないと思うが、WSLと仮想基盤ソフトウェアの上で動かす仮想基盤は、同居不可。
例えると
Windows (WSL) –> VMware Workstation –> ESX (ゲストVM)
は動かない。以下VMwareの例
まずVT-x/EPTはサポートされていないので、無しで起動と表示され、
次にサポートされていないと表示されて起動できない。
仮に、これが動いたとすると
Windows (WSL) –> VMware Workstation –> ESX (ゲストVM) –> ゲストVM
となり、仮想環境が3階建なので、動いたとしても使い物にならないような気がする。どうしてもESXが必要な場合は、Hyper-VのゲストとしてESXが動くらしいがNICが別途必要で、パフォーマンスも全く期待はできない。
VMware WorkstationでESXで動いたとしてもVLANは使えないし、制約事項が多く、また、パフォーマンスが良くないので、常用している人はあまりいないと思うので、今となっては問題にならないし、VMware WorkstationでネストESXを動かしているせいで本来得られるものが得られないというのは損のような気がする。