利用ISCSI存储技术构建IP存储网络

本文重点介绍如何构建一个PC构架的iSCSI存储系统,这里我们选择一个普通的、性能优良的、可支持多块磁盘的PC服务器作为iSCSI target,并且选择一个成熟稳定的iSCSI target软件iscsitarget,基本配置环境如表1所示:
表1

这里将Target主机第三块硬盘(硬盘标识为/dev/sdc)作为iSCSI共享磁盘,硬盘大小为10G,分别共享给一台windows主机和一台Linux主机,基本结构如图1所示:

图1

下面开始详细介绍iSCSI网络存储的搭建过程。

一、安装iSCSI target软件
安装iscsitarget软件是在Target主机上进行的,即上面设定的192.168.12.246主机,这里我们选择的target软件是iscsitarget,读者可以从http://iscsitarget.sourceforge.net下载相应的版本,这里下载的是iscsitarget-1.4.20.1.tar.gz,接着开始进行编译安装:
[[email protected] iscsi]#tar -xzvf iscsitarget-1.4.20.1.tar.gz
[[email protected] iscsi]#cd iscsitarget-1.4.20.1
[[email protected] iscsitarget-1.4.20.1]#make
[[email protected] iscsitarget-1.4.20.1]#make install
 Iscsitarget安装完毕后,会创建/etc/iet/目录,此目录下有Iscsitarget的相关配置文件,接着就可以启动Iscsitarget服务了,启动或关闭Iscsitarget服务的命令如下:
[[email protected] iscsi]# service iscsi-target       
Usage: /etc/init.d/iscsi-target {start|stop|restart|condrestart|status}
如果要让iscsi-target服务开机自动运行,需执行如下操作:
[[email protected] iscsi]#chkconfig --level 35 iscsi-target on
到此为止,iscsitarget安装完成。

二、配置一个简单的iSCSI target
 iSCSI Enterprise Target的主配置文件为/etc/iet/ietd.conf,此文件中的选项默认全部被注释掉了,有需要用到这些选项时,再将注释去掉即可。
 打开ietd.conf文件,首先找到类似如下行:
#Target iqn.2001-04.com.example:storage.disk2.sys1.xyz
此选项表示该iSCSI Target的命名,先将前面的“#”号去掉, Target的命名在同一子网内应该是唯一的,标准命名方式为:
iqn.yyyy-mm.<reversed domain name>[:identifier]
其中:
? iqn:表示“iSCSI Qualified Name”,简称iqn。
? yyyy-mm:表示年份-月份。这里是2001-04。
? reversed domain name:表示倒过来的域名,这里是com.example。
? identifier:表示识别代码,这里是storage.disk2.sys1.xyz。
接下来,就是要设定 LUN(Logical Unit Number),找到类似如下行:
#Lun 0 Path=/dev/sdb,Type=fileio,ScsiId=xyz,ScsiSN=xyz
将前面的“#”号去掉,“Lun 0 Path=/dev/sdb”表示块设备号为0,映射的磁盘为/dev/sdb,“Type”值fileio是默认的,可以用于磁盘、file和LVM, 这里设定的是“fileio”,主要用来对一个磁盘进行存储共享。读者可以根据自己情况将Path改为需要共享的存储分区的设备标识。这里假定共享的设备 标识为/dev/sdb。
至此,一个简单的iSCSI Target已经配置完毕了,最后启动iscsi-target服务:
[[email protected] iscsi]# service iscsi-target start

三、在windows上配置iSCSI Initiator
 下面的操作是在Initiator的windows主机上进行,即IP为192.168.12.136主机。
微软对iSCSI Initiator的支持相当完备,读者可以免费从微软网站获得iSCSI Initiator软件,网址是http://www.microsoft.com/WindowsServer2003/technologies/storage/iscsi/default.mspx
,本章实例下载的版本是Initiator-2.08-build3825-x86fre.exe,接下来开始说明如何让windows连接iSCSI Target。
 安装完成iSCSI Initiator后,在桌面上会发现启动图标,启动Microsoft iSCSI Initiator后,选择第二个分页标签“Discovery”,然后在“Target Portals”部分点击“Add”按钮,跳出“Add Target Portal”窗口,如图2所示:

图2

在此窗口下填写iSCSI Target的ip地址和端口,iSCSI Target地址就是上面设定的Target主机的地址,iSCSI Target的端口默认是3260,除非有特殊设定,填写完成,点击OK按钮。
接下来,选择第三个分页标签“Targets”,如图3所示,可以看到,iSCSI Initiator已经检测到了iSCSI Target的名称,但是此时的iSCSI Target还处于“inactive”状态,点击下方“Log On”按钮,然后弹出“Log On to Target”窗口,接着按下“OK”按钮来激活Target,此时iSCSI Target已经从“inactive”状态变为“Connected”状态。如图4和图5所示:

