●云计算是具备动态资源池的、虚拟化和高可用计算平台借用量子物理的“电子云”(Electron Cloud)概念,强调说明信息处理的弥漫性、无所不在的分布性特征
●计算任务分布在大量计算节点构成的资源池上,各种应用系统能够按需获取计算能力、存储空间和数据服务
●硬件基础设施架构在大规模的廉价服务器集群之上
●应用与底层服务协作开发,最大限度地利用资源
●通过多个廉价服务器冗余,使得系统高可用性
[腾讯云拥有百万台服务器,千万块硬盘每年磁盘故障率2%,每天有几百块硬盘发生故障]
虚拟化、分布式、并行计算、海量存储、
桌面应用、资源调度、安全
●维基百科:数据中心是一整套复杂的设施。它不仅仅包括计算机系统和其它与之配套的设备(例如通信和存储系统),还包含冗余的数据通信连接、环境控制设备、监控设备以及各种安全装置。
● 维基百科的 虚拟化定义
虚拟化是表示计算机资源的抽象方法,通过虚拟化可以用与访问抽象前
资源一-致的方法访问抽象后的资源。这种资源的抽象方法并不受实现、地理位置或底层资源的物理配置的限制
●虚拟化的三层含义
虚拟化的对象是各种各样的资源
经过虚拟化后的逻辑资源对用户隐藏了不必要的细节
用户可以在虚拟环境中实现其在真实环境中的功能
虚拟化类型
●网络虚拟化
●存储虚拟化
●桌面虚拟化
●服务器虚拟化
●系统虚拟化
●其它
(1)系统虚拟化
●系统虚拟化:使用虚拟化软件在一台物理机上虚拟出一台台或多台虚拟机(Virtual Machine, VM)
●虚拟运行环境需要为在其上运行的虚拟机提供一套虚拟的硬件环境,包括虚拟的CPU、内存、I/O设备及网络接口等
(2)服务器虚拟化
服务器虚拟化是将系统虚拟化应用于服务器上
将服务器进行整合,然后再根据需求虚拟出若干个服务器
(3)桌面虚拟化
桌面虚拟化将用户的桌面环境与使用的终端设备解耦合
●优势:桌面虚拟化,将原有的终端数据资源甚至操作系统都转移到后台数据中心的服务器,而前台终端转化为以显示为主、计算为辅的轻量级客户端
●云计算对大数据而言是支撑关系
●云计算强调的是计算、存储能力
●大数据需要处理大数据的能力
(获取、清洁、转换、存储、分析、统计等)
●区块链本质是一种点对点网络下的不可篡改的分布式数据库
●区块链以某种共识算法保障节点间数据的致性,并以加密算法保证数据安全性,同时通过时间戳和Hash值形成首尾相连的链式结构,创造了一套公开、 透明、可验证、不可篡改、可追溯的技术体系
●区块链技术特征:规模庞大、高吞吐量、较高延迟,全球化的交易机制需要数据中心的多节点支持,分散了大规模宕机的出现概率
●云服务商提供区块链技术的优势主要在三个方面:成本效率、应用生态、安全隐私
●通过与云服务商结合,区块链技术可以被整合打包交付,为应用落地打下
了基础
云计算与病毒防御
●云安全的基本思想: Many for one/ many
●利用客户端探针搜集样本
●客户越多,根据搜集的样本进行安全分析越可靠病毒响应更及时
●体积更小、查杀病毒能力更强
2分布式数据处理MapReduce (必读)
●Map函数-对原始数据进行指定操作,每个Map操作都针对不同的原始数据,
Map与Map间互相独立,可以充分并行化
●Reduce操作-对每个Map所产生的中间结果进行合并操作,每个Reduce所处
理的Map中间结果是互不交叉的,所有Reduce产生的最终结果经过简单合并就形成了完整的结果集
3分布式结构化数据表Bigtable(必读)
4分布式锁服务Chubby
5分布式存储系统Megastore
6大规模分布式系统监控架构Dapper
7海量数据的交互式分析工具Dremel
8内存大数据分析系统PowerDrill
9 Google应用程序引擎
●Amazon S3是一种对象存储服务,提供行业领先的可扩展性、数据可用性、安全性和性能
●各种规模和行业的客户都可以使用它来存储和保护各种用例(如网站、移动应
用程序、备份和还原、存档、企业应用程序、loT 设备和大数据分析)的任意
数量的数据
●Hadoop: Google云计算的开源实现
●OpenStack:云平台管理的项目,NASA和Rackspace合作研发
●Eucalyptus: Amazon云计算的开源实现
●Cassandra:结合了Dynamo的分布技术和Google的BigTable数据模型,高
度可扩展、最终一致、分布式的结构化键值存储系统。
●Enomaly ECP:提供类似于EC2的云计算框架
●Nimbus:基于网格中间件Globus,提供与EC2类似的功能和接口
OpenStack是当今最流行的开源云平台管理项目。众多企业机构应用OpenStack以支持其新产品的快速部署、降低成本,以及实现内部系统的升级。而服务提供商则利用OpenStack为客户提供可靠、易获取的云基础设施资源。
愿景:为所有公有云和私有云提供商提供可满足它任意需求、容易实施且可大规模扩展的开源云计算平台。
●Nova是计算服务的代号,是最早的OpenStack组件之- , 它管理OpenStack的计算资源。
●Nova可以说是一套虚拟化管理程序。Nova可以创建、删除虚拟机重启虚拟机等,Openstack之所以能够搭建云平台,也是因为它能够创建虚拟机。
●Nova-API 对外统一提供标准化接口。接受和响应最终用户Compute API的请求,同时还实现与Openstack其他各逻辑模块的通讯。
●Nova-conductor
在G版之前,nova-compute直接与数据库交互,会产生安全问题,G版之后通过nova-conductor做代理
●Nova-scheduler
会根据一定的算法从计算资源池中选择一个计算节点用于启动新的VM实例(使用多种过滤器或算法调度)
●Nova-volume
一般运行在存储节点上(类似于Agent的作用),主要执行卷(Volume)相关的功能,如创建卷、为VM绑定卷或解绑定卷等。
●OpenStack各软件模块通过AMQP协议实现信息通信。在OpenStack中, 各
个服务之间是通过消息来交互的。
●RabbitMQ是一种处理消息验证、消息转换和消息路由的架构模式,它协调
应用程序之间的信息通信,并使得应用程序或者软件模块之间的相互意识最小化,有效实现解耦。
●RabbitMQ适合部署在一个拓扑灵活易扩展的规模化系统环境中,有效保证不同模块、不同节点、不同进程之间消息通信的时效性;而且,RabbitMQ特有的集群HA安全保障能力可以实现信息枢纽中心的系统级备份,同时单节点具备消息恢复能力,当系统进程崩溃或者节点宕机时,RabbitMQ正在处理的消息队列不会丢失,待节点重启之后可根据消息队列的状态数据以及信息数据及时恢复通信。
●Glance是OpenStack镜像服务,用来注册、登陆和检索虚拟机镜像。Glance服务提供了一个RESTAPI,使用户能够查询虚拟机镜像元数据和检索的实际镜像。
●通过镜像服务提供的虚拟机镜像可以存储在不同的位置,从简单的文件系统对象存储到类似OpenStack对象存储系统。
Glance作用
●镜像注册、查询
●基于角色的访问控制
●支持多种镜像格式(raw, qcow2)
支持多种存储类型(S3,Swift, File system等)
特点:
➢可靠对象存储
➢无单点故障
➢支持S3 API
➢海量对象安全存储
➢大文件存储
➢数据冗余管理
Swift主要解决问题
●对象存储克服了NAS(可扩展性差)和SAN(不容易安全地共享数据)的缺点、综合
了二者的优点,即:同时具有SAN的高速直接访问和NAS的数据共享等优势,
提供了具有高性能、高可靠性、跨平台以及安全的数据共享的存储体系结构。
➢大文件存储
➢数据冗余管理
●不是文件系统。 swift使用REST API,而不是使用传统意义上的文件操作命
令,如open(), read(), write(), seek(),和close()等
●不支持“文件锁”
●没有文件目录结构
●不是数据库。 swift使用account-container-object的概念存储object ,可
以列出指定container中的object
●不能作为块设备提供给虚拟机使用
Swift用途
●作为laaS的存储服务
●与OpenStack Compute对接,为其存储镜像
●文档存储
存储需要长期保存的数据,例如log
存储网站的图片,缩略图
以列出指定container中的object
●不能作为块设备提供给虚拟机使用
Swift和HDFS的区别
●HDFS使用了中央系统来维护文件元数据(NameNode),而在Swift中,元数
据呈分布式,跨集群复制。
●Swift在设计时考虑了多租户,HDFS没有多租户的概念。
●HDFS针对大文件作了优化,Swift被设计成可以存储任意大小的文件。
●HDFS中文件写入一-次,而且每次只能有一个文件写入;而在Swift中,文件
可以写入多次,在并发操作环境下,以最近一-次操作为准。
●HDFS使用Java编写,而Swift使用Python编写。
●Cinder(BlockStorage)块储存模块,提供虚拟机永久性块储卷,管理块设备到虚拟机的创建,挂载和卸载。
●nova-volume需求的扩展,是从Nova分离出来的集中式块存储服务。Cinder则是为了增加虚拟机的存储空间。
●Cinder组件架构完全是镜像式地复制Nova的架构。
Cinder与Swift区别
●cinder是块存储,用来给虚拟机挂扩展硬盘,就是将cinder创建出来的卷,挂到虚拟机里。cinder是OpenStack到F版后,将之前在Nova中的部分持久性块存储功能(Nova-Volume)分离了出来,独立为新的组件Cinder
●swift是一个系统,可以上传和下载,里面一般存储的是不经常修改的内容,比如用于存储VM镜像、备份和归档以及较小的文件,例如照片和电子邮件消息。更倾向于系统的管理。
●Neutron是OpenStack核心项目之一,提供云计算环境下的虚拟网络功能。
●在早期的OpenStack版本中(Folsom版本之前) ,并没有
Neutron/Quantum组件,网络方面的功能是在Nova中实现的,即nova-network,提供简单的Linux网桥(Bridge) 模式和VLAN的网络结构。
●随着对OpenStack需求越来越多,nova-network的功能不能满足该要求,于是,Neutron应运而生。
●使用Neutron组件,可以在OpenStack中为项目创建一个或
多个私有网络,这些网络在逻辑上与其他用户的网络隔离,即使- -个项目中,不同的私有网络也是隔离的。
Neutron服务网络管理
●固定IP(Fixed-IP):分配给虚拟机实例使用,用于租户实例间通信
●浮动IP(Floating IP):公共IP地址,用于实例与外部或Internet的通信。
●Flat模式
最简单的一种联网模式,不使用VLAN,仅支持一个网络,需要在各节点上手动创建桥设备,每个实例接收-个来自池的固定IP
●FlatDHCP模式
该模式下,需要启动一个DHCP服务器为VM分配固定IP地址,除此之外,基本和第一种模式相同。备,每个实例接收-个来自池的固定IP
●VLAN模式
每个Project均有自己的VLAN、Linux网桥、DHCP服务器,所有VM属于同一-VLAN并连接到同一-网桥。
Keystone作为Openstack的核心模块,提供统一-的、 完整的
penStack身份验证、服务目录、令牌、 访问策略服务、为Nova(计
算),Glance(镜像),Swift(对象存储),Cinder(块存储),
Neutron(网络)以及Horizon(Dashboard)提供认证服务。
Keystone主要两个关键的功能:
➢用户管理:控制、管理追踪用户的访问权限
➢服务目录管理:提供服务访问URL
●用户(User)
用户代表可以通过keystone进行访问的人或程序,Users通过认证信息(credentials,如密码、API Keys等)进行验证。
●租户(Tenant )
租户可以看做一个项目、团体或组织,是各个服务中的一些可以访问的资源集合
●角色(Role)
角色代表- -组用户可以访问的资源权限, 例如Nova中的虚拟机、Glance中的镜像。
●服务(Service)
服务如Nova、Glance、 Swift。 这里通常使用一些不同的名称表示不同的服务。
●端点(Endpoint )
端点是一个服务的URL,如果需要访问一个服务,则必须知道它的endpoint。
●令牌. (Token)
Token是访问资源的钥匙。它是通过Keystone验证后的返回值,在之后的与其他服务交互中只需要携带Token值即可。每个Token都有一个有效期,Token只在有效期内是有效的。
●Horizon是一个用以管理、控制OpenStack服务的Web控制面板,它可以管理实例、镜像、创建密匙对,对实例添加卷、操作Swift容器等。除此之外,用户还可以在控制面板中使用终端(console) 或VNC直接访问实例。
作用:
●实例管理:创建、终止实例,查看终端日志,VNC连接,添加卷等。
●访问与安全管理:创建安全群组,管理密匙对,设置浮动IP。
●偏好设定:对虚拟硬件模板可以进行不同偏好设定。
●镜像管理:编辑或删除镜像。
●用户管理:创建用户等。
●卷管理:创建卷和快照。
●对象存储处理:创建、删除容器和对象。
1、Dashboard或者CLI向Keystone发送身 份验证请求。
2、Keystone认证证书,生成并返回token_ id和serverCatalog(包含各类API服务地址nova-api、 glance-
api、cinder-api等)
3、Dashboard或者CLI向nova-api发送新建实例请求。
4、nova-api收到请求,向Keystone验证令牌是否合法。
5、keystone验证令牌
6、nova-api与nova-database交互。
7、在数据库中创建实例。
8、nova-api向nova-scheduler发送rpc.call请求, 希望得到实例安装的物理机号。
9、nova-scheduler从消息队列获取请求。
10、nova-scheduler与nova- database交互,先过滤再权值计算,筛选合适物理机。
11、返回合适的物理机号。
12.nova-scheduler向nova-compute发送rpc.cast请求,在合适物理机上新建实例。
13、nova-compute从消息队列获得请求。
14、nova-compute向nova-conductor发送rpc.call请求, 获取实例相关信息:主机号、CPU、Disk.
15、nova-conductor从消息队列获得请求。
16、nova-conductor与nova- database交互。
17.返回实例信息。
18、nova-compute从消息队列获得实例信息。
19、nova-compute向glance-api发送请求, 根据ID号
获得镜像的URL,并下载镜像。
20、glance-api向Keystone验证令牌。
21、nova-compute获得镜像元数据。
22、nova-compute向Network API发送请求,配置nova-com pute
23、quantum-api向Keystone验证令牌。
24、nova-compute取得网络信息。
25、nova-compute向Volume API请求,绑定实例volumes。
26、cinder-api向Keystone验证令牌。
27、nova-compute获得块存储信息。
28、虚拟机运行在Hypervisor。