Linux下搭建iSCSI共享存储详细步骤

一、简介

Linux下搭建iSCSI共享存储

     iSCSI(internet SCSI)技术由IBM公司研究开发,是一个供硬件设备使用的、可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够在诸如高速千兆以太网上进行路由选择。iSCSI技术是一种新储存技术,该技术是将现有SCSI接口与以太网络(Ethernet)技术结合,使服务器可与使用IP网络的储存装置互相交换资料。

拓扑:

     iSCSI是一种基于TCP/IP 的协议,用来建立和管理IP存储设备、主机和客户机等之间的相互连接,并创建存储区域网络(SAN)。SAN 使得SCSI 协议应用于高速数据传输网络成为可能,这种传输以数据块级别(block-level)在多个数据存储网络间进行。SCSI 结构基于C/S模式,其通常应用环境是:设备互相靠近,并且这些设备由SCSI 总线连接。

图片 1

     iSCSI 的主要功能是在TCP/IP 网络上的主机系统(启动器 initiator)和存储设备(目标器 target)之间进行大量数据的封装和可靠传输过程。

实验步骤:

完整的iSCSI系统的拓扑结构如下:


图片 2

配置iscsi server:

    从本质上说,iSCSI 启动器是一个客户端设备,它连接到服务器(在本例中是 iSCSI 目标)提供的某一服务,并发起对该服务的请求。iSCSI 启动器软件需要安装在每个
Oracle RAC
节点(rac1 和
rac2)上。  iSCSI 启动器可以用软件实现,也可以用硬件实现。软件 iSCSI 启动器可用于大部分主要操作系统平台。对于本文,我们将使用 iscsi-initiator-utils RPM 中提供的免费 Linux Open-iSCSI 软件驱动程序。iSCSI 软件启动器通常与标准网络接口卡 (NIC)(大多数情况下是千兆位以太网卡)配合使用。硬件启动器是一个 iSCSI HBA(或 TCP 卸载引擎 (TOE) 卡),它本质上只是一个专用以太网卡,其上的 SCSI ASIC 可以从系统 CPU 内卸载所有工作(TCP 和
SCSI 命令)。iSCSI HBA 可以从许多供应商处购买,包括 Adaptec、Alacritech、Intel 和
QLogic。

方案1:(命令行配置,立即有效,重启无效)

      iSCSI 目标是 iSCSI 网络的"服务器"组件。它通常是一个存储设备,包含您所需的信息并响应来自(一个或多个)启动器的请求。对于本文,节点rac1 将是 iSCSI 目标。

1、在target上添加两块磁盘设备,sdb,sdc

 

 

二、实验环境:

2、安装程序包、启动服务

1、操作系统关闭防火墙和禁用SELinux

# yum install -y scsi-target-utils

2、iSCSI共享存储拓扑图:

# service tgtd start

图片 3

3、创建target

3、iSCSI可分享的设备类型有很多,包括镜像文件(*.img)、分区(partition)、物理硬盘、raid设备、逻辑卷等,下面我只用物理磁盘分区来进行相关测试,其他类型大家可以自己测试。

# tgtadm --lld /dev/sdb --mode target --op new --tid 1 --targetname
iqn.2015-01.com.liaobin:i1.c2

 

4、创建lun

三、实验步骤

# tgtadm --lld iscsi --mode logicalunit --op new --tid 1 --lun 1
--backing-store /dev/sdb

(一)配置iscsi target:

# tgtadm --lld iscsi --mode logicalunit --op new --tid 1 --lun 2
--backing-store /dev/sdc

方案1:命令行配置,立即有效,重启无效

# tgtadm --lld iscsi --mode logicalunit --op delete --tid 1 --lun 1
#删除lun的方法

1、在target上添加一块磁盘设备:sdb

5、授权

2、安装程序包、启动服务

# tgtadm --lld iscsi --mode target
--op bind --tid 1 --initiator-address 192.168.191.0/24 #限制只有192.168.191.0的网段可访问

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

6、查看已经定义的信息

[root@rac1
~]# service tgtd start

# tgtadm --lld iscsi --mode target --op show

3、创建target

 

[root@rac1
~]# tgtadm --lld /dev/sdb --mode target
--op new --tid 1 --targetname
iqn.2017-04.comcomsys:iscsi.fcdisk

方案2:(配置文件中定义,重启有效)

4、创建lun

1、编辑/etc/tgt/targets.conf

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

<target iqn.2015-01.com.liaobin:i1.c2>

[root@rac1 ~]# tgtadm --lld iscsi --mode logicalunit --op delete
--tid 1 --lun 1
#**
删除lun的方法**

                    backing-store /dev/sdb

5、授权

                    backing-store /dev/sdc

[root@rac1 ~]# tgtadm --lld iscsi --mode target --op bind --tid 1
--initiator-address 10.1.1.0/24
 
#**限制只有10.1.1.0的网段可访问**

                    initiator-address 192.168.191.0/24

6、查看已经定义的信息

</target>

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

2、重启tgtd服务;

 

# service tgtd restart

方案2:在配置文件中定义,重启有效


1、安装tgt

配置iscsi客户端initiator(节点1,2都需进行如下操作):

RedHat6自带了scsi-target-utils 软件,我们使用该软件进行target设置。

1、安装程序包

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

# yum install -y iscsi-initiator-utils

2、配置tgt

2、配置initiator的名字(配置文档:/etc/iscsi/initiatorname.iscsi)

tgt的主配置文件为/etc/tgt/targets.conf,下面我们来设置该文件。

# echo "InitiatorName=`iscsi-iname -p iqn.2015-01.com.liaobin`" >
/etc/iscsi/initiatorname.iscsi  (使用iscsi-iname命令生成随机数)

在该文件最后新增以下设置:

3、启动服务

图片 4

# service iscsi start

说明:

# service iscsid start

iqn
= iSCSI Qualified Name

 

iSCSI target的名称规则如下:

4、使用iscsiadm实现target的发现

iqn.2014-07.dev.iscsi-target:iscsidisk
–--->iqn.年份-月份.域名反写.设备识别

基本格式:iscsiadm -m discovery
-d # -t sendtargets -p IP[:PORT]

每个在同一个target上的backing-store 称为逻辑单元号(Logical Unit Number,LUN),这个实验中有1个LUN。

 

其他高级设置如initiator-address、incominguser,大家自己进行配置。

# iscsiadm -m discovery -d 3 -t sendtargets -p 192.168.191.113:3260

 

#发现target -m模式 -d调试级别 -t类型(sendtargets可简写为st)-p服务端IP

3、启动iSCSI target

图片 5

[root@rac1
~]# /etc/init.d/tgtd start

5、登入,登出

[root@rac1
~]# chkconfig tgtd on

基本格式:iscsiadm -m node [ -d
debug_level ]  [ [ -T targetname -p ip:port -I ifaceN ] [ -l | -u
| -R | -s] ] [ [ -o  operation  ]

[root@rac1
~]# netstat -tulnp|grep
tgt

 

图片 6

# iscsiadm -m node -d 1 -T iqn.2015-01.com.liaobin:i1.c2 -p
192.168.191.113:3260 -l #登入

 

图片 7

4、查看iSCSI target

# iscsiadm -m node -d 1 -T iqn.2015-01.com.liaobin:i1.c2 -p
192.168.191.113:3260 -u #登出

[root@rac1
~]# tgt-admin –show

# iscsiadm -m node -d 1 -T iqn.2015-01.com.liaobin:i1.c2 -p
192.168.191.113:3260 -o delete #删除指定条目

图片 8


LUN0 是控制器,可以看到各个LUN的大小和磁盘路径。

测试:

至此,iSCSI Target 设定完毕。

(节点上1操作)

 

1、查看有无磁盘设备

(二)配置iSCSI Initiator

# fdisk -l #查看是否多出sdb,sdc,若有则说明登入成功,可分区并挂载使用

1、安装initiator

2、新建分区

[root@rac1
~]# yum -y install
iscsi-initiator-utils

# fdisk /dev/sdc  #创建一个新分区

相关文章

Comment ()
评论是一种美德,说点什么吧,否则我会恨你的。。。