高可用性クラスターに新たな選択肢。Azure 共有ディスクのサポートを強化

    ※この記事は翻訳されたものです。本記事の原文はこちら

    マイクロソフトは、2022年第1四半期にAzure 共有ディスクをリリースしました。Azure 共有ディスクは、マネージドディスクを複数のホストにアタッチできるようにするものです。これは事実上、AzureがSANストレージと同等の機能を持つようになったことを意味し、高可用性クラスター構成も、クラウド上で共有ディスクを利用できるようになります。

    Azure 共有ディスクを使用するメリット

    弊社HAクラスター製品「Lifekeeper」のクラスター階層でAzure 共有ディスクを使用する主なメリットは、ノード間の通信が途絶え、複数のノードで同時にデータが変更されてしまう可能性がある、いわゆるスプリットブレインを防ぐために、ストレージQuorumやWitnessノードを用意する必要がなくなることです。ノード数が少ないことは、コストと複雑性の低減につながります。

    SIOSは、LifeKeeper for Linux製品用のApplication Recovery Kitを発表しました。これはLifeKeeper SCSI-3 Persistent Reservations (SCSI3) Recovery Kitと呼ばれ、Azure 共有ディスクとSCSI-3リザベーションを組み合わせて使用できるようにします。このARKは共有ディスクに対し、そのディスクのSCSI-3リザベーションを現在保持しているノードからのみ書き込みができるようにします。

    Recovery Kitの利用手順

    SIOS Lifekeeperのインストール時に、インストーラーはLifeKeeperがMicrosoft Azure EC2上で実行されていることを検出し、LifeKeeper SCSI-3 Persistent Reservations (SCSI3) Recovery Kit を自動的にインストールして、Azure 共有ディスクのサポートを有効にします。

    Lifekeeper 内でのリソースの作成は簡単でシンプルです (図 1)。ローカルにマウントされたAzure 共有ディスクは、ファイルシステムタイプのリソースとしてLifekeeperに追加されます。LifekeeperはこのディスクにIDを割り当て(図2)、SCSI-3ロックを自動で管理します。

    図 1:LifeKeeperでのSAPインスタンス (sapinst) の作成

    図2:両ノードに作成して拡張

    SCSI-3予約により、Azure 共有ディスクが、予約を保持しているノードでのみ書き込み可能になることが保証されます (図 3)。 クラスターノード同士の通信が途絶えたシナリオでは、スタンバイサーバーがオンラインになりスプリットブレインが発生する可能性がありますが、SCSI-3予約により一度にアクセスできるのは1ノードのみであるため、実際のスプリットブレインシナリオは回避することができます。

    1つのシステムのみが予約を保持し、そのシステムが新しいアクティブノードになるか(この場合、もう一方は再起動します)、元からアクティブノードだった場合は、そのままアクティブノードとなります。Azure 共有ディスクの予約を保持していないノードは予約を取得できないため、リソースが「スタンバイ状態」 になります。

    図 3 – すでに予約されているディスクをマウントしようとしたときの Lifekeeper ログからの出力

    マイクロソフトのAzure Shared Disksの定義
    https://learn.microsoft.com/ja-jp/azure/virtual-machines/disks-shared

    今後の予定

    現在、SIOSはLRS(ローカル冗長ストレージ)をサポートしていますが、ZRS(ゾーン冗長ストレージ)のテストとサポートについては、Microsoftと協力して進めているところです。理想的には、ZRSに障害が発生したときに、アクティブなストレージの最もローカルなノードにリソース階層をフェイルオーバーできるようにしたいと考えています。現在SIOSでは、Lifekeeper 9.6.2 for Linuxの次のリリースでAzure 共有ディスクをサポートすることを予定しています。