基于《云计算原理与实践》
文章目录
- 云计算概述
-
-
- 云计算定义
- 云计算的计算模式演讲过程
- 云计算的优势
- 云计算的缺点
- 云计算的推动力
- 云计算的公共特征
- 云计算的分类
- 与云计算相关的技术
- 耦合
- 数据中心
- 云计算面临的挑战
- 大数据
-
- 云计算架构
-
-
- 云计算的本质
- 云计算的基石
- 云数据中心
- 云的工作负载模式
- 计算架构的进化
- 云栈和云体
- 云计算的三层架构和四层架构的区别
- 云计算的本质就是IT作为服务涵盖了基础设施即服务、平台即服务、软件即服务或任何X即服务。
-
- 分布式计算
-
-
- 分布式计算概述
- 分布式计算的理论基础
- 最终一致性
- 一致性散列算法
- 分布式系统的特性
- GFS架构
-
- GFS的设计思路
- 单一Master问题
- Master节点任务
- GFS的容错方法
- Hadoop
- MapReduce模型
- Apache Hadoop特性
-
- 分布式系统进阶
-
-
- 分布式存储系统大致分为5个子方向
- 典型的分布式系统
-
- 虚拟化技术
-
-
- 虚拟化定义
- 虚拟化技术的分类
-
- 服务器虚拟化
- 虚拟化的优点
- 虚拟化前景
-
- 虚拟化技术:
- KVM虚拟机技术
- Hyper-V虚拟化技术
- VMware ESX和ESXi虚拟化技术
- 虚拟化前后对比
- Docker容器
-
- Docker与VM之间的对比
- Docker特性
- Docker容器本质
- Docker三大概念
- Docker常用命令
-
- 1.docker run :创建一个新的容器并运行一个命令
- 2.docker start:启动一个或多个已经被停止的容器
- 3.docker kill:杀掉一个运行中的容器。
- 4.docker rm :删除一个或多个容器。
- 5.**docker pause** :暂停容器中所有的进程。
- 6.docker create :创建一个新的容器但不启动它
- 7.docker exec :在运行的容器中执行命令
- 8.**docker ps :** 列出容器
- 9.**docker inspect :** 获取容器/镜像的元数据。
- 10.docker top :查看容器中运行的进程信息,支持 ps 命令参数。
- 11.docker attach :连接到正在运行中的容器。
- 12.**docker events :** 从服务器获取实时事件。
- 13.**docker logs :** 获取容器的日志.
- 14.**docker wait :** 阻塞运行直到容器停止,然后打印出它的退出代码。
- 15.docker export :将文件系统作为一个tar归档文件导出到STDOUT。
- 16.docker port :列出指定的容器的端口映射,或者查找将PRIVATE_PORT NAT到面向公众的端口。
- 17.docker commit :从容器创建一个新的镜像。
- 18.docker cp :用于容器与主机之间的数据拷贝。
- 19.**docker diff :** 检查容器里文件结构的更改。
- 20.**docker login :** 登陆到一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub
- **docker logout :** 登出一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub
- 21.**docker pull :** 从镜像仓库中拉取或者更新指定镜像
- 22.**docker push :** 将本地的镜像上传到镜像仓库,要先登陆到镜像仓库
- 23.**docker search :** 从Docker Hub查找镜像
- 24.**docker images :** 列出本地镜像。
- 25.**docker rmi :** 删除本地一个或多个镜像。
- 26.**docker tag :** 标记本地镜像,将其归入某一仓库。
- 27.**docker build:** 用于使用 Dockerfile 创建镜像。
- 28.**docker history :** 查看指定镜像的创建历史。
- 29.**docker save :** 将指定镜像保存成 tar 归档文件。
- 30.**docker load :** 导入使用 docker save命令导出的镜像。
- 31.**docker import :** 从归档文件中创建镜像。
- 32.docker info : 显示 Docker 系统信息,包括镜像和容器数。
- 33.docker version :显示 Docker 版本信息。
- 分布式存储
-
- 分布式存储的定义
- 分布式存储系统的特性
- 分布式存储系统的技术挑战
- 分布式存储的分类
-
- 分布式文件系统
- 分布式键值(Key-Value)系统
- 分布式表系统
- 分布式数据库
- 分布式存储的发展历史
-
- 20世纪80年代的代表:AFS、NFS、Coda
- 20世纪90年代的代表:XFS、Tiger Shark、SFS
- 20世纪末的代表:SAN、NAS、GPFS、GFS、HDFS
- 21世纪的代表:Cassandra、HBase、MongoDB、DynamoDB
- 文件存储
-
- 单机文件系统
- 网络文件系统
- 并行文件系统
- 分布式文件系统
- 高通量文件系统
- 单机存储系统
-
- 1、硬件基础
- 2、存储引擎
- 3、数据模型
- 分布式文件系统
-
- 1、基本概念
- 2、性能分析
- 3、数据分布
- 4、复制
- 5、容错
- 6、可扩展性
- 7、分布式协议
- 云计算网络
-
- 计算机网络
-
- 概念
- 网络节点(Network Node)
- 网络终端(Network Endpoint)
- 交换机(Switch)
- 中间盒(MiddleBox)
- 网络链路(Network Link)
- 网络拓扑(Network Topology)
- 路径(Path)
- 信道(Channel)
- 数据平面(Data Plane)
- 控制平面(Control Plane)
- 管理平面(Management Plane)
- 网络功能(Network Function)
- 计算机网络的分类
-
- 按技术分类
- 按覆盖范围与规模分类
- 局域网的技术特点
- 局域网的应用领域
- 城域网的技术特点
- 广域网的技术特点
- 计算机网络的组成与结构
- 网络设备
- OSI参考模型
-
- (1)应用层
- (2)表示层
- (3)会话层
- (4)传输层
- (5)网络层
- (6)数据链路层
- (7)物理层
- TCP/IP协议
- TCP/IP分层模型
- IP
- IP地址(IPV4)
- 如何理解TCP是一个面向连接的、可靠的、字节流式传输协议?
- TCP
- UDP
- ICMP
- 隔离技术
- 资源隔离技术
- 防火墙
- 覆盖网络
-
- GRE
- VLAN
- VXLAN
- NVGRE
- IPsec
- 大二层网络
- 租户网络
- 网络虚拟化
-
- 灵活控制:软件定义网络(SDN)
- 快速部署:网络功能虚拟化
- 负载均衡
-
- 负载均衡的工作方式
- 负载均衡的三个要素
- 四层负载均衡
- 七层负载均衡
- DNS负载均衡
- 重定向负载均衡
- 负载均衡服务
-
- 服务性能
- 如何提高效率
- 效率的分析方法
- 负载平衡
- 负载平衡点
- 负载平衡算法
- Web层的负载平衡
- EJB层的负载平衡
- 动态负载平衡技术
-
云计算概述
云计算定义
云计算:2009年提出;IT资源池
云计算是由横向云体与纵向云栈构成
定义:云计算实现了通过网络提供可伸缩的、廉价的分布式计算能力,用户只需要在具备网络接入条件的地方就可以随时随地获得所需的各种IT资源。
云计算是各种虚拟化、效用计算、服务计算、网格计算、自动计算等概念的混合演进并集大成之结果。
云计算的计算模式演讲过程
1、主机系统与集中运算:特点就是资源集中,计算、存储集中,这是集中计算模式的典型代表。
2、效用计算:目标是把服务器及存储系统打包给用户使用,按照用户实际使用的资源量对用户进行计费。与云计算相比,效用计算仅规定了IT资产的计费模式。
3、客户机/服务器模式:C/S;与云计算相比是服务器不同。
4、集群计算:服务器集群计算是有限度的分布式计算,集群计算并不考虑交互式的终端用户。
5、服务计算:服务计算一般仅限于软件即服务,而云计算将服务的概念推广到 了硬件和运行环境,囊括了基础设施即服务、平台即服务的概念。
6、个人计算机与桌面计算;
7、分布式计算:解决计算量。
8、网格计算:解决计算速度。
9、SaaS;
云计算的优势
1、按需供应的无线计算资源;
2、无须事先花钱就能使用的IT架构;
3、基于短期的按需付费的资源使用;
4、单机难以提供的事务处理环境;
5、提供了最可靠最安全的数据存储中心;
6、对用户端设备要求低,只需要一台能上网的电脑;
7、数据应用共享:icloud各种文件同步服务;
云计算的缺点
1、需要网络;
2、安全性和隐私问题;
3、SaaS的功能相对于本地软件的功能还是有一定差距的;
云计算的推动力
1、网络带宽的提升;
2、技术成熟度;
3、移动互联网的发展;
4、数据中心的演变;
5、经济因素;
6、大数据;
云计算的公共特征
1、弹性伸缩;
2、快速部署;
3、资源抽象;
4、按用量收费;
5、宽带访问;
云计算的分类
1、根据部署模式和云的使用范围进行分类
- 公共云
- 私有云(或称专属云)
- 社区云
- 混合云
- 行业云
- 其他云类型
2、针对云计算的服务层次和服务类型进行分类
- 基础设施即服务(Infrastructure as a Service,IaaS)
- 平台即服务(Platform as a Service,PaaS)
- 软件即服务(Software as a Service,SaaS)
与云计算相关的技术
1、并行计算
2、SOA:面向服务的体系结构(Service Oriented Architecture)
3、虚拟化:虚拟化是资源的逻辑表示,它不受物理限制的约束;
。。。。。。
耦合
指的是互相交互的系统彼此间的依赖。
数据中心
1、数据中心是云计算的重要载体,为云计算提供计算、存储、带宽等各种硬件资源,为各种平台和应用提供运行支撑环境。
2、云计算数据中心是一整套复杂的设施,包括服务器、宽带、网络连接、环境控制设备、监控设备以及各种安全装置。
3、软件定义数据中心是将虚拟化概念(如抽象,集中和自动化)扩展到所有数据中心资源和服务,以实现IT即服务(ITaaS)。
云计算面临的挑战
1、电力消耗;
2、带宽供给;
3、安全风险;
4、可靠性;
5、标准化;
6、服务关闭风险;
大数据
1、大数据:海量数据或巨量数据,其规模巨大到无法通过目前主流的计算机系统在合理时间内获取、存储、管理、处理并提炼以帮助使用者决策。
2、对三个维度数据进行分析:
- 分析已有数据;
- 对当下数据进行处理;
- 基于现有数据对未来趋势进行预测;
3、大数据的特征:4V+1C
- 价值密度低(value);
- 快速(velocity)
- 数据量大(volume)
- 多样(variety)
- 复杂度(complexity)
4、云计算与大数据的关系
- 提供IT资源
- 大数据是云计算的推动力之一
云计算架构
云计算的本质
XaaS:一切IT即服务。
云计算的基石
虚拟化
云数据中心
云数据中心的构造主要有两种模式,一种是传统模式,还有一种数据中心是基于集装箱的数据中心。
云的工作负载模式
-
模式1:时开时停模式
-
模式2:用量迅速增长模式
-
模式3:瞬时暴涨模式
-
模式4:周期性增减模式
计算架构的进化
1、中央集权架构
2、客户机/服务器(C/S)架构
3、中间层架构
4、浏览器/服务器(B/S)架构
5、C/S与B/S混合架构
6、面向服务的架构
云栈和云体
云体是云计算的物质基础,是云计算所用到的资源集合。云体就是数据中心。
云栈称为云平台,是在云上面建造的运行环境。
云计算的三层架构和四层架构的区别
三层模式:IaaS、PaaS、SaaS;其中基础设施即服务可称为效用计算,平台即服务可称为弹性计算,软件即服务可称为随需应用。
SaaS的主要特点:
-
基于网络(一般为web模式)进行远程访问的商用软件;
-
集中式管理,而非分散在每个用户站点;
-
应用交付一般接近一对多模型,即所谓的单个实例多个租户架构;
-
按照用量计费(实际中一般按月或其他时间周期进行计费)
云计算的本质就是IT作为服务涵盖了基础设施即服务、平台即服务、软件即服务或任何X即服务。
分布式计算
分布式计算概述
①集中式计算
集中式计算完全依赖于一台大型的中心计算机的处理能力,这台中心计算机称为主机,与中心计算机相连的终端设备具有各不相同非常低的计算能力。实际上大多数终端完全不具有处理能力,仅作为输入输出设备使用。
②分布式计算
与集中式计算相反,分布式计算中,多个通过网络互联的计算机都具有一定的计算能力,它们之间互相传递数据,实现信息共享,协作共同完成一个处理任务。
分布式计算相对于其他算法的优点:
-
稀有资源可以共享
-
通过分布式计算可以在多台计算机平衡计算负载
-
可以把程序放在最适合运行它的计算机上。
分布式计算步骤:
1、设计分布式计算模型
2、分布式任务分配
3、编写并执行分布式程序
分布式计算的理论基础
ACID原则:是数据库事务正常执行的四个原则,分别指原子性、一致性、独立性及持久性
CAP理论:一个分布式系统最多只能同时满足一致性、可用性和分区容错性这三项中的两项。
BASE理论:是指基本可用、软状态、最终一致性。
(基本可用:指分布式系统在出现故障的时候,允许损失部分可用性,即保证核心可用。
软状态:指允许系统存在中间状态,而该中间状态不会影响系统整体可用性。
最终一致性:指允许系统中的所有数据副本经过一定时间后,最终能够达到一致的状态。)
最终一致性
强一致性(即时一致性):假如A先写入了一个值到存储系统,存储系统保证后续A、B、C的读取操作都将返回最新值。
弱一致性:假如A先写入了一个值到存储系统,存储系统不能保证后续A、B、C的读取操作能读取到最新值。
最终一致性是弱一致性 的一种特例。
一致性散列算法
容错性、扩展性、虚拟节点
分布式系统的特性
容错性、高可扩展性、开放性、并发处理能力和透明性。
GFS架构
GFS的设计思路
1、将文件划分为若干块(Chunk)存储
-每个块固定大小(64M)
2、通过冗余来提高可靠性
-每个数据块至少在3个数据块服务器上冗余
-数据块损坏概率?
3、通过单个master来协调数据访问、元数据存储
-结构简单,容易保持元数据一致性
4、无缓存
单一Master问题
GFS的解决办法:性能瓶颈问题
1、尽可能减少数据存取中Master的参与程度
2、不使用Master读取数据,仅用于保存元数据
3、客户端缓存元数据
4、数据修改顺序交由Primary Chunk Server完成
Master节点任务
1、存储元数据
2、文件系统目录管理与加锁
3、与ChunkServer进行周期性通信
发送指令,搜集状态,跟踪数据块的完好性
4、数据块创建、复制及负载均衡
对ChunkServer的空间使用和访问速度进行负载均衡,平滑数据存储和访问请求的负载
对数据块进行复制、分散到ChunkServer上
一旦数据块冗余数小于最低数,就发起复制操作。
5、垃圾回收
在日志中记录删除操作,并将文件改名隐藏
缓慢地回收隐藏文件
与传统文件删除相比更简单、更安全
6、陈旧数据块删除
探测陈旧的数据块,并删除
GFS的容错方法
1、GFS的容错机制
①Master容错
三类元数据:命名空间(目录结构)、Chunk与文件名的映射以及Chunk副本的位置信息
前两类通过日志提供容错,Chunk副本信息存储于Chunk Server,Master出现故障时可恢复
Chunk Server容错
每个Chunk有多个存储副本(通常是3个),分别存储于不通的服务器上
每个Chunk又划分为若干Block(64KB),每个Block对应一个32bit的校验码,保证数据正确(若某个Block错误,则转移至其他Chunk副本)
Hadoop
Hadoop由两个模块组成:一个是Hadoop分布式文件系统(Hadoop Distributed File System),另一个是MapReduce系统。
Hadoop分布式文件系统是一个主从式的分布式文件系统,HDFS 集群由一个NameNode和多个DataNode组成,除此之外还有用于热备份的Secondary NameNode,防止集群出现单点故障。
MapReduce模型
MapReduce工作流
Apache Hadoop特性
①高可靠性
②高可扩展性
③高效性
④高容错性
⑤低成本
分布式系统进阶
分布式存储系统大致分为5个子方向
①结构化存储
②非结构化存储
③半结构化
④In-memory存储
⑤NewSQL
典型的分布式系统
网格系统、P2P系统、透明计算、区块链系统
虚拟化技术
虚拟化定义
虚拟化是资源的逻辑表示,它不受物理限制的约束。
虚拟化技术的分类
1、服务器虚拟化
2、网络虚拟化
3、桌面虚拟化
4、软件定义的存储
服务器虚拟化
一需多:实现服务器虚拟化后,多个操作系统可以作为虚拟机在单台物理服务器上运行,并且每个操作系统都可以访问底层服务器的计算资源,从而解决了效率低下问题。
多需一:将服务器集群聚合为一项整合资源,可以提高整体效率并降低成本。服务器虚拟化还可以加快工作负载部署速度、提高应用性能并改善可用性。
四大特点:封装、隔离、分区、相对于硬件独立。(标准接口,广泛兼容)
必备的是对三种硬件资源的虚拟化:CPU、内存、设备与IO。
为了实现更好的动态资源整合,当前服务器虚拟化支撑实时迁移。
虚拟化软件层的两种架构:裸金属架构、寄居架构
服务器虚拟化的三种技术:
-
全虚拟化(二进制翻译技术BT)
-
半虚拟化(准虚拟化):虚拟机系统和虚拟化软件层通过交互来改善性能和效率
半虚拟化不支持未经修改的操作系统,它的兼容性和可移植性较差
-
硬件辅助虚拟化
虚拟化的优点
1、提高资源利用率
2、提高劳动生产率
3、节约了大量成本
4、硬件整合
5、改进IT架构的兼容性
虚拟化前景
1、快速部署
2、兼容遗留软件
3、系统隔离
4、灾难恢复
虚拟化技术:
1、在线资源扩展
2、自动负载均衡
3、业务不间断维护
4、高可用性
5、工作量的资源管理
KVM虚拟机技术
可以在全虚拟化模式下运行,也能够为部分操作系统提供准虚拟化(半虚拟化)支持
Hyper-V虚拟化技术
是准虚拟化(半虚拟化)的监视器
VMware ESX和ESXi虚拟化技术
ESX和ESXi是全虚拟化产品
虚拟化前后对比
Docker容器
容器:为了实现轻量级,操作系统级的虚拟化
Docker与VM之间的对比
Docker特性
Docker容器本质
它本质上是宿主机上的一个进程,通过namespace实现了资源隔离,通过cgroups实现了资源限制,通过写时复制技术实现了高效的文件操作。
Docker三大概念
镜像、容器、仓库
Docker常用命令
1.docker run :创建一个新的容器并运行一个命令
2.docker start:启动一个或多个已经被停止的容器
docker stop :停止一个运行中的容器
d