云计算概论


绪论

1
2
* 云计算的定义
* 云计算的人群

云计算的特征

1
2
3
4
5
6
7
超大规模
高可扩展性
虚拟化
高可靠性
通用性
廉价性
灵活定制

云计算的优点

  • 虚拟化技术
  • 动态可扩展
  • 按需部署
  • 高灵活性
  • 高可靠性
  • 高性价比
优点 缺点
降低用户计算机的成本 要求持续的网络连接
改善性能 低带宽网络连接环境下不能很好地工作
降低IT基础设施投资 反应慢
减少维护问题
减少软件开支
即时的软件更新
计算能力的增长 功能有限制
无限的存储能力
增强的数据安全性 无法确保数据的安全性
改善操作系统的兼容性
改善文档格式的兼容性 不能保证数据不会丢失
简化团队协作
没有地点限制的数据获取
绿色计算思想的实现者

分类

服务类型: 基础设施、平台、应用
部署范围: 公有、私有、混合

  • 并行计算、分布式计算、网格计算属于计算科学
  • 云计算、效用计算属于计算模式、商业模式

    与网格计算的区别:

  • 网格是共享资源、协同计算,是一种资源共享模型。
  • 而云计算采用网络将集群资源连接在一起,单向提供给用户资源进行数据处理。
  • 资源调度模式 :云计算以数据为中心,采用集群存储管理资源;网格计算以计算为中心,资源分布在各地。云计算进一步将硬件虚拟化。

    云计算体系结构

    IaaS、PaaS、SaaS
  • infrastructure asa service: 硬件 资源
  • platform asa service: 软件环境
  • software asa service:应用程序

云存储结构 GFS (Google File System) HDFS(Hadoop Distributed File System)

  • 存储层
  • 基础管理层
  • 应用接口层
  • 访问层

    云计算技术体系结构

  • 物理资源层:计算机、存储器、网络设施、数据库、软件
  • 资源池层:将大量相同类型的资源构成资源池
  • 管理中间件层: 资源管理、任务管理、用户管理、安全管理
  • SOA(Service-Oriented Architecture)构建层:将云计算能力封装成标准的Web Services

云计算的两条底层技术路线

  • 分布式计算:把一个任务分解成多个小人物,在不同的服务器进行计算,整合计算资源
  • 虚拟化:提供Iaas虚机,分割计算资源

    VMM的分类 VMM(virtual machine monitor)虚拟化核心软件

    管理虚拟环境、管理物理资源

  • 所谓虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机

    1
    2
    3
    虚拟化就是由位于下层的软件模块,通过向上一层软件模块
    提供一个与它原先所期待的运行环境 完全一致 的接口的方法,
    抽象出一个虚拟的软件或硬件接口,使得上层软件可以直接运行在虚拟环境上。
  • 虚拟化的优点:封装(逻辑化)\多实例–计算资源的充分利用率、绿色节能、降低成本\隔离\硬件兼容\虚拟化层特权

  • 虚拟化的缺点:性能错误安全影响复杂:虚拟化层的引入增加了系统出错层面(如有些驱动无法加载)

  • 虚拟平台:完全虚拟化 半虚拟化

  • 实现结构 :Hypervisor模型宿主模型混合模型

    IO虚拟化

  • 发现虚拟设备

  • 虚机加载驱动,通过vmm提供的后端接口驱动设备

  • 后端驱动程序调用物理驱动程序管理物理IO设备

设备模型指VMM中进行设备模拟,并处理所有设备请求和响应的逻辑模块

ssh原理

  • 客户端向服务器端发出连接请求

  • 服务器端向客户端发出自己的公钥

  • 客户端使用服务器端的公钥加密通讯密钥然后发给服务器端

  • 如果通讯过程被截获,由于窃听者即使获知公钥和经过公钥加密的内容,但不拥有私钥依然无法解密(RSA算法)

  • 服务器端接收到密文后,用私钥解密,获知通讯密钥

  • ssh-keygen命令给服务器端产生公私钥密钥对

  • Hadoop

  • HDFS

  • NameNode

  • DataNode

  • 事务日志

  • 映像文件

  • SecondaryNameNode

  • 读取数据流程

    1
    2
    3
    4
    5
    客户端要访问HDFS中的一个文件
    首先从namenode获得组成这个文件的数据块位置列表
    根据列表知道存储数据块的datanode
    访问datanode获取数据
    Namenode并不参与数据实际传输
  • 冗余副本策略,所有数据块都有副本

  • 心跳机制,保证数据一致性

  • 机架策略

Hbase

  • HBase是一个分布式的、面向列的开源数据库

  • 适合于非结构化数据存储的数据库

  • 行键是数据行在表里的唯一标识

    1
    2
    3
    * 以表的形式存放数据
    * 表由行与列组成,每个列属于某个列族,由行和列确定的存储单元称为元素
    * 每个元素保存了同一份数据的多个版本,由时间戳来标识区分
  • 列表示为<列族>:<限定符>

  • Hbase在磁盘上按照列族存储数据,这种列式数据库的设计非常适合于数据分析

  • 列族里的元素最好具有相同的读写方式(例如等长的字符串),以提高性能,可压缩

    docker

  • 把Linux的cgroup、namespace,chroot等容器底层技术进行封装抽象,为用户提供了创建和管理容器的便捷界面