linux生成target文件夹,使用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> switchshowswitchName:     swd77

switchType:     34.0

switchState:    Online

switchMode:     Native

switchRole:     Principal

switchDomain:   1

switchId:       fffc01

switchWwn:      10:00:00:05:1e:64:9d:86

zoning:         ON (Ezyxcfg)

switchBeacon:   OFF

Area Port Media Speed State     Proto

=====================================

0   0   id    N2   Online           F-Port  21:00:00:1b:32:98:7d:1b  //接192.168.1.88主机(XenServer)的HBA卡

1   1   id    N4   Online           F-Port  21:00:00:1b:32:8a:8a:c4  //接192.168.1.150

2   2   id    N4   No_Light

3   3   id    N4   No_Light

4   4   id    N4   Online           F-Port  21:00:00:1b:32:81:6e:f1  //接192.168.1.17 DELL PC机

5   5   id    N4   No_Light

2) 查看zone配置

所以端口已经在一个zone里了,无需进行更改。

swd77:admin> zoneshow

Defined configuration:

cfg:   Ezyxcfg Ezyxarray

zone:  Ezyxarray

1,0; 1,1; 1,2; 1,3; 1,4; 1,5; 1,6; 1,7

Effective configuration:

cfg:   Ezyxcfg

zone:  Ezyxarray

1,0

1,1

1,2

1,3

1,4

1,5

1,6

1,7

swd77:admin>

---------------------------------------------------------------------------

3.配置targetcli服务,模拟存储阵列

1)安装操作系统ubuntu15.04 Desktop版本

2)创建分区/dev/sda4,大小为816G,并挂载在/data目录下

mkdir /data

mount -t ext4 /dev/sda4 /data

vinchin@vinchin-OptiPlex-9020:~$ df -h

Filesystem      Size  Used Avail Use% Mounted on

/dev/sda1        94G  6.6G   83G   8% /

/dev/sda4       816G   30G  744G   4% /data

/dev/sda3       454M   41M  386M  10% /boot

3)配置targetcli

(1)安装targetcli

apt-get install targetcli

(2)挂载configFS

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

mount -t configfs configfs /sys/kernel/config

(3)设置HBA卡为target mode

vi /etc/modprobe.d/qla2xxx.conf

options qla2xxx qlini_mode="disabled"

(4)更新initramfs后

sudo update-initramfs -u -k all

(5)重启机器

sudo reboot

(6)检查qla2xxx模块已经安装在targetcli里面了

下面有qla2xxx输出即为正常。targetcli/> lso- / ..................................................................... [...]o- backstores .......................................................... [...]| o- fileio ............................................... [0 Storage Object]| 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 Target]o- iscsi .......................................................... [0 Target]o- loopback ....................................................... [0 Target]o- qla2xxx ........................................................ [0 Target]/>

下面可以划分存储空间并LUN mapping

(7)通过一个文件创建一个FILEIO backstore。

$su -     //获取root权限

#targetcli

/backstores

/backstores>fileio/ create name=test_file file_or_dev=/data/fileio_1 size=810G

//文件的大小就是生成LUN的大小

在targetcli里创建WWN's

/> qla2xxx/ create 21:00:00:1b:32:81:6e:f1//本机的wwwn,相当于存储阵列的前段端口的wwwn

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

/qla2xxx/21:00:00:1b:32:81:6e:f1/luns/ create  /backstores/fileio/test_file

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

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

/qla2xxx/21:00:00:1b:32:81:6e:f1/acls create 21:00:00:1b:32:98:7d:1b   //将Lun映射给192.168.1.88对应的wwwn

/qla2xxx/21:00:00:1b:32:81:6e:f1/acls create 21:00:00:1b:32:8a:8a:c4    //将Lun映射给192.168.1.150对应的wwwn

保存配置

saveconfig

此时会报错类似“ConfigError: Unknown value type 'qla2xxx_wwn' when validating 21:00:00:24:ff:0e:7c:f5”

打开另一窗口修改配置

vi /usr/share/pyshared/rtslib/config.py

elif val_type == 'naa':

if is_valid_wwn('naa', value):

valid_value = value

后面添加

elif val_type == 'qla2xxx_wwn':

if is_valid_wwn('qla2xxx_wwn', value):

valid_value = value

vi /usr/share/pyshared/rtslib/utils.py

and re.match(

"[0-9A-Fa-f]{8}(-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12}$", wwn):

return True

添加

elif wwn_type == 'qla2xxx_wwn' \

and re.match(

"[0-9A-Fa-f]{2}(:[0-9A-Fa-f]{2}){7}$", wwn):

return True

再次saveconfig后成功添加配置,所以配置如下

0156603d8cec770dd0ce7c4fc5b17dd3.png

4.initator端进行扫描

完成后在Xenserver进行扫描。

鲜伟

2016-01-27

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值