サーバーグレードのハードウェアを自由に使用できる場合、ハードウェアベースのRAID1などの上でZFSを実行することをお勧めしますか?ハードウェアベースのRAIDをオフにして、代わりにmirror
またはraidz
zpool
でZFSを実行する必要がありますか?
ハードウェアRAID機能がオフになっている場合、ハードウェアRAIDベースのSATA2およびSASコントローラは、非ハードウェアRAIDコントローラよりも読み取りおよび書き込みエラーを隠す可能性が高いですか、それとも低いですか?
カスタマイズ不可能なサーバーに関しては、ハードウェアRAIDコントローラーのコストが実質的に中立である(または事前に構築されたサーバー製品のコストを下げる)場合、その存在はホスティング会社が補完的なIPMIを提供する可能性を高めるためです。アクセス)、それはまったく避けられるべきですか?しかし、それは求められるべきでしょうか?
ZFSのアイデアは、ディスクがどのように動作しているかを可能な限り知らせることです。次に、最悪のものからより良いものへ:
ZFSはハードウェアについて非常に偏執的であるため、隠蔽が少ないほど、ハードウェアの問題により多く対処できます。 Sammitchで指摘されているように、RAIDコントローラー構成とZFSは、障害(ハードウェア障害など)が発生した場合に復元または再構成するのが非常に難しい場合があります。
一部のハードウェアRAIDコントローラーが組み込まれた標準化されたハードウェアの問題については、ハードウェアコントローラーに実際のパススルーモードまたはJBODモードがあることに注意してください。
Q.サーバーグレードのハードウェアを自由に使える場合、ハードウェアベースのRAID1などの上でZFSを実行することをお勧めしますか?
A. ZFSをディスクに対して直接実行することを強くお勧めします。その間にRAIDの形式を使用しないでください。 RAIDカードを効果的に使用する必要があるシステムがZFSの使用を妨げるかどうかに関係なく、ZFSには、データの復元力よりもZFSのその他の利点があります。全体として、ZFSに単一のLUNを提供する基になるRAIDカードがある場合、ZFSはデータの復元力を向上させません。そもそもZFSを使用する唯一の理由がデータの復元力の向上である場合は、ZFSを使用するすべての理由を失っただけです。ただし、ZFSはARC/L2ARC、圧縮、スナップショット、クローン、およびその他のさまざまな改善点も提供しますが、その場合でも、おそらくファイルシステムが選択されています。
Q.ハードウェアベースのRAIDをオフにして、代わりにミラーまたはraidz zpoolでZFSを実行する必要がありますか?
A.はい、可能な場合。一部のRAIDカードでは、パススルーモードを使用できます。それがある場合は、これを行うことをお勧めします。
Q.ハードウェアRAID機能がオフになっている場合、ハードウェアRAIDベースのSATA2およびSASコントローラは、非ハードウェアRAIDコントローラよりも読み取りおよび書き込みエラーを隠す可能性が高いですか、それとも低いですか?
A.これは問題のRAIDカードに完全に依存しています。マニュアルを確認するか、RAIDカードの製造元/ベンダーに問い合わせて調べる必要があります。特に、RAID機能を「オフにする」ことで実際に完全にオフにならない場合は、そうする人もいます。
Q.カスタマイズ不可能なサーバーに関して、ハードウェアRAIDコントローラーのコストが実質的に中立である(または事前に構築されたサーバー製品のコストを下げる)場合、その存在により、ホスティング会社が提供する可能性が向上します。補完的なIPMIアクセス)、それはまったく避けられるべきですか?しかし、それは求められるべきでしょうか?
A.これは、最初の質問とほとんど同じです。繰り返しになりますが、ZFSを使用したいという唯一の願望がデータの復元力の向上であり、選択したハードウェアプラットフォームでRAIDカードがZFSに単一のLUNを提供する必要がある場合(または複数のLUN、ただしそれらにZFSストライプがある場合)、データの回復力を向上させるものは何もないため、ZFSの選択は適切ではない場合があります。ただし、他のZFS機能のいずれかが役立つ場合でも、それは役立つ場合があります。
追加の懸念事項を追加したいと思います。上記の回答は、ZFSの下でハードウェアRAIDカードを使用しても、データの復元力を向上させる機能を削除する以外にZFSに害を及ぼすことはないという考えに依存しています。真実はそれはもっと灰色の領域です。 ZFSには、rawディスクではなくマルチディスクLUNを渡した場合に必ずしも適切に動作するとは限らない、さまざまな調整可能要素と前提条件があります。これのほとんどは適切なチューニングで打ち消すことができますが、そのままでは、個々のスピンドルの上にある場合と比べて、大規模なRAID LUN上のZFSでは効率が良くありません。
さらに、従来のファイルシステムとは対照的に、ZFSがLUNと通信する方法がまったく異なるために、RAIDコントローラーやワークロードに慣れていないコードパスが頻繁に呼び出され、奇妙な結果になる可能性があることを示唆する証拠もあります。特に、個別のログデバイスも提供しない場合は、単一のLUNの上に配置したプールでZIL機能を完全に無効にすることで、おそらく自分自身に有利になるでしょう。もちろん、私は強くお勧めしますプールに個別のrawログデバイスを提供します(可能であれば、RAIDカードからのLUNではありません)。
HP ProLiant SmartアレイRAID構成の上でZFSをかなり頻繁に実行しています。
どうして?
例:
RAIDコントローラー構成
[root@Hapco ~]# hpacucli ctrl all show config
Smart Array P410i in Slot 0 (Embedded) (sn: 50014380233859A0)
array B (Solid State SATA, Unused Space: 250016 MB)
logicaldrive 3 (325.0 GB, RAID 1+0, OK)
physicaldrive 1I:1:3 (port 1I:box 1:bay 3, Solid State SATA, 240.0 GB, OK)
physicaldrive 1I:1:4 (port 1I:box 1:bay 4, Solid State SATA, 240.0 GB, OK)
physicaldrive 2I:1:7 (port 2I:box 1:bay 7, Solid State SATA, 240.0 GB, OK)
physicaldrive 2I:1:8 (port 2I:box 1:bay 8, Solid State SATA, 240.0 GB, OK)
デバイスリストのブロック
[root@Hapco ~]# fdisk -l /dev/sdc
Disk /dev/sdc: 349.0 GB, 348967140864 bytes
256 heads, 63 sectors/track, 42260 cylinders
Units = cylinders of 16128 * 512 = 8257536 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sdc1 1 42261 340788223 ee GPT
zpool構成
[root@Hapco ~]# zpool list
NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT
vol1 324G 84.8G 239G 26% 1.00x ONLINE -
zpool詳細
pool: vol1
state: ONLINE
scan: scrub repaired 0 in 0h4m with 0 errors on Sun May 19 08:47:46 2013
config:
NAME STATE READ WRITE CKSUM
vol1 ONLINE 0 0 0
wwn-0x600508b1001cc25fb5d48e3e7c918950 ONLINE 0 0 0
zfsファイルシステムのリスト
[root@Hapco ~]# zfs list
NAME USED AVAIL REFER MOUNTPOINT
vol1 84.8G 234G 30K /vol1
vol1/pprovol 84.5G 234G 84.5G -
通常、RAIDアレイで構成されたディスクの上でZFSを実行しないでください。 ZFSはRAIDモードで実行する必要がないことに注意してください。個別のディスクのみを使用できます。ただし、実質的に99%の人がRAID部分のZFSを実行しています。ディスクをストライプモードで実行することもできますが、これはZFSの使用方法としては不十分です。他のポスターが言ったように、ZFSはハードウェアについて多くを知りたいと思っています。 ZFSは、JBODモードに設定できる、またはできればHBAに接続できるRAIDカードにのみ接続する必要があります。 IRC Freenodeチャネル#openindianaにジャンプします。チャネル内のZFSエキスパートが同じことを教えてくれます。HBAを提供しない場合は、ホスティングプロバイダーにJBODモードを提供するよう依頼してください。
みなさんのために...あらゆるレイド上のZFSは完全な苦痛であり、MADの人々によってのみ行われます!...非ECCメモリでZFSを使用するように。
サンプルを使用すると、理解が深まります。
ZFSが適しているのは、ディスクに電源が入っていない場合(RAIDコントローラーはそれができない)に変更されたビットを検出することです。
これは、RAMモジュールのビットが要求されずに自発的に変化する場合と同じ問題です...メモリがECCの場合、メモリはそれを自動修正します。そうでない場合、そのデータは変更されたため、そのデータは変更されたディスクに送信されます;失敗がVDEV部分にある場合、その変更はUDEV部分にありません... ZPOOL全体がすべてのデータを永久に失います。
これはZFSの弱点です... VDEVが失敗すると、すべてのデータが永久に失われます。
ハードウェアRAIDとソフトウェアRaidは、自発的なビット変更を検出できません。チェックサムがなく、最悪の場合Raid1レベル(ミラー)であり、すべてのパーツを読み取って比較するわけではありません。すべてのパーツが常に同じデータを持っていると想定します。大声で)RAIDは、データが他のもの/方法によって変更されていないと推測します...しかし、ディスク(メモリとして)は、自発的なビット変更の傾向があります。
非ECCでZFSを使用しないでくださいRAMおよびRAIDディスクでZFSを使用しないでください。ZFSにすべてのディスクを表示させ、VDEVとプールを破壊する可能性のあるレイヤーを追加しないでください。
そのような失敗をシミュレートする方法... PCの電源を切り、そのRAID1のディスクを1つ取り出し、1ビットだけを変更します...再接続して、RAIDコントローラーが変更を認識できない方法を確認します...すべての読み取りがテストされるため、ZFSが可能チェックサムに対して、一致しない場合は、別の部分から読み取ります... RAIDが失敗したために再度読み取ることはありません(ハードウェアによる読み取り不可が失敗した場合を除く)... )... RAIDが読み取りを行うのは、「読み取り、そこから読み取れない、ハードウェア障害」と書かれている場合にのみ、別のディスクから読み取ろうとする...チェックサムが一致しない場合と同様に、ZFSが別のディスクから読み取った場合と同じように読み取る「ねえ、私はそこから読むことができません、ハードウェアが失敗します」と言います。
私がそれを非常に明確にすることを願っています...どのレベルのRaidでもZFSは非常に苦痛であり、データに対する完全なリスクです!非ECCメモリ上のZFSだけでなく。
しかし、(私を除いて)誰も言っていないことは:
それで、どのディスクを使うのですか
しかし、ねえ、ほとんどの人はこれをすべて知っているわけではなく、問題が発生したことは一度もありません...私は彼らに言います:わあ、あなたはどれほど幸運か、幸運が去る前に宝くじを購入します。
リスクがあります...そのような失敗の偶然が発生する可能性があります...したがって、より良い答えは次のとおりです:
私は個人的に何をしていますか?
Raidに対してZFSに少し光を当てることができるといいのですが、物事がうまくいかないときは本当に苦痛です!
要するに、ZFSの下でRAIDを使用すると、ZFSを使用するという考えがなくなるだけです。どうして? — RAIDではなく純粋なディスクで動作するように設計されているためです。