ESXi6.0 U1でInfiniband

やっと記事にまとめました!
フォローしてくださった方々有難うございました!

今回使うInfinibandアダプタは、
ConnectX-2 MHQH19B-XTR(MT26428)
40Gb/s InfiniBandと10GbEがあります。
で今回はIp over IBに挑戦です。

ESXiホストは
VMware ESXi 6.0.0 Update 1

# esxcli software profile get
(Updated) HP-ESXi-6.0.0-iso-600.9.2.38
   Name: (Updated) HP-ESXi-6.0.0-iso-600.9.2.38
   Vendor: esxi2
   Creation Time: 2015-09-11T14:40:58
   Modification Time: 2015-09-11T14:42:34
   Stateless Ready: True
   Description:

      (Original Vendor):Hewlett-Packard
      2015-09-11T14:40:58.489761+00:00: The following VIBs are
      installed:
        esx-base      6.0.0-1.17.3029758
        nvme  1.0e.0.35-1vmw.600.1.17.3029758
        xhci-xhci     1.0-2vmw.600.1.17.3029758
        lsi-mr3       6.605.08.00-7vmw.600.1.17.3029758
        lsi-msgpt3    06.255.12.00-8vmw.600.1.17.3029758
        lsu-lsi-mpt2sas-plugin        1.0.0-4vmw.600.1.17.3029758
        misc-drivers  6.0.0-1.17.3029758
        tools-light   6.0.0-1.17.3029758
        sata-ahci     3.0-22vmw.600.1.17.3029758
        vsanhealth    6.0.0-3000000.2.0.1.17.2972216
      ----------
      (Original Vendor):Hewlett-Packard
      2015-08-08T17:24:39.202030+00:00: The following VIBs are
      installed:
        lsu-lsi-lsi-mr3-plugin        1.0.0-2vmw.600.0.11.2809209
        lsu-lsi-megaraid-sas-plugin   1.0.0-2vmw.600.0.11.2809209
        tools-light   6.0.0-0.11.2809209
        sata-ahci     3.0-21vmw.600.0.11.2809209
        misc-drivers  6.0.0-0.11.2809209
        esx-base      6.0.0-0.11.2809209
      ----------
      (Original Vendor):Hewlett-Packard
      2015-08-08T17:13:37.063989+00:00: The following VIBs are
      installed:
        esx-base      6.0.0-0.6.2715440
      ----------
      (Original Vendor):Hewlett-Packard
      2015-08-08T17:04:11.603022+00:00: The following VIBs are
      installed:
        esx-base      6.0.0-0.5.2615704
        scsi-mpt2sas  19.00.00.00-1vmw.600.0.0.2494585
        qlnativefc    2.0.12.0-5vmw.600.0.0.2494585
        scsi-hpsa     6.0.0.44-4vmw.600.0.0.2494585
      ----------
      HP Custom Image Profile for ESXi 6.0.0 ISO
#
# vmware -v -l
VMware ESXi 6.0.0 build-3029758
VMware ESXi 6.0.0 Update 1

こんな環境

たぶん、5.x系、6.0系でも大丈夫なはずです。


とりあえずどんなドライバがあるのかVMWareで探してみる。

VMware ESXi 6.0 MLNX Native EN 3.1.0.0 NIC Driver for Mellanox ConnectX3 Ethernet Adapters

MEL-mlnx-3.1.0.0-2775996
・MEL_bootbank_nmlx4-core_3.1.0.0-1OEM.600.0.0.2348722.vib
・MEL_bootbank_nmlx4-en_3.1.0.0-1OEM.600.0.0.2348722

もう一個

VMware ESXi 5.5Ux Driver CD for Mellanox ConnectX3/ConnectX2 Ethernet Adapters

MEL-mlnx-en-1.9.9.0-1OEM.550.0.0.1331820-1551135
・Mellanox_bootbank_net-mlx4-core_1.9.9.0-1OEM.550.0.0.1331820
・Mellanox_bootbank_net-mlx4-en_1.9.9.0-1OEM.550.0.0.1331820

VMware ハードウェア互換性ガイド (HCL)
VMware Compatibility Guide」を見てみる

どうやらどれも「NICドライバしか無い」ようです。

まぁ、どんなもんかなにもせずに刺して起動してみる。

刺しただけで認識はしてる。
(ただHPのカスタム版を使用しているので通常だとどうなるのかはわからない)
とりあえずデバイス

# dmesg |grep mellanox
2015-09-11T14:58:51.252Z cpu14:33190)Device: 1315: Registered device: 0x430205b31060 pci#s00000001.00#0 com.mellanox.enDevice (parent=0x350e430205b32ded)

