《云存储解析》一书作者张继平主编

云存储来自于云计算。

云计算:

云计算就是使计算能力可以像水、电和气一样的可以被用户所使用。说白了就是提供计算能力的按需服务。

即所说的弹性计算、按需计算和效用计算。

但是至今云计算并没有标准额定义,只是一些权威组织给出了自己的看法。包括美国国际标准和技术研究院(NIST)。

云计算在框架上包括四层:从上到下依次部署模型、服务模型、必要特性以及普遍特性。

部署模型分为:私有云、公有云、混合云和社区云。

服务模型分为:IaaS(Infrastructure as a Service)架构即服务、PaaS(Platform as a Service)平台即服务、SaaS(Software as a Service)软件即服务。

IaaS方面最著名的有亚马逊简易存储服务(Amazon S3)提供了web接口的应用,并可通过HTTP REST开发应用程序。(主要是数据存储、归档、备份服务)

SaaS主要是在线备份、云盘等等。如Evernote(中文版的是印象笔记)、Google Docs等。


必要特性分为:按需自服务、宽带网络访问(终端接入网络)、资源池化、快速弹性交付和可度量的服务。

普遍特性分为:大规模拓展、弹性计算环境(计算资源可以动态线性拓展)、同质化和跨地域分布(资源跨数据中心跨区域整合,同异地多活)、虚拟化(所请求的资源来自“云端”,用户不知道具体的物理位置)、SOA(面向服务的体系架构随业务的变化灵活地结合现有服务)、低成本、高安全(服务提供商从技术和安全两个方面入手)。

现代的存储技术发展:

磁带->磁盘->阵列->网格存储->集群技术、网格技术、分布式存储技术、虚拟化存储技术(云存储时代)

磁带是顺序存储设备,定位数据和读取数据慢。

磁盘的容量有限(最多3TB),速度也有限。

多级别的独立冗余磁盘阵列(RAID),将多个磁盘组合成大型的磁盘组。对多个磁盘并行读写,并加入了数据校验和备份容错。

云存储是服务+技术。目前提供的服务主要集中在IaaS和SaaS层。

存储的基本技术:


卷、RAID技术及LUN(逻辑单元号)


磁盘的使用分为“基本磁盘”和“动态磁盘”两类。


基本磁盘受26个英文字母的限制,但是A、B已经被软驱所占用了,所以盘符只有C-Z24个。在基本磁盘上只能建立4个主分区。


动态磁盘不收英文字母限制。用卷来命名。


主要区别是: 动态磁盘可以将多个物理磁盘组合成一个大的卷集,而基本磁盘只能在一个物理磁盘上创建分区。基本磁盘受分区表的限制,最多只能建立4个磁盘分区。动态磁盘可以容纳4个以上的卷,卷的相关信息不存在放在分区表中,而是在卷之间进行复制,因此提高了容错能力。


RAID技术将一个个独立的磁盘以不通的组合方式形成了一个逻辑盘,提高了磁盘读取的性能和数据的安全。


RAID0:条带化可并行读写,但是不提供数据冗余保护,磁盘利用率100%。


RAID1:镜像,将数据完全一致的写到两个磁盘,磁盘利用率50%。


RAID5:是RAID0和RAID1的折中。既能并行读写也提供数据冗余保护。(有一个校验位P,随机的分不到各个磁盘中)


RAID10:是RAID0+RAID1,先镜像后条带化,磁盘利用率50%。


JBOD:简单磁盘捆绑,Span.简单的不一个个的磁盘串联起来。不提供数据安全保障,磁盘利用率100%。


LUN:是一个虚拟的对象。


文件系统和操作系统。


操作系统管理调度和系统资源。


文件系统负责系统所产生和使用的数据管理存储空间。


随着存储数据量的增长,将文件系统的部分功能迁移到了存储系统中。


Windows中有FAT、FAT32或NTFS几种文件系统,还存在注册表,在注册表中存储这大量的系统信息,相当于数据库。


数据库分层次级数据库、对象数据库和关系型数据库以及非关系型数据库等。


关系型数据库由关系数据结构、关系操作集合、关系完整性约束三部分组成。


关系型数据库主要有


OracleDB,1977年成立,版本5率先提出了分布式数据库、客户/服务器结构等概念。


Sybase满足联机事务处理的高性能要求,同时加强联网对异构数据源的开放互联。


SQL Server是Microsoft的。


非关系型数据库比较:


特点:对数据库高并发读写需求、对海量数据的存储和访问,对数据库的高可拓展性。


在一张2.5亿条记录的表中进行SQL查询,效率及其低下乃至不可忍受。


Redis本身事宜个KeyValue类型的内存数据库,整个数据库加载进内存进行操作。定期通过异步操作把数据库数据转至硬盘上保存。


但受物理内存的限制,不能用作海量数据的高性能读写,没有原生的可拓展机制,不具有可拓展能力。适合场景:小数据量的高性能操作和运算上。


MongoDB一个介于关系型和非关系型数据库之间的产品,是非关系型数据库中功能最丰富、最像关系型数据库的。


主要解决了海量数据的访问效率问题,并发读写并不是很出色。由于MongoDB可以支持复杂的数据结构和强大的数据查询功能,所以很多项目考虑用MongoDB代替MySQL实现不是特别复杂的应用。


Cassandra主要特点是:它不是一个数据库,而是由一堆数据库节点共同构成的一个分布式网络服务,拓展性能的实现比较简单。


也支持丰富的数据结构和功能强大的查询语言,但是比MongoDB要弱。(大型应用和网站对于分布式数据库尤其是高可拓展性能力方面的殷切需求)


文件系统是定义了把文件存储于磁盘时所必须的数据结构和磁盘数据的管理方式。


在磁盘上建立文件系统的过程称为“格式化”




Amazon的弹性计算云(EC2,Elastic Compute Cloud),Amazon的弹性负载均衡(ELB,Elastic Load Balancer)