fc2ブログ

[CentOS]NVMe-oF構築(SPDK)

ここが参考になりまくる気がする。
http://metonymical.hatenablog.com/entry/2018/07/22/094004


Initiator設定

ホスト: g33

# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
curl: (35) Cannot communicate security with peer: no common encryption algorithm(s).
Error:https://www.elrepo.org/RPM-GPG-KEY-elrepo.org: import read failed(2).

調べてみると、一気にrpm --importしないで、まずはlocalに落としてからrpmする、という掲示板あったが、
curlでやってもエラーなので、落とし方わからず。
もう1つは、curlをupdateすれば良いって。

# yum update curl
# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
curlのupdateでエラー消えた。

# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm

現在のカーネルバージョンを調べる。
# yum list installed | grep kernel
kernel.x86_64       3.10.0-229.el7   @anaconda
kernel-devel.x86_64   3.10.0-229.el7   @anaconda
kernel-tools.x86_64   3.10.0-229.el7   @anaconda

カーネルアップグレード(kernel-mlは最新安定版を、kernel-ltは長期サポート版をインストールする)
# yum --enablerepo=elrepo-kernel install kernel-ml

# awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg

0 : CentOS Linux (5.2.2-1.el7.elrepo.x86_64) 7 (Core)
1 : CentOS Linux (5.2.2-1.el7.elrepo.x86_64) 7 (Core) with debugging
2 : CentOS Linux 7 (Core), with Linux 3.10.0-229.el7.x86_64
3 : CentOS Linux 7 (Core), with Linux 0-rescue-76ab3xxxxxxxxxxxxxx



起動時のカーネルを0番の5.2.2-1に設定。
# grub2-set-default 0

grub.cfgへの反映してから、再起動
# grub2-mkconfig -o /boot/grub2/grub.cfg
# reboot



Target設定

ホスト: z77

まずは上記Initiator設定の通り進める。
それが終わったら、以下へ。

# yum remove kernel
 ※ この時、MLNX_OFEDカーネルが削除されたみたい。
# yum -y update kernel-tools-libs kernel-tools

# vi /etc/yum.repos.d/elrepo.repo

[elrepo-kernel]
 :
enabled=1 #0→1に修正



# yum swap kernel-tools-libs kernel-tools -- kernel-ml-tools-libs kernel-ml-tools
# yum -y install kernel-ml-devel kernel-ml-headers
 ※ ここでheadersがコンフリクトした
# yum list installed | grep kernel
記事では以下のようになってれば完了との事だがなってない。

kernel-ml.x86_64 4.18.4-1.el7.elrepo @elrepo-kernel
kernel-ml-devel.x86_64 4.18.4-1.el7.elrepo @elrepo-kernel
kernel-ml-headers.x86_64 4.18.4-1.el7.elrepo @elrepo-kernel
kernel-ml-tools.x86_64 4.18.4-1.el7.elrepo @elrepo-kernel
kernel-ml-tools-libs.x86_64 4.18.4-1.el7.elrepo @elrepo-kernel



# systemctl disable firewalld
# vi /etc/selinux/config

SELINUX=disabled


# setenforce 0

# vi /etc/default/grub

GRUB_CMDLINE_LINUX=の行末に追加
default_hugepagesz=1G hugepagesz=1G hugepages=8



上で保存後にgrubに反映、との事だが、grub2.cfgは存在せず、grub2-efi.cfgがある。
# grub2-mkconfig -o /etc/grub2-efi.cfg

次の手順は、記事では、3-3.NICのIPアドレス設定、になってるのでIP設定しようと思うが、現在HCAがInfinibandモードになってるので、イーサネットモードにすべきと理解。
そうなると、さっき削除してしまったMLNX_OFEDを再度インストールしないとダメかな。

# ./mlnxofedinstall

