targetcli搭建Fibre Channel(FC) target

硬件信息

  • 获取WWN的方法可以执行以下命令来获取

    cat /sys/class/fc_host/host*/port_name | sed -e s/0x// -e ‘s/../&:/g‘ -e s/:$//
    
  1. 作为target端的机器

    • 系统 : Ubuntu 14.04 Server
    • HBA : QLogic ISP2432
    • WWN1 : 21:01:00:1b:32:31:43:XX
    • WWN2 : 21:00:00:1b:32:11:43:XX
  2. 作为initiator端的机器
    • 系统: Ubuntu 14.04 Server
    • HBA : QLogic ISP2432
    • WWN1 : 21:00:00:1b:32:11:64:XX
    • WWN2 : 21:01:00:1b:32:31:64:XX
  3. 交换机
    • Brocade 200E

准备工作

安装lio-utils 和targetcli

sudo apt-get install lio-utils targetcli

挂载configFS

  • 假如configFS没有被挂载, /etc/init.d/target会自动进行挂载

LIO 和targetcli 的配置都需要用到configFS, 因此configFS模块必须被加载到内核中。把configFS挂载到/sys/kernel/config:

mount -t configfs configfs /sys/kernel/config

也可以把它加入到fstab中,让系统启动的时候自动加载。

configfs /sys/kernel/config configfs default 1 1

修改驱动配置

修改qla2xxx.conf,把它修改为target模式

options qla2xxx qlini_mode="disabled"

更新initramfs后重启机器

sudo update-initramfs -u -k all
sudo reboot

target端配置(ACL模式)

使用targetcli进行配置

启动targetcli

sudo targetcli

