CentOS 6用に24 x 1.2 TBドライブでRAID 5、特にストライプサイズを構成するにはどうすればよいですか?


8

24 x 1.2TBディスク(および1TB RAM)を搭載したDell R920の場合、高速IOを実現するためにRAID 5構成をセットアップしようとしています。サーバーは、非常に大きなファイルを含むすべてのサイズのファイルを読み書きするKVM VMをホストするために使用されます。サーバーが何らかの理由で故障した場合、故障した部品を交換した後、ベアメタルからサーバーを再プロビジョニングするだけなので、私はデータの安全性にそれほど関心がありません。 したがって、パフォーマンスが主な関心事です。 RAID 5を検討しています。RAID5を使用すると、データを複数のスピンドルに分散できるため、パフォーマンスが向上し、主な懸念事項ではありませんが、データ保護も得られます。NICはデュアル10Gbpsです。

この質問はRAID 5に限定します。これは、これにより最高のパフォーマンスが得られると考えているためです。説得力のあるパフォーマンス上の理由がある場合にのみ、他のことを検討します。しかし、私はRAID 5構成に関連する答えを好むと思います。

さて、上で述べたように、これは私たちの現在の設定の考えです:

  • 24台のハードドライブ:RMCP3:1.2 TB、10000、2.5インチ6 Gbps
  • RAIDコントローラー:H730P、12Gbps SASサポート、2GB NVキャッシュ
  • 1ホットスペア(ドライブが故障した場合に寿命を延ばすため)
  • 23個のデータドライブ(そのうち1個はパリティとして、22個はデータ用に残ります)
  • ストライプサイズ:1MB(1MB / 22データドライブ=ディスクあたり最大46.5KB-または、ストライプサイズを誤解していますか?)
  • 読み取りポリシー:適応型先読み
  • 書き込みポリシー:書き戻し
  • ディスクキャッシュポリシー:有効

ストライプサイズがデータドライブ全体の合計である場合、ドライブあたり最大46.5 KBと計算すると、非常に優れたスループットが得られます。ストライプサイズがスピンドルごとの場合、これはすべて間違っています。

ストライプサイズは、単一のファイルが取るサイズにもなりますか?たとえば、2KBのファイルがある場合、1MBのストライプサイズを選択すると、メガバイト全体が無駄になることになりますか?または、複数のファイルがストライプ内に存在できますか?

最後に、CentOS 6.5(または最新)をインストールするときに、ファイルシステムがRAIDを最適に使用できるようにするために特別なことを行う必要がありますか?たとえば、mkfs.ext4には、オプション-E strideがあり、RAID構成に対応する必要があると言われています。しかし、CentOSのインストール中に、これを行う方法はありますか?

高速IOのためにRAID 5を構成することについてのあなたの考えに感謝します。


4
RAID 5は、パフォーマンスが必要な場合に使用したくないものです。その書き込み速度はひどい場合があります。
Nathan C

1
このストレージソリューションの読み取り/書き込みワークロードとアプリケーションに関するコンテキストを提供できますか?
ewwhite 2014

1
パフォーマンスが必要な場合は、HDDを使用しないでください。優れたSSDストレージシステム、またはPCIeストレージソリューションを使用すれば、パフォーマンスを向上させることができます。データが失われたかどうか気にしない場合は、SSDまたはPCIeストレージソリューションを使用してください。
Dennis Nolte 14

2
@Tonny私はこれを確認しました。そのコントローラーの最大16ディスク。
ewwhite 14

7
皆さん、あなたは生まれながらの専門家ではなかったことを思い出してください。あなたよりも知識が少ない人に優しくしてください。
クリスS

回答:


12

コントローラとドライブのセットアップでRAID 1 + 0を使用してください。さらに容量が必要な場合は、RAID 50/60などのネストされたRAIDレベル機能します。再構築時間は悪くないので、少数のエンタープライズSASディスク(8台以下のドライブ)でRAID 5を使用できます。ただし、24台のドライブはひどい間違いです。(ああ、個々のディスクキャッシュ機能を無効にして...危険)

I / Oおよびローカルストレージのパフォーマンスには多くの側面があります。1秒あたりのI / O操作、スループット、ストレージレイテンシがあります。RAID 1 + 0は、これらの間の適切なバランスです。ここでの良い点は、エンタープライズディスク、対応ハードウェアコントローラー、および多数のディスクを使用していることです。どのくらいの容量が必要ですか?

