InfiniBand 技術及其在 Linux 系統中的配置簡介
隨著伺服器處理速度的不斷加快,使用者對提升網路傳輸速度的需求也越來越緊迫,傳統意義上的輸入 / 輸出技術, 如 PCI、以太等,已經無法滿足這種需求。如何更為有效的提高資料傳輸速度,增加有效頻寬成為擺在人們面前必須解決的一個重大問題。 InfiniBand 標準就是在這種情況下應運而生的,它在很大程度上解決了傳統輸入 / 輸出架構的傳輸瓶頸問題 , 執行速度可達到每埠 2.5Gb/s 或 10Gb/s 。
目前,這項技術已經廣泛應用到高效能運算等領域,Linux 作業系統核心也對其提供了全面的支援,本文將逐一介紹 InfiniBand 技術架構,以及如何在 Red Hat Enterprise Linux 5.3 和 SLES11 系統中配置 InfiniBand 網路裝置,包括網絡卡驅動的安裝以及 IPoIB(IP over InfiniBand)介面配置。
InfiniBand 是一種基於交換的序列 I/O 互連體系結構,執行速度為每方向 2.5Gb/s 或 10Gb/s(每埠)。和共享匯流排結構不同,InfiniBand 是一個針數很少的序列結構,可連線印刷電路板(PCB – Printed circuit board)上的裝置,並支援箱外頻寬(Bandwidth Out of the Box)。使用普通的雙絞銅線,InfiniBand 支援的連線距離為 17m ;而如果使用光纜,其支援的距離則可達數公里甚至更遠。此外,InfiniBand 還支援 QoS 和 RAS 。 RAS 特性在設計之初就被融入了 InfiniBand 的體系結構,這些特性對於 InfiniBand 有能力成為位於 Internet 核心的下一代伺服器和儲存系統的通用 I/O 基礎架構具有非常重要的意義。 InfiniBand 終將從根本上改變系統和 Internet 互連體系,並促成一場偉大的技術變革。
也正因如此,InfiniBand 系統網路(如圖一所示)受到各大工業公司的支援,其中包括了所有主要伺服器廠商(如:戴爾,惠普,IBM,英特爾,微軟等公司)。
圖 1. InfiniBand 系統網路
從這張圖中我們不難看出,InfiniBand 系統網路主要由兩個核心部件組成:主機通道介面卡(Host Channel Adapter)和 InfiniBand 交換機。其中,HCA 為主機裝置提供一個介面用於支援所有 InfiniBand 定義的操作,而交換機則用於將一個埠接收到的 InfiniBand 報文轉發到另一個埠,它支援單播和多播兩種機制。
隨著 InfiniBand 技術的應用越來越廣,做為應用基礎的 InfiniBand 配置問題也日益成為人們關注的熱點,下面本文將對 InfiniBand 在 Linux 系統中的配置做一個具體的介紹,包括 InfiniBand 在 Red Hat Enterprise Linux 5.3 和 SLES11 系統中的網絡卡驅動的安裝以及 IPoIB 的配置方法。
Red Hat 產品是從 Red Hat Enterprise Linux 5.3 開始正式在核心中整合對 InfiniBand 網絡卡的支援,並且將 InfiniBand 所需的驅動程式以及庫檔案打包到發行 CD 裡, 所以對於有 InfiniBand 應用需求的 Red Hat 使用者,我們推薦其採用 Red Hat Enterprise Linux 5.3 及其以後的系統版本。
-
安裝 InfiniBand 驅動程式
在安裝 InfiniBand 驅動程式之前,請確認 InfiniBand 網絡卡已經被正確地連線或分配到主機。然後,從 Red Hat Enterprise Linux 5.3 的釋出 CD 中獲得 Table1 中給出的 rpm 檔案,並根據上層應用程式的需要選擇安裝相應的 32 位或 64 位軟體包。
表 1. RedHatEL5.3 中 InfiniBand 庫檔案列表
openib-*. el5.noarch.rpm 32bit libibcm-*.el5.ppc.rpm
libibcm-devel-*.el5.ppc.rpm
libibcm-static-*.el5.ppc.rpm
libibcommon-*.el5.ppc.rpm
libibcommon-devel-*.el5.ppc.rpm
libibcommon-static-*.el5.ppc.rpm
libibmad-*.el5.ppc.rpm
libibmad-devel-*.el5.ppc.rpm
libibmad-static-*.el5.ppc.rpm
libibumad-*.el5.ppc.rpm
libibumad-devel-*.el5.ppc.rpm
libibumad-static-*.el5.ppc.rpm
libibverbs-*.el5.ppc.rpm
libibverbs-devel-*.el5.ppc.rpm
libibverbs-static-*.el5.ppc.rpm
libibverbs-utils-*.el5.ppc.rpm64bit libibcm-*.el5.ppc64.rpm
libibcm-devel-*.el5.ppc64.rpm
libibcm-static-*.el5.ppc64.rpm
libibcommon-*.el5.ppc64.rpm
libibcommon-devel-*.el5.ppc64.rpm
libibcommon-static-*.el5.ppc64.rpm
libibmad-*.el5.ppc64.rpm
libibmad-devel-*.el5.ppc64.rpm
libibmad-static-*.el5.ppc64.rpm
libibumad-*.el5.ppc64.rpm
libibumad-devel-*.el5.ppc64.rpm
libibumad-static-*.el5.ppc64.rpm
libibverbs-*.el5.ppc64.rpm
libibverbs-devel-*.el5.ppc64.rpm
libibverbs-static-*.el5.ppc64.rpm
libibverbs-utils 64bit rpm is not available in RedHatEL5.3另外,對於不同型別的 InfiniBand 網絡卡,我們還需要安裝一些特殊的驅動程式,例如Galaxy1/Galaxy2型別的 InfiniBand 網絡卡,就需要安裝 ehca 相關的驅動。在這裡我們給出三種常見 InfiniBand 網絡卡及其所需驅動的對應關係供您參考,見表二。
表 2. 常見 InfiniBand 網絡卡型別及所需驅動對應表
libehca
(for Galaxy1/Galaxy2 support)32bit libehca-*.el5.ppc.rpm
libehca-static-*.el5.ppc.rpm64bit libehca-*.el5.ppc64.rpm
libehca-static-*.el5.ppc64.rpmlibmthca
(for Mellanox InfiniHost support)32bit libmthca-*.el5.ppc.rpm
libmthca-static-*.el5.ppc.rpm64bit libmthca-*.el5.ppc64.rpm
libmthca-static-*.el5.ppc64.rpmlibmlx4
(for Mellanox ConnectX support)32bit libmlx4-*.el5.ppc.rpm
libmlx4-static-*.el5.ppc.rpm64bit libmlx4-*.el5.ppc64.rpm
libmlx4-static-*.el5.ppc64.rpm -
啟動 openibd 服務
在 Red Hat Enterprise Linux 5.3 系統中,openibd 服務在預設情況下是不開啟的,所以在安裝完驅動程式之後,配置 IPoIB 網路介面之前,我們需要先使能 openibd 服務以保證相應的驅動被載入到系統核心。具體方法如下:
清單 1. 啟動 openibd 服務# /etc/init.d/openibd start Loading OpenIB kernel modules: [ OK ]
啟動 openibd 服務後,可用以下命令檢查相應的驅動是否已載入,以 Galaxy2 網絡卡為例應得到以下輸出。
清單 2. Openibd 服務狀態示例# /etc/init.d/openibd status Low level hardware support loaded: ib_ehca Upper layer protocol modules: ib_iser ib_srp ib_sdp ib_ipoib User space access modules: rdma_ucm ib_ucm ib_uverbs ib_umad Connection management modules: rdma_cm ib_cm iw_cm Configured IPoIB interfaces: none Currently active IPoIB interfaces: none
此時,用 ifconfig 命令已經可以看到待配置的 ib 介面, 例如:
清單 3. Ifconfig 命令輸出# ifconfig -a ib0 Link encap:InfiniBand HWaddr 80:00:00:2C:FE:80:00:00:00:00:00:00:00:00:00:00:00:00:00:00 BROADCAST MULTICAST MTU:4092 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:256 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) ib1 Link encap:InfiniBand HWaddr 80:00:00:2E:FE:80:00:00:00:00:00:00:00:00:00:00:00:00:00:00 BROADCAST MULTICAST MTU:4092 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:256 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
但這種使能 openibd 服務的方法只在本次啟動中生效,如果使用者需要在系統重新啟動後仍保持 openibd 使能,則需要使用 chkconfig 命令將其新增到系統服務列表中,如:
清單 4. 使用 chkconfig 新增 openibd 服務# chkconfig --level 235 openibd on # chkconfig --list|grep openibd openibd 0:off 1:off 2:on 3:on 4:off 5:on 6:off
-
配置 IPoIB 網路介面
在 Red Hat Enterprise Linux 5.3 中配置 IPoIB 網路介面的方法與配置以太介面方法類似,即 /etc/sysconfig/network-scripts 路徑下建立相應的 IB 介面配置檔案,如 ifcfg-ib0, ifcfg-ib1 等。這裡我們給出一個對介面 ib0 做簡單 IPoIB 配置的例子以供參考。
清單 5. 介面配置檔案示例# cat /etc/sysconfig/network-scripts/ifcfg-ib0 DEVICE=ib0 BOOTPROTO='static' IPADDR=10.0.0.5 NETMASK=255.255.255.0 BROADCAST=10.0.0.255 NETWORK=10.0.0.0 TARTMODE='onboot'
IB 介面配置檔案建立完成後,需要重新啟動介面裝置以使新配置生效,這時可以使用 ifconfig 命令檢查介面配置是否已經生效,具體操作如下。
清單 6. 重啟介面裝置示例[[email protected] network-scripts]# ifdown ib0 [[email protected] network-scripts]# ifup ib0 [[email protected] network-scripts]# ifconfig ib0 ib0 Link encap:InfiniBand HWaddr 80:00:00:2C:FE:80:00:00:00:00:00:00:00:00:00:00:00:00:00:00 inet addr:10.0.0.5 Bcast:10.0.0.255 Mask:255.255.255.0 inet6 addr: fe80::202:5500:1022:4a00/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:4092 Metric:1 RX packets:24 errors:0 dropped:0 overruns:0 frame:0 TX packets:63 errors:0 dropped:15 overruns:0 carrier:0 collisions:0 txqueuelen:256 RX bytes:8252 (8.0 KiB) TX bytes:16956 (16.5 KiB)
至此,IB 介面配置工作基本完成。如果需要進一步驗證其工作是否正常,可以參考以上步驟配置另外一臺節點,並在兩個節點之間執行 ping 命令。如果 ping 成功,則說明 IPoIB 配置成功。
在 SuSE 產品中,雖然 SLES10 SP2 釋出之初並沒有提供對 InfiniBand 的正式支援,但隨後發行的 SLES10 SP2 Update1 版本里卻包含了 InfiniBand 的全部驅動集合,這一支援更在 SLES11 裡得到了完善和發展,其釋出 CD 已包含了 InfiniBand 相關的 OFED 驅動和管理工具。所以對於有 InfiniBand 應用需求的 SuSE 使用者,我們推薦其採用 SLES11 及其以後的系統版本。
-
安裝 InfiniBand 驅動程式
在安裝 InfiniBand 驅動程式之前,請確認 InfiniBand 網絡卡已經被正確地連線或分配到主機。然後,從 SLES11 的釋出 CD/DVD 中獲得 Table3 中給出的 rpm 檔案,並根據上層應用程式的需要選擇安裝相應的軟體包。
表 3. SLES11 中 InfiniBand 庫檔案列表
Platforms Driver/Library SLES11 ofed-*.ppc64.rpm
ofed-kmp-default-*.ppc64.rpm
ofed-kmp-ppc64-*.ppc64.rpm
opensm-*.ppc64.rpm
libcxgb3-rdmav2-*.ppc64.rpm
libehca-rdmav2-*.ppc64.rpm
libibcm-*.ppc64.rpm
libibcommon1-*.ppc64.rpm
libibmad-*.ppc64.rpm
libibumad-*.ppc64.rpm
libibverbs-*.ppc64.rpm
libipathverbs-*.ppc64.rpm
libmlx4-rdmav2-*.ppc64.rpm
libmthca-rdmav2-*.ppc64.rpm
librdmacm-*.ppc64.rpm
libsdp-*.ppc64.rpm
mpi-selector-*.ppc64.rpm
mstflint-*.ppc64.rpm
libibverbs-devel-*.ppc64.rpm
(Note: libibverbs-devel-*.ppc64.rpm is in SLES 11 SDK ISO)雖然 SLES11 對 InfiniBand 提供了更好的支援,但仍有部分使用者的應用是建立在 SLES10 SP2 系統之中的。所以,在這裡我們也給出了 SLES10 SP2 系統中需要載入的 InifiniBand 庫和驅動包,詳見表 4 。
表 4. SLES10SP2 中 InfiniBand 庫檔案列表
Platforms Driver/Library SLES10SP2 libcxgb3-64bit-*.ppc.rpm
libcxgb3-devel-*.ppc.rpm
libcxgb3-devel-64bit-*.ppc.rpm
libehca-*.ppc.rpm
libehca-64bit-*.ppc.rpm
libehca-devel-*.ppc.rpm
libehca-devel-64bit-*.ppc.rpm
libibcm-*.ppc.rpm
libibcm-64bit-*.ppc.rpm
libibcm-devel-*.ppc.rpm
libibcm-devel-64bit-*.ppc.rpm
libibcommon-*.ppc.rpm
libibcommon-64bit-*.ppc.rpm
libibcommon-devel-*.ppc.rpm
libibcommon-devel-64bit-*.ppc.rpm
libibmad-*.ppc.rpm
libibmad-64bit-*.ppc.rpm
libibmad-devel-*.ppc.rpm
libibmad-devel-64bit-*.ppc.rpm
libibumad-*.ppc.rpm
libibumad-64bit-*.ppc.rpm
libibumad-devel-*.ppc.rpm
libibumad-devel-64bit-*.ppc.rpm
libibverbs-*.ppc.rpm
libibverbs-64bit-*.ppc.rpm
libibverbs-devel-*.ppc.rpm
libibverbs-devel-64bit-*.ppc.rpm
libipathverbs-*.ppc.rpm
libipathverbs-64bit-*.ppc.rpm
libipathverbs-devel-*.ppc.rpm
libipathverbs-devel-64bit-*.ppc.rpm
libmlx4-*.ppc.rpm
libmlx4-64bit-*.ppc.rpm
libmlx4-devel-*.ppc.rpm
libmlx4-devel-64bit-*.ppc.rpm
libmthca-*.ppc.rpm
libmthca-64bit-*.ppc.rpm
libmthca-devel-*.ppc.rpm
libmthca-devel-64bit-*.ppc.rpm
librdmacm-1.0.6-*.ppc.rpm
librdmacm-64bit-*.ppc.rpm
librdmacm-devel-*.ppc.rpm
librdmacm-devel-64bit-*.ppc.rpm
libsdp-*.ppc.rpm
libsdp-64bit-*.ppc.rpm
libsdp-devel-*.ppc.rpm
libsdp-devel-64bit-*.ppc.rpm
mpi-selector-*.ppc.rpm
mstflint-*.ppc.rpm
mvapich2-*.ppc.rpm
mvapich2-64bit-*.ppc.rpm
mvapich2-devel-*.ppc.rpm
mvapich2-devel-64bit-*.ppc.rpm
ofed-1.3-*.ppc.rpm
ofed-cxgb3-NIC-kmp-ppc64-*.ppc.rpm
ofed-doc-*.ppc.rpm
ofed-kmp-ppc64-*.ppc.rpm
open-iscsi-*.ppc.rpm
opensm-*.ppc.rpm
opensm-64bit-*.ppc.rpm
opensm-devel-*.ppc.rpm
opensm-devel-64bit-*.ppc.rpm
perftest-*.ppc.rpm
qlvnictools-*.ppc.rpm
rds-tools-*.ppc.rpm
release-notes-as-*.ppc.rpm
ruby-*.ppc.rpm
sdpnetstat-*.ppc.rpm
srptools-*.ppc.rpm
tvflash-*.ppc.rpm -
啟動 openibd 服務及配置 IPoIB 網路介面
在 SLES11 系統中,啟動 openibd 服務以及配置 IPoIB 網路介面的方法與 RedHat 基本類似,唯一不同的是介面配置檔案的位置。在 SLES11 中,介面配置檔案位於 /etc/sysconfig/network 目錄下,下面是一個簡單配置的例子僅供讀者參考。
清單 7. 介面配置檔案示例# cat /etc/sysconfig/network/ifcfg-ib0 DEVICE=ib0 BOOTPROTO='static' IPADDR=20.0.0.5 NETMASK=255.255.255.0 BROADCAST=20.0.0.255 NETWORK=20.0.0.0 STARTMODE='onboot'
其它配置步驟與 RedHat 完全相同,這裡不再複述。
本文介紹了 InfiniBand 技術的基本構架,以及在 Linux 系統中如何對 InfiniBand 裝置進行網絡卡驅動的安裝以及 IPoIB(IP over InfiniBand)介面配置,從而為上層高效能運算應用軟體的運作提供了必要的環境基礎。
相關推薦
Linux系統中配置指令碼程式開機啟動
$ vi /etc/rc.d/rc.local #!/bin/bash # THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES # # It is highly advisable to create own systemd serv
在linux系統中配置json環境__2018.12.17
原文轉自:https://www.cnblogs.com/fnlingnzb-learner/p/6743367.html 原文轉自:https://blog.csdn.net/asia66/article/details/81394047 linux下使用C++ Json庫 安裝Json庫
InfiniBand 技術及其在 Linux 系統中的配置簡介
前言 隨著伺服器處理速度的不斷加快,使用者對提升網路傳輸速度的需求也越來越緊迫,傳統意義上的輸入 / 輸出技術, 如 PCI、以太等,已經無法滿足這種需求。如何更為有效的提高資料傳輸速度,增加有效頻寬成為擺在人們面前必須解決的一個重大問題。 InfiniBand 標準就是在這種情況下應運而生的,它在很大
老男孩教育每日一題-2017年5月12日-磁盤知識點:linux系統中LVM配置實現方法?
邏輯卷管理 磁盤 每日一題 1.題目老男孩教育每日一題-2017年5月12日-磁盤知識點:linux系統中LVM配置實現方法?2.參考答案01:將一個或多個物理分區創建為一個PV# pvcreate /dev/sdb{1,2} Physical volume "/dev/sdb1" success
Linux系統中MySQL數據庫“主從”配置
linux mysql數據庫主從配置 MySQL數據庫“主從”配置一、配置概述: 在Linux操作系統中配置MySQL數據庫的主從復制是很重要的,為什麽這樣說呢!是因為在你搭建一個服務器以後你配置了2臺數據庫,一主一從。2臺數據庫配置好以後,當其中一臺數據庫被攻擊以後,你被攻擊的這臺數據庫的數據
Linux系統中管理用戶賬戶和組賬戶及其權限設置
系統 運維 用戶賬戶分為:超級用戶、系統用戶、普通用戶。 超級用戶: 用戶名:root ; UID:0; 系統用戶: 用戶名:由用戶自行設定; UID:1~499(Centos6及之前),1~999(Centos7); 普
主機訪問虛擬機中的linux系統如何配置
arch alt drop 圖片 image conf 防火墻 acc com 如何訪問自己筆記本上安裝的虛擬機中發布的web服務?訪問虛擬機,訪問Linux系統,關閉Linux系統防火墻 虛擬機系統:ifconfig:查看虛擬機中Linux系統的ip 服務:http:/
Linux系統中apache(web伺服器)配置
一.apache的相關知識 1.定義: Apache HTTP Server(簡稱Apache)是Apache軟體基金會的一個開放原始碼的網頁伺服器,可以在大多數計算機作業系統中執行,由於其多平臺和安全性被廣泛使用,是最流行的Web伺服器端軟體之一。它快速、可靠並且可通過簡單的API擴充
Linux系統中定時任務cron和crontab命令詳解與配置規則說明
cron機制 cron可以讓系統在指定的時間,去執行某個指定的工作,我們可以使用crontab指令來管理cron機制 crontab引數 -u:這個引數可以讓我們去編輯其他人的crontab,如果沒有加上這個引數的話就會開啟自己的crontab
SecureCRT連線VMWare中的linux系統相關配置
網上google一大片都是感覺看得不明白,以下是自己摸索的配置虛擬機器中linux網路問題,目的就是用本地的crt連線虛擬機器中的linux,以下是本人配置的相關步驟,有不當之處還望多多指教 首先,本機win7網路配置情況如下: 注意:一下虛擬機器中linux配
Linux(六)Linux系統中安裝配置JDK
1.首先將JDK安裝檔案拷貝到Linux系統中 這裡我是在虛擬機器中操作,我通過共享資料夾進行檔案傳輸,如果是遠端Linux系統可以使用xftp(在我前面部落格講過如何使用)進行檔案傳輸。 從共享資料夾中拷貝到/usr/local/目錄下 2.對壓縮包進行解
系統技術非業餘研究 » 洞悉Linux系統軟硬體配置
我們在做伺服器的時候,老大扔給你一臺機器,要你在上面開發。通常伺服器軟體是非常依賴於系統的軟硬體的,軟體通常是要緊貼硬體的特性,如果我們不能瞭解機器的硬體,我們就無法高效的開發。 比如說想知道Linux的系統的版本,CPU有幾個,記憶體多少大, 機器什麼型號,Raid卡什麼型號,硬碟有幾個,檔案系
Linux系統中安裝python3和pip及相關配置
linux中安裝python3 前言 一般linux系統都預設安裝了python2,儘量不要管它,使用python3執行python指令碼就好,因為linux系統費裡有很多程式依賴目前的python2環境,比如ubuntu裡的軟體中心和yum!!!!! 不要動現有的python2
Linux系統中vsftpd配置及如何新增vsFTPd使用者和設定許可權
/etc/vsftpd/vsftpd.conf 本身就是一個挺詳細的配置檔案,且使用『 man 5 vsftpd.conf 』則可以得到完整的引數說明。與主機較相關的設定值 connect_from_port_20=YES (NO) ftp-data 的埠; listen_port=21 vsftpd 使用的
Linux系統中的jdk安裝配置
linux一般都安裝的是openjdk,但是在開發中,有些時候必須要用sunjdk,這是隻能將openjdk解除安裝,裝上sunjdk。 1、查詢現有安裝版本 rpm -qa | grep jdk 2、解除安裝openjdk sudo yum -y remove java-1.6.0-openjdk 3、修
linux系統中rsync的安裝和使用,以及配置rsync開機啟動
1、安裝 $ wget https://download.samba.org/pub/rsync/src/rsync-3.1.2.tar.gz $ tar -xvf rsync-3.1.2.tar.gz $ cd rsync-3.1.2 $ ./configure --pr
Linux系統中一些常用的配置檔案
Linux系統下有一些重要的配置檔案,例如配置防火牆過濾的檔案iptables,該檔案在CentOS下的路徑為/etc/sysconfig/iptables。如果我們要配置防火牆,那必須編輯它,但是Linux系統這些配置檔案比較多,不可以記住每一個配置檔案的
Linux系統中網路配置詳解
從linux誕生的那一天起,就註定了它的網路功能空前地強大.所以在linux系統中如何配置網路,使其高效,安全的工作就顯得十分重要.下面我們就從網路裝置的安裝,網路服務的設定和網路安全性三個方面來介紹一下linux系統中網路的設定. 一.安裝和配置網路裝置 在安裝linu
Linux系統中安裝配置Nginx
準備工具: 安裝包:nginx-1.12.0.tar.gz 下載地址: http://nginx.org/en/download.html 伺服器環境:1.CentOS6.464 位 2. 安裝 c++編譯環境( 如果沒有c++編譯環境,請輸入這串指令:yum inst
【linux】linux系統中常見配置文件說明
pre clas sysctl 最大 code sem ipv4 proc 異步 1.配置文件/proc/sys/fs/file-nr 裏文件裏顯示三個數字 [root@localhost logs]# cat /proc/sys/fs/file-nr 2112