JSOR システム要件およびサポート対象 API (Linux のみ)

Java™クライアントおよびサーバーアプリケーションは、JSOR機能を使用するために特定のハードウェアとランタイムソフトウェアをインストールする必要があります。 JSOR では、API とクラスの制限付きセットがサポートされます。

注意: サービス・リフレッシュ 8 フィックスパック 30 の変更点の始まり 以前に非推奨とされた RDMA 実装は、IBM® SDK、Java Technology Edition、バージョン 8.サービスリフレッシュ8 フィックスパック30の変更終了について から削除されました

サポートされるハードウェアおよびランタイム要件

以下の前提条件が適用されます。
  • この機能は、以下のプラットフォームおよびリモート・ダイレクト・メモリー・アクセス (RDMA) アダプターで使用できます。
    • Linux® 32 ビット x-86 ( InfiniBand (IB) または RDMA over Converged Ethernet (RoCE) を使用)
    • Linux AMD64/EM64T (IB または RoCE
    • Linux 32 ビット POWER ® ( RoCE
    • Linux 64 ビット POWER と RoCE
    • サービス・リフレッシュ 2 の変更点の始まりLinux64-bitPOWER8(リトルエンディアン)、IB付きサービス・リフレッシュ 2 の変更点の終わり
    これらのアダプターは、適切な高性能スイッチで相互接続されなければなりません。
  • OpenFabrics Enterprise Distribution (OFED) v1.5.3 以降をインストールする必要があります。OpenFabrics Alliance の Web サイトからダウンロードできます:https://www.openfabrics.org/index.php/resources/ofed-for-linux-ofed-for-windows/ofed-overview.html からダウンロードできます。 実行時に、シンボルが librdmacm.so ライブラリーおよび libibverbs.so ライブラリーから動的に検出されてロードされます。 これらのライブラリーは OFED ランタイムによって提供されます。
  • 両方のホスト・システムでメモリーをロックできるだけの十分なアクセス権がユーザーに必要です。 データ転送中にオペレーティング・システムがメモリー・ページをスワップアウトしないように、RDMA ソケット・バッファーをロック、つまり固定する必要があります。

テスト済みの環境

  • MellanoxMT26428 ConnectXVirtual Protocol Interconnect (VPI) PCI Express (PCIe)ホストは、Voltaire 40 GBInfiniBandスイッチで相互接続されています。
  • Cisco 4x InfiniBand スイッチによって相互接続された Mellanox MT25208 InfiniHost III Ex ホスト。
  • 直接、相互接続された Mellanox MT26448 ConnectX EN PCIe ホスト。
  • 直接、相互接続された Mellanox MT4099 ConnectX-3 VPI ホスト。

サポートされる API とクラス

サポートは、以下の API とクラスのセットに制限されます。
  • java.net.Socket および java.net.ServerSocket では、以下のメソッドがサポートされません。
    • Socket(Proxy proxy)
    • Socket(SocketImpl impl)
    • setSocketFactory(SocketImplFactory fac)
    • setPerformancePreferences(int connectionTime, int latency, int bandwidth).
  • java.io.InputStream では、以下のメソッドがサポートされます。
    • available()
    • close()
    • mark(int readlimit)
    • markSupported()
    • read()
    • read(byte[] b)
    • read(byte[] b, int off, int len)
    • reset()
    • skip()
  • java.io.OuputStream では、以下のメソッドがサポートされます。
    • close()
    • flush()
    • write(byte[] b)
    • write(byte[] b, int off, int len)
    • write(int b)
  • java.net.SocketOptions では、以下のオプションがサポートされます。
    • SO_TIMEOUT (SO_TIMEOUT)
    • TCP_NODELAY (TCP_NODELAY)
    • 整数 (SO_LINGER) 型
    • SO_BINDADDR (SO_BINDADDR)
    • SO_REUSEADDR (SO_REUSEADDR)
    • SO_BROADCAST (SO_BROADCAST)
    • SO_SNDBUF (SO_SNDBUF)
    • SO_RCVBUF (SO_RCVBUF)
    • SO_KEEPALIVE (SO_KEEPALIVE)
    • SO_OOBINLINE (SO_OOBINLINE)
    実行時に、以下のオプションが RDMA ソケット・レベルで実行されます。
    • SO_BINDADDR (SO_BINDADDR)
    • SO_REUSEADDR (SO_REUSEADDR)
    • SO_SNDBUF (SO_SNDBUF)
    • SO_RCVBUF (SO_RCVBUF)
    注: SO_SNDBUF および SO_RCVBUF は、ソケットの作成直後、そのソケットで接続またはバインド操作が行われる前に有効になります。
    残りのソケット・オプションについては、JSOR ランタイムは TCP/IP 実装にフォールバックします。
Service Refresh 2 フィックスパック 10 の変更点の開始NIOストリームソケットアプリケーションでは、以下のJavaクラスがサポートされています:
  • java.nio.channels.SocketChannel
  • java.nio.channels.ServerSocketChannel
  • java.nio.channels.Selector
Service Refresh 2 フィックスパック 10 の変更点の終了

ソケットの送受信バッファー・サイズを管理するには、JSOR に組み込まれている Java 環境変数を使用します。 詳しくはJSOR環境設定 (Linux)を参照してください。