图3

图4

 
图5

到此为止,windows系统已经识别了iSCSI Target提供的共享磁盘分区,通过windows的磁盘管理器可以看到新增加的磁盘分区,如图6所示:


 
图6

现在就可以使用windows的磁盘管理功能对这块共享磁盘进行分区、格式化以及挂载等操作了。

四、在Linux上配置iSCSI Initiator
 下面的操作是在Initiator的Linux主机上进行,即IP为192.168.12.26主机。
1 安装Linux版本iSCSI Initiator
现在的主流Linux发行版本默认都自带了iSCSI Initiator,即Open-iSCSI,如果系统没有安装,只需通过光盘找到iscsi-initiator-utils- 6.2.0.871-0.16.el5.i386.rpm包,通过rpm方式安装即可,当然也可以通过yum进行自动安装,操作如下:
[[email protected] Initiator iscsi]#yum install iscsi*
安装完成后,会生成/etc/iscsi主程序配置目录,其它相关文件的安装位置为:
/etc/iscsi/iscsid.conf
/etc/rc.d/init.d/iscsi
/etc/rc.d/init.d/iscsid
/sbin/iscsi-iname
/sbin/iscsiadm
/sbin/iscsid
/sbin/iscsistart
/var/lib/iscsi
/var/lib/iscsi/ifaces
/var/lib/iscsi/isns
/var/lib/iscsi/nodes
/var/lib/iscsi/send_targets
/var/lib/iscsi/slp
/var/lib/iscsi/static
/var/lock/iscsi
接下来需要启动Initiator服务,操作如下:
[[email protected] Initiator iscsi]# service iscsi start

2 iSCSI Initiator目录功能介绍
? /sbin/iscsiadm命令
 在iSCSI Initiator安装完成后,会生成/sbin/iscsiadm命令,此命令是用来管理(更新、删除、插入、查询)iSCSI配置数据库文件的命令行 工具,用户能够用它对iSCSI nodes、sessions、connections和discovery records进行一系列的操作。
? /var/lib/iscsi/send_targets目录
 在此目录下,会生成一个或多个以iSCSI存储服务器IP和端口命名的文件夹,文件名为“iSCSI Target IP,端口号”(例如“192.168.12.246,3260”)。
? /var/lib/iscsi/nodes目录
 在此目录下,会生成一个或多个以iSCSI存储服务器上的Target名命名的文件夹,在该文件夹下有一个文件名为“iSCSI portal IP,端口号” (例如“192.168.12.246,3260”)的配置参数文件,该文件是iSCSI initiator登录iSCSI target时要使用的参数,而这些参数的设置是从/etc/iscsi/iscsi.conf中的参数继承而来的,可以通过iscsiadm命令对某一 个参数文件进行更改。

3 在linux上执行iSCSI  Target发现
 可以使用如下指令向 iSCSI Target 主机查询划分了哪些lun:
iscsiadm -m discovery --type sendtargets --portal IP
 或者
iscsiadm -m discovery -t sendtargets -p IP
例如:
[[email protected] Initiator iscsi ]# iscsiadm -m discovery -t sendtargets -p 192.168.12.246:3260                                         
192.168.12.246:3260,1 iqn.2001-04.com.example:storage.disk2.sys1.xyz
可以看出,“iqn.2001-04.com.example:storage.disk2.sys1.xyz”就是iSCSI Target的名称。由于在配置iSCSI Target时,没有做任何限制,因此所有的客户端主机都允许连接iSCSI Target共享出来的磁盘。
需要说明的是:当成功执行一次Target发现后,iSCSI Initiator就会将查询纪录写到/var/lib/iscsi/send_targets对应目录下。因此,对于Target发现只需执行一次即可。
接着通过iscsiadm指令与iSCSI Target 主机建立连接,也就是登录iSCSI Target:
iscsiadm -m node -T <target-name> -p <ip-address>:<port> --login
或者
iscsiadm -m node -T [target-name] -p [ip-address] -l
这里的“-T”后面跟target名称,“ip-address”是target主机的IP地址,“port”是target主机的端口号,默认是3260。
例如:
[[email protected] Initiator iscsi ]#iscsiadm -m node -T iqn.2001-04.com.example:storage.disk2.sys1.xyz -p 192.168.12.246 -l
Logging in to [iface: default, target: iqn.2001-04.com.example:storage.disk2.sys1.xyz, portal: 192.168.12.246,3260]
Login to [iface: default, target: iqn.2001-04.com.example:storage.disk2.sys1.xyz, portal: 192.168.12.246,3260]: successful
如果有多个Target主机时,可以通过如下命令一次登录所有的targets:
[[email protected] Initiator iscsi ]#iscsiadm -m node --loginall=all
这里需要说明的是,通过执行Target发现操作,其实已经与iSCSI Target 主机建立了连接,此时如果再次执行iscsiadm命令与Target 主机建立连接的话,会提示“iscsiadm: initiator reported error (15 - already exists)”错误,所以需要先断开与iSCSI Target 主机的连接,执行如下指令,断开Initiator 与iSCSI Target 主机的连接:
iscsiadm -m node -T [target-name] -p [ip-address] -u
 例如:
