[Fibre Channle 实战之二] FC Target的创建和使用

[Fibre Channle 实战之二] FC Target的创建和使用

大家好,又见面了,我是全栈君。

基于最近Fibre channel的相关工作,整理了下关于创建和使用target、实现fail-over过程中碰到的问题和解决方法。


0.准备好合适的后端targetcli工具

0.1安装后端工具

主要有两个库要装,rtslibtargetcli,可以参考下面的两种方法进行安装:

python-rtslib.noarch : API for Linux kernel LIO SCSI target

方法一:通过yum安装

yum install python-rtslib.noarch targetcli

yum install python-netifaces-0.10.4-3.el7.x86_64 python-prettytable.noarch

yum install python-configshell.noarch


方法二:用gitgithub上下载支持FBtargetclirtslib版本


git clone  https://github.com/Datera/targetcli

git clone https://github.com/Datera/rtslib


然后分别进入目录,运行:

./setup.py build

/setup.py install

这个过程中,可能遇到依赖的问题,可以尝试通过安装下面的依赖包解决:

yum install python-netifaces-0.10.4-3.el7.x86_64 python-prettytable.noarch

yum install python-configshell.noarch

0.2检查配置文件

需要确保当前targetcli至少支持iscsi,要求/var/target/fabric至少有iscsi.specqla2xxx.spec

[root@localhost fabric]# pwd

/var/target/fabric

You have new mail in /var/spool/mail/root

[root@localhost fabric]# ls

ib_srpt.spec iscsi.spec  loopback.spec  qla2xxx.spec  tcm_fc.spec usb_gadget.spec  vhost.spec

此外,为了让后端存储设备通过Fibre channel建立target的时候能够自动找到WWN,需要确保qla2xxx.spec里面文件里能自动过滤得到HBAWWN,这是通过修改:

wwn_from_files_filter = “sed -e s/0x// -e ‘s/../&:/g’ -e s/:$//” 实现的。

[root@localhost fabric]# cat qla2xxx.spec

# The qla2xxx fabric module uses the default feature set.

features = acls

# Non-standard module naming scheme

kernel_module = tcm_qla2xxx

# The module uses hardware addresses from there

wwn_from_files = /sys/class/fc_host/host*/port_name

# Transform ‘0x1234567812345678′ WWN notation to ’12:34:56:78:12:34:56:78’

wwn_from_files_filter = “sed -e s/0x// -e ‘s/../&:/g’ -e s/:$//”

# The configfs group is default

# configfs_group = qla2xxx

1.实现通过Fibre Channel导出后端存储设备的脚本

可以参考笔者的一个简单实现:

[root@localhost myfc]# cat create_fc_volume.sh

#!/bin/bash

fc_target_name=”naa.2100000e1e1b0190″

## initiator wwn can be get by following command””

#cat /sys/class/fc_host/host*/port_name | sed -e s/0x// -e ‘s/../&:/g’ -e s/:$//

acl_host0=”21:00:00:0e:1e:c2:3e:a0″

acl_host1=”21:00:00:0e:1e:c2:3e:a1″

# step 1: create back-end storage

targetcli /backstores/block create my_lun0 /dev/md1287

targetcli /backstores/block create my_lun1 /dev/md0

# step 2: create target

targetcli /qla2xxx create 21:00:00:0e:1e:1b:01:90

#targetcli /qla2xxx create 21:00:00:0e:1e:1b:01:91

# step 3: export the back-end storage

targetcli /qla2xxx/${fc_target_name}/luns create /backstores/block/my_lun0

targetcli /qla2xxx/${fc_target_name}/luns create /backstores/block/my_lun1

# step 3: set ACL controlling list

targetcli /qla2xxx/${fc_target_name}/acls create ${acl_host0}

targetcli /qla2xxx/${fc_target_name}/acls create ${acl_host1}

# step 4: save configration

targetcli saveconfig myfc_lun.lio

运行上面的脚本,成功之后用targetcli可以看到后端存储target已经建立起来了:

wKioL1kgBxWi7GNWAAFaoYRk05c988.jpg


2.发现并连接FC Target

在上面ACL列出的WWN所对应的HBA卡的host的操作系统上, 运行下面的命令:

echo 1 > /sys/class/fc_host/hostX/issue_lip 就能自动发现并连接上后端存储设备,此时会发现host /dev下面多了

一块设备,可以通过host上的vdbench对它进行简单性能测试:

wKioL1kgB3XijKE9AACtdl29Uek836.jpg

可以看到,上面的带宽确实很快。

本文转自存储之厨51CTO博客,原文链接: http://blog.51cto.com/xiamachao/1927791,如需转载请自行联系原作者

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/107942.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • vim怎么高亮显示_vim配置教程

    vim怎么高亮显示_vim配置教程经常使用SecureCRT在linux下修改一些配置文件,使用vi打开总是一个颜色,找起来比较头大。因为vi不支持高亮,所以需要使用vim。安装vim:yuminstall-yvim(ubuntu使用apt-get)全局(所有用户)vim配置文件路径:/etc/vimrc当前用户vim配置文件路径:~/.vimrc如果存在该文件,则备份一下,以免以后找不到。在vimrc文件中输入:synta…

    2022年9月29日
    3
  • tcp为什么是三次握手不是两次握手_tcp四次挥手

    tcp为什么是三次握手不是两次握手_tcp四次挥手一、为什么握手是三次,而不是两次或者四次?答:两次不安全,四次没必要。tcp通信需要确保双方都具有数据收发的能力,因此双方都要发送SYN确保对方具有通信的能力二、为什么挥手是四次而不是三次?答:发送FIN包只能表示对方不再发送数据了,不代表对方不再接收数据,因此被动关闭方进行ACK回复之后有可能还会继续发送数据,等到不再发送数据了才会发送下一个FIN包,因此FIN包和ACK包是分开的…

    2022年10月3日
    5
  • input = file 实现上传文件

    input = file 实现上传文件使用input=file实现文件上传功能,如果点击提交按钮,提交表单并上传选中的文件:<FormItemlabel=”上传简历”><divclassName=”section-pushInChannel-fileInput”><inputid=”file”onChange={this.handleFileChange}t…

    2022年7月16日
    14
  • 面试题 HashMap 数据结构 实现原理

    面试题 HashMap 数据结构 实现原理数据结构HashMap的数据结构数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。数组:数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难;链表:链表存储区间离散,占用内存比较宽松,故空间复杂度很小,但时间复杂度很大,达O(N)。链表的特点是:寻址困难,插入和删除容易。哈希表那

    2022年5月12日
    48
  • smb服务检测(smb应用)

     开源包,http://jcifs.samba.org/.复制一篇文章.用JAVA访问共享文件系统前言在Microsoft网络系统中,SMB(ServerMessageBlock,服务信息块)协议是WindowsforWorkgroup(WfWg)、Windows95、WindowsNT和LanManager用来实现共享局域网上

    2022年4月13日
    72
  • linux 文本编辑器vi常用命令

    linux 文本编辑器vi常用命令linux之文本编辑器vi常用命令由于经常在linux下面文本操作,所以这里稍微系统的总结一下自己常用的vi命令1、打开命令:vi+filename(还有各种打开的姿势,只不过我比较顺手这个)2、退出命令::q退出而且不保存修改的内容:q!强制退出不保存修改的内容:wq退出并且保存修改的内容:wq!强制保存修改的内容然后退出(修改了只读文件会用到)ZZ退出并且保存修改的内容,相当于:wq,看个人习惯3、光标移动命令个人比较喜欢上下左右方向键,字母h(左),j

    2022年7月26日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号