Amazon Web Services ブログ

VMware vSphere クラスターに高可用性の AWS Storage Gateway をデプロイする

概要

今日では、多数のお客様に、事業活動に必須のアプリケーションとして AWS Storage Gateway をご利用いただいています。iSCSI、NFS、SMB、iSCSI VTL などの一般的なストレージプロトコルを提供することにより、Storage Gateway は、事実上無制限のクラウドストレージの恩恵を受けながら、お客様が既存のアプリケーションを容易に継続できるようにしています。お客様は、Storage Gateway を使用して、ストレージ管理を簡素化し、ハイブリッドなクラウドストレージの 3 つのユースケースの費用を削減できます。そのユースケースとは、オンプレミスのバックアップのクラウドへの移動、クラウドベースのファイル共有によるオンプレミスストレージの削減、そして、オンプレミスアプリケーションの AWS にあるデータへの低レイテンシーのアクセスの提供です。

今年、Storage Gateway は、数々の機能を立ち上げ、お客様の最も重要なアプリケーションについて、増加の一途を辿るニーズへの対応をサポートしてきました。本日、私たちは、Storage Gateway High Availability (HA) on VMware を立ち上げました。これにより、メディアデバイス、ストリーミングログリポジトリ、科学機器のストレージなど、中断されてはならず、遅延の影響を受けやすいワークロードの運用ニーズに対応します。

aws-storage-gateway-high-availability

AWS Storage Gateway の多くのお客様は、VMware vSphere のクラスターでゲートウェイをデプロイし、実行しています。高可用性の新機能により、これらのお客様は、高可用性のニーズがあり、中断されてはならないアプリケーションについて、AWS Storage Gateway の利用を拡大することができるようになりました。ヘルスチェックを VMware vSphere High Availability (vSphere HA) に統合することを通じて、オンプレミスの VMware 環境または AWS の VMware CloudTM でデプロイされた Storage Gateway は、ハードウェア、ハイパーバイザー、ネットワークの障害、ストレージのエラー、接続タイムアウトやファイル共有またはボリュームが利用不能であることなどのソフトウェアのエラーからストレージワークロードを保護しつつ、データを消失することなく、60 秒もかからずに、ほとんどのサービスの中断から自動的に復旧します。これにより、ヘルスチェック、自動的な再起動、アラートについてのカスタムスクリプトが不要になります。

さらに、新しいヘルスチェックは、vSphere HA VM と Application Monitoring サービスを活用することにより、異常検出を強化しています。いずれかのサービスが Storage Gateway の仮想マシン (VM) からハートビートを受け取らなくなった場合、VM は、サービスの運用を復元するため、他の ESXi ホストで再起動します。いずれの種類のハートビートも、仮想アプライアンスにインストールされた open‑vm‑tools の VMware Tools パッケージにより提供される仮想マシンコミュニケーションインターフェイス (VMCI) のチャネルを介してホストに送信されます。具体的には、VM Monitoring サービスは、ゲストのネットワークおよびディスク I/O アクティビティのほか、VMware Tools により生成されたハートビートを聞き、ストレージサーバーサービスの Storage Gateway スイートは、vSphere Guest SDK を介して、vSphere HA Application モニタリングサービスにハートビートを送信するよう、すべて拡張されています。この新たなヘルスチェックの強力な組合せは、障害シナリオにおけるサービスの稼働時間を迅速に復元するのに役立ちます。

Storage Gateway は、Tape GatewayVolume GatewayFile Gatewayの 3 つのモードのうち、1 つにデプロイできます。選択するモードは、アプリケーションのニーズによります。高可用性の新機能は、すべての Storage Gateway モードで動作します。

このブログでは、オンプレミスの VMware vSphere クラスターまたは VMware Cloud on AWS の Software-Defined Data Center (SDDC) で AWS File Gateway をデプロイする方法と、高可用性の環境の設定方法を説明します。また、File Gateway の障害からの復旧を検証するための簡単なテストの実行方法も説明します。

アーキテクチャおよび前提条件

File Gateway を使用したアーキテクチャ図

File Gateway の使用は簡単です。単純に、VMware vSphere クラスターまたは VMware Cloud on AWS SDDC にゲートウェイを VM としてデプロイし、S3 バケットに接続する NFS または SMB ファイル共有を作成し、アプリケーションにファイル共有を提示します。

Storage Gateway の HA 機能を使用するには、VMware 環境が以下を提供している必要があります。

  • vSphere HA のあるクラスターが有効化されていること
  • クラスターのすべてのホストに利用可能な共有データベース (SAN、vSANなど) 。この共有データベースは、Storage Gateway により、オペレーティングシステムとキャッシュストレージの仮想ハードディスクに使用されます。

これらの機能は、VMware Cloud on AWS で自動的に提供され、有効化されます。オンプレミスのデプロイメントについては、VMware vSphere クラスターで有効化されていることを確認する必要があります。

また、AWS Storage Gateway サービスと通信するために開かれている正しいネットワークポートや、オンプレミスアプリケーションおよびリソースを Storage Gateway VM が有していることを確認してください。詳細については、File Gateway のポート要件をご覧ください。

File Gateway VM のデプロイ

File Gateway をデプロイするには、AWS Storage Gateway 製品のドキュメントに従います。AWS Management Console で求められた場合、ホストプラットフォームとして「VMware ESXi」を選択し、ワークステーションに OVA イメージをダウンロードします。そこから、vCenter にログインし、OVA イメージをデプロイします。VM にルートディスクとキャッシュボリュームを割り当てる際に、データストアが vSphere クラスターのすべてのホストに利用可能となっていることを確認してください。これにより、VM のための HA の最適な動作が確保されます。

ゲートウェイをデプロイする際には、以下を考慮に入れます。

  • Storage Gateway は、適切な時間の同期を必要とします。適切に NTP を設定してください。
  • VM に 静的な IP アドレスを使用している場合、VM についての vSphere Web Console を立ち上げ、Storage Gateway CLI を介してネットワーク設定を行います
  • VMware Cloud on AWS SDDC をデプロイしており、データパスを最適化し、またはオンプレミスのゲートウェイから直接 VPC 接続を要求するために Storage Gateway と S3 の両方について VPC エンドポイントを活用している場合、VPC Storage Gateway エンドポイントを設定できます。
  • Distributed Firewall ルールを設定して、仮想ネットワークインターフェイス (vNIC) レベルでトラフィックを許可します。
  • VMware Cloud 環境でデプロイしている場合、Compute Gateway Firewall ルールを設定して、以下に示すお客様のリンクされた AWS アカウントの VPC へのノース/サウストラフィックを許可します (ユースケースにより、追加のルールが必要となる場合があります)。

ゲートウェイを正常にデプロイし、有効化したら、NFS または SMB ファイル共有を作成する手順に進みます。ファイル共有は、アプリケーションへの標準ファイルプロトコルアクセスを提供し、S3 バケットのデータへのアクセスを可能にします。

vSphere HA の設定

File Gateway を使用する前に、vSphere クラスターで HA 設定を検証する必要があります。vCenter にログインし、File Gateway がデプロイされるクラスターを選択します。以下に示すように、[Configure] タブで [vSphere Availability] を選択し、[Edit…] ボタンをクリックします。

vSphere HA の設定

[Edit Cluster Settings] ダイアログボックスで [Failures and responses] タブを選択し、vSphere が VM の障害にどのように対応するかを設定します。

[Edit Cluster Settings] ダイアログボックスで [Failures and responses] タブを選択し、vSphere が VM の障害にどのように対応するかを設定します。クラスターを以下のように設定します。

  • Host Failure Response: [Restart VMs] に設定
  • Response for Host Isolation: [Shut down and restart VMs] に設定
  • Datastore with PDL: [Disabled] に設定
  • Datastore with APD: [Disabled] に設定
  • VM Monitoring: Storage Gateway が適切にハードウェア障害に対応できるようにするため、これは [VM and Application Monitoring] に設定する必要があります。 以下に記載のカスタム VM モニタリングセンシティビティ仕様を定義するため、File Gateway VM について VM Override を設定することをお勧めします。Storage Gateway HA 機能の適切な運用を妨げることになるため、クラスターまたは VM Override のレベルで、これを [Disabled] に設定しないでください。

VM Monitoring セクションを展開して、モニタリングセンシティビティを設定します。

VM Monitoring セクションを展開して、モニタリングセンシティビティを設定する

モニタリングセンシティビティを以下のとおり設定します。

  • Failure Interval: 30 seconds
  • Minimum uptime: 120 seconds
  • Maximum per-VM resets: 3
  • Maximum resets time window: 1 hrs

クラスターで他の VM が実行されている場合、自分の VM についてのみ、これらの変数を設定したい場合があります。OVA イメージから File Gateway がデプロイされた後にのみ、設定することができます。VM をデプロイしたら、[cluster] > [configure] > [VM Overrides] で vSphere Client の VM 設定を上書きできます。 その後、新しい VM の上書きオプションを追加して、値を変更できます。クラスターが VM Monitoring のみに設定されている場合、[VM and Application monitoring] も有効化する必要があります。

テスト

ゲートウェイが期待どおりに復元されていることを確認するため、以下の手順を用いて、障害と復旧のシナリオをテストできます。

  1. ゲートウェイに NFS ファイル共有を作成し、S3 バケットに接続します。
  2. Linux VM に NFS ファイル共有をマウントします。
  3. 以下のコマンドを実行して、S3 バケットのディレクトリをツリーウォークします。この場合、[<mount point>] が NFS ファイル共有がマウントされる Linux VM のディレクトリです。コマンドは、ゲートウェイにメタデータのキャッシュを蓄積します。
[user@client1 ~]$ find <mount point> -type f

注: S3 バケットにあるファイル数により、上記のコマンドが実行されるまでに時間がかかる場合があります。

検索コマンドが完了したら、Linux VM に以下の bash スクリプトをコピーします。このスクリプトは、netcat (nc) コマンドを使用して、File Gateway との接続を継続的に確認し、接続が失われたときと回復されたときにメッセージを出力します。Linux VM にインストールされていない場合は、netcat ユーティリティをインストールする必要があります。

#!/bin/bash

nc -zw 1 $1 $2
status=$?
if [ $status -ne 0 ]
then
    echo "Error or gateway not responding"
    exit 1
else
    echo "Gateway is responding"
    date
fi

while true
do
    nc -zw 1 $1 $2 &>/dev/null
    status=$?
    if [ $status -eq 1 ]
    then
        echo "Gateway not responding"
        date
        while [ $status -eq 1 ]
        do
            nc -zw 1 $1 $2
            status=$?
            if [ $status -eq 0 ]
            then
                echo "Gateway back online"
                date
                exit
            fi
        done
    fi
done

スクリプトを test.sh として保存した場合、以下のようにスクリプトを実行します。

[user@client1 ~]$ ./test.sh <gateway ip address> 2049

これにより、NFS プロトコルにより使用される TCP ポートであるポート 2049 の File Gateway への接続をテストします。スクリプトが実行されている間、vCenter コンソールを介して、File Gateway VM をリセットします。これは、VM の障害をシミュレートし、VM の復旧にかかる時間の近似値を提供します。復旧が完了すると、スクリプトは終了し、以下のような出力が表示されます。

[user@client1 ~]$ ./test.sh 172.20.10.180 2049
Gateway is responding
Fri Nov 15 16:58:43 UTC 2019
Gateway not responding
Fri Nov 15 16:58:56 UTC 2019
Gateway back online
Fri Nov 15 16:59:07 UTC 2019

この場合、File Gateway が VM のリセットから復旧するのに 約 11 秒かかりました。

まとめ

このブログの投稿では、強化された HA 機能を有する AWS File Gateway のデプロイ方法について説明しました。また、VMware 環境で Storage Gateway をデプロイする際に留意すべき重要な点を強調しました。そして、ゲートウェイについて、復旧時間の検証のための簡単なテストを実行する方法について説明しました。

このブログでは、File Gateway を使用することに焦点を当てましたが、新たな HA 機能は Tape Gateway と Volume Gateway にも同じように適用されます。

ユースケース、顧客事例、役立つ動画などの詳細については、AWS Storage Gateway 製品ページをご覧ください。

次のステップ

  • vSphere クラスターまたは VMware Cloud on AWS SDDC に AWS Storage Gateway VM をデプロイする
  • 上記に記載したスクリプトで自身のために新たな Storage Gateway HA 機能をテストする