仮想マシンをバーンと作って、ドーンとOS入れて使っていると思うが(関西風の例えw)ちょっとだけ気にしようというお話。
気にするハードウェアは、SCSIとイーサーネットデバイス。
基本仮想マシンのハードウェアは、Qemuなどを始めとする仮想ハードウェアエミュレーションが発端になっている。
ちょっと過去の遺産をみてみよう。
VMware仮想マシン
1997年リリースのIntel 430TX、トライトンTX
KVM
1996年リリースのIntel 430HX、トライトン2
いずれも20年以上も前のP5 Pentiumのチップセットなんですよねぇ。まぁサウスブリッジの足回りで残っているだけなので別に問題ないのですが。。。。往年のIA-64もこんな感じだったw
閑話休題
仮想マシンのドライバには完全仮想化と準仮想化の2つのドライバーがある。完全仮想化は、ハードウェアのエミュレーションレイヤーを経由しているので、ハードウェア的なリアルな動きをする。準仮想化ドライバーは、仮想化基盤のI/Oレイヤーに直接アクセスするためにパフォーマンスがいい。今やもう完全仮想化ドライバーを使う意味はないだろう。(なんか仮想化自体の話になってきたw)VMwareの場合で説明をする。
ディスクのコントローラーは、SCSI ControllerとNVME Controller、SATA Controllerが追加できる。SATA ControllerはIDE接続となるが主にCD-ROMデバイスで利用される。
SCSIコントローラーは、LSI Logic SASとVMware Paravirtualを利用することが多い。それ以外のデバイスは古いOSで利用するケースがある。
大抵のOSではLSI Logic SASは、ドライバーがすでに入っているので何も考えなくて利用できる。DASやNFSのデータストアではこれを使う。
VMware Paravirtualは、Linuxでは何もかんがえなくても利用可能でデフォルトだが、Windowsの場合はドライバが入っていないのでOSインストール時にドライバの適用が必要となる。おもにSANのデータストアではこれを使う。
NVME Controllerは、少し前のハードウェアバージョンから使えたがもしかするとGUIから設定できないvSphereバージョンもあるかもしれない。このキャプチャはvSphere 7最新なのでGUIから追加ができる。また、vSphere 7でWindows Server 2019やWindows 10の仮想マシンを作成するとこのコントローラーがデフォルトになる。
これらを適切に指定していく。まとめると
- Windows
- データストアがSANの場合: VMware Paravirtual
- データストアがSANではない場合: LSI Logic SAS
- vSphere 7以降でWindows Server 2019/10の場合:NVME
- Linux
- CentOSの場合:VMware Paravirtual
- Ubuntuの場合:LSI Logic SAS
となる。というかなっていた。
ネットワークカードは以前記載したので、そちらを参照してください。
https://www.blog.slow-fire.net/2020/04/02/vmware-workstation-fusionで高速なネットワークドライバーを使う/