9.4. サブネットマネジャーの設定

9.4.1. 必要性の判断

ほとんどの InfiniBand スイッチには、組み込み型サブネットマネジャーが備わっています。ただし、スイッチファームウェア内のものよりも最新のサブネットマネジャーが必要な場合、もしくはスイッチマネジャーが許可するよりも完全な制御が必要な場合は、Red Hat Enterprise Linux 7 には opensm サブネットマネジャーが含まれています。InfiniBand ネットワークが機能するには、そのネットワークにサブネットマネジャーが備わっている 必要があります。スイッチがないマシン 2 台で簡単なネットワークを構成し、カードが背中合わせに差し込まれている場合でも、カード上にリンクが現れるにはサブネットマネジャーが必要になります。サブネットマネジャーが複数あることもあり、その場合は 1 つがマスターとして動作し、その他はこのマスターが失敗した際にスレーブとして引き継ぐことになります。

9.4.2. opensm マスター設定ファイルの設定

opensm プログラムは、マスター設定ファイルを /etc/rdma/opensm.conf に保存します。ユーザーはこのファイルをいつでも編集することができ、変更内容はアップグレードで維持されます。このファイル自体にも、オプションについての詳しい説明があります。ただし、GUID のバインドとそれと実行する PRIORITY という 2 つの最も一般的な編集については opensm.conf ファイルではなく /etc/sysconfig/opensm ファイルを編集することが強く推奨されます。ベースの /etc/rdma/opensm.conf ファイルが編集されない場合は、opensm パッケージのアップグレードに合わせてこのファイルもアップグレードされます。このファイルには新たなオプションが定期的に追加されるので、この方法だと現行の設定を最新のものに容易に維持できます。opensm.conf ファイルが変更された場合は、アップグレード時に新規オプションを編集済みのファイルにマージする必要性がでてきます。

9.4.3. opensm スタートアップオプションの設定

/etc/sysconfig/opensm ファイル内のオプションは、サブネットマネジャーが実際に開始される方法や開始されるサブネットマネジャーのコピー数を制御します。たとえば、各ポートが物理的に別個のネットワークに差し込まれているデュアルポートの InfiniBand カードは、各ポートで実行中のサブネットマネジャーのコピーを必要とします。 opensm サブネットマネジャーが管理するのはアプリケーションのインスタンスにつき 1 つのサブネットのみで、管理する必要のある各サブネットで一度起動する必要があります。さらに、複数の opensm サーバーがある場合は、どのサーバーをマスターやスレーブにするかを管理する優先度を各サーバーで設定します。
/etc/sysconfig/opensm ファイルは、サブネットマネジャーの優先度を設定し、サブネットマネジャーがバインドされる GUID を制御する簡単な方法を提供するために使用されます。/etc/sysconfig/opensm ファイル自体にもオプションの詳細な説明があります。opensm のフェイルオーバーとマルチファブリック操作を有効にするには、このファイルの指示に従うだけで可能です。

9.4.4. P_Key 定義の作成