当targetcli初始化完成后,RTSlib会根据相关的spce文件(/var/target/fcbic/*.spec), 把安装好的模块加载进去。

创建backstore

这里支持的backstore有五种,这里主要介绍的是IBLOCK和FILEIO

  1. IBLOCK

    这里主要使用的块设备。通常来说,用IBLOCK作为backstore会提供比较好的性能。

    • 例如使用/dev/sdb这个设备:

      /> cd backstores/
      /backstores> iblock/ create name=block_backend dev=/dev/sdb
      Generating a wwn serial.
      Created iblock storage object block_backend using /dev/sdb.
      /backstores>
      
    • 或者使用LVM逻辑卷
      /backstores> iblock/ create name=block_backend_lvm dev=/dev/vg0/lv1
      Generating a wwn serial.
      Created iblock storage object block_backend_lvm using /dev/vg0/lv1.
      /backstores>
      
  2. FILEIO

    通过一个文件创建一个FILEIO backstore。

    注意: 使用的时候,尽量不要使用带buffer的FILEIO。 通过参数buffered=true来创建一个带buffer的FILEIO backuend, 虽然它可以提供更好的性能,但是它也会导致数据不完整的严重问题:如果因为某些原因系统崩溃了,那么没有被写进硬盘的数据将会丢失,而导致数据不完整。

    • 创建文件/usr/src/fileio, 文件大小是2G

      /> cd backstores/
      /backstores> fileio/ create name=file_backend file_or_dev=/home/kyle/backstore/fileio_1 size=2G
      Generating a wwn serial.
      Not using buffered mode.
      Created fileio file_backend.
      /backstores>

在targetcli里创建WWN‘s

我们需要在存储服务器上面调用targetcli来创建WWN‘s

/qla2xxx create 21:01:00:1b:32:31:43:XX

使用WWN‘s来实例化Targets

这里需要把刚才创建好的WWN‘s和之前就创建好的backstore进行一个连接。使用luns下的命令

/qla2xxx/21:01:00:1b:32:31:43:XX/luns/ create /backstores/fileio/file_backend

创建ACL‘s

我们需要创建一个ACL‘s(Access Control List)列表, 让需要用到这个这个存储的机器可以有权限使用到这个luns。

这里我们需要的WWN是需要访问该luns的机器的WWN,不是本机的

/qla2xxx/21:01:00:1b:32:31:43:XX/acls create 21:00:00:1b:32:11:64:XX
/qla2xxx/21:01:00:1b:32:31:43:XX/acls create 21:01:00:1b:32:31:64:XX

检查并保存配置

在targetcli的顶层目录下,执行ls就可以看到全部的配置了。

/> ls
o- / ........................................................................................... [...]
  o- backstores ................................................................................ [...]
  | o- fileio .................................................................... [1 Storage Objects]
  | | o- file_backend_  .................................... [/home/kyle/backstore/fileio_1 activated]
  | o- iblock ..................................................................... [0 Storage Object]
  | o- pscsi ...................................................................... [0 Storage Object]
  | o- rd_dr ...................................................................... [0 Storage Object]
  | o- rd_mcp ..................................................................... [0 Storage Object]
  o- ib_srpt ............................................................................. [0 Targets]
  o- iscsi ............................................................................... [0 Targets]
  o- loopback ............................................................................ [0 Targets]
  o- qla2xxx ............................................................................. [1 Targets]
  | o- 21:00:00:1b:32:11:43:38 ............................................................. [enabled]
  | | o- acls ............................................................................... [2 ACLs]
  | | | o- 21:00:00:1b:32:11:64:33 .................................................... [1 Mapped LUN]
  | | | | o- mapped_lun0 ................................................................. [lun0 (rw)]
  | | | o- 21:01:00:1b:32:31:64:33 .................................................... [1 Mapped LUN]
  | | |   o- mapped_lun0 ................................................................. [lun0 (rw)]
  | | o- luns ................................................................................ [1 LUN]
  | |   o- lun0 ............................ [fileio/file_backend  (/home/kyle/backstore/fileio_1)]
  o- tcm_fc .............................................................................. [0 Targets]
/>

检查完成后,需要执行saveconfig命令,把配置保存下来,否则这些配置会丢失。

target端配置(DEMO模式)

使用targetcli进行配置

启动targetcli

sudo targetcli

当targetcli初始化完成后,RTSlib会根据相关的spce文件(/var/target/fcbic/*.spec), 把安装好的模块加载进去。

创建backstore

通过一个文件创建一个FILEIO backstore。

/> cd backstores/
/backstores> fileio/ create name=file_backend file_or_dev=/home/scutech/backstore/fileio_1 size=2G
Generating a wwn serial.
Not using buffered mode.
Created fileio file_backend.
/backstores>

在targetcli里创建WWN‘s

我们需要在存储服务器上面调用targetcli来创建WWN‘s

/qla2xxx create 21:01:00:1b:32:31:43:XX

设置WWN‘s的属性

/qla2xxx/21:01:00:1b:32:31:43:XX set attribute         demo_mode_write_protect=0         generate_node_acls=1         cache_dynamic_acls=1        demo_mode_login_only=0

使用WWN‘s来实例化Targets

这里需要把刚才创建好的WWN‘s和之前就创建好的backstore进行一个连接。使用luns下的命令

/qla2xxx/21:01:00:1b:32:31:43:XX/luns/ create /backstores/fileio/file_backend

检查并保存配置

在targetcli的顶层目录执行ls,即可得到配置

o- / ................................................................................. [...]
  o- backstores ...................................................................... [...]
  | o- fileio ........................................................... [1 Storage Object]
  | | o- file_test ...................................... [/home/kyle/backstore/fileio_test activated]
  | o- iblock ........................................................... [0 Storage Object]
  | o- pscsi ............................................................ [0 Storage Object]
  | o- rd_dr ............................................................ [0 Storage Object]
  | o- rd_mcp ........................................................... [0 Storage Object]
  o- ib_srpt ................................................................... [0 Targets]
  o- iscsi ..................................................................... [0 Targets]
  o- loopback .................................................................. [0 Targets]
  o- qla2xxx .................................................................... [1 Target]
  | o- 21:00:00:1b:32:11:43:38 ................................................... [enabled]
  |   o- acls ..................................................................... [0 ACLs]
  |   o- luns ...................................................................... [1 LUN]
  |     o- lun0 ...................... [fileio/file_test (/home/kyle/backstore/fileio_test)]
  o- tcm_fc .................................................................... [0 Targets]

检查无误后执行saveconfig保存配置并使其生效。

====================================================华丽的分割线=====================================================

initiator端配置

Ubuntu 下的配置

扫描target

使用以下命令,寻找fc target

echo 1 > /sys/class/fc_host/host<N>/issue_lip

如果执行命名后,发现在/var/log/syslog里面有类似 qla2xxx [0000:01:00.0]-2064:4: SNS scan failed -- assuming zero-entry result. 的错误,

那么就需要考虑两个问题:

  1. 光纤有没有接错
  2. 交换机的zoning有没有设置好。 (在该wiki最后会有解决方法)

    扫描完成后,可以用fdisk看到多了一个新盘/dev/sdb (根据实际情况会有不同)

使用存储

使用fdisk和mkfs命令就可以把该硬盘进行分区和格式化(如果target那边用的是IBLOCK,还不确定要不要分区跟格式化)。

最后挂载上即可使用。

时间: 2024-10-18 03:53:24

targetcli搭建Fibre Channel(FC) target的相关文章

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

基于最近Fibre channel的相关工作,整理了下关于创建和使用target.实现fail-over过程中碰到的问题和解决方法. 0.准备好合适的后端targetcli工具 0.1安装后端工具 主要有两个库要装,rtslib和targetcli,可以参考下面的两种方法进行安装: python-rtslib.noarch : API for Linux kernel LIO SCSI target 方法一:通过yum安装 yum install python-rtslib.noarch tar

实战Fibre Channel之六: 发起端和目的端常用命令

Fibre Channel作为一种专用.高速网络,和iSCSI相比,提供了更高的数据传输带宽.速度和可靠性.熟练掌握一些常用Fibre channel的一些命令,可以方便我们进行原型验证.调试和开发.下面总结了笔者常用到的一些命令,就当抛砖迎玉吧. A. FC 发起端 1. 看主机FC HBA wwpn: cat /sys/class/fc_host/host*/port_name | sed -e s/0x// -e 's/../&:/g' -e s/:$// 2. 看对端机器FC相关设置 看

Fibre Channel和Fiber Channel

Fibre Channel也就是"网状通道"的意思,简称FC.   由于Fiber和Fibre只有一字之差,所以产生了很多流传的误解. FC只代表Fibre Channel,而不是Fiber Channel,后者被翻译为"光纤通道",甚至接口为FC的磁盘也被称为"光纤磁盘",其实这些都是很滑稽的误解.FC与光纤根本就没有必然的联系.   Fibre Channel可以称为FC协议,或FC网络.FC互联.像TCP/IP一样,FC协议集同样具备TCP

使用Linux模拟FC存储阵列(targetcli)

1.环境硬件信息 作为target端的机器  (PC机) HBA卡 : QLogic WWN1 : 21:00:00:1b:32:81:6e:f1 系统 : Ubuntu 15.04 Server 作为initiator端的机器 (PC server) 系统: XenServer HBA : QLogic WWN1 : 21:00:00:1b:32:98:7d:1b FC交换机:Brocade 200E 2.交换机配置 1)查看交换机端口对应的wwwn号swd77:admin> switchsh