Logs dir: /tmp/MLNX_OFED_LINUX-2.4-1.0.4.3698.logs
The 5.2.2-1.el7.elrepo.x86_64 kernel is installed, MLNX_OFED does not have drivers available for this kernel.
You can run mlnx_add_kernel_support.sh in order to generate an MLNX_OFED package with drivers for this kernel.




http://hpcdiyc.hpc.co.jp/topics14.html
ここが参考になるかな。
# ./mlnx_add_kernel_support.sh --mlnx_ofed /home/bob/Download/MLNX_OFED_LINUX-2.4-1.0.4-rhel7.1-x86_64 --make-iso

ERROR: Kernel sources directory (/lib/modules/5.2.2-1.el7.elrepo.x86_64/build/) not found



確認してみると、
/lib/modules/5.2.2-1.el7.elrepo.x86_64/build/
は存在するがこれはリンクファイルであって、リンク先の
/usr/src/kernels/5.2.2-1.el7.elrepo.x86_64
が存在しない状況。

確かkernel-develでソースがインストールされたので、やってみる。
# yum -y install kernel-devel
 ※ これだと3.10バージョンがインストールされた。

カーネルバージョンに合ったバージョンを入れる。
# yum -y install kernel-devel-`uname -r`
しかし、存在しないと言われる。
No package kernel-devel-5.2.2-1.el7.elrepo.x86_64

ちょっと調べるとそもそも指定パッケージが間違ってたみたい。
# yum -y install kernel-ml-devel-`uname -r`
これでカーネルソースがインストールされた。

# ./mlnx_add_kernel_support.sh --mlnx_ofed /home/bob/Download/MLNX_OFED_LINUX-2.4-1.0.4-rhel7.1-x86_64 --make-iso

Note: This program will create MLNX_OFED_LINUX ISO for rhel7.1 under /tmp directory.
    All Mellanox, OEM, OFED, or Distribution IB packages will be removed.
Do you want to continue? [y/N] : y
See log file /tmp/mlnx_ofed_iso.32359.log

Building OFED RPMs, Please wait...

ERROR: Failed executing "MLNX_OFED_SRC-2.4-1.0.4/install.pl -c /tmp/mlnx_iso.32359/ofed.conf --kernel 5.2.2-1.el7.elrepo.x86_64 --kernel-sources /lib/modules/5.2.2-1.el7.elrepo.x86_64/build/ --builddir /tmp/mlnx_iso.32359 --disable-kmp --build-only"
ERROR: See /tmp/mlnx_iso.32359.log



エラー原因を見るために指定されたlogを見てみる。
# vi /tmp/mlnx_iso.32359.log

Logs dir: /tmp/OFED.3974.logs
isert is not available on this platform
isert is not available on this platform
^[[31mKernel 5.2.2-1.el7.elrepo.x86_64 is not supported.^[[0m
^[[34mFor the list of Supported Platforms and Operating System see^[[0m
^[[34m/tmp/mlnx_iso.3945/MLNX_OFED_SRC-2.4-1.0.4/docs/OFED_release_notes.txt^[[0m



カーネルを5.2.2にしたのが原因かな?
RoCEv2はKernel4.5以上でサポートらしいので、4.5をインストールしたい。

# yum --enablerepo=elrepo-kernel install kernel-lt
これをやると、
4.4.186-1.el7.elrepo
がインストールされる。
バージョン指定でカーネルをインストールしないと4.5はインストール出来ないようだ。

別ページに書いた以下を参考にバージョン指定してカーネルをインストールする。
http://bobgosso.blog13.fc2.com/blog-entry-756.html

カーネルバージョンは指定通りになったが、気が付いたら、いつのまにかCentOS 7.6になってた。


7.1にダウングレードするために、別ページに書いた以下を参考。

カレンダー
06 | 2019/07 | 08
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 - - -
累積訪問者
現在の訪問者
現在の閲覧者数:
最新記事
最新トラックバック
最新コメント
月別アーカイブ
カテゴリ
プロフィール

bobgosso

Author:bobgosso
FPGAのブログへようこそ!

検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード