openstack之虚拟机创建流程分析】的更多相关文章

这篇博文静静的呆在草稿箱大半年了.假设不是由于某些原因被问到,以及由于忽略它而导致的损失,否则我也不知道什么时候会将它完毕.感谢这段时间经历的挫折,让我知道不足.希望你能给我更大的决心! 本文试图具体地描写叙述openstack创建虚拟机的完整过程.从用户发起请求到虚拟机成功执行,包含client请求的发出.keystone身份验证.nova-api接收请求.nova-scheduler调度.nova-computer创建.nova-network分配网络.对于每个模块在创建虚拟机的过程中所负责…
https://yikun.github.io/2017/09/27/OpenStack-Nova%E8%99%9A%E6%8B%9F%E6%9C%BA%E5%88%9B%E5%BB%BA%E6%B5%81%E7%A8%8B%E8%A7%A3%E6%9E%90/ 1. 概述 Nova是OpenStack中处理计算业务(虚拟机.裸机.容器)的组件,整体的虚拟机创建流程自然是学习和熟悉Nova组件的第一步.本篇文章主要基于OpenStack Pike版本,基于最新的Cell v2架构部署为例,来介绍…
preface 在上一章节中,我们可以在无web管理界面上创建并启动虚拟机,虽然可以这么做,但是敲命令太繁琐,所以此时我们可以安装openstack web管理界面,通过web界面的图形化操作openstack,更加方便的使用openstack. Horizon简介 提供一个web界面操作openstack的系统. 使用Django框架基于Openstack API 开发 支持Session存储在DB.Memcached. 支持集群. 动手安装 由于Horizon也要依赖于apache等web服…
nova-api公布api服务没实用到一个些框架,基本都是从头写的.在不了解它时,以为它很复杂,难以掌握.花了两三天的时间把它分析一遍后,发现它本身的结构比較简单,主要难点在于对它所使用的一些类库不了解,如paste.deploy/webob/routes.对于paste.deploy,结合它的官网文档把它的源代码看了两遍.webob看的是源代码.routes看的是文档.对于这些类库提供的函数,假设从文档中去理解他们想要做什么,真不是件easy的事.查看事实上现源代码,就明了了.只是在分析源代码…
前言: 当neutron-server创建了port信息,将port信息写入数据库中.流程返回到nova服务端,接着nova创建的流程继续走.在计算节点中neutron-agent同样要完成很多的工作来支持主机的通信. 简要流程: 详细代码分析: spawn()作用: 准备磁盘信息 获取镜像的获取路径 准备启动xml文件 创建主机和网络,调用create_domain_and_network()函数获取网络信息. 准备启动xml文件的过程稍后有详细分析. create_domin_and_net…
前言: 在openstack的学习当中有一说法就是网络占学习时间的百分之七十.这个说法或许有夸大的成分,但不可否认的是openstack中的 网络是及其重要的部分,并且难度也是相当大.试图通过nova创建虚拟机过程中nova和neutron服务交互的过程来学习openstack网络. 写个学习笔记,整理思路. 版本信息: openstack版本:Newton linux系统:ubuntu1604-server 简要流程: nova在创建虚拟机时会向neutron请求ip和mac地址等port信息…
前言: 当nova服务发送了创建port的restful调用信息之后,在neutron服务中有相应的处理函数来处理调用.根据restful的工作原理,是按照 paste.ini文件中配置好的流程去处理该条调用.本节从neutron代码中的create_port()函数开始说起. 简要流程: 下面是调用的流程图.  详细代码: 以上是简要流程图,下面是具体的代码分析. create_port() 功能: 调用create_port_db()函数产生port数据. 更新安全组 绑定port _cre…
续上一篇Openstack安装配置 一,keystone交互认证阶段 1,发送用户名和密码给keystone认证获取token 2,带着token访问nova-api 3,nova-api使用token去keystone认证验证token有效性 二,nova组件交互阶段 4,往数据库写入虚拟机信息 5,把请求放入消息队列 6,nova scheduler监听消息队列 7,nova scheduler连接数据库查询计算节点并进行调度选择一个nova compute来创建虚拟机 8,nova com…
hyperstart中运行的pod的核心数据结构如下所示: struct hyper_pod { struct hyper_interface *iface; struct hyper_route *rt; struct portmapping_white_list *portmap_white_lists; char **dns; struct list_head containers; struct list_head exec_head; char *hostname; char *sha…
还是先上图吧,无图无真相 别以为真懂Openstack!先别着急骂我,我也没有说我真懂Openstack 我其实很想弄懂Openstack,然而从哪里下手呢?作为程序员,第一个想法当然是代码,Code Talks,什么都可以忽悠,代码是实实在在的,何况原来也深入读过Lucene, Hadoop的源代码,总以为从代码下手,背后的原理变了然了. 说干就干,我喜欢读取代码的方式是按照情景阅读,比如在Lucene中跟踪索引的过程,跟踪搜索的过程,比如在Hadoop中,跟踪写入文件的过程,跟踪Map-Re…