导图社区 ISCSI IP网络存储
一种基于因特网及SCSI-3协议下的存储技术。
编辑于2020-12-19 23:10:21ISCSI
相关概念
存储相关 SCSI :小型计算机系统接口 FC:光纤通道 DAS:直连式存储 NAS:网络接入存储 SAN:存储区域网络
ISCSI:在IP网络上运行SCSI协议的一种网络存储技术
优点
1.将SCSI透过TCP/IP网络传送,增加了连接范围 2.连接的服务器数无限(原来的SCSI-3的上限式15) 3.式服务器架构,因此也可以实现在线扩容以至动态部署
架构方式
控制器架构
描述:采用专用的数据传输芯片、专用的RAID数据校验芯片、专用的高性能cache缓存和专用的嵌入式系统平台,是一个核心全硬件的设备。
优点:具有较高的安全性和和稳定性。 缺点:核心处理器全部采用硬件,制造成本较高,因而售价也很高。
适用环境:可以用于对性能的稳定性和高可用性具有较高要求的在线存储系统。
连接桥架构
连接桥构架分为两个部分:前端协议转换设备、后端存储。 1.前端协议转换部分一般是硬件设备,只有协议转换功能,没有RAID校验和快照、卷复制等功能,因此,创建RAID组、创建LUN等操作必须在存储设备上完成。 2.后端存储一般采用SCSI磁盘阵列和FC存储设备。
随着iscsi技术的日益成熟,连接桥架构的iSCSI设备越来越少
PC架构
客户端主机可以安装iscsi客户端软件(iSCSI initiator)通过以太网连接PC服务器共享出来的存储空间。
以太网卡+initiator软件方式
优点:在现有网络基础上即可完成,成本很低。 缺点:消耗客户端主机部分资源
适用环境:在低I/O和低带宽性能要求的应用环境中。
硬件TOE网卡+initiator软件方式
优点:采用TOE卡后可以大幅度提高数据的传输速率,降低了客户端主机的资源消耗。 缺点:需要购买TOE功能的网卡,成本较高。
iSCSI HBA卡连接方式
优点:数据传输性能最好三种方式最好。 缺点:需要购买iSCSI HBA适配卡,成本较高。
TOE网卡和iSCSI HBA的市场价格都比较贵,如果主机较少的话,还可以接受,如果网络主机较多,成本消耗很大。
ISCSI系统组成
iSCSI target
可以被用于存储数据的iSCSI磁盘阵列或者具有iSCSI功能的设备都可以被称为“iSCSI target”
利用iSCSI target软件,可以将服务器的存储空间分配给客户机使用,客户机就可以像使用本地硬盘一样使用iSCSI磁盘。
iSCSI initiator
iSCSI initiator是一个安装在计算机上的一个软件或是一个硬件设备,它负责处理同iSCSI存储设备进行通信。
目前大多数iSCSI target软件都是收费的,不过,也有一些linux平台开源的iSCSI target软件。 例如iSCSI Enterprise Target。
iSCSI服务器与iSCSI存储设备之间的连接方式
软件iSCSI initiator
硬件SCSI initiator
iSCSI initiator软件一般都是免费的,Centos和RHEL对iSCSI Initiator支持非常不错,现在的Linux发行版本都默认已经自带了iSCSI Initiator。
ISCSI系统工作原理
iSCSI协议定义了在TCP/IP网络发送、接收 block(数据块)级的存储数据的规则和方法: 发送端将SCSI命令和数据封装到TCP/IP包中再通过网络转发,接收端收到 TCP/IP包之后,将其还原为SCSI命令和数据并执行,完成之后将返回的SCSI命令和数据再封装到TCP/IP包中再传送回发送端。
整个过程在用户看来: 使用远端的存储设备就象访问本地的 SCSI设备一样简单。
实施配置(PC架构)
Target主机(liunx)
CentOS5.3安装iSCSI target软件
安装软件: [root@iscsi-target iscsi]#tar -xzvf iscsitarget-1.4.20.1.tar.gz [root@iscsi-target iscsi]#cd iscsitarget-1.4.20.1 [root@iscsi-target iscsitarget-1.4.20.1]#make [root@iscsi-target iscsitarget-1.4.20.1]#make install [root@iscsi-target iscsi]# service iscsi-target Usage: /etc/init.d/iscsi-target {start|stop|restart|condrestart|status}
Iscsitarget下载地址为: http://iscsitarget.sourceforge.net
ietd.conf文件
iSCSI Enterprise Target的主配置文件为/etc/iet/ietd.conf, 打开ietd.conf找到类似如下行: #Target iqn.2001-04.com.example:storage.disk2.sys1.xyz 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”,主要用来对一个磁盘进行存储共享 。
启动iscsi-target服务
[root@iscsi-target iscsi]# service iscsi-target start
Initiator主机(liunx)
安装iSCSI Initiator
使用iscsi-initiator-utils-6.2.0.871-0.16.el5.i386.rpm包进行安装: [root@ Initiator iscsi]#rpm –ivh iscsi-initiator-utils-6.2.0.871-0.16.el5.i386.rpm
启动Initiator服务,操作如下: [root@ Initiator iscsi]# service iscsi start
会生成/etc/iscsi主程序配置目录
在linux上执行iSCSI Target发现
可以使用如下指令向 iSCSI Target 主机查询划分了哪些lun: iscsiadm -m discovery --type sendtargets --portal IP 或者 iscsiadm -m discovery -t sendtargets -p IP
当成功执行一次Target发现后,iSCSI Initiator就会将查询纪录写到/var/lib/iscsi/send_targets对应目录下。因此,对于Target发现只需执行一次即可。
Discovery (/var/lib/iscsi/send_targets):在/var/lib/iscsi/send_targets目录下,生成一个target服务器信息文件,文件名为“target服务的IP,端口号”(例如“200.200.10.200,3260”)。此文件用来记录target服务器信息。 Node (/var/lib/iscsi/nodes):在/var/lib/iscsi/nodes目录下,生成一个或多个以target存储服务器上的Target名命名的文件夹,每文件夹下有一个用来记录target服务器上特定Target信息的文件。
通过iscsiadm指令与iSCSI Target 建立关联
iscsiadm是用来管理(更新、删除、插入、查询)iSCSI配置数据库文件的命令行工具,用户能够用它对iSCSI nodes、sessions、connections和discovery records进行一系列的操作。
1.登录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。
2.断开Initiator 与iSCSI Target 主机的连接
iscsiadm -m node -T [target-name] -p [ip-address] –u
3.查看SiCSI session和设备信息
iscsiadm -m session -i iscsiadm –m session –R
如果一个Target下新增了一个卷,在服务器上使用iscsiadm –m session –R命令可以刷新当前连接的session以看到新增的卷
4.查看有那些target记录在了数据库中
iscsiadm -m node
5.查看target存储端相关配置信息
iscsiadm -m node -T iqn.2010-11.net.ixdba:sdc -p 192.168.12.246 iscsiadm -m discovery –p 192.168.12.246
centos4.x版本下配置iSCSI Initiator
需要安装的软件包有: sysfsutils-1.2.0-1.i386.rpm iscsi-initiator-utils-4.0.3.0-8.i386.rpm
使用rpm包进行安装: [root@ Initiator iscsi]#rpm –ivh sysfsutils-1.2.0-1.i386.rpm [root@ Initiator iscsi]#rpm –ivh iscsi-initiator-utils-4.0.3.0-8.i386.rpm
安装完成后,在客户端仅仅生成/etc/iscsi.conf主程序配置文件。 修改 DiscoveryAddress=ISCSI_TARGET_HOST_OR_IP OutgoingUserName=ISCSI_USER_NAME OutgoingPassword=ISCSI_PASSWORD LoginTimeout=15
启动Initiator服务,操作如下: [root@ Initiator iscsi]# service iscsi start
管理共享磁盘
分区、格式化共享磁盘
过fdisk命令查看共享过来的磁盘标识,也可以通过dmesg命令查看系统是否认到了共享的iSCSI磁盘。 [root@ Initiator iscsi ]#fdisk -l 当iscsi客户端认到了共享磁盘后,就可以对这个磁盘进行重新分区、格式化、创建文件系统等操作了。
tune2fs修改文件系统的属性,去掉自动检查的属性: [root@data iscsi]# tune2fs -c -1 -i 0 /dev/sdc5 tune2fs 1.39 (29-May-2006) Setting maximal mount count to -1 Setting interval between checks to 0 seconds
Linux上的ext文件系统有一个特性,对某个分区mount、umount很多次后或者隔一个固定的时间后,系统会对该分区进行检测,这就会导致硬盘反映速度很慢,影响业务,本操作的目的就是去掉文件系统自动检查的属性。
设定文件系统的自动挂载
用tune2fs查看文件系统的UUID [root@data iscsi]# tune2fs -l /dev/sdc5 编辑/etc/fstab文件,设置自动挂载: UUID= b5c94f7f-295f-4030-b593-4247ddc7e088 /data ext3 _netdev 0 0 磁盘设备的名称可能会发生变化,从而引起文件系统不能挂载上来或者不能正确挂载,使用UUID的方式进行挂载可以解决这个问题,也可以使用给文件系统设置卷标的方式来解决 _netdev是针对iscsi设备的特殊mount选项,此挂载选项指示将在网络启动后挂载该卷,在关闭网络前卸载该卷。
Initiator主机(windown)
微软对iSCSI Initiator的支持相当完备,读者可以免费从微软网站获得iSCSI Initiator软件。 ISCSI Initiator下载地址: http://www.microsoft.com/WindowsServer2003/technologies/storage/iscsi/default.mspx
iSCSI 在安全方面相关设定