存储系统发展历史

计算机的外部存储系统如果从1956年IBM制造出第一块硬盘算起,发展至今已经有半个多世纪了。在这半个多世纪里,存储介质和存储系统都取得了很大的发展和进步。

早期的数据存储一般以磁盘阵列等设备为外设,围绕服务器通过直连的方式进行存储。而近年来,随着网络技术的发展,服务器的数据读取范围也得到了很大拓展,逐渐实现了现在的网络存储。相较于传统存储来说,网络存储的优势更加突出,其不但安装便捷、成本低廉,并且还能够大规模的拓展存储设备,从而有效满足了海量数据存储对存储空间的需求。不过网络存储对网络资源的消耗极大,这是一项难题,为此,后来又逐渐出现了SAN存储架构。

传统存储系统

目前传统存储系统主要的3种架构,包括DAS、NAS和SAN。

1.DAS(Direct-AttachedStorage,直连式存储)

顾名思义,这是一种通过总线适配器直接将硬盘等存储介质连接到主机上的存储方式,在存储设备和主机之间通常没有任何网络设备的参与。可以说DAS是最原始、最基本的存储架构方式,在个人电脑、服务器上也最为常见。DAS的优势在于架构简单、成本低廉、读写效率高等;缺点是容量有限、难于共享,从而容易形成“信息孤岛”。

2.NAS(Network-AttachedStorage,网络存储系统)

NAS是一种提供文件级别访问接口的网络存储系统,通常采用NFS、SMB/CIFS等网络文件共享协议进行文件存取。NAS支持多客户端同时访问,为服务器提供了大容量的集中式存储,从而也方便了服务期间的数据共享。

3.SAN(StorageAreaNetwork,存储区域网络)

通过光纤交换机等高速网络设备在服务器和磁盘阵列等存储设备间搭设专门的存储网络,从而提供高性能的存储系统。

SAN与NAS的区别,在于其提供块(Block)级别的访问接口,一般并不同时提供一个文件系统。通常情况下,服务器需要通过SCSI等访问协议将SAN存储映射为本地磁盘、在其上创建文件系统后进行使用。目前主流的企业级NAS或SAN存储产品一般都可以提供TB级的存储容量,高端的存储产品也可以提供高达几个PB的存储容量。

分布式存储系统

大数据导致了数据量的爆发式增长,传统的集中式存储(如NAS或SAN)在容量和性能上都无法较好地满足大数据的需求。因此,具有优秀的可扩展能力的分布式存储成为大数据存储的主流架构方式。分布式存储多采用普通的硬件设备作为基础设施,因此,单位容量的存储成本也得到大大降低。另外,分布式存储在性能、维护性和容灾性等方面也具有不同程度的优势。

分布式存储系统需要解决的关键技术问题包括诸如可扩展性、数据冗余、数据一致性、全局命名空间缓存等,从架构上来讲,大体上可以将分布式存储分为C/S(Client Server)架构和P2P(Peer-to-Peer)架构两种。当然,也有一些分布式存储中会同时存在这两种架构方式。

分布式存储面临的另外一个共同问题,就是如何组织和管理成员结点,以及如何建立数据与结点之间的映射关系。成员结点的动态增加或者离开,在分布式系统中基本上可以算是一种常态。

EricBrewer于2000年提出的分布式系统设计的CAP理论指出,一个分布式系统不可能同时保证一致性、可用性和分区容忍性(Partitiontolerance)这3个要素。因此,任何一个分布式存储系统也只能根据其具体的业务特征和具体需求,最大地优化其中的两个要素。当然,除了一致性、可用性和分区容忍性这3个维度,一个分布式存储系统往往会根据具体业务的不同,在特性设计上有不同的取舍,比如,是否需要缓存模块、是否支持通用的文件系统接口等。

云存储

云存储是由第三方运营商提供的在线存储系统,比如面向个人用户的在线网盘和面向企业的文件、块或对象存储系统等。云存储的运营商负责数据中心的部署、运营和维护等工作,将数据存储包装成为服务的形式提供给客户。云存储作为云计算的延伸和重要组件之一,提供了“按需分配、按量计费”的数据存储服务。因此,云存储的用户不需要搭建自己的数据中心和基础架构,也不需要关心底层存储系统的管理和维护等工作,并可以根据其业务需求动态地扩大或减小其对存储容量的需求。

云存储通过运营商来集中、统一地部署和管理存储系统,降低了数据存储的成本,从而也降低了大数据行业的准入门槛,为中小型企业进军大数据行业提供了可能性。比如,著名的在线文件存储服务提供商Dropbox,就是基于AWS(AmazonWeb Services)提供的在线存储系统S3创立起来的。在云存储兴起之前,创办类似于Dropbox这样的初创公司几乎不太可能。

云存储背后使用的存储系统其实多采用分布式架构,而云存储因其更多新的应用场景,在设计上也遇到了新的问题和需求。比如,云存储在管理系统和访问接口上大都需要解决如何支持多租户的访问方式,而多租户环境下就无可避免地要解决诸如安全、性能隔离等一系列问题。另外,云存储和云计算一样,都需要解决的一个共同难题就是关于信任(Trust)的问题——如何从技术上保证企业的业务数据放在第三方存储服务提供平台上的隐私和安全,的确是一个必须解决的技术挑战。

将存储作为服务的形式提供给用户,云存储在访问接口上一般都会秉承简洁易用的特性。比如,亚马逊的S3存储通过标准的HTTP协议、简单的REST接口进行存取数据,用户分别通过Get、Put、Delete等HTTP方法进行数据块的获取、存放和删除等操作。出于操作简便方面的考虑,亚马逊S3服务并不提供修改或者重命名等操作;同时,亚马逊S3服务也并不提供复杂的数据目录结构而仅仅提供非常简单的层级关系;用户可以创建一个自己的数据桶(bucket),而所有的数据则直接存储在这个bucket中。另外,云存储还要解决用户分享的问题。亚马逊S3存储中的数据直接通过唯一的URL进行访问和标识,因此,只要其他用户经过授权便可以通过数据的URL进行访问。

存储虚拟化是云存储的一个重要技术基础,是通过抽象和封装底层存储系统的物理特性,将多个互相隔离的存储系统统一化为一个抽象的资源池的技术。通过存储虚拟化技术,云存储可以实现很多新的特性。比如,用户数据在逻辑上的隔离、存储空间的精简配置等。

推荐内容