web-dev-qa-db-ja.com

SAN上のSQL Server、同じLUN:1つの論理ドライブと複数の論理ドライブ

まず、これに似た質問が複数あることに気づきましたが、どちらも私が聞きたいものではなく、明確な答えを持っているものもありません。

次に、理解していることを確認します。SAN/仮想化環境でも、ログ/データには異なるLUN /スピンドルを使用することをお勧めします。

さて、質問:

SQL Server仮想マシンに割り当てられている単一のLUNが1つしかない場合、次の構成の間にパフォーマンス(管理、セキュリティなどの違いはありません)の違いがあります。

  1. One仮想ディスクファイル(vhd、vmdkなど)one仮想コントローラone仮想OSの論理パーティション、およびtempdb/data/logそのパーティションで
  2. One仮想ディスクファイルone仮想コントローラーがmultiple tempdb/data/logの論理パーティション/ドライブ文字
  3. 複数仮想ディスクファイル1つ個別仮想コントローラ個別 tempdb/data/logのパーティション

これまでのところ、私は次の答えを聞いています:

  1. noまたはnegligibleパフォーマンスの違いがあります。最終的には、同じIOキャパシティを備えた、まだ同じスピンドルです。
  2. そこにはissomeシナリオのパフォーマンスの違いがあります。これは、仮想コントローラーが個別の(仮想)IOキューとguest OS

重要な場合は、ワークロードが非常に小さなリクエスト(非常に小さなキュー)を持つ非常に多数のスレッドであると仮定しましょう。

私はこれを一度に解決したいので、1つのLUNでのパフォーマンスのトピックに留まり、レイアウトを最適化するための提案を控えたいと思います。

6
mrQQ

あなたの質問では、「SQL Server VMに割り当てられた1つのLUN」と言います。必要なのは、SQL Serverの複数のVMDKを格納できるホストVMwareマシンに割り当てられた1つのLUNです。これにより、VMがより多くのスレッドを使用してディスクにアクセスできるようになります。

VMwareから最高のキュー深度を得るには、できるだけ多くの個別の仮想コントローラーとドライブを使用する必要があります。可能であれば、準仮想化コントローラーを使用してください。 VMwareの このブログ を参照してください。

Tempdbを2つのコントローラーに配置します(4つのファイルを使用し、2つのコントローラー/ LUNに分散します)。

コントローラにデータを配置し、コントローラにtempdbを配置します。

仮想コントローラーには独自のキューがあります(ハードウェアと同様)。通常、最大32です。32はそれほど多くないので、コントローラーを増やすと、実際のキューの深さが大きくなります。

明らかに、パフォーマンスを追求している場合は、CPUやメモリの予約など、他にも多くの設定があります。

ここでは標準の警告が適用されます。システムに最適なソリューションとしてテストしたことを実行します。実際の負荷、I/O要件などがわからないため、everyに従うための厳格なルールを提供するのは非常に困難ですインストール。


I/Oパフォーマンスのプッシュに関するVMwareホワイトペーパーは here (警告、PDF)です。

5
Max Vernon