当前课程知识点:大数据系统基础 > 2.云计算 > 授课视频 > 2.13存储虚拟化:用户接口
下面我们介绍
数据中心虚拟化的第三个内容
就是存储的虚拟化
我们首先来看看
存储虚拟化的目的
和用户的接口是什么样子的
为什么我们要虚拟化这个存储
存储 首先它很重要
你提到数据它必然要存储
我们传统的存储
是挂在机器上的
那么挂在机器
是实际上你数据存储的位置
和你的机器是绑定在一起的
但是这个东西
并不是我们真的想需要的
首先你一个机器里
能放多少块硬盘
你能放多大量的存储
这个是有限的
第二个如果你机器坏了
你机器想移动的话
你存储的数据跟着一起移动
这个都不方便
第三个
是如果你把每个机器里
如果你放20T的硬盘
然后你有100机器
实际上你每台机器的硬盘
你也跑不到20T
因为它是一个静态的
分布的一个东西
你每台机器不能填得特别满
所以你最后的浪费也非常大
所以一个现在
大家比较希望的方式是
我把存储放在一起
我想接在哪台机器上
就接在哪台机器上
如果每个机器20个硬盘
然后我有100个机器的话
那么我宁愿放一个
2000T的磁盘盒子
如果我能够放的话
我放上一个巨大的存储
里头有2000个T的硬盘
我可以把它接在一台机器上
我也可以分成100台机器接
然后我想接多少就接多少
这样又方便管理
而且利用率也高了
有些应用得多 我就多接一点
应用少就少接一点
第二个好处是它独立于
这种实际的
物理存储技术的实现
它也比较容易升级
比较容易维护
比如说你的存储量扩大了
如果它不是放在一起的存储
你分别在每台机器上
你需要在每台机器上换硬盘
这个东西是
非常麻烦的一个过程
或者比如说有了新的存储技术
或者是你更有钱了
或者是你的生意做大了
或者是你中了彩票了
反正你更有钱了
你想买一个更好的存储
那么这种集中式的存储
你直接换掉这个存储设备
但是它提供的接口一模一样
每台机器觉得根本就没变化
我只是变得
一个更大更快的存储了
这个时候会比你
分别单独独立管理存储
要容易很多
况且如果你把存储放得越集中
你越容易进行冗余
比如说你更容易做负载均衡
你的存储的性能
也会变得更稳定
因此我们希望
能够把存储
放成一个巨大的存储
但是事实上
当然我们不可能
把一个存储
做得非常非常大的
尤其是大数据这样的应用
我们把所有的数据中心的存储
都放在一起
所以这个就是存储虚拟化的
这么一种概念
是我们虚拟的
在接口上
我们提供了一个足够大
足够灵活的这么一个存储
存储虚拟化有三类不同的接口
第一种就是块的接口
所谓块接口的话
就是本地磁盘
大家都很熟悉
如果本地磁盘挂在Linux上
或者挂在Windows上
操作系统是通过磁盘块这种概念
来访问磁盘的
那么块接口的
虚拟接口磁盘的话
它就提供了这样一个
就像本地磁盘一的
这样一种访问接口
所以这种块接口的虚拟化存储
放在机器上
你看起来它就是一块磁盘
你可以对磁盘进行分区
格式化 创建文件系统
进行这种操作
另一种存储
可能大家在家里头
或者是小型的单位
比较常用的
就是一种文件系统的接口
它是一个网络文件系统
你可以挂接一个
比如说挂一个(03:21)
就是windows文件系统
或者挂一个NFS
在这种情况下
它是提供了一个
文件系统的接口
所以你跟它要
你说我要这个路径上这个文件
那么它就返给你
这个路径上这种文件
但是你不能格式化它
你也不能够
在上头创建新的文件系统
因为它本身就是个
已经提供了文件系统的接口了
它有文件的概念
这个在使用上
它也能够提供一定的方便
因为它有一系列的
比如说它的一致性
数据一致性的
这些个管理之类的
那么第三类
存储在云计算里头比较常用
它是对象存储接口
它说我不再提供一个
什么文件系统
或者是块这种接口
我不再提供这种老式的
为了向过去单机的
系统兼容的这样一种系统了
那我给你的是一个对象的接口
你给我一个对象的键
就是一个key
我就给你一个对象的值
这个key不是个文件名
因为它没有路径的概念
这种接口
待会我们会简单地介绍一下
像亚马逊的S3
或者像OenStack Swift
它都是这样一种接口
这种存储系统的好处是
一个是它的成本比较低
它可以规模做得巨大
因为它整体的
包括它的一致性考虑
包括它的同步和锁的概念
都会非常的简单
这是存储虚拟化三类的接口
我们相信文件接口
大家都会比较熟悉了
因为大家都用过网络的NFS
用一些网络存储的设备
所以我们下面重点介绍一下
这个块接口和对象存储的接口
其实块接口的协议
其实是很多的
像iSCSI 像FCOE
像这些 都是一些
比较常见的块接口的协议
它们之间是有区别的
是有非常细微的区别
但是它们接口的形式
都是一模一样的
都是一个文件块
我给你一个块的ID是一个数
那边就返回了一个
固定大小的文件块
是4k 8k 16k 这个块的大小
大家可以定义
但是都是这样的
有一个块的ID 或者块的地址
那边就返回了一个文件块
这个块接口的好处
就像刚才说的
我们可以直接把它
挂在操作系统上
看起来就像一块磁盘
你可以格式化 可以分区它
这些不同的协议之间的区别
主要在于
它到底是谁来进行的
这个拥塞控制
这叫做Congestion control
或者叫Flow control
它是不是利用了TCPIP的协议
以及它到底能不能
通过这个广域网
它是不是能够通过三层的网络
还是它必须在
二层的网络上跑
它主要都是这一系列的区别
对于这些协议
大家了解一下就好
具体的细微的差别
这个东西如果要真的讲的话
可以讲一节课 两节课
都可以讲下去
对于对象存储 对象存储
通常采用的协议是一个
非常简单的 就是HTTP协议
就像我们访问网页一样的
这样的协议
通常来讲
它定义了一个rest的接口
我们想访问某一个对象
我们就给他发送
这样的一个请求
或者是个geist的请求
或者是一个post的请求
如果你想改 rest的接口说了
如果凡是要改变里头的
状态的话
那么我们用post请求
如果凡是读一下的话
就应该用gait的请求
所以你gait一个东西
那么它发送的内容
包括了一个验证的字符串
这是一个基于公要 私要的
那些个做的一个证书
你发送这么一个验证字符串
表明是我
然后你给它一个路径
这个路径就是相当于它的key
但是我们说这玩意儿是个路径
这只是我们一种说法
但它实际上真的不是个路径
它就是一个扁平的命名空间
你可以管它叫这样的东西
你看起来像一个文件名
像一个完整的路径
但是它斜杠什么都不代表
斜杠这是一个普通的字符
所以它这个key的名字
就叫这个东西
它并不代表
这里有一个目录叫2006
这没有这个意思
所以它就是一个
这样的一个key
然后它把这个拿过去之后
这个人一看
我就找到这个key
到底在什么地方
我把这个value找出来
我把这个value
给它编码成一个HTTP
能接受的这样一个文本的形式
然后返给这个客户端
所以它是一个非常简单的协议
这种协议
都是基于超文本传输的
这种情况有什么好处
你不需要特别的客户端
你用一个什么COL 什么
随便能够访问
这种超文本的协议就可以
然后它所有的验证
都是基于标准的HTTP
它比较开放
然后也没有什么
是一种编码的方式
你拿过来之后
能确保它能解开
而且它可以重用很多很多
我们当时做这种HTTP
或者做大规模网络服务
所产生的一些技术
比如说高速的这种
网页服务器的接口
等等一系列的东西
当然它的问题是
它并不是一个
传统的文件系统的接口
你想在上头
直接跑一个windows
那是不可能的
因为它只是一种key value的
这样的一种形态
但是现在随着云计算的推广
随着这种系统的规模越做越大
这种对象存储的成本越做越低
对象存储
现在也是成为了
大数据处理的
一个非常重要的
一种存储的形式
像Hadoop
像之后会讲到Hadoop
讲到Spark
这是讲到Spark的缓存这些层
都是直接支持
这种对象存储的
它可以把这种对象存储上头
再封装成一种
象Hadoop 能够接受的
一种文件系统的样式
-授课视频
--什么是大数据
--大数据典型应用
--大数据的特点
--大数据技术体系
--大数据生态系统
--大数据技术挑战
--课程内容
-1. 绪论--Quiz 1
-授课视频
--2.2并行化理念
--2.9计算虚拟化
-2.云计算--Quiz 2
-授课视频
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
-3.文件存储--Quiz3
-授课视频
--4.13类似框架
--4.14章节总结
-4. 处理框架--Quiz4
-授课视频
-5.内存计算--Quiz5
-授课视频
--数据副本及一致性
--节点本地数据存储
-6. NoSQL--Quiz6
-授课视屏
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
-7. 流计算--Quiz7