[[email protected] Initiator iscsi ]#iscsiadm -m node -T iqn.2001-04.com.example:storage.disk2.sys1.xyz -p 192.168.12.246  -u
Logging out of session [sid: 2, target: iqn.2001-04.com.example:storage.disk2.sys1.xyz, portal: 192.168.12.246,3260]
Logout of [sid: 2, target: iqn.2001-04.com.example:storage.disk2.sys1.xyz, portal: 192.168.12.246,3260]: successful
 当iSCSI Initiator与iSCSI Target连接成功后,还可以通过如下命令查看iSCSI session信息:
[[email protected] Initiator iscsi ]#iscsiadm -m session –i
例如:
[[email protected] Initiator iscsi ]#iscsiadm -m session –i
iSCSI Transport Class version 2.0-871
version 2.0-871
Target: iqn.2001-04.com.example:storage.disk2.sys1.xyz
        Current Portal: 192.168.12.246:3260,1
        Persistent Portal: 192.168.12.246:3260,1
                **********
                Interface:
                **********
                Iface Name: default
                Iface Transport: tcp
                Iface Initiatorname: iqn.1994-05.com.redhat:fd37f211e3a
                Iface IPaddress: 192.168.12.26
                Iface HWaddress: <empty>
                Iface Netdev: <empty>
                SID: 1
                iSCSI Connection State: LOGGED IN
                iSCSI Session State: LOGGED_IN
                Internal iscsid Session State: NO CHANGE
                ************************
                Negotiated iSCSI params:
                ************************
                HeaderDigest: None
                DataDigest: None
                MaxRecvDataSegmentLength: 262144
                MaxXmitDataSegmentLength: 8192
                FirstBurstLength: 65536
                MaxBurstLength: 262144
                ImmediateData: Yes
                InitialR2T: Yes
                MaxOutstandingR2T: 1
                ************************
                Attached SCSI devices:
                ************************
                Host Number: 32 State: running
                scsi32 Channel 00 Id 0 Lun: 0
                        Attached scsi disk sdb          State: running

4 管理共享磁盘
 首先通过fdisk命令查看共享过来的磁盘标识,也可以通过dmesg命令查看系统是否认到了共享的iSCSI磁盘,操作如下:
[[email protected] Initiator iscsi ]#fdisk -l
Disk /dev/sda: 320.0 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14       38913   312464250   8e  Linux LVM

Disk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         609     4891761   83  Linux
/dev/sdb2             610        1305     5590620   83  Linux
 从fdisk输出可知,iscsi共享磁盘标识为/dev/sdb,大小10.7G,下面就可以通过fdisk命令对这个磁盘进行重新分区、格式化、创建文件系统等操作了。

时间: 2024-10-15 19:35:14

利用ISCSI存储技术构建IP存储网络的相关文章

iscsi target存储技术-多路径 udev动态管理设备文件方法 nfs

惠普 戴尔 华为 目前国内服务器厂商排名 存储技术分类: SCSI小型计算机系统接口DAS直连式存储NAS网络技术存储SAN存储区域网络FC光纤通道 SCSI小型计算机系统接口 (U盘) DAS技术:直连式存储(将存储设备通过scsi接口或光纤通道直连到计算机上,不能实现数据与其它主机的共享,占用服务器操作系统资源cpu,io等,数据量越大,性能越差) NAS网络技术存储  做公享文件夹  (这是一种专用数据存储服务器,以数据为中心,将存储设备与服务器彻底分离,集中管理数据,提高性能,节省成本)

存储技术与应用

存储技术与应用 存储技术分类 DAS直连式存储 将存储设备通过SCSI接口或光纤通道直接连接到计算机上,不能实现数据与其他主机共享,占用服务器操作系统 NAS网络技术存储 一种专用数据存储服务器,以数据为中心,将存储设备与服务器彻底分离,集中管理数据,从而释放带宽.提高性能,用户通过TCP/IP协议访问数据 SAN存储区域网络 通过光纤交换机.光纤路由器等设备将磁盘阵列.磁盘等存储设备与相关服务器连接起来,形成高速专用网络 ISCSI技术 将存储行业广泛应用的SCSI接口技术与ip网络相结合 部

关于云存储技术的五个问题

