15

ウェブサイト用の SQL 2005 データベース バックエンドがあり、現在のサイズは約 10GB です。正確な統計はありませんが、書き込みよりも読み取りの方がはるかに多いです。

データベース サーバーをアップグレードしていて、4 つのディスクを取得して、2 つの RAID 1 アレイにセットアップすることを考えていました。1 つはデータ ファイル用、もう 1 つは OS とログ ファイル用です。これは最適な設定ですか、それともデータ ファイルには RAID 5 の方が適していますか? RAID 10 は少し高価になり、おそらく私たちにとってはやり過ぎです。

この段階では、SQL Server はデータベースの大部分を RAM (8 GB) に保持する必要がありますが、それは大きくなるため、完全に依存したくはありません。

編集: 運用サーバーには冗長性が絶対に必要なので、RAID 0 自体は使用できません。RAID 10 は便利ですが、私たちにとっては少し高価かもしれません。

4

10 に答える 10

17

独立した RAID 1 ミラーを使用するというあなたのコンセプトは正しい戦略です。

私の職場でも同様のシナリオを実装しており、非常にうまく機能しています。

レイド1

RAID 1 では、書き込み用に 1 ディスク、読み取り用に 2 ディスクの速度が得られます。

RAID 1 アレイにデータを書き込む場合、そのデータを両方のディスクに書き込む必要があるため、パフォーマンスが向上することはありませんが、これによりデータ セキュリティが得られます。

RAID 1 アレイから読み取る場合、コントローラーは両方のディスクに同じデータがあるため、両方のディスクから読み取ります。

レイド5

これは、大量のデータを保護する場合に役立ちます。RAID 5 のコストは、同じ量のデータに対して RAID 1 (または個々のディスクのサイズを超える容量を実行している場合は RAID 0+1) よりもはるかにゆっくりと増加します。

RAID 5 で 600 GB を保護したい場合は、200 GB ドライブ x 4 または 300 GB ドライブ x 3 で実現でき、購入したドライブ容量の合計が 800 ~ 900 GB 必要になります。RAID 1 は 2x600gb ドライブで 1,200gb の購入スペースを必要とし (600gb ドライブはかなり高価です)、または RAID 0+1 では安価な容量のドライブ (つまり、4x300gb または 6x200gb) を使用できますが、それでも合計 1,200gb の容量が必要です。購入したスペース。

RAID0+1

RAID 1 と同様の利点があり、ディスク全体のストライピングでもう 1 段階向上します。より高い同時読み取りを懸念している場合は、マルチプロセッサ/マルチコアも使用していると思います。一度に複数のクエリを処理することになるため、ストライピングはあまり役に立ちません。ビデオ編集など、大きなデータ ファイルを使用する単一のアプリケーションでは、RAID 0+1 の方が有利です。

少し前に顧客のためにこの同じ問題を調査していたとき、この記事が非常に興味深いことがわかりましたhttp://blogs.zdnet.com/Ou/?p=484。2 ページ目で、彼は RAID 0+1 から独立した RAID 1 アレイへの変更について説明し、パフォーマンスを大幅に向上させました。これははるかに大規模 (20 台のディスクと 16 台のディスクの SAN) でしたが、コンセプトは同じでした。RAID 0+1 の基本的な非通知ストライピングを使用する代わりに、複数のボリューム間でデータの負荷を分散する SQL Server の機能は、優れたコンセプトです。

于 2008-10-03T02:32:49.087 に答える
3

データベースが効率的にインデックス化されていることを確認するために、少し時間を費やしたいと思います。フル テーブル スキャンを監視し、最も頻繁に実行されるクエリで読み取られるデータができるだけ少なくなるようにします。SSD 上の不適切なインデックスを持つデータベースではなく、低速のディスク セットアップで効率的に設計されたデータベースを使用します。

于 2008-10-03T23:57:48.923 に答える
1

2つのこと、

理論では、RAID 1は読み取り用に2つのドライブを提供しますが、それがパフォーマンスの2倍に等しいとは思わないでください。実際のところ、そうではありません。通常、シーケンシャル読み取り速度は1つのドライブとまったく同じになります。驚くべきことですが、本当です....実際のテストを行い、理論に頼らないでください。

