云计算的起源
计算范式:
集中式计算
所有计算资源集中在一个物理系统中
并行计算
单个物理系统,处理器共享内存或分布式内存
分布式计算
多个物理系统,私有内存,通过计算机网络通信
- 计算机集群
- P2P网络
- 计算网格
基本想法
一种完美的分布式计算解决方案——对网格的优化
- 大量计算节点,同构可控
- 专用内部网络
- 集中管理:安全、高效全面虚拟化:计算、存储、网络、桌面通过互联网对外服务(公有云)
云计算与大数据
大数据促进云计算产生,激发了云计算的潜力;云计算为大数据的收集、存储、加工和应用提供了更好的支持
云计算特点
- 超大规模——需求
- 虚拟化——技术
- 按需服务——商业模式
- 通用
- 高可伸缩
- 极其廉价
- 高可靠——要求
云的服务模型
IaaS
通过虚拟机方式对外提供计算和存储能力
机器享有公网IP,多个虚拟机之间通过网络进行通信
类似租用独立的计算机
用户自行解决多台机器之间的协同问题
优势
- 允许用户动态申请和释放资源
- 按使用量计费
- 更高的资源使用效率(节能环保)
PaaS
提供用户应用程序的运行环境
PaaS自身负责资源的动态扩展和容错管理
用户无需考虑节点间的配合问题
用户自主权降低,需按照给定的编程环境和编程模型构建应用
类似MPI (Message Passing Interface)编程
只适用于解决模型特定的计算问题
SaaS
针对性更强,只提供某些专门用途的服务供应用调用
实现机制
SOA
Service-oriented Architecture 面向服务的体系结构
分布式对象
- Java:Java对象、RMI(Remote Method Invocation,远程方法调用)
- CORBA:CORBA分布式对象、IDL(Interface Definition Language,接口定义语言)
- 通过RPC(Remote Procedure Call,远程过程调用)连接
虚拟化技术
利用软件或固件管理程序构成虚拟化层,把物理资源映射为虚拟资源。在虚拟资源上可以安装和部署多个虚拟机,实现多用户共享物理资源。
本质:虚拟化的本质就是将原先的物理设备进行逻辑化,转化成一个文件夹或文件,实现软硬件的解耦。
虚拟化的实现
添加一个称为虚拟化层的软件,管理客户操作系统,使其能够独立于主机操作系统同时运行在同一个硬件上
- Hypervisor
- Virtual Machine Monitor(虚拟机监视器)
硬件级虚拟
三个要求
- 为程序提供与原始硬件机器基本一致的环境
- 运行在该虚拟硬件环境中的程序性能损失应该较低
- 系统资源应该处于VMM的完全控制之中
类型
- 硬件仿真(裸机虚拟化):Hypervisor直接对硬件切分和抽象,再安装客户操作系统
- 寄居虚拟化:需要主机操作系统,再运行VMM,再安装操作系统
全虚拟化:Hypervisor或VMM负责控制硬件和“传话”(cpu指令封装为os指令)
- 软件辅助全虚拟化——寄居虚拟化
- 硬件辅助全虚拟化——硬件仿真(根据是否为特权指令判断是否要将cpu指令封装为os指令)
- 半虚拟化(硬件辅助虚拟化):不再以普通操作系统的方式访问虚拟硬件资源,需要修改操作系统
虚拟化的层次
虚拟化层:虚拟硬件环境,处理器、内存和I/O设备等
虚拟指令集体系结构:Virtual Instruction Set Architecture, V-ISA
操作系统:容器及操作系统实例
应用程序级虚拟化
JVM——Java虚拟机
操作系统级虚拟化
- 看作是“寄居虚拟化”的一种
- 没有Hypervisor/VMM
- 在操作系统中插入一个虚拟化层
- 在同一个操作系统内核内,运行多个虚拟机
优点
- 最小的启动或停止开销,资源需求低,可扩展性强
- 需要时,可同步虚拟机与宿主操作系统环境状态的变化
设计方法
- 在同一台物理机上的操作系统级虚拟机共享同一个操作系统内核
- 虚拟化层中允许虚拟机中进程访问尽可能多的主机资源
缺点
- 同一个容器中的操作系统级虚拟机必须使用相同的客户操作系统
- 资源隔离较差
Docker
开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows 机器上
数据中心虚拟化
服务器虚拟化
将一个或多个物理服务器虚拟成多个逻辑上的服务器
CPU虚拟化
- 任意时刻一个物理CPU只能运行一个虚拟CPU
- 每个客户操作系统可以使用一个或多个虚拟CPU
- 各个操作系统之间虚拟CPU运行相互隔离,互不影响
模拟执行——敏感指令
监控执行——无害指令
特权指令
内存虚拟化
I/O设备虚拟化
虚拟机迁移
- 物理机到虚拟机 P2V
- 虚拟机到虚拟机 V2V 实时迁移
- 虚拟机到物理机 V2P
虚拟机隔离
指虚拟机之间在没有授权许可的情况下,互相之间不可通信、不可联系的一种技术
- 内存隔离
- 网络隔离
存储虚拟化
把分布的异构存储设备统一为一个或几个大的存储池
网络虚拟化
在底层物理网络和网络用户之间增加一个抽象层
云数据中心
架构回顾
物理机器->虚拟机->资源管理和分配->用户、代理商
QoS(Quality of Service)要求
特征
- 高设备利用率
- 绿色节能
- 高可用性
- 自动化管理
网络部署
改进型树结构
FatTree
两级路由表,允许两级前缀查询:Pod间流量尽可能均匀分布于核心交换机
任意两个不同Pod主机之间有k条路径
- 将流量在这些路径间分散
- 任意给定Pod的低层和高层交换机对位于本Pod的任意子网都有终结性表项
- 在全负载最坏的情况下实现约87%的聚合带宽
与传统层次结构相比, FatTree 有如下特点:
- 消除了树形结构上层链路对吞吐盆的限制
- 为内部节点间通信提供多条并行链路
- 横向扩展的尝试降低了构建数据中心网络的成本
- 与现有数据中心网络使用的以太网结构和 IP 配置的服务器兼容
VL2
若干服务器连接到机架(接入)交换机
每台接入交换机与两台汇聚交换机连接
每台汇聚交换机与所有核心交换机连接
用多个小规模、低成本的单元,构建复杂大规模的网络
优点:
- 扁平寻址,允许服务实例被放置到网络覆盖的任何地方
- 负载均衡将流量统一分配到网络路径
- 终端系统的地址解析拓展到巨大的服务器池
缺点:ⅥL2依赖于中心化的基础设施来实现2层语义和资源整合,面临单点失效和扩展性问题
递归层次
解决可扩展性的较好选择
- 最小递归单元的结构
- 递归规律
每一个高层的网络拓扑,由多个低层的递归单元按照递归规律相互连接构成,同时也是更高层级网络的一个递归单元。
增加服务器数量==>提高总的递归层次
- 添加服务器更加灵活,可增加的数量增大
- 对交换机性能要求低
Dcell
构建高层次网络时,需要的低层网络的个数等于每个低层网络中的服务器个数加1
k层有n服务器
$k+1$层有$(n+1)\times n$台服务器(每台服务器连接一个$Dcell_k$,一共有$k+1$个$Dcell_k$)
$k+2$层有$((n+1)\times n+1)\times((n+1)\times n)$台服务器
可扩展性好但拓扑层数受限于服务器端口数
FiConn
服务器使用两个网卡端口:主用端口连接低层网络,备用端口连接高层网络
递归定义的结构
- 第0层为基本构建单元,n个服务器连接一个具有η个端口的交换机
- 每个低层 FiConn中备用端口空闲的一半服务器与其他相同层次的 FiConn网络中备用端口空闲的服务器连接
- k层服务器、k层端口、k层链路
k层有n台服务器
$k+1$层有$(\frac n 2+1)\times n$台服务器
不需要对服务器和交换机做修改对外连接的链路有限,容错较弱,链路路径长度大,路由效率不高
BCube
没有明显的瓶颈链路,出现故障时性能优雅下降,服务可用性高
服务器间路径多,探测的通信和计算开销大
硬件要求特殊:端口数目
光交换网络
Helios(混合电、光结构网络)
OSA(基于光交换的数据中心网络体系结构)
光交换矩阵(OSM):任意输入端口可以连接到任意输出端口
波长选择交换机(WSS):将从通用端口进入的波长集和分开在N个波长端口
无线数据中心网络
静态链路和有线接口在大量高突发流量和高负载服务器情况下降低数据中心网络性能
WDCN异构的以太网/无线体系结构
软件定义网络
将网络的控制平面和数据转发平面分离
- 基础设施层:底层转发设备,根据控制器设定的规则进行数据分组的转发
- 控制器层:即SDN控制软件,维护网络状态,向底层提供控制和数据平面接口用于获取底层基础设施信息,向应用层提供可扩展的接口
- 应用程序层
优点
- 通过软件更新实现网络升级
- 无需针对硬件进行配置数据转发与网络控制解耦
- 简化底层网络设备功能使得网络具备集中协调点
- 加快网络部署周期
- 加速网络创新周期
Openflow
第一个针对SDN实现的标准接口
组成:Openflow交换机、控制器
绿色节能技术
配电系统节能
高压直流配电技术
市电直供配电技术
空调系统节能
高温回风空调系统
低能耗加湿系统
自然冷空调系统
集装箱数据中心节能技术
将数据中心的服务器设备、网络设备、空调设备、供电设备等高密度地装入固定尺寸地集装箱中,成为数据中心的标准构建模块
管理系统节能策略和算法
DVFS:当CPU未被完全利用时,降低CP∪供电电压和时钟频率主动降低CPU性能
新能源应用
自动化管理
工作范围:按需分配和收回服务器、存储、网络、应用程序
特征:
- 全面的可视性
- 自动的控制执行
- 多层次的无缝集成
- 综合与实时的报告
- 全生命周期支持
容灾备份
容灾备份是通过在异地建立和维护一个备份存储系统,利用地理上的分离来保证系统和数据对灾难性事件的抵御能力
数据级容灾
应用级容灾
关键技术:核心:复制数据
- 远程镜像技术
- 快照技术
- 基于|P的SAN的远程数据容灾备份技术
- 数据库复制技术
Openstack
简介
参考架构
开源云计算平台,可控制整个数据中心的大型计算,存储和网络资源池
用户能够通过web界面、命令行或AP接口配置资源
Openstack的定位:云计算系统的控制面
最开始核心部件:
- Nova: 计算服务,管理虚拟机
- Swift: 对象存储组件
- Glance: 镜像管理组件,管理镜像
架构设计
运行 Openstack服务的节点
- 云控制器:控制所有服务的节点
- 网络节点:运行网络服务的节点
- 计算节点:运行虚拟机的节点(也可以运行网络服务)
部署
DevOps
让研发(Development)和运维(Operations)一体化,让团队从业务需求出发,向着同一个目标前进
云控制器
计算节点
存储节点- Cinder
为云平台提供统一接口,按需分配的,持久化的块存储服务
核心功能是对卷的管理,允许对卷、卷的类型、卷的快照、卷备份进行操作