云存储技术当然不是科学项目,但是它对企业组织的部分甚至所有数据都是适用的. 下面是5个关于云存储技术的关键问题,它们将有助于企业用户决定是否采用云存储技术. 1. 什么是云存储技术,它是如何工作的? 一百个人对于这个问题会有一百种不同的答案.从根本上来说,云存储技术是一种实用型服务,它可以为众多用户提供一个通过网络访问的共享存储池. 存储云是可以调整的,它们可以很轻松地扩展或根据客户需求定制. 2. 公共云与私有云之间有什么不同? 公共云是一种即付费即使用的存储服务. 它的所有组件都处于客户的防

云存储技术的发展现状和创新方向

一.云存储的现状与创新 在安防行业中,存储的存在形式较为多样,传统如DVR/NVR.SAN.NAS等.各种存储方案的存在均满足于安防行业特定场景变化的需要和受力于市场作用的结果.云存储技术作为存储技术中的一项重大革新,在安防行业中的多项场景应用中填补了空白,同时随着技术创新的不断深化,在传统建设领域上的应用上也出现的云存储的身影. 在满足小型视频监控的需求时,用户通常会倾向于DVR或者NVR,当规模再大一些时会使用SAN或者NAS存储方案.而随着规模的不断加大,庞大存储系统的整合.资源利用率的提

云存储技术彻底解决视频监控风险及碎片问题

据IMSResearch统计,2011年全球摄像头的出货量达到 2646万台,预计到2015年摄像头出货量达5454万台.仅仅视频监控录像而言,每天的数据量就达上千PB,累计的历史数据将更为庞大,在视频监控大 联网.高清化推动下,视频监控业务步入数据的井喷时代.而大数据的到来,极大程度上考验着视频监控存储技术.云存储与智能存储概念被深化. 用于监控的存储技术经历了从单个的磁带.磁盘.磁盘列阵到存储网络系统的发展历程.而存储智能化的重要拐点就在于磁盘列阵RAID的出现.在IP- SAN中,存储成为

透过新硬件环境下的存储技术,看未来数据库系统崛起(附PPT)

本文根据朱阅岸老师在[Gdevops 2017全球敏捷运维峰会广州站]现场演讲内容整理而成. 在公众号对话框回复"数据库技术",可获取完整PPT 讲师介绍 朱阅岸,中国人民大学博士,腾讯基础架构部高级工程师.研究方向主要为数据库系统理论与实现.新硬件平台下的数据库系统以及TP+AP型混合系统. 本次分享大纲: 现代处理器及新型存储的发展 现代处理器下的数据库技术 面向新型存储的数据库系统 总结 大家应该都看过<星际穿越>,里面有很多震撼人心的场景,我个人印象较为深刻的还是老

安卓开发_数据存储技术_sqlite

一.SQLite SQLite第一个Alpha版本诞生于2000年5月,它是一款轻量级数据库,它的设计目标是嵌入式的,占用资源非常的低,只需要几百K的内存就够了.SQLite已经被多种软件和产品使用 二.SQLite特性 1 2 1.轻量级 3 SQLite和C\S模式的数据库软件不同,它是进程内的数据库引擎,因此不存在数据库的客户端和服务器.使用SQLite一般只需要带上它的一个动态库,就可以享受它的全部功能.而且那个动态库的尺寸也相当小. 4 2.独立性 5 SQLite数据库的核心引擎本身

云存储技术终将成为企业存储的归宿

云存储技术目前在市场中所使用的还有一点的技术障碍.但是在使用的时候还是有很多的企业需要进行详细的讨论.云存储技术到底将要走向何方,还是需要时间慢慢的试炼. 美国华盛顿地铁相撞的新闻让我联想到云存储技术的安全问题.数据交给云存储服务供应商还是自己保存哪个更安全?这跟选择坐公交地铁(或者打车)还是自己开车哪个更安全还有那么点相似之处. 任何一种交通方式都有潜在危险,选哪个就看你信得过谁了.自己开车是把命放在自己手里;而其它方式是把命交给了公交/地铁/出租车司机.如果自己车技平平甚至走路过十字路口都要

利用ISCSI搭建IP存储网络iSCSI在安全方面相关设定

ISCSI技术的优势 与传统的SCSI技术比较起来,iSCSI技术有三个革命性的变化: 把原来只用于本机的SCSI透过TCP/IP网络传送,使连接距离可作无限的地域延伸: 连接的服务器数量无限(原来的SCSI-3的上限是15): 由于是服务器架构,因此也可以实现在线扩容以至动态部署. 授权访问iSCSI磁盘的必要性 只允许客户端主机A连接target共享出来的磁盘分区一,而客户端主机B只允许连接target共享出来的磁盘分区二. 案例: 有一个PC构架的iSCSI target服务器,共享的硬盘