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

[经验分享] Cent OS 6上实现IP SAN存储

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-11-28 10:41:33 | 显示全部楼层 |阅读模式
一、前提介绍

1、存储类型介绍
    DAS:直接附加存储,是最为常见的存储方式,日常所见的笔记本,U盘等都是这种方式。其主要支持的硬盘类型有并行接口的IDE,SCSI;串行接口的SATA,SAS,USB等。

    NAS:是由文件服务协议实现的文件服务器,其主要表现为NFS,CIFS。
    SAN:存储区域网络,可利用现有的成熟网络技术承载存储协议SCSI的相关报文。

2、SCSI介绍
    SCSI是一种I/O技术,规范了一种并行的I/O总线的相关的协议,它的数据传输是以块的方式进行的,其具有设备无关性(target管理的lun下的存储设备是什么接口都行,只要能提供存储)、多设备并行(每个通道连接多个target,每个target管理多个lun)、高带宽(SCSI协议分层,将物理层的传输介质换为万兆以太网或光纤,提供非常高的带宽)、低系统开销(将由内核完成的转换iSCSI协议报文交由nic实现)的特点,并采取了协议分层的功能,分为三层,应用层、传输层、物理层,从而可实现多种存储解决方案。

3、实验介绍
   iSCSI server: 192.168.0.20(node3)
   Initiator 1:192.168.0.15(node1)
   Initiator 1:192.168.0.16(node2)
   关闭iptables或定义规则放行3260端口

   关闭selinux

二、配置 iSCSI server
1、准备磁盘设备
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[iyunv@node3 ~]# fdisk -l
Disk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000


Disk /dev/sdc: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000




2、安装target包,并启动服务
1
2
3
4
[iyunv@node3 ~]# yum install scsi-target-utils -y
[iyunv@node3 ~]# service tgtd start
Starting SCSI target daemon:                               [  OK  ]
[iyunv@node3 ~]# chkconfig tgtd on




3、创建target,创建lun,并授权
3.1、使用tgtadm配置,重启后失效

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
tgtadm:全功能的命令行配置工具,其配置结果在OS重启后会失效
tgtadm命令:-h 获取帮助信息
    模式化工具操作:
        tgtadm:管理target
        logicalunit:管理lun
        account:用户帐号
                     
    管理操作:
        show:查看
        new:新建
        delete:删除
        update:修改
        bind:绑定,即实现授权,通过将IP或账号与target绑定进行
        unbind:解除授权
    常用选项:
        --lld, -L <driver>  指明驱动,iscsi
        --targetname,-T <targetname>   指明target名字,使用iqn格式的
        --control-port,-C <port>     指明监听端口
        --bstype,-E <type>       指明磁盘类型
        --mode, -m <mode>    指明类型,target或lun
        --op,-o <operation>   进行什么操作
        --tid, -t <TID>      指明tid
        --lun, -l <LUN>      指明lun编号,0为控制器,从1开始
        --backing-store,-b <PATH>    指明lun连接的设备
        --initiator-address,-I <address>     指明授权的网段
        --initiator-name,-Q <name>    指明授权的用户名
        --name,-n <parameter>   
        --value,-V <value>
        --params,-P <param=value[,param=value...]>
        --force, -F   强制操作
        --help, -h     帮助信息
#创建target      
[iyunv@node3 ~]# tgtadm --lld iscsi --mode target --op new --tid 1 --targetname iqn.2016-11.com.xj:s1.t1
#创建lun
[iyunv@node3 ~]# tgtadm --lld iscsi --mode logicalunit --op new --tid 1 --lun 1 --backing-store /dev/sdb
[iyunv@node3 ~]# tgtadm --lld iscsi --mode logicalunit --op new --tid 1 --lun 2 --backing-store /dev/sdc
#授权(基于ip)与基于用户的二选一,一般使用基于IP的
[iyunv@node3 ~]# tgtadm --lld iscsi --mode target --op bind --tid 1 --initiator-address 192.168.0.0/24
#授权(基于用户),并绑定target
[iyunv@node3 ~]# tgtadm -L iscsi -m account -o new --user jym --password jym
[iyunv@node3 ~]# tgtadm -L iscsi -m account -o bind --tid 1 --user jym

#查看创建的target和lun
[iyunv@node3 ~]# tgtadm --lld iscsi --mode target --op show
Target 1: iqn.2016-11.com.xj:s1.t1
    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
            SCSI ID: IET     00010001
            SCSI SN: beaf11
            Size: 10737 MB, Block size: 512
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            Backing store type: rdwr
            Backing store path: /dev/sdb
            Backing store flags:
        LUN: 2
            Type: disk
            SCSI ID: IET     00010002
            SCSI SN: beaf12
            Size: 10737 MB, Block size: 512
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            Backing store type: rdwr
            Backing store path: /dev/sdc
            Backing store flags:
    Account information:
    ACL information:
        192.168.0.0/24




3.2、使用tgt-admin配置
1
2
3
4
5
6
7
8
9
10
通过读取配置文件/etc/tgt/target.conf进行配置的工具
[iyunv@node3 ~]# cp /etc/tgt/targets.conf /etc/tgt/targets.conf.bak
[iyunv@node3 ~]# vim /etc/tgt/targets.conf
<target iqn.2016-11.com.xj:s2.t1>
        backing-store /dev/sdb
        backing-store /dev/sdc
        initiator-address 192.168.0.0/24       #基于ip
        #    incominguser user1 secretpass12   #基于用户
        #    outgoinguser userA secretpassA
</target>




