virtio-blkよりvirtio-scsiの方がいいらしい
PC仮想化において、ストレージコントローラの準仮想化デバイスの選択肢はvirtio-blkとvirtio-scsiの2つがある。名前のとおり前者が仮想ブロックデバイスコントローラ、後者は仮想SCSIコントローラである。
SCSIレイヤを通らない分、virio-blkの方が多少性能面では有利なようだが、以下の理由により基本的にはvirtio-scsiを使った方が良いらしい。
- virtio-blkは1ゲストあたり最大28デバイス=28ストレージに制限される
- virtio-blkとストレージは1:1の関係でPCIデバイスとなるので、PCIバス規格の制約を受ける。
- 他のPCIデバイス(NICなど)との兼ね合いで、実際はより少ないデバイス数となる。
- 対するvirtio-scsiは1デバイスで数百のストレージを扱える
- virtio-blkでは一部のストレージのエミュレーションができない(光学ドライブなど)
- virtio-blkはホットスワップ非対応
- vitrio-scsiの方が開発が活発
virtio-blkで割り当てたデバイスは、ゲストからも当然ブロックデバイス扱いとなり、例えばストレージデバイス表示コマンドなどで出てこないことが多々あるため、少しわかりにくいという個人的な感覚があったりする。