2015-09-11T14:58:51.252Z cpu14:33190)Device: 1315: Registered device: 0x430205b31060 pci#s00000001.00#1 com.mellanox.rdmaDevice (parent=0x350e430205b32ded)

2015-09-11T14:58:51.252Z cpu14:33190)Device: 1315: Registered device: 0x430205b31060 pci#s00000001.00#2 com.mellanox.mstDevice (parent=0x350e430205b32ded)
#
# lspci -v | grep Mellanox
0000:06:00.0 InfiniBand Serial bus controller: Mellanox Technologies MT26428 [ConnectX VPI - 10GigE / IB QDR, PCIe 2.0 5GT/s] [vmnic4]

うーん、嫌な予感

予感的中。
通常のVIBにはEtherドライバしか入ってない。

# esxcli software vib list |grep mlx
net-mlx4-core                  1.9.7.0-1vmw.600.0.0.2494585         VMware           VMwareCertified     2015-08-08
net-mlx4-en                    1.9.7.0-1vmw.600.0.0.2494585         VMware           VMwareCertified     2015-08-08
nmlx4-core                     3.0.0.0-1vmw.600.0.0.2494585         VMware           VMwareCertified     2015-08-08
nmlx4-en                       3.0.0.0-1vmw.600.0.0.2494585         VMware           VMwareCertified     2015-08-08
nmlx4-rdma                     3.0.0.0-1vmw.600.0.0.2494585         VMware           VMwareCertified     2015-08-08

だめですね。。。
これEtherモードっぽい。

さて気を取り直してMellanoxで探してみる
http://www.mellanox.com/page/vmware_matrix_hcl?mtag=vmware_driver
これを見ると分かるのですが、
・NIC Driver
・OFED Drivers

と2つあります。

IPoIBするにはOFED Driverが必要」です。
というわけでOFEDをダウンロードしましょ。

http://jp.mellanox.com/page/products_dyn?product_family=36&mtag=vmware_drivers
(MLNX-OFED-ESX-1.8.2.4-10EM-500.0.0.472560.zip)

これをSCPやvSpherecientでESXiのストレージに転送しておきます。

SSHしてからの

# esxcli software vib install -d /path/MLNX-OFED-ESX-1.8.2.4-10EM-500.0.0.472560.zip
 [DependencyError]
 VIB VMware_bootbank_net-mlx4-en_1.9.7.0-1vmw.600.0.0.2494585 requires com.mellanox.mlx4_core-9.2.3.0, but the requirement cannot be 

satisfied within the ImageProfile.
 Please refer to the log file for more details.

はい、怒られました。
どうやらESXiに新しいバージョンものが入っているため、蹴られるみたいです。

もう一回確認してみる

# esxcli software vib list |grep mlx
net-mlx4-core                  1.9.7.0-1vmw.600.0.0.2494585         VMware           VMwareCertified     2015-08-08
net-mlx4-en                    1.9.7.0-1vmw.600.0.0.2494585         VMware           VMwareCertified     2015-08-08
nmlx4-core                     3.0.0.0-1vmw.600.0.0.2494585         VMware           VMwareCertified     2015-08-08
nmlx4-en                       3.0.0.0-1vmw.600.0.0.2494585         VMware           VMwareCertified     2015-08-08
nmlx4-rdma                     3.0.0.0-1vmw.600.0.0.2494585         VMware           VMwareCertified     2015-08-08

ということなので、標準のほうが新しいのですが、
これでは使えないので今入っているものを削除します。

結果ですが、6.0系は
net-mlx4-core
net-mlx4-en
nmlx4-core
nmlx4-en
nmlx4-rdma
すべて消しておかないとダメでした

# esxcli software vib remove -n=net-mlx4-en -n=net-mlx4-core
Removal Result
   Message: The update completed successfully, but the system needs to be rebooted for the changes to be effective.
   Reboot Required: true
   VIBs Installed:
   VIBs Removed: VMware_bootbank_net-mlx4-core_1.9.7.0-1vmw.600.0.0.2494585, VMware_bootbank_net-mlx4-en_1.9.7.0-1vmw.600.0.0.2494585
   VIBs Skipped:

で再起動

気を取り直して再度
MLNX-OFED-ESX-1.8.2.4-10EM-500.0.0.472560.zip」をインストール

# esxcli software vib install -d /vmfs/volumes/datastore1/patch/MLNX-OFED-ESX-1.8.2.4-10EM-500.0.0.472560.zip

Installation Result
   Message: The update completed successfully, but the system needs to be rebooted for the changes to be effective.
   Reboot Required: true
   VIBs Installed: Mellanox_bootbank_net-ib-cm_1.8.2.4-1OEM.500.0.0.472560, Mellanox_bootbank_net-ib-core_1.8.2.4-1OEM.500.0.0.472560, 

