什么是iSCSI
iSCSI(iSCSI = internet Small Computer System Interface )是由IEETF开发的网络存储标准,目的是为了用IP协议将存储设备连接在一起。通过在IP网上传送SCSI命令和数据,ISCSI推动了数据在网际之间的传递,同时也促进了数据的远距离管理。由于其出色的数据传输能力,ISCSI协议被认为是促进存储区域网(SAN)市场快速发展的关键因素之一。因为IP网络的广泛应用, ISCSI能够在LAN、WAN甚至internet上进行数据传送,使得数据的存储不再受地域的现在。
ISCSI技术的核心是在TCP/IP网络上传输SCSI协议,是指用TCP/IP报文、和ISCSI报文封装SCSI报文,使得SCSI命令和数据可以在普通以太网络上进行传输,如下图:
iSCSI 协议定义了在 TCP/IP 网络发送、接收 block(数据块)级的存储数据的规则和方 法。发送端将SCSI命令和数据封装到 TCP/IP 包中再通过网络转发,接收端收到 TCP/IP 包 之后,将其还原为SCSI命令和数据并执行,完成之后将返回的SCSI命令和数据再封装到 TCP/IP 包中再传送回发送端。而整个过程在用户看来,使用远端的存储设备就象访问本地的 SCSI设备一样简单。
早在 2001 年上半年,IBM 就推出了IP Storage 200i,是市场上公认的第一款基于iSCSI 协议的产品,这款产品的出现,对于身处信息爆炸时代却无法承担光纤通道 SAN 环境高成本的中小型用户来说,具有巨大的吸引力;2001年10月,Cisco也推出了SN5420存储路由器,基于IP标准和SAN标准,可以提供与现有LAN、WAN、光纤和SAN设备之间的互操作,率先建立了IP网络与SAN之间的桥梁。现在,有更多的厂商参与到iSCSI产品的开发中,如Intel已经推出了存储网卡 IP Storage iSCSI PRO/1000T,将协议转化也就是封装、还原 TCP/IP 包的步骤转移到网卡上来执行,大大降低了服务器处理器的占用率。同时,还有芯片、板卡制造商加入到iSCSI产品的开发中,如Adaptec、Qlogic 等等。
iSCSI可以实现在IP网络上运行SCSI协议,使其能够在诸如高速千兆以太网上进行路由选择。用户可使用标准的千兆级以太网传输协议,通过Cat5线缆和任意的交换机产品,将服务器与磁盘阵列连接在一起,并且能够提供接近FC SAN的性能。
iSCSI集SCSI、以太网和TCP/IP等技术于一身,支持iSCSI技术的服务器和存储设备能够直接连接到现有的IP交换机和路由器上,具有低廉、开放、大容量、传输速度高、安全等诸多优点,最适合需要在网络上存储和传输大量数据的应用环境,比如广电视频制作和媒资系统,视频监控系统,IPTV系统,数据备份系统,以及许多的对IOPS和带宽性能要求不是还很高的数据库存储系统、大容量文件存储系统。
iSCSI存储系统架构
现在市场有很多不同型号的iSCSI存储设备,设备的型号和参数有很多不同,厂商在做市场宣传时候也经常采用不同的口号或噱头,标榜自己的产品有各种各样不同的功能和优势。
实际上当我们对iSCSI设备的结构进行深入的研究时就会发现iSCSI从架构上可以分为4种类型的架构。
一、控制器架构
iSCSI的核心处理单元采用与FC光纤存储设备相同的结构。即采用专用的数据传输芯片、专用的RAID数据校验芯片、专用的高性能cache缓存和专用的嵌入式系统平台。打开设备机箱时可以看到iSCSI设备内部采用无线缆的背板结构,所有部件与背板之间通过标准或非标准的插槽链接在一起,而不是普通PC中的多种不同型号和规格的线缆链接。
这种类型的iSCSI存储设备核心处理单元采用高性能的硬件处理芯片,每个芯片功能单一,因此处理效率较高。操作系统是嵌入式设计,与其他类型的操作系统相比,嵌入式操作系统具有体积小、高稳定性、强实时性、固化代码以及操作方便简单等特点。因此控制器架构的iSCSI存储设备具有较高的安全性和和稳定性。
控制器架构iSCSI存储内部基于无线缆的背板链接方式,完全消除了链接上的单点故障,因此系统更安全,性能更稳定。一般可用于对性能的稳定性和高可用性具有较高要求的在线存储系统,比如:中小型数据库系统,大型数据的库备份系统,远程容灾系统,网站、电力或非线性编辑制作网等。
控制器架构的iSCSI设备由于核心处理器全部采用硬件,制造成本较高,因此一般销售价格较高。
目前市场还可以见到一种特殊的基于控制器架构的iSCSI存储设备。该类存储设备是在现有FC-SAN存储设备的基础上增加iSCSI协议转换模块,使得FC-SAN存储设备可以同时支持FC数据传输协议和iSCSI传输协议,如EMC 150i/300i/500i,HDS AMS1000/500/200等。
常见控制器架构iSCSI产品:
1、Equlogic PS300E系列
.
2、Infortrend EonStor A16E
3、UIT BS2000e/3000e
区分一个设备是否是控制器架构,可从以下几个方面去考虑:
1、是否双控:除了一些早期型号或低端型号外,高性能的iSCSI存储一般都会采用active-active的双控制器工作方式。控制器为模块化设计,并安装在同一个机箱内,非两个独立机箱的控制器。
2、缓存:有双控制器缓存镜像、缓存断电保护功能。
3、数据校验:采用专用硬件校验和数据传输芯片,非依靠普通CPU的软件校验,或普通RAID卡。
4、内部结构:打开控制器架构的设备,内部全部为无线缆的背板式连接方式,各硬件模块连接在背板的各个插槽上。
二、iSCSI连接桥架构
整个iSCSI存储分为两个部分,一个部分是前端协议转换设备,另一部分是后端存储。结构上类似NAS网关及其后端存储设备。
前端协议转换部分一般为硬件设备,主机接口为千兆以太网接口,磁盘接口一般为SCSI接口或FC接口,可连接SCSI磁盘阵列和FC存储设备。通过千兆以太网主机接口对外提供ISCSI数据传输协议。
后端存储一般采用SCSI磁盘阵列和FC存储设备,将SCSI磁盘阵列和FC存储设备的主机接口直接连接到iSCSI桥的磁盘接口上。
iSCSI连接桥设备本身只有协议转换功能,没有RAID校验和快照、卷复制等功能。创建RAID组、创建LUN等操作必须在存储设备上完成,存储设备有什么功能,整个iSCSI设备就具有什么样的功能。
SANRAD的V-Switch系列,ATTO Technology的iPBridge系列的iSCSI桥接器,提供iSCSI-to-SCSI与iSCSI-to-FC 的桥接,可将直连的磁盘阵列柜(Disk Array,JBOD、DAS)或磁带设备(Autoloader、Tape Library)转变成iSCSI存储设备。
不过随着iSCSI技术的逐渐成熟,连接桥架构的iSCSI设备越来越少,目前的市场上基本已看不到这样的产品了。
三、PC架构
那么何谓PC架构?按字面的意思可以理解为存储设备建立在PC服务器的基础上。即就是选择一个普通的、性能优良的、可支持多块磁盘的PC(一般为PC服务器和工控服务器),选择一款相对成熟稳定的iSCSI target软件,将iSCSI Target软件安装在PC服务器上,使普通的PC服务器转变成一台iSCSI存储设备,并通过PC服务器的以太网卡对外提供iSCSI数据传输协议。
目前常见的iSCSI Target软件多半由商业软件厂商提供,如DataCore Software的SANmelody,FalconStor Software的iSCSI Server for Windows,和String Bean Software的WinTarget等。这软件都只能运行在Windows操作系统平台上。
在PC架构的iSCSI存储设备上,所有的RAID组校验、逻辑卷管理、iSCSI 运算、TCP/IP 运算等都是以纯软件方式实现,因此对PC的CPU和内存的性能要求较高。另外iSCSI存储设备的性能极容易收PC服务器运行状态的影响。
当由于PC架构iSCSI存储设备的研发、生产、安装使用相对简单,硬件和软件成本相对较低,因此市场上常见的基于PC架构的iSCSI设备的价格都比较低,在一些对性能稳定性要求较低的系统中具有较大的价格优势。
常见PC架构iSCSI存储设备:
1、INTEL ×××212CC iSCSI产品图片:
2、H3C EX1000 iSCSI产品图片:
3、HP MSA1510i iSCSI产品图片:
四、PC+NIC架构
PC+iSCSI Target软件方式是一种低价低效比的解决方案,另外还有一种基于PC+NIC的高阶高效性iSCSI 方案。
如果只是将高速Ethernet用于存储网络化过于可惜,因此众多厂商发起了iWARP,不仅可实现存储网络化,也能实现I/O 的网络化。通过RDMA(Remote Direct Memory Access)机制简化网络两端的内存数据交换程序,从而加速数据传输效率。
目前Broadcom提出所谓的C-NIC(Converged NIC)聚合型网卡理念,即是在一颗NetXtreme II 系列的GbE控制芯片内同时具备以太网络、存储网络化、I/O网络化等功效。传统以太网部分具有TOE运算,存储网络化则具备iSCSI运算、I/O网化则具备RDMA运算,大幅卸除CPU的辅助运算,使CPU占用率降至20%以下。
Broadcom 目前的代表性芯片为BCM5706(PCI/PCI-X 接口)与BCM5708S(PCIe 接口),其中BCM5706 为第一代,BCM5708S 为第二代,第二代传输率从1Gbps 提升至2.5Gbps。第三代传输率从2.5Gbps 提升至10Gbps。
iSCSI存储连接方式
我们分析了iSCSI存储的系统结构,下面来看iSCSI是如何与服务器、工作站等主机设备来连接的,也就是我们如何建立一个iSCSI网络存储系统。
iSCSI设备的主机接口一般默认都是IP接口,可以直接与以太网络交换机和iSCSI交换机连接,形成一个存储区域网络。根据主机端HBA卡、网络交换机的不同,iSCSI设备与主机之间有三种连接方式。
第一种:以太网卡+initiator软件方式。
服务器、工作站等主机使用标准的以太网卡,通过以太网线直接与以太网交换机连接,iSCSI存储也通过以太网线连接到以太网交换机上,或直接连接到主机的以太网卡上。在主机上安装Initiator软件。
安装Initiator软件后,Initiator软件可以将以太网卡虚拟为iSCSI卡,接受和发送iSCSI数据报文,从而实现主机和iSCSI设备之间的iSCSI协议和TCP/IP协议传输功能。
这种方式由于采用普通的标准以太网卡和以太网交换机,无需额外配置适配器,因此硬件成本最低。缺点是进行ISCSI包文和TCP/IP包文转换要点主机端的一部分资源。不过在低I/O和低带宽性能要求的应用环境中和完全满足数据访问要求。
目前很多最新版本的常用操作系统都提供免费的Initiator软件,建立一个存储系统除了存储设备本身外,基本上不需要投入更多的资金来,因此在三种系统连接方式中其建设成本是最低的。
第二种:硬件TOE网卡+initiator软件方式。
第一种方式由于采用普通以太网卡和以太网交换机,无需额外配置适配器,或专用的网络设备,因此硬件成本最低。但由于进行ISCSI包文和TCP/IP包文的打包和解包全部需要主机主处理器CPU来进行运算,数据传输率直接受到主机当前运行状态和可用资源的影响和限制,因此一般无法提供高带宽和高IOPS性能。
具有TOE(TCP Offload Engine)功能的智能以太网卡可以将网络数据流量的处理工作全部转到网卡上的集成硬件中进行,把系统主处理器CPU从忙于协议处理的繁重的内核中断服务中解脱出来,主机只承担TCP/IP控制信息的处理任务。
与第一种方式相比,采用TOE卡可以大幅度提高数据的传输速率。TCP/IP协议栈功能由TOE卡完成,而iSCSI层的功能仍旧由主机来完成。
由于TOE卡也采用TCP/IP协议,相当于一块高性能的以太网卡,所以第二种方式也可以看做是第一种连接方式的特殊情况。
第三种:iSCSI HBA卡连接方式。
在主机上安装专业的iSCSI HBA适配卡,从而实现主机与交换机之间、主机与存储之间的高效数据交换。
与前两种方式相比,第三种连接方式中采用了iSCSI HBA卡,因此数据传输性能最好,价格也最高。
后两种方式都需要在主机上安装专门的硬件板卡,由于目前TOE网卡和iSCSI HBA的市场价格都比较贵。如果网络中主机数量比较多,那么网络总资金投入不见得会比FC-SAN存储系统低很多,网络的带宽和性能却相比FC-SAN存储系统差了很多。
有的读者可能会问,为什么这三种方式中都没有采用iSCSI交换机?
实际上,我们能在市场上看到的iSCSI交换机都不是真正意义上交换机,所谓的iSCSI交换机应该称之为iSCSI协议转换器、或者iSCSI桥接器。一部分端口用来连接主机的iSCSI HBA卡,另一部分端口用来连接FC存储或SCSI存储,只能实现存储设备与主机之间的FC-iSCSI(或SCSI-iSCSI)协议连接,不能实现iSCSI-iSCSI协议连接,其工作方式完全不同于以太网交换机或FC交换机那样,实现某一个协议内的互联互通。
因此iSCSI交换机一般都用作iSCSI存储内的控制器,而不是iSCSI存储与主机之间网络连接设备。
iSCSI存储使用模式:
1、DAS使用方式
ISCSI存储设备和SCSI存储和FC存储一样,可以直接通过连接线缆与主机上的HBA连接,作为主机的DAS直接连接存储来使用,如下图:
ISCSI存储设备的卷由服务器或NAS网关来管理和使用,其它的工作站通过服务器和NAS网关来访问iSCSI存储上数据。整个系统安装调试简单方便,服务器和NAS网关很容易实现数据的网络化共享访问。但服务器和NAS网关直接影响整体存储网络系统的性能,低配置的服务器和NAS网关及有可能成为整个系统的性能瓶颈。
2、SAN使用方式
ISCSI和FC存储一样具有良好的网络扩展性,可通过网络交换设备与多台主机连接。通过网络交换设备连接时,iSCSI存储上的LUN对于主机来讲相当于裸设备,因而需要注意文件系统的管理问题。
A、存储设备层共享
ISCSI设备上创建多个LUN,不同的LUN制定给不同的主机。各主机分别管理和访问自己的LUN。相当于将多个主机的本地磁盘集中放置在一个网络化的设备中,各主机之间仅实现硬件设备层的共享。如下图:
B、集群共享
系统中有多个数据库系统和WEB集群系统,每两台服务器之间需要管理和使用相同的LUN,主机之间通过MSCS或RAC等软件实现集群共享功能。如下图:
每一个卷仅在两台主机之间共享,两台主机通过集群软件共同对同一个文件系统进行管理。
C、网络存储共享
在许多大型的高性能计算系统、广电非线性编辑制作系统、IPTV发布系统中,应用需要多台主机能同时访问同一个文件系统(同一个卷)中的数据,可能会是同一个数据。如下图:
为了保证同一个文件系统可以同时被多台主机访问,且不会因为并发访问而引起文件系统管理冲突,常规的做法是在所有需要文件系统共享的主机上安装SAN网络存储共享管理软件,并设置一台或多台主机为管理软件的服务器端。该服务器负责管理主机之间的元数据交换,因此被成为MDC,即Metadata Controller。
关于SAN网络存储共享管理软件的功能介绍请参看SAN网络存储共享管理软件全攻略。
iSCSI存储常见技术参数:
目前市场的iSCSI产品数量繁多,用户在选择iSCSI产品的时候往往被各种各样的参数和指标搞得云头转向,不知如何正确去选择自己希望的产品。下面,我以市场常见几款产品的技术参数为例,给大家介绍如何通过厂商的技术参数来正确分析和认识iSCSI产品。
常见iSCSI存储技术参数表:
序号 |
技术参数 |
规格 |
备注 |
系统性能 | |||
1 |
每秒最大I/O | 100,000 IOPS | |
2 |
每秒最大传输带宽 | 410MB/S | |
控制器 | |||
3 |
控制器 | 双Active-Active SAS/SATA控制器 | |
4 |
控制器CPU | 933MHz PowerPC 750GL | |
5 |
控制器缓存 | 2GB ECC 缓存, 带72小时电池备份 | |
6 |
缓存模式 | Write-through, write-back, adaptive write | |
7 |
RAID校验 | 采用ASIC硬件校验 | |
接口 | |||
8 |
主机接口数量 | 4个千兆以太网铜缆接口,两个SAS接口,4个FC接口, | |
9 |
磁盘扩展柜接口 | SAS扩展;FC扩展 | |
RAID及磁盘 | |||
10 |
支持硬盘类型 | SATA1/2:400GB,500GB,750GB硬盘SAS: 73GB, 146GB, 300GB硬盘FC: 146GB, 300GB硬盘SCSI: 73GB, 146GB硬盘 | |
11 |
最大硬盘数量 | 16SATA或者SAS硬盘最大72个SATA或者SAS硬盘 | |
12 |
RAID技术 | RAID0,1 (0+1),3,5,6,10,30,50,60,NRAID and JBOD | |
13 |
最大容量 | 16*750GB=12TB72*750GB=54TB | |
14 |
最大LUN数量 | 1024 | |
15 |
RAID功能 | 支持虚拟RAID技术,支持磁盘漫游 | |
软件功能 | |||
16 |
快照 | 256个 | |
17 |
数据镜像 | 支持 | |
18 |
数据复制 | 卷复/Snapshot Copy | |
19 |
多链路冗余 | 支持 | |
20 |
负载均衡 | 支持 | |
其它 | |||
21 |
冗余、热插拔模块 | 控制器,电源,风扇,热备盘 | |
22 |
管理界面 | COM1,COM2,GUI,WEB,LCD,TELNET,SSH | |
23 |
集中管理 | 支持 |
实际上任何一个主流iSCSI存储设备都不可能同时具有上表中的所有的参数或功能。
1、系统性能:
各厂商的技术参数表中最不可靠的就是性能指标了。IOPS一般都会在30000-100000之间变动,iSCSI存储对外提供几个IP接口,一般都会说有几百兆端口。
实际上iSCSI设备的IOPS性能都不高,一般在5000-20000之间,加入你的业务系统对IOPS很关注,建议选择FC-SAN存储,如果业务系统对IOPS有一点关注,建议提前做模拟测试,且选择控制器架构的设备,如果业务系统对IOPS没有要求,那么IOPS指标这一项可以不看。
假如技术指标中说有4个IP接口所以就有400MB/S的带宽性能,那你可以明确一点的就是厂商在骗你。我们知道存储设备的性能取决于其内部的控制器,而不是主机接口的数量。不提升控制器的处理器速度、不优化其数据传输效率,不增加缓存容量,简单地增加IP主机接口的数量不可能提高存储设备性能的。
关于性能指标,建议控制器架构的取其三分之二,PC架构取其一半。没有任何依据,仅仅是我的经验,也仅供大家参考。
2、控制器:
ISCSI存储的核心就是控制器了。
一般的iSCSI存储为单控制器,中高端设备为active-active(双活)或active-standby(主备)模式的双控制器。可能个别厂商会用”单/双存储处理器”来冒充单/双控制器,所谓的”单/双存储处理器”仅仅是PC架构中的两个Intel或AMD的CPU,甚至只是一个双核的CPU,和双控制器完全是两个概念。
ISCSI的双活控制器一般是指可以安装在同一个无源背板上,两者之间可通过缓存镜像实现数据同步,两者可同时管理相同的后端存储。两个控制器同时工作,任何一个控制器发生故障时,另一个控制器可以即时接管理它的任务。备用控制器一般都是一块无源的模块化电路板,可快速热插拔更换。PC架构的iSCSI存储一般无法实现上述功能,只能通过集群功能(如Windows MSCS)来实现多台iSCSI存储之间的主备故障切换。
控制器架构的iSCSI存储的核心处理芯片多为PowerPC,部分采用Intel或AMD服务器CPU,个别由FC存储改造的iSCSI存储会采用专用的CPU。中高端iSCSI存储可能会采用双处理器,一个处理器负责系统管理和数据传输,另一个处理器ASIC芯片专门用作RAID校验和数据读写校验。
缓存一般为2-4GB,建议小文件、对IOPS有一定要求的应用类系统尽量采用大容量缓存。缓存可根据应用系统的需求设置成Write-through,write-back等多种工作模式。缓存掉电保护可通过纽扣电池来实现。
PC架构的iSCSI存储的核心处理芯片多为Intel或AMD服务器CPU,CPU不仅要负责系统管理和数据传输,还要负责RAID校验和数据读写校验,中高端PC架构iSCSI存储内容一般为双CPU。
缓存一般为2-4GB,但缓存大小对性能的影响没有控制器架构的明显。一般无缓存掉电保护功能,只能通过存储设备后端或机房中的UPS电源来提供突然的断电保护。
3、接口:
常见iSCSI多位2-6个IP接口,个别设备可能会提供8个、更多个接口。部分iSCSI存储提高SAS接口和FC接口。IP接口有以太网接口模块型(控制器架构、iSCSI桥接器架构和FC-SAN改造存储)和网卡型(PC架构和PC+NIC架构)
越来越多的iSCSI存储支持大容量,控制器和磁盘扩展柜之间通过SAS接口连接,FC-SAN改造型多沿用原来的光纤通道协议接口来扩展容量。
4、RAID及磁盘
近两年的iSCSI存储设备基本都能同时支持SATA和SAS硬盘,FC-SAN改造型还用支持FC磁盘,不过相信大家都不会用到。iSCSI桥接器架构的还支持SCSI磁盘。
各厂家的RAID组级别支持一般差别比较大,但RAID0,RAID1,RAID3和RAID5都是最基本的,只要列表中有自己需要的就行。
虚拟RAID技术,也可能被成为存储虚拟化(内部的)一般是指可以将多个RAID设置在一个RAID POOL中,相当于将多个RAID合并,然后在其上创建多个LUN。这样对任何一个LUN进行读写访问是,多个RAID中的磁盘同时工作,有利于提高单卷的访问性能。其功能与RAID30或50相似或相同。
凡是RAID配置信息保存在本RAID组所有磁盘中的存储都支持磁盘漂移功能,但是需要所谓3块或5块系统盘的不支持,这一点与FC存储完全相同。
LUN数量一般为512和1024,除了大型的视频监控系统存储之外,其它的业务系统无需过于关注这一项。
5、软件功能
在软件功能方面,各厂家千变万化。低端控制器架构的iSCSI存储基本上没有快照、卷复制或卷镜像等软件功能,但高端设备的功能一般比较强大,可用性较高。PC架构的iSCSI存储由于安装软件方便,因而软件功能一般较多,各种功能实现起来也比较容易。
6、其它
控制器架构的iSCSI存储可实现控制器,电源,风扇,热备盘等的冗余和热插拔,PC架构的iSCSI存储仅能实现电源,风扇,热备盘,缺少了最核心的控制器。
集中管理是指当一个系统有多台存储设备时,能否通过一台存储设备的管理窗口同时监控和管理多台设备。