SIOS LifeKeeper、Google Cloud用Generic Load-Balancer Kitのご紹介

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

    この記事では、SIOS Lifekeeper for LinuxのGeneric Load-Balancer Application Recovery Kit (ARK) と、Google Cloud上での具体的な設定方法について説明します。ARKは、LifeKeeper製品がプラットフォームやアプリケーションを認識できるようにするプラグインです。

    この記事では、2ノードのNFSクラスターとそれが提供するNFSエクスポートを使用して、最終的にロードバランサー経由でアクセスする方法を紹介します。

    SIOSは、GCP上で動作しているLifeKeeperクラスターにおいて、クライアントのリダイレクトを容易にするために、このARKを作成しました。

    GCPはGratuitous ARP(GARP:ルーター自体のIPアドレスに対するブロードキャストリクエスト)をサポートしていないため、クライアントは従来のクラスターの仮想IPアドレスに直接接続できません。よってクライアントはロードバランサーに接続する必要があり、ロードバランサーはトラフィックをアクティブなクラスターノードにリダイレクトします。

    GCPは、レイヤー4 TCP、レイヤー4 UDPまたはレイヤー7 HTTP/HTTPで動作する個別のロードバランサーソリューションを実装しています。ロードバランサーは、プライベートまたはパブリックのフロントエンドIP、どのノードがアクティブかを判断できるヘルスチェックプローブ、一連のバックエンドIPアドレス(クラスターの各ノード用)と受信/送信ネットワークトラフィックルールを持つように構成できます。

    従来、ヘルスチェックプローブはアプリケーションのアクティブポートを監視し、そのアプリケーションがどのノードでアクティブかを判断していました。 Generic Load-balancer ARKは、アクティブノードがユーザー定義のポートでリッスンするように設定されています。このポートは、GCPロードバランサーでヘルスチェックプローブとして構成されます。これにより、アクティブなクラスターノードがTCPヘルスチェックプローブに応答できるようになり、クライアントの自動リダイレクトが可能になります。

    GCP でのインストールと構成は簡単

    GCPポータル内で、負荷分散を選択します。

    この例では、TCP負荷分散を選択します。

    ロードバランサーを作成し、これをデプロイするリソースグループと名前を選択します。IMAでロードバランサーを使用しているクラスタータイプと一致する名前を使用すると良いでしょう。たとえば、IMA-NFS-LBは両方のIMA-NFSノードの前に配置されます。

    インターネットに接続するのか、VPCの内部なのかを決定します。この例では、VPC内でのみ使用するために、NFSサーバーの前に内部専用ロードバランサーを構成しています。


    名前、リージョンなどを決定したら、バックエンド構成を割り当てるように求められます。これには、フロントエンドにするHAノードを含むインスタンスグループが必要です。

     

    インスタンスグループを割り当てたら、ヘルスチェックを定義します。これは、Lifekeeper Generic Load-balancerの設定で使用するポートと同じポートです。この例では、54321を使用しています。

    Lifekeeperで使用するため、ここでもポート番号に注意してください。

    この例では、Health基準のデフォルト値をそのまま使用しています。

    ロードバランサーのバックエンド構成情報とヘルスチェックを入力したら、フロントエンド構成を定義する必要があります。これは、ロードバランサー用に作成するサブネット、リージョン、IPで構成されています。

    IPを設定します。これは保護しているLifekeeperのIPと同じにします。

    設定が完了したら、内容を確認するか、 [作成] をクリックします。

     [作成] を選択すると、GCPがロードバランサーのデプロイを開始します。これには数分かかることがあり、完了すると、SIOS Protection Suiteの設定に移行します。

    Configuration with SIOS Protection Suite SIOS Protection Suiteでの設定

    このブログでは、SPS-Lを使用して保護されるように3つのNFSエクスポートを設定しました。3つのエクスポートは、GCPロードバランサのフロントエンドIPと同じIPを使用するよう設定されています。

    Datakeeperを使用して、エクスポートに保存されているデータを複製しています。

    まず、スクリプトを取得します。wgetを使用するのが一番簡単ですが、パッケージ全体をダウンロードし、winscpなどのツールを使用してrpmを直接ノードにアップロードすることもできます。Lifekeeperクラスター内のすべてのノードにHotfixをインストールする必要があります。

    Recovery Kit全体は、以下で入手できます。
    http://ftp.us.sios.com/pickup/LifeKeeper_Linux_Core_en_9.5.1/patches/Gen-LB-PL-7172-9.5.1

    パーツは、wgetを使用して以下から取得できます。
    wget http://ftp.us.sios.com/pickup/Gen-LB-PL-7172-9.5.1/steeleye-lkHOTFIX-Gen-LB-PL-7172-9.5.1-7154.x86_64.rpm
    wget http://ftp.us.sios.com/pickup/Gen-LB-PL-7172-9.5.1/steeleye-lkHOTFIX-Gen-LB-PL-7172-9.5.1-7154.x86_64.rpm.md5sum
    wget http://ftp.us.sios.com/pickup/Gen-LB-PL-7172-9.5.1/Gen-LB-readme.txt

    ダウンロードしたら、FTPサイトに記録されている値とMD5の合計を照合します。

    以下でRPMをインストールします。
    rpm -ivh steeleye-lkHOTFIX-Gen-LB-PL-7172-9.5.1-7154.x86_64.rpm

    以下を実行して、インストールが成功したことを確認します。
    rpm -qa | grep steeleye-lkHOTFIX-Gen-LB-PL-7172

    何らかの理由で RPM を削除する必要がある場合は、次のコマンドを実行して削除できます。
    rpm -e steeleye-lkHOTFIX-Gen-LB-PL-7172-9.5.1-7154.x86_64

    以下は、すでに設定した3つのNFSエクスポートが表示されているGUIです。

    SIOS Protection Suite内では、SIOSが提供するHotfixスクリプトを使用してロードバランサーを定義する必要があります。

     

    まず、新しいリソース階層を作成し、ドロップダウンからGeneric Applicationを選択します。

    /opt/Lifekeeper/SIOS_Hotfixes/Gen-LB-PL-7172/ にある restore.pl スクリプトを定義します。

    /opt/Lifekeeper/SIOS_Hotfixes/Gen-LB-PL-7172/ にある remove.pl スクリプトを定義します。


    /opt/Lifekeeper/SIOS_Hotfixes/Gen-LB-PL-7172/ にある quickCheck スクリプトを定義します。

    ローカルリカバリースクリプトはありませんので、この入力は必ずクリアしてください。

    アプリケーション情報を求められたら、ヘルスチェックのポート番号で設定したのと同じ番号を入力します。例:54321

    サービスが作成されたら、In Serviceにすることを選択します


    リソース タグは、SPS-L GUIに表示される名前です。識別しやすい名前を使用すると良いでしょう。

    すべてが正しく設定されていれば、「END successful restore」と表示されます。次に、これをもう一方のノードに拡張して、リソースをどちらのノードでもホストできるようにします。


    これは、両方のノードへの拡張後、完了したロードバランサーの設定を示しています。

    このクラスターでの最後のステップは、3つのNFSエクスポートの子依存関係を作成することです。これは、DatakeeperミラーとIPを持つすべてのNFSエクスポートがロードバランサーに依存することを意味します。アクティブなノードで深刻な問題が発生した場合、これらのリソースはすべて、機能している他のノードにフェイルオーバーされます。

    上の画像は、Lifekeeper GUIでの完成した階層構造です。下の画像は、ロードバランサーリソースの子として、NFSエクスポート、IP、ファイルシステム、DataKeeperレプリケートボリュームを示す、拡張版のGUIのビューです。

    これは、GCPでLifeKeeperを使用して、シンプルなNFSクラスターを保護する方法の一例です。同じコンセプトは、保護が必要なビジネスクリティカルなアプリケーションにも適用できます。SIOSが提供するGeneric ARK for Load Balancer probe replyを利用して、GCPロードバランサー(インターネットまたは内部)が、現在どのノードがアプリケーションをホストしているかを判断できるようにするだけでOKです。