トランザクションログ(*.ldf
)をデータベースファイル(*.mdf
、*.ndf
)とは別の物理ディスクシステムに配置するのが一般的です。
仮想マシンクラウド環境で、トランザクションログを他のデータファイルと同じドライブ文字に配置しても問題ありませんか?これは、今日の一般的なクラウド仮想マシン環境で通常どのように処理されますか。
注:SQL Azureは使用しません。フルアクセスが可能なWindows仮想マシンを使用する。
トランザクションログ(*.ldf
)をデータベースファイル(*.mdf
、*.ndf
)とは別の物理ディスクシステムに配置するのが一般的です。
仮想マシンクラウド環境で、トランザクションログを他のデータファイルと同じドライブ文字に配置しても問題ありませんか?これは、今日の一般的なクラウド仮想マシン環境で通常どのように処理されますか。
注:SQL Azureは使用しません。フルアクセスが可能なWindows仮想マシンを使用する。
回答:
クラウドサーバー(具体的には、ラックスペースクラウド)でのクラウドSQLの広範なテストで、ldfとmdfを個別のブロックストレージボリュームに分割すると、パフォーマンスが大幅に向上することがわかりました。ldfをSSDベースのブロックストレージボリュームに配置し、mdfを標準のブロックストレージボリュームに配置することで、本当にホットなパフォーマンスを実現しました。
もちろん、最終的には、ブロックストレージボリュームはどこかで共有されるSANです。また、ローカルの「インスタンス」ストレージはハイパーバイザー自体にあります。したがって、クラウド環境のハードウェアトポロジによって、どの構成が最適に機能するかが決まります。
使用しているクラウド環境によって異なりますが、通常は同じ論理ドライブに配置するのが理にかなっています。追加のIOPSが必要な場合は、複数のボリュームにまたがってストライプ化できますが、それでも単一のドライブを提供できます。
クラウド環境では、割り当てられたストレージの唯一のコンシューマーではありません。あなたは非常に大きなパイの小さなスライスを取得し、そのためすべてのIOは本質的にランダムです。シーケンシャルアクセス(ログ)をランダム(データ)から分離しようとしても、何も得られません。
2つのボリュームが異なるアレイから割り当てられることを主張できないため、リカバリアングルから何も得られません。また、大企業からストレージを利用できるようにするために、異なるクラスの保護が提供される傾向があります。たとえば、Azureストレージはデータセンター内で3倍に複製され、追加のコピーがデフォルトでフェイルオーバーデータセンターに複製されます。