Instruction
云计算就是网络计算,分布式计算,并行计算,虚拟化等一系列计算机技术的结合。
主要分
IaaS
基础设施即服务,将it基础设施提供给客户,cpu,存储,网络
像Amazon Ec2 , 一个服务器,配置好cpu,内存 和存储
PaaS
平台即服务,数据库,分布式,应用设计开发平台,帮助开发人员一条龙开发,测试,部署
(中间件平台),不用关心底层架构(网络,cpu,存储),只需要去托管。有非常弹性的后端,浏览量大了也可以。
核心功能( 服务器集群, 分布式存储,分布式计算,分布式数据库)‘
例子 google app engine ,windows azure
SaaS
软件即服务,用户没必要防病毒了,办公应用软件
系统维护不必用户操心
SaaS是一种通过Internet提供软件的模式,厂商将应用软件统一部署在自己的服务器上,客户可以根据自己实际需求,通过互联网向厂商购买所需的应用软件服务,按购买的服务多少和时间长短向厂商支付费用,并通过互联网获得厂商提供的服务。用户购买基于WEB的软件,而不是将软件安装在自己的电脑上,用户也无需对软件进行定期的维护与管理,服务提供商会全权帮你干这些事。
例子: google docs,salesforce crm应用
类型还分 public, private, Community(属于一个组织的),Vitual Private (服务自己,但是借用第三方的),Hybrid Cloud
云计算主要特性
On-demand self-service. 按需自助服务
Broad network access. 无处不在的网络接入
Resource pooling. 资源池
Rapid elasticity. 敏捷的弹性
Measured service. 可度量的服务
Visualization
核心思想 利用软件或固件管理程序构成虚拟化层,把物理资源映射为虚拟资源。
把一个或多个物理服务器虚拟成多个逻辑上的服务器,集中管理,能跨越物理平台不受限制。
服务器虚拟化
对硬件的管理需要宿主机os协调,性能比较低
Hypervisor提供指令集和设备接口。
服务器虚拟化,cpu虚拟,内存虚拟,io虚拟
虚拟机迁移
CPU虚拟化
cpu虚拟化技术把物理cpu抽象成虚拟cpu,任意时刻一个物理cpu只能运行一个虚拟cpu的指令
存储虚拟化
将系统中分散的存储资源整合起来
NAS技术 网络连接存储技术
难点:数据状态一致性的保证,负载均衡
网络虚拟化
解决的问题: 数据中心超大流量,统一交换网络。
定义: 网络虚拟化是让一个物理网络能够支持多个逻辑网络。
例子:VLAN, VPN
网卡虚拟化
软件定义网络 SDN
把网络分为控制层和数据层
sdn不等于网络虚拟化,只是sdn这种技术非常适合网络虚拟化。本质分离数据层和控制层
例子:openflow
XEN
xen是一个开放源代码的虚拟机(vmm), 为x86架构的机器而设计。xen可以在一套物理硬件上安全的执行多个虚拟机。
xen有很多层,名字叫domain,最底层就是domain0(是在系统引导时自动创建,拥有特殊的管理权限)
所有指令均须root用户在domain0机器上执行,domain0管理以上的层。
云计算安全
云上数据安全很重要。
可信访问控制
密码学方法实现访问控制。密文检索。
数据存在和可使用性证明
云中隐私保护
虚拟安全技术
可信云计算
云服务概述
IaaS
虚拟化就是把物理的资源动态拼装 组合,产生一个个逻辑系统
ppt上visualization
虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。
可以增加资源共享
减少硬件故障引起的停机时间
提高效率
提高可靠性
Openstack
openstack是一个旨在为公共以及私有云的建设与管理提供软件的开源项目
主要三块, 计算服务nova, 对象存储服务swift, 镜像服务Glance。
计算服务nova
负责创建虚拟机并管理虚拟机实例的整个生命周期
管理虚拟机实例的整个生命周期,创建虚拟机,删除虚拟机,迁移虚拟机
组成 api,message queue,compute, scheduler,network manager, volume manager
Libvirt为各种虚拟化工具提供接口
对象服务swift
用于持久性静态数据的长期存储,通过内置沉鱼及高容错率机制实现对象存储的系统。
镜像服务Glance
系统名为Glance,提供虚拟磁盘镜像的 分类管理和镜像库的存储服务。
(通过swift存储快照)
Neutron
提供云计算的网络虚拟化技术,管理ip地址池,定义网络子网,路由器
Cinder
为运行的虚拟机实例提供持久的数据库存储服务,为虚拟机提供硬盘
openstack 实验
就是 进行虚拟机的分配管理,分配它的网络
Docker
传统软件开发总要不断部署,很麻烦
Docker让开发测试 运维部门一起运行
Docker就是轻量级虚拟机,实现了应用级别的资源隔离和配额
Docker是容器引擎
作用:简化配置, 提高开发效率,整合服务器,隔离应用,调试能力
Docker实验
https://blog.csdn.net/dongdong9223/article/details/52998375
安装完docker后,可以查看搜索镜像,删除镜像。
可以以镜像为模板创建容器
docker run -i -t --name=tony ubuntu /bin/bash
创建共同网络给容器通信
docker network create –driver bridge –subnet 172.22.16.0/24 –gateway 172.22.16.1 my_net2
镜像
镜像可以理解为虚拟机模板,用户按照实际需要制作一个虚拟机模板,并导入Glance服务,再根据这个镜像来启动若干个虚拟机实例。
所谓镜像文件其实和rar ZIP压缩包类似,它将特定的一系列文件按照一定的格式制作成单一的文件,以方便用户下载和使用,例如一个操作系统、游戏等。它最重要的特点是可以被特定的软件识别并可直接刻录到光盘上。其实通常意义上的镜像文件可以再扩展一下,在镜像文件中可以包含更多的信息。**比如说系统文件、引导文件、分区表信息等,这样镜像文件就可以包含一个分区甚至是一块硬盘的所有信息。**而通常意义上的刻录软件都可以直接将支持的镜像文件所包含的内容刻录到光盘上。其实,镜像文件就是光盘的“提取物”。
openstack中 虚拟机是通过镜像创建的
快照
可以看作虚拟机的备份,作用是虚拟机的恢复,恢复到某个时间点
仓库 镜像 容器
一个镜像 有一个操作系统
容器是镜像创建的实例
仓库藏着镜像
以镜像为模板可以创造多个容器
容器是镜像的实例,镜像是容器的模
容器和鏡像的關系就像對象和類
Google云计算
GFS
分布式文件系统, Hadoop的HDFS基于它的开源实现
所有核心技术的底层,相当于文件系统, 为第三方应用提供大尺寸文件存储功能
起因: 当时分布式系统普遍把容错能力放在硬件上,对硬件要求比较高,目的在不可靠的上面构建可靠分布式文件系统。
文件按照固定大小分块, chunk最大64mb
客户端首先访问master 节点,获取交互的chunk server信息,然后访问这些chunk server 完成数据存储工作。
控制流和数据流的分离
真实数据读取都从chunk server获取
master 掌握整个系统负载均衡
master和chunk server以进程方式运行,互相不干扰。
内核态:控制计算机的硬件资源,并提供上层应用程序运行的环境。
用户态:上层应用程序的活动空间,应用程序的执行必须依托于内核提供的资源。
缺点: master节点 是瓶颈
容错机制
Master备份
1, 每个元数据信息保存在各个chunk Server上master 故障时,磁盘回复。
2, master还有远程备份
Chunk Server备份
1, 每个chunk server有三个备份,分布在不同chunk server
2, 每次写入时必须将所有副本全部写入才算写入成功。
Mapreduce
分布式大数据批量处理,一个处理海量数据的并行编程模式
map(映射), Reduce(化简)
输入 <key, value>对
reduce 对相同key的value值进行处理。
容错机制
Bigtable
HBase, 启发了无数nosql数据库,google中类似于数据库
Chubby
为上述三个提供锁服务
亚马逊云计算
微软云计算
azure,提供paas平台
Hadoop
HDFS分布式文件系统
数据存储管理的基础
高度容错系统
YARN
集群资源管理系统
把JobTracker的资源分配和作业调度及监督分开
ResourceManager ,Application Manager, NodeManage
MapReduce
分布式离线计算框架
Tez
DAG计算框架
Storm 流式计算框架
分布式,容错的实时计算系统
Spark 内存计算框架
构建大规模,低延时的数据分析应用
Spark采用了基于内存的分布式数据集,优化了迭代式工作负载和交互式查询
HIVE
海量结构化的日志数据统计问题