4、配置 iSCSI initiator(node1,node2同步)
1、安装程序包,配置initiator的名字,并启动服务
1
2
3
4
5
6
7
8
9
10
11
#安装程序包
[iyunv@node1 ~]# yum -y install iscsi-initiator-utils

#使用iscsi-iname生成initiator的名字
[iyunv@node1 ~]# echo "InitiatorName=$(iscsi-iname -p iqn.2016-11.com.xj)" > /etc/iscsi/initiatorname.iscsi
[iyunv@node1 ~]# cat /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2016-11.com.xj:3f11231da124

#启动iscsi服务与守护进程
[iyunv@node1 ~]# service iscsi start
[iyunv@node1 ~]# service iscsid start



2、使用iscsiadm实现target的发现、注册等
(1)发现模式:discovery
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
  iscsiadm命令
    常用选项:
         -m:指明模式
         -h:帮助信息
         -v:详细信息
         -d:调试等级
         -p:显示级别
         -t:类型 -p: ip:port 在ip的port上发现 -l:登录进去

基于用户名(填入对应的用户名密码)
[iyunv@node1 ~]# vim /etc/iscsi/iscsid.conf
node.session.auth.username = username
node.session.auth.password = password
discovery.sendtargets.auth.username = username
discovery.sendtargets.auth.password = password
         
         
基于ip
[iyunv@node1 ~]# iscsiadm -m discovery -d 3 -t st -p 192.168.0.20:3260
iscsiadm: ip 192.168.0.20, port 3260, tgpt -1
iscsiadm: Max file limits 1024 4096

iscsiadm: starting sendtargets discovery, address 192.168.0.20:3260,
iscsiadm: connecting to 192.168.0.20:3260
iscsiadm: connected local port 41839 to 192.168.0.20:3260
iscsiadm: connected to discovery address 192.168.0.20
iscsiadm: login response status 0000
iscsiadm: discovery process to 192.168.0.20:3260 exiting
iscsiadm: disconnecting conn 0x9fba78, fd 3
192.168.0.20:3260,1 iqn.2016-11.com.xj:s1.t1

验证发现信息
[iyunv@node1 ~]# ls /var/lib/iscsi/send_targets/192.168.0.20,3260/
iqn.2016-11.com.xj:s1.t1,192.168.0.20,3260,1,default  st_config



(2)节点模式:node
1
2
3
4
# -l:登入,-u:登出,-o delete:删除条目
[iyunv@node1 ~]# iscsiadm -m node -d 1 -T iqn.2016-11.com.xj:s1.t1 -p 192.168.0.20:3260 -l
Logging in to [iface: default, target: iqn.2016-11.com.xj:s1.t1, portal: 192.168.0.20,3260] (multiple)
Login to [iface: default, target: iqn.2016-11.com.xj:s1.t1, portal: 192.168.0.20,3260] successful.



验证登录节点(在node1上就可以看到sdb,sdc了)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
[iyunv@node1 ~]# fdisk -l /dev/sd[a-z]

Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00058545

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          64      512000   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              64        2611    20458496   8e  Linux LVM

Disk /dev/sdb: 10.7 GB, 10737418240 bytes
64 heads, 32 sectors/track, 10240 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000


Disk /dev/sdc: 10.7 GB, 10737418240 bytes
64 heads, 32 sectors/track, 10240 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000




5、验证iscsi
1、在initiator 1上创建并格式化分区,并挂载
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
分区
[iyunv@node1 ~]# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x6202406e.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-10240, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-10240, default 10240): +5G

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

格式化
[iyunv@node1 ~]# mke2fs -t ext4 /dev/sdb1

挂载测试
[iyunv@node1 ~]# mount /dev/sdb1 /mnt
[iyunv@node1 ~]# cd /mnt
[iyunv@node1 mnt]# ll
total 16
drwx------. 2 root root 16384 Nov 25 21:53 lost+found
[iyunv@node1 mnt]# touch text.txt
[iyunv@node1 mnt]# ll
total 16
drwx------. 2 root root 16384 Nov 25 21:53 lost+found
-rw-r--r--. 1 root root     0 Nov 25 21:57 text.txt




2、在target端(node3)验证分区
1
2
3
4
5
6
7
8
9
10
11
[iyunv@node3 ~]# fdisk -l /dev/sdb

Disk /dev/sdb: 10.7 GB, 10737418240 bytes
64 heads, 32 sectors/track, 10240 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x6202406e

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        5121     5243888   83  Linux




    之后,就可以正常使用IP SAN存储了,但在生产环境中,要注意的是,所有的initiator端可以将target端的硬盘挂载使用,所以要注意避免重复挂载。
initiator退出
1
2
3
4
[iyunv@node1 ~]# iscsiadm -m node -d 1 -T iqn.2016-11.com.xj:s1.t1 -p 192.168.0.20:3260 -u
Logging out of session [sid: 1, target: iqn.2016-11.com.xj:s1.t1, portal: 192.168.0.20,3260]
Logout of [sid: 1, target: iqn.2016-11.com.xj:s1.t1, portal: 192.168.0.20,3260] successful.
[iyunv@node1 ~]# iscsiadm -m node -d 1 -T iqn.2016-11.com.xj:s1.t1 -p 192.168.0.20:3260 -o delete




删除target端的配置
1
2
3
[iyunv@node3 ~]# tgtadm -L iscsi -m logicalunit -o delete -t 1 -l 2
[iyunv@node3 ~]# tgtadm -L iscsi -m logicalunit -o delete -t 1 -l 1
[iyunv@node3 ~]# tgtadm -L iscsi -m target -o delete -t 1







运维网声明 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-306585-1-1.html 上篇帖子: Linux之nfs服务部署 下篇帖子: centos 7 java版本切换
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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