当前课程知识点:大数据系统基础 > 2.云计算 > 授课视频 > 2.16OPENSTACK
下面我们看一下
在OPENSTACK里头
一个虚拟性的生命周期
这个可能能够帮助大家
更清晰的理解
这个云的环境
是怎么样来工作的
那么刚才我们说到
所有的OPENSTACK操作
都是通过一系列定义好的
这个API来实现的
所以用户想启动一个虚拟机
他首先要通过用户界面
或者说命令行
给API发送一个命令
要叫create instance
创建这么一个实例
他发送给API之后
在OPENSTACK的内部
所有的消息传递
都是通过一个消息传递的队列
来实现的
所以这个API
就会记录下用户到底想创建什么
然后把调度请求
通过消息队列发送给调度器
那么调度器它就看什么
它看它自己的表
它看现在我哪台机器上放了东西
然后哪台机器还有空余的地方
可以实现用户的需求
那用户需求
用户说了我要几个CPU
我要多少内存 我要多少硬盘
它看看哪台机器上
还有这样的地方
那么它就要找到可用的计算节点
也是通过消息队列
给某一个计算机点说
你能不能帮我建一个虚拟化
那如果这个节点说行
我帮你建
那么它就进入下一步
当然计算节点可以拒绝
为什么可以拒绝
它因为这种调度器
它可以是并发的
它可以有好几个调度器
为了负责均衡等等种种原因
它可以有好几个调度器
同时采取这些操作
或者是这个它有不一致的地方
就比如说
它觉得这地方还有信息
但是连接了计算节点
实际上它没有足够的资源了
或者这个节点干脆就死了
这种情况下
这节点可以拒绝 可以不理它
那么调度器会重新再选
另外一个节点
直到它找到节点为止
但是它现在一般是找三次
找不到 它就说我找不到了
然后就超时了
它就会返回一个错误给用户
但是它如果失败一次
它就会再去找其他人的
那么这个计算节点收到了任务
假如说它也有资源
它也想启这个虚拟机
那么它就会
首先它去调用
它本地的hypervisor
比如说kvm或者是什么东西
它把虚拟机启起来
启虚拟机的时候 选择的参数
当然是用户传给它的
它启动虚拟机之后
它当然要把虚拟机的主硬盘挂上
就是它虚拟机
到底在操作系统的什么位置
这个时候它就要去找操作系统
那么操作系统在什么地方
它是在一个镜像存储的服务里
镜像存储服务没有划在这里
比如说
我们把它划在一个其他的地方
叫做Glance GLance是
OPENSTACK里镜像存储服务
那么计算节点
会去这里找它的镜像
那么它会把镜像复制到本地
如果它已经复制对本地了
比如说这个镜像别的人用过
那当然最好了 可以从本地启了
如果没有的话
它会先去找Glance
把这个复制出来
这个过程它不是通过消息队列的
它就是直接找Glance直接复制
因为镜像比较大
它通过消息队列
是完全没有效率的
它就相当于
是去下载了一个镜像回来
就是这个一个感觉
然后它启了虚拟机之后
它把镜像放上
然后操作系统
就可以从镜像里头读出来了
这个虚拟机就算启起来了
启虚拟机呢还没用
这个虚拟机它没有网络访问
它是什么都连不了的
所以计算节点
就会跟网络节点发信息
这样也是通过消息队列
消息队列来讲
它是跟网络节点发信息
说你帮我启个网络吧
那么这个网络节点说好
那我帮你启一个网络
那我这个网络到底是什么什么
计算节点是通过API指导的
让网络节点帮它启一个网络
它把网络启好
给网络建立一个虚拟的端口
它自己在hypervisor
在它的那个虚拟机管理器上
建立一个端口
然后它就自己把这个虚拟机
连到虚拟的网络上去
然后网络节点通过配置了
各种网桥和VLAN等等
能够实现这么一个功能
就是说大家要找
这个虚拟机的时候
它知道到哪里去找
这个有很多种不同的实现方法
比如说用VLAN实现的
比如说用桥接实现
或者用隧道实现的等等
这些需要网络节点
和计算节点的一些配置
这些配置都是在这一步完成的
完成之后它会把建立的网络
以及和这个网络和虚拟机上的
关联这些东西都记录到数据库中
以方便以后再调动的时候再查询
这是网络配置
最后如果计算节点需要这个
新建的一个虚拟的磁盘卷的话
因为有些个人
他说我除了虚拟机上的
本地磁盘之外
我想挂一个共享的磁盘卷
这个磁盘卷是有虚拟的磁盘卷
这个时候
计算服务会去找这个存储服务
它会给存储服务一个API的调用
跟它说你帮我建一个存储的卷
另外我要多大的
我有什么要求
对可靠性对放的位置有什么要求
那么存储服务
就会在那个地方
给它建出一个卷来
然后把[00:04:46英]的地址
返回给计算节点
计算节点上的hypervisor
就会按照这个[00:04:51英]
把这一块虚拟的盘挂到虚拟机上
这时候虚拟机的操作系统
应该已经启来了
所以这时候操作系统
会用其他借用的功能
检测到我这儿多挂了一块盘
那么这个盘
我就把它挂到第一个下面
等着用户再把它[00:05:04英]上去
[00:05:06英]到那件系统里头去
这个就是虚拟机网络
和存储都已经搭好了
最后搭好之后
用户的界面
会不断的自动替你查询
搭好没有 搭好没有
它会不断的问这个API
这个API会查询数据库
看看究竟搭好没有
但是这个时候
用户一看已经搭好了
它就返回搭好 用户一看
已经搭好了
但是这个过程会用户来讲
它是异步的
注意到刚才这个过程
其实它是需要一段时间的
大概是若干秒钟
到一两分钟都不等
看你信息创建的大小
在这个过程中
用户并不是在等着
这个虚拟机创建好
它是一个完全异步的操作
它发出了这个命令之后
说你帮我创建一个虚拟机
这个操作就直接返回了
用户可以干什么都可以
然后他过一会儿再过来看
当然如果你想做成一个同步服务
你可以让界面在哪儿等着
然后它一遍一遍的查询
但是它事实上
在内部任何的操作
都是一些异步的操作
-授课视频
--什么是大数据
--大数据典型应用
--大数据的特点
--大数据技术体系
--大数据生态系统
--大数据技术挑战
--课程内容
-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