Pages

Dec 3, 2004

SQL Server + 特定キャッシュ コントローラ + 高負荷 = 整合性エラー

sanonosa システム管理コラム集というブログに遭遇しました。大規模サイトでの様々な運用ノウハウが掲載されてます。
こういったノウハウは「師匠から弟子への一子相伝」もしくは「ベンダーのコンサルを頼む」しか手に入れるすべが無かったと思うんですが。
それをブログに書いちゃいますか?太っ腹。とりあえず週末ゆっくり読もうと思いました。
そして今後の更新を非常に楽しみにしとります。
そのブログの中の記事のひとつ【ストレージ】パフォーマンスを上げるキャッシュ容量の考え方を読んでいてディスクのキャッシュで思い出したことを一点。
SQL Server + 特定キャッシュ コントローラ + 高負荷
以上3つの条件がそろった環境下でデータの整合性エラーが発生する可能性があります。
詳細は[PRB] 報告されない入出力の問題を検出するために追加された新しい SQL Server 診断機能を参照ください。
問題は特定のキャッシュコントローラがどこの会社のどの機種か?というお話なんですが、うちで使っていたhp MSAシリーズなどはばっちりこの現象に当てはまりました。他にもメジャーな機種がこの影響を受けるという話を聞きました。

ちなみにMSAがこの問題を受けるという情報のソースはこちら↓
ftp://ftp.compaq.com/pub/products/storageworks/techdoc/msa1000/MSA10004.32_ReleaseNotes.pdf
整合性のエラーがちょくちょく出て、そのたびに『DBCC CHECKDB(hogehoge,REPAIR_FAST)』したり『インデックス作り直している』というDBAの方は一度RAIDコントローラのベンダーに確認したほうが良いかも。
不運にもお使いのキャッシュコントローラが影響を受けるものだった場合、対策は
1、キャッシュコントローラのファームをバージョンアップする
2、キャッシュを切ってライトスルーで使う
のどちらかになります。
余談:
私がSQL Server触りだしたのはここ1・2年のこと。それ以前からDBを触っていたベテラン管理者の中には「SQL Serverを使うマシンではライトキャッシュはトラブルの元。オフにしろ」と言う方もいらっしゃいます。
[SQL]INF: SQL Server とディスク コントローラのキャッシュ等を見る限り、MSもキャッシュ自体の使用には肯定的な姿勢ですので問題ないと思うのですが・・・。
実際にキャッシュが原因でDBを数時間オフラインにするメンテをしなくてはならなくなると、心情的にキャッシュを切ってライトスルーで使いたくなります。パフォーマンスの低下が激しそうですが。。。