千家信息网

Linux下如何搭建iSCSI共享存储

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章给大家分享的是有关Linux下如何搭建iSCSI共享存储的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、简介iSCSI(internet SCSI)技术由IBM公
千家信息网最后更新 2026年11月01日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 总线连接。

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、安装程序包、启动服务

[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,下面我们来设置该文件。

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

说明:

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

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

[root@rac1 ~]# chkconfig tgtd on

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

4、查看iSCSI target

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

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

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 文件并不需要修改。

小知识:

[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

说明:

-m discovery   //侦测target

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

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

5、查看nodes

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

[root@rac2 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

[root@rac2 iscsi] iscsiadm -m node

补充知识:

连接与退出

基本格式: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

7、查看磁盘情况

[root@rac2 ~] fdisk -l

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

8、查看target信息

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

(三)测试

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

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

目标端分区:

客户端查看分区结果:

感谢各位的阅读!关于"Linux下如何搭建iSCSI共享存储"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

设备 文件 配置 网络 存储 启动器 目标 软件 系统 服务 技术 磁盘 侦测 信息 名称 客户 情况 数据 以太 测试 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 圆梦互联网科技 美国互联网科技巨头监管 科技类的互联网平台 联恩商钥互联网科技有限公司 广西拼得多互联网科技有限公司 昭通云南众福互联网科技有限公司 互联网金融科技公司干啥的 南平创想时代互联网科技有限公司 崇明区互联网教育科技诚信经营 佛山市翊博互联网络科技有限公司 电子商务与互联网科技的关系 互联网安防科技感 互联网时代科技型公司的机会 国产互联网科技公司 银川新华互联网科技学校是国营吗 互联网科技创新创业项目 互联网金融金融科技 互联网科技创业计划的风险分析 科技发展第三阶段互联网时代 株洲百竞科技的互联网营销顾问 华服互联网科技靠谱吗 广东猪兼强互联网科技有限公司 互联网科技工作委员会副主任毛军 互联网金融监管科技数据 互联网科技卖菜 互联网与新科技 西藏七维空间互联网科技有限公司 迪庆互联网科技招生 互联网时代高科技布局 科技互联网专业工作会议发言稿
0