Proxmox VEストレージの最適化:iSCSIとNFSでTrueNASに接続するプロの技

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

なぜローカルストレージ(Local Storage)を使い続けるべきではないのか?

Proxmoxを単一のサーバーにインストールし、内部ハードディスクにVM(仮想マシン)を保存するのは、最も手軽な開始方法です。しかし、ハードウェアにトラブルが発生した瞬間にリスクが顕在化します。サーバーがダウンすれば、すべての仮想マシンデータがその中に閉じ込められてしまいます。また、1つのノードに搭載できるドライブ数には限りがあるため、容量の拡張も頭の痛い問題です。

私の12台のVMを運用しているラボ環境では、以前ローカルのSSDを使用していましたが、コントローラーの故障によりデータの復旧に5時間近くかかったことがあります。ライブマイグレーション(無停止移動)やハイアベイラビリティ(HA:ホスト障害時の自動復旧)といった機能を活用するには、集中型ストレージ(Centralized Storage)の導入が必須条件となります。

TrueNASはこの課題を解決する完璧なソリューションです。今回は、ProxmoxとTrueNASを接続するための最も一般的な2つのプロトコル、NFS and iSCSIの設定方法を解説します。

NFSとiSCSI:どちらが最適な選択か?

各プロトコルにはそれぞれの強みがあります。それらの本質を理解することで、システムをより最適化できます。

1. NFS (Network File System) – シンプルで柔軟

NFSはファイルレベル(File-level)で動作します。ネットワーク経由で共有されるフォルダのようなもので、Proxmoxはそこに .qcow2 ファイルを保存します。

  • メリット: 設定が非常に速く、複数のホストから同時にアクセス可能で、ファイルを直接管理しやすい。
  • デメリット: ファイルシステムのオーバーヘッドにより、パフォーマンスがiSCSIより10〜15%程度低下することがある。

2. iSCSI (Internet Small Computer System Interface) – スピードとパワー

iSCSIはブロックレベル(Block-level)で動作します。このプロトコルは、LANケーブル経由で物理ハードディスクが直接接続されているかのようにProxmoxを認識させます。

  • メリット: 優れたアクセス速度と極めて低いレイテンシ。データベースや高負荷なアプリケーションに最適。
  • デメリット: 設定手順が複雑(Target、Portal、LUNなど)で、ストレージ側から個別のファイルを管理するのが難しい。

実践的なアドバイス: ISOイメージやバックアップファイルの保存にはNFSを使い、高速な読み書きが必要なVMのOSディスクには、iSCSIとLVMを組み合わせて使用することをお勧めします。

ステップ 1:TrueNAS側の設定

開始する前に、TrueNAS(CoreまたはSCALE)上にストレージプールが作成されていることを確認してください。

NFSの設定

まず、proxmox-nfs という名前で新しい Dataset を作成します。次に、Shares -> Unix Shares (NFS) に移動し、Add をクリックします。ここで、作成した Dataset へのパスを選択します。

重要な注意点:Advanced Options で、Maproot Userroot に、Maproot Groupwheel に設定してください。このステップを忘れると、Proxmox側で書き込み権限エラー(Permission Denied)が発生します。

iSCSIの設定

iSCSIの手順は少し複雑ですので、以下の順序に従ってください:

  1. Zvolの作成: Datasets内で Add Zvol を選択します(例:500GB)。これがProxmoxに提供される未加工のパーティションになります。
  2. Portalの設定: Shares -> Block (iSCSI) で、TrueNASのIPアドレスを指定した Portal を追加します。
  3. Targetの設定: ストレージシステムを識別するための新しい Target を作成します。
  4. Extentの作成: ステップ1で作成したZvolを Extent として指定します。
  5. 関連付け: Associated Targets で、Target と Extent を紐付けます。

ステップ 2:Proxmox VE インターフェースからの接続

ブラウザを開き、Proxmoxノードにログインします(通常はポート8006)。

NFSストレージの追加

Datacenter -> Storage -> Add -> NFS に移動します。ID欄に任意の名前を入力し、Server欄にTrueNASのIPを入力します。Export欄をクリックすると、利用可能なパスが自動的にリストアップされます。Contentセクションで ISO ImageVZDump を選択するのを忘れないでください。

iSCSIとLVMの追加

iSCSIの場合、仮想マシンで使用できるようにするために2つのフェーズが必要です。

フェーズ 1:ターゲットの接続
Add -> iSCSI に進み、PortalにTrueNASのIPを入力します。Target欄で検索をクリックし、設定したIQNを選択します。後のステップでLVMを介して管理するため、”Use LUNs directly” のチェックは外しておきます。

フェーズ 2:LVMレイヤーの作成
次に、Add -> LVM に進みます。Base storage に先ほど作成したiSCSI接続を選択します。Volume Groupに名前を付け、Contentで Disk Image を選択します。これで、iSCSIを使用して新しい仮想マシンを作成する準備が整いました。

接続状態の確認

ストレージに赤い「×」印が表示されている場合は、SSHでProxmoxにログインし、コマンドラインで確認してください。iscsiadm -m discovery -t sendtargets -p [IP_TRUENAS] コマンドで、サーバーがTargetを認識しているか確認できます。また、lsblk を使用して、新しいディスクがデバイスリストに表示されているかチェックしてください。

ボトルネック(Bottleneck)に関する注意

ネットワークストレージは帯域幅に完全に依存します。1Gbpsポートの最大転送速度は約110-125MB/sです。5〜7台のVMを同時に実行すると、システムは非常に重くなります。

可能であれば、中古の10Gbpsカード(Mellanox ConnectX-3など)への投資を検討してください。ストレージトラフィック(Storage Traffic)と仮想マシンのネットワークトラフィックを分離することで、システムは驚くほどスムーズに動作するようになります。

まとめ

ストレージとコンピューティングを分離することは、システムをよりプロフェッショナルなものに変える大きな転換点です。NFSはファイル保存の利便性を提供し、iSCSIは重要なアプリケーションのパフォーマンスを保証します。まずはNFSで慣れてから、負荷の高い処理が必要になった際にiSCSIへアップグレードすることをお勧めします。構築の成功を祈っています!

Share: