高可用之2——存储b-阿里云开发者社区

开发者社区> 云计算> 正文
登录阅读全文

高可用之2——存储b

简介:  CPU、缓存和存储性能 很多用户在进行产品对比和设备选型的时候,经常以CPU和缓存的大小、主机端口的数量来判断存储设备性能的好坏。许多用户片面地会认为CPU快、缓存大、接口数量多的设备性能要好。

 CPU、缓存和存储性能

很多用户在进行产品对比和设备选型的时候,经常以CPU和缓存的大小、主机端口的数量来判断存储设备性能的好坏。许多用户片面地会认为CPU快、缓存大、接口数量多的设备性能要好。因此在设备选型、编写招标技术要求时也经常以CPU和缓存的大小、主机端口数量来作为是否采用的重要甚至惟一标准。

存储的性能好坏不是简单地对比CPU和缓存大小的就可以区别好坏,如果你认为可以,那么你还没有真正了解存储,对存储还只是一知半解。

中高端的FC(fibre channel:光纤通道)存储和iSCSI(internet samal computer system interface : 小型计算机系统接口)存储都是基于控制器架构的,存储性能的好坏关键在于控制内部的结构设计,设计先进的控制器可能处理效率非常高,因而并不一定要求很高速的CPU,也不需要很大的缓存。设计不好的存储即使采用了很好的CPU、很大的缓存,其性能也不见得就好。如在XX行业的网络中,为了获得700MB~800MB的大带宽,有的存储设备只需要2GB~4GB的缓存,而有的存储即使采用32GB的超大缓存,其带宽性能仍然很低。另外,增加缓存是否能提升性能还要看存储应用业务环境的好坏。在数据库、小文件应用环境中增大缓存会大幅度提高写带宽,当然前提是后端磁盘性能会达到极限。但对于大文件读取的应用环境,增加缓存所带来的性能提升幅度并不大。

NAS存储设备和一些中低端的iSCSI都是基于PC架构,其核心部分就是一台PC服务器,它的性能会因CPU和内存变化而发生变化,但变化也有一定的范围。这类存储性能一般取决于自身操作系统设计、文件系统中数据管理和数据检索等方面的设计,而不是CPU和缓存。先进高效的文件系统可使存储产品对外提供非常高的性能。NETAPP的高端NAS之所以性能好,就是因为它内部有一个非常高效的文件系统,而不是因为CPU好和缓存大。

另外,对于存储设备来讲,主机接口的数量很多时候只能表示存储设备区有一定的扩展能力,即可以直连更多的主机和交换机,而不能表示性能更高。存储产品的性能是由控制器决定的,但主机端口增加到一定数量,足以完全输出存储设备的最大性能时,增加再多的主机端口也不会增加性能。因此不能片面地相信主机端口越多性能就越高的说法。

希望用户在选择存储设备时,能够合理和正确地对待CPU、缓存和接口等技术参数,并根据自己系统的应用类型和带宽、IOPS等指标,合理地选择存储设备。同时拿到一定产品的说明书或产品的宣传彩页,千万别完全迷信上面所写的技术参数,更别相信8个4GB的FC就能提供3200GB带宽,8个以太网接口就能提供800MB带宽。

 网络存储技术分类

网络存储技术是基于数据存储的一种通用网络术语。网络存储结构大致分为3种:直连式存储(DAS:Direct Attached Storage)网络存储设备(NAS:Network Attached Storage)存储网络(SAN:Storage Area Network)。

直连式存储(DAS):一种直接与主机系统相连接的存储设备,如作为服务器的计算机内部硬件驱动。到目前为止,DAS仍是计算机系统中最常用的数据存储方法。

网络存储设备(NAS):一种采用直接与网络介质相连的特殊设备实现数据存储的机制。由于这些设备都分配有IP地址,所以客户机通过充当数据网关的服务器可以对其进行存取访问,甚至在某些情况下,不需要任何中间介质,客户机也可以直接访问这些设备。

存储网络(SAN):存储设备相互联接且与一台服务器或一个服务器群相连的网络。其中的服务器用作SAN的接入点。在有些配置中,SAN也与网相连。SAN中将特殊交换机当作连接设备。它们看起来很像常规的以太网交换机,是SAN中的连通点。SAN使得在各自网络上实现相互通信成为可能,同时带来了很多有利条件。

网络存储通信中使用到的相关技术和协议包括SCSI、RAID、iSCSI以及光纤信道。一直以来SCSI支持高速、可靠的数据存储。RAID(独立磁盘冗余阵列)指的是一组标准,提供改进的性能和/或磁盘容错能力。光纤信道是一种提供存储设备相互联接的技术,支持高速通信(将来可以达到10Gbps)。与传统存储技术,如SCSI相比,光纤信道也支持较远距离的设备相互联接。iSCSI技术支持通过IP网络实现存储设备间双向的数据传输,其实质是使       SCSI连接中的数据连续化。通过iSCSI,网络存储器可以应用于包含IP的任何位置,而作为Internet的主要元素,IP几乎无所不在。

各种存储结构的示意图如图3-6所示。

 
图3-6  各种存储架构示意图

 SAN存储相关基础知识(1)

1.关于HBA

HBA的全称为Host Bus Adapter,即主机总线适配器。

(1)总线适配器是什么呢?

首先要了解一下主机的结构,一台计算机内部多由两条总线串在起来(当然实际情况会有不同,这里只讨论常见的、简单的情况),一条总线叫系统总线,一条叫I/O总线。系统总线上接了CPU、memory、cache等,I/O总线上接的就是外围设备,如今最常见的就是PCI总线。这两条总线之间用桥接的芯片或者说电路连接起来。就好比一个城市里,有两条主干道,一条属于行政区,一条属于商业区,中间有个环岛,将两条主干道连接到了一起,系统总线就好比行政区里的主干道,而I/O总线就好比商业区的主干道。系统总线和I/O总线的带宽的单位都是以GB来记,但行政区的主干道和商业区的主干道相比,前者肯定更"核心"、更宽、更顺畅,设计的要求也高。在向公仆部门要求服务的时候,是要有一些接口的部门和程序的,而桥接芯片的作用就是连接和协调两条总线的工作。

虽然I/O总线的速度和系统总线的带宽相比要低很多,但是也是以GB来计量的,而外围设备的速度,往往只有几百MB,甚至几十KB而已,怎么协调工作呢?好比卖煎饼果子摊子不能直接戳到城市主干道上,怎么办?好办,在主干道边上开个2000平米的小吃城,把摊子都收进去好了。那么主机总线适配器的作用也就是如此,就是要把外设组织起来,连接到I/O总线上去。HBA就是指Host和I/O BUS直接的一个适配器,也好比一个水管工常说的"双通"。

(2)常见的HBA有哪些呢?

比如显卡、网卡、SCSI卡、1394卡等。这里主要介绍FC HBA和ATA&IDE。通常说的Emulex的LP9002、Qlogic的QLA2340都是FC HBA卡,就是将Fibre Channel的设备和I/O总线连接起来的适配器。ATA也是一种适配器技术,PC主板上的ATA接口,就是一个磁盘适配器的对外接口,要强调的就是,ATA说的是适配器技术,IDE说的是存储外设技术,比如可以说IDE硬盘、IDE光驱,说ATA接口,但是说IDE接口、ATA硬盘就不是那么合适了,虽然很多情况下,大家都习惯把它们混在一起。

描述HBA的时候,有以下几个主要的规范。

HBA和IOBUS怎么连。人们经常说的PCI接口卡,就是指这个HBA卡是要插在PCI BUS上的PCI slot上的,但是现在的计算机上,不是只有PCI总线而已,大家碰到的时候留意。

HBA要和外设怎么连,这样的规范就很多了。

再说HBA本身,比如带宽、运行机制(protocol等)、独立处理能力等。

提示(Tips):有时看到的一块卡,实际是一个物理的卡,有时实际上是多个适配器(Adapter),好比一家机构,挂多个牌子,有的时候一块卡有两条通道,好比一家公司有两套人马。

2.关于lun

(1)lun的概念

lun的全称是logical unit number,也就是逻辑单元号。SCSI总线上可挂接的设备数量是有限的,一般为6个或者15个,可以用target ID(也称SCSI ID的)来描述这些设备,设备只要加入系统,就有一个代号,在区别设备的时候,只要说序列号就可以了。

而实际上需要描述的对象,是远超过该数字的,于是引进了lun的概念,也就是说lun id的作用就是扩充了target id。每个target下都可以有多个lun device,通常简称lun device为lun,这样每个设备的描述就由原来的target x变成target x lun y,那么描述设备的能力就增强了。就好比,以前你给别人邮寄东西,写地址的时候,可以写:xx市人民大街54号xxx(收),但是自从高楼大厦越来越多,你不得不这么写:xx市人民大街54号xx大厦518室xxx(收)。

所以可以总结一下,lun是为了使用和描述更多设备及对象而引进的一个方法。

(2)lun是什么呢?

lun id不等于某个设备,只是个号码而已,不代表任何实体属性,在实际环境里,碰到的lun可能是磁盘空间、磁带机或者是media changer等。

lun的神秘之处(相对于一些新手来说)在于,它很多时候不是什么可见的实体,而是一些虚拟的对象。比如一个阵列柜,主机那边看作是一个target device,为了某些特殊需要,要将磁盘阵列柜的磁盘空间划分成若干个小的单元给主机来用,于是就产生了一些什么逻辑驱动器的说法,也就是比target device级别更低的逻辑对象,人们习惯把这些更小的磁盘资源称之为lun0、lun1、lun2…。而操作系统的机制使操作系统识别的最小存储对象级别就是lun device,这是一个逻辑对象,所以很多时候称之为logical device。

有人说,我的windows里就认到一个磁盘,没看到什么lun的说法,lun是不是物理磁盘(physical disk)呢?回答是否定的,只要注意,磁盘的属性里就可以看到有一个lun的值,只是因为你的disk没有被划分为多个存储资源对象,而将整个磁盘当作一个lun来用,lun id默认为零。

曾经碰到过这样的问题,比如有人问,我们有一个磁盘阵列,连到了两个主机上,我们划分了一个lun给两个主机,然后我们想,先在操作系统将磁盘分为两个区,让两个主机分别使用两个分区,然后再出现某一台主机宕机之后,使用集群软件将该分区切换到另外一个主机上去,这样可行吗?答案也是否定的,集群软件操作的磁盘单元是lun,而不是分区,所以该操作是不可行的。当然,在一些环境下,一般也是一些要求比较低的环境,可以在多个主机上挂载不同的磁盘分区,但是这种情况下,实际上是没有涉及磁盘的切换的,所以在一些高要求的环境里,这种情况根本就不允许存在。

还要说明的地方是,在有些厂商和有些产品的概念里,lun id被绑定到了具体的device上,比如IBM的一些带库,整个带库只有一个target ID,然后changer、tape drive被分别分配为lun0、lun1、lun2…但是要注意到,这只是产品做了特别设计,也是少数情况。

(3)存储和主机的电气独立时代的lun的概念

在磁盘阵列和磁带库大行其道的时代,存储越来越智能化,越来越像一个独立的机器,实际上存储和主机的电气独立本来就是一个必然趋势,在存储越来越重要的时代,存储要独立出来是必然的事。

如果把存储当作一个独立的主机,理解起来就很简单了。说到lun的概念的时候,就要分为两个层面。一个层面就是在阵列这个机器的OS识别到的范围,一个层面就是服务器的OS识别到的范围。这两个层面是相对独立的,因为如果把存储当作一个主机来看,那么它自然有自己的device、target、lun之说,而服务器也有自己的device、target、lun之说。另一方面,这两个层面又是相互关联的,一个阵列的控制系统,大多都有虚拟化的功能,阵列想让主机看到什么样的内容,主机才能看到相应的内容。当然,服务器识别到的最小的存储资源,就是lun级别的。那么主机的HBA卡看到的存储上的存储资源就主要靠两个设备来定位,一个就是存储系统的控制器(target),一个就是lun id,这个lun是由存储的控制系统给定的,是存储系统的某部分存储资源。

(4)lun masking、lun mapping

有了独立的磁盘阵列之后,服务器只要看到存储的控制系统,就有可能使用磁盘阵列的磁盘资源,但是磁盘阵列不可能只为某一个服务器来使用,所以它必须管制主机使用某部分磁盘资源。这个管制分为两个部分:一部分就是lun mapping,类似于绿色通道,就是保证服务器能看到某部分存储资源;一部分就是lun masking,类似于警戒线,就是保证服务器只可访问给它分配的存储资源,不可访问没分配给服务器的资源。

实现lun masking和lun mapping有3种方法,一个是基于存储控制系统来设置,一个是基于存储交换系统来设置,一个是基于服务器OS来设置。

基于存储控制系统的设置是比较常见的设置,很多磁盘阵列的控制系统本身就能设置lun被某服务器看到,比如FastT的partition功能。

基于存储交换系统的设置也是一种常用的方法,比如常说的zoning。

基于服务器OS的设置,比较少采用。

(5)lun的多路径(multi-path)

现在,存储网络越来越发达,一个lun有多条通路可以访问也不是新鲜事了。服务器使用多个HBA连接到存储网络,存储网络又可能是由多个交换设备组成,而存储系统又可能有多个控制器和链路,lun到服务器的存储网络链路又可能存在着多条不同的逻辑链路。那么,必然的,同一个physical lun在服务器上必然被识别为多个设备。因为OS区别设备用的是总线、target id、lun id,只要号码不同,就是不同的设备。

由于上面的情况,多路径管理软件应运而生,比如emc的powerpath,这个软件的作用就是让操作系统知道哪些操作系统识别到lun实际上是一个真正的physical lun,具体的做法就是生成一个特别的设备文件,操作系统操作这个特殊的设备文件。设备文件+driver+firmware的一个作用,就是告诉操作系统该怎么使用这个设备。就是说,多路径管理软件从driver和设备文件着手,告诉了操作系统怎么处理这些身份复杂的lun。

3.关于备份(Backup)和高可用性(High availability)

备份,从字面的意思来理解,其实就是现时存在和应用的一个实体的后备实体。

高可用性,即硬件的环境、设施、数据、应用系统等,在复杂环境下可用的能力和可能达到的一个较高的值;在现实世界里,都讲究稳定、可靠,所以经常在计算机环境设计里,涉及高可用性和备份等元素。

对于备份主要说以下几个方面。

(1)设备的备份

设备的备份,也就是除使用的设备之外,采取相同或类似的设备做后备。

比如在服务器上采用冗余电源,也叫后备电源,使用单独的硬盘来做RAID的备用盘,也叫热备盘。

如果采取单独的一台服务器来做后备,这就成了主机的备份,主机的备份有很多种方式,比较著名的就是所谓的cluster、双机热备和双机容错,它们有一个共同的特点,就是都是为了实现主机的备份,即某一个主机失效了,由另外一个主机顶替它来运行。实现主机热备的软件有很多,比如IBM的HACMP、HP的MCSG、SUN的sun cluster、Compaq的Ture Cluster、Veritas的VCS、EMC的autostart、ROSE HA等。

(2)数据的备份

数据的备份,就是在现时使用的数据之外,实现或设置另外一份不同物理体现的、内容相同的有效数据复制,比如将生产数据复制到磁带上,就是一种数据备份方式。比如将生产数据复制到磁盘的另一个分区、另一个文件系统或者复制到别的主机的磁盘上等,都是一种数据备份的方式。

实现数据备份的软件有很多,比如一些磁带操作的小工具,tar、cpio等,大的工具软件有EMC Networker、Symantec Netbackup、CommVault、tapeware等,数据复制的工具就更多了,操作系统的复制命令、EMC replicator、srdf等。

(3)应用系统的备份

应该说应用系统的备份,包含了以上两种备份,因为一个完善的应用系统,其设备和数据都是要求有备份的,除此之外,作为一个应用系统,它还包含了业务程序、人员、业务逻辑、外部环境等一系列让应用运行的内容。

在这个层面,就有一个远程容灾。远程容灾,就是在生产系统环境之外,在相隔较远的物理空间,构建相同或类似的一个应用系统,以达到在必要的时候顶替原生产系统工作的           目的。

要实现远程容灾的目的,除了外部环境,比如机房、电力、后勤保障、人员配备、业务程序之外,我们比较着重的一个环节,就是数据的问题,也就是在两个系统之间要保证数据的相对一致,实现这个目标的方法有很多,比如磁盘阵列之间的卷复制、两个主机之间文件系统上的复制等。当然,在一个系统里,把数据用磁带导出来,快递到另外一个系统地点,再用磁带把数据导进去,也不能说不是一个办法,但是这样操作,经常会和业务的逻辑相违背。

可用性是指在各种复杂环境下,数据、应用等计算资源都可以保持使用的能力和可能性。比如服务器配备冗余电源,就提高了服务器的可用性,即一个电源工作不正常或者能力不够的时候,服务器不受影响。再比如,磁盘阵列采用双控制器,当某个控制器和链路工作不正常的时候,数据的访问能平滑地过渡到另外一个控制器上和链路上,这也提高了数据和存储设备的可用性。

那么高可用性就是一切为了提高系统可用性的实现方法和结果,就是cluster或者双机。为了实现生产的应用系统的高可用性,其中一个环节就是实现服务器的高可用性,就是某服务器失效或者能力不足时,应用能平滑地过渡到另外的主机上,也就是说对于应用系统来说,服务器保证了相对的可用性。

那备份和高可用性有什么区别呢?这是两个不同的概念,它们的着眼点是不同的。备份只是保证了有后备,而高可用性则是为了保证应用的尽快恢复。打个比方,备份就好比买保险,买保险不能保证平安无事,但是肯定能减轻损失。高可用性,就是安全气囊、ABS,能快速地重新开始或者说将危险消弭于萌芽时刻。所以说做备份和提高可用性,两手都不可放松,也不互相矛盾。

SAN存储方案

FC SAN和IP SAN是目前两种流行的SAN存储方案。

(1)SAN设备在连入系统后,表示为一个或多个target ID,它的逻辑分配单元即为LUN-Logical Unit Number(逻辑单元号)。

(2)IP SAN也称为iSCSI(internet Small Computer System Interface)。

iSCSI技术的核心是在TCP/IP网络上传输SCSI协议,是指用TCP/IP报文和iSCSI报文封装SCSI报文,使得SCSI命令和数据可以在普通以太网上进行传输。


存储协议

本节将从两个方面比较详细地介绍IP存储的相关知识,首先介绍在存储最底层的存储协议,而后介绍基于这些协议搭建起的存储网络。

存储协议浅析就像大部分新的技术都是要经历从发布到普及一样,存储技术的发展都要经过一个过程。

SCSI协议的发展从带宽5MB发展到现今的320MB,只经过了不到二十年的时间。后续的版本陆续增加了能满足特殊设备协议所需要的命令集,使得SCSI协议既适应传统的并行传输设备,又能适应最新出现的一些串行设备的通信需要;同时,对传输的速度也做了非常大的提升,SCSI 5规定了640Mbps的传输速度。但是SCSI仍然不能规避其连接设备数目太少、距离太短、主机共享性低等一系列的问题。与SCSI有血缘关系的SSA发展到160MB的时候,随着其创造和倡导者--IBM推出DS8000,也似乎预示着它走到了尽头。

再看FC,从诞生之日起,它便以一个贵族、一个SCSI的终结者身份出现。从1GB到现在新推出的4GB,以及将来推出的10GB,发展速度之快令人乍舌。

也许正是应了那句话:"贵族永远解决不了平民的问题"。虽然它不断地自降身价,从1999、2000年动辄百万到现在少则二三十万就可以搭建一个FC系统,它却依然秉持着贵族的一贯作风--想与它交流,至少要穿一件像样的贵族服装。不可或缺的FC HBA和昂贵的FC硬盘永远是它心里永远的痛。原因很简单--它流淌的是贵族的血液!而终结SCSI使命达成之日似乎也正变得遥遥无期。越来越多的用户正在翘首以盼,新的技术能够改变他们日益混乱的系统,改变他们越来越多地购买新产品和大量投入的管理。而当虚拟存储的大旗飘洋过海来到中国的时候,恍然发现那也只不过是个噱头。面对厂商之间的技术壁垒、打补丁出身的供货商、高昂的产品价格,想要尝试的想法正在逐渐变得软弱无力。

iSCSI的横空出世似乎正在向人们宣告,平民出身的它正在以义无反顾地姿态展现在人们面前,将SCSI、FC融合在一起,创造一个新的存储纪元!而此时却惊奇地看到一个个厂商将iSCSI应用在了不同的领域,创造出了不同的产品:用网线代替SCSI、FC线缆的磁盘阵列(IBM在2001年iSCSI正式发布以前就迫不及待地推出了200i),NETAPP将iSCSI接口用在了自己的NAS阵列,弥补NAS只能用于文件存储的先天不足,Cisco、SANRAD等推出基于iSCSI技术的交换机。

恰逢FCIP、iFCP也正跃跃欲出,到底应该如何选择?用户是该高兴还是悲哀?是应该为新的技术的推出即将解决现有的问题高兴,还是悲哀自己兜里的钞票已经被精明的商人们算计一空?至少人们应该庆幸,商业环境日益激烈的竞争正在按照解决实际应用问题的方向前进。所以,与其说摩尔定律验证了技术发展的时效性,还不如说,摩尔定律正一次次验证技术的发展正是依仗于商业发展的推动力。

下面就介绍几种存储技术。

SCSI

SCSI是小型计算机系统接口(Small Computer System Interface)的简称,它是在美国Shugart公司开发的SASI的基础上,增加了磁盘管理功能而成的。SCSI接口作为输入输出接口,主要用于硬盘、光盘机、磁带机、扫描仪、打印机等设备,现在已经发展到Ultra 320。

FC

Fibre Channel(FC)是1994年由ANSI标准化组织制订的一种适合于千兆位数据传输通信的成熟而安全的解决方案。

Fibre Channel 与传统的SCSI技术相比,除了提供更高的数据传输速度、更远的传输距离、更多的设备连接支持、更稳定的性能、更简易的安装外,最重要的是支持最新的网络区域存储(SAN)技术。

现在已经产业化的是2GB的FC技术,4GB的FCB产品也已经通过测试,Brocade、Cisco、Qlogic、Emulex都已经推出或马上推出相应技术的产品。

iSCSI

iSCSI(Internet SCSI互联网小型计算机系统接口)是一种在Internet协议网络上,特别是以太网上进行数据块传输的标准。它是由Cisco 和IBM两家发起的,并且得到了IP存储技术拥护者的大力支持,是一个供硬件设备使用的可以在IP协议上层运行的SCSI指令集。简单地说,iSCSI可以实现在IP网络上运行SCSI协议,使其能够在诸如高速千兆以太网上进行路由选择。

iSCSI的优势主要表现为以下几点。首先,iSCSI建立在SCSI、TCP/IP这些稳定和熟悉的标准上,因此安装成本和维护费用都很低。其次,iSCSI支持一般的以太网交换机而不是特殊的光纤通道交换机,从而减少了异构网络和电缆。最后,iSCSI通过IP传输存储命令,因此可以在整个Internet上传输,没有距离限制。

iSCSI的缺点在于存储和网络是同一个物理接口,同时协议本身的开销较大,协议本身需要频繁地将SCSI命令封装到IP包中以及从IP包中将SCSI命令解析出来,这两个因素都造成了带宽的占用和主处理器的负担。但是随着专门处理iSCSI的ASIC芯片开发(解决主处理器的负担问题)以及10GB的普及(解决带宽问题),iSCSI将有着更好的发展。

FCIP

FCIP(Fibre Channel over TCP/IP),将FC协议封装到TCP/IP包中,从而使FC通过网络进行传输。FCIP由Brocade、Gadzoox、朗讯、McData及Qlogic共同提出。

FCIP解决了FC的传输距离问题,即解决了SAN之间的互联互通。

FCIP的缺点有以下几点。首先,FCIP只能在FCIP设备之间建立点到点连接,即FCIP设备一端(IP端)和另外一个FCIP设备的IP端进行连接,FCIP设备的另外一端(FC端)和FC光纤通道交换机进行连接,FCIP设备无法在两个独立存储设备之间提供本地IP连接。其次,由于FCIP是一种不透明的传输协议,即一个SAN向另一个SAN发送的信息在FC层没有错误检测,容易将一个SAN上的错误蔓延到各个SAN。再次,FC和IP网络之间线速的不匹配,或者FCIP引擎的低效实现,都有可能使得FCIP设备成为一个瓶颈。如果FCIP通道崩溃,两个远程FC交换机之间的连接也不会自动恢复,这对商业应用来说显然是难以接受的。基于FCIP的设备现在有Brocade多协议路由器等。

iFCP

iFCP(Internet Fibre Channel Protocol)是一个网关到网关的协议,iFCP可以直接替代FC架构,通过iFCP存储交换机可以直接连接FC的各个设备并进行分组,而不仅是简单地对FC SAN进行远程连接。

iFCP的优势在于在建立连接的同时能够建立网关分区,它可以将出现问题的区域隔离起来,并克服了点到点隧道的限制。基于iFCP实现了SAN的路由故障隔离、安全及灵活管理,具有比FCIP更高的可靠性。

iFCP由Nishan Systems倡导,McDATA开发了基于iFCP的产品。

InfiniBand体系

InfiniBand简称IBA,由Mellanox公司提出,是一种新的I/O总线技术,用于取代目前的PCI总线。IBA主要应用在企业网络和数据中心,也可以应用在高速线速路由器、交换机、大型电信设备中。

IBA传输率可以达到30Gbps,同时系统通过双CRC、虚通道、优先级控制、基于信用的流控制来维持较高的性能和可靠性。IBA还提供了内部和外部的互联支持。在软件和操作系统方面,Mellanox公司发布了应用于Linux操作系统的IBA标准,同时微软的Windows2000和未来的Whistler也提供了对IBA的支持。

几种存储协议的比较见表3-4。

表3-4  各种网络存储协议对比表

协议名称

简单描述

主要优点

主要缺点

iSCSI

网络上的SCSI、SCSI

Over TCP/TP

成本低,没有距离限制

占用宽带,主处理

器负担重

FCP

SCSI的串行化,光纤

版本的SCSI

高速、共享环路及

网络交换

距离受限制,成本高

FCIP

解决SAN之间的互联,

FC over TCP/IP

使SAN的距离更远

无法在两个独立存

储设备间供及本地

IP连接,协议不明

iFCP

直接连接FC 各设备,

并进行分组

更好地解决点到

点限制,故障恢复等问题

远程FC之间

无法自动恢复,

Qos问题,网络延时

Infini Bard

新的I/O总线技术

高速、高性能

 

DAFS

通过TCP协议找直

接与远程服务器

的存储设备建立访问

数据直接从缓冲区

搬移到网卡,时延降低

 


 网卡

根据传输协议的不同,网卡可分为3种,一是以太网卡,二是FC网卡,三是iSCSI网卡。

(1)以太网卡:Ethernet Adapter,传输协议为IP协议,一般通过光纤线缆或双绞线与以太网交换机连接。接口类型分为光口和电口。光口一般都是通过光纤线缆来进行数据传输,接口模块一般为SFP(传输率2Gbps)和GBIC(1Gbps),对应的接口为SC、ST和LC。电口目前常用接口类型为RJ45,用来与双绞线连接,也有与同轴电缆连接的接口,不过现在已经用的比较少了。

(2)FC网卡:一般也叫光纤网卡,Fibre Channel HBA(Hose Bus Adapter,主机总线适配器)。传输协议为光纤通道协议,一般通过光纤线缆与光纤通道交换机连接。接口类型分为光口和电口。光口一般都是通过光纤线缆来进行数据传输,接口模块一般为SFP(传输率2Gbps)和GBIC(1Gbps),对应的接口为SC和LC。电口的接口类型一般为DB9针或HSSDC。

光纤网卡一般是指FC HBA卡,插在服务器上,外接存储用的光纤交换机;而光口的以太网卡一般都叫做光纤以太网卡,也是插在服务器上,不过它外接的是带光口的以太网交            换机。

(3)iSCSI网卡:Internet Small Computer System Interface,iSCSI HBA,传输iSCSI协议,接口类型与以太网卡相同。iSCSI(internet SCSI)是一套定义在TCP/IP网络上传输SCSI协议的命令。它将SCSI定义的发起方(initiator)和目标方(target)由原来的SCSI总线连接扩展到Internet上,打破了SCSI定义中的存储距离的限制。

  I/O配置

在各种成熟的存储技术的基础上,合理配置系统的I/O分布及系统I/O配置能大量减少系统在生产运行中出现I/O性能及相关问题的几率。当然,这些配置是在布置数据库系统时的初始建议,对于复杂的系统来说,很多配置(如一些存储相关的参数)是需要根据系统的运行状况进行调优的。

在数据库系统中,如果某个文件或者某块磁盘上存在远高于其他文件或磁盘的大量I/O访问,就称这个文件或磁盘为热点文件/磁盘。在做I/O规划时的一个重要目标就是要消除系统中热点文件/磁盘的存在,使整个系统的I/O负载相对平衡。

 条带化设置

由于现在的存储技术成熟、成本降低,大多数系统都采用条带化来实现系统的I/O负载分担。如果操作系统有LVM(Logical Volume Manager,逻辑卷管理器)软件或者硬件条带设备,就可以利用这些攻击来分布I/O负载。当使用LVM或者硬件条带时,决定因素是条带深度(stripe depth)和条带宽度(stripe width)。

条带深度指的是条带的大小,也叫条带单元。

条带宽度指的是条带深度的产量或者一个条带集中的驱动数。

需要根据系统的I/O要求来合理地选择这些数据。对于Oracle数据库系统来说,比较合理的条带深度是从256KB到1MB。下面分析条带深度和条带宽度的影响因素。

条带深度

为了提高I/O效率,要尽量使一次逻辑I/O请求有一块磁盘的一次物理I/O请求。因而影响条带的一个重要因素就是一次逻辑I/O请求的大小。

此外,系统中I/O的并发度不同,对条带的配置要求也不同。例如,在高并发度且I/O请求都比较小的情况下,人们希望一块磁盘能同时响应多个I/O操作;而在那些存在大I/O请求的低并发度系统中,可能就需要多块磁盘同时响应一个I/O请求。无论是一个磁盘还是多个磁盘响应I/O请求,一个原则是让一次逻辑I/O能被一次处理完成。

下面介绍影响I/O大小的操作系统和Oracle的相关参数。

db_block_size:Oracle中的数据块大小,也决定了Oracle一次单个I/O请求中的数据块的大小。

db_file_multiblock_read_count:在多数据块读时,一次读取数据块的数量,它和参数db_block_size一起决定了一次多数据块读的大小,它们的乘积不能大于操作系统的最大I/O大小。

操作系统的数据块大小:这个参数决定了Redo Log和Archive Log操作时的数据块大小。

最大操作系统I/O大小:决定了一次单个的I/O操作的I/O大小的上限,对于大多数Unix系统来说,由参数max_io_size设置。

sort_area_size:内存中sort area的大小,也决定了并发排序操作时的I/O大小。

hash_area_size:内存中hash area的大小,也决定了哈希操作的I/O大小。

其中,前面两个是最关键的两个参数。

在OLTP系统中,会存在大量小并发的I/O请求。这时就需要考虑选择比较大的条带深度。使条带深度大于I/O大小就称为粗粒度条带(Coarse Grain Striping)。在高并行度系统中,条带深度为n×db_block_size,其中n为大于1的整数。

通过粗粒度条带能实现最大的I/O吞吐量(一次物理I/O可以同时响应多个并发的逻辑I/O)。大的条带深度能够使像全表扫描那样多数据块读操作由一个磁盘驱动来响应,并提高多数据块读操作的性能。

在低并发度的DSS系统中,由于I/O请求比较序列化,为了避免出现热点磁盘,需要避免逻辑I/O只由一块磁盘处理。这时,粗粒度条带就不适合了。选择小的条带深度,使一        个逻辑I/O分布到多个磁盘上,从而实现I/O的负载均衡,这就叫细粒度条带。条带深度的大小为n×db_block_size,其中n为小于多数据块读参数db_file_multiblock_read_count的整数。

另外,I/O过程中,用户无法保证Oracle数据块的边界和条带单元的大小对齐。如果条带深度大小和Oracle数据块大小完全相同,而它们的边界没有对齐的话,那么就会存在大量一个单独的I/O请求被两块磁盘来完成。

在OLTP系统中,为了避免一个逻辑I/O请求被多个物理I/O操作完成,条带宽度就需要设置为Oracle数据块大小的两倍或者两倍以上。例如,如果条带深度是I/O大小的N倍,对于大量并发I/O请求,可以保证最少有(N-1)/ N的请求是由一块磁盘来完成。

条带深度

为了提高I/O效率,要尽量使一次逻辑I/O请求有一块磁盘的一次物理I/O请求。因而影响条带的一个重要因素就是一次逻辑I/O请求的大小。

此外,系统中I/O的并发度不同,对条带的配置要求也不同。例如,在高并发度且I/O请求都比较小的情况下,人们希望一块磁盘能同时响应多个I/O操作;而在那些存在大I/O请求的低并发度系统中,可能就需要多块磁盘同时响应一个I/O请求。无论是一个磁盘还是多个磁盘响应I/O请求,一个原则是让一次逻辑I/O能被一次处理完成。

下面介绍影响I/O大小的操作系统和Oracle的相关参数。

db_block_size:Oracle中的数据块大小,也决定了Oracle一次单个I/O请求中的数据块的大小。

db_file_multiblock_read_count:在多数据块读时,一次读取数据块的数量,它和参数db_block_size一起决定了一次多数据块读的大小,它们的乘积不能大于操作系统的最大I/O大小。

操作系统的数据块大小:这个参数决定了Redo Log和Archive Log操作时的数据块大小。

最大操作系统I/O大小:决定了一次单个的I/O操作的I/O大小的上限,对于大多数Unix系统来说,由参数max_io_size设置。

sort_area_size:内存中sort area的大小,也决定了并发排序操作时的I/O大小。

hash_area_size:内存中hash area的大小,也决定了哈希操作的I/O大小。

其中,前面两个是最关键的两个参数。

在OLTP系统中,会存在大量小并发的I/O请求。这时就需要考虑选择比较大的条带深度。使条带深度大于I/O大小就称为粗粒度条带(Coarse Grain Striping)。在高并行度系统中,条带深度为n×db_block_size,其中n为大于1的整数。

通过粗粒度条带能实现最大的I/O吞吐量(一次物理I/O可以同时响应多个并发的逻辑I/O)。大的条带深度能够使像全表扫描那样多数据块读操作由一个磁盘驱动来响应,并提高多数据块读操作的性能。

在低并发度的DSS系统中,由于I/O请求比较序列化,为了避免出现热点磁盘,需要避免逻辑I/O只由一块磁盘处理。这时,粗粒度条带就不适合了。选择小的条带深度,使一        个逻辑I/O分布到多个磁盘上,从而实现I/O的负载均衡,这就叫细粒度条带。条带深度的大小为n×db_block_size,其中n为小于多数据块读参数db_file_multiblock_read_count的整数。

另外,I/O过程中,用户无法保证Oracle数据块的边界和条带单元的大小对齐。如果条带深度大小和Oracle数据块大小完全相同,而它们的边界没有对齐的话,那么就会存在大量一个单独的I/O请求被两块磁盘来完成。

在OLTP系统中,为了避免一个逻辑I/O请求被多个物理I/O操作完成,条带宽度就需要设置为Oracle数据块大小的两倍或者两倍以上。例如,如果条带深度是I/O大小的N倍,对于大量并发I/O请求,可以保证最少有(N-1)/ N的请求是由一块磁盘来完成。

 条带大小计算方法

stripe width(条带宽度):RAID中的磁盘数,就是组成这个stripe的磁盘数。例如,4个磁盘组成的RAID 0,条带宽度就是4。

stripe depth(条带深度):单块磁盘上条带的大小,有时也称为stripe unit。

stripe size(条带大小):stripe depth×stripe width。有时也称block size块大小、chunk size簇大小、stripe length条带长度、granularity粒度,是单块磁盘上的每次I/O的最小单位。

RAID条带大小的另一个计算公式为:

条带大小=(0.25×平均定位时间×数据传输速率×(并发用户数-1)×1.024)+0.5KB。

平均定位时间=(平均延时+平均寻道时间)(ms);数据传输速率单位为:Mbps;1.024 = 1s/1000ms×1024KB/1MB(单位转换因子)。

举例来说,磁盘寻道时间是6ms,传输速率80MB,且有20个并发用户的条带大小应该为:(0.25×6×80×19×1.024)+0.5=2335.22KB(差不多2MB)。

 SAN、NAS和DAS (1)

随着计算机技术的发展和广泛应用,存储技术已经得到了业界和各个应用领域专业人士的重视。数据量的迅速增长为企业的发展提出了新的问题和要求,如何确保数据的一致性、安全性和可靠性,如何实现不同数据的集中管理,如何实现网络上的数据集中访问,如何实现不同主机类型的数据访问和保护等,这些都呼唤着新的网络存储技术及其产品的出现。

SAN与NAS技术和产品的出现不仅拓展了网络发展的空间,更为重要的是,它们将网络技术与新兴的存储领域有机地结合起来,在IT业发展过程中起到了不可忽视的作用。

SAN和NAS经常被视为两种竞争技术,实际上,二者还能够很好地相互补充,以提供对不同类型数据的访问。SAN针对海量、面向数据块的数据传输,而NAS则提供文件级的数据访问功能。

这两种技术不但可以满足灵活的存储访问的需要,而且SAN和NAS都基于开放的、业界标准的网络协议:用于SAN的光纤通道协议和用于NAS的网络协议(如TCP/IP)。SAN的应用范围更为广泛,而且可以提供对NAS设备的存储,而NAS一般只限于文件级数据访问的应用。如果不考虑它们之间的差别,SAN和NAS在今天的企业级存储中都发挥着重要的作用,比传统的服务器连接存储拥有更多的优势。

SAN和NAS在数据中心领域对传统的服务器连接存储是强有力的补充和替代。因而,企业级用户逐渐认识到其众多的优点,包括改进的灵活性、更方便的存储部署以及更低的总体拥有成本。尽管SAN和NAS技术可以提供竞争优势,但是它们都是为特定的环境和应用而设计的。

SAN的关键特性

SAN作为网络基础设施,是为提供灵活、高性能和高扩展性的存储环境而设计的。SAN通过在服务器和存储设备(例如磁盘存储系统和磁带库)之间实现连接来达到这一目的。

高性能的光纤通道交换机和光纤通道网络协议可以确保设备连接可靠且有效。这些连接以本地光纤或SCSI(通过SCSI-to-Fibre Channel转换器或网关)为基础。一个或多个光纤通道交换机以网络拓扑(SAN架构)形式为主机服务器和存储设备提供互联。

由于SAN是为在服务器和存储设备之间传输大块数据而进行优化的,因此SAN对于以下应用来说是理想的选择。

1.关键任务数据库应用,其中可预计的响应时间、可用性和可扩展性是基本要素。

2.集中的存储备份,其中性能、数据一致性和可靠性可以确保企业关键数据的安全。

3.高可用性和故障切换环境可以确保更低的成本、更高的应用水平。

4.可扩展的存储虚拟化,可使存储与直接主机连接相分离,并确保动态存储分区。

5.改进的灾难容错特性,在主机服务器及其连接设备之间提供光纤通道高性能和扩展    的距离(达到150千米)。

SAN的主要长处

面对迅速增长的数据存储需求,大型企业和服务提供商渐渐开始选择SAN作为网络基础设施,因为SAN具有出色的可扩展性。事实上,SAN比传统的存储架构具有更多显著的优势。例如,传统的服务器连接存储通常难于更新或集中管理。每台服务器必须关闭才能增加和配置新的存储。相比较而言,SAN不必宕机和中断与服务器的连接即可增加存储。SAN 还可以集中管理数据,从而降低了总体拥有成本。

利用光纤通道技术,SAN可以有效地传输数据块。通过支持在存储和服务器之间传输海量数据块,SAN提供了数据备份的有效方式。因此,传统上用于数据备份的网络带宽可以节约下来用于其他应用。

开放的、业界标准的光纤通道技术还使得SAN非常灵活。SAN克服了传统上与SCSI相连的线缆限制,极大地拓展了服务器和存储之间的距离,从而增加了更多连接的可能性。改进的扩展性还简化了服务器的部署和升级,保护了原有硬件设备的投资。

此外,SAN可以更好地控制存储网络环境,适合基于交易的系统在性能和可用性方面的需求。SAN利用高可靠和高性能的光纤通道协议来满足这种需要。

SAN的另一个长处是传送数据块到企业级数据密集型应用的能力。在数据传送过程中,SAN在通信节点(尤其是服务器)上的处理费用开销更少,因为数据在传送时被分成更小的数据块。因此,光纤通道SAN在传送大数据块时非常有效,这使得光纤通道协议非常适用于存储密集型环境。

今天,SAN已经渐渐与NAS环境相结合,以提供用于NAS设备的高性能海量存储。事实上,许多SAN目前都用于NAS设备的后台,满足存储扩展性和备份的需要。

SAN带来的好处

SAN的一个好处是极大地提高了企业数据备份和恢复操作的可靠性和可扩展性。基于SAN的操作能显著减少备份和恢复的时间,同时减少企业网络上的信息流量。

通过将SAN拓展到城域网基础设施上,SAN还可以实现与远程设备无缝地连接,从而提高容灾的能力。SAN部署城域网基础设施以增加SAN设备间的距离,可达到150千米,而且几乎不会降低性能。企业可以利用这一点,通过部署关键任务应用和用于关键应用服务器的远程数据复制来提高容灾能力,备份和恢复设备是实现远程管理的需要。

另外,基于交易的数据库应用从SAN部署中获益颇多,其无缝增加存储的能力可以减少数据备份的时间。

SAN存在的问题

近两年来,SAN这一概念已经渐入人心。SAN可以取代基于服务器的存储模式,性能更加优越。然而,时至今日,互操作性仍是实施过程中存在的主要问题。SAN本身缺乏标准,尤其是在管理上更是如此。虽然光纤通道(Fibre Channel)技术标准的确存在,但各家厂商却有不同的解释,于是,互操作性问题就像沙尘暴一样迎面扑来,让人猝不及防。

