LoginSignup
3
3

More than 5 years have passed since last update.

InfinibandのMTUとか

Last updated at Posted at 2015-09-16

ib.png

はじめに

twitter上のタイムラインでInfinbandの話しをする機会があり,IPoIB接続のMTUのことが話題になったので,少し気になったところを備忘録として残しておく。

InfinibandのIPoIBのMTUについて

InfinibandのMTU設定は,各Infinibandノード(HCA,スイッチ等)でバラバラでも問題なく通信できてるようだ。ただしフラグメントが発生してるかは不明。比較的新しいWindowsのMellanoxドライバであるWinOFでは,MTUはデフォルトで4096となっている。

一方であまり古くはないInfiniband Switch(ここではMellanox QDR36ポートスイッチIS5030Q)で,MTUの最大値は2044までとなっている。

ESXiでは,VMkernelのMTUは4096を設定できるものの,vSwitch側のMTUが最大2044までしか設定できないため,実質的にVMwareのInfinibandのMTU設定は,最大2044だと思われる。

Twitter上のタイムラインでInfinibandのMTUについて会話の発端となった資料

WindowsだとMellanox版WinOFを使うかと思いますので調べてみた。
普通にネットワークの構築
Mellanox IPoIB
をデバイスの構成からみたら、
4092(-4バイト引くらしい)でした。

ibv_devinfo

Windows 7のibv_devinfo

ibv_devinfo
PS C:\Windows\system32> ibv_devinfo
hca_id: ibv_device0
        fw_ver:                         2.9.8350
        node_guid:                      0002:c903:0009:16f8
        sys_image_guid:                 0002:c903:0009:16fb
        vendor_id:                      0x02c9
        vendor_part_id:                 26428
        hw_ver:                         0xB0
        phys_port_cnt:                  2
                port:   1
                        state:                  PORT_ACTIVE (4)
                        max_mtu:                4096 (5)
                        active_mtu:             4096 (5)
                        sm_lid:                 1
                        port_lid:               5
                        port_lmc:               0x00
                        transport:              IB

                port:   2
                        state:                  PORT_DOWN (1)
                        max_mtu:                4096 (5)
                        active_mtu:             4096 (5)
                        sm_lid:                 0
                        port_lid:               0
                        port_lmc:               0x00
                        transport:              IB

Windows Server 2012 R2のibv_devinfo

ibv_devinfo
PS C:\Users\administrator> ibv_devinfo
hca_id: ibv_device0
        fw_ver:                         2.9.8350
        node_guid:                      0002:c903:0009:656c
        sys_image_guid:                 0002:c903:0009:656f
        vendor_id:                      0x02c9
        vendor_part_id:                 26428
        hw_ver:                         0xB0
        phys_port_cnt:                  2
                port:   1
                        state:                  PORT_ACTIVE (4)
                        max_mtu:                4096 (5)
                        active_mtu:             4096 (5)
                        sm_lid:                 1
                        port_lid:               11
                        port_lmc:               0x00
                        transport:              IB

                port:   2
                        state:                  PORT_DOWN (1)
                        max_mtu:                4096 (5)
                        active_mtu:             4096 (5)
                        sm_lid:                 0
                        port_lid:               0
                        port_lmc:               0x00
                        transport:              IB

VMware ESXi 5.5のibstat

ibstat
/opt/opensm/bin # ./ibstat
CA 'mlx4_0'
        CA type: MT26428
        Number of ports: 1
        Firmware version: 2.9.1000
        Hardware version: b0
        Node GUID: 0x0002c903000b87f8
        System image GUID: 0x0002c903000b87fb
        Port 1:
                State: Active
                Physical state: LinkUp
                Rate: 40
                Base lid: 4
                LMC: 0
                SM lid: 1
                Capability mask: 0x0251086a
                Port GUID: 0x0002c903000b87f9
                Link layer: InfiniBand

※うちのVMware環境には,ibv_devinfoのコマンドがインストールされていないため,一番近しいibstatを掲載

sminfo

Windows 7のsminfo

sminfo
PS C:\Windows\system32> sminfo
sminfo: sm lid 1 sm guid 0x2c9030008c997, activity count 8342 priority 0 state 3 SMINFO_MASTER

Windows Server 2012 R2のsminfo

sminfo
PS C:\Users\administrator> sminfo
sminfo: sm lid 1 sm guid 0x2c9030008c997, activity count 7217 priority 0 state 3 SMINFO_MASTER

smpquery

Windows 7のsmpquery

smpquery
PS C:\Windows\system32> smpquery portinfo 2 1
# Port info: Lid 2 port 1
Mkey:............................0x0000000000000000
GidPrefix:.......................0xfe80000000000000
Lid:.............................2
SMLid:...........................1
CapMask:.........................0x2510868

DiagCode:........................0x0000
MkeyLeasePeriod:.................0
LocalPort:.......................1
LinkWidthEnabled:................1X or 4X
LinkWidthSupported:..............1X or 4X
LinkWidthActive:.................4X
LinkSpeedSupported:..............2.5 Gbps or 5.0 Gbps or 10.0 Gbps
LinkState:.......................Active
PhysLinkState:...................LinkUp
LinkDownDefState:................Polling
ProtectBits:.....................0
LMC:.............................0
LinkSpeedActive:.................10.0 Gbps
LinkSpeedEnabled:................2.5 Gbps or 5.0 Gbps or 10.0 Gbps
NeighborMTU:.....................2048
SMSL:............................0
VLCap:...........................VL0-3
InitType:........................0x00
VLHighLimit:.....................4
VLArbHighCap:....................8
VLArbLowCap:.....................8
InitReply:.......................0x00
MtuCap:..........................2048
VLStallCount:....................0
HoqLife:.........................31
OperVLs:.........................VL0-3
PartEnforceInb:..................0
PartEnforceOutb:.................0
FilterRawInb:....................0
FilterRawOutb:...................0
MkeyViolations:..................0
PkeyViolations:..................0
QkeyViolations:..................0
GuidCap:.........................128
ClientReregister:................0
McastPkeyTrapSuppressionEnabled:.0
SubnetTimeout:...................18
RespTimeVal:.....................16
LocalPhysErr:....................8
OverrunErr:......................8
MaxCreditHint:...................0
RoundTrip:.......................0
CapabilityMask2:.................0x0000
LinkSpeedExtActive:..............No Extended Speed
LinkSpeedExtSupported:...........0
LinkSpeedExtEnabled:.............0

