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 总线连接。

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

完整的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 可以从许多供应商处购买,包括 Adaptec、Alacritech、Intel 和 QLogic。

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

二、实验环境:

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

2、iSCSI共享存储拓扑图:

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

三、实验步骤


(一)配置iscsi target:


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

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

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

[[email protected] ~]# yum install -y scsi-target-utils

[[email protected] ~]# service tgtd start

3、创建target

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

4、创建lun

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

[[email protected] ~]# tgtadm--lld iscsi --mode logicalunit --op delete --tid 1 --lun 1  #删除lun的方法

5、授权

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

6、查看已经定义的信息

[[email protected] ~]# tgtadm --lld iscsi --mode target --op show

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

1、安装tgt

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

[[email protected] ~]# yum install scsi-target-utils -y

2、配置tgt

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

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

说明:

iqn = iSCSI Qualified Name

iSCSI target的名称规则如下:

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

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

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

3、启动iSCSI target

[[email protected] ~]# /etc/init.d/tgtd start

[[email protected] ~]# chkconfig tgtd on

[[email protected] ~]# netstat -tulnp|grep tgt

4、查看iSCSI target

[[email protected] ~]# tgt-admin –show

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

至此,iSCSITarget 设定完毕。

(二)配置iSCSIInitiator

1、安装initiator

[[email protected] ~]# yum -y installiscsi-initiator-utils

2、设置开机启动

[[email protected] ~]# chkconfig iscsid on

[[email protected] ~]# chkconfig iscsi on

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

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

 

小知识:

[[email protected] 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]

[[email protected] iscsi] iscsiadm -m discovery -tsendtargets -p 10.1.1.51

说明:

-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了。

[[email protected] iscsi] ll -R /var/lib/iscsi/nodes/

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

6、连接target

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

[[email protected] iscsi] iscsiadm -m node

补充知识:

连接与退出

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

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

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

连接target

[[email protected] ~]iscsiadm -mnode -d 1 -T iqn.2017-04.com.comsys:iscsi.fcdisk -p 10.1.1.51:3260 -l

7、查看磁盘情况

[[email protected] ~] fdisk –l

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

8、查看target信息

[[email protected] ~] tgt-admin --show

(三)测试

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

[[email protected] ~]# fdisk /dev/sdb

目标端分区:

客户端查看分区结果:


作者:SEian.G

◇本文在ITPUB:http://blog.itpub.net/31015730/

51CTO:http://seiang.blog.51cto.com/上有同步更新

◇本文itpub地址:http://blog.itpub.net/31015730/viewspace-2137709/

◇本文51CTO地址:http://seiang.blog.51cto.com/10819863/1916835

本文出自 “SEianG之路” 博客,请务必保留此出处http://seiang.blog.51cto.com/10819863/1917934

时间: 2024-08-03 07:07:04

Linux下搭建iSCSI共享存储的相关文章

Linux下搭建iSCSI共享存储的方法 Linux-IO Target 方式CentOS7-1810下实现

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

Linux下搭建iSCSI共享存储的方法 TGT 方式 CentOS6.9系统下

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

Linux下搭建iSCSI共享存储的方法 TGT 方式 Debian9.5系统下

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

Linux下搭建iSCSI共享存储的方法 Linux-IO Target 方式 Debian9.5下实现

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

Linux下搭建iSCSI共享存储详细步骤(服务器模拟IPSAN存储)

一.简介 iSCSI(internet SCSI)技术由IBM公司研究开发,是一个供硬件设备使用的.可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够在诸如高速千兆以太网上进行路由选择.iSCSI技术是一种新储存技术,该技术是将现有SCSI接口与以太网络(Ethernet)技术结合,使服务器可与使用IP网络的储存装置互相交换资料. iSCSI是一种基于TCP/IP 的协议,用来建立和管理IP存储设备.主机和客户机等之间的相互连接,并创建存储区域网

Linux系统下实现iscsi共享存储

Linux系统下实现iscsi共享存储 iscsi简介:iscsi 是基于TCP/IP传输封装的SCSI数据包的块级别的共享,其也为C/S架构模型,服务器端提供客户端所需要的存储设备,客户端只需要进行挂载就可以将其当作自己主机上的存储设备进行分区.格式化使用. 实现iscsi需要的2个角色: iscsi target(server) 存储资源所在的iscsi服务器被称为"target".iscsi target通常是一个硬盘存储设备.当前大部分的主流操作系统都提供了配合iscsi ta

搭建iscsi共享存储

拓扑: 实验步骤: -------------------------------------------------------------- 配置iscsi server: 方案1:(命令行配置,立即有效,重启无效) 1.在target上添加两块磁盘设备,sdb,sdc 2.安装程序包.启动服务 # yum install -y scsi-target-utils # service tgtd start 3.创建target # tgtadm --lld /dev/sdb --mode t

Linux搭建 iSCSI 共享存储 个人理解,详细配置 centos7

官方解释: iSCSI( Internet Small Computer System Interface 互联网小型计算机系统接口)是由IBM 下属的两大研发机构一一加利福尼亚AImaden和以色列Haifa研究中心共同开发的,是一个供硬件设备使用的.可在IP协议上层运行的SCSI指令集,是一种开放的基于IP协议的工业技术标准.该协议可以用TCP/IP对SCSI指令进行封装,使得这些指令能够通过基于IP网络进行传输,从而实现SCSI 和TCP/IP协议的连接.对于局域网环境中的用户来说,采用该

Linux下IP SAN共享存储操作记录

一.简单介绍SAN,即存储区域网络(storage area network and SAN protocols),它是一种高速网络实现计算机与存储系统之间的数据传输.常见的分类是FC-SAN和IP-SAN两种.FC-SAN通过光纤通道协议转发scsi协议:IP-SAN通过TCP协议转发scsi协议,也就是IP 地址.存储设备是指一台或多台用以存储计算机数据的磁盘设备,通常指磁盘阵列,主要厂商EMC.日立等. iSCSI(internet SCSI)技术由IBM公司研究开发,是一个供硬件设备使用