私はまだZFSを初めて使用します。私はNexentaを使用していますが、OpenIndianaまたはSolaris 11 Expressに切り替えることを考えています。現在、私はESXi、Hyper-V、XenServerのいずれかでZFSサーバーをゲストとして仮想化することを検討しています(まだ決定していません-VMDirectPathとFreeBSDのサポートはESXiに依存しています)。
主な理由は、他のVMを1〜3台同時に簡単に実行できるほど、十分なリソースがあることです。主にWindows Server。多分Linux/BSD VM同様に。仮想化されたZFSサーバーが他のVMのすべてのデータをホストして、それらのデータがZFSディスクとは物理的に別のディスクに保持されるようにしたい(iscsiまたはnfsとしてマウント)。
サーバーには現在、合計6つのコア(2つはロック解除)、16GB RAM(maxed out))、およびLSI SAS 1068E HBA with(7 )1 TB SATA IIディスクが接続されています(ホットスペアを備えたRAIDZ2で計画しています)。また、(4)32 GB SATA II SSDがマザーボードに接続されています。2つのSSDをブートミラー(仮想ホスト用)にミラーリングしたいと考えています。 、およびZILとL2ARC用の他の2つのSSDを残します(ZFS VMゲスト用)。VMを保存するためにさらに2つのディスクを追加しますゲストと現在の7つのディスクすべてをZFSストレージとして割り当てます。注:マザーボードはnotでIOMMUをサポートしていますが、880Gはサポートしていませんが、次の場合はIOMMUを備えた890FXボードを持っています。それは大きな違いを生みます。
私の質問は:
1)これを行うのは賢明ですか?明らかなマイナス面は見られません(なぜ他の誰もそれについて言及していないのかと不思議に思います)。私は巨大な見落としをしているように感じるかもしれません、そして私はこれにコミットするのが嫌いです、私が逃したいくつかの細部からフーバーになるためにすべてのデータを移動します。
2)ZFS仮想ゲストのパフォーマンス?小さなパフォーマンスヒットを喜んで受けますが、VMゲストがディスクへのフルディスクアクセスを持っている場合、少なくともディスクI/Oパフォーマンスは無視できます(非仮想化ZFSを実行する場合との比較)VMゲストとしてZFSサーバーをホストした経験から、誰もがこれを話すことができますか?
これらの「オールインワン」のZFSストレージ設定をいくつか作成しました。 biquitous Talk の優れた投稿に最初に触発された私のソリューションは、ハードウェア設計に対して少し異なるアプローチを取りますが、カプセル化された仮想化ZFSストレージの結果をもたらします。
あなたの質問に答えるには:
これが賢明なアプローチであるかどうかの判断は、実際には目標に依存します。あなたは何を成し遂げようとしているのですか?テクノロジー(ZFS)があり、そのためのアプリケーションを探している場合、これは悪い考えです。適切なハードウェアRAIDコントローラーを使用し、ローカルVMFSパーティションでVMを実行する方がよいでしょう。それは最も抵抗の少ない道です。ただし、ZFSを使用したい特定の理由(レプリケーション、圧縮、データセキュリティ、移植性など)がある場合は、努力を惜しまなければ、これは間違いなく可能です。
ベアメタルで実行しているか仮想で実行しているかに関係なく、パフォーマンスは設計に大きく依存します。 ZFS VMにSASストレージコントローラーとディスクへの直接アクセスを提供するため、 PCI-passthrough (または場合によってはAMD IOMMU)を使用することが不可欠です。 VMに適切な量のRAMおよびCPUリソースが割り当てられている限り、パフォーマンスはほぼネイティブです。もちろん、プールの設計は重要です。ミラーとRAID Z2を比較してください。 ZFS ディスクの数ではなく、vdev全体でスケーリング 。
私のプラットフォームは VMWare ESXi 5 であり、優先するZFS対応オペレーティングシステムは NexentaStor Community Edition です。
- これは私の 家 サーバー 。 HP ProLiant DL370 G6 内部SDカードから実行中のESXiです。中央にあるミラーリングされた2つの72GBディスクは、内蔵Smart Array P410 RAIDコントローラーにリンクされ、VMFSボリュームを形成します。そのボリュームはNexentaStor VMを保持します。 ZFS仮想マシンは、安定したストレージ上のどこかにどこかに存在する必要があることに注意してください。
LSI 9211-8i SASコントローラー が右側の6つの1TB SATAディスクを収容するドライブケージに接続されています。これはNexentaStor仮想マシンにパススルーされるため、NexentaはディスクをRAID 1 + 0セットアップとして認識できます。ディスクはel-cheapoです Western Digital Green WD10EARS ドライブ 適切に調整 変更されたzpool
バイナリ。
このインストールでZILデバイスまたはL2ARCキャッシュを使用していません。
VMには6GBのRAMと2つのvCPUが割り当てられています。 ESXiでは、PCIパススルーを使用する場合、VMに割り当てられたRAMの全量のメモリ予約が作成されます。
NexentaStor VMに2つのネットワークインターフェイスを提供します。 1つは管理トラフィック用です。もう1つは独立したvSwitchの一部であり、vmkernelインターフェイスを備えています(外部アップリンクなし)。これにより、VMは、プライベートネットワークを介してESXiでマウント可能なNFSストレージを提供できます。外部ホストへのアクセスを提供するアップリンクインターフェイスを簡単に追加できます。
ZFSでエクスポートされたデータストアに新しいVMをインストールします。 ESXiで「仮想マシンの起動/シャットダウン」パラメータを必ず設定してください。ゲストシステムの前にストレージVMを起動し、最後にシャットダウンする必要があります。
NexentaStor VMで直接実行した bonnie ++ および iozone の結果を次に示します。テストで関連性の高い数値を表示するためにZFS圧縮はオフになっていますが、実際には、ZFSのデフォルトの圧縮(gzipではなく)を常に有効にする必要があります。
# bonnie++ -u root -n 64:100000:16:64
Version 1.96 ------Sequential Output------ --Sequential Input- --Random-
Concurrency 1 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
saint 12G 156 98 206597 26 135609 24 410 97 367498 21 1478 17
Latency 280ms 3177ms 1019ms 163ms 180ms 225ms
Version 1.96 ------Sequential Create------ --------Random Create--------
saint -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files:max:min /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
64:100000:16/64 6585 60 58754 100 32272 79 9827 58 38709 100 27189 80
Latency 1032ms 469us 1080us 101ms 375us 16108us
# iozone -t1 -i0 -i1 -i2 -r1m -s12g
Iozone: Performance Test of File I/O
Run began: Wed Jun 13 22:36:14 2012
Record Size 1024 KB
File size set to 12582912 KB
Command line used: iozone -t1 -i0 -i1 -i2 -r1m -s12g
Output is in Kbytes/sec
Time Resolution = 0.000001 seconds.
Throughput test with 1 process
Each process writes a 12582912 Kbyte file in 1024 Kbyte records
Children see throughput for 1 initial writers = 234459.41 KB/sec
Children see throughput for 1 rewriters = 235029.34 KB/sec
Children see throughput for 1 readers = 359297.38 KB/sec
Children see throughput for 1 re-readers = 359821.19 KB/sec
Children see throughput for 1 random readers = 57756.71 KB/sec
Children see throughput for 1 random writers = 232716.19 KB/sec
これは、テスト実行中のストレージVMのIOPSと転送速度を示すNexentaStor DTraceグラフです。このようなローエンドディスクでは、4000 IOPSと400+メガバイト/秒はかなり妥当です。 (ただし、大きなブロックサイズ)
その他の注意事項。