フェールオーバー クラスターインスタンスの改良
AlwaysOnと聞くとSQL Server 2012の新しい機能である可用性グループをイメージされる方が多いかと思いますが、AlwaysOnは高可用性やディザスタリカバリのソリューションを表しています。そのため、これまで提供されてきたSQL Serverフェールオーバークラスターの機能もAlwaysOnの1つのソリューションです。SQL Server 2012では様々な改良も行われ、AlwaysOnフェールオーバークラスターインスタンスと呼ばれるようになりました。そしてSQL Server 2012 AlwaysOnフェールオーバークラスターインスタンスでおこなわれた改良は次のとおりです。
- 柔軟なフェールオーバー ポリシーと新しいSQL Serverの正常性チェック
- SMBファイル共有のサポート
- マルチサブネット クラスタリングのサポート
- tempdb のローカル ストレージへの配置
今回はこれらの改良点についてご紹介したいと思います。
柔軟なフェールオーバー ポリシーと新しい SQL Server の正常性のチェック
SQL Server 2012のAlwaysOnフェールオーバークラスターインスタンス(以下AlwaysOn FCI)もこれまでと同様にWindowsのフェールオーバークラスター(以下WSFC)が必要です。WSFCにインストールされたSQL ServerのサービスはWSFCによって正常に稼働しているかどうか定期的なチェックが行われます。簡単なチェックを行うLooksAliveとより厳密なチェックを行うIsAliveと呼ばれるものです。LooksAliveとIsAliveの実際の処理はSQL Serverが提供するリソースDLLに実装されており、SQL Serverフェールオーバークラスターをインストールしたときにインストールされます。
SQL Server 2008 R2までは、LooksAliveがサービスコントロールマネージャ(以下SCM)を使用して、SQL Serverサービスの状態のチェック、IsAliveはSQL Serverに対して“SELECT @@servername”を実行した結果を使用したチェックを行っています。これらのチェックは、既定ではそれぞれLooksAliveが5秒間隔、IsAlvieが60秒間隔で実行されます。これらのチェックが失敗した場合、再起動またはフェールオーバーが行われます。
次の図はSQL Server 2008 R2までの正常性のチェックを図にしたものです。