潜在的な顧客が私たちのストレージシステムを評価したいと考えています。彼らは、送ってくれた仮想テストマシン上で、Windows 2008R2 x64と4KB NTFSを実行しています。彼らは手元にこれを知らなかったようでした、それで私は環境が微調整されなかったと仮定することは合理的だと思います。テストは、挿入、インデックス作成、検索、削除です。ツールは私にはわかりません。
Windows NTFSのブロックサイズが4KBで、SQLが64KBのチャンクで書き込む場合、SANで64kのブロックサイズが適切であると想定しても安全ですか?
彼らは、おそらく標準的なSQL Server 2008を実行しています。
Brent Ozarの記事の引用 SQL Server Virtualization Q&A :
質問:「仮想化とSANについて... SQL Server 2008でブロックサイズを設定するための推奨事項はありますか?」
NTFSアロケーションユニットサイズ、RAIDストライプサイズ、パーティションオフセットなど、関連する設定がいくつかあります。 SANベンダーのドキュメントで、何が適切かを確認してください。ほとんどの場合、OLTPデータベースでは、64K NTFSアロケーションユニットサイズで適切な状態になっていますRAIDストライプサイズ、および1MBのパーティションオフセット。
したがって、はい、デフォルトでは64kのブロックサイズで安全ですが、ストレージのドキュメントも参照してください。おそらく、データベースサーバーに適した他のユニットが指定されています。
同じブログのすばらしい情報 SQL ServerのSANストレージのベストプラクティス 。
はい。SQLServerはその操作の大部分を64kチャンクで実行するため、アレイとディスクに64kブロックが必要です。これよりも小さい読み取りと大きい読み取り(先読みなど)がありますが、操作の大部分は64kのサイズになります。
サーバーがWindows 2008サーバー(またはそれ以降)であり、LUNがサーバーにとって新しいものであると仮定すると、パーティションは、作成時に自動的に正しく調整されます(diskpartを使用して手動でねじ込まない限り)。