zfs zvols を使用した Solaris 上の VirtualBox を使用して Windows と Linux を仮想化できますか?

zfs zvols を使用した Solaris 上の VirtualBox を使用して Windows と Linux を仮想化できますか?

zfs の信頼性を活用するために、Solaris (家庭用) 上の virtualbox を使用して Windows Server 2016 と CentOS 6 を仮想化するシステムの構築を検討しています。

私は 1TB の RAM と WD Red ドライブのスタックを搭載した DP ws/server ボードを入手する予定でした。

Windows VM に GPU リソースへのアクセスを許可することにも興味があります。この状況でこれは可能ですか?

ファイル システム アクセスのためにハードウェアに直接アクセスするのではなく、zfs zpool または vdev を使用する Windows/Linux VM をホストすることは可能ですか?

実際に必要なのは Windows と Linux OS だけですが、ZFS の利点と VirtualBox との互換性のためだけに Solaris ホストを検討していました。

これを行うより良い方法はありますか、それとも私が最良のオプションを選択したのでしょうか?

これが最善の方法であるか、あるいはもっと良い方法があるかどうかにかかわらず、あなたが提案する方法にはどのような落とし穴があるのでしょうか?

予算が限られているので、無料で使えるソフトウェアの選択肢があれば、ソフトウェアよりもハードウェアにお金をかけたいと思っています。

他の選択肢としては、RAID 6 のハードウェア SAS アダプターを追加し、Windows Server 2016 を VirtualBox、Linux、その他の VM のホストとして使用するというものでしたが、NTFS は ZFS ほど信頼性が高くありません...

編集

私の目標は次のとおりです。

  1. 物理マシンを 1 台用意します。

  2. ハード ドライブの障害やその他のファイル システムの問題によるデータ損失の可能性を最小限に抑えます。

  3. Windows 2016 サーバー OS と Exchange、SQL Server などのアプリケーションを実行します。GPU が必要です。

  4. 変更された CentOS システム (FreePBX) を実行します。

  5. 他の仮想マシンも実行します。できれば GPU もサポートしてください。

  6. Synology RS812+ ボックスを補足し、最終的には置き換えます。

  7. ソフトウェアへの支出を最小限に抑え、予算内でより多くの/より優れたハードウェアを購入できるようにします。

まだ計画段階ですので、この段階では何​​でも検討できます。

Solaris ホストを使用するにあたって、私はファイル システム全体が ZFS になると考えていました。そのため、VM ゲストが許容するよりも障害に対してより適切に保護されることになります (私がどこかで誤解していない限り)。他の選択肢では、ファイル システムの少なくとも一部が非 ZFS になり、信頼性が低くなると思われます。

答え1

Windows VM に GPU リソースへのアクセスを許可することにも興味があります。この状況でこれは可能ですか?

PCIe グラフィック カードを直接パススルーするには、次のものが必要です。

  • 2 枚の PCIe グラフィック カード (起動時にスクリプトによってハイパーバイザー システムからゲスト システムにカードを移動するなどの特定のトリックが使用される場合は 1 枚)
  • Intel VT-d または AMD Vi (旧 IOMMU) をサポートするマザーボード
  • それをサポートするハイパーバイザーソフトウェア

残念ながら、Virtualbox現在はサポートされていませんこれが厳しい要件である場合は、Linux または illumos、VMware ESXi、または Microsoft Hyper-V 上の KVM を使用する必要があります。これらはすべてこれをサポートしています (ただし、異なる構成作業が必要です)。

ファイル システム アクセスのためにハードウェアに直接アクセスするのではなく、zfs zpool または vdev を使用する Windows/Linux VM をホストすることは可能ですか?

はい、可能です。関連するコマンドヨハネス・シュルーターのブログ記事より引用:

# zfs create -V 10G tank/some_name
# chown your_user /dev/zvol/rdsk/tank/some_name
# VBoxManage internalcommands createrawvmdk \
  -filename /home/your_user/VBoxdisks/some_name.vmdk \
  -rawdisk /dev/zvol/rdsk/tank/some_name
# VBoxManage registerimage disk /home/your_user/VBoxdisks/some_name.vmdk

代わりに、コムスターiSCSI 経由で zvol を提供します。

これにはわずかな追加オーバーヘッドしか発生せず、ローカルの場合には直接的な利点はありませんが、分散して別の (冗長) ストレージ サーバーを追加する場合や、ストレージを別のボックスに移動する場合にメリットが得られる可能性があります。

あなたの特定のケースでは、私はこれを行いませんが、オプションは存在します (iSCSI の代わりに NFS を使用することもできますが、ファイル システムの代わりに zvols を使用する場合、両方が適切に構成されている場合はすぐには利点はありません)。