仮想ディスクグループ内で使用できるドライブの数が制限されることがあります。PERC / LSIコントローラーは、単一のRAIDレベルおよびRAID 1 + 0の場合、これを従来16ドライブに制限していました。ユーザーガイドはこれを確認します。単一のRAID 5または単一のRAID 1 + 0グループで24台のディスクすべてを使用することはできません。

ワークロードに応じて考慮する必要があるもう1つの側面は、特定のPERCコントローラーでLSI Cachecade機能を使用してSSDキャッシングを活用できることです。これには使用できない場合がありますが、I / Oパターンを理解すると、ストレージソリューションの調整に役立ちます。


ext4ファイルシステム作成オプションに関する限り、その多くはハードウェアRAIDコントローラーによって抽象化されます。ここで特別なオプションなしでファイルシステムを作成できるはずです。あなたが参照しているパラメータは、ソフトウェアRAIDソリューションにより大きな影響を与えます。


ここにいくつかの非常に役立つ情報があります。最初にパフォーマンス、次に合計ディスク容量を探しています。したがって、利用可能な24TBのディスク容量の半分が失われるため、RAID 10は考慮していません。私たちのニーズはデータが非常に多く、TBのデータを非常に簡単にチャーンします。サーバー障害の結果は優先度が低いため(不良ハードウェアを修正した後、サーバーをゼロから再構築できるため、データの安全性は最も重要な考慮事項ではないため)、ディスクIOを最大化する必要があります(ローカルおよびNFS /別のストーリー)と全体的な処理速度。
Steve Amerige 14

@SteveAmerigeどのくらいのディスク容量が必要ですか?1つのRAIDグループで24個のディスクを使用することはできないため、環境には追加の設計上の考慮事項があります。このシステムの目的、関係するデータの種類、実際のパフォーマンス要件について教えてください。
ewwhite 2014

1
@SteveAmerigeもっと詳しく!RAID 5はスターターではありません。2014年は使用しないでください。これはどのようなデータですか。仮想化テクノロジーとは何でしょうか?KVM?VMware?ここでの設計は、特にそれほど多くのハードウェアに投資する前に、本当にいくつかの改良が必要だと思います...データの「ワーキングセット」のサイズはVMごとにどのくらいになるか知っていますか?その値がわかっているインスタンスでは、その周りをキャッシュして最適化できます。階層型ストレージ。SSD。ワークロードは読み取りバイアスまたは書き込みバイアスですか?
ewwhite 2014

1
RAID 5 would give us some data safety at the expense of effectively 1 hard drive per group, right? いいえ、違います。これらのサイズのドライブ、およびグループ内のその多くのディスクにより、RAID 5は実質的に0データの安全性を提供します。ディスクを2つの12ディスクRAID 0アレイに投入することもできます。
HopelessN00b 2014

1
最後に、24台の物理ドライブを次のように構成しました。ディスクグループ0、RAID 10(4ドライブ):VD 0:BOOT 100GB; VD 1:ルート2134.5GB。ディスクグループ1、RAID 0(10ドライブ):VD 2:DATA1、11172.5GB。ディスクグループ2、RAID 0(10ドライブ):VD 3:DATA2、11172.5GB。VD 0 BOOTとVD 1 ROOTの仮想ディスクを個別に用意する必要がなかった可能性があります。私は、起動ディスクが標準(非UEFI)ブートを実行できるようにするためにそれを行いました。後でLVMを使用したので、VD 0とVD 1だけを使用しました。VD 2とVD 3を使用した/ data。すべてのコメントに感謝します。
Steve Amerige

5

24個の1TBディスクにわたって単一のRAID 5アレイを使用しないでください!私はあなたが答えを何に制限したいのかをあまり気にしません、それは悪い考えです、そしてあなたは他の選択肢を見るべきです。

ディスクが故障する確率は、ディスクごとに上がります。再構築にかかる時間もそうです。ドライブに障害が発生し、ドライブを交換すると、新しいディスクのデータを構築するために、すべてのディスクで可能な限り多くのIOが使用されます。残りの23枚の正常なディスクの1つがこのプロセス中に故障し、バックアップからサーバーを復元しなければならない可能性が非常に高いです。あなたは気にしないと言います...しかし、あなたは月に一度それをすることを受け入れてもいいですか?週に一度?ディスクが古くなるにつれて、それは非常に悪くなる可能性があります。

さらに、パフォーマンスが必要な場合、RAID5は間違った方向に導いてくれます。多くの場合、RAID5は書き込みごとにパリティを計算し、それをドライブにも書き込む必要があるため、他のオプションよりもパフォーマンスが低下します。RAID5はパフォーマンスを考慮して設計されていません。

