TrueNAS SCALEでの仮想マシン活用術:ホームラボ向け徹底解説ガイド

Virtualization tutorial - IT technology blog
Virtualization tutorial - IT technology blog

なぜTrueNAS SCALEは仮想化に優れているのか?

以前、TrueNAS Core (FreeBSD) を使用していた際、bhyveのハードウェア互換性の低さやパフォーマンス不足に悩まされた方も多いでしょう。TrueNAS SCALEはDebian Linuxベースに移行したことで、その状況を一変させました。KVM (Kernel-based Virtual Machine) を統合したことで、SCALEはUbuntuやCentOSといった主要なOSと同等の仮想化能力を手に入れました。

私のホームラボ環境では、12台の主要なVMは依然として Proxmox で稼働していますが、データと密接に関連するサービスにはTrueNAS SCALEを優先しています。例えば、Active Directoryを実行する Windows Serverノードや、高速なファイルアクセスが必要なDocker用Linuxなどです。ZFSファイルシステムとKVMの組み合わせにより、管理はより集約され、安全性も格段に向上します。

知っておくべき3つの重要コンセプト

すぐに「Create VM」ボタンを押したくなる気持ちはわかりますが、仮想マシンをスムーズに動作させ、ボトルネックを避けるためには、以下の3つの要素を正しく理解しておく必要があります。

  • Zvol: ZFS上に構築されるブロックデバイスです。ファイルを保存するDatasetとは異なり、ZvolはVMにとっての物理ハードディスクのように機能します。これにより、仮想マシンのスナップショット作成やデータ圧縮を一瞬で行うことができます。
  • Bridge Interface: デフォルトでは、仮想マシンはNAS内部で孤立しています。VMがルーターから独自のIPを取得し、LAN内の他のデバイスと通信できるようにするには、「ブリッジ(Bridge)」を作成する必要があります。
  • VirtIO: 仮想化における「黄金の」ドライバセットです。Windowsのデフォルトドライバを仮想ハードディスクに使用すると、通常、実際の速度の50〜60%しか出ません。VirtIOを使用することで、ハードウェアの帯域幅を最大限に引き出すことができます。

ステップ1:ブリッジネットワークの設定(接続エラーを回避する)

初心者が最も陥りやすいミスは、VMを作成したものの、そのVMに通信(ping)が通らないことです。これは物理ネットワークカードがNASのIPを保持するのに手一杯で、VMの通信を「橋渡し」できていないために起こります。

Network -> Interface にアクセスし、以下の手順を実行します。

  1. NASの現在のIP設定をメモする。
  2. 物理ネットワークカード(例:enp3s0)の静的IPを削除する。
  3. 新しいインターフェースを作成し、タイプに Bridge を選択、名前を br0 とする。
  4. Bridge Members で、カード enp3s0 を選択する。
  5. Web UIへのアクセスを維持するため、NASの元の静的IPを br0 に再割り当てする。
# 保存後、このコマンドを使用して確認します
ip addr show br0

ステップ2:ISOストレージの準備

ISOs という名前で専用のDatasetを作成しましょう。Ubuntu 22.04 LTSやWindows 11などのインストールファイルをここにアップロードしておきます。OSライブラリを整理しておくことで、データフォルダ内にファイルが散らばるのを防ぐ、管理がスムーズになります。

ステップ3:仮想マシン(VM)の作成

Virtualization メニューから Add を選択します。以下は、VMを安定して動作させるための最適なカスタマイズ項目です。

1. CPUとRAMの割り当て

鉄則として、仮想マシンにRAMの80%以上を割り当てないでください。例えばサーバーに32GBのRAMがある場合、VMへの割り当ては最大24GBに留めるべきです。残りのメモリはZFS ARC(キャッシュ)用に確保し、重いデータアクセス時にシステムがハングアップするのを防ぐ必要があります。

2. ディスク構成

Create New Zvol を選択します。Disk Mode では、必ず VirtIO を選択してください。Linuxをインストールする場合、OSが自動的に認識します。Windowsの場合は、インストール時にドライバを読み込む必要があります。

3. ネットワークインターフェース

Adapter TypeVirtIO を選択し、Bridge をステップ1で作成した br0 に指定します。これにより、従来のドライバによる1Gbpsの制限を超え、10Gbps(仮想)のネットワーク速度が確保されます。

ステップ4:Windowsインストールのコツとスナップショットの最適化

Windowsのインストール時、ハードディスクの一覧が空で表示されることがあります。心配はいりません。Fedoraから virtio-win のISOをダウンロードし、VMに2つ目のCD-ROMデバイスを追加してこのファイルを指定してください。インストール中に「Load Driver」を選択し、viostor/w10/amd64 フォルダを参照すれば、ディスクが表示されます。

OSのインストールと基本設定が終わったら、すぐにそのVMのZvolのスナップショットを作成しましょう。万が一、ソフトウェアのインストールに失敗したりウイルスに感染したりしても、わずか2秒で元の状態にロールバックできます。これこそが、他のストレージソリューションでは真似できないZFSの強力なパワーです。

# 仮想マシンのスナップショット一覧を確認する
zfs list -t snapshot -r pool_name/zvol_name

結論:TrueNAS SCALEかProxmox?

クラスタ機能を使って数十台の仮想マシンを本格的に運用する必要があるなら、依然として Proxmox が王道です。しかし、主な目的が安全なストレージであり、その上で3〜5つの重要なサービスを動かすだけであれば、TrueNAS SCALEの方がはるかにスマートな選択肢です。ハードウェアリソースを節約でき、ホームラボ内で管理すべきデバイスを減らして複雑さを解消できるからです。

Share: