F5 DNSを使用してStorageGRIDのグローバル負荷分散を行う
スティーブ・ゴーマン(F5)
この技術レポートでは、グリッドが複数のサイトや HA グループに分散されている場合に、グローバル ロード バランシング用の F5 DNS サービスを使用してNetApp StorageGRID を構成し、データの可用性と一貫性を高め、S3 トランザクション ルーティングを最適化するための詳細な手順を説明します。
はじめに
以前は BIG-IP GTM (Global Traffic Manager)、非公式には GSLB (Global Server Load Balancing) と呼ばれていた F5 BIG-IP DNS ソリューションは、複数のアクティブ/アクティブ HA グループおよびアクティブ/アクティブ マルチサイトStorageGRIDソリューション間でのシームレスなアクセスを効果的に実現します。
F5 BIG-IP マルチサイトStorageGRID構成
サポートされるStorageGRIDサイトの数に関係なく、少なくとも 2 台の BIG-IP アプライアンス (物理または仮想) で BIG-IP DNS モジュールが有効になっていて、設定されている必要があります。DNS アプライアンスの数が増えるほど、企業が享受できる冗長性の度合いが高まります。
BIG-IP DNS - 初期設定の最初の手順
BIG-IP アプライアンスで少なくとも初期プロビジョニングが完了したら、Web ブラウザを使用して TMUI (BIG-IP GUI) インターフェイスにログインし、[システム] → [リソース プロビジョニング] を選択します。強調表示されているように、「グローバル トラフィック (DNS)」モジュールにチェック マークが付いており、ライセンスが付与されていることを確認します。なお、画像のように、「ローカル トラフィック (LTM)」を同じアプライアンスでプロビジョニングできるのが一般的です。

DNSプロトコルの基本要素を構成する
StorageGRIDサイトのグローバル トラフィック管理に向けた最初のステップは、ほぼすべてのグローバル トラフィック ステアリングが構成される DNS タブを選択し、[設定] → [GLSB] を選択することです。2 つの同期オプションを有効にし、参加している BIG-IP アプライアンス間で共有される DNS グループ名を選択します。

次に、「DNS」>「配信」>「プロファイル」>「DNS: 作成」に移動し、有効または無効にする DNS 機能を管理するプロファイルを作成します。特定の DNS ログの生成に興味がある場合は、前のリンクの DNS クラスルーム ガイドを参照してください。以下は動作中の DNS プロファイルの例です。重要な値の設定を表す 4 つのハイライト部分に注目してください。それぞれの設定については、以下のF5 KB(ナレッジベース)の記事で説明されています。 "こちらをご覧ください"。

この時点で、作成された「プロファイル」を通じて UDP プロトコルと TCP プロトコルの特性を調整できます。これらのプロファイルはどちらも BIG-IP を含む DNS トラフィックを伝送できます。UDP と TCP 用の新しいプロファイルを 1 つ作成するだけです。DNS トラフィックが WAN リンクを通過すると仮定すると、WAN 環境で適切に動作することがわかっている UDP と TCP の特性を継承するのが良い方法です。それぞれを追加するには、各プロトコルの横にある「+」アイコンをクリックし、親プロファイルを次のように設定します。
UDP → 「親」プロファイル「udp_gtm_dns」を使用する
TCP → 「親」プロファイル「f5-tcp-wan」を使用する

ここで、BIG-IP DNS が関与する UDP トラフィックと TCP トラフィックの両方に IP アドレスを割り当てる必要があります。BIG-IP LTM に精通している方にとって、これは基本的に DNS 仮想サーバーの作成であり、仮想サーバーには「リスナー」 IP アドレスが必要です。スクリーンショットのように、矢印に従って DNS/UDP および DNS/TCP のリスナー/仮想サーバーを作成します。

以下はライブ BIG-IP DNS の 1 つの例です。この例では、TCP 仮想サーバー リスナーの設定が表示され、これまでの多くの手順がどのように結び付けられているかがわかります。これには、DNS プロファイルとプロトコル (TCP) プロファイルの参照、および DNS が使用する有効な IP アドレスの構成が含まれます。BIG-IP で作成するすべてのオブジェクトと同様に、割り当てられた名前の例では dns/siteb/TCP53 のように、オブジェクトが何であるかを自己識別するのに役立つ意味のある名前を使用すると便利です。

これで、DNS モジュールが有効になっている BIG-IP アプライアンスの、通常は「1 回限り」の予備セットアップ手順は完了です。この時点で、アプライアンスを使用したグローバル トラフィック管理ソリューションの設定の詳細に移る準備が整いました。これは当然、 StorageGRIDサイトの特性にリンクされます。
4つのステップでデータセンターサイトをセットアップし、BIG-IP間通信を確立する
ステップ1: データセンターを作成する
BIG-IP LTM によってローカルに負荷分散されるノードのクラスターを収容する各サイトは、BIG-IP DNS に入力する必要があります。トラフィック管理をサポートするために DNS 同期グループを作成しているため、この設定はグループの DNS メンバー間で共有されるため、この操作は 1 つの BIG-IP DNS でのみ実行する必要があります。
TMUI GUI から、[DNS] > [GSLB] > [データ センター] > [データ センター リスト] を選択し、 StorageGRIDサイトごとにエントリを作成します。図 1 に沿ったネットワーク設定を使用する場合、DNS アプライアンスがStorageGRID以外の他のサイトに配置されている場合は、ストレージ サイトに加えてこれらのサイトのデータ センターを追加します。この例では、サイト a と b がオハイオ州とオレゴン州に作成され、BIG-IP はデュアル DNS および LTM アプライアンスです。

ステップ 2: サーバーの作成 (ソリューション内のすべての BIG-IP アプライアンスのリスト)
これで、個々のStorageGRIDサイト クラスターを BIG-IP DNS セットアップに接続する準備が整いました。各サイトの BIG-IP アプライアンスは、「バックエンド」 IP アドレス/ポートを使用して、「フロントエンド」の到達可能な IP アドレス/ポートをストレージノードアプライアンスのバックエンド「プール」のセットに結び付ける仮想サーバーの構成を通じて、S3 トラフィックの実際の負荷分散を実行します。
たとえば、サイトの廃止のため、またはリアルタイムのヘルス チェックの失敗によって予期せず、プール内のすべてのストレージ ノードが管理上オフラインになった場合、DNS クエリ応答が変更され、トラフィックは他のサイトに送信されます。
StorageGrid サイト、具体的にはローカル仮想サーバーを各アプライアンスの BIG-IP DNS 構成に結び付けるには、セットアップを 1 回だけ実行する必要があります。次のステップでは、BIG-IP DNS アプライアンスのグループ全体の設定が同期されます。
簡単に言うと、DNS、LTM、または DNS と LTM の両方のライセンスが付与されているすべての BIG-IP アプライアンスのリスト (サーバー リストと呼ばれる) を作成します。このマスター リストは、リストが完成するとすべての BIG-IP DNS アプライアンスと同期されます。
1 台の BIG-IP DNS ライセンス アプライアンスで、[DNS] > [GSLB] > [サーバー] > [サーバー リスト] を選択し、追加ボタン (+) を選択します。

各 BIG-IP を追加する際の 4 つの重要な要素は次のとおりです。 * 製品のプルダウンから BIG-IP を選択すると、他のロード バランサも選択できますが、通常、各サイトでバックエンド ノードの健全性が低下した場合のリアルタイムの可視性の応答性が欠如します。* BIG-IP DNS アプライアンスの IP アドレスを追加します。おそらく、BIG-IP DNS アプライアンスを初めて追加する場合、アドレスは現在の GUI アクセスされたアプライアンスになり、将来のアプライアンスはソリューション内の他のアプライアンスになります。* ヘルスモニターを選択し、追加するロードバランサーが BIG-IP アプライアンスである場合は、バックエンドのStorageGRIDノードのヘルスを考慮して、常に「BIG-IP」を使用します。* アプライアンスがデュアル DNS/LTM アプライアンスである場合は、オプションで仮想サーバーの自動検出を要求します。

一時的なネットワークの問題やネットワークの場所間のファイアウォール ACL ルールなどの状況によっては、この段階でリモート アプライアンスを追加すると、仮想サーバーの検出で LTM が設定されたリモート アプライアンスのエントリが表示されないことがあります。このような場合、新しいアプライアンス (「サーバー」) を追加した後、以下に示すように仮想サーバーを手動で追加できます。BIG-IP DNS のみのアプライアンスを追加する場合、そのデバイスに検出または追加される仮想サーバーは存在しません。

すべてのサイトで、ソリューション内の各アプライアンス(BIG-IP DNS アプライアンス、BIG-IP LTM アプライアンス、DNS ユニットと LTM ユニットの両方の役割を果たすアプライアンスを含む)にこれらのサーバー エントリを追加する必要があります。
ステップ3: すべてのBIG-IPアプライアンス間の信頼関係を確立する
次の例では、4 つのアプライアンスがサーバーとして追加され、2 つのサイトに分散されています。各サイトには専用の BIG-IP DNS と BIG-IP LTM があることに注意してください。ただし、現在ログインしているアプライアンス以外のすべてのアプライアンスの「ステータス」列には青いアイコンが表示されています。これは、他の BIG-IP アプライアンスとの信頼関係がまだ確立されていないことを意味します。

信頼を追加するには、GUI 経由で構成の詳細を入力した BIG-IP に SSH で接続し、「root」アカウントを使用して BIG-IP のコマンドライン インターフェイスにアクセスします。プロンプトで次の単一コマンドを発行します: bigip_add
「bigip_add」コマンドは、クラスタ内のGSLBサーバ間の暗号化された「iQuery」チャネルのセットアップ時に使用するために、宛先BIGIPデバイスから管理証明書を取得します。iQueryはデフォルトでTCPポート4353を使用して実行され、BOG-IP DNSメンバーが同期状態を維持できるようにするハートビートです。暗号化されたチャネルでは xml と gzip を使用します。オプションなしで「bigip_add」を実行すると、現在のユーザー名を使用してエンドポイントに接続し、GSLB サーバー リスト内のすべての BIGIP デバイスに対してコマンドが実行されます。成功を簡単に確認するには、BIG-IP GUI に戻り、表示されたプルダウン メニューにすべてのサーバーの証明書がリストされていることを確認します。

ステップ4: すべてのBIG-IP DNSアプライアンスをDNSグループに同期する
最後のステップでは、1 つのユニットの TMUI GUI を使用するだけで、すべての BIG-IP DNS アプライアンスを完全に構成できるようになります。サンプルのケースでは、2 つのStorageGRIDサイトがあり、これは SSH を使用して 他の サイトの BIG-IP DNS のコマンド ラインにアクセスすることを意味します。ルートとして接続し、ファイアウォール ポリシー/ACL によって 2 つの BIG-IP DNS デバイスが TCP ポート 22 (SSH)、443 (HTTPS)、および 4354 (F5 iQuery プロトコル) で通信できることを確認した後、プロンプトで次のコマンドを実行します: gtm_add <すべての GUI 手順が以前に実行された最初のサイトの BIG-IP DNS の IP アドレス>
この時点で、グループに追加されたすべての BIG-IP DNS アプライアンスで、以降のすべての DNS 構成作業を実行できます。上記のコマンド gtm_add は、LTM のみであるアプライアンス メンバーに適用する必要はありません。DNS をサポートするアプライアンスのみ、同期された DNS グループの一部になるためにこのコマンドが必要です。
データセンターサイトのセットアップとBIG-IP間通信の確立
この時点で、基盤となる正常な BIG-IP DNS アプライアンス グループを作成するためのすべての手順が完了します。これで、各StorageGRIDデータセンターで公開されている分散 Web/S3 サービスを指す名前 (FQDN) の作成に進むことができます。
これらの名前は「ワイド IP」、または略して WIP と呼ばれ、DNS A リソース レコードを持つ通常の DNS FQDN です。ただし、従来の A リソース レコードのようにサーバーを指すのではなく、内部的には BIG-IP 仮想サーバーのプールを指します。各プールは、個別に、1 つ以上の仮想サーバーのセットで構成できます。名前解決のために IP アドレスを要求する S3 クライアントは、ポリシーで選択された最適なStorageGRIDサイトにある S3 仮想サーバーのアドレスを受け取ります。
ワイドIP、プール、仮想サーバーの概要
簡単な架空の例として、storage.quantumvault.com という名前の WIP では、潜在的な仮想サーバーの 2 つのプールにリンクされた BIG-IP DNS ソリューションが表示される場合があります。最初のプールは北米の 4 つのサイトから構成され、2 番目のプールはヨーロッパの 3 つのサイトから構成される可能性があります。
選択されたプールは、さまざまなポリシー決定から決定される可能性があります。たとえば、トラフィックの大部分を北米のStorageGRIDサイトに誘導するには、単純な 5:1 の比率を使用できます。おそらくもっと可能性が高いのは、トポロジ ベースの選択で、たとえば、ヨーロッパからのすべての S3 トラフィックがヨーロッパのサイトに送られ、世界の残りの S3 トラフィックが北米のデータ センターに送られるようなプールが選択されることです。
BIG-IP DNS によってプールに到達すると、北米のプールが選択されたと仮定すると、storage.quantumvault.com を解決するために返される実際の DNS A リソース レコードは、4 つの北米サイトのいずれかにある BIG-IP LTM によってサポートされている 4 つの仮想サーバーのいずれかになります。どちらが選択されるかについても、ポリシーに基づいており、ラウンドロビンなどの単純な「静的」アプローチが存在する一方で、ローカル DNS リゾルバーから各サイトの待ち時間を測定するパフォーマンス プローブなどのより高度な「動的」選択が維持され、サイト選択の基準として使用されます。
BIG-IP DNS 上に仮想サーバーのプールを設定するには、メニュー パス DNS > GSLB > プール > プール リスト > 追加 (+) に従います。この例では、さまざまな北米の仮想サーバーがプールに追加され、このプールが選択されたときに、負荷分散の優先アプローチが階層的に選択されていることがわかります。

