数据存储对象包括数据流在加工过程中产生的临时文件或加工过程中需要查找的信息。数据以某种格式记录在计算机内部或外部存储介质上。数据存储要命名,这种命名要反映信息特征的组成含义。数据存储反映系统中静止的数据,表现出静态数据的特征。
存储器是计算机系统的重要资源之一,计算机系统的存储器分为两类:主存和辅助存储器。空间分配是指对主存和辅助存储器空间的分配。主存和外存空间分配很多相同之处:提高空间利用率;都有空间分配记录表;提高存取速度。
简介数据存储对象包括数据流在加工过程中产生的临时文件或加工过程中需要查找的信息。数据以某种格式记录在计算机内部或外部存储介质上。数据存储要命名,这种命名要反映信息特征的组成含义。数据流反映了系统中流动的数据,表现出动态数据的特征;数据存储反映系统中静止的数据,表现出静态数据的特征。1
存储器是计算机系统的重要组成部分。对于通用计算机而言,存储层次至少应具有三级:最高层为 CPU 寄存器,中间为主存,最底层是辅存。空间分配是指对主存和辅存空间分配。主存空间分配是指根据一定规则和策略将主存空间分配给进程或程序;外存空间分配则是按照一定策略将将文件存储到外存中。
存储介质磁盘和磁带都是常用的存储介质。数据存储组织方式因存储介质而异。在磁带上数据仅按顺序文件方式存取;在磁盘上则可按使用要求采用顺序存取或直接存取方式。数据存储方式与数据文件组织密切相关,其关键在于建立记录的逻辑与物理顺序间对应关系,确定存储地址,以提高数据存取速度。
三类存储方式DASDAS(Direct Attached Storage)直接附加存储方式与我们普通的PC存储架构一样,外部存储设备都是直接挂接在服务器内部总线上,数据存储设备是整个服务器结构的一部分。2
DAS存储方式主要适用以下环境:
1)小型网络
因为网络规模较小,数据存储量小,且也不是很复杂,采用这种存储方式对服务器的影响不会很大。并且这种存储方式也十分经济,适合拥有小型网络的企业用户。
2)地理位置分散的网络
虽然企业总体网络规模较大,但在地理分布上很分散,通过SAN或NAS在它们之间进行互联非常困难,此时各分支机构的服务器也可采用DAS存储方式,这样可以降低成本。
3)特殊应用服务器
在一些特殊应用服务器上,如微软的集群服务器或某些数据库使用的原始分区,均要求存储设备直接连接到应用服务器。
4)提高DAS存储性能
在服务器与存储的各种连接方式中,DAS曾被认为是一种低效率的结构,而且也不方便进行数据保护。直连存储无法共享,因此经常出现的情况是某台服务器的存储空间不足,而其他一些服务器却有大量的存储空间处于闲置状态却无法利用。如果存储不能共享,也就谈不上容量分配与使用需求之间的平衡。
DAS结构下的数据保护流程相对复杂,如果做网络备份,那么每台服务器都必须单独进行备份,而且所有的数据流都要通过网络传输。如果不做网络备份,那么就要为每台服务器都配一套备份软件和磁带设备,所以说备份流程的复杂度会大大增加。
想要拥有高可用性的DAS存储,就要首先能够降低解决方案的成本,例如:LSI的12Gb/s SAS,在它有DAS直联存储,通过DAS能够很好的为大型数据中心提供支持。对于大型的数据中心、云计算、存储和大数据,所有这一切都对DAS存储性能提出了更高的要求,云和企业数据中心数据的爆炸性增长也推动了市场对于可支持更高速数据访问的高性能存储接口的需求,因而LSI 12Gb/s SAS正好是能够满足这种性能增长的要求,它可以提供更高的IOPS和更高的吞吐能力,12Gb/s SAS提高了更高的写入的性能,并且提高了RAID的整个综合性能。
与直连存储架构相比,共享式的存储架构,比如SAN(storage-area network)或者NAS(network-attached storage)都可以较好的解决以上问题。于是乎我们看到DAS被淘汰的进程越来越快了。可是到2012年为止,DAS仍然是服务器与存储连接的一种常用的模式。事实上,DAS不但没有被淘汰,近几年似乎还有回潮的趋势。[1]
NASNAS(Network Attached Storage)数据存储方式全面改进了以前低效的DAS存储方式。它采用独立于服务器,单独为网络数据存储而开发的一种文件服务器来连接所存储设备,自形成一个网络。这样数据存储就不再是服务器的附属,而是作为独立网络节点而存在于网络之中,可由所有的网络用户共享。
NAS的优点:
1)真正的即插即用
NAS是独立的存储节点存在于网络之中,与用户的操作系统平台无关,真正的即插即用。
2)存储部署简单
NAS不依赖通用的操作系统,而是采用一个面向用户设计的,专门用于数据存储的简化操作系统,内置了与网络连接所需要的协议,因此使整个系统的管理和设置较为简单。
3)存储设备位置非常灵活
4)管理容易且成本低
NAS数据存储方式是基于现有的企业Ethernet而设计的,按照TCP/IP协议进行通信,以文件的I/O方式进行数据传输。
NAS的缺点:
(1)存储性能较低 (2)可靠度不高
SAN1991年,IBM公司在S/390服务器中推出了ESCON(Enterprise System Connection)技术。它是基于光纤介质,最大传输速率达17MB/s的服务器访问存储器的一种连接方式。在此基础上,进一步推出了功能更强的ESCON Director(FC SWitch),构建了一套最原始的SAN系统。
SAN(Storage Area Network)存储方式存储方式创造了存储的网络化。存储网络化顺应了计算机服务器体系结构网络化的趋势。SAN的支撑技术是光纤通道(FC Fiber Channel)技术。它是ANSI为网络和通道I/O接口建立的一个标准集成。FC技术支持HIPPI、IPI、SCSI、IP、ATM等多种高级协议,其最大特性是将网络和设备的通信协议与传输物理介质隔离开,这样多种协议可在同一个物理连接上同时传送。
SAN的硬件基础设施是光纤通道,用光纤通道构建的SAN由以下三个部分组成:
1)存储和备份设备:包括磁带、磁盘和光盘库等。
2)光纤通道网络连接部件:包括主机总线适配卡、驱动程序、光缆、集线器、交换机、光纤通道和SCSI间的桥接器
3)应用和管理软件:包括备份软件、存储资源管理软件和存储设备管理软件。
SAN的优势:
1)网络部署容易;
2)高速存储性能。因为SAN采用了光纤通道技术,所以它具有更高的存储带宽,存储性能明显提高。SAn的光纤通道使用全双工串行通信原理传输数据,传输速率高达1062.5Mb/s。
3)良好的扩展能力。由于SAN采用了网络结构,扩展能力更强。光纤接口提供了10公里的连接距离,这使得实现物理上分离,不在本地机房的存储变得非常容易。
三种存储方式比较存储应用最大的特点是没有标准的体系结构,这三种存储方式共存,互相补充,已经很好满足企业信息化应用。
从连接方式上对比,DAS采用了存储设备直接连接应用服务器,具有一定的灵活性和限制性;NAS通过网络(TCP/IP,ATM,FDDI)技术连接存储设备和应用服务器,存储设备位置灵活,随着万兆网的出现,传输速率有了很大的提高;SAN则是通过光纤通道(Fibre Channel)技术连接存储设备和应用服务器,具有很好的传输速率和扩展性能。三种存储方式各有优势,相互共存,占到了磁盘存储市场的70%以上。SAN和NAS产品的价格仍然远远高于DAS.许多用户出于价格因素考虑选择了低效率的直连存储而不是高效率的共享存储。
客观的说,SAN和NAS系统已经可以利用类似自动精简配置(thin provisioning)这样的技术来弥补早期存储分配不灵活的短板。然而,之前它们消耗了太多的时间来解决存储分配的问题,以至于给DAS留有足够的时间在数据中心领域站稳脚跟。此外,SAN和NAS依然问题多多,至今无法解决。
主存空间分配方法直接存储分配方式直接存储分配方式要求存储器的可用空间已经确定,且确保各程序所用的地址之间互不重叠。缺点是用户感到不方便,存储器的利用率也不高。
静态存储分配方式静态存储分配方式中。在程序被装入、连接时,才确定它们在主存中的相应位置(物理地址)。系统必须分配其要求的全部存储空间.否则不能装入该用户程序。程序将占据着分配给它的存储空间直到程序结束。该存储空间的位置固定不变,也不能动态地申请存储空间。这种方式无法实现用户对存储空间的动态扩展,而且也不能有效地实现存储器资源的共享。
动态存储分配方式动态存储分配方式是不一次性将整个程序装入到主存中。可根据执行的需要,部分地动态装入。同时,在装入主存的程序不执行时,系统可以收回该程序所占据的主存空间。再者,用户程序装入主存后的位置,在运行期间可根据系统需要而发生改变。此外,用户程序在运行期间也可动态地申请存储空间以满足程序需求。由此可见,动态存储分配方式在存储空间的分配和释放上,表现得十分灵活,现代的操作系统常采用这种存储方式。
外存空间分配方式连续分配方式连续分配(Continuous Allocation)要求为每一个文件分配一组相邻接的盘块。 一组盘块的地址定义了磁盘上的一段线性地址。例如,第一个盘块的地址为 b,则第二个盘块的地址为b+1,第三个盘块的地址为 b+2……。通常,它们都位于一条磁道上,在进行读/写时,不必移动磁头,仅当访问到一条磁道的最后一个盘块后,才需要移到下一条磁道,于是又去连续地读/写多个盘块。在采用连续分配方式时,可把逻辑文件中的记录顺序地存储到邻接的各物理盘块中,这样所形成的文件结构称为顺序文件结构,此时的物理文件称为顺序文件。这种分配方式保证了逻辑文件中的记录顺序与存储器中文件占用盘块的顺序的一致性。为使系统能找到文件存放的地址,应在目录项的“文件物理地址”字段中,记录该文件第一个记录所在的盘块号和文件长度(以盘块数进行计量)。
如同内存的动态分区分配一样,随着文件建立时空间的分配和文件删除时空间的回收,将使磁盘空间被分割成许多小块,这些较小的连续区已难于用来存储文件,此即外存的碎片。同样,我们也可以利用紧凑的方法,将盘上所有的文件紧靠在一起,把所有的碎片拼接成一大片连续的存储空间。例如,可以运行一个再装配例程(repack routine),由它将磁盘A 上的大量文件拷贝到一张软盘 B 或几张软盘(C,D,…)上,并释放原来的 A 盘,使之成为一个空闲盘。然后再将软盘 B(C,D,…)上的文件拷回 A 盘上。这种方法能将含有多个文件的盘上的所有空闲盘块都集中在一起,从而消除了外部碎片。但为了将外存上的空闲空间进行一次紧凑,所花费的时间远比将内存紧凑一次所花费的时间多得多。
链接分配如同内存管理一样, 连续分配所存在的问题就在于: 必须为一个文件分配连续的磁盘空间。如果在将一个逻辑文件存储到外存上时,并不要求为整个文件分配一块连续的空间,而是可以将文件装到多个离散的盘块中,这样也就可以消除上述缺点。在采用链接分配(Chained Allocation)方式时,可通过在每个盘块上的链接指针,将同属于一个文件的多个离散的盘块链接成一个链表,把这样形成的物理文件称为链接文件。3
由于链接分配是采取离散分配方式,消除了外部碎片,故而显著地提高了外存空间的利用率;又因为是根据文件的当前需要,为它分配必需的盘块,当文件动态增长时,可动态地再为它分配盘块,故而无需事先知道文件的大小。此外,对文件的增、删、改也十分方便。链接方式又可分为隐式链接和显式链接两种形式。
索引分配单级索引分配
链接分配方式虽然解决了连续分配方式所存在的问题,但又出现了下述另外两个问题:
(1) 不能支持高效的直接存取。 要对一个较大的文件进行直接存取, 须首先在 FAT 中顺序地查找许多盘块号。
(2) FAT 需占用较大的内存空间。由于一个文件所占用盘块的盘块号是随机地分布在FAT 中的, 因而只有将整个 FAT 调入内存, 才能保证在 FAT 中找到一个文件的所有盘块号。当磁盘容量较大时,FAT 可能要占用数兆字节以上的内存空间,这是令人难以接受的。4
事实上,在打开某个文件时,只需把该文件占用的盘块的编号调入内存即可,完全没有必要将整个 FAT 调入内存。为此,应将每个文件所对应的盘块号集中地放在一起。索引分配方法就是基于这种想法所形成的一种分配方法。它为每个文件分配一个索引块(表),再把分配给该文件的所有盘块号都记录在该索引块中,因而该索引块就是一个含有许多盘块号的数组。在建立一个文件时,只需在为之建立的目录项中填上指向该索引块的指针。图3示出了磁盘空间的索引分配图。
索引分配方式支持直接访问。当要读文件的第 i 个盘块时,可以方便地直接从索引块中找到第 i 个盘块的盘块号;此外,索引分配方式也不会产生外部碎片。当文件较大时,索引分配方式无疑要优于链接分配方式。
索引分配方式的主要问题是:可能要花费较多的外存空间。每当建立一个文件时,便须为之分配一个索引块,将分配给该文件的所有盘块号记录于其中。但在一般情况下,总是中、小型文件居多,甚至有不少文件只需 1~2 个盘块,这时如果采用链接分配方式,只需设置 1~2 个指针。如果采用索引分配方式,则同样仍须为之分配一索引块。通常是采用一个专门的盘块作为索引块,其中可存放成百个、甚至上千个盘块号。可见,对于小文件采用索引分配方式时,其索引块的利用率将是极低的。
多级索引分配
当 OS 为一个大文件分配磁盘空间时, 如果所分配出去的盘块的盘块号已经装满一个索引块时, OS 便为该文件分配另一个索引块, 用于将以后继续为之分配的盘块号记录于其中。依此类推,再通过链指针将各索引块按序链接起来。显然,当文件太大,其索引块太多时,这种方法是低效的。此时,应为这些索引块再建立一级索引,称为第一级索引,即系统再分配一个索引块,作为第一级索引的索引块,将第一块、第二块……等索引块的盘块号填入到此索引表中,这样便形成了两级索引分配方式。如果文件非常大时,还可用三级、四级索引分配方式。
混合索引分配方式
所谓混合索引分配方式,是指将多种索引分配方式相结合而形成的一种分配方式。例如,系统既采用了直接地址,又采用了一级索引分配方式,或两级索引分配方式,甚至还采用了三级索引分配方式。 这种混合索引分配方式已在 UNIX 系统中采用。 在 UNIX SystemⅤ的索引结点中, 共设置了13个地址项, 即iaddr(0)~iaddr(12), 如图所示。 在BSD UNIX的索引结点中,共设置了 13 个地址项,它们都把所有的地址项分成两类,即直接地址和间接地址。
本词条内容贡献者为:
王沛 - 副教授、副研究员 - 中国科学院工程热物理研究所