Azure上でSQLserverの可用性を高めるには

    SQLServer利用時のSANLess-Clustersの利点

    エンタープライズ向けデータベースとして広く普及しているSQL Serverには、高可用性を確保するために「SQL Server AlwaysOn」という機能が用意されています。これには「AlwaysOn FCI」と「AlwaysOn 可用性グループ」の2種類がありますが、SQL Server Enterprise Editionしか対応していなかったり、共有ストレージが必要であったりと悩ましい仕様となっています。これらの問題を一挙に解決するのが「SANLess Clusters」で、Microsoft Azure環境にも適用できます。ここではこれらの詳細と Microsoft Azure環境におけるSQL Server 2014のパフォーマンス比較の結果をご紹介します。

    SQL Server AlwaysOnのウィークポイント

     Windows Serverとの親和性が高く、管理のしやすさや使い勝手の良さから、本格的なエンタープライズ向けデータベースとして広く普及しているSQL Server。でも、ミッションクリティカルな業務で使用するには、高可用性を確保する必要があります。そのためのソリューションとして、SQL Server 2012以降では「SQL Server AlwaysOn」という機能が提供されています。

    「SQL Server AlwaysOn」では、HAクラスタリングを構成する2つの方法が用意されています。ひとつは、共有ストレージ上にデータベースを配置する「AlwaysOn Failover Cluster Instance(AlwaysOn FCI)」。もうひとつは、共有ストレージを必要とせずに本番系(アクティブ)と待機系(スタンバイ)のサーバー間でデータベースのミラーリングを行う「AlwaysOn Availability Group(AlwaysOn 可用性グループ)」です。

     ただし、AlwaysOn 可用性グループがサポートしているのがSQL ServerのEnterprise Editionのみであること 、またAlwaysOn FCIはSQL ServerのStandard Editionでも使用できますが、2ノードに限られることは注意すべき点です。このような最小構成のHAクラスタに高価な共有ストレージを導入することは投資効率が悪く、なにより共有ストレージ自体がSPOF(Single Point of Failure:単一障害点)となってしまう恐れがあります。

     そこで、ライセンスコストの廉価なSQL Server Standard Editionを使って、AlwaysOn 可用性グループと同等のHAクラスタ構成を実現できるのが、サイオステクノロジーの「DataKeeper for Windows Cluster Edition (DKCE)」を活用した当社ソリューション「SANLess Clusters」です。共有ストレージを必要としないため、共有ストレージ自体がSPOFとなってしまうリスクを回避でき、SQL Server Standard Editionを使用できるのでコストを抑えることができます。

    SQLServer利用時のSANLess-Clustersの利点

    「いいとこ取り」のSANLess Clusters

     一方で、最近はクラウド利用が増え、Microsoft Azure上にデータベースを構築するケースも増えてきました。しかし、Microsoft Azure環境では共有ストレージを持てない仕様となっているため、共有ストレージが必須となるAlwaysOn FCIを適用することは困難です。AlwaysOn 可用性グループであればMicrosoft Azure環境に適用できますが、前述のようにSQL Server Enterprise Editionしか使用できません。

     SANLess Clustersを使うことで、こうした問題も解決できます。AlwaysOn FCIとDataKeeper for Windows Cluster EditionによるSANLess Clustersなら、共有ストレージを必要としないためMicrosoft Azure環境に適用でき、しかもSQL Server Standard Editionで構築できます。

     Microsoft Azure環境向けに、あまりにも「いいとこ取り」であるため、特にパフォーマスに関して不安があるという方も多いでしょう。そこで、サイオステクノロジーの技術部が検証を行いましたので、その結果をお知らせします。

    パターン1:  AlwaysOn FCI & SANLess Clusters
    パターン2:  AlwaysOn AG

    ベンチマークソフト:HammerDB

    Azure環境(AG、FCI共通)

    SQLサーバー用インスタンス: Standard DS3(4コア、14GBメモリ)
    クライアント、DC用インスタンス: Standard DS1(1コア、3.5GBメモリ)
    データベース用ディスク: Premium Storage(1TB)
    OS(サーバー、クライアント): Windows2012 R2
    SQL Server: SQL Server 2014 SP2

    SQLServer利用時のSANLess-Clustersの利点


    TPM(Transactions Per Minute):1分間あたりの検索更新両方のトランザクション数
    NOPM:Number of Orders Per Minute:1分間あたりの更新処理のトランザクション数

    検証の結果、パターン1(AlwaysOn FCI & SANLess Clusters)の構成はパターン2 (AlwaysOn AG)の構成に比べて約2.5倍のパフォーマンスを計測しました。オンプレミスにおけるSANLess Clusters構成の優位性が、Microsoft Azure上でも有効であることが立証された結果となっています。Microsoft Azure上でも高可用性を実現するなら、最適な選択といえるでしょう。

     
     

     

    Azure関連ソリューション:

    Azure環境の対応構成や導入事例、検証レポートや構築ガイド等はからこちらからご参照ください。