DNS > GSLB > ワイド IP > ワイド IP リスト > 作成 (+) の順に選択して、DNS によって解決されるサービスの名前である WIP (ワイド IP) をデプロイメントに追加します。次の例では、S3 対応ストレージ サービスの WIP の例を示します。

グローバルトラフィック管理をサポートするためにDNSを調整する
この時点で、基盤となるすべての BIG-IP アプライアンスは GSLB (グローバル サーバー ロード バランシング) を実行する準備が整います。ソリューションを活用するには、S3 トラフィック フローに使用される名前を調整して割り当てるだけです。一般的なアプローチは、企業の既存の DNS ドメインの一部を BIG-IP DNS の制御に委任することです。つまり、名前空間の一部であるサブドメインを「切り分け」、このサブドメインの制御を BIG-IP DNS アプライアンスに委任することになります。技術的には、これは、BIG-IP DNS アプライアンスがエンタープライズ DNS に DNS リソース レコード (RR) を持っていることを確認し、これらの名前/アドレスを委任されたドメインのネーム サーバー (NS) DNS リソース レコードにすることによって行われます。
現在、企業が DNS を維持する方法はさまざまですが、その 1 つの方法は完全にホストされたソリューションです。一例としては、Windows Server 2025 を介した DNS の運用と管理が挙げられます。企業が AWS Route53 や Squarespace などのクラウド DNS プロバイダーを活用するという別のアプローチもあります。
説明のために架空の例を示します。当社では、AWS Route53 によって管理される既存のドメインを使用して、S3 プロトコル経由でオブジェクトの読み取りと書き込みをサポートするStorageGRID を導入しています。既存のサンプル ドメインは f5demo.net です。
グローバル トラフィック管理のために、サブドメイン engineering.f5demo.net を BIG-IP DNS アプライアンスに割り当てます。これを行うには、engineering.f5demo.net の新しい NS (ネーム サーバー) リソース レコードを作成し、それを BIG-IP DNS アプライアンス名のリストにポイントします。この例では、2 つの BIG-IP DNS アプライアンスがあり、それらに対して 2 つの A リソース レコードを作成します。

ここでは例として、BIG-IP DNS にワイド IP (WIP) を設定します。DNS はグループ同期を使用するため、1 つのアプライアンスの GUI を使用して調整するだけで済みます。BIG-IP DNS GUI 内で、DNS > GSLB > ワイド IP > ワイド IP リスト (+) に移動します。従来の DNS FQDN 設定では 1 つ以上の IPv4 アドレスを入力しますが、この場合は、 StorageGRID仮想サーバーの 1 つ以上のプールを指定するだけです。

この例では、オハイオ州とオレゴン州の両方のサイトに汎用 Web HTTPS サーバーが配置されています。単純な「ラウンドロビン」アプローチを使用すると、グローバル DNS が両方の仮想サーバー IP を使用して www.wip.engineering.f5demo.net の A リソース レコード マッピングのクエリに応答することがわかります。

簡単なテストは Web ブラウザで実行できます。また、 StorageGRIDを使用する S3 の場合は、S3Browser などのグラフィカル ツールを使用することもできます。各 DNS クエリでは、プール内でラウンドロビンが選択されているため、後続のトラフィックのターゲットとして使用されるプール内の次のデータセンター サイトが表示されます。
このサンプル設定では、dig または nslookup を使用して、一連の 2 つの DNS クエリをすばやく生成し、BIG-IP DNS が実際にラウンドロビン ロード バランシングを実行していることを確認して、時間の経過とともに両方のサイトがトラフィックを受信できるようにします。

より高度な技術の探求の提案
多くの可能なアプローチの 1 つは、上記の単純な「ラウンドロビン」の例ではなく、「グローバル可用性」モードを使用することです。グローバル可用性を使用すると、プールの順序、または単一のプール内の仮想サーバーにトラフィックを送信できます。この方法では、すべての S3 トラフィックを、たとえばニューヨーク市のサイトにデフォルトで送信することができます。
ヘルス チェックによってこのサイトのStorageGRIDノードの可用性に問題があることが示された場合、その時点でトラフィックはセントルイスに送信される可能性があります。セントルイスで健康上の懸念が生じた場合、フランクフルトのサイトが S3 の読み取りまたは書き込みトランザクションの受信を開始する可能性があります。したがって、グローバルな可用性は、S3 StorageGRIDソリューション全体の回復力に対する 1 つのアプローチです。もう 1 つのアプローチは、階層型アプローチを使用して負荷分散アプローチを組み合わせることです。

この例では、「動的」オプションが、構成されたプール内のサイトの最初の負荷分散の選択肢になります。示されている例では、ローカル DNS リゾルバのパフォーマンスのアクティブ プロービングを使用した継続的な測定アプローチが維持され、サイト選択のきっかけとなっています。この方法が利用できない場合は、各サイトに割り当てられた比率によって個々のサイトを選択できます。比率により、大規模で高帯域幅のStorageGRIDサイトは、小規模なサイトよりも多くの S3 トランザクションを受信できます。最後に、おそらく災害復旧シナリオとして、プール内のすべてのサイトが正常でなくなった場合、指定されたフォールバック IP が最後の手段としてサイトとして使用されます。BIG-IP DNS の興味深い負荷分散方法の 1 つは「トポロジ」です。これは、DNS クエリの受信ソースである S3 ユーザーのローカル DNS リゾルバを監視し、インターネット トポロジ情報を使用して、プールから一見「最も近い」サイトを選択するものです。
最後に、サイトが地球全体に広がっている場合は、F5 BIG-IP DNS マニュアルで詳細に説明されている動的「プローブ」テクノロジの使用を検討する価値があるかもしれません。プローブを使用すると、頻繁に発生する DNS クエリのソースを監視できます。たとえば、トラフィックで通常同じローカル DNS リゾルバを使用する B2B パートナーなどが挙げられます。BIG-IP DNS プローブは、世界中の各サイトの BIG-IP LTM から起動して、S3 トランザクションのレイテンシが最も低くなる可能性のあるサイトを大まかに判断できます。そのため、アジアからのトラフィックは、北米やヨーロッパにあるサイトよりもアジアのStorageGRIDサイトの方が適切に処理される可能性があります。
まとめ
F5 BIG-IP とNetApp StorageGRID を統合することで、複数のサイト間でのデータの可用性と一貫性、および S3 トランザクション ルーティングの最適化に関連する技術的な課題に対処します。このソリューションを導入すると、ストレージの復元力、パフォーマンス、信頼性が向上し、堅牢でスケーラブルかつ柔軟なストレージ インフラストラクチャを求める企業に最適です。
詳細については、BIG-IP DNSの公式F5ドキュメントをご覧ください。 "リンク"。セットアップ例を段階的に説明するガイド付き教室形式のガイドも用意されています。 "こちらをご覧ください"。