[Network, Hardware] Deployments over InfiniBand Infrastructure

原文はこちら。
https://blogs.oracle.com/networking/entry/deployments_over_infiniband_infrastructure

既存のEthrenetベースのインフラストラクチャを移行している方や、InfiniBandベースのコンピューティング環境上へサービスやアプリケーションを一からデプロイし始めている多くの方とこれまで会話してきました。話の終わりでは、すべてが非常に単純に見えます...が、どこから始めたらいいのか…ってのが面白いところです。こうした話を理解することにしましょう。

統合(Consolidation)、分離(Isolation)、および仮想化(Virtualization)というキーワードに焦点を当てた私の以前のエントリを思い出してください。このエントリは以前のエントリの議論を踏まえたものです。
Networks and Virtualization
https://blogs.oracle.com/networking/entry/infiniband_and_virtualization

まずは…
サーバサイジングのアクティビティを経て、CPU、メモリ、ディスク容量などのようなリソースに基づいて、何個のアプリケーションをコンピュータに配置できるかがわかります。数多くのアプリケーションをデプロイしたり、Ethernet環境から移行したりする必要がある場合、たぶん、サーバを特定の機能群にわけて考えると思うのですが、そうですよね?それでは、こうしたグループ間が低レベルで相互に通信する方法や、各グループに属するサーバ同士が通信する方法を検討しえましょう。そのため、この全ての作業はネットワーク設計およびアーキテクチャの基礎を形成するものです。

InfiniBandを使う場合のネットワーク設計
簡単にするために、合計8個のマシンを均等に4グループに分けることにします。この時点で、どのアプリケーションをどこで実行するかを決定済みです。ネットワークを大きく2つのカテゴリに分類することができます。つまり、内部ネットワークと外部ネットワークです。この言葉が示すように、内部ネットワークは、主にサーバーの管理、パッチ適用、更新、同期、ヘルスチェックのような通信に使い、外部ネットワークは外部((インターネットの可能性もあります)に対し実行しているサービスを宣伝し、提供するために使います。に動いているサービスを宣伝し、提供するために使用されるような通信に使用します。

さて、すべての8台のマシンが外部ネットワークと接続するでしょうか?するかもしれませんし、しないかもしれません。ここで、いくつかのマシンを選び、グループAとして分類しましょう。このグループはロードバランサの目的に供することが出来ます。もちろん、このグループのマシン2台は別のサービス(例えばネームサービス、プロキシ)をホストすることもできます。ここで言いたいことは、一つのマシンに複数のアプリケーションをデプロイする可能性があり、アプリケーションは複数のネットワークに参加しなければならない可能性があるということです。

したがって、ネットワークへの参加は、マシンがハードウェアとして決めているわけではなく、マシン内で実行しているアプリケーションやサービスの各々の機能なのです。

外部ネットワーク
グループAは、外部ネットワークに接しています。Exalogicハードウェアの場合、外部アクセスは、Ethernet over InfiniBand (EoIB) で実現しています。2つの異なる機能(例えばロードバランサと外部ネットワーク向けネームサービス)を持っている場合、両者を隔離することをお勧めします。別の仮想NICを作成し、独自のIPアドレスを割り当てることで分離することができます。これらの機能は、固有のVLAN上にある可能性がさえあります。分離が不要な場合は、同一のIPアドレスを使用してもかまいません。ほとんどのアプリケーションには、どのソケット(IPアドレス、ポート)にバインドするかを指示する"Listen"機能があります。これらの外部のネットワークのインラインファイアウォールの使用は珍しいことではなく、境界のコンピューティンググループAをセキュアにします。インラインファイアウォールをこの外部ネットワークで使用することもめずらしいことではなく、これにより境界コンピューティンググループAのセキュリティが向上します。もっと進んで、さらなるセキュリティの向上と堅牢性の向上のために、グループAのマシン内のiptableルールを書くこともできます。

内部ネットワーク
先ほどはグループAが外部ネットワークに接する方法を考えました。この例では、エッジグループAの機能として負荷分散を使っていますが、この場合実際のサービスが動作している内部グループとの通信が必要でしょう。 冒頭に申し上げたように、既に3つのグループ(B、C、D)に細分化されています。ユースケースを構築するため、負荷分散されるサービスはグループBにのみデプロイされているものとしましょう。つまり、グループAは特定のソケットでBと通信し、AからCやDまで露出したくないのです。では、どうしましょう?全てのグループはInfiniBandと同じ物理セグメントに接続していることがわかっていますので、EthernetでVLANを利用するときと同じように、Partition Keyを使います。グループA、Bのホストは安全な通信を可能にする共通のPartiton Keyを共有しています。このネットワークをAB-10と命名しましょう。
グループBのマシンがグループAから実行するジョブを受信した場合、彼らは以前のグループCのマシンからの助けが必要になるかもしれません。先ほど、セキュリティのため、ネットワークAB-10からグループCを除外したので、ここでやっていることは、グループBとCの間にちょうどこの内部利用のために新しいネットワークの作成です。これをBC-20と呼びましょう。そして、VLANやPartiton Keyを使って新しいネットワークを作成するというのは、つまるところネットワークインターフェイスや関係するIPアドレスの新しいセットを持つことであるということを思い出してください。これは以前のエントリで説明した「ネットワークと仮想化」(Networks and Virtualization)の内容です。
Networks and Virtualization
https://blogs.oracle.com/networking/entry/infiniband_and_virtualization
ではグループDはどうでしょう?いくつかの内部開発およびテスト用に指定するユースケースを実証する目的でちょうどこのグループDを残していました。とはいえ、まだネットワーク定義の一部はグループD用に残しておく必要があります。それは、2個のホストがグループDにあり、それらがお互いに通信する必要があるかもしれないからです。このネットワーク定義をD-44と呼ぶことにしましょう。このネットワークはグループA、B、CおよびグループA用に作成した外部EoIBネットワークから分離したままのはずです。
NFSサーバーのことを忘れてはいませんよ。ではここで終わりにしましょうか。すべてのマシンが共通のNFSサーバからそれぞれの共有をマウントする必要がある場合、NFSサーバをすべてのサブネットワークAB-10、BC-20とD-44に参加させることができます。アクセス制御ポリシーを適用して、特定のホストだけがエクスポートされた共有を使用できるようにすることができます。

まとめ
ここで説明してきたことは、最終的には通信用のネットワーク(内部と外部)の必要性を推進する機能的な役割にマシンのセットを分類できるということです。ネットワークの分離は、イーサネットでのVLANのように、InfiniBandではパーティション·キーを使って実現できます。インラインファイアウォールはEoIBネットワークパスで使用できます。必要に応じてホストレベルのiptableのルールを使用することもできます。ここで説明してきたことは、マシンを機能の役割にグループ化することができるということです。

0 件のコメント:

コメントを投稿