web-dev-qa-db-ja.com

SQL Server + OS用に6ディスクRAIDを構成するための最良の方法は何ですか?

次のハードウェアを使用して、Win2k8でSQLServerをセットアップしています。

  1. 6 x WD RE3 500G SATA
  2. PERC H700

ログファイルとOSを独自のRAID1に配置し、残りのデータをRAID10に配置することが、8つのディスクに最適な構成であるという提案をいくつか読んだことがあります。しかし、私は2つのディスクが不足していて、どちらの構成が同じくらい良いのか疑問に思っています。

オプション1) OSおよびログ用に2x RAID1、データ用に4 x RAID10

オプション2) OS、ログ、およびデータ用の6 x RAID10

P.S. RAID10でディスクをパーティション分割しても違いはありますか?

6
BlueFox

ここでの一般的なポイントは、異なる物理ディスク(またはRAIDボリューム)に2セットのファイルがあると、両方のセットに同時にアクセスした場合に処理がはるかに高速になるということです。これがO.S.通常は独自のボリュームを取得します(それ自体でかなりのI/Oを実行し、itで大規模な作業を行うときに速度が低下することは望ましくありませんデータ)、そしてそれはあなたが通常それらの使用パターンに基づいてあなたのデータを分割したい理由でもあります。

とはいえ、SQL Serverのさらに重要な点は、トランザクションログは通常、データファイルと同時にアクセスされるため、2つを分離することをお勧めしますが、必要な場合は少なくとも1つが必要になることです。ハードウェア障害が発生した場合に本当に物事を回復できるようにしたい。トランザクションログを失った場合は、別のセットを作成するだけで済みますが、実際のデータは安全です...データを失った場合、トランザクションログを使用すると、最後のバックアップから障害が発生するまで回復できます。データとログの両方を同時に失った場合、復元できるのは最後のバックアップのみで、それ以上は復元できません。

シナリオでの最良の選択は、3つのRAID 1ボリュームを作成することです。1つはOS用、1つはデータベースファイル用、もう1つはトランザクションログ用です。これはスペースの大きな浪費のように見えることを私は知っています(OSは500 GBを使用する場所がないため、適切なバックアップ計画に従うとトランザクションログが記録されます)が、大いに役立ちますパフォーマンスと回復可能性に関しては。また、500 GBを超える実際のデータが必要ない場合は、非常に役立ちます。

それができない場合は、OSにRAID1ボリュームを使用してください。ログとデータ用の1つのRAID10ボリューム。これは、お持ちのハードウェアでできる最善の方法です。ただし、何をするにしても、データとログを同じ場所に配置するべきではありません。

複数のパーティションについて:それはまったく役に立たず、事態をさらに悪化させる可能性があります。同じディスク(またはRAID)内の3つのパーティションは、単一のパーティションとまったく同じように(=ひどく)、またはディスクジオメトリの問題のためにさらに悪いパフォーマンスを示します。ハードウェア障害が発生した場合、とにかくそれらすべてを失うことになるので、それは回復に役立ちません。

ああ、そしてあなた自身のために、書き込みをまったく気にしないのであれば、RAID 5を使用することさえ考えてはいけませんパフォーマンス。

5
Massimo

RAID 1ログディスクに2つのディスクを追加できない場合は、オプション1を個人的に使用します。

RAID 10のパーティショニングにより、速度と冗長性のためにミラーとストライピングが提供されます。

この質問は StackOverflow でも質問され回答されました。おそらくそれはあなたが探している答えを持っているでしょう。

5
user2626

この状況では8つのディスクの方が適していることは間違いありませんが、考慮すべき最も重要なことは、データとは異なるディスクにログを記録することです。あなたが本当に6つだけで立ち往生していて、4つのディスクのデータスペースが必要な場合、私はログをOSR1ペアの2番目のパーティションに置きたくなるでしょう。ロギングとOS作業の両方でヘッドを大きく動かす必要があるため、これは理想的ではありませんが、十分なメモリがある場合、OS作業はかなり低くなるはずです。多くのディスク容量を必要としない場合は、2 + 2 + 2セットアップはどうですか?

2
Chopper3

個人的には、OSの操作をログの操作から、データベースの操作から分離する必要があると思います。それぞれに独自の非相補的なディスクI\Oパターンがあるからです。非常に小さな実装を除いて、データベースとログを同じアレイに保持しないでください。 RAID10は、データベース\アプリケーションがディスクI\Oを非常に集中的に使用しない限り、データベースにとって少しやり過ぎです。私は提案するかもしれません:

RAID1 = OS RAID1 =ログRAID1 =データベース

1
joeqwerty

私の一般的なセットアップのほとんどでは、OS用のRAID1を使用する傾向があります。一時的で本質的でないもののためのRAID0。およびデータ用のさまざまなRAID。

クライアントが最大のディスク容量を必要とする場合、その最後のセットは1 xRAID5になります。パフォーマンスに関心がある場合、後者は1 xRAID10になります。そして、彼らが冗長性にもっと関心があるなら、私は2 xRAID1に行きます。

多くの場合、データボリューム用の2番目のコントローラーがあります。データベースの使用プロファイルに応じて、読み取りと書き込みの優先度を変更する場合があります(コントローラー1のOS、温度、ログを25%の読み取り:75%の書き込み、コントローラー2のデータを75%で優先する傾向があります)読み取り:25%書き込み-これが私たちが販売するアプリの性質です)

あなたの場合、PERCがそれを実行できると仮定すると(私はHP SmartArrayを好む傾向があります)、おそらく次のようになります。

  1. 2つのディスクでアレイAを作成します
  2. 2つのディスクでアレイBを作成します
  3. 2つのディスクでアレイCを作成します
  4. アレイAにボリュームA1を合計サイズの約20〜25%のRAID1として作成します
  5. アレイAにボリュームA2をRAID0として作成し、残りを
  6. アレイBにボリュームB1をRAID1として作成し、使用可能なすべてのスペースを確保します
  7. アレイCにボリュームC1をRAID1として作成し、使用可能なすべてのスペースを確保します

それはあなたに(約)を与えるはずです:

  • C:\ RAID1-OS-90GB(OS、SQL Server、および適切なページファイルには十分なはずです)
  • D:\ RAID0-TEMP-790GB(バックアップステージング、一時エクスポートなどに最適)
  • E:\ RAID1-DATA-480GB(MDFファイル)
  • F:\ RAID1-LOGS-480GB(LDFファイル)

しかし、私の意見では、パフォーマンスの懸念はおそらくSATAディスクにあるでしょう。安定するのに十分な距離でそれらを実行することができたことがないので、常に少なくとも10K SASドライブを選択します。最後に使用してから、はるかに優れている可能性があります。 、マイレージが異なる場合があります...

0
jimbobmcgee