阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

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

165次阅读
没有评论

共计 4150 个字符,预计需要花费 11 分钟才能阅读完成。

一、简介

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

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

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

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

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

    从本质上说,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 可以从许多供应商处购买,包括 AdaptecAlacritechIntel QLogic

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

 

二、实验环境:

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

2、iSCSI 共享存储拓扑图:

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

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

 

三、实验步骤

(一)配置 iscsi target:

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

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

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

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

[root@rac1 ~]# service tgtd start

3、创建target

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

4、创建lun

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

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

5、授权

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

6、查看已经定义的信息

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

 

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

1、安装tgt

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

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

2、配置tgt

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

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

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

说明:

iqn = iSCSI Qualified Name

iSCSI target的名称规则如下:

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

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

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

 

3、启动iSCSI target

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

[root@rac1 ~]# chkconfig tgtd on

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

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

 

4、查看iSCSI target

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

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

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

至此,iSCSI Target 设定完毕。

 

(二)配置 iSCSI Initiator

1、安装initiator

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

2、设置开机启动

[root@rac1 ~]# chkconfig iscsid on

[root@rac1 ~]# chkconfig iscsi on

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

3、修改配置文件

initiator的配置文档位于 /etc/iscsi/,该目录下有两个文件,initiatorname.iscsi iscsid.conf,其中 iscsid.conf 是其配置文件,initiatorname.iscsi 是标记了 initiator 的名称,它的默认名称是InitiatorName= InitiatorName=iqn.1994-05.com.redhat:2f897b321a2,我们可以根据实际情况进行更改,比较好区分,这里我们修改为InitiatorName= iqn.2017-04.com.comsys:fcdisk.sdb

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

因为在 target 里面,我们并没有设置访问限制,所以 iscsid.conf 文件并不需要修改。

 

小知识:

[root@rac2 iscsi]#echo “InitiatorName=`iscsi-iname -p iqn.2017-04.com.comsys:fcdisk.sdb`” > /etc/iscsi/initiatorname.iscsi  (使用 iscsi-iname 命令生成随机数 )

 

4、侦测target

如果我们事先不知道目标主机的 target 名称,我们就需要进行侦测。

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

[root@rac2 iscsi] iscsiadm -m discovery -t sendtargets -p 10.1.1.51

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

说明:

-m discovery //侦测target

-t sendtargets //通过 iscsi 协议(sendtargets可简写为st

-p IP:port //指定 targetIPport,不写port 的话,默认为3260

 

5、查看nodes

iscsiadm 侦测到的结果会写入 /var/lib/iscsi/nodes/ 中,因此只需启动 /etc/init.d/iscsi 就能够在下次开机时,自动连接到正确的 target 了。

[root@rac2 iscsi] ll -R /var/lib/iscsi/nodes/

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

侦测信息都写入了 /var/lib/iscsi/nodes/ iqn.2017-04.com.comsys:iscsi.fcdisk /10.1.1.51,3260,1/default 文件中了。

 

6、连接target

查看目前系统上面所有的target

[root@rac2 iscsi] iscsiadm -m node

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

补充知识:

连接与退出

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

[root@rac2 iscsi] iscsiadm -m node -d 1 -T iqn.2017-04.com.comsys:iscsi.fcdisk -p 10.1.1.51:3260 -u #退出

[root@rac2 iscsi] iscsiadm -m node -d 1 -T iqn.2017-04.com.comsys:iscsi.fcdisk -p 10.1.1.51:3260 -o #删除指定条目

 

连接target

[root@rac2 ~] iscsiadm -m node -d 1 -T iqn.2017-04.com.comsys:iscsi.fcdisk -p 10.1.1.51:3260 -l

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

 

7、查看磁盘情况

[root@rac2 ~] fdisk –l

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

可以看到,initiator 上面多了一块硬盘,大小和 target 上的 LUN 一致。这时你就可以像使用本地磁盘一样使用这些 iSCSI 设备了,下面我们来测试。

 

8、查看 target 信息

[root@rac1 ~] tgt-admin –show

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

 

(三)测试

/dev/sdb 在目标端进行分区,然后在客户端查看具体的分区情况

[root@rac1 ~]# fdisk /dev/sdb

目标端分区:

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

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

客户端查看分区结果:

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

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

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-05/143877.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计4150字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中