大数据的基础架构:云计算

By 清华大学交叉信息研究院

大数据对于系统架构的需求

  • 显示的需求
    ——海量计算和存储
    ——快速计算
  • 隐式的需求
    ——数据的快速传输
    ——灵活性
    ——低成本

Volume Velocity Variety Value

如何实现这些需求?云计算的核心设计理念

  • 并行化
  • 规模经济
  • 虚拟化(抽象)

大数据系统的软硬件架构

Paste_Image.png

并行化

并行化理念存在于计算机的方方面面
- 并行请求:分配给多个计算机
- 并行线程:分配给多个处理器核心
- 并行指令:同一时刻有多于1条指令
- 并行数据:同一时刻有多于1个数据项
- 硬件描述:同一时刻使用所有门电路

数据中心技术:极端规模的并行化 仓库规模的计算机WSC

  • 主要部件:供电、制冷、建筑、网络、安全 存储、计算
  • 优势:规模经济 提高利用率
  • 挑战:能耗PUE(total energy/cpu energy) 运维

WSC是用网络连接起来的计算和存储设备

Paste_Image.png

WSC的特点

•使用相对同质的硬件和系统软件平台
•共享相同的系统管理
•大多数应用程序、中间件、系统软件都是自主开发,而传统数据中心则由第三方软件主导
•WSC运行相对小数目的超大型程序(或服务)
•通用的资源管理架构增强了部署的灵活性

从WSC到云:多租户

多租户、多应用如何管理?
“计算机科学的所有问题,都可以通过增加一个层次的间接(indirection)来解决,当然除了间接层次过多的问题。”
–DavidWheeler
虚拟化:每个用户逻辑上看到
Paste_Image.png

云计算的定义

云计算Cloud Computing
既指作为服务通过互联网提供的应用程序(SaaS模式),又指提供这些服务的,位于数据中心的硬件和系统软件(公用计算)。
•云:数据中心硬件与软件
•公有云: 用即付即用的模式,开放给大众使用的云
•私有云: 一个企业或组织内部的数据中心
•公用(utility)计算: 给人以无限资源的错觉
–细粒度的记账(比如每小时)

云计算商业模式的三大特点:

  • 按需服务
  • 资源池
  • 可测量的服务(流量、API调用次数等)

云计算发展起来的技术推动

•数据中心技术和WSC
•宽带网络普及化
–数据可以自由进出数据中心
•大规模分布式系统的成熟
–基础设施软件: 例如Google File System
–故障转移, 防火墙…
•虚拟化技术
–X86作为通用的指令集架构, 快速的虚拟化
•开源软件带来的一系列标准化
–标准软件栈, 大部分开源(LAMP)

云计算发展的市场条件

•大规模互联网应用(社交网络、多媒体)
–规模经济
–需求增长促进数据中心建设增长
–无法预测的应用增长速度Zynga,Netflix
•大数据应用
–日志分析
–机器学习应用

云计算的分类

•指令集虚拟机(Amazon EC2, 3Tera)
•运行时系统虚拟机(Microsoft Azure)
•框架型虚拟机(Google AppEngine, Force.com)
•折衷: 灵活性/可移植性vs. “内置”功能
Paste_Image.png
另一种(更普遍的)分类方法
•软件即服务(SaaS): 消费者使用提供商运行在云设施上的应用程序,基本无法控制程序或基础架构。
•平台即服务(PaaS): 消费者将自己编写的程序,或者利用提供商的库、服务、工具编写的程序部署在云基础设施上。消费者可以控制应用程序,但不能控制基础设施。
•基础设施即服务(IaaS): 提供处理、存储、网络和其他基础计算资源,消费者可以利用这些资源部署运行任意程序,包括操作系统或者应用程序。

虚拟化

为什么要虚拟化? Partitioning + Abstraction
•分区Partitioning
–分享: 打破一个大资源
–服务器
•抽象Abstraction
–用一个指令集仿真另一个指令集
为什么要虚拟化?Pooling,Security,Management
•资源池
–聚合: 将多个资源结合起来
–合一:例如存储
–动态: 快速分配
•虚拟机
•隔离: 保护消费者隔离其他租客
–例如虚拟专用网(VPN)
•便于管理
–测试
–机动性
虚拟化的概念是广泛的
用户虚拟化
应用程序虚拟化
桌面
服务虚拟化
操作系统虚拟化
服务器虚拟化
存储虚拟化
网络虚拟化
数据中心虚拟化的三个重要内容
•计算虚拟化
•存储虚拟化
•网络虚拟化

计算虚拟化

Paste_Image.png
• 主操作系统:运行在真实机器之上
• 客户操作系统:运行在主操作系统之上
– 例如,Windows XP可以运行在Win 7上
• Hypervisor:支持运行在多个虚拟机上上的软件
– 类型1:运行在真实机器之上,例如,Xen、VMWARE、ESXi
– 类型2:运行在主操作系统之上,例如,MS Virtual PC
– 类型0:1和2兼有,例如,Linux KVM

服务器虚拟化考虑的三个问题
•指令集的翻译二进制翻译
–如何快速执行
–如何执行需要更高权限的指令
•I/O设备的仿真
–如何让虚拟机操作系统访问不支持的硬件
–如何保护I/O性能
•保护处理器的数据结构影子处理器
Paste_Image.png

Paste_Image.png
当前解决方式
•半虚拟化Para-virtualization
–修改虚拟机操作系统,不能做的操作就不要做
•影子页表
–拒绝客户操作系统对实际页表条目的任何访问
–捕获访问请求,在软件中仿真
•硬件支持的虚拟化
–二级地址转换表(SLAT)
•AMDAMD-VRVI(RapidVirtualizationIndexing)
•IntelVT-xEPT (Extended Page Table)

网络虚拟化:基础

Paste_Image.png
网络虚拟化举例:VLAN
•最简单目标:提供单一的二层网络
–限制广播域
•VLAN
–端口分属不同VLAN
–多个VLAN共享一个端口
•Trunk模式
•VLAN标签(12bits)
•最多支持4096VLAN

Paste_Image.png

Paste_Image.png

网络虚拟化:软件定义网络

支持网络虚拟化的新技术:软件定义网络
•传统网络
–控制面与数据面集成在同一个设备中
–不同网络设备之间通过协议决定如何转发
Paste_Image.png

Paste_Image.png

Paste_Image.png
笔记:发送包到DST,如果交换机不清楚下一步发送方向,询问controller,controller会告知下一步的传送方向。每一步都需要缓存,以便于减轻controller的压力。

存储虚拟化:用户接口

存储虚拟化的意义
•独立于数据位置
–扩展性强,容量大
–易于管理(磁盘可集中存储)
–提升磁盘使用率
•独立于物理存储技术
–易于升级
–可用性的优化(多路径访问、冗余)
–易于维护(在线的后台备份、恢复)
存储虚拟化的三类接口
•块接口
–本地块存储
•本地磁盘(SATA,SAS)
•本地磁盘阵列(RAID)
–远程块存储接口
•光纤通道
•iSCSI
•文件接口
–文件系统
–网络文件系统(NFS,CIFS,HDFS)
–VFS
•对象存储接口
–亚马逊S3
–OpenStackSwift

Paste_Image.png
存储区域网络SAN vs网络附接存储NAS
•存储区域网络
–StorageAreaNetwork(SAN)
–存储服务器通过专用存储网络连接,例如光纤通道(FC)
•网络附接存储
–Network attached storage (NAS)
–存储服务器通过通用的网络来访问,例如以太网

Paste_Image.png

Paste_Image.png
虚拟化总结
•优势
–统一、抽象的接口隐藏了复杂的物理硬件
–灵活,可以软件定义
–易于管理,更容易保证安全
•问题
–虚拟化有一定的资源开销
–通常没有实现性能的隔离
–过多层的抽象:如何调试?
发展趋势:软件定义数据中心?
•网络功能虚拟化
–防火墙、入侵检测系统虚拟化
•资源的管理和调度
–本课程后边会详细介绍
•还有什么可以虚拟化/软件定义的?
–空调?供电?建筑?
•目标:性能+灵活性+管理
Openstack的目标和基本组件
OpenStack的目标
•一个云操作系统,能把数据中心变为资源池
•提供一个管理层,便于高效地控制、自动化、分配资源
•通过自助服务式的门户来方便操作员、系统管理员以及终端用户(“I want AWS-type service!”)
•能让开发者通过标准API来搭建云上可用的应用程序

Paste_Image.png

Paste_Image.png

Paste_Image.png

Paste_Image.png

Paste_Image.png
其它组件
•鉴权服务(Keystone)
•用户界面(Horizon)和命令行工具(CLI)
•对象存储(Swift)
•虚拟机镜像存储(Glance)
•消息队列
•API

一个虚拟机的生命周期

Paste_Image.png

Paste_Image.png

Paste_Image.png

Paste_Image.png

Paste_Image.png

Paste_Image.png

Paste_Image.png

Paste_Image.png
云计算的核心思想
•性能:并行化
•经济性:规模化、公有云
•可管理:虚拟化
从云计算到大数据
•虚拟化提供了硬件资源的抽象
•用户看到的接口
–(虚拟)计算节点
–(虚拟)网络
–(虚拟)存储
•仍然是许多独立的设备:需要分布式系统编程
•如何提供一个易于编程的“单一系统”感觉?
–分布式存储、计算框架、任务调度
什么是一个好的云计算系统?
•让用户彻底忘记底层的硬件
什么是一个好的大数据系统?
•让用户彻底忘记今天讲的内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值