在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. 一个sql

    一个小功能,sql里面用到了一些玩法,记录一下~ SELECT id, code, path, (1) AS type FROM department WHERE path LIKE CONCAT( ...

  2. vue router引入路由与路由配置容易犯错的地方与常见的报错与处理报错

    首先npm安装vue-router插件,就不说了其次: 先看下我本地的目录结构吧 第一步:在src目录下新建一个专门存放router的index.js文件里面的内容为: import Vue from ...

  3. HTML基础标签图片文本超链接列表表格介绍

    1.HTML基础标签图片常见代码形式<img src="图片路径地址" alt="属性名" title="占位符">常见的图片格 ...

  4. python进阶----深拷贝&浅拷贝

    复制需要区分,,复制的是源文件的数据,还是指向源文件数据的地址 1.引用   b=a时,理解为b指向了a指向的数据,相当于引用复制 a=[1,2] b=a #验证复制的是数据还是地址 #1.查看ab的 ...

  5. tomcat - class sun.awt.X11GraphicsEnvironment异常处理

    原因导致 经过Google发现很多人也出现同样的问题.从了解了X11GraphicEnvironment这个类的功能入手,一个Java服务器来处理图片的API基本上是需要运行一个X-server以便能 ...

  6. spring的困惑--org.springframework.web.servlet.DispatcherServlet noHandlerFound

    出现这种情况可能是代码没有更新到Tomcat服务器上

  7. 字节跳动挤上少儿英语末班车,gogokid能否抵达终点?

    编辑 | 于斌 出品 | 于见(mpyujian) 近日,据多方消息,字节跳动旗下少儿英语品牌gogokid,迎来了一位新的90后CEO金钱琛.据知情人士透露,金钱琛入职不到两个月,目前全面掌管gog ...

  8. Uva12716 素数筛思想的应用

    Uva12716 题意: 输入整数n,1<= n <=3e7,问有多少个整数对(a,b)满足:1 <= b <= a <= n,且gcd(a,b)== a XOR b 解 ...

  9. 如何在IDEA中使用GitHub

    第一步:在GitHub网站中注册自己的账号 地址:https://github.com/ 第二步:下载Git客户端 地址:https://git-scm.com/ 第三步:在GitBash中配置用户名 ...

  10. 我国自主开发的编程语言“木兰”居然是一个披着“洋”皮的Python!

    究竟是真“自主”,还是又一个披着“洋”皮的“红芯浏览器”? ​ 作者 | 沉迷单车的追风少年 出品 | CSDN博客 昨天看到新闻: ! ​ 心头一震,看起来很厉害啊!毕竟前几天美国宣布要对中国AI软 ...