Windows Server 2012 R2のsmpquery

smpquery
PS C:\Users\administrator> smpquery portinfo 2 1
# Port info: Lid 2 port 1
Mkey:............................0x0000000000000000
GidPrefix:.......................0xfe80000000000000
Lid:.............................2
SMLid:...........................1
CapMask:.........................0x2510868

DiagCode:........................0x0000
MkeyLeasePeriod:.................0
LocalPort:.......................1
LinkWidthEnabled:................1X or 4X
LinkWidthSupported:..............1X or 4X
LinkWidthActive:.................4X
LinkSpeedSupported:..............2.5 Gbps or 5.0 Gbps or 10.0 Gbps
LinkState:.......................Active
PhysLinkState:...................LinkUp
LinkDownDefState:................Polling
ProtectBits:.....................0
LMC:.............................0
LinkSpeedActive:.................10.0 Gbps
LinkSpeedEnabled:................2.5 Gbps or 5.0 Gbps or 10.0 Gbps
NeighborMTU:.....................2048
SMSL:............................0
VLCap:...........................VL0-3
InitType:........................0x00
VLHighLimit:.....................4
VLArbHighCap:....................8
VLArbLowCap:.....................8
InitReply:.......................0x00
MtuCap:..........................2048
VLStallCount:....................0
HoqLife:.........................31
OperVLs:.........................VL0-3
PartEnforceInb:..................0
PartEnforceOutb:.................0
FilterRawInb:....................0
FilterRawOutb:...................0
MkeyViolations:..................0
PkeyViolations:..................0
QkeyViolations:..................0
GuidCap:.........................128
ClientReregister:................0
McastPkeyTrapSuppressionEnabled:.0
SubnetTimeout:...................18
RespTimeVal:.....................16
LocalPhysErr:....................8
OverrunErr:......................8
MaxCreditHint:...................0
RoundTrip:.......................0
CapabilityMask2:.................0x0000
LinkSpeedExtActive:..............No Extended Speed
LinkSpeedExtSupported:...........0
LinkSpeedExtEnabled:.............0

備考

ESXiでibstatを叩いているが,こちらのコマンド群はサードパーティ製というか,たぶんどこかのユーザーのお手製ビルドなESXi用のOpenSMをインストールすることで利用が可能となる。Windows用のWinOFやLinux用のOFEDと異なり,VMware ESXiでは,デフォルトでVMware ESXi用のInfinibandドライバをインストールしてもInfiniband用のコマンド群はインストールされない又は用意されていない模様。
https://vibsdepot.v-front.de/wiki/index.php/Ib-opensm
※vib形式になっているため,ドライバ等のインストールと同様にesxcliでインストールを行う

ESXiのOpenSM附属のコマンド群
/opt/opensm/bin # ls
ibping          ibportstate     ibstat          opensm-static   osmtest-static

VMwareのユーザーが提供しているOpenSMに含まれるibportstateやosmtest-staticは,自分の知識不足で叩くことができなかった。

Infiniband環境のこと(チラシの裏)

InfinibandのVMware事情

自宅のVMware環境は,ESXi 4.xの頃からストレージのインターコネクトにInfinibandを利用し,ESXi 5.5の今もその構成を保っている。あまりよく考えずに40Gbpsと言うキーワードだけに惹かれて導入したが,後にストレージが爆速じゃないと意味がないことに気づいて大いに凹んだ。その後MellanoxがEtherに力をいれるようになって,VMwareのInfinibandの対応もEhterに比べると徐々に減っているようで残念。

InfinibandのSMB3.0事情

Windows Server 2012で実装されたSMB3.0は,InfinibandでRDMA転送が可能となり,それまでのSMB/CIFSのファイル転送性能を一変させたものの,対向側もSMB3.0が実装されている必要があり,事実上Windows 8/Windows Server 2012以降以外のOSには効果がなく,Linux等とのファイルシステムレベルでの通信においてRDMAを利用できない状況にある。

InfinibandのRDMA Target(iSER)事情

LinuxではSCSTやLIOでTargetが提供でき,ブロックストレージで利用する場合にWindows側のInitiatorでiSERを利用したRDMA通信が可能だが,WindowsのiSERのターゲットを構築可能なパッケージが存在せず,Microsoft Software iSCSI Targetを利用したIPoIBでのターゲット構築しかできないため,WindowsとVMware間でRDMAを利用したストレージインターコネクトが構築できない。

RoCE及びiWARP事情

ConnectX-3 Pro等では,WindowsにおいてRoCEを利用したRDMA接続を可能とするターゲットを提供可能なようだが,ConnectX-3 Pro及びDCB対応スイッチ等の価格がそれなりに高く,自宅で試すにはハードルが高すぎるため,残念ながら試していない…

RoCEを試すのにConnectX-3 Pro及びDCB対応スイッチは必須じゃないようでした。が,ConnectX-3は相変わらず高いです… @hiroysatoさん情報ありがとうございます。
 
 

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3