SCSI应用之Iscsi Server实现

1.存储的概念
FC:光钎通道

DAS:直连式存储 (并行:IDE/SCSI串行:SATA/SAS/USB/eSATA)

NAS:网络接入存储

SAN:存储区域网络

SCSI:小型计算机系统接口

ISCSI:一种在internet协议上,是在以太网上进行数据块传输的标准,它是一种基于IPstorage理论的新型存储技术,可以在ip网络上购价SAN存储局域网。简单说,iscsi是在ip网络上运行scsi协议的一种网络存储技术。

2.ISCSI特点

1)把原来用于本机的SCSI透过TCP/IP网络传送,使连接熟练可以无限延伸。

2)连接的服务器数量无限。

3)由于是服务器架构,因此也可以实现在线扩容以及动态部署。

3.ISCSI的构架

ISCSI主要有三种构架:控制器构架,ISCSI连接桥构架和PC构架。

前两者需要硬件支持,而PC构架可以用软件实现,这里主要将PC构架:

PC构架也就是将存储设备建在PC服务器上,然后选择一款成熟的存储管理软件(ISCSI Target),并将软件安装在这台PC服务器上,这样就可以把一个PC服务器变成一台ISCSI存储设备了。最后通过PC服务器的以太网卡对提供ISCSI数据传输服务。

客户端主机可以安装ISCSI客户端的软件(ISCSI initiator)通过以太网连接PC服务器共享出来的存储空间。

4.ISCSI存储的连接方式

1)以太网+initiator软件方式

服务器工作站等主机使用以太网,通过以太网线直连于以太网交换机,ISCSI存储也可以通过以太网线连接到交换机上或者直接连接到以太网卡上,在主机上安装initiator软件。

优点:在现有网络基础上即可完成,成本很低。

缺点:消耗客户端主机部分资源。

使用环境:在低I/O和低带宽性能要求的应用环境中。

2)硬件TOE网卡+initiator软件方式

具有TOE功能的智能以太网卡可以将网络数据流量的处理工作在智能网卡中完成,客户端的性能立即可以凸显出来。

优点:大幅度提高数据传输速率,降低了客户端主机资源消耗。

缺点:需要购买TOE功能网卡,成本较高。

3)ISCSI HBA卡连接

在客户端主机上安装专业的ISCSI HBA适配卡,从而实现主机与交换机之间,主机与存储之间的高效数据传输。

优点:数据传输性能三种最好。

缺点:需要购买ISCSI HBA卡,成本较高。

TOE和ISCSI HBA市场价都较贵,如果主机少可以购买。

5.ISCSI系统组成

1)ISCSI initiator 或者ISCSI HBA

iSCSI initiator是一个安装在计算机上的一个软件或是一个硬件设备,它负责处理同iSCSI存储设备进行通信。

iSCSI服务器与iSCSI存储设备之间的连接方式有两种:

第一种是基于软件的方式,即软件iSCSI initiator

第二种是基于硬件的方式,即硬件SCSI initiator

iSCSI initiator软件一般都是免费的,Centos和RHEL对iSCSI Initiator支持非常不错,现在的Linux发行版本都默认已经自带了iSCSI Initiator。

2)ISCSI target

一个可以被用于存储数据的iSCSI磁盘阵列或者具有iSCSI功能的设备都可以被称为“iSCSI target”。

利用iSCSI target软件,可以将服务器的存储空间分配给客户机使用,客户机就可以像使用本地硬盘一样使用iSCSI磁盘。

目前大多数iSCSI target软件都是收费的,不过,也有一些linux平台开源的iSCSI target软件。

例如iSCSI Enterprise Target

3)以太网交换机

4)一台或者多台服务器

5.ISCSI工作原理

1)ISCSI系统实现原理图

SCSI2015002

2)基本实现过程:

iSCSI协议定义了在TCP/IP网络发送、接收 block(数据块)级的存储数据的规则和方法:

发送端将SCSI命令和数据封装到TCP/IP包中再通过网络转发,接收端收到 TCP/IP包之后,将其还原为SCSI命令和数据并执行,完成之后将返回的SCSI命令和数据再封装到TCP/IP包中再传送回发送端。

整个过程在用户看来: 使用远端的存储设备就象访问本地的 SCSI设备一样简单。

 

6.Target和Initiator

Target:

认证有两种方式,基于ip和CHAP挑战握手包认证协议。

程序包:scsi-target-utils

该程序包提供管理工具

tgtadm:全功能的命令行配置工具,重启后失效。

tgt-admin:通过读取配置文件/etc/tgt/targets.conf进行配置

启动服务之后,模拟的是SCSI总线,管理多个target,每个target上最多lun(逻辑单元)32个。

Initiator:

程序包:iscsi-initiator-utils

iscsi:系统启动时自动连入iscsi。

iscsid:连入之后随时随地实现数据传输。

target 和initiator都需要基于iqn来进行标识:

iqn:iscsi qualified name

 