Extension of write anywhere file system layout

A file system layout apportions an underlying physical volume into one or more virtual volumes (vvols) of a storage system. The underlying physical volume is an aggregate comprising one or more groups of disks, such as RAID groups, of the storage sys

PatentTips - Enhanced I/O Performance in a Multi-Processor System Via Interrupt Affinity Schemes

BACKGROUND OF THE INVENTION This relates to Input/Output (I/O) performance in a host system having multiple processors, and more particularly, to efficient usage of multiple processors in handling I/O completions by using interrupt affinity schemes t

Linux scsi driver overview

iscsi initiator config ISCSI_TCP tristate "iSCSI Initiator over TCP/IP" depends on SCSI && INET select CRYPTO select CRYPTO_MD5 select CRYPTO_CRC32C select SCSI_ISCSI_ATTRS help  The iSCSI Driver provides a host with the ability to acces

SQL Server AlwaysON从入门到进阶(2)——存储

本文属于SQL Server AlwaysON从入门到进阶系列文章 前言: 本节讲解关于SQL Server 存储方面的内容,相对于其他小节而言这节比较短.本节会提供一些关于使用群集或者非群集系统过程中对存储的利用建议.当然,重点还是集中在对于一个标准的AlwaysOn可用组配置过程中,对存储的选择和配置上面. AlwaysOn的部署首先建立在一个Windows Server Failover Cluster(WSFC)上.并且每个服务器通常有一个独立的SQL Server实例.另外,每个服务器

Memblaze 联手PMC推出用于超大规模数据中心的高性能PCIe SSD

Memblaze 联手PMC 推出用于超大规模数据中心的高性能PCIe SSD Memblaze 产品在容量.灵活度及延迟等方面均领先业界       引领大数据连接.传送以及存储,提供创新半导体及软件解决方案的PMC?公司(纳斯达克代码:PMCS)今日宣布,忆恒创源科技有限公司( Memblaze Technology Co. Ltd)在其下一代PCIe产品中采用了PMC的Flashtec? NVM Express (NVMe) NVMe控制器. 基于Flashtec的Memblaze的PBl