データを本当に気にしない場合は、RAID 0を使用してください。ただし、それでも、1つの巨大な24ディスクRAID 0ではなく、いくつかの個別のアレイを作成してください。

パフォーマンスと整合性が必要な場合は、RAID10を使用してください。ディスク容量は多少失われますが、パフォーマンスが大幅に向上します。

または、ディスク上の大量のデータを処理するためにゼロから設計されたZFSのようなものを見ることができます。


1
ちなみに、私は部門のサーバーを副業として管理するソフトウェア開発者です。つまり、私の知識には多くのギャップがあります。しかし、私はこれを数年前からかなり成功しています。これが私がこの大きなサーバーを構築するのは初めてなので、あなたのフィードバックは非常にありがたいです。RAID 5の制限についてのコメントに大変感謝しています。私たちが望んでいるのは、パフォーマンスと利用可能なディスク容量の合計ですが、データの安全性を確保するRAID構成については、いくらか考慮します(最後の優先事項)。
Steve Amerige 14

1

あなたのオプション:

  • RAID 0:これにより、すべてのディスクが冗長性のない単一のユニットに変わります。これは、読み取りと書き込みのパフォーマンスが最も高く、オプションの中で最も使用可能なスペースがありますが、単一のディスクが失われると、すべてのデータが失われます。

  • RAID 1 + 0:これにより、すべてのディスクが単一のユニットになり、すべてのデータが2つのディスクに存在します。読み取り速度はRAID 0とほぼ同じで、書き込み速度は半分になり(各データを2回書き込む必要があるため)、使用できるスペースは半分しかありません。単一のディスクが失われても、データの可用性には影響がなく、読み取り/書き込み速度への影響は最小限です。

  • RAID 5:これにより、すべてのディスクが1つのユニットになり、1つのディスクにパリティ値が設定されます。読み取り速度がRAID 0よりわずかに遅い、書き込み速度がはるかに遅い、単一の非RAIDディスクの書き込み速度よりも遅い可能性がある(各書き込みには、少なくとも2つのディスクで読み取り-変更-書き込みサイクルが必要)パリティ情報のために1つのディスクに相当するスペースを失います。単一のディスクが失われると、読み取り速度が大幅に低下する可能性があります(ディスクに格納されたデータを再構築するには、他のすべてのディスクからデータを読み取る必要があります)が、データの可用性には影響しません。

  • RAID 6:これは、パリティ計算に加えてより精巧なチェックサムを保存し、データを失うことなく2つのディスクの損失を処理できることを除いて、基本的にRAID 5の長所と短所をすべて備えています。

データの安全性が本当に重要でない場合(これには、元のソースからデータを復元するのに費やした時間がかかり、数日かかる場合があり、中断された計算の再実行に時間を要した場合)、RAID 0をお勧めします。それ以外の場合、ほぼ読み取り専用である程度の信頼性が必要な場合は、RAID 6をお勧めします(ただし、障害が発生したディスクから回復するとパフォーマンスが低下することに注意してください)。読み取り/書き込みワークロードがある場合は、RAID 1 + 0をお勧めします。

ワークロードの正確な性質に応じて(つまり、特定のタスクがディスク領域の明確に定義されたサブセットにアクセスする場合)、1つの障害が他のRAIDアレイに影響を与えないように、複数の独立したRAIDアレイをセットアップできる場合があります。 。

RAID 5は、状況にメリットをもたらしません。RAID 0と比較すると(特に書き込みの場合)パフォーマンスが低下します。また、ディスクの数が多い場合、リカバリ中に2番目のディスクに障害が発生し、データの安全性が損なわれることはほぼ確実です。


1

さて、1つの明確な質問-ストライプサイズについてです。RAIDが常に最小のI / Oチャンクとしてデータのストライプ全体を読み書きすることができない場合を除き、ストライプサイズは大きい方が適切です。

どうして?-ストライプサイズが小さいということは、複数のディスクを長いI / Oに含めることを意味し、1つの論理I / Oで複数のディスクをロードする可能性が低くなります。ストライプが大きいと、1つ(またはいくつか)のディスクがI / Oに関与する可能性が高くなります。これは、複数のディスクと比較して不足の原因と思われるかもしれませんが、ほとんどランダムな負荷が飛び込み、負荷がすべてのディスクにほぼ均等に分散されることに気付きます。

この背後にあるより多くの理論はここで見つけることができます:http//www.vinumvm.org/vinum/Performance-issues.html

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.