そうは言っても、私は2つのRAID 1を使用します...しかし、あなたが言ったように、1つはOS用で、もう1つはデータ用です。そのうちの1つに小さなOSパーティションがいくつかありますが、データのSQLサーバーに両方のレイドを確実に与えます。SQLServerに可能なすべてのセットを提供します。

SQL Serverはペア間でストライプ化できます。ここで誰かが言っていることにもかかわらず、0+1を使用することは絶対に避けてください。彼らは再び理論的なベンチマークを検討していますが、SQLサーバーがすべてのデータをディスク全体にストライプ化できることを理解しておらず、最適化された方法でそれを実行できます。

RAID 1は、データの冗長性のためだけのものです...それ以外は、SQLサーバーにできる限り多くのことを与え、それを実行させます...それは非常に優れています。

あなたは0+1を持っていて、それを2つのRAIDに分割します1 ....実際のテストを行うと、SQLサーバーの作業がどちらが速いかに驚くでしょう。

于 2009-03-25T05:45:26.830 に答える
1

書き込みよりも読み取りの方がはるかに多いことを考えると、RAID 5 はデータ ファイルに対してより高速になります。

可能であれば、トランザクション ログ ファイル用に別の RAID 1+0 アレイを使用してください。

編集: RAID 5 アレイを作成するには、少なくとも 3 つのディスクが必要です。

于 2008-10-03T02:05:37.450 に答える
1

重要なパフォーマンス メトリックは、データ レートではなく、シーク レートになることに注意してください。つまり、ディスクにバインドされた典型的なデータベース (あなたのデータベースが成長するにつれてそうなるかもしれません) は、シーケンシャル読み取りでサポートできる最大データ速度ではなく、ディスクがサポートできる 1 秒あたりの IO 数によって制限されます。

これは、4 つのディスクを使用する方法を知りたい場合 (たとえば)、2 つの RAID1 ペアが 1 つの 4 ディスク RAID5 アレイよりも優れたパフォーマンスを提供することを意味します。もちろん、2 つの RAID1 ペアから得られる使用可能なストレージはそれほど多くありません。

于 2008-10-03T02:14:39.397 に答える
1

データベースのサイズが小さいため、15krpm 2.5 インチ SFF SAS ディスクを 4 つ使用し、2 つの別個の RAID 1 ミラーとしてセットアップします。データを 1 つのアレイに、ログを安全のために別のアレイに配置. データベース全体のバー メモリ マッピング、非常に大規模/高価な SAN、または SSD の使用 私は、これが費用対効果が最も速いセットアップであると確信しています.

お役に立てれば。

于 2008-10-03T23:37:17.687 に答える
0

また、一連のベースライン値を確立することをお勧めします。これにより、指を空中に置くだけでなく、より根拠のある予測を行うことができます (または StackOverflow に尋ねると、これら 2 つの概念が漠然と奇妙に似ているように見えます)。

いくつかのベースライン値を使用して、変更の効果を測定し、将来のアップグレードの優れた基盤にすることもできます...

(不明な場合は、パフォーマンス エンジニアリングに関する文献 (またはウィキペディア) を参照してください。これは、この種の問題だけを扱うものです)。

于 2008-10-06T11:44:42.350 に答える
0

私は、dell r210-II Linux サーバーで既に構成した RAID 10 を好みます。素晴らしいパフォーマンス...

于 2011-09-30T15:49:01.887 に答える
0

ところで、私が働いているところには、約2分でテーブルスキャンを行うハイエンドのsanがいます。ドライブを単純な RAID 1 セットに分割し、SQL Server にストライピングを処理させました... san ではありません。2 分が 45 秒に短縮されました。

これについてはネット上に他の記事があります...レイドの「真の信者」にこれを受け入れてもらうのは非常に難しいので、私はこの点について非常に強調しています。

于 2009-03-25T05:48:57.773 に答える
0

RAID 5 は、適切な量のバッテリ バックアップ付きキャッシュ RAM を備えたハードウェア コントローラを使用する場合に適しています。チャンク サイズを選択し、ストライプ サイズ (データ ディスク * チャンク サイズ) が DB 書き込みサイズと等しくなるように DB を構成します。データ パーティションが [整列されている / ストライプ サイズの倍数である] ことを確認してください。

それ以外の場合は、RAID 1+0 が常に DB サーバーに適しています。

于 2008-10-03T02:20:13.047 に答える