聊聊云计算的鼻祖 – 存储
印度教里有三大神:梵天(Brahma)、毗湿奴(Vishnu)和湿婆(Shiva)。云计算最基础的IaaS里也有三大组件:计算,存储和网络。其中存储应该是普通
点击蓝字关注,一起探讨更好玩的IT世界 印度教里有三大神:梵天(Brahma)、毗湿奴(Vishnu)和湿婆(Shiva)。云计算最基础的IaaS里也有三大组件:计算,存储和网络。其中存储应该是普通用户知晓度最高的。十年前我们在讲云计算的时候,大家最自然的反应就是云存储。 存储是云计算里面最早,也是最被大家广泛使用的产品。最大的公有云服务商AWS在2006年3月最早发布的云计算服务:简单存储服务(Simple Storage Service, S3),就是云存储产品,今年也是S3发布的15周年,Amazon也在搞庆祝活动。除此之外,2005年成立的Box,2007年成立的Dropbox,2011年苹果推出的iCloud, 2012年百度推出的百度网盘,都是存储相关的产品。 今天我从应用场景和技术的角度,整理一下云计算里和存储相关的产品以及和云存储相关的新技术。 存储 存储在计算机世界里一直都是最重要的内容之一,作为存放信息的源头,存储的介质一直都在不断地进步,从图灵机时代使用的打孔的纸带,到磁带再到5英寸/3.5英寸的磁盘,然后发展到CD/VCD/DVD/蓝光,再到HDD硬盘/Flash/SSD等,存储的容量越来越大,性能越来越高,价格也越来越低,这样才能支持今天云计算和大数据的快速发展。 传统服务器端存储技术主要分为3种:存储区域网络(Storage Area Network,SAN),网络接入存储(Network Attached Storage,NAS)以及直连式存储(Direct Attached Storage,DAS)。这三种存储方式都是外挂的存储,DAS是直接通过小型计算机系统接口(Small Computer System Interface, SCSI)或光纤(Fiber Channel)直接连接到服务器上,SAN是通过局域网络的方式连接到服务器上,可以按照协议的不同分为FC-SAN和IP-SAN,一个是用光纤,另外一个是TCP/IP协议。NAS是一套完整的文件服务器,通过IP协议向应用提供文件数据。 存储作为云计算的重要服务,一般不按照存储介质来进行分类,也不按照存储的技术分类,而按照应用类型进行分类,包括对象存储(Object Storage),块存储(Block Storage)和文件存储(File Storage)。从应用的角度看,DAS和SAN主要提供的是块存储,而NAS则是文件存储,对象存储则是随着云计算出现的新架构,为应用提供“对象”的访问。 存储的好坏主要通过读写的性能,即最大每秒读写次数(IOPS),最大吞吐量以及数据的持久性(Durability)进行评估。每秒最大读写次数指对于特定卷或者特定的实例能支持的最大的读写IO次数,最大吞吐量是指每秒最大能读写的数据量,这两个指标都和卷的容量相关,当然与存储的介质,连接的接口以及存储的网络架构也相关。比如SSD的性能就比传统的硬盘要快得多,DAS的读取速度要远超NAS。 数据持久性则与存储介质和冗余备份的架构相关,比如磁盘阵列(Raid)的存储架构就比单个磁盘的持久性要好,区域冗余的架构就比本地冗余的架构可靠性要高。一般块存储的持久性只有99.8% - 99.9%左右,而云上的对象存储最高可以达到16个9的数据持久性。 云计算厂商会根据存储的不同的性能和持久性,设计不同的产品定价,根据容量大小和存储时间向客户收取费用。 NO.1 块存储(Block Storage) 块存储是直接访问存储的介质,比如硬盘。它把数据拆分为不同的块,每个数据块都有唯一的标识,然后通过一个逻辑编号寻找地址访问相应的块的内容。在云上这种存储主要用于虚拟机的持久化磁盘,比如AWS的弹性块存储(Elastic Block Store, EBS),或者是Azure的Disk Storage。 块存储在公有云上一般都是用SAN的架构实现的,当然私有云也有使用DAS架构的。块存储的访问都需要通过文件系统,或者通过数据库软件。它可以实现快速检索,分区,通过不同的操作系统进行访问。 块存储的类型一般和存储介质密切相关,云的供应商一般会根据最大的IOPS和最大吞吐量,以及数据量进行收费。此外不同的块存储也提供不同的持久性。让我们来看看AWS的7种块存储服务各项参数的比较。 微软的Azure在起名上则更加直接,提供高级SSD托管磁盘,标准SSD托管磁盘,标准HDD托管磁盘和超级磁盘(Ultra Disk),性能也各不相同。 NO.2 文件存储(File Storage) 文件存储是以文件夹或者目录结构存储的方式,可以通过文件路径和文件名进行访问。NAS一般都是文件存储系统,我们在Windows操作系统下一般可以通过“\\”进行网络访问,或者用盘符加路径的方式访问文件。 文件存储一般在块存储之上,通过文件系统进行管理,比如在Windows下经常看到的FAT或者NTFS系统,在Linux下的Ext4文件系统,或者MacOS下的APFS,这些不同的文件系统用于管理底层的块存储,对外提供结构化的树形的文件目录结构,供应用程序使用。 在云计算产品里,一般都需要通过网络访问文件存储,这样就需要使用网络访问的协议,比如Windows下的服务器消息块(Server Messaging Block, SMB)或者Linux下的网络文件系统(Network File System, NFS)进行文件的访问。 比如Amazon提供的弹性文件系统(Elastic File System, EFS)提供了4类文件系统,包括EFS标准存储(EFS Standard)和EFS标准低频访问存储(EFS Standard-IA),EFS单区域(EFS One Zone)和EFS单区域低频访问存储(EFS One Zone-IA)。 微软的Azure Files提供支持SMB/NFS协议的文件访问服务,包括4种不同类型的存储,分别是高级,事务优化,热存储和冷存储,此外在冗余上还提供5种类型:本地冗余(LRS),区域冗余(ZRS),异地冗余(GRS),只读异地冗余(RA-GRS)以及异地区域冗余(GZRS)。主要是在不同区域之间的备份数量,提供从99.999999999% (11个9)到99.99999999999999% (16个9)不等的数据持久性。 比如下图就是异地区域冗余的例子,在本区域的三个可用区(AZ)里各有个副本,在次要区域的其中一个可用区(AZ)里有三个副本,从而达到了惊人的每年16个9的数据持久性,也就是10万兆个文件一年最多丢失一个。 NO.3 对象存储(Object Storage) 刚才我提到的S3,Dropbox,Box,苹果的iCloud,百度网盘提供的都是对象存储。这种存储是云计算提供的最广泛的存储类型,甚至有人把对象存储直接叫做云存储。一般文档云计算存储技术,照片,视频等文件都是以对象存储的形式存储在云上的。 所谓的对象存储,是一种完全不同于DAS,NAS或者SAN的存储架构。它用了一种全新的分布式存储架构,用于处理大量的非结构化数据。存储操作的主要是对象,各种非结构化的数据以对象的形式组织,还存储这些对象的描述信息,我们把它叫做元数据(Metadata)。对象存储架构通过分布式的服务器存储元数据和对象数据,能够简单地通过PUT/GET/DELETE等API方式进行获取。我们通常叫的网盘都是对象存储。 这种对象存储没有目录层次的结构,只有存储桶(Bucket)的概念,对象被放在存储桶里,每个对象都包含唯一的Id,数据和元数据。这种方式无法对文件的某部分进行修改,只能整个下载,上传或者删除。 Amazon S3和微软的Azure Blob存储就是对象存储。按照存储介质的不同和访问频率的不同,一般对象存储还分为不同的产品,比如Amazon的S3分为标准,智能,标准低频访问(Standard – IA), 单区域低频访问(One Zone – IA), Glacier备份以及Glacier深度备份一共六种不同的产品。在冗余上,S3也支持多种冗余模式,通过S3 Replication,实现跨区域复制(Cross-Region Replication, CRR), 同区域复制(Same-Region Replication, SRR),还可以实现复制时间的控制(Replication Time Control, RTC)。 Azure的Blob存储提供4种类型的存储:高级,热,冷和备份,在冗余方式上,除了和Azure Files相同的5种冗余:本地冗余(LRS),区域冗余(ZRS),异地冗余(GRS),只读异地冗余(RA GRS)以及异地区域冗余(GZRS)之外,还有只读异地区域冗余(RA GZRS)。 存储发展的趋势 公有云上存储相关的产品在私有云和混合云里也得到了大量的应用,此外随着边缘计算的快速发展,在边缘上也在不断延伸。比如AWS的S3 Outposts就是一个典型的混合云存储的场景,Azure的NetApp Files也是一个基于NetApp实现的企业级NAS文件存储系统,可以用在混合云和公有云的场景里。 尤其是在混合云上,存储的技术有着突飞猛进的发展,比如存储阵列,软件定义存储,超融合等等,这些技术将会和公有云的厂商和平台进行集成,满足客户对存储的性能,备份和灾难恢复,以及合规的要求。 从技术的角度而言,涌现出了一些全新的存储技术,比如容器原生存储(Container Native Storage, CNS),专门为容器设计的存储,能够和容器技术深度集成,和硬件无关。在具体SSD技术领域,有NVMe-oF(通过光纤的NVMe存储接口规范),能够大量提高SSD的性能,用来构建高速FC-SAN。还有基础设施级别的软件定义存储(Infrastructure SDS),用于在数据中心定义存储。支持纠删码(Erasure Coding)的硬盘等等,这些新技术的涌现将会推动云存储的进一步发展。 总结 今天我介绍了传统的三种存储架构DAS,SAN和NAS,以及从云计算的应用角度分类的对象存储,块存储和文件存储。不同的存储在不同公有云上都有对应的产品,比如AWS和Azure都提供了三种类型的存储,为应用,虚拟机提供支持。最后我提了几种存储里的新技术,这些技术将会进一步推进云计算存储的发展。 希望这篇科普入门文章对大家有所帮助。 曾今,伏案只识技术世界 而后,抬头遍历创业之艰 现如今 不惑之年 以创业者眼光,再探技术世界 (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |