第一章 海量网络存储系统概述(3)

2019-05-18 13:22

对于海量和高性能数据存储最早提出迫切需求的是高性能计算领域,主要来自于科学和工程计算,以及国防安全领域,涉及纳米技术、基因工程、化学和生物、放射、核磁共振图像、流体动力学等各个科学类别和工程领域。由于数据处理过程中,数据计算、传输和存储三个环节密不可分,必须相互配合才能达到任务运行指标。特别是由国家级研究中心负责的面向天气预报、地震预测、航空航天和高能物理等研究工作需要处理大规模数据处理任务。因此,主要承担这些科研和计算任务的国家实验室和高性能中心开始建设大规模存储系统以满足自身大规模数据处理的需要。下表{IBM, 2008 #6}列出截至2008年底,国际范围现有的大容量高性能存储系统。可以看出存储容量基本上都达到PB量级,文件数达到百万以上,并且都是大文件。

表 1.1 2008年底国际上较大的高性能存储系统

System (Each system shown is a single HPSS instance and namespace) National Lab (LANL) Secure Computing Facility (SCF) Lawrence Livermore National Lab (LLNL) Secure Computing Facility (SCF) The European Centre for Medium-Range Weather Forecasts (ECMWF) Brookhaven National Lab (BNL) Commissariat à l'Energie Atomique/Division des Applications Militaires (CEA) LLNL Open Computing Facility (OCF) National Centers for Environmental Prediction (NCEP) San Diego Supercomputer Center (SDSC) Stanford Linear Accelerator Center (SLAC) Institute National de Physique Nucléaire et de Physique des Particules (IN2P3) Center (NERSC) Oak Ridge National Laboratory (ORNL) LBL NERSC Backup System Indiana University (IU) LANL Open Computing Facility RIKEN in Japan National Climatic Data Center (NCDC) NASA Langley Petabytes (10^15 bytes) 13.19 11.72 10.62 9.42 7.27 6.38 6.19 5.93 4.61 4.53 Million files 104.1 84.9 44.9 52.8 2.1 76.7 5.7 52.4 5 .8 21.2 61.3 10.8 Avg file MB 121 132 226 170 3233 79 1043 108 753 203 57 321 Lawrence Berkeley Lab (LBL) National Energy Research Scientific Computing 3.68 3.65 2.56 2.06 1.60 1.53 1.10 0.77 12.1 18.3 202 107 65 469 23 146 23.7 3.1 46.4 5.0 1998年美国能源部Los Alamos国家实验室建立的Mountain Blue-Los Alamos系统,包含了48个128-processor SGI Origin 2000系统,其磁盘存储器的总容量为75TB。此后,于2002年又建立了ASCI Q系统。这个系统由310个32-processor的机器节点加上64个32-processor的I/O节点组成,它用2Gb FC接口连接64个I/O节点及存储子系统,组成了访问带宽为20Gb/s,存储容量达692TB的存储系统。大容量管理受到传统的基于块的文件系统的限制,因而该系统共用了4个文件系统,每2个文件系统管理346TB容量。在2008年,又开始建设世界最快的超级计算机Roadrunner(1.105 petaflop每秒),其中包含12个高性能I/O结点,提供216GB/s的持续文件系统I/O,通过216个双工的万兆以太网络连接到Panasas的PanFS对象存储系统。

此类系统的使用特点是:

1. 能以并行I/O的高带宽支持多用户以数百GB/s的速度访问同一文件;

2. 能支持非常大的文件系统:允许文件规模大到TB级;允许同一目录下有百万个以上

的文件;能在一秒钟内创建数千个文件,并支持元数据操作。

3. 能以高带宽将数据移入第三级存储设备;

4. 能自适应预取:完善的预取策略和延迟写(Write-behind)策略。 5. 能控制流量和I/O服务量。

随着新实验设施和更高性能的超级计算机的出现,千万亿级的计算对于新型存储的容量、性能、并行性、可靠性、可用性和管理性等方面提出更加严格的要求;同时研究者必须能够通过存储系统管理、共享和分析这些PB级的数据。这对大规模存储系统提出了更高的要求。例如位于加利福利亚伯克利Lawrence国家实验室的NERSC (The National Energy Research Scientific Computing Center)通过全局文件系统Global File System (NGF)为5个超级计算机系统提供共享存储服务。这5个超级计算机系统分别为Franklin(Cray XT4,9660个结点,Opteron处理器)、PDSF(275个结点,x86处理器)、Jacquard(356个结点Opteron)、Bassi(122结点,POWER处理器)和DaVinci(350个结点,Itanium2处理器)。每个超级计算机系统都有本地的存储空间,并使用不同文件系统,它们必须通过NGF文件系统共享数据。NGF使用IBM的GPFS提供96个卷共132TB的容量,存储设备包括2个DDN S2A 9550(24个阵列组)磁盘阵列和4个IBM DS4500(16个阵列组)磁盘阵列。可以看出,现在海量存储系统必须满足高性能计算机环境高带宽、低延迟的要求,并提供大容量、高可用的数据存储服务。 2. 企业级数据中心

随着社会信息化程度的不断深化,日常生产和商务等企事业经济活动也需要大容量存储系统的支持。相对于高性能计算领域渴望采用新存储技术和系统更快、更好的完成计算任务,大量的企事业单位更加关注于在成本约束下如何充分利用成熟的存储技术和存储系统提高自身的生产力和竞争力。因此在现有企业级数据中心基本还是采用磁盘阵列和磁带库系统作为主要的后端存储载体,这些存储设备通过高速的光纤通道网络互联起来,并连接到前端的服务器集群。对于中小型企业往往采用更加廉价和易管理的基于IP的存储解决方案,大量的客户端通过高速以太网连接共享的NAS或者iSCSI存储设备。

当前许多企事业单位还是以数据库作为信息管理和业务运行的支撑平台,而日常作业也大部分属于联机事务处理(OLTP)类型,因此需要存储系统具有低延迟、高每秒I/O处理能力、细粒度的高效存取以及对于读-写-修改模式的优化,例如IBM的DS8000磁盘阵列可以提供4路SMP处理能力,4个4Gbps的FC端口和4.9百万IOps能力和256GB的cache容量。在这种应用背景下,存储系统大多使用匹配相应业务量需求的磁盘阵列,而较少使用高性能计算领域中常用的大规模分布式文件系统和独立的I/O处理服务器。由于这些磁盘阵列采用SCSI协议与服务器进行数据通讯,因此使用主机上的文件系统,甚至数据库都可以方便地直接管理和使用这些块设备。 3. 大规模网络信息服务提供商

互联网络的蓬勃发展,人们的工作生活越来越离不开大量信息的支持,例如更多的企业依赖电子商务模式进行商品贸易,又如更多普通人能够制作反映各自生活的影像资料,并通过网络广泛传播,这一切运作都离不开网络信息服务商,例如亚马逊、雅虎和新浪等,它们为百万以上的用户提供高效的包括信息发布、电子邮件、视频点播和电子商务等信息服务,显然大量的业务和用户数据是这些企业赖以生存的根本。

很多网络信息服务商需要构建大规模存储系统以支持日常的业务需要,这种存储系统有别于上述两种类型的存储系统。与一般企业级数据中心相比,他们往往采用基于IP网络的基于成百上千结点的存储集群,运行更加复杂的应用程序,为上万个用户提供并发基于Web的各种服务;与高性能计算领域相比,每个结点是一台普通的商用服务器甚至就是PC级主机,具有独立的处理器、内存和磁盘,所有结点通过商用交换机互联,因此整体硬件价格可

以维持在一个较低的水平,具有更高的性能/价格比。另一个显著的特点是,他们的应用往往建立应用级的存储集群,也就是这种集群结构是基于特定的应用,而不是构建通用分布式文件系统,例如构建上百个结点的邮件集群,或者如Google一样,建立面向搜索服务的应用集群系统。而且在这些系统之中,单部件的失效率远远大于高性能计算领域的集群系统,但通过廉价部件的冗余技术提高系统的可用性。

1.4 存取路径和接口

存取接口对于存储系统具有重要的意义,它能够在操作语义上面抽象和规范出存储系统的行为,一方面把不同存储设备系统通过统一的接口集成起来,为存储虚拟化提供条件;另一方面能够让应用程序对于存储设备的访问是透明的,不必了解设备的特殊性。

而存取路径是数据和命令在存储设备和系统内的物理和逻辑移动路线,它展示了存储系统内各个部件相互协调工作的实际过程,也是对于存储系统设计与分析必不可少的方法。

1.4.1 存取接口

1. 块级接口

对于存储空间的组织,线性编址是最基础、最方便的组织方式,线性空间中的每一个数字对应一个唯一的存储单元地址,那么对于地址的寻址操作对应于线性空间中的数值操作。如果每个存储单元都是一个字节,那么最大的存储空间就是地址空间大小;而如果每个存储单元都具有相同的数据块,那么最大的存储空间就是存储空间大小和块大小的乘积。当请求要求特定存储单元中的数据时,只需知道该存储单元的地址就可以唯一定位该存储单元,从而可以方便的存取相应存储单元中的数据。

现代计算机中内存空间一般都是按照字节编址,目前物理内存一般为几个GB到几十个GB,其需要的地址通过5个字节就可以表示了。事实上处理器位长和字节的乘积就是理论上处理器直接寻址空间的最大尺度,如果考虑到指令中不仅包括地址内容,还要包括指令编码,实际的直接寻址空间将远远小于上述最大寻址范围。因此指令的直接寻址范围显然受到CPU字长的限制。

外部存储系统有比内存地址更大的存储空间,远远超过处理器指令直接寻址的范围。必须使用间接寻址扩充处理器寻址的空间。例如使用数据块的概念实现二级间接寻址,对于由数据块为单位组成的存储空间,数据的地址由块地址和块内偏移决定,块内地址可以是一个独立的线性空间,所以块地址和块内地址这两项都可以用数字表示。通过这种方式使得处理器的寻址空间增大。间接寻址往往使用特殊的寻址操作或者直接由硬件实现,操作可以通过程序结合相应数据结构(必须有两级地址信息)共同完成。理论上这种间接寻址的概念可以无限扩展到多级,如果每级的地址空间都是N,那么m级后,地址空间可以增加到N的m次方。

一个基于固定块的线性地址空间给存取操作带来极大的方便,上层看到的就是一段连续的地址构成的存储空间视图。并且由于每个块在逻辑上是独立无关的,所有块逻辑上没有什么差别。这有效地屏蔽了底层物理存储设备的细节,对于上层程序而言对于线性空间的操作就是对于实际物理设备的操作。在存储系统中往往把这个逻辑地址称为LBA(Logical Block Address)。但逻辑结构并不是真正物理数据存放结构,数据存储的物理介质还是以磁盘为主的存储设备,因此必须建立数据逻辑组织结构到磁盘物理结构的映射,并且这种映射应该是高效和可靠的。由于物理磁盘组织结构由磁道、扇区和柱面等构成,而设备驱动程序对于磁盘操作的接口应该是逻辑块,所以这一映射是由磁盘驱动器完成。事实上这一映射关系通常

由物理存储驱动器固件(firmware)完成的,当某一物理扇区失效时,firmware会把逻辑地址重新映射到一个空余的新扇区,而上层程序完全不知道这个改变。

在存储系统中,存储设备提供的线性空间也往往被称为逻辑卷,它是对于物理磁盘提供线性存储空间的一种抽象,文件系统将其视为有边界的、由固定大小块组成的、可随机存取的存储空间。事实上一个逻辑卷可以映射到多个物理设备的物理空间(如磁盘阵列),或者一个物理设备包含多个逻辑卷(在一个磁盘上建立多个分区),并且逻辑卷中的块大小可以和物理设备的物理块大小不同,卷管理器将这些逻辑块映射到物理存储介质上的物理块。

传统文件系统中,使用分区的概念把磁盘提供的线性存储空间分割成若干用户可见的逻辑空间。事实上,当操作系统格式化磁盘等块设备时,就在上面建立了可操作和管理的线性地址空间,其空间大小对应着分区大小。一旦分区建立,系统能很难在线的对分区进行修改,例如扩容等。逻辑卷管理器的引入,可以在线的进行块地址空间的合并、重映射和减小操作。

正是因为基于块的线性存储空间的逻辑简单性和通用性。块接口是当前存储系统,特别是底层存储设备的基本操作语义,为上层提供简单的视图。而当前实际系统中,最为流行和常用的块接口协议为小型计算机系统接口SCSI协议族。SCSI通常用来连接外围存储设备和前端计算机,它的数据传输是以块方式进行。SCSI起初由Shugart Associates和NCR公司于1981年开发,作为磁盘控制器接口的一部分,称作SASI。这个规范被提交给ANSI X3T9以后,ANSI X3T9委员会对此进行了进一步地发展,并改名为SCSI,此后,ANSI X3T9委员会继续对它进行开发,直到1986年6月,SCSI变成了ANSI的官方标准。自那以后,ANSI X3T9委员会仍然不断地完善SCSI规范。SCSI-1是最初版本的SCSI,具有8位总线,数据传输率为40 Mbps(5MB/s),它为磁盘、磁带和其他的外围设备定义物理接口、传输协议和标准命令;SCSI-2 是基于CCS的SCSI-1改进版本,增加了多线程命令,更多的设备命令和传输协议清除功能,由18条基本命令组成,传输率和带宽都得到增强。Fast SCSI 的传输率为10 MB/s,当采用16位总线时,传输率为20 MB/sec(Fast-Wide SCSI)。由Adaptec及SCSITA于1992年制定具有首个并行接口的SCSI-3,进一步提高的带宽(Ultra-2/Ultra-160/Ultra-320),可以把物理层、通讯协议和SCSI命令集单独分开,例如分别定义了硬盘命令(SBC:Block Command)、磁带设备的流命令(SSC)和多媒体命令(MMC)等命令级。SCSI-3通过即插即用(plug-and-play)解决了以前版本中终结器和延迟问题。由ANSI INCITS T10技术委员会开发的串行SCSI命令(SAS:Serial Attached SCSI)提供更快速的传输速度以及更简单的配置,采用点对点的连接,并允许多个端口集成到单个控制器,第二代SAS为磁盘阵列中的每个驱动器提供了600MB/s的传输速度。

2. 文件存取接口

如果说线性地址空间的整数地址方便计算机处理,那么对于应用而言,特别是对于人类而言,无意义特别是具有很大位数的数值是难以理解和记忆的。就像人类习惯用一个名词去定义一些具有丰富内涵的概念,应用程序和用户也往往给数据集取一个名字以方便的识别。而这个数据集在文件系统中以文件的方式存在。文件作为一组具有逻辑关联的数据的集合,是数据的逻辑容器。因此文件也可以是一个单独的数据寻址单元,而文件内的数据组织可以是线性的地址空间就像块内地址一样,不同的是文件内部字段之间往往是一种逻辑关联,因此对于文件而言,“理解”数据是非常重要的,事实上对于文件数据的“理解”是通过应用程序来执行的。不同应用程序操作的文件往往具有特定的格式,这种格式往往决定了在形式上相同的数据之间的语义差别,因此从另一个角度看格式也应该是文件属性的一部分,通过文件名显示说明其格式类型能够更好的反映文件内部数据的语义含义,实际系统中往往通过文件的后缀表达其文件格式类型。例如可以通过一个媒体播放器播放一个以wmv为后缀的流媒体文件。

仅通过文件名管理文件是低效率的,一方面无法反映文件之间的关系;另一方面如果文

件很多的话,也是难以管理的。就像人类习惯把一系列概念进行分类和组织一样。如果说文件是数据的一个基本集合,那么通过引入目录的概念对大量文件进行归类,往往具有某种相关性的文件存放在特定的目录,目录之间也可以嵌套。文件和目录一起构成了命名空间,而这种命名空间显然具有树形的特点。文件系统以树形结构的方式对文件和目录进行组织,其本质是用文件名(路径也是文件名字的一部分)确定文件的存储位置,文件空间到底层线性块地址空间的转化就成了文件系统必须完成的一项任务。文件系统对于上层应用提供基于文件目录的树形存储空间结构,然后把每个文件目录映射到下层存储设备的物理存储空间,同时提供对两层存储空间的管理和操作。

由于文件名的长度在实际的文件系统中都有限制,例如windows系统中文件名不能超过255个字符;另一方面,一个文件包含的数据集往往具有多种含义,这些又很难仅通过文件名表达。因此通过文件名对于数据集的含义进行描述是有限制的。

现在大部分文件系统可以为文件定义许多静态属性,如创建时间、文件大小和所有者等,但仍然无法描述文件的动态属性,例如,无法统计特定用户在特定时段内存取次数最多的文件。对于这些关系存储性能优化的动态属性统计和表达,现在的文件系统往往无能为力。另一方面,在现代文件系统中,文件寻址和表达文件含义的属性没有直接关系,系统主要仍然是通过绝对地址在文件目录树中进行寻址。由于用户往往按照数据集的含义记忆文件,随着系统中文件的增加和每个文件内涵的增加,用户越来越难以确定自己所需文件所在的位置,很多情况下依赖于对于文件目录树的关键字搜索。因此如何对于海量文件进行高效组织和基于内容的寻址是当前文件系统研究的重点之一。

文件目录是一种对大量数据集及其相关性的组织抽象,文件目录结构是存储系统展现给用户或者上层应用的逻辑视图,和线性块存储空间相比,一方面,树形的文件目录存储空间更容易让人们理解不同数据集之间的组织关系,方便对于数据集的组织和管理;另一方面应用程序或者用户对于文件和目录的操作无需了解所在存放存储设备的特性,也无需关心具体的存取过程。因此文件目录抽象容易被用户理解和操作。

另外,由于在文件目录树中两个子树在路径上是逻辑无关的,因此可以把多个子树通过挂接到所设置连接点构造成一个更大的逻辑树,这一特性使得文件目录树非常方便扩展,例如NAS存储系统通过输出的文件目录结构给用户使用。

IEEE制定的POSIX(Portable Operating System Interface)是应用程序访问文件系统的API标准,也就是前面提到的文件级存取接口及其操作集。POSIX虽然最早为UNIX操作系统设计,但目前几乎所有的文件系统都遵守这一标准或者能够与之兼容。最早的POSIX标准制定于1988年,之后又修订过多次,最新的标准为(IEEE Std 1003.1-2008),其中对于文件和目录操作部分几乎没有改动,这也成为事实上的标准文件操作语义集。

3. 文件地址到块地址的映射 上面两节,分别讨论了块接口和文件接口。存储设备通过块接口给上层展现出基于块的线性地址空间;而文件目录结构给应用和用户提供了一种具有树结构的文件组织视图。事实上经常认为文件目录接口为高层存取语义,而数据块接口为低层存取语义,相对于数据块存取语义,文件目录存取语义具有更丰富的内涵,更容易让人操作和理解。现在的问题是如何实现文件逻辑地址到存储设备物理地址的对应关系和具体操作过程。

文件系统对于文件的物理存取由两次映射完成,一是从用户的文件视图到文件系统的逻辑卷,二是从逻辑卷到具体的物理存储设备。这种映射是建立在系统的核心数据结构和相关的存取操作基础之上的,核心数据结构构成了系统的静态组织结构,包括文件分区表、MFT表、i节点、super 节点等等,每种文件系统可能都有不同的结构方式。另一个方面是加之在这些数据结构上操作,例如从inode结构中获取每个文件数据块的磁盘逻辑地址,又如文件通过系统调用方式存取文件分区表。通过这些核心数据结构和相应的操作完成文件目录到


第一章 海量网络存储系统概述(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:会计基础教案4-1 企业主要经济业务核算 - 资金筹集业务的核算

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: