在linux系统中配置NVMe over FC与配置NVMe over TCP类似,前5步操作请参考《在linux系统中配置NVMe over TCP》,网页连接如下:

  https://www.cnblogs.com/JamesLi/p/11399054.html

注意事项:

以Emulex卡举例,在内核加载lpfc模块时,需要给模块参数赋值,包括:lpfc_enable_nvmet 和 lpfc_enable_fc4_type

例如:

modprobe lpfc lpfc_enable_nvmet=0x1234567890ABCDEF  lpfc_enable_fc4_type=3

解释描述:

lpfc lpfc_enable_nvmet赋值的是做target端的FC端口wwpn(从/sys/class/fc_host/hostx/port_name获得),设置多个时请用逗号分开(当前版本最大支持32个)。

lpfc_enable_fc4_type可以赋值1或2或3,这里3表示及支持SCSI又支持NVMe。

从第6步向后,请按下边步骤操作。

6. 创建NVMe over FC的Transport层

进入/sys/kernel/config/nvmet/ports目录进行操作。

mkdir 123

进入/sys/kernel/config/nvmet/ports/123/目录,此目录自动包含了如下内容

开始设置这些属性:

echo fc > addr_trtype
echo fc > addr_adrfam
addr_traddr            //注意:输入的traddr包含两部分,前边是nn后边是pn(即:node name和port name)。有两种格式即“nn-1234567890ABCDEF:pn-ABCDEF0123456789”或“nn-0x1234567890ABCDEF:pn-0xABCDEF0123456789”。两种格式差别就是是否带了0x标识。(注意nn和pn值的中间的“:”冒号可以用其他任意字符替代,而不要用空格(空格可能会导致只写入了一半),写入之后请用cat addr_traddr确认下是否已经成功写入)
addr_trsvcid      //注意:这个字段在FC类型中暂时未用到

8. 使用host主机进行Discovery

在host端执行命令:

nvme discover -t fc  -a nn-0x1234567890ABCDEF-pn-0xABCDEF0123456789  -w nn-0x2345678901ABCDEF-pn-0x1234567890FEDCBA

参数:

-a是指定的target端FC端口的node_name和port_name

-w是指定的host_traddr,与target相连接的本地FC端口的node_name和port_name

9. 连接

在host主机端执行命令

nvme connect -t fc  -a nn-0x1234567890ABCDEF-pn-0xABCDEF0123456789  -w nn-0x2345678901ABCDEF-pn-0x1234567890FEDCBA  -n nqn.2014-08.org.nvmexpress.mytest

参数:

-n指定target端将要连接的NVM subsystem的NQN。

连接成功后,请用nvme list命令确认下是否已经看到连接的nvme盘。

其他操作,与NVMe over TCP的操作相同。

例如:

nvme id-ctrl /dev/nvme0n1

nvme id-ns /dev/nvme0n1

10. 其他

target端设备重启一次,或许主机再次连接时遇到问题,提示找不到/dev/nvme-fabrics设备。

解决:

  a)使用 ls -l /dev/nvme-fabrics查看,确认是存在此设备的(如果不存在则用lsmod |grep nvme_fabrics确认是不是内核模块异常了);

  b)用dmesg查看内核日志,如果出现“nvme_fc_create_ctrl   combination not found”,可能是nvme_fc_create_ctrl函数return ERR_PTR(-ENOENT);这个错误码导致的误报成了找不到文件或目录。

  c)如果是上一步的原因,则可以echo 1 >/sys/class/fc_host/hostx/issue_lip 或者重启一次主机来解决此问题。

在linux系统中配置NVMe over FC的更多相关文章

  1. 在linux系统中配置NVMe over TCP

    1. 准备环境 1.1 准备linux系统 要求的linux系统可以是运行在物理机上,也可以是虚拟机上: 建议有个linux系统,一个做host,一个做target,如果资源紧张也可以把host和ta ...

  2. Linux系统中配置jdk

    在Linux系统下安装jdk 1.到Oracle公司的官网里下载好jdk,网址 http://www.oracle.com/technetwork/java/javase/downloads/jdk8 ...

  3. 『动善时』JMeter基础 — 57、Linux系统中运行JMeter脚本

    目录 1.Linux系统中安装Java环境 (1)解压Java安装包 (2)配置Java环境变量 (3)验证Java环境是否配置成功 2.Linux系统中安装JMeter (1)下载JMeter (2 ...

  4. 在新安装的Linux系统中,防火墙默认是被禁掉的,一般也没有配置过任何防火墙的策略,所有不存在/etc/sysconfig/iptables文件。

    原因:在新安装的Linux系统中,防火墙默认是被禁掉的,一般也没有配置过任何防火墙的策略,所有不存在/etc/sysconfig/iptables文件. 解决办法: .随便写一条iptables命令配 ...

  5. Linux系统中ElasticSearch搜索引擎安装配置Head插件

    近几篇ElasticSearch系列: 1.阿里云服务器Linux系统安装配置ElasticSearch搜索引擎 2.Linux系统中ElasticSearch搜索引擎安装配置Head插件 3.Ela ...

  6. linux系统中Nginx+FFmPeg+vlc实现网页视频播放配置过程

    linux系统中Nginx+FFmPeg实现网页监控视频播放配置过程 1.安装好的nginx上添加模块nginx-http-fiv-module-master 此模块是rtmp模块的升级版,有它所有的 ...

  7. linux系统中给mysql配置环境变量

    安装过程就不写了,记得安装的路径就行,接下来要用到. 修改配置文件 vim /etc/profile 设置环境变量 写一个MYSQL_HOME,值为“mysql的安装路径” 在PATH后面加上$MYS ...

  8. Linux 系统中的MySQL数据库默认区分大小写

    今天在开发中遇到这么个问题,将连接的数据库改为服务器上的时候(服务器是Linux系统的),程序跑起来后一直出错,总提示数据库的表找不到, 而打开数据库看该表明明是存在的,在我的印象中MySQL数据是不 ...

  9. Linux系统中“动态库”和“静态库”那点事儿 /etc/ld.so.conf 动态库的后缀为*.so 静态库的后缀为 libxxx.a ldconfig 目录名

    Linux系统中“动态库”和“静态库”那点事儿 /etc/ld.so.conf  动态库的后缀为*.so  静态库的后缀为 libxxx.a   ldconfig   目录名 转载自:http://b ...

随机推荐

  1. 进阶之路 | 奇妙的Drawable之旅

    前言 本文已经收录到我的Github个人博客,欢迎大佬们光临寒舍: 我的GIthub博客 学习清单: Drawable简介 Drawable分类 自定义Drawable 一.为什么要学习Drawabl ...

  2. java 开发社区蔬菜、食品交易平台系统 源码

    开发环境:    Windows操作系统开发工具: MyEclipse+Jdk+Tomcat+Mysql数据库 运行效果图 源码及原文链接:https://javadao.xyz/forum.php? ...

  3. 使用jquery封装的动画脚本(无动画、css3动画、js动画)

    自己封装好的showhide.js 包含无动画.css3动画.js动画 包括:fade(淡入淡出)  slideUpDown(上下滑动)  slideLeftRight(左右滑动)  fadeSlid ...

  4. SQLyog12.08详细安装教程

    SQLyog安装教程 一.软件下载 为了更好的学习,我们需要可视化界面,而不仅仅是通过命令行黑窗口管理数据库.SQLyog 就是一个快速而简洁的图形化管理MYSQL数据库的工具. SQLyog12.0 ...

  5. 使用vscode阅读C代码outline不显示问题

    1 问题:使用vscode code 阅读C代码 outline 显示No symbols found in document 'xxxx' 2 参考网上解决方法,进行如下操作 2.1  安装C/C+ ...

  6. SDI011 读卡器发送非APDU指令

    1 使用FFFE 发送Raw data 例如: 想要发送raw data :5140 FFFE0000025140 实际收到的是: 0B0051403E1E , (0B:PCB , 00:CID, 3 ...

  7. Django2.2 静态文件的上传显示,遇到的坑点-------已解决

    前情提要:这里虽说是Django2.2 ,但经过测试发现Django 的其他版本也可以用此方法解决 一.项目根目录下的static文件的路由显示问题 在项目根目录下创建静态文件时发现,即使我配置了se ...

  8. 简单的OO ALV显示ALV及下载

    REPORT OO_ALV. CLASS OO_ALV DEFINITION. PUBLIC SECTION. METHODS:GET_DATA IMPORTING AMOUNT TYPE I,&qu ...

  9. lucas定理及其拓展的推导

    lucas定理及其拓展的推导 我的前一篇博客-- lucas定理 https://mp.csdn.net/mdeditor/100550317#主要是给出了lucas的结论和模板,不涉及推导. 本篇文 ...

  10. Q&A in 2018 - Q1

    Those questions Simply write down questions that ever frustrated me a little: How to convert unix ti ...