サイト内の現在位置を表示しています。

Azure共有ディスクを利用したHAクラスターを構築してみました(Windows/Linux)

CLUSTERPRO オフィシャルブログ ~クラブロ~

はじめに

Azure共有ディスクは、Azureマネージドディスク(以降、マネージドディスク)を複数の仮想マシン(以降、VM)に同時に接続できるようにするマネージドディスクの新機能です。
今回はAzure共有ディスクを利用して、Microsoft Azure(以降、Azure)上に共有ディスク型のHAクラスターを構築してみました。

これまで、AzureではCLUSTERPRO Xによる共有ディスク型のHAクラスターを構築することはできませんでした。
そのため、popup以前のブログでは、Azure File Storageをサーバー間のデータ引き継ぎ場所に使用したHAクラスターをご紹介しました。

今回、Azure共有ディスクを利用することで共有ディスク型のHAクラスターを構築することが可能となりましたのでご紹介します。

  • 本ブログは、2020/02/13に発表されたプレビュー版を利用して動作確認しています。
    なお、2020/07/16にAzure共有ディスクの一般提供が開始されています。
    実際に使用するためには、事前に利用申請を完了させておく必要があります。

この記事の内容

1. Azure共有ディスクとは

Azure共有ディスクは、マネージドディスクを複数のVMに同時に接続できるようにする機能です。
共有ディスクを有効にしたマネージドディスクでは、複数のVMからアクセスできる共有ブロックストレージが提供されます。

これまでマネージドディスクは、単一のVMにのみアタッチできる仕様であったことから、複数のVMに接続することができないため、共有ディスク型クラスターの構築には利用することができませんでした。
これからはAzure共有ディスクの機能により、共有ディスク型クラスターの構築が可能となります。
CLUSTERPRO Xによる共有ディスク型クラスターでは、ミラーディスク型クラスターのようなI/Oデータの同期に伴う書き込み性能低下が発生しないメリットがあります。

このようなメリットが存在するAzure共有ディスクの機能ですが、共有ディスクを有効にしたマネージドディスク内のデータの一貫性を保つためにはアプリケーション側で書き込み順序を保つ必要があるという制約が存在します。
もし書き込みの制御を行わず複数のVMからデータの書き込みを行った場合、一見データは正常に書き込まれているように見えますが、実際にはファイルシステムを破壊している、といった状況が発生することが考えられます。
そのため、データを書き込むことができるVMを制御する等の対策が必要となります。
CLUSTERPRO Xはディスクリソース(共有ディスクのアクセス制御を行うリソース)を使用して、共有ディスクへアクセスするVMの切り替えを行います。

2. 共有ディスク型のHAクラスター構成

今回は、米国中西部リージョンの環境に「共有ディスク型のHAクラスター」を構築し、 ディスクリソースにより、Azure共有ディスクの機能で複数のVMから同時に接続できるようにしたマネージドディスクを制御できることを確認しました。

本構成では、2ノード構成の共有ディスク型クラスターを構築し、ディスクリソースにより、 共有ディスクを有効にしたマネージドディスクへアクセスするVMの切り替えを行います。

「内部ロードバランサーを使用したHAクラスター」を構築します。
構成は以下の通りです。

HAクラスター構成の図

  • Azure共有ディスクの機能により、複数のVMから同時に接続できるようにしたマネージドディスクを業務データの引き継ぎ先に利用
  • Azureロードバランサーを使用して現用系VMへ接続先を切り替え

共有ディスクを有効にしたマネージドディスクは両ノードからアタッチされた状態ですが、ディスクリソースの制御によりディスクリソースが起動しているノード(図の場合は現用系VM)のみでアクセス可能な状態となっています。
待機系VMからは、共有ディスクを有効にしたマネージドディスクの参照、書き込みはできません。

現用系VMに障害が発生した場合は、待機系VMにおいてディスクリソースが起動され、待機系VMから共有ディスクを有効にしたマネージドディスクの参照、書き込みが可能な状態となります。

