web-dev-qa-db-ja.com

SAN全体で異なるボリューム(同じRAIDアレイ)上のデータベースログとデータを分離することには、パフォーマンス上の利点がありますか?

古いサーバーでは、パフォーマンスを向上させるために、それらを異なるRAIDアレイに分離しました。 SANを使用するのは初めてなので、最適な構成がわかりません。

SAN:48ドライブ。 10K 600GBSAS。 RAID50。4Gbps接続。

更新された情報:

48台のドライブはすべて同じRAIDアレイの一部です。データとログを異なるボリュームに配置することにメリットがあるかどうかを知りたいのですが。 SANを分割すると、状況に応じて、いくつかのメリットが得られる可能性があることを知っています。SANを販売したデルの担当者は、最高のパフォーマンスを示しました48個のディスクすべてを1つのアレイに保持し、個別のボリューム( "LUNS"?)を使用することで取得できます。質問が明確でない場合は申し訳ありません。

4
Keith Walton

同じRAID上にある場合でも、ログファイルを別のボリュームに配置すると、データとログを同じボリュームに配置するよりもパフォーマンスが向上するはずです。ほとんどのストレージシステムでは、各ボリュームは一度に1つのパスを介してのみアクセスできます。これは、ログとデータが同じコントローラーポート、コントローラーキャッシュ、キューの深さ、およびFCスイッチリソースを共有することを意味します。これらのいずれかがボトルネックになる可能性があり、ログをできるだけ共有しない別のボリュームに配置すると、パフォーマンスが向上する可能性があります。

とはいえ、アレイ内のすべてのスピンドルを同時に使用する新しい「ワイドストライピング」マシンを使用していないと仮定すると、ログとデータを別々のディスクに保存することには、パフォーマンスと信頼性の両方の理由があります。データベースへの書き込みを行うたびにログに記録され、各ログは(実際の変更に加えて)書き込みを行います。

  • ログとデータの両方をホストするレイド全体を失うと(まれですが発生します)、ログが複製されない限り、実際のデータが失われるリスクがあります。ログ配布は、すべてのデータベースで常にサポートされているわけではありません。
  • 通常の操作中に、ログとデータが同じsmallスピンドルのセットに存在する場合、ディスクレベルのパフォーマンスのボトルネックで実際のデータベースの生成を制限するリスクがあります。

RAID 50を使用しています。これは通常、8または16を超えるディスクにデータをストライピングしていることを示しています。この場合、ディスクタイプごとに少なくとも2つのRAID-50を設定することも一般的に当てはまります(そのうちの1つがあります)。あなたの状況に最適な解決策は、あなたが持っている最速の(つまり最大の)レイドにデータを置き、もう一方のレイドにログを置くことです。

9
Basil

リンク爆弾について申し訳ありません

http://www.brentozar.com/sql/sql-server-san-best-practices/

1
tony roth

一般的に、要求の厳しいデータベースの書き込みレイテンシを最小限に抑えるには、ログとデータを異なるRAIDグループの異なるボリュームに分割する必要があるため、RAIDグループの期間中はログとデータの間にリソースの競合が発生しません。

ドライブはすでにRAIDグループに構成されているように思われるので、さまざまなグループやシェルフからさまざまなボリュームをプロビジョニングすることを検討することをお勧めします。

1
Shane Madden

それは本当にブランドに依存します。 Compellent SANは、sanの読み取りと書き込みを自動最適化するように構成できます。特定のアプリケーション専用のスピンドルを開始すると、HP EVAsansは実際に全体的なパフォーマンスに影響を与えます。特定のワールドワイド名にキャッシュを割り当てることができますか? SQLがonasanであるかローカルストレージであるかにかかわらず、同じルールが適用されるため、サーバーでの最適化IOに精通している場合は、所有しているsanの機能について学習するだけです。それらを最大限に活用する方法を見てください。

0
Jim B