Proxmox VEって便利ですよね。いっそのこと全部PVEで仮想化しちゃえば管理とかバックアップとか楽なのでは?? しかし気になるのは仮想化することによるパフォーマンスの低下。ということでどのくらい差が出るものなのか実験してみました。
今回はTrueNAS Scaleを単独の物理環境で実行した場合と、Proxmox上の仮想環境で実行した場合の性能を比較してみました。
実験環境
| PC | GMKtec G11 |
| CPU | Ryzen Embedded R2514 (4c/8t) mac 3.7GHz |
| Memory | DDR4 16GB |
| Storage 1 | M.2 NVMe 256GB (PCIe 3.0 x4接続) |
| HBA | LSI 9300-16i |
| Storage 2 | 2.5″ SATA HDD x8 |
ネットワークは 2.5GbE となっています。
システム構成
物理構成と仮想化構成でハードウェアは同じですが、内部的な構成が変わります。
物理構成の場合

物理構成ではSSD1からTrueNASを起動します。HDDはSASカードを通して接続しています。ごく一般的な構成です。
仮想化構成の場合

仮想化構成ではSSD1からProxmox VEを起動します。SSD1にはTrueNASのディスクイメージが入っていて、Proxmox上でTrueNASがVMとして起動します。SASカードとSSD2はPCIパススルー機能を使って、Proxmoxから切り離してTrueNASの方に接続するようにしています。
CPUは8コア、メモリは10GBに設定しました。物理メモリは16GBですが仮想化環境では使用できるメモリが減るため、空きが10GBしかありませんでした。
ベンチマーク方法
sysbench、fio、iperf3というベンチマーク用のプログラムを使用します。同じテストを3回実行して平均値を結果として採用します。ベンチマークに使用したスクリプトはこちらにアップしました。
TrueNASはデフォルトでは任意のプログラムがインストールできないようになっているので、以下のコマンドで開発者モードにしてインストールを行いました。
sudo install-dev-toolsベンチマーク結果
| カテゴリ | テスト項目 | 物理TrueNAS | 仮想TrueNAS | 差 (%) |
|---|---|---|---|---|
| CPU | single | 1,809 | 1,808 | 100% |
| multi | 7,191 | 7,090 | 99% | |
| Memory | R/W | 6,075 | 5,711 | 94% |
| Disk (hdd 1G) | Seq Read | 962 | 1,526 | 159% |
| Seq Write | 30 | 33 | 111% | |
| Rand Read | 966 | 1,504 | 156% | |
| Rand Write | 1.8 | 1.9 | 103% | |
| Disk (ssd 1G) | Seq Read | 984 | 1,537 | 156% |
| Seq Write | 171 | 238 | 139% | |
| Rand Read | 974 | 1,509 | 155% | |
| Rand Write | 16.6 | 14.8 | 89% | |
| Network | Send x1 | 2,354 | 2,356 | 100% |
| Receive x1 | 2,352 | 2,353 | 100% | |
| Send x8 | 2,360 | 2,378 | 101% | |
| Receive x8 | 2,353 | 2,354 | 100% |
ぱっと見た感じでは目立った速度低下はありませんね。細かく見てみましょう。
CPUは誤差レベルですね。multiが99%と若干低いのは、ホストOSとしてProxmoxが稼働している分のCPUリソースは使えないためでしょう。メモリに関しては94%と少し低下しています。しかしこの程度では体感的な違いほとんどないと思います。
次にストレージですが、Readの値はキャッシュの影響か、逆にVMの方が速くなってしまっています。どちらもSSDとHDDで同じような値が出ているので、Readの結果は参考になりません。Writeの結果でもおおむねVMの方が速く出ています。
ネットワークに関してはどちらも理論値近く出ているので、2.5GbEでは差が見られないという結果になりました。これが10GbEとかだとまた変わってくるかもしれませんね。
結論
気にすんな!全部Proxmoxに乗せちゃえ!!
余談
Proxmoxを使うと特に便利なのがバックアップです。今回のテストのように開発者モードにしてしまっても、バックアップからリストアすればすぐに元の状態に戻せます。これが物理環境だと大変です。

私は256GBくらいの中古のSSDを大量に買っておいて、これにいろんなOSを入れて実験に使ってます。今回のように元に戻せない変更を行う場合はディスクを丸ごとクローンして使用します。Centuryの裸族のどれで~もステーション&クローン (CRCSNSU10GCP)でコピーしましたが、この製品はSSDを固定するゴムが付いていて取り付けがとても簡単なのがいいですね。しかも使わないときは本体に嵌めておける。無くす心配がありません。どうでもいいんですが無駄にLEDが眩しいのはやめてほしい。w