现在网络存储逐渐成为大规模存储系统的基本体系结构。我们称网络存储设备为NAD(Network Attached Disk,NAD)。根据NAD提供的存取接口不同,其软硬件系统结构是不同的。目前最为典型的三种基本网络存储结构是SAN、NAS和iSCSI。图 1.2是NAS系统的基本物理模型,图 1.3为SAN系统的基本物理结构,图 1.4提供iSCSI系统的基本结构。
客户机客户机LANNAS头存储池NASNASNAS头存储池
图 1.2 NAS的物理拓扑结构
WWW服务器服务器存储域服务器存储域服务器服务器ComFC交换机ComFC交换机HS1HS2OK1OK2PS9101112COL-ACT-STA-CONSOLEFC交换机HS1HS2OK1OK2PS9101112COL-ACT-STA-CONSOLEFC交换机HS1HS2OK1OK2PS9101112COL-ACT-STA-CONSOLEFC交换机FC/SCSI桥接器磁带库磁带库光盘塔阵列磁盘阵列磁盘阵列
图 1.3 SAN的物理拓扑结构
Gibson按接口(面向数据块和面向文件)形式把网络存储分为两大类{Meter, 2001 #1},一是基于SAN结构,SAN系统提供简单、无类型、固定大小的数据块(典型操作为get block,set block),多个SAN的存储设备在逻辑上构成存储池。从接口的抽象角度来看,这和传统的直接连接的存储设备没有什么不同,但由于SAN网络使得多个客户可以同时直接访问共享数据,而SAN系统不能保证它们之间的互斥访问,因此当产生共享访问时,必须对多个客户进行同步,这一工作应该通过建立集中的管理方式解决。另一种是基于NAS结构,它提供丰富的、有类型的、可变尺寸(文件)的层次性的接口(典型操作为read,write和create)。
图 1.2是NAS系统的基本物理模型。NAS开始作为一种开放系统技术的出现是由Sun公司推出的NFS开始的。NAS通过瘦文件服务器的方式把存储设备和外部网络连接起来。对于本地存储设备中的数据整体管理的任务还是由NAS完成,但此时服务器的负载相对减少很多,并且由于瘦文件服务器模式完成的功能要求相对简单,可靠性比DAS有所提高{Khaleel,Narasimha, 2000 #2}。另一方面NAS实现文件级的数据共享,数据易于管理和维护,同时可以通过扩展,实现NAS设备间的数据备份和容量线性扩展,通过管理软件可以进一步提高
整体的存储性能。另外大型的NAS设备的后端可以是高性能的RAID或者SAN网络。其结构如图 1.2所示。NAS最主要的特点是可以通过文件操作语义访问,客户可以使用NFS或者
iSCSI设备TCP/IP网络iSCSI设备客户端iSCSI启动器CIFS访问NAS设备。
图 1.4 iSCSI网络存储结构
iSCSI设备
iSCSI作为一种融合NAS和SAN的技术最初由Cisco和IBM两家发起,提交给Internet 工程任务组(IETF)将其标准化。其结构如图 1.4所示。目前由IETF制定的iSCSI协议草案的最高版本为draft-ietf-ips-iscsi-20。通过使用iSCSI技术使得本机可以通过数据块操作界面访问网络上的各种存储设备,iSCSI把本机的SCSI请求通过SCSI/IP模块发送到IP网络上,到达目的地时再通过SCSI/IP模块转化SCSI命令对存储设备进行直接的操作{Satran, 2003 #3},对iSCSI连接的存储设备的操作就像对本机的存储设备操作一样。显然IP Storage的出现极大扩展了存储系统的范围,但另一方面,由于经过多次的协议转化和现有传输协议不适应存储特性,使得点对点的数据操作和传输变的复杂而且安全性受到极大的挑战{Pleszkun, 2003 #4}。
目前另外一些整合NAS和SAN的技术也在不断发展之中,如IBM的Tivoli SANergy {Kimberly Keeton, 2003 #5},GPFS文件系统等。它允许联入SAN的异种服务器之间共享文件和数据。并且采用的是基于NFS和CIFS的标准的文件系统,使得多个计算机可以同时通过SAN访问共享文件。一方面具有SAN的高速性能,同时保持了NAS在文件共享、安全等方面的优点。总体上这种统一方式分为“垂直”和“水平”两种方式:采用Network Attached Storage Head-end Servers的方式,NAS和SAN是“vertically垂直”的关系;另一种是在SAN中增加元数据服务器,类似于IBM SANergy,通过采用将控制通道和数据通道分开的机制提高数据访问的性能,用户首先向元数据服务器提出请求,得到授权和相应信息后,客户直接和存储设备建立数据通道,数据直接通过SAN 返回客户。
应用程序1.DAS结构2.NAS结构/网络文件服务器/存储应用3.带RAID的NAS结构/网络文件服务器4.具有三方传输的文件服务器5.NASD(OSD)对象存储LANLANLAN文件目录结构存储对象/逻辑卷SANSAN磁盘等存储介质SANSAN大块数据直接传输SANSANLANread,writeSANSAN6.NASD集群LANLANread,writeSANLAN7.Petal集群LANLAN8.iSCSI存储 图 1.5几种网络存储技术的比较
图 1.5提供网络存储系统软件层次结构模型。从中不难发现,各种网络存储技术在系统逻辑层次上具有明显的差别,这也决定了各种网络存储技术的特点。
未来存储网络的发展表现在以下几个方面:
1. 以网络速度的存储。万兆网络作为商业产品出现,对于大多数挂接在以太网上的系统而言,网络对于存储成为最快的路径。管理网络上的磁盘和内存,使之成为统一的存储资源成为关键的技术挑战,系统整体的速度和快速增长的网络速度保持同步,而不必过分依赖于磁盘速度。
2. Internet和局域网成为存储系统的主干。商业系统靠在存储区域网中增加存储设备和服务器的互连提供共享存储,例如光纤通道。然而,最近局域网性能的高速增长缩小了SAN和LAN之间的带宽差距,减小对于分离SAN的需要。基于LAN的网络存储系统提供的扩展性、可靠性和管理的简单性、以及性能等方面能够接近基于FC的SAN,但同时提供满足高速存储的附网低价设备。
3. 非中心的文件服务结构。客户/服务器局域网文件服务在80年代末和90年代直到今天,大多数文件功能被中央文件服务器通过输出一个或者多个存储卷使用,基于Internet的网络文件协议NFS,使得最近一代的网络文件服务器经常被认为就是附网存储,以区别于SAN方法。为了在具有潜力的高速局域网上传输,NAS必须从客户服务器模式进化到并行非中心服务结构,分布存储功能在一组协作的服务器和存储设备中实现。
4. 智能的数据分配和移动。整个存储系统的性能和可靠性主要被分布数据到存储节点或者到磁盘,以及数据在慢速磁盘和快速内存之间移动的时间的策略决定。通过针对特定数据存取模式智能采用相应的策略和机制,如信息预取、网络cache、镜像分片、程序直接的数据块分布、数据迁移等是存储管理的重要研究方向。
1.3 评价指标和功能需求
1.3.1 评价指标
显然存储系统和部件的基本评价指标就是容量,而评价容量的指标就是字节数。当前单条随机存储器的容量大约为GB级,而单个磁盘驱动器的容量为TB级,单张DVD光盘容量为5GB左右,而蓝光光盘容量为20GB,磁盘阵列的容量依赖于其中磁盘驱动器的数量和组织模式,而大规模存储系统的容量从几十个TB到几十个PB不等。存储容量是存储设备的系统静态指标,特别是对于存储设备而言,容量在设备生存期基本是不会改变的;而许多存储系统往往通过系统扩展技术实现实际存储容量的增加。
相对于存储容量,在存储设备和系统中与时间相关的两个基本性能评价指标为系统吞吐率(Throughput)和请求响应时间(Response time)。虽然这两个指标也一直是计算机系统和网络的重要评价标准,但在存储系统中它们往往具有特殊的含义。在网络系统中往往使用每秒比特(Kbit/s,Mbit/s和Gbit/s)来表示网络连接速度,而在存储系统中缓冲区(buffer)和I/O接口的传输速度往往使用每秒字节(KByte/s,MByte/s和GByte/s)表示。而请求响应时间根据存储部件和任务的不同可以从几个ns到几个小时不等。
对于存储系统和部件的设计者而言,吞吐率定义为单位时间内系统能够完成的任务数,它是一个重要指标,反应了系统处理任务的能力。但在实际应用中,吞吐率大小往往依赖于任务的特征,例如磁盘阵列评价指标每秒I/O数量(IOps,I/O per Second)就是指每秒的I/O处理个数,显然当每个I/O请求为1MB和8KB时,就会得到不同的吞吐率;并且吞吐率和请求大小一般情况下不具有线性比例关系,上例中通常后者吞吐率也不会是前者的128倍。这种现象来源于多种原因,其中一个原因是每个请求无论大小都需要相对固定用于对请求包进行分析和处理的时间。显然很难仅仅用吞吐率去衡量存储系统的性能。
对于应用程序和用户而言,请求响应时间是他们更加关注的。实际请求的响应时间受到多个方面的影响,首先存储系统结构会影响请求响应时间,例如一个具有本地8MB缓冲区的磁盘驱动器通常就比具有更小缓冲区的磁盘驱动器具有更好的响应时间;其次请求自身的特性也会影响实际的响应时间,例如8MB的请求比4MB的请求有更长的响应时间;再次请求数据的物理存放位置也会对响应时间产生巨大影响,例如本地磁盘中的数据比远程磁盘中的数据具有更小的访问延迟;还有请求响应时间还依赖于当前存储系统的繁忙程度,请求在负载重时比负载轻时有更长的响应时间。实际上还有其他因素也会影响请求的响应时间,例如前后请求是否连续对于磁盘响应时间就是极其重要的。这些都使得在存储系统中对于请求响应时间的计算和分析非常困难。
从上面的分析可以看出,无论吞吐率还是请求响应时间,都涉及到请求或者说负载的特征,不同的负载在相同存储系统上可能具有截然不同的表现,例如一个面向共享应用的分布式存储系统可能对于大量并发读写的负载(科学计算)有很好的性能,但对于具有大量频繁更新操作的联机事务处理(OLTP,On-Line Transaction Process)就有很差的性能。因此在对于存储系统进行评价的时候,确定运行在该系统之上的典型应用负载是非常重要的问题。
正是因为存储系统中影响吞吐率和响应时间的因素太多,所以在当前的研究中很难使用模型的方法精确计算出存储系统的性能,那么更多的采用构建仿真或者搭建原型系统,通过运行典型负载,然后通过实际测量来获取系统的性能。
1.3.2 功能需求
数据量的急剧增加,和数据本身内涵的多样性以及用户不断增长的需要对数据存储系统的功能设计提出了极大的挑战,用户不再仅考虑存储系统的容量和性能。存储系统需要更多
的功能满足不断增加的应用需求。特别是在多用户并行的环境中,大规模应用系统的广泛部署对存储系统的性能和功能也提出更多的挑战,主要表现为:
1. 高性能:性能永远是系统设计追求的重要目标,数据存储系统必须能满足用户对性
能的需求。用户希望系统整体性能应该能够随着设备性能和数量的增加而增加。对于各种实时性要求严格的特殊应用系统,存储系统必须根据负载特征进行针对性的优化以满足实时性要求;尤其在大数据量和高突发性的应用系统中,吞吐率和命令处理速率是非常关键的性能指标。 2. 可扩展性:存储系统必须能够根据应用系统的需求动态扩展存储容量、系统规模以
及软件功能。许多应用系统,如数字图书馆、石油勘探、地震资料处理等都需要PB级的海量存储容量,并且其存储系统结构能够保证容量随时间不断增加。存储系统的设计不仅考虑单个物理存储介质容量的增加,同时还需要从体系结构方面入手,使得系统能够根据需要加入和管理更多的存储设备;而且扩展过程必须表现为在线的扩大,不应该影响前台业务的正常运行。 3. 可共享性:一方面存储资源可以物理上被多个前端异构主机共享使用;另一方面存
储系统中的数据能够被多个应用和大量用户共享。共享机制必须方便应用,并保持对用户的透明,由系统维护数据的一致性和版本控制。
4. 高可靠性/可用性:数据越来越被称为企业和个人的关键财富,存储系统必须保证
这些数据的高可用性和高安全性。许多应用系统需要24×365小时连续运行,要求存储系统具有高度的可用性,以提供不间断的数据存储服务。 5. 自适应性:存储系统能够根据各种应用系统的动态工作负载和内部设备能力的变化
动态改变自身的配置、策略以提高I/O性能和可用性。
6. 可管理性:当系统的存储容量、存储设备、服务器以及网络设备越来越多时,系统
的维护和管理变得更为复杂,存储系统的可用性和易用性将受到空前的关注。事实上当前维护成本已经接近系统的构建成本。系统通过简单性、方便性、智能性的设计提供更高的管理性,以减少人工管理和配置时间。
7. 海量数据组织和维护:当前数据具有量大,结构复杂的特点,对于这些海量数据的
高效组织和管理成为一件极具挑战性的工作。为所有数据增加特性标签、建立快速和高效的索引结构成为存储系统必须考虑的问题,另外对于数据进行生命周期管理和对冗余数据进行重复删除都是提高存储系统利用效率的方法。 8. 数据存储服务的QoS:数据具有不同的属性(读写频率等),用户对数据也有不同
的需要。以往对所有数据一视同仁的方法,只会导致整体存储资源的浪费和服务的低下。而现在的数据存储系统设计必须能够认清这种差别,使用合适的方法更好的满足用户对数据存储的要求。例如,不同存取模式对存储系统有不同的影响,而且系统必须自动的适应存取模式的变化。 9. 高效的能耗管理:大规模存储系统需要消耗大量的电能,设备的空转会消耗大量的
电能产生大量的热量,这又导致散热和制冷的功耗增加,因此当前存储系统设计必须考虑如何节省系统运行的整体功耗。
虽然用户期望存储系统能够达到上述列举的多方面功能要求,但在实际的存储系统设计过程中这些功能需求会相互关联、相互制约。例如安全机制的引入往往会对性能有相反的作用。因此在实际的设计之中,需要根据应用的实际需要在多个功能之间进行一定的取舍和平衡。
1.3.3 典型系统
1. 高性能计算领域