デフォルトでは、opensm.conf/etc/rdma/partitions.conf ファイルを検索してファブリックを作成するためのパーティション一覧を取得します。すべてのファブリックには 0x7fff サブネットを含める必要があり、すべてのスイッチとホストはそのファブリックに属している必要があります。これに加えて他のパーティションを作成することが可能で、すべてのスイッチやホストがこれらの新たなパーティションのメンバーである必要はありません。これにより管理者は、InfiniBand ファブリック上のイーサネットの VLAN に似たサブネットを作成することができます。パーティションが 40 Gbps などの特定のスピードで定義されていて、ネットワーク上に 40 Gbps を実行できないホストがある場合、そのホストはスピードに合致できないので、パーミッションがあってもこのパーミッションに参加することはできません。このため、パーティションのスピードは、そのパーティションに参加を許可されているホストのなかで一番遅いものに設定することが推奨されます。ホストのいずれかのサブネット用により高速のパーティションが必要な場合は、高速パーティションを別個に作成します。
以下のパーティションファイルの場合、デフォルトの 0x7fff パーティションは 10 Gbps のスピードになり、0x0002 パーティションは 40 Gbps のスピードになります。
~]$ more /etc/rdma/partitions.conf
# For reference:
# IPv4 IANA reserved multicast addresses:
#   http://www.iana.org/assignments/multicast-addresses/multicast-addresses.txt
# IPv6 IANA reserved multicast addresses:
#   http://www.iana.org/assignments/ipv6-multicast-addresses/ipv6-multicast-addresses.xml
#
# mtu =
#   1 = 256
#   2 = 512
#   3 = 1024
#   4 = 2048
#   5 = 4096
#
# rate =
#   2  =   2.5 GBit/s
#   3  =  10   GBit/s
#   4  =  30   GBit/s
#   5  =   5   GBit/s
#   6  =  20   GBit/s
#   7  =  40   GBit/s
#   8  =  60   GBit/s
#   9  =  80   GBit/s
#   10 = 120   GBit/s

Default=0x7fff, rate=3, mtu=4, scope=2, defmember=full:
        ALL, ALL_SWITCHES=full;
Default=0x7fff, ipoib, rate=3, mtu=4, scope=2:
        mgid=ff12:401b::ffff:ffff       # IPv4 Broadcast address
        mgid=ff12:401b::1               # IPv4 All Hosts group
        mgid=ff12:401b::2               # IPv4 All Routers group
        mgid=ff12:401b::16              # IPv4 IGMP group
        mgid=ff12:401b::fb              # IPv4 mDNS group
        mgid=ff12:401b::fc              # IPv4 Multicast Link Local Name Resolution group
        mgid=ff12:401b::101             # IPv4 NTP group
        mgid=ff12:401b::202             # IPv4 Sun RPC
        mgid=ff12:601b::1               # IPv6 All Hosts group
        mgid=ff12:601b::2               # IPv6 All Routers group
        mgid=ff12:601b::16              # IPv6 MLDv2-capable Routers group
        mgid=ff12:601b::fb              # IPv6 mDNS group
        mgid=ff12:601b::101             # IPv6 NTP group
        mgid=ff12:601b::202             # IPv6 Sun RPC group
        mgid=ff12:601b::1:3             # IPv6 Multicast Link Local Name Resolution group
        ALL=full, ALL_SWITCHES=full;

ib0_2=0x0002, rate=7, mtu=4, scope=2, defmember=full:
        ALL, ALL_SWITCHES=full;
ib0_2=0x0002, ipoib, rate=7, mtu=4, scope=2:
        mgid=ff12:401b::ffff:ffff       # IPv4 Broadcast address
        mgid=ff12:401b::1               # IPv4 All Hosts group
        mgid=ff12:401b::2               # IPv4 All Routers group
        mgid=ff12:401b::16              # IPv4 IGMP group
        mgid=ff12:401b::fb              # IPv4 mDNS group
        mgid=ff12:401b::fc              # IPv4 Multicast Link Local Name Resolution group
        mgid=ff12:401b::101             # IPv4 NTP group
        mgid=ff12:401b::202             # IPv4 Sun RPC
        mgid=ff12:601b::1               # IPv6 All Hosts group
        mgid=ff12:601b::2               # IPv6 All Routers group
        mgid=ff12:601b::16              # IPv6 MLDv2-capable Routers group
        mgid=ff12:601b::fb              # IPv6 mDNS group
        mgid=ff12:601b::101             # IPv6 NTP group
        mgid=ff12:601b::202             # IPv6 Sun RPC group
        mgid=ff12:601b::1:3             # IPv6 Multicast Link Local Name Resolution group
        ALL=full, ALL_SWITCHES=full;

9.4.5. opensm の有効化

opensm サービスはインストール時にはデフォルトで有効となっていないため、これを有効にする必要があります。root で以下のコマンドを実行します。
~]# systemctl enable opensm