Glance用来作为独立的大规模镜像查找服务,当它与Nova和Swift配合使用时,就为OpenStack提供了虚拟机镜像的查找服务,像所有的OpenStack项目一样,遵循以下设计思想: 基于组件的架构 - 便于快速增加新特性 高可用性 - 支持大负荷 容错性 - 独立的进程地址空间,避免串行错误 开放标准 - 对社区驱动的API提供参考实现 1. Glancle架构 Glance主要由三个部分构成:glance-api.glance-registry以及image store. Glance…
前言: 当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信息…
六.Libvirt 对于Libvirt,在启动虚拟机之前,首先需要define虚拟机,是一个XML格式的文件 列出所有的Instance # virsh list Id    Name                           State---------------------------------------------------- 10    instance-00000006              running # virsh dumpxml instance-000…
八.KVM 这一步,像virsh start命令一样,将虚拟机启动起来了.虚拟机启动之后,还有很多的步骤需要完成. 步骤38:从DHCP Server获取IP 有时候往往数据库里面,VM已经有了IP,很多人就认为虚拟机就得到了IP,可是总是连不进去,不知从何入手,其实界面上能看到VM的IP和VM真正从DHCP获得IP是两回事情. 步骤39:cloud-init连接Metadata Server,并注入Key Metadata Server有很复杂的架构,cloud-init连接Metadata…
四.Nova-compute 步骤17:nova-compute接收到请求后,通过Resource Tracker将创建虚拟机所需要的资源声明占用 步骤18:调用Neutron API配置Network,虚拟机处于Networking的状态 需要注意的是,这一步虽然是配置Network,但是主要是数据结构的准备,真正的设备并没有创建. 由于在创建虚拟机的时候,我们指定了将虚拟机放到哪个private network里面,因而在创建真正的设备之前,所有的信息都需要准备好. 这里的知识点设计Netw…
还是先上图吧,无图无真相 别以为真懂Openstack!先别着急骂我,我也没有说我真懂Openstack 我其实很想弄懂Openstack,然而从哪里下手呢?作为程序员,第一个想法当然是代码,Code Talks,什么都可以忽悠,代码是实实在在的,何况原来也深入读过Lucene, Hadoop的源代码,总以为从代码下手,背后的原理变了然了. 说干就干,我喜欢读取代码的方式是按照情景阅读,比如在Lucene中跟踪索引的过程,跟踪搜索的过程,比如在Hadoop中,跟踪写入文件的过程,跟踪Map-Re…
二.nova-api 步骤3:nova-api接收请求 nova-api接收请求,也不是随便怎么来都接收的,而是需要设定rate limits,默认的实现是在ratelimit的middleware里面实现的. 然而有时候,我们希望实现distributed rate-limiting,从而Turnstile是一个不错的选择. https://github.com/klmitch/turnstilehttp://pypi.python.org/pypi/turnstile 步骤4:对Token的…
续上一篇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…
前言: 当nova服务发送了创建port的restful调用信息之后,在neutron服务中有相应的处理函数来处理调用.根据restful的工作原理,是按照 paste.ini文件中配置好的流程去处理该条调用.本节从neutron代码中的create_port()函数开始说起. 简要流程: 下面是调用的流程图.  详细代码: 以上是简要流程图,下面是具体的代码分析. create_port() 功能: 调用create_port_db()函数产生port数据. 更新安全组 绑定port _cre…