格式:iqn.year-month.tld.domain:string[.substring]

如:iqn.2015-06.kali:i1.12

7.配置ISCSI Server

1)准备磁盘设备

在node1节点添加两块硬盘

 

2)安装程序包,启动服务

[root@node1 ~]# yum install scsi-target-utils -y

[root@node1 ~]# service tgtd start 启动服务

[root@node1 ~]# ss -ntl 监控在tcp3260端口

LISTEN     0     128                     :::3260                   :::*

[root@node1 ~]# chkconfig tgtd on 开机启动

3)创建target

tgtadm 命令。是模式化的管理工具:

target:管理target

logicalunit:管理lun

account:用户帐号

管理操作:

show :查看

new:新建

delete:删除

update:修改

bind:绑定,即实现授权。

unbind:解除授权

查看iscsi上有没有创建的target

[root@node1 ~]# tgtadm --lld iscsi --mode target --op show

创建target

[root@node1 ~]# tgtadm --lld iscsi --mode target --op new --tid 1 --targetname iqn.2015-06.node1:t1.t1

4)创建lun

[root@node1 ~]# tgtadm --lld   iscsi --mode logicalunit --op new --tid 1 --lun 1 --backing-store /dev/sdb

[root@node1 ~]# tgtadm --lld   iscsi --mode logicalunit --op new --tid 1 --lun 2 --backing-store /dev/sdc

测试:删除Lun2

[root@node1 ~]# tgtadm   --lld iscsi --mode logicalunit --op delete --tid 1 --lun 2

5)授权

[root@node1 ~]# tgtadm   --lld iscsi --mode target --op bind --tid 1 --initiator-address 172.16.0.0/16

[root@node1 ~]# tgtadm --lld iscsi --mode target --op show 查看授权

Account information:

ACL information:

172.16.0.1/16

tgtadm常用选项简化:

--lld ,-L 指driver

--mode,-m

--op, -o <operation>

--tid,-t<tid>

--lun,-l<lun>

--baking-store,-b <path>

--initiator-address,-I <ip for net>

--tragetname,-T <iqn.2015.domaim:qq.qq>

8.配置Iscsi initiator

1)安装程序包,配置initiatord 的名字,并启动服务

在node2上安装

[root@node2 /]# yum install iscsi-initiator-utils

启动服务

[root@node2 /]# service iscsi start;service iscsid start

配置initiator的iqn格式的名字:

[root@node2 /]# cd /etc/iscsi/initiatorname.iscsi

[root@node2 /]# iscsi-iname -p iqn.2015-06.node2 生成文件

iqn.2015-06.node2:3c1f356afc12

[root@node2 /]# echo "InitiatorName=$(iscsi-iname -p iqn.2015-06.node2)">/etc/iscsi/initiatorname.iscsi

重启下服务

[root@node2 /]# service iscsi restart;service iscsid restart

2)使用iscsi实现target的发现注册等

a.发现模式:disconvery

-t TYPE:sendtargets 简写st

[root@node2 send_targets]# iscsiadm -m discovery -d 3 -t st -p 172.16.249.23:3260

iscsiadm: ip 172.16.249.23, port 3260, tgpt -1

iscsiadm: Max file limits 1024 4096

 

iscsiadm: starting sendtargets discovery, address 172.16.249.23:3260,

iscsiadm: connecting to 172.16.249.23:3260

iscsiadm: connected local port 56100 to 172.16.249.23:3260

iscsiadm: connected to discovery address 172.16.249.23

iscsiadm: login response status 0000

iscsiadm: discovery process to 172.16.249.23:3260 exiting

iscsiadm: disconnecting conn 0x109ea78, fd 3

172.16.249.23:3260,1 iqn.2015-06.node1:t1.t1

b.节点模式: node

[root@node2 172.16.249.23,3260]# iscsiadm -m node   -d -T iqn.2015-06.node1:t1.t1   -p 172.16.249.23:3260 -l

Logging in to [iface: default, target: iqn.2015-06.node1:t1.t1, portal: 172.16.249.23,3260] (multiple)

Login to [iface: default, target: iqn.2015-06.node1:t1.t1, portal: 172.16.249.23,3260] successful.

[root@node2 /]# fdisk -l 可以查看到磁盘文件了

[root@node2 /]# iscsiadm -m node   -d -T iqn.2015-06.node1:t1.t1   -p 172.16.249.23:3260 -u 登出命令

[root@node2 /]# iscsiadm -m node   -d -T iqn.2015-06.node1:t1.t1   -p 172.16.249.23:3260 -o delete 删除条目

3)在配置文件中实现tgtadm让永久生效:

在安装target的节点上编辑:

[root@node1 tgt]# vim targets.conf

<target iqn.2015-06.node1:s1.s1>

backing-store /dev/sdb

backing-store /dev/sdc

initiator-address 172.16.0.0/16

</target >

[root@node1 tgt]# service tgtd restart

 

 


发表评论

登录 后发表评论.