设为首页 收藏本站
查看: 2782|回复: 0

[经验分享] 使用Linux模拟FC存储阵列(targetcli)

[复制链接]
累计签到:2 天
连续签到:1 天
发表于 2016-1-28 08:22:05 | 显示全部楼层 |阅读模式
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> switchshow
switchName:     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
/> ls
o- / ..................................................................... [...]
  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后成功添加配置,所以配置如下

QQ截图20160128082153.png


4.initator端进行扫描
完成后在Xenserver进行扫描。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-170394-1-1.html 上篇帖子: Corosync+Pacemaker+DRBD+NFS高可用实例配置 下篇帖子: CLUSTER集群与存储技术
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表