这其实是一篇读书笔记,内容摘录自《大规模分布式存储系统-原理解析与架构实战》第12章讲到的云存储概念,跟自己工作的内容比较相关,也有比较强烈的认同感。
云存储是通过网络将大量普通存储设备构成的存储资源池中的存储和数据服务以统一的接口按需提供给授权用户。
云存储属于云计算的底层支撑,它通过多种云存储技术的融合,将大量普通PC服务器构成的存储集群虚拟化为易扩展、弹性、透明、具有伸缩性的存储资源池,并将存储资源池按需分配给授权用户,授权用户即可以通过网络对存储资源池进行任意的访问和管理,并按使用付费。云存储将存储资源集中起来,并通过专门的软件进行自动管理,无需人为参与。用户可以动态使用存储资源,无需考虑数据分布,扩展性,自动容错等复杂的大规模存储系统技术细节,从而可以更加专注于自己的业务,有利于提高效率,降低成本和技术创新。云存储具有如下特点:
>高可扩展性:第
一,系统本身可以很容易动态增加服务器资源以应对数据增长;第
二,系统运维可扩展,意味着随着系统规模的增加,不需要增加太多运维人员。
>高可用性和可用性:通过多副本复制以及节点故障自动容错等技术,云存储提供了很高的可用性和可靠性。
>安全:云存储内部通过用户鉴权,访问权限控制,安全通信(HTTPS,TLS协议)等方式保障安全性。
>透明服务:云存储以统一的接口,比如RESTFUL接口的形式提供服务,后端存储节点的变化,比如增加节点,节点故障对用户是透明的。
>低成本:低成本是云存储的重要目标。云存储的自动容错使得可以采用普通的PC服务端来构建;云存储的通用性使得资源利用率大幅提升;云存储的自动化管理使得运维成本大幅降低;云存储所在的数据中心可以建在电力资源丰富的地区,从而大幅降低能源成本。
云存储包含两个部分:云端 终端。云端指统一的云存储服务端,终端指多样化的PC机,手机,移动多媒体设备等终端设备。云存储的发展需要云端和终端里面的多种技术的支持。
云存储系统由多个存储设备构成,不同存储设备之间需要通过分布式存储,CDN、P2P等分布式技术,实现多个存储设备之间的协同工作,使多个存储设备可以对外提供同一种服务,并提供更好的数据访问性能。如果没有这些技术,存储系统只能是一个一个独立的系统,不能形成云状结构,也就没有云存储。另外,CDN(ContentDeliveryNetwork)以及P2P等技术保证云中的图片视频等文件能够被快速访问,并且节约云存储服务提供商的带宽成本。
云存储是云计算的存储部分,理解云存储架构的前提是理解云平台整体架构。云计算按照服务类型大致可以分为三类:基础设施即服务(Iaas)、平台即服务(PasS)以及软件即服务(SaaS):
IaaS将硬件设备等基础资源以虚拟机的形式封装成服务供用户使用,如Amazon云计算AWS(AmazonWebService)的弹性计算云EC2,PaaS进一步抽象硬件资源,提供用户应用程序的运行环境,开发者只需要将应用程序提交给PaaS平台,PaaS平台会自动完成程序部署,处理服务器故障,扩容等问题,典型的如(GoogleAppEngine)GAE。SaaS的针对性更强,它将某些特定应用软件封装成服务。
分布式存储层管理存储服务器集群,实现各个存储设备之间的协同工作,保证数据可靠性,对外屏蔽数据所在位置,数据迁移,数据复制,机器增减等变化,是的整个分布式系统看起来像是一台服务器。分布式存储层是云存储系统的核心,也是整个云存储平台中最难实现的部分。CDN节点将云存储系统中的热点数据缓存到离用户最近的位置,从而减少用户的访问延时并节约带宽。
存储访问层位于分布式存储层的上一层,该层的主要作用是将分布式存储层的客户端接口封装为WebService(基于RESTful等协议)服务,另外,该层通过调用公共服务实现用户认证,权限管理以及计费等功能。存储访问层不是必须的,云存储平台中的计算实例也可以直接铜鼓哦客户端API访问分布式存储层中的存储系统。
应用运行平台的主体为计算实例(笔者理解为就是所谓的虚机或者物理机),计算实例最主要的功能有两个:开发者的应用程序运行环境以及离线任务处理。
多个计算实例构成一个计算实例组,当实例组中的某个实例出现故障时,能够自动将负载迁移到其他的实例,并且支持动态增加或者减少实例从而使得实例组的处理能力具有动态可伸缩性。运行平台的最前端是路由以及负载均衡(LVS等)组件,它将用户的请求按照一定的策略发送到适合的计算实例。
云存储平台还包含一些公共服务,这些基础服务由云存储组件以及运行平台组件所公用,如下所示:
>消息服务:消息服务将执行流程异步化,用于应用程序解耦。计算实例一般分为处理Web请求的前台实例以及处理离线任务的后台实例,在很多情况下,前台实例处理Web请求的过程中需要启动运行在后台的任务,这种需求可以通过消息服务(消息队列例如ActiveMQ)服务实现。
>缓存服务:缓存服务用于存储云存储系统中的读多写少的热点数据,从而加速查询,减少对后端存储系统压力。大多数云存储平台提供Memcache服务。
>用户管理:用户管理主要功能是用户身份认证,确保用户的身份合法,并存储用户相关的个人信息。云计算平台一般支持单点登录,在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的系统。
>运维管理:云存储平台的运维需要做到自动化,从而降低运维成本,一般来说,有一套专门的Web运维系统用于系统上下线,批量升级系统程序版本等。
>监控系统:监控系统由两个层面,其一是资源层面,即资源的运行情况,比如CPU使用率、内存使用率和网络带宽利用率,Load值等,需要注意的是,云计算平台除了监控物理机资源,还需要监控虚拟机资源的运行情况;其二是应用层面,主要记录应用每次请求的响应时间、读写请求数等。
。。。图片太大,只能横着看了。以上是云存储技术体系,找到了方向,如果能都搞通,差不多就成神了。
云存储技术体系结构分为四层:硬件层、单机存储层、分布式存储层、存储访问层,前面有介绍就不啰嗦了。
>弹性计算平台:典型的弹性计算平台为AmazonEC2以及MS的各种虚拟机实例,底层设计的技术包括虚拟机、自动伸缩。弹性计算平台通过虚拟机自身的机制来保证云安全,比如虚拟机安全隔离,虚拟机防火墙。基于虚拟机的弹性计算平台的优势在于兼容性,支持各种编程语言和平台。
>云引擎:典型的云引擎为GoogleAPPEngine,底层设计的涉及的技术主要是应用容器(比如JavaTomcat,Jetty,PythonRuntime)以及应用容器自动伸缩。当应用的负载过高时,自动增加应用的运行容器数;反之,自动减少应用的运行容器数。
>分布式计算:云平台往往会支持分布式计算,通过后台的计算实例执行耗时较长的计算任务。MapReduce是最为常见的分布式计算模型,云平台一般都支持开源的HadoopMapReduce计算框架。
平凡的突围者:想问一下,minldle,好像并不会主动做预热,也就是初始化连接池的过程就创建minldle个连接,在阿里云的开发手册里,是需要手动做预热的。
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。