これを行うより良い方法はありますか、それとも私が最良のオプションを選択したのでしょうか?

  • Virtualboxを使いたい場合、私はこうします
  • ハイパーバイザーに関して柔軟な場合は、SmartOS (仮想マシンをホストするために特別に構築された、ZFS、ゾーン、KVM を備えた、ほぼステートレスな小型サーバー オペレーティング システム) を検討してください。
  • グラフィックカード用の PCIe パススルーが必要な場合は、Linux+KVM、ESXi、または Hyper-V をハイパーバイザーとして使用し、Solaris/illumos ストレージ VM を仮想化し、ディスクをパススルーして、NFS または iSCSI 経由でハイパーバイザーに戻し、通常どおり使用する必要があります。これはオールインワン ストレージ アプライアンス (AiO) とも呼ばれ、この概念については次の記事で読むことをお勧めします。GEAの優れたマニュアル(上部のリンクされた PDF を参照してください)。複雑に聞こえますが、一度設定してしまえば、仮想ネットワークから物理ネットワークにいつでも拡張でき、通常どおりハードウェアを交換でき、全体的なアプローチが階層化されているため、驚くほどシンプルで柔軟性があります。欠点もいくつかありますが、非常にニッチな分野なので、興味のある方のみ説明します。

あなたの編集に関して:

  1. 物理マシンを 1 台用意します。
  2. ハード ドライブの障害やその他のファイル システムの問題によるデータ損失の可能性を最小限に抑えます。
  3. Windows 2016 サーバー OS と Exchange、SQL Server などのアプリケーションを実行します。GPU が必要です。
  4. 変更された CentOS システム (FreePBX) を実行します。
  5. 他の仮想マシンも実行します。できれば GPU もサポートしてください。
  6. Synology RS812+ ボックスを補足し、最終的には置き換えます。
  7. ソフトウェアへの支出を最小限に抑え、予算内でより多くの/より優れたハードウェアを購入できるようにします。

大まかに言えば、オールインワンのセットアップには 2 つのオプションがあります。ストレージ自体を仮想化するか (リンクした napp-it の readme のように)、ハイパーバイザー上のストレージです。ポイントに沿って比較するため、これらを A と B と呼びます。

  1. A と B は両方とも同じ物理マシン上にあるため、等しくなります。
  2. A と B は、どちらのシステムも ZFS を使用できることから、ほぼ同等です。A では、ストレージ OS (Solaris、illumos、Linux、BSD) を自由に選択できますが、B では、VGA の ZFS と PCIe パススルー (現在は Linux と FreeBSD のみ) をサポートするものを選択する必要があります。これは、ハイパーバイザーの選択にも影響します (A では ESXi、Hyper-V、KVM、B では KVM のみ)。
  3. AとBは等しい。ただし、1つのGPUは実行中の1つのVMにのみ渡され、そのVMはGPUを完全に占有することに注意してください。GPUを切り替えるには、影響を受けるVMをシャットダウンする必要があります。共有GPUのサポートが必要な場合は、選択肢が限られています。Nvidia Tesla/Grid(非常に高価)または新しいIntel Skylake共有GPU(それほど強力ではなく、まだ実験段階です。KVMGTプレゼンテーション)。
  4. どちらの場合も、仮想 VGA カードで十分なので問題ありません。
  5. ポイント 3 を参照してください。VM の数に応じて、複数のカードまたは 1 枚のグリッド カードを購入したり、KVM のすべてのカードで共有が適切に実装されるまで待ったりしても問題ない場合があります。
  6. どちらの場合も、内部および外部 (実際のネットワーク) での使用に iSCSI と NFS の使用をサポートしていますが、管理の好みによって異なります。また、どちらも NAS/SAN のストレージを使用できます (データシートから推測したもので、私自身はシステムを持っていません)。
  7. どちらを選択しても、Windows Server と必要な CAL (ただし、これは samba4 に置き換えることができます)、および Solaris (OmniOS、OpenIndiana、SmartOS などの illumos ディストリビューションに置き換えることができます) を除くすべてのソフトウェアは、ライセンス コストなしで実行できます。グリッド ソリューションには追加のライセンス コストがかかる可能性がありますが、ハードウェア自体が非常に高価なため、このような場合には役に立たないため、調べませんでした。

つまり、それは主に好みによるのです。

  • Linux 管理 (ZoL を含む) と KVM セットアップ (ハードウェアとディストリビューションによっては少し難しい場合があります) に慣れている場合は、ソリューション B を選択すると、追加のストレージ VM と小さな SSD/HDD の必要性を回避できます。
  • 一方、あらゆるオプションから選択し、あらゆるケースに最適なシステムを使用したい場合は、ソリューション A の柔軟性がメリットとなる可能性があります (ただし、ここでは内部ネットワークのオーバーヘッドがわずかに発生する可能性があります)。

関連情報