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

[经验分享] iSCSI之Target/Initiator配置

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-12-22 09:49:33 | 显示全部楼层 |阅读模式
准备环境

Target:   node1 192.168.139.2
Initiator1:node2 192.168.139.4
Initiatos2:node4 192.168.139.8
Target:安装scsi-target-utils
Initiatos:安装scsi-initiator-utils



创建一个分区用来做SCSI的存储盘,最好用整个磁盘别用分区
[iyunv@node1 ~]# fdisk /dev/sdb
[iyunv@node1 ~]# partprobe /dev/sdb
[iyunv@node1 ~]# fdisk -l
Device Boot      Start       End    Blocks    Id  System
/dev/sdb1         1        654    5253223+  83  Linux
/dev/sdb2         655       1308    5253255  83  Linux
/dev/sdb3         1309      1701    156772+  83  Linux
[iyunv@node1 ~]# yum install scsi-target-utils -y
[iyunv@node1 ~]# rpm -ql scsi-target-utils
/etc/rc.d/init.d/tgtd \\服务脚本
/etc/sysconfig/tgtd
/etc/tgt/targets.conf \\配置文件
/usr/sbin/tgt-admin \\通过读取配置好的文件,在启动服务时创建target和lun
/usr/sbin/tgt-setup-lun
/usr/sbin/tgtadm \\在梦里行下创建target和lun的工具
/usr/sbin/tgtd
[iyunv@node1 ~]# service tgtd start
Starting SCSI target daemon:                               [  OK  ]
[iyunv@node1 ~]# netstat -tnlp |grep tgtd
tcp    0      0 0.0.0.0:3260  0.0.0.0:*    LISTEN      1820/tgtd           
tcp    0      0 :::3260      :::*       LISTEN      1820/tgtd      

tatadm命令是一个高度模式化的命令:
Usage : tgtadm --lld [driver] --op [operation] --mode [mode] [OPTION]...

-L/--lld 指定驱动 一般为iscsi

-t/--tid 指定target的ID
-l/--lun 指定lun ID
-b/--back-store 指定真正的后端存储设备
-I/--initiators-ddress 指定initiators的ip 一般用于绑定target和initiators进行授权
-T/--targetname 指定target的名称,用以区分多个不同的target
--mode 创建target为target,创建logicalunit则为logicalunit
--op new delete show update bind unbind
(bind/unbind 经常用来将initiator 的地址与target绑定,从而对其进行使用授权)
tatadm命令详细使用请看: http://blog.iyunv.com/uid-30212356-id-5520545.html

一个target上最多可以有32个LUN
target name的语法:iqn.yyyy-xx.com.zxl:机架.磁盘
            inq iSCSI的全局唯一标示名
           yyyy-xx 年-月 如:2016-12
           com.zxl 你公司域名的反写
          机架.磁盘 用来区分磁盘的具体位置,是那一块盘
如:iqn.2016-12.com.zxl:store.disk1

[iyunv@node1 ~]# tgtadm --lld iscsi --mode target --op new --targetname iqn.2016-12.com.zxl:store1.disk1 --tid 1
驱动:iscsi
targetname:iqn.2016-12.com.zxl:store1.disk1
target ID:1 (0 为系统给当前主机保留使用)
[iyunv@node1 ~]# tgtadm --lld iscsi --mode target --op show \\查看创建的target
Target 1: iqn.2016-12.com.zxl:store1.disk1
    System information:
        Driver: iscsi
        State: ready
    I_T nexus information:
    LUN information:
        LUN: 0
            Type: controller \\类型为controller(控制器)
            SCSI ID: IET     00010000
            SCSI SN: beaf10
            Size: 0 MB, Block size: 1
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            Backing store type: null
            Backing store path: None
            Backing store flags:
    Account information:
    ACL information:
创建logicalunit,并关联后端存储
[iyunv@node1 ~]# tgtadm --lld iscsi --mode logicalunit --op new --tid 1 --lun 1 --backing-store  /dev/sdb1
在target ID为1的target创建一个lun ID 为1的logicalunit,且后端存储设备为/dev/sdb1
注:当我用--backing-store /dev/sdb2或/dev/sdb3时,创建不了,一直出现如下错误,可能是因为刚创建的/dev/sdb2 /dev/sdb3没被内核识别(我用了partprobe),实际使用时建议用整个磁盘,别用分区
tgtadm: invalid request
[iyunv@node1 ~]# tgtadm --lld iscsi --mode target --op show
Target 1: iqn.2016-12.com.zxl:store1.disk1
    System information:
        Driver: iscsi
        State: ready
    I_T nexus information:
    LUN information:
        LUN: 0
            Type: controller
            SCSI ID: IET     00010000
            SCSI SN: beaf10
            Size: 0 MB, Block size: 1
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            Backing store type: null
            Backing store path: None
            Backing store flags:
        LUN: 1
            Type: disk \\类型为disk
            SCSI ID: IET     00010001
            SCSI SN: beaf11
            Size: 5379 MB, Block size: 512
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            Backing store type: rdwr
            Backing store path: /dev/sdb1
            Backing store flags:
    Account information:
    ACL information:

客户端的认证方式有两种,以保证不同用户数据的安全性:
1:基于IP
2:基于用户的CHAP(CHAP为双向认证server认证client,client也认证server)

下面将对initiators进行基于IP的认证
[iyunv@node1 ~]# tgtadm --lld iscsi --mode target --op bind --tid 1 --initiator-address 192.168.139.0/24


允许来自192.168.139.0/24网段的所有主机访问target ID为1的target
[iyunv@node1 ~]# tgtadm --lld iscsi --mode target --op show

    Account information:
    ACL information: 192.168.139.0/24


