条条道路通向SANiSCSI SAN完全解读

  什么原因使得iSCSI获得如此快速的增长?市场中的iSCSI产品主要有哪些流派?本文将与读者一起深入探讨。

  数据库、ERP等系统的应用使数据量呈几何级数增长,面对这种情况,用户需要构建SAN(存储区域网)来实现网络化的统一数据管理。SAN是一种处理块级数据的存储设备,主要为服务器提供服务,按照承载SCSI的方式不同,SAN主要分为FC SAN和iSCSI SAN两种。

  根据IDC近期公布的存储市场统计报告,2005年iSCSI SAN比2004年增长了130%。什么原因使得iSCSI获得如此快速的增长?市场中的iSCSI产品主要有哪些流派?本期技术特写将与读者一起深入探讨。

【基础篇】

  随着光纤通道技术的发展,产生了FCP(Fibre Channel Protocol,光纤通道协议),简单地讲,FCP就是采用光纤通道对SCSI数据包进行封装的一种协议。

  从这种方式中得到启发,许多人产生了这样的想法:能不能使用IP技术代替FC对SCSI进行封装呢?由于IP技术在过去二十年中获得了长足的进步,因此,实现这样的想法对于IP领域来说是“小菜一碟”。于是我们看到, IETF在2003年2月宣布正式通过了iSCSI标准。

  iSCSI协议整合了存储和IP网络,使得通过IP网络完成存储数据块的传输成为现实。它建立在两个已被广泛应用的技术之上——为存储而建立的SCSI命令和为网络化而建立的IP协议。iSCSI是一种端到端的协议,用于在IP网络中传输存储I/O数据块。该协议被使用于服务器发起端(Initiator)、存储设备(Target)和协议传输网关设备。iSCSI使用标准的以太网交换机和路由器,将数据从服务器转移到存储设备。它还使得IP和以太网基础设施可以被用于对SAN存储系统的扩展访问,跨过任意距离完成对SAN的扩展接入。

  而采用以太网这种方式的优势是不言而喻的,像技术成熟、人员熟悉度高、价格较低、众多厂商的广泛关注等等。

  2003年5月,也就是iSCSI标准刚通过两个月,微软就在其上市才1个月的Windows Server 2003 中开始支持iSCSI,并提供iSCSI Initiator驱动程序的下载,极大地促进了iSCSI市场的发展。

  又过了三个月,市场上就出现了Intel PRO/1000 T IP存储适配器、Adaptec 7211C和7211F HBA(主机主线适配器)、基于Intel平台的Windows、NetWare和Linux本机iSCSI initiator。

  目前市场中的iSCSI Initiator可分为三种,即软件Initiator驱动程序、硬件的TOE(TCP Offload Engine,TCP卸载引擎) HBA卡及iSCSI HBA卡。就性能而言,软件Initiator驱动程序最差、TOE HBA卡居中、iSCSI HBA卡最佳。但是iSCSI HBA只能运行iSCSI协议,无法运行NFS(Network File System,SUN制定)或CIFS(Common Internet File System,微软制定)等档案系统协议与应用服务器沟通。但Initiator驱动程序及TOE HBA卡则同时支持iSCSI、NFS及CIFS三种协议。

  iSCSI获得巨大发展的一个推动因素在于,它与另一种网络存储架构NAS紧密结合在一起。几乎所有的NAS设备都提供了对iSCSI的支持。

  那么,iSCSI SAN与FC SAN到底有什么不同呢?NetApp中国区技术总监岑广海这样描述iSCSI和FC SAN的关系:“比如我们要从北京去天津,可以选择的路径很多,飞机、火车、汽车,甚至是自行车。因此,无论是通过FCP还是iSCSI构建的SAN,在逻辑上都是一样的,只是SCSI数据包在传输过程中承载的技术——即通向SAN的道路稍有区别。”

【架构篇】

  许多用户对iSCSI都十分熟悉,他们以为在IP网络上简单进行SCSI封装就完成了iSCSI的构建,然而,当我们仔细研究市场中的iSCSI方案后发现,它们的产品架构其实存在着巨大的差别。