業務アプリケーションへのアクセスには、Azureロードバランサーに設定した仮想IPアドレスを指定することで、どちらのノードで起動しているか意識する必要なくアクセスすることが可能です。

3. 共有ディスク型のHAクラスター構築手順

3.1. HAクラスター構築の事前準備

Azure共有ディスクの機能を利用するには、事前に利用申請を完了させておく必要があります。

また、共有ディスクを有効にできるディスクの種類に制限があります。
制限事項の詳細は、以下のサイトを参照ください。

【参考】
  • 制限事項
  • 制限事項

今回は、ディスクの種類にPremium SSDを利用します。

  • 2020/07/16時点で、Premium SSDを共有ディスクとして利用する場合、米国中西部リージョンのみのサポートとなります。
    その他のリージョンで使用する場合は、Ultra Diskを利用する必要があります。

3.1.1. 近接通信配置グループの作成

今回は、VMを近接通信配置グループに配置します。
近接通信配置グループを使用すると、VM間のネットワーク待ち時間を短縮し、アプリケーションの全体的なパフォーマンスを向上させることができます。
VMを近接通信配置グループに配置する場合、ディスクを共有するすべてのVMが、同じ近接通信配置グループに含まれている必要があります。
リージョンには「米国中西部」を指定します。

近接通信配置グループの作成手順は以下のサイトを参考にしました。

【参考】
  • 近接通信配置グループを作成する

3.1.2. Azure共有ディスクを作成する

共有ディスクを有効にしたマネージドディスクを作成します。
作成は次の手順で実施します。

  • 1.Azureポータルを開き、上部のリソース、サービス、ドキュメントの検索から「テンプレートのデプロイ」を検索し、選択します。

  • 2.左側のメニューから「エディターで独自のテンプレートを作成する」を選択します。

独自のテンプレート

  • 3.次のJSONテンプレートを使用し、マネージドディスクを作成します。

【参考】
→Premium SSD を共有ディスクとしてデプロイする
→Resource Manager テンプレート
→Premium SSD 共有ディスク テンプレート
→生データ

  •  デプロイ時の設定を適宜変更し、「購入」ボタンをクリックします。
    今回は、Data Disk Size GBを「256」、Max Sharesを「2」で利用します。

3.2. HAクラスター構築手順

「内部ロードバランサーを使用したHAクラスター」を構築します。
構築手順は、HAクラスタ構築ガイドの「第 6 章 構築手順 (内部ロードバランサーを使用した HA クラスタの場合)」を参照ください。

【参考】
  • Windows > クラウド > Microsoft Azure > HAクラスタ 構築ガイド
  • Linux > クラウド > Microsoft Azure > HAクラスタ 構築ガイド

  • 構築ガイドはミラーディスク型クラスターを構築する手順となりますので、適宜読み替える必要があります。

  • ミラーディスク(クラスタパーティション、データパーティション)に使用するディスクの追加、ミラーディスク(ミラーディスクリソース)用のパーティションの設定、ミラーディスクリソースの追加は実施しません。
  • 本ブログ「3.2.1. VMの設定」を参考に、リージョン、VMのサイズ、可用性セット、近接通信配置グループを設定します。
  • 本ブログ「3.2.2. データディスクの追加」を参考に、共有ディスク(ディスクハートビート用パーティション、切替パーティション)に使用するディスクを追加します。
    ディスクの追加は、VM作成後に行います。
  • 本ブログ「3.2.3. HAクラスターの構築」を参考に、共有ディスク(ディスクリソース)用のパーティションの設定を行います。
  • 本ブログ「3.2.3. HAクラスターの構築」を参考に、ディスクリソースを追加します。

3.2.1. VMの設定

リージョンには「米国中西部」を指定します。