一些SAN厂商通过SNIA等组织来制定标准。还有一些厂商则着手大力投资兴建互操作性实验室,在推出SAN之前进行测试。另一种途径便是外包SAN。尽管SAN厂商在解决互操作性问题上已经取得了进步,不过,专家仍建议用户采用外包方式,不要自己建设SAN。

NAS的关键特性

NAS解决方案通常配置为作为文件服务的设备,由工作站或服务器通过网络协议(如TCP/IP)和应用程序(如网络文件系统NFS或者通用Internet文件系统CIFS)来进行文件访问。大多数NAS连接在工作站客户机和NAS文件共享设备之间进行。这些连接依赖于企业的网络基础设施来正常运行。

为了提高系统性能和实现不间断的用户访问,NAS采用了专业化的操作系统用于网络文件的访问,这些操作系统既支持标准的文件访问,也支持相应的网络协议。

NAS使文件访问操作更为快捷,并且易于向基础设施增加文件存储容量。因为NAS关注的是文件服务而不是实际文件系统的执行情况,所以NAS设备经常是自包含的,而且相当易于部署。

NAS设备与客户机之间主要是进行数据传输。在LAN/WAN上传输的大量数据被分成许多小的数据块,传输的处理过程需要占用处理器资源来中断和重新访问数据流。如果数据包的处理占用太多的处理器资源,则在同一服务器上运行的应用程序会受到影响。由于网络拥堵影响NAS的性能,所以,其性能局限之一是网络传输数据的能力。

NAS存储的可扩展性也受到设备大小的限制。增加另一台设备非常容易,但是要像访问一台机器上的数据那样访问网络环境中的内容并不容易,因为NAS设备通常具有独特的网络标识符。由于上述这些限制,NAS环境中的数据备份不是集中化的,因此仅限于使用直接连接设备(如专用磁带机或磁带库)或者基于网络的策略,在该策略中,设备上的数据通过企业或专用LAN进行备份。

NAS与DAS方式的区别

作为一种新兴的存储技术,NAS有着传统直接连接方式所无法比拟的优势。表3-5对这两种方式进行了一个简单的比较。

表3-5  NAS与DAS的比较

网络附加存储(NAS)

直接连接存储(DAS)

通过文件系统的集中化管理能

够实现网络文件的访问

只能通过与之连接的主机进行访问

用户能够共享文件系统并查

看共享的数据

每一个主机管理它本身的

文件系统,但不能实现与

其他主机共享数据

专业化的文件服务器与存储

技术相结合,为网络访

问提供高可靠性的数据

只能依靠存储设备本身为

主机提供高可靠性的数据

 SAN、NAS和DAS (2)

NAS的技术特点

NAS为访问和共享大量文件系统数据的企业环境提供了一个高效、性能价格比优异的解决方案。数据的整合减少了管理需求和开销,而集中化的网络文件服务器和存储环境--包括硬件和软件--确保了可靠的数据访问和数据的高可用性。可以说,NAS提供了一个强有力的综合机制。

NAS技术能够满足特定的用户需求。例如当某些企业需要应付快速数据增长的问题,或者是解决相互独立的工作环境所带来的系统限制时,可以采用新一代NAS技术,利用集中化的网络文件访问机制和共享来解决这些问题,从而达到减少系统管理成本,提高数据备份和恢复功能的目的。

NAS的主要长处

NAS适用于需要通过网络将文件数据传送到多台客户机上的用户。NAS设备在数据必须长距离传送的环境中可以很好地发挥作用。

此外,NAS设备非常易于部署,可以使NAS主机、客户机和其他设备广泛分布在整个企业的网络环境中。正确地进行配置之后,NAS可以提供可靠的文件级数据整合,因为文件锁定是由设备自身来处理的。尽管其部署非常简单,但是企业仍然要确保在NAS设备的配置过程中提供适当的文件安全级别。

NAS带来的好处

NAS应用于高效的文件共享任务中,例如Unix中的NFS和Windows NT中的CIFS,其中基于网络的文件级锁定提供了高级并发访问保护的功能。NAS设备可以进行优化,以文件级保护向多台客户机发送文件信息。

在某些情况下,企业可以有限地为数据库应用部署NAS解决方案。这些情况一般只限于以下的应用。

(1)大量的数据访问是只读的,数据库很小。

(2)要访问的逻辑卷也很少。

(3)所要求的性能也不高。

在这些情况下,NAS解决方案有助于减少用户的总体拥有成本。

互为补充的两种技术

尽管它们之间存在着区别,但是SAN和NAS是两种互为补充的存储技术。例如,SAN在数据块传输和扩展性方面表现优秀,并能够有效地管理设备。企业可以从将SAN应用于关键任务应用、存储集中、备份恢复和高可用性计算等方面受益无穷。

与SAN相比,NAS支持多台对等客户机之间的文件共享。NAS客户机可以在企业中的任何地点访问共享文件。因为在NAS环境中文件访问的逻辑卷较少,对于响应时间要求也不是很高,所以其性能和距离要求也相对较低。

SAN与NAS关键特性比较见表3-6。

表3-6  SAN与NAS关键特性比较

 

SAN

NAS

协议

Fibre Channel、Fibre Channel-to-SCSI

TCP/IP

应用

关键任务,基于交易的

数据库应用处理

NFS和CIFS中的文件共享

集中的数据备份

长距离的小数据块传输

灾难恢复

有限的只读数据库访问

存储集中

 

优点

高可用性

距离的限制少

数据传输的可靠性

简化附加文件的共享容量

减少远网络流量

易于部署和管理

配置灵活

 

高性能

 

高可扩展性

 

集中管理

 

NAS和SAN最本质的不同就是文件管理系统在哪里,如图3-7所示。

 
图3-7  NAS和SAN比较

由图3-7可以看出,SAN结构中,文件管理系统(FS)还是分别在每一个应用服务器上;而NAS则是每个应用服务器通过网络共享协议(如NFS、CIFS)使用同一个文件管理系统。换句话说,NAS和SAN存储系统的区别是SAN有自己的文件系统管理。

NAS是将目光集中在应用、用户和文件以及它们共享的数据上;SAN是将目光集中在磁盘、磁带以及联接它们的可靠的基础结构上。将来从桌面系统到数据集中管理到存储设备的全面解决方案将是NAS加SAN。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享: