自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

熊孩子会撒野

小二,来两斤梦想~

  • 博客(14)
  • 收藏
  • 关注

原创 深挖Openstack Cinder - 数据库表结构

”深挖数据库表结构,相当于从原子角度去剖析整个模块组成。“  --- 我说的表清单1. backups – 数据备份2. cgsnapshots – 一致性组快照3. consistencygroups – 一致性组.4. driver_initiator_data – 驱动发起人数据5. encryption – 加密6. image_volume_cache_entries7. iscsi_t...

2018-06-14 10:03:05 2178

原创 深挖Openstack Glance - 源码分析(2)

3. 获取image信息

2018-06-13 11:41:47 442

原创 深挖Openstack Glance - 源码分析(1)

v1版本API功能解析1. 创建image2. 更新image3. 获取image信息(metadata和data)4. 删除image5. 获取image列表6. 获取image元数据(metadata)7. 下载image这些功能都在/glance/api/v1/images.py里,该文件主要是提供与image相关的操作。接下来将对这些功能逐个分析:1. 创建image@utils.muta...

2018-06-12 14:42:17 1070

原创 深挖Openstack Glance - 基本知识

一. glance的作用:提供虚拟机镜像的发现、注册、检索,使用RESTful接口接收外部请求 二. 版本说明glance有两个版本API v1/v2,其中v2版本(F版)较为简洁,将glance-api和glance-registry合并在一块。1. glance-api:接收REST API的请求,分析消息请求信息并分发命令(如新增、删除、更新等)2. glance-registry:负责接收...

2018-06-11 10:49:10 966

原创 深挖Openstack Nova - evacuate疏散函数

一. 当实例所在的节点发生故障不可用时,可执行evacuate操作,在另外一个新节点rebuild该实例,实现高可用。这可以是OpenStack计算节点HA的一种实现方案。二. API调用nova.servers.evacuate(server=fm['id']), on_shared_storage=True1. on_shared_storage参数在2.14版本后废除,自动检查是否为共享存储...

2018-06-08 10:15:47 5530 1

原创 深挖Openstack Nova - Compute模块

一. nova-compute是一个非常重要的守护进程,负责创建和终止虚拟机实例,即管理着虚拟机实例的生命周期,包括instance的launch、shutdown、reboot、suspend、resume、terminate、resize、migration、snapshot等。 二. 例如对于创建虚拟机请求,nova-api接收到客户端请求后,经过nova-scheduler调度器调度,再将...

2018-06-07 10:25:48 3684

原创 深挖Openstack Nova - Scheduler调度策略(2)

当OpenStack自带的调度算法无法满足自己的业务需求时,这时我们可以增加自定义调度算法。现在有如下需求:需求1. 同一项目的多个实例分散到不同的计算节点上;需求2. 机柜感知 - 同一项目的多个实例分散到不同的机柜上;需求3. 要求实例B不放在与实例A相同的节点上。思路:需求1:(1)自带的ServerGroupAntiAffinityFilter过滤器可解决,创建实例时指定scheduler...

2018-06-06 09:55:55 1494

原创 深挖Openstack Nova - Scheduler调度策略(1)

一.  Scheduler的作用就是在创建实例(instance)时,为实例选择出合适的主机(host)。这个过程分两步:过滤(Fliter)和计算权值(Weight)1. 过滤:过滤掉不符合我们的要求,或镜像要求(比如物理节点不支持64bit,物理节点不支持Vmware EXi等)的主机,留下符合过滤算法的主机集合。2. 计算权值通过指定的权值计算算法,计算在某物理节点上申请这个虚机所必须的消耗...

2018-06-06 09:37:11 4929 2

原创 深挖Openstack Nova - 实例创建(5)

--------------- 紧接上篇 nova实例创建(4) --------------------继续深入_provision_instances方法:3》在循环中,实例创建时需发送状态更新通知# 为实例的初始化建立发送一个状态更新通知,表示实例状态从不存在到建立# send_update_with_states:# 在一个实例中,发送compute.instance.update来通...

2018-06-05 18:12:16 486

原创 深挖Openstack Nova - 实例创建(4)

--------------- 紧接上篇 nova实例创建(3) --------------------(8)完成配额管理instances = self._provision_instances(context, instance_type, min_count, max_count, base_options, boot_meta, security_groups, ...

2018-06-05 15:17:50 429

原创 深挖Openstack Nova - 实例创建(3)

--------------- 紧接上篇 nova实例创建(2) --------------------5. 分析create方法在最开始的run_instances方法中可知创建实例是通过self.compute_api.create方法来实现的,该方法是在/nova/compute/api.py里# 建立所有类型的实例都要执行# 返回一个元组(实例或者是reservation_id的元组)...

2018-06-05 11:08:44 587

原创 深挖Openstack Nova - 实例创建(2)

--------------- 紧接上篇 nova实例创建(1) --------------------3. 分析show方法在2.1中的image = self.image_service.show(context, internal_id)中,由于S3是EC2的存储平台,所以调用/nova/image/s3.py的show方法def show(self, context, image_id)...

2018-06-04 23:38:15 412

原创 深挖Openstack Nova - 实例创建(1)

nova版本:Liberty一、创建实例涉及的主要目录结构(1)/nova/api/ec2/cloud.py:云控制器,执行EC2 REST API的调用,这个调用是通过AMQP RPC分派到其他节点(2)/nova/image/s3.py:从S3获取数据,建立镜像等相关方法(3)/nova/image/glance.py:使用Glance作为后端的镜像服务的实现(4)/nova/compute/...

2018-06-04 23:32:16 1440

原创 重构 - 观察者模式

在一个实现通知功能的接口中,通常用一个通知类型notifyType来区别不同的业务场景,然后用switch来划分不同的逻辑流向。String notifyType = "";switch (notifyType) { case "类型1": doType1(); // 逻辑1 break; case "类型2": doType2(...

2018-06-04 23:25:19 215 4

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除