VMのサイズには「Premium Storage」をサポートしているVMを選択する必要があります。
フィルタで「Premiumディスク:サポートあり」を設定して表示されたVMサイズの中から選択します。

可用性セットを作成する場合、障害ドメインは1である必要があります。

  • 2020/07/16時点では、この制限はありません。

可用性セット

VMは、近接通信配置グループに配置します。

なお、既存の可用性セットを選択している場合、選択した可用性セットが近接通信配置グループに含まれない場合は、事前に可用性セットを近接通信配置グループに配置する必要があります。
VM作成時に新しく可用性セットを作成し、近接通信配置グループを指定する場合は、近接通信配置グループに新しい可用性セットも一緒に配置されます。

3.2.2. データディスクの追加

作成したマネージドディスクに接続するVMを選択し、データディスクを追加します。
ホストキャッシュは「なし」を選択します。

データディスクの追加手順は以下のサイトを参考にしました。

3.2.3. HAクラスターの構築

「共有ディスク型クラスター」を構築します。
構築手順はCLUSTERPRO Xの「インストール&設定ガイド」を参照ください。

共有ディスクに必要なディスクパーティション、切替パーティションを作成し、ディスクリソースを追加します。

【参考】
→CLUSTERPRO X 4.2 > Windows > インストール&設定ガイド
→第 2 章 システム構成を決定する
→2.6 ハードウェア構成後の設定
→2.6.1. 共有ディスクを設定する(共有ディスク使用時は必須)
→第 6 章 クラスタ構成情報を作成する
→6.4 クラスタ構成情報の作成手順
→グループリソース(ディスクリソース/ミラーディスクリソース/ハイブリッドディスクリソース) を追加する
→CLUSTERPRO X 4.2 > Linux > インストール&設定ガイド
→第 2 章 システム構成を決定する
→2.8 ハードウェア構成後の設定
→2.8.1. ディスクリソース用の共有ディスクを設定する(ディスクリソース使用時は必須)
→第 6 章 クラスタ構成情報を作成する
→6.4 2ノードクラスタ構成情報の作成手順
→6.4.2 フェイルオーバグループの作成
→グループリソース(ディスクリソース) を追加する

4. 動作確認

フェールオーバーの前後で、共有ディスクへのアクセス制御が行えていること、また、データの引き継ぎが行えていることを確認します。

  • 1.現用系VMでフェールオーバーグループを起動します。
  • 2.現用系VMから切替パーティションにアクセスできることを確認します。
    また、待機系VMから切替パーティションにアクセスできないことを確認します。
  • 3.現用系VMから切替パーティション配下に test.txt を作成します。
  • 4.Cluster WebUIから、フェールオーバーグループを現用系VMから待機系VMに、手動で移動します。
  • 5.待機系VMから切替パーティションにアクセスできることを確認します。
    また、現用系VMから切替パーティションにアクセスできないことを確認します。
  • 6.待機系VMから、切替パーティション配下に test.txt が表示され、エディタで開けることを確認します。

Azure共有ディスクを利用して、共有ディスク型のHAクラスターが構築できることを確認できました。

まとめ

今回はAzure共有ディスクの機能で複数のVMから同時に接続できるようにしたマネージドディスクを使用して、共有ディスク型のHAクラスターを構築してみました。
Azure上で、共有ディスク型のHAクラスターを簡単に構築できるようになるため、非常に便利だと思います。
共有ディスク型のHAクラスターを構築したいご要望がある場合は、是非お試しください。

本記事の構成をご検討の際は、CLUSTERPROのpopup試用版を用いて検証した後、ご提案・構築ください。

参考

CLUSTERPRO導入支援サービスではクラウド向けのクラスター構築支援サービス(クラウドHAコンサル)も行っております。クラスターの構築支援に関するご要望がありましたら、popup関連サービスの導入支援サービスの窓口までお問い合わせください。

お問い合わせ

本記事に関するお問い合わせは、popupお問い合わせ窓口までお問い合わせください。