在node2(192.168.139.4)装iscsi-initiator-utils
[iyunv@node2 ~]# yum -y install iscsi-initiator-utils
[iyunv@node2 ~]# rpm -ql iscsi-initiator-utils
/etc/iscsi
/etc/iscsi/iscsid.conf \\配置文件
/etc/logrotate.d/iscsiuiolog
/etc/rc.d/init.d/iscsi \\服务脚本
/etc/rc.d/init.d/iscsid \\服务脚本,只要启动iscsi就可以启动iscsid
/sbin/iscsi-iname \\-p 自己指定initiator的iqn名称前缀,后面会由系统自动生成随机数,并保存                 在/etc/iscsi/initiatorname.iscsi文件中
/sbin/iscsiadm \\客户端命令
/var/lib/iscsi/ifaces \\可以选定用哪个网卡与target交换数据


iscsiadm也是一个模式化的命令,是客户端的命令

-m {discovery|node|session|iface}
discovery:发现某个server是否有target输出及有哪些输出
node:自己作为节点与server端建立连接
session:查看会话
iface:进行接口管理的
-d:debug_lebel 等级为0—8越高输出的debug信息越详细,可省略
-I:指定使用哪个网络接口,如果只有一块网卡则不用指定
-t:sendtarget,slp,iSNS三种形式,一般我们用到的是sendtarget简写为st
-p:IP:port IP为server的IP,port可以省略,默认为3260

发现输出target后与登录target有关的
-U 登出
-R 重新登入
-l 登入
-T 指定targetname
-p 指定server的IP/port
-s 显示session的统计数据
-op 其他一些操作
......
iscsiadm命令详细使用可以参考这里
http://blog.iyunv.com/uid-30212356-id-5520545.html


[iyunv@node2 ~]# iscsiadm -m discovery -d 2  -t st -p 192.168.139.2:3260

iscsiadm: Max file limits 1024 4096

iscsiadm: starting sendtargets discovery, address 192.168.139.2:3260,
iscsiadm: connecting to 192.168.139.2:3260
iscsiadm: connected local port 52104 to 192.168.139.2:3260
iscsiadm: connected to discovery address 192.168.139.2
iscsiadm: login response status 0000
iscsiadm: discovery process to 192.168.139.2:3260 exiting
iscsiadm: disconnecting conn 0xad5a78, fd 3
192.168.139.2:3260,1 iqn.2016-12.com.zxl:store1.disk1

可以看到发现了node2输出的target:iqn.2016-12.com.zxl:store1.disk1

进行target登录
[iyunv@node2 ~]# iscsiadm -m node -T iqn.2016-12.com.zxl:store1.disk1 -p 192.168.139.2 -l
Logging in to [iface: default, target: iqn.2016-12.com.zxl:store1.disk1, portal: 192.168.139.2,3260] (multiple)
Login to [iface: default, target: iqn.2016-12.com.zxl:store1.disk1, portal: 192.168.139.2,3260] successful.
successful(登录成功)


[iyunv@node2 ~]# fdisk -l \\可以看到多了一个/dev/sdc大小约为5G,将server端的target关联的LUN                  \\设备识别为了本机的本地存储,且将一个分区识别成了整块磁盘
Disk /dev/sdc: 5379 MB, 5379300864 bytes
166 heads, 62 sectors/track, 1020 cylinders

在/dev/sdc上创建分区
[iyunv@node2 ~]# fdisk /dev/sdc
Device Boot      Start       End     Blocks   Id  System
/dev/sdc1        1         612     3149321  83  Linux

[iyunv@node2 ~]# partprobe /dev/sdc \\通知内核识别
[iyunv@node2 ~]# mke2fs -j /dev/sdc1 \\格式化为ext3文件系统
[iyunv@node2 ~]# mount /dev/sdc1 /mnt \\挂载
[iyunv@node2 ~]# cp /etc/issue /mnt \\复制一个文件过去
[iyunv@node2 ~]# cd /mnt
[iyunv@node2 mnt]# ll \\OK
total 20
-rw-r--r--. 1 root root    47 Dec 21 10:28 issue
drwx------. 2 root root 16384 Dec 21 10:27 lost+found


在加入一个node4(192.168.139.8)作为第二个initiator

[iyunv@node4 ~]# yum install -y iscsi-initiator-utils
[iyunv@node4 ~]# iscsiadm -m discovery -t st -p 192.168.139.2
Starting iscsid:                                           [  OK  ]
192.168.139.2:3260,1 iqn.2016-12.com.zxl:store1.disk1
[iyunv@node4 ~]# iscsiadm -m node -T iqn.2016-12.com.zxl:store1.disk1 -p 192.168.139.2 -l
Logging in to [iface: default, target: iqn.2016-12.com.zxl:store1.disk1, portal: 192.168.139.2,3260] (multiple)
Login to [iface: default, target: iqn.2016-12.com.zxl:store1.disk1, portal: 192.168.139.2,3260] successful.
[iyunv@node4 ~]# fdisk -l
Disk /dev/sdc: 5379 MB, 5379300864 bytes
166 heads, 62 sectors/track, 1020 cylinders
Device Boot      Start       End     Blocks   Id  System
/dev/sdc1        1         612     3149321  83  Linux
[iyunv@node4 ~]# mount /dev/sdc1 /mnt
[iyunv@node4 ~]# cd /mnt
[iyunv@node4 mnt]# ll \\可以看到node2复制的issue文件node4页可以看到
total 20
-rw-r--r--. 1 root root    47 Dec 21 10:28 issue
drwx------. 2 root root 16384 Dec 21 10:27 lost+found

至此本次实验完成



运维网声明 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-317765-1-1.html 上篇帖子: hibernate 出现 org.hibernate.MappingException: entity class not found 的... 下篇帖子: SCSI/iSCSI及SAS、NAS、SAN的基本介绍
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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