私はデータウェアハウスソリューションを設計しており、ディスク構成の問題の初心者です。説明させてください。
私たちのストレージは6つのストレージエンクロージャーに分散しており、それぞれに5つのRAID-1ディスクアレイがあり、各ディスクアレイごとに2つのLUNが定義されているため、合計48のLUNになります(これは、データウェアハウスアーキテクチャに関するマイクロソフトのファストトラックの推奨事項に従います)。
データをパーティション分割したいのですが、以前に作業した他のプロジェクトでは、常に1パーティション-1ファイルグループルールに従いました。 Microsoftのファストトラックの推奨事項では、ファイルグループを作成してから、そのファイルグループに対して各lunごとにデータファイルを作成することをお勧めします...しかし、1週間レベルのパーティション分割を行うふりをします...そのルールを適用すると、取得するファイルが多すぎて、レイアウトが複雑になります。
(48個のlunデータファイルを含む)ファイルグループを1つだけ作成することを考えていますが、パーティションの切り替えなどのパーティションの利点を維持したいので、パーティションを作成します...このシナリオはお勧めしませんか?あなたは何を提案しますか?
これに答えるには、StorageGeekに飛び込む必要があります。あらかじめお詫び申し上げます。
Microsoftが48の個別のパーティションを提案しているように見える理由は、1つの理由です。I/ OのOS内並列化を最大化するためです。 48個のLUNを使用することにより、OSは48個の個別のI/Oキューを保持する必要があり、理論的にはこれらのキューを並列に処理できます。 1つのLUNが特に遅い場合(大量のランダム書き込みを実行している場合)、他のLUNへのアクセスを保持しません。
最新のハードウェアでは、これは多くのストレージの問題に対するわずかな割合の増加です。データウェアハウスを絶対的な上限に押し上げることがわかっていない限り、それだけの価値はありません。最新のRAIDカードは、これを処理できるほど高速です。 4つのLUNがあると、利益が得られる可能性があります。 48は実際に傷つくかもしれません。
最近のストレージは、一般に1秒あたりのI/O操作(I/O操作)のパフォーマンスメトリックによって特徴付けられます。各ドライブには、ランダムI/Oの独自の上限があります(RPMやその他のいくつかの事項に応じて、ドライブあたり90〜180の範囲)。 RAID10セットのようにドライブをギャングする場合、このI/O Opsカウントはadditiveです。 12ディスクのRAID10セットは、6つのRaid1ペアと同じI/O Ops容量を持ち、6つの個別のDBファイルを作成する必要はありません。単一の大きなRAID10セットを作成することにより、大量の負荷を処理できる単一の大きなDBファイルを作成できます。
2番目の段落で他のLUNへのアクセスを保持していない遅いLUNについて述べたことに戻ると、これがLUNのI/OOpsを最大化することが理にかなっている理由です。十分なI/Oがあれば、ブロックする可能性ははるかに低くなりますOpオーバーヘッド。大きなRAID10アレイを作成することにより、並列化はオペレーティングシステムではなくRAIDカードにプッシュされます。 OSは他のことを自由に実行できます。並列化の利点は引き続き得られ、専用のハードウェアを活用できます。
データベースサーバーの場合、データファイルとログファイルのI/Oを異なるスピンドルに保持することをお勧めします。その正確な割合SQL Serverの専門家に任せます(私は1人ではありません)、おそらく正確な構成と使用パターンに基づいています。データウェアハウスであるため、バルクロードを処理するには大量のログスペースが必要になります。ログI/Oは非常にシーケンシャルであり、データI/Oは非常にランダムであるため、最大のログパフォーマンスは、データファイルとは異なるスピンドルにログを配置することで最もよくわかります。
あなたの場合、2つのLUNで逃げることができるかもしれません。データファイル用の大きなRAID10セットと、ログファイル用の小さなRAID10セット。