Mellanox OFED スタックの構成をご紹介いたします。

Mellanox OFED スタック

1. mthca HCA (IB) ドライバ

mthca は Mellanox Technologies HCA デバイス、InfiniHost, InfiniHost III Ex, InfiniHost III Lx 用の低レベルドライバとなります。

2. mlx4 VPI ドライバ

mlx4 は Mellanox Technologies の ConnectX アダプタ用の低レベルドライバとなります。この ConnectX はインフィニバンドアダプタ、イーサネット NIC、または Fibre Channel over Ethernet HBA として動作することができ、OFED 1.4 内のこのドライバはインフィニバンドとイーサネット NIC の形態をサポートします。サポートされる形態に適合するために、このドライバは以下の4つのモジュールに分割されます。

mlx4_core

mlx4_core はデバイスの初期化やファームウェアコマンド処理のような低レベルの機能を処理します。また、インフィニバンドとイーサネットの機能がお互い干渉せずにデバイスを共有できるように、リソースの割り当てを制御します。

mlx4_ib

mlx4_ib はインフィニバンド特有の機能を処理し、インフィニバンドミッドレイヤへ接続します。

mlx4_en

mlx4_en はイーサネットの特有の機能を処理し、その netdev ミッドレイヤに接続します。driver/net/mlx4 以下の 10GigE ドライバです。

mlx4_fc

mlx4_fc は ConnectX のファイバチャネルハードウェアオフロードを使った FCoE 機能を処理します。

3. Mid-layer Core

コアのサービスは、マネージメントインターフェース (MAD)、コネクションインターフェース(CM)、サブネットアドミニストレータインターフェース (SA) を含みます。このスタックはユーザモードとカーネルアプリケーションの両方のための要素を含みます。このコアのサービスはカーネル内で動作し、verbs やCM 、マネージメントのためにユーザモードへの接続を提供します。

4. Open FCoE

FCoE の機能は Open-FCoE プロジェクトをベースにしております。Mellanox OFED は libfc と fcoe の open-fcoe.org モジュールを含んでおります。

5. ULPs

IPoIB

IPoIB (IP over IB) ドライバはインフィニバンド上でネットワークインターフェースを実装します。IPoIB はインフィニバンド上でIP データグラムをカプセル化します。IPoIB は IP データグラムにヘッダを付加しインフィニバンドトランスポートサービス上でその結果を送ります。トランスポートサービスの初期値は Reliable Connection (RC) になっておりますが、Unreliable Datagram (UD) に設定することも可能です。(このインターフェースはユニキャスト、マルチキャスト、ブロードキャストをサポートします)。

RDS

RDS ( Reliable Datagram Sockets ) は、 TCP/IP や RC ( Reliable Connection) 上のソケット間において、信頼性があり適切な到達順でデータグラム転送を提供するソケット API です。

SDP

SDP ( Socket Direct Protocol ) は TCP ストリーム動作(セマンティクス)を提供するバイトストリーム転送プロトコルで、インフィニバンドの高度なプロトコルオフロード能力を利用します。このためSDP は、現在大抵のネットワークアプリケーションで使用されている従来の TCP API と動作(セマンティクス) を保持する一方、その TCP と比較してより低いCPU とメモリ帯域の利用率を実現します。

SRP

SRP ( SCSI RDMA Protocol ) はインフィニバンドアーキテクチャにより提供されるプロトコルオフロードと RDMA の特性を十分生かせるよう設計されております。SRP はSCSI ソフトウェアを容易にインフィニバンドアーキテクチャ上で使用できるようにします。SRPドライバ ( SRPイニシエータとして知られる ) は伝統的な Linux 内の低レベルの SCSI ドライバと異なっており、SRP イニシエータはローカル HBA の制御を行いません。その代わりに SRP イニシエータは IO コントローラ ( SRP ターゲットとして知られる ) へのコネクションを制御し、インフィニバンドファブリック上のリモートストレージへのアクセスを提供します。

6. MPI

MPI ( Message Passing Interface ) は並列コンピュータやクラスタ、異種のネットワークを利用可能にするための並列ソフトウェアを開発できるライブラリです。Mellanox OFED はインフィニバンド上で次の MPI を実装しております。
・Open MPI – Open MPI プロジェクトによるオープンソース MPI-2 の実装
・OSU MVAPICH – オハイオス州大学による MPI-1 の実装
Mellanox OFED は OSU BW/LAT や Intel MPI Benchmark、Presta のような MPI ベンチマークテストを含んでおります。

7. Infiniband Subnet Manager

全てのインフィニバンド準拠の ULP はインフィニバンドファブリックで動作しているサブネットマネージャの適切な動作を、どの時でも必要とします。サブネットマネージャはどのノード、またはインフィニバンドスイッチ上で動作することが出来ます。OpenSM はインフィニバンド準拠のサブネットマネージャで、Mellanox OFED の一部としてインストールされます。

8. Diagnostic Utilities

Mellanox OFED はネットワーク、データセンター管理者のための次の2つの診断パッケージを含んでおります。
・ibutils - Mellanox Technologies diagnositic utilities
・infiniband-diags – OpenFabrics Alliance Infiniband diagnostic tool

9. Performance Utilities

マイクロベンチーマークとして性能評価用に uverbs 上で書かれたテスト群
ハードウェア、ソフトウェア用のチューニングや機能テストに使用されることが出来ます。docs/ 内の PERF_TEST_README.txt を参照ください。

※上記の内容は Mellanox OFED User Manual 1.40 を抜粋して本訳したものになります。
 詳細は Mellanox 社の Hope Page より User Manual をご習得ください。