软件Target+NAS

  一台工业标准服务器在安装了微软的Windows Storage Server后就成了一台NAS设备,在这种平台上再安装一个iSCSI Target(目标)软件就成了一台目标设备,由于HP在NAS设备的出货量第一,因此,这种类型的iSCSI目标设备我们就以HP ProLiant Storage Server为例。

  FalconStor(飞康)iSCSI Server for Windows是一个iSCSI Target软件,能够将ProLiant DL380 G4 Storage Server这样的NAS设备变成一个iSCSI Target Portal(门户),供安装了iSCSI Initiator的服务器访问。

  不同于iSCSI Initiator软件全部免费的做法,iSCSI Target软件基本都是要收费的。

  由于这种产品的封包、解包工作都由操作系统软件完成,因此会占有大量系统资源,与专有的存储设备相比,这样的全软件方案表现出一定的差距,为此,微软近期收购了String Bean软件公司的WinTarget技术,以加强在目标端的实力。

  这种产品的实现方式很简单,即所有工作都由服务器承担,优势是构建十分简便,用户自己可以购买工业标准服务器,安装微软的iSCSI Target软件后就可以轻松部署一套IP SAN,而且这种方式的价格比较便宜,劣势是iSCSI封包工作都由软件完成,对系统资源占用较多,因此性能方面表现一般。

全IP交换架构

  在IP SAN领域,有一个厂商的设备被大家公认为是比较特殊的一类,这个厂商就是华为3Com。华为3Com IX5000是一种特殊的IP SAN设备,它从结构上基于华为3Com的IRF专利技术,在IP交换平台上,根据存储产品的海量数据存取、高性能低延迟、数据管理、设备管理等特点,构建了Neocean存储交换平台。

  IX5000的智能网络磁盘柜,改变了传统磁盘柜SCSI/FC环路JBOD的结构。每个磁盘柜分为四个磁盘控制组,每组的核心为一个具有四块负载均衡微处理芯片的控制模块。由于得到高性能存储交换平台的支撑,使得每个磁盘组(四块磁盘)以星型方式通过双GE接口连接到交换平台,最大限度地发挥出高性能磁盘的读写能力。同时磁盘柜为每块硬盘分配了专用的处理器和IP/MAC地址,这使得系统对于磁盘的管理和数据控制更为灵活,磁盘也可以在整个系统中自由“漫游”,甚至随意更换位置。基于标准化IP的存储交换平台使得各种数据管理功能能够像电器插入电源插座一样,IP技术中的端口镜像、组播、路由、VLAN、IPSec等也应用于存储数据管理。

  华为3Com IX5000产品最大的特点就是全程的IP技术,从网络到控制器,再到磁盘。劣势是与同等定位的其他iSCSI专有设备相比,华为3Com在高级存储应用功能方面(比如快照、复制等)还存在一定差距。

专有设备+iSCSI支持

  这类设备与第一种方式在本质上没有太多区别,只是将iSCSI Target软件功能固化在存储设备中,而且具有厂商专有特性。比较有代表性的产品为NetApp所有产品类型。NetApp IP SAN 解决方案由NetApp 存储系统和iSCSI 协议(还支持NFS、CIFS、FC和HTTP 协议)、软件、服务以及支持等组成。

  数据处理流程是,承载SCSI的IP包进入存储设备后,由控制器进行解包及封装工作,然后进行与磁盘的通信。在硬件架构上,控制器与磁盘系统之间采用FC环路结构。

  由于这类产品本来是专有的存储设备,硬件架构为数据存取工作做了许多优化,处理iSCSI封包工作十分轻松,不会形成性能瓶颈。因此,这类iSCSI设备可以担当高性能的应用,在某些情况下,它的性能表现甚至不比同等级别的FC SAN设备逊色。此外,这样的设备一般是中高端存储设备的一个功能选项,比如NetApp的iSCSI设备都提供了FC SAN功能和NAS功能,能够在同一平台实现多平台的统一存储,在其他存储应用功能方面也表现突出,比如快照、复制和存储管理。

  既然提供了上佳的性能和丰富的功能,这样的iSCSI设备价格自然要相对较高一些。

硬件协议转换设备

  SANRAD公司的V-Switch是各类存储设备经IP网络互联的、符合iSCSI标准的存储交换与管理核心。在标准以太网环境下,通过基于网络层面对存储设备的全面管理,整合带FC、SCSI和iSCSI接口的存储资源,使之具备高可用性能。近日博科推出的iSCSI网关就是与SANRAD的OEM交易的一部分,SANRAD称之为SANRAD V-Switch 2000,是其协议转换器中最小的产品。

  这种类型的iSCSI SAN特点明显,它对于服务器端是一个透明的iSCSI设备,所有协议转换器与服务器端的通信都是采用iSCSI语言,而在它与后端的存储设备之间则又完全转化成为光纤通道。iSCSI到SCSI或FC的连接设备提供了新老技术的互通。一个已经购买了SCSI或FC存储设备的用户,如果希望能够搭建基于iSCSI的IP SAN,而又不浪费现有设备,那么iSCSI到SCSI或FC的连接设备就是其最好的选择。

  该类方案的优势是,可以将数量众多的iSCSI服务器整合在一起,同时充分利用较为高端的光纤通道存储设备。劣势是这种方式并没有获得业界的普遍认可,有些存储管理员甚至说它有些另类,并不能充分发挥IP技术的优势,而且联入FC SAN后还会破坏了后者的纯洁性。

【应用篇】

  在服务器数量较多、对性能要求不十分苛刻的情况下,可以考虑采用iSCSI。

  既然SAN是主要为服务器服务的,那么我们就应该首先分析一下服务器的类型。对于服务器的类型来说,主要有四种:数据库服务器、文件服务器、Web服务器和E-mail服务器。而从数据类型上来分,则分为数据库、文件和E-mail。

  如果是文件类型,那么最合适的存储类型就是NAS。而对于大多数数据库和E-mail类型,iSCSI都可以胜任。

  而按照“道路理论”,在构建一个SAN时究竟是采用FC架构还是iSCSI架构,在原理上应该没有任何区别。就像我们现在使用服务器一样,用户在使用时不会特别关心磁盘的类型,

  举一个典型的例子,某用户的需求为4台Windows服务器、一台IBM AIX服务器,之前采用的都是直连存储的形式,随着业务的发展需要将这些服务器中的数据集中起来同样管理。为此,用户希望购买一台1TB的存储设备,用来存放需要集中的数据。

  如果按照传统的方式构建一套FC SAN,那么该用户需要购买5个FC HBA卡、一台FC交换机和一套1TB FC存储设备,虽然FC设备的价格已经下降许多,但是仍然需要12万~15万元人民币;而如果采用iSCSI的方式,则仅需要购买一台千兆以太网交换机和一台iSCSI存储设备,那么5万~6万元人民币就能够实现(详见下图)。

  有一个用户总结说,他们之所以采用iSCSI,主要原因是服务器运行的数据库对性能要求并不太高,而且大多数情况下只有一两台服务器同时访问存储设备。iSCSI为用户节约了不少投资。例如,该用户的服务器数量并不大,如果服务器很多,达到上百台,那么iSCSI SAN的价格优势会更加明显,同等规模,FC SAN的价格将会非常昂贵。从这个例子我们也可以看出iSCSI SAN的价格优势是通过整体成本体现出来的,笔者询问了戴尔1TB存储设备价格,AX100i(iSCSI)的价格约5万元人民币,AX100的价格约6万元人民币,而FC SAN需要整体配备光纤通道设备,价格就令整体提高许多。

【比较篇】

  对于各类产品来说,实际的性能测试都特别有说服力。从笔者测试的经验来看,现在还不存在哪种方案在各个方面都超越其他竞争性方案。用户需要结合自己的实际情况进行选择。

  笔者曾做过一些产品比较测试工作,认为经过实际测试过的结果特别有说服力。下面列举两个涉及iSCSI产品的比较测试报告,相信对读者有一定的启发作用。

  我们首先看一下笔者去年12月做过的一次存储服务器公开比较测试,当时我们对iSCSI做了详细的测试。

  下面对一些结果进行了分析,值得用户在构建iSCSI SAN时考虑。

  对于iSCSI的性能,人们最关心的是实际带宽(MBps)和服务器CPU的占用率(%),因此顺序读写性能是我们重点考察的指标。

  1.对于给定的服务器和iSCSI Initiator组合,服务器(主机)CPU占用率与带宽成正比。有这样一种说法,即卸载1Gbps的iSCSI流量,大约相当于1GHz CPU的处理能力(显然与具体的CPU有关)。

  2.就Windows iSCSI Initiator而言,2.0版的性能通常略好于1.06版,而被测设备在读取4MB和10MB的数据块时,领先幅度较为明显(超过20%)。因此,无论从性能、功能还是易用性方面考虑,2.0版都是首选。

  3.iSCSI HBA在实际带宽的表现上与iSCSI软件Initiator相比不一定有明显优势,具体到Adaptec 7211C来说,也就是和ProLiant DL380 G4 Storage Server配合的时候,在数据块尺寸大于128KB之后能占一定的上风。iSCSI HBA的主要贡献在于降低服务器的CPU占用率,譬如使用Adaptec 7211C时的CPU占用率就是使用Windows iSCSI Initiator时的十分之一以下。

  4.ProLiant DL380 G4 Storage Server测试得到的实际带宽接近100MB/s,与1Gb iSCSI的理论值相去不远,不过,在实际应用中,性能肯定会打折扣,特别是当网络流量和iSCSI流量并存的时候。

  总的来说,现在的主流服务器能够承受iSCSI软件Initiator带来的额外负担,iSCSI的主要瓶颈还是在网络上。或许在10Gb iSCSI的环境中,iSCSI HBA会有较大的用武之地。

  另外,Veritest网站对主流存储系统做过细致的测试工作,测试报告对相同环境下FAS3020配置为iSCSI和CX500(配置为FC)进行了性能比较(http://www.veritest.com/clients/reports/netapp/2005_NetApp_Competitive_Analysis.pdf)。其中有一项测试结果对iSCSI特别有意义,在进行同样的在线事务处理数据库操作时,FAS3020的iSCSI性能比CX500的FC性能还高3.8倍,相比较,FAS3020的FC性能为iSCSI性能的1.4倍。我们跟戴尔工程师沟通时,他们也声称AX100(FC)的性能要比同等配置的AX100i(iSCSI)性能高50%。

编看编想 iSCSI稳健前行

  iSCSI的发展速度已经很快,10GE对iSCSI的促进作用将会更大。在去年10月举行的存储网络世界大会上,iSCSI厂商就向我们展示了10G以太网IP SAN的技术可行性。

  10GE最大的好处是:相比目前的1G以太网,它允许连接到控制器上的服务器数量是现在的10倍,当然10GE iSCSI肯定也会带来一些额外费用。由于光纤通道正在从2G向4G过渡,iSCSI用户也希望不额外支付费用来获得额外带宽。

  线缆价格过高是阻碍10G IP SAN进一步发展的另一个因素。现在市场上唯一比较便宜的是铜缆,这与InfiniBand使用的线缆是一样的,但是铜缆的传输距离太短,不到100米。预计要到2006年中才能克服铜缆传输距离受限的缺陷。

  10G的芯片已经比较成熟,芯片制造商Chelsio和Neterion在他们的10Gbps芯片方面已经拥有众多的合作伙伴,据悉,NetApp在10G iSCSI解决方案中会提供芯片供用户选择。

  除了技术方面,多厂商的支持使得iSCSI如虎添翼。EMC在iSCSI上的表现就十分积极,由于CLARiiON CX300/500/700中没有必需的以太网支持,EMC专门推出了仅支持iSCSI的CLARiiON CX300i和500i。HP的解决之道是通过一个类似iSCSI网关设备的HP StorageWorks EVA iSCSI连接选件,使EVA能同时支持FC和iSCSI。而HDS让AMS系列在2006年初支持iSCSI的计划还没有实现。在这方面,以NAS起家的NetApp显然得天独厚,其FAS3000从一开始就统一整合了FC、iSCSI和NAS,iSCSI SAN市场排名第一(2005年26.2%)自然有它的道理。

  相比较而言,目前只有IBM对iSCSI态度一般,但是我们也可以理解,一方面,其之前的NAS与iSCSI业务发展情况都不甚理想,另一方面,它与NetApp签定的合作协议可以将NAS与iSCSI方面的事情统统交给NetApp。

时间: 2007-09-17

McAfee 1920错误 启动失败的解决办法

服务器时间不正确导致mcafee启动服务出现错误1920 昨天帮一朋友配置服务器,安装mcafee杀毒软件到最后一步时却提示1920错误,这是使用mcafee以来第一次遇到这种错误,在网上搜索解决方案,似乎无效,意外的发现服务器时间不正确,正确的日期为2007年,而服务器上的日期为2000年,因为使用mcafee8.5i 首次安装的病毒库日期是2006-11,所以启动服务时才会提示错误1920,更改成正确的时间,然后再重新安装一次MCAFEE,就正常启动了 我不知道网上那么多人遇到这种错误是什么

如何用C#验证IP是否为局域网地址

前一阵子有[广州.NET群]的客户问起这个问题,说他们需要验证客户输入的网站是否为局域网.其实局域网的IP并没有确定的定义,只要是局域网中,即可设置为任何一个IP. 但确实存在一个内网保留地址的定义,它会确保公网IPv4的地址不会分配在"内网保留地址"中,该地址定义如下: 10.0.0.0/8,即10.0.0.0-10.255.255.255; 172.16.0.0/12,即172.16.0.0-172.31.255.255; 192.168.0.0/16,即192.168.0.0-1

详细解读分布式锁原理及三种实现方式

目前几乎很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题.分布式的CAP理论告诉我们"任何一个分布式系统都无法同时满足一致性(Consistency).可用性(Availability)和分区容错性(Partition tolerance),最多只能同时满足两项."所以,很多系统在设计之初就要对这三者做出取舍.在互联网领域的绝大多数的场景中,都需要牺牲强一致性来换取系统的高可用性,系统往往只需要保证"最终一致性",只要这个最终

[转]prototype 源码解读 超强推荐第1/3页

复制代码 代码如下: Prototype is a JavaScript framework that aims to ease development of dynamic web applications. Featuring a unique, easy-to-use toolkit for class-driven development and the nicest Ajax library around, Prototype is quickly becoming the codeb

详细解读Jquery各Ajax函数($.get(),$.post(),$.ajax(),$.getJSON())

一,$.get(url,[data],[callback]) 说明:url为请求地址,data为请求数据的列表,callback为请求成功后的回调函数,该函数接受两个参数,第一个为服务器返回的数据,第二个参数为服务器的状态,是可选参数. 而其中,服务器返回数据的格式其实是字符串形势,并不是我们想要的json数据格式,在此引用只是为了对比说明 $.get("data.php",$("#firstName.val()"),function(data){$("#

JavaScript中闭包之浅析解读(必看篇)

JavaScript中的闭包真心是一个老生常谈的问题了,最近面试也是一直问到,我自己的表述能力又不能完全支撑起来,真是抓狂.在回来的路上,我突然想到了一个很简单的事情,其实我们在做项目时候,其实就经常用到闭包的,可是面试问的时候,回答又往往是我们经常搜到的答案,唉 不管是应付面试 还是真的想学点东西 ,我也用自己的理解跟大家分享一下,书面化就避免不了了的. 1.闭包是什么? 红宝书中曰:"是指有权访问另外一个函数作用域中的变量的函数." 简单的说,JavaScript允许使用内部函数-

Java源码解析Integer方法解读

toUnsignedString方法解读 看到Integer中有这样的一个方法把int转为Unsigned类型的字符串,但是有几个点不是很清楚,经过查询资料弄懂了,解读如下: /** * Convert the integer to an unsigned number. */ private static String toUnsignedString(int i, int shift) { char[] buf = new char[32]; int charPos = 32; int ra

详细解读Hibernate的缓存机制

一.why(为什么要用Hibernate缓存?) Hibernate是一个持久层框架,经常访问物理数据库. 为了降低应用程序对物理数据源访问的频次,从而提高应用程序的运行性能. 缓存内的数据是对物理数据源中的数据的复制,应用程序在运行时从缓存读写数据,在特定的时刻或事件会同步缓存和物理数据源的数据. 二.what(Hibernate缓存原理是怎样的?)Hibernate缓存包括两大类:Hibernate一级缓存和Hibernate二级缓存. 1.Hibernate一级缓存又称为"Session的

解读JavaScript中 For, While与递归的用法

for循环: 复制代码 代码如下: for(i=start; i<end; i++) { } while循环: (注意, 若条件一直为真, 则会进入死循环, 浏览器就hang掉) 复制代码 代码如下: while (condition) {     //do something;     //change condition;} 递归: 使用for循环做substring 复制代码 代码如下: function substring(all, start, end) {    for(i=star