Mellanox_bootbank_net-ib-ipoib_1.8.2.4-1OEM.500.0.0.472560, Mellanox_bootbank_net-ib-mad_1.8.2.4-1OEM.500.0.0.472560, 

Mellanox_bootbank_net-ib-sa_1.8.2.4-1OEM.500.0.0.472560, Mellanox_bootbank_net-ib-umad_1.8.2.4-1OEM.500.0.0.472560, 

Mellanox_bootbank_net-mlx4-core_1.8.2.4-1OEM.500.0.0.472560, Mellanox_bootbank_net-mlx4-ib_1.8.2.4-1OEM.500.0.0.472560, 

Mellanox_bootbank_scsi-ib-srp_1.8.2.4-1OEM.500.0.0.472560
   VIBs Removed:
   VIBs Skipped:

ということなのでまた再起動します。

確認してみる。

# esxcli software vib list|grep Mel
net-ib-cm                      1.8.2.4-1OEM.500.0.0.472560          Mellanox         PartnerSupported    2015-09-13
net-ib-core                    1.8.2.4-1OEM.500.0.0.472560          Mellanox         PartnerSupported    2015-09-13
net-ib-ipoib                   1.8.2.4-1OEM.500.0.0.472560          Mellanox         PartnerSupported    2015-09-13
net-ib-mad                     1.8.2.4-1OEM.500.0.0.472560          Mellanox         PartnerSupported    2015-09-13
net-ib-sa                      1.8.2.4-1OEM.500.0.0.472560          Mellanox         PartnerSupported    2015-09-13
net-ib-umad                    1.8.2.4-1OEM.500.0.0.472560          Mellanox         PartnerSupported    2015-09-13
net-mlx4-core                  1.8.2.4-1OEM.500.0.0.472560          Mellanox         PartnerSupported    2015-09-13
net-mlx4-ib                    1.8.2.4-1OEM.500.0.0.472560          Mellanox         PartnerSupported    2015-09-13
net-mst                        2.0.0.0-1OEM.550.0.0.472560          Mellanox         PartnerSupported    2015-08-08
scsi-ib-srp                    1.8.2.4-1OEM.500.0.0.472560          Mellanox         PartnerSupported    2015-09-13

さてInfiniband になったかな?

# esxcfg-nics -l|grep Mellanox
vmnic128 0000:06:00.0 nmlx4_en    Down 0Mbps     Half   00:02:c9:0e:28:da 1500   Mellanox Technologies MT26428 [ConnectX VPI - 10GigE / IB QDR, PCIe 2.0 5GT/s]

なってねぇですよw
どうやら
nmlx4-core
nmlx4-en
nmlx4-rdma

も消しておいたほうがよさそう。
(5系は消さなくても大丈夫みたいです)

# esxcli software vib remove -n=nmlx4-core -n=nmlx4-en -n=nmlx4-rdma
Removal Result
   Message: The update completed successfully, but the system needs to be rebooted for the changes to be effective.
   Reboot Required: true
   VIBs Installed:
   VIBs Removed: VMware_bootbank_nmlx4-core_3.0.0.0-1vmw.600.0.0.2494585, VMware_bootbank_nmlx4-en_3.0.0.0-1vmw.600.0.0.2494585, 

VMware_bootbank_nmlx4-rdma_3.0.0.0-1vmw.600.0.0.2494585
   VIBs Skipped:

元気よく再起動

もっかい確認

# esxcfg-nics -l|grep Mellanox
vmnic_ib0 0000:06:00.0 ib_ipoib    Down 0Mbps     Half   00:02:c9:0e:28:db 1500   Mellanox Technologies MT26428 [ConnectX VPI - 10GigE / IB QDR, PCIe 2.0 5GT/s]

ib_ipoib」きました!

その他の変更
http://www.mellanox.com/related-docs/prod_software/Mellanox_MLX4_EN_Driver_for_VMware_ESXi-5.1_and_5.5_User_Manual.pdf
このあたりに従って設定。

# esxcli system module parameters list -m=mlx4_core
Name                    Type          Value  Description
----------------------  ------------  -----  

-------------------------------------------------------------------------------------------------------------------
debug_level             int                  Enable debug tracing if > 0
enable_qos              bool                 Enable Quality of Service support in the HCA (default: off)
heap_initial            int                  Initial heap size allocated for the driver.
heap_max                int                  Maximum attainable heap size for the driver.
internal_err_reset      int                  Reset device on internal errors if non-zero (default 1, in SRIOV mode default is 0)
log_mtts_per_seg        int                  Log2 number of MTT entries per segment (1-7)
log_num_mac             int                  Log2 max number of MACs per ETH port (1-7)
log_num_mgm_entry_size  int                  log mgm size, that defines the num of qp per mcg, for example: 10 gives 248.range: 9<= 

log_num_mgm_entry_size <= 12
log_num_vlan            int                  Log2 max number of VLANs per ETH port (0-7)
msi_x                   int                  attempt to use MSI-X if nonzero
mtu_4k                  int                   configure 4k mtu (mtu_4k > 0)
port_type_array         array of int         Array of port types: HW_DEFAULT (0) is default 1 for IB, 2 for Ethernet
skb_mpool_initial       int                  Driver's minimum private socket buffer memory pool size.
skb_mpool_max           int                  Maximum attainable private socket buffer memory pool size for the driver.

MTUの変更があります。

# esxcli system module parameters set -m=mlx4_core -p=mtu_4k=1
# esxcli system module parameters list -m=mlx4_core|grep mtu
mtu_4k                  int           1       configure 4k mtu (mtu_4k > 0)

どうやらこれだけではMTUの変更は出来ない?みたいでOpenSMが必要らしい。
(ibstatなんかのツールが入っているのでどちらにせよ入れた方がよい)

https://vibsdepot.v-front.de/wiki/index.php/Ib-opensm
(ib-opensm-x64-3.3.15-6.x86_64.vib)

OpenSMをインストールします。

# cd /tmp/
# wget http://vibsdepot.v-front.de/depot/INTL/ib-opensm-x64-3.3.15/ib-opensm-x64-3.3.15-6.x86_64.vib
# esxcli software vib install -v /tmp/ib-opensm-x64-3.3.15-6.x86_64.vib
 [InstallationError]
 ('Intel_bootbank_ib-opensm-x64_3.3.15-6', 'The VIB Intel_bootbank_ib-opensm-x64_3.3.15-6 does not contain a signature.')
       vibs = Intel_bootbank_ib-opensm-x64_3.3.15-6
 Please refer to the log file for more details.

怒られた
–no-sig-check」で再度インストール

# esxcli software vib install -v /tmp/ib-opensm-x64-3.3.15-6.x86_64.vib --no-sig-check
Installation Result
   Message: Operation finished successfully.
   Reboot Required: false
   VIBs Installed: Intel_bootbank_ib-opensm-x64_3.3.15-6
   VIBs Removed:
   VIBs Skipped:

再起動

設定を書かないとダメみたい。
ポートが2つある場合は両方の配下に配置。

# vi /tmp/partitions.conf
key0=0x7fff,ipoib,mtu=5 : ALL=full;

#
# cp /tmp/partitions.conf /scratch/opensm/0x0002c903000e28db/

また再起動
(これでMTUを4096まで上げられますが意味があるのかなぁ)

とりあえず対向も繋げてあげると、40GpsでLinkUpしました。

# esxcfg-nics -l |grep ip
Name      PCI          Driver      Link Speed     Duplex MAC Address       MTU    Description
vmnic_ib0 0000:06:00.0 ib_ipoib    Up   40000Mbps Full   00:02:c9:0e:28:db 1500   Mellanox Technologies MT26428 [ConnectX VPI - 10GigE / IB QDR, PCIe 2.0 5GT/s]

良い感じ?

とりあえずこれで動くはずです。。。

サブネットマネージャは動いてるのかな。

ps |grep opensm
35183  35183  opensm-static
35184  35183  opensm-static
35185  35183  opensm-static
35186  35183  opensm-static
35187  35183  opensm-static
35188  35183  opensm-static
35189  35183  opensm-static
35190  35183  opensm-static
35191  35183  opensm-static
35192  35183  opensm-static
35193  35183  opensm-static
35194  35183  opensm-static
35195  35183  opensm-static
35196  35183  opensm-static
35197  35183  opensm-static
35198  35183  opensm-static
35199  35183  opensm-static
35236  35183  opensm-static
35237  35183  opensm-static
35238  35183  opensm-static
35239  35183  opensm-static
35255  35183  opensm-static

動いているようです。

ほか情報を見てみると

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

速度を測ってみます。

# ./iperf -c *.*.*.*
------------------------------------------------------------
Client connecting to *.*.*.*, TCP port 5001
TCP window size: 32.5 KByte (default)
------------------------------------------------------------
[  3] local *.*.*.* port 21482 connected with *.*.*.* port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  3.02 GBytes  2.59 Gbits/sec

こんな感じ。

あとは、
「構成」
 「ネットワーク」
  「ネットワークの追加」
から「VMKernel」でネットワークアダプタを追加してあげればOK。

あと、これ純正じゃないので、ESXiのアップデート来たら上書きされるパターン。。
難しいです。。。

1 thought on “ESXi6.0 U1でInfiniband

コメントを残す

メールアドレスが公開されることはありません。

Enter code * Time limit is exhausted. Please reload CAPTCHA.

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください