
OpenStack
OpenStack 系列文章
范桂飓
若抽象才是美之定义,追求明确性的我们是否象征着丑陋。
-
原创 OpenStack 系列文章
目录文章目录目录集成部署代码贡献NovaNeutronCinderPlacementIronicOctaviaKollaBlazarRallyDevstack其他集成部署《手动部署 OpenStack Rocky 双节点》《使用 Ceph 作为 OpenStack 的统一存储解决方案》代码贡献《OpenStack 贡献者须知 — OpenPGP/SSH/CLA 贡献者协议》《OpenStack贡献者须知 2 — 社区工作运作 & 代码贡献流程》Nova《OpenStack Nova2020-12-23 20:05:392371
10
-
原创 Cinder LVM Oversubscription in thin provisioning
目录文章目录目录Oversubscription in thin provisioningOversubscription in thin provisioning所谓 Oversubscription in thin provisioning,就相当于是 Thin Provisioning Storage Pool 的超分比限制,防止 Thin Provisioning Storage P...2019-09-17 18:23:57956
0
-
原创 Cinder AZ 与 Nova AZ 的同步问题
问题2019-05-07 16:50:341449
4
-
原创 Cinder 架构分析、高可用部署与核心功能解析
目录文章目录目录CinderCinder 的软件架构cinder-apicinder-schedulercinder-volumecinder-backupVolume ProviderMessaging queueDBDevice 框架多存储后端Cinder 的基本操作Cinder 与 Nova 的协同Cinder操作系统获得外部存储空间一般有以下两种方式:Block Storage...2019-02-26 12:39:191718
0
-
原创 Cinder 的 I/O QoS
目录文章目录目录前言操作步骤前言Cinder 支持 front-end 和 back-end 两种类型的存储 QoS,前者由 Hypervisor 端实现(e.g. 通过 Libvirt 设置虚拟机的存储 QoS),后者指存储设备上设置的 QoS,需要存储设备支持。 一般的物理存储设备都会支持 QoS,但 SDS 的 Ceph RBD 不支持,所以使用 Ceph 存储方案的用户一般只能使用 ...2019-01-15 15:46:441432
0
-
原创 OpenStack Blazar 架构解析与功能实践
目录文章目录目录BlazarBlazar 的安装部署Blazar 的架构Blazar 的主机资源预留功能(Host Reservation)代码实现Blazar 的虚拟机资源预留(Instance Reservation)Host AggregateServer GroupInstance ReservationBlazar 的设计思路与实现原理BlazarBlazar is a reso...2019-03-28 18:15:5430731
0
-
原创 Kolla 让 OpenStack 部署更贴心
Kolla 简介长久以来 OpenStack 部署难、 升级难的问题经常为人所诟病,便捷高效的部署、管理和运维云基础设置的 DevOps 方案是所有 OpenStack 用户(客户、云服务提供商、开发者)的共性刚需。由此,Kolla 应需而生。它基于社区的最佳实践,提出了可靠、可扩展的生产级别 OpenStack Service Containers 部署方式。简而言之,Kolla 就是充分应...2018-05-29 18:28:1610379
30
-
原创 OpenStack Placement Project(Rocky to Train)
目录文章目录目录Placement API 简介问题描述Placement API 的基本对象概念Placement API 的 DB tablesPlacement API 的 CLIPlacemet API 的实现与分析WSGIPlacement API 的 Web ApplicationPlacement API 在创建虚拟机时的调度过程OthersPlacement Aggregate ...2018-10-09 12:08:364972
0
-
原创 OpenStack Nova Placement API 统一资源管理接口的未来
目录目录Placement API为什么称之为 “未来”操作对象基本概念数据库操作样例Placement API 在创建虚拟机时的调度过程Placement REST API 摘要Placement ClientPlacement API nova-placement-api,Nova provides a nova-placement-api...2018-07-28 19:15:383953
0
-
原创 Ironic 的 Rescue 救援模式实现流程
目录文章目录目录救援模式实现 UML 图救援模式以往只有虚拟机支持救援模式,裸机是不支持的。直到 Queen 版本 Ironic 实现了这个功能。救援模式下,用户可以完成修复、Troubleshooting 裸机节点的错误配置,修改密码等工作,将裸机设置为救援模式时可以传入 rescue_password 参数。实现 UML 图用户调用 Nova 的 Rescue API;Nova...2019-06-05 12:16:571163
0
-
原创 注册 Ironic 裸金属节点并部署裸金属实例
目录文章目录目录注册(Enrollment)裸机创建裸金属实例的 Flavor部署裸金属实例问题:Failed to create neutron ports for any PXE enabled port on node解决问题:获取 Deploy Image 时 MissingAuthPlugin: An auth plugin is required to determine endpo...2019-05-11 11:53:124806
28
-
原创 手动集成 Ironic 裸金属管理服务(Rocky)
目录文章目录目录前文列表横向扩展裸金属管理服务节点配置基础设施安装 Ironic(BareMetal)安装 Nova Compute(BareMetal)配置 Neutron 提供 Provisioning Network配置 Networking-baremetal ML2 mechanism driver(Controller)配置 Open vSwitch Agent(BareMetal)...2019-05-09 11:29:143335
18
-
原创 Ironic 裸金属管理服务的网络模型
目录文章目录目录网络类型VLAN 多租户网络网络分配流程网络类型MGMT NETWORK:管理网络,承载管理流量和 OpenStack 控制流量,不受 OpenStack 控制。TENANT NETWORK:租户网络,承载租户业务流量,该网络由 Neutron 创建并管理,承载于业务网络之上。DATA NETWORK:业务网络,承载业务流量,对 OpenStack 而言,其作为 unde...2019-05-07 18:20:252674
3
-
原创 Ironic 裸金属实例的部署流程
目录文章目录目录2019-05-07 18:03:272884
0
-
原创 Ironic 裸金属管理服务的底层技术支撑
目录文章目录目录底层技术支撑DHCPNBPTFTPIPMIPXE & iPXECloud Init底层技术支撑PXE:预启动执行环境,支持客户端通过网络从 TFTP Server 下载操作系统镜像,并由此支持通过网络启动操作系统引导程序。IPMI:智能平台管理接口,一种开放标准的硬件管理接口规范,通过 IPMI 可以控制物理服务器的电源、配置启动顺序、查看 KVM Console...2019-05-07 17:31:471848
0
-
原创 Ironic 裸金属管理服务
目录文章目录目录Ironic -- Bare Metal Provisioning应用场景部署方式架构设计底层实现支撑PXE & iPXEIPMI使用 Devstack 快速体验 Ironic上层资源模型参考文章Ironic – Bare Metal ProvisioningIronic is an OpenStack project which provisions bare m...2019-05-03 21:30:064211
2
-
原创 Amphorae 与 Octavia Worker 的安全通信实现
前言在前面的章节中我们记录了 LoadBalancer、Listener、Pool、Member 等等 Octavia 核心资源对象的创建流程,本篇我们在此之上继续讨论处于 LB Management Network 上的 Amphorae 虚拟机是如何与处于 OpenStack Management Network 上的 Octavia Worker 进行安全通信的。为什么 Octavia ...2019-03-23 23:16:35852
4
-
原创 Octavia Rocky UDP 负载均衡功能试验
目录文章目录目录前言功能验证网络拓扑资源对象清单验证TSAmphorae UDP 包被非法篡改存疑前言以往,Octavia 通过 HAProxy + Keepalived 的组合来提供高可用的 TCP、HTTP、HTTPS 和 TERMINATED_HTTPS 负载均衡服务。HAProxy 是一个著名的 L4-L7 负载均衡器,功能非常强大,但细心的你或许会发现 HAProxy 的官方定义是...2019-01-07 17:40:291130
3
-
原创 Octavia health-manager 与 amphora 故障修复的实现与分析
目录文章目录目录Health Manager监控 amphora 健康状态故障转移故障迁移测试Health ManagerHealth Manager - This subcomponent monitors individual amphorae to ensure they are up and running, and otherwise healthy. It also handle...2018-11-22 14:31:101457
3
-
原创 Octavia 创建 Listener、Pool、Member、L7policy、L7 rule 与 Health Manager 的实现与分析
目录文章目录目录创建 Listener创建 Pool创建 MemberCalculateDeltaHandleNetworkDeltasAmphoraePostNetworkPlugListenersUpdate创建 L7policy & L7rule & Health Monitor创建 Listener我们知道只有为 loadbalancer 创建 listener 时才...2018-11-22 14:19:281116
2
-
原创 OpenStack Octavia(Rocky)的实现与分析
目录文章目录目录2018-11-26 17:00:426034
21
-
原创 HAProxy、Keepalived 在 Ocatvia 的应用实现与分析
目录文章目录目录Amphora启动 keepalived启动 haproxy最后Amphora创建一个 loadbalancer 需要占用一到两台 Amphora Instance 作为 “负载均衡器“ 的运行载体,实际提供高可用负载均衡底层支撑是 HAProxy & Keepalived。HAProxy:L4-L7 负载均衡器Keepalived:Linux 体系的高可用解决...2018-11-17 16:30:25982
1
-
原创 Octavia 的 HTTPS 与自建、签发 CA 证书
目录文章目录目录Octavia 为什么需要自建 CA 证书?GenerateServerPEMTaskCertComputeCreateAmphora AgentAmphoraAPIClient最后Octavia 为什么需要自建 CA 证书?Note: For production use the ca issuing the client certificate and the ca i...2018-11-17 16:26:391750
0
-
原创 Octavia 创建 loadbalancer 的实现与分析
目录文章目录目录Octavia Controller Workerdatabase_tasks.MapLoadbalancerToAmphoracompute_tasks.CertComputeCreate & ComputeCreatenetwork_tasks.AllocateVIPnetwork_tasks.PlugVIP最后##从 Octavia API 看起通过 CLI 创...2018-11-17 16:21:121310
2
-
原创 Octavia 项目加速 OpenStack LBaaS 落地大规模应用场景
目录目录OpenStack LBaaSOctavia软件架构网络架构操作对象基本概念功能实现基本概念Ocatvia Daemon 列表部署 Ocatvia手动方式集成 OctaviaDevstack 方式部署Octavia 使用测试分析OpenStack LBaaSLBaaS(Load Balancer as a Service)是 Open...2018-07-30 09:46:123939
18
-
原创 OpenStack 的 SR-IOV 虚拟机热迁移
目录文章目录目录前言SR-IOV Pass-through 虚拟机热迁移的问题基于 macvtap 层的 SR-IOV 虚拟机热迁移Workaround SR-IOV Pass-through 虚拟机热迁移中兴的 SR-IOV 热迁移实现思路前言NOTE:本文主要参考了国防科技大学计算机学院的论文《基于SR—IOV的IO虚拟化技术》(编号:1005—1228(2010)05-0001-05)...2019-11-26 14:50:572991
3
-
原创 OpenStack 虚拟机热迁移流程图
目录文章目录目录源计算节点与目的计算节点之间的交互流程Nova 和 Neutron 之间的交互流程源计算节点与目的计算节点之间的交互流程热迁移主要包括三个阶段:pre_live_migration 阶段:热迁移前的准备阶段,主要在目的计算节点上提前准备虚拟机资源,包括网络资源,例如:建立虚拟机的网卡,然后将网卡加入 OvS br-int 网桥。如果该阶段失败,会有回滚操作。内存迁...2019-10-26 15:34:353709
0
-
原创 OpenStack Nova Release(Rocky to Train)
目录文章目录目录前言演进方向Cellv2 更新RockySupport disabling a cellSteinHandling a down cellTrainCount quota usage from placementNova Scheduling 更新RockyComplex Anti-Affinity PoliciesReport CPU features to the place...2019-10-09 20:24:191298
5
-
原创 Nova Conductor 与 Versioned Object Model 机制
目录文章目录目录Nova Conductor数据库访问代理机制Versioned Object Model 机制Nova ConductorConductor 服务作为 Nova 核心部件之一最初在 Grizzly 版本中发布,在整个 Nova 中充当着组织者的角色。主要提供了 3 个功能:nova-conductor 连接了 nova-api、nova-compute 和 nova-...2019-07-23 17:48:07678
0
-
原创 Nova 实现的 Fit Instance NUMA to Host NUMA 算法
目录文章目录目录前文列表numa_fit_instance_to_host_numa_fit_instance_cell_numa_fit_instance_cell_with_pinning_pack_instance_onto_cores前文列表《OpenStack Nova 高性能虚拟机之 NUMA 架构亲和》《OpenStack Nova 高性能虚拟机之 CPU 绑定》《Open...2019-07-04 18:59:311204
0
-
原创 OpenStack 高性能虚拟机之大页内存
目录文章目录目录前文列表CPU 内存寻址寻址空间虚拟内存与虚拟地址内存分页大页内存Nova 的大页内存分配前文列表《多进程、多线程与多处理器计算平台的性能问题》《OpenStack 高性能虚拟机之 CPU 绑定》《OpenStack 高性能虚拟机之 NUMA 亲和》CPU 内存寻址寻址空间我们知道,数据在存储器(RAM)中存取是有规律的,CPU 在 RAM 中寻找到特定数据的过程就...2019-06-21 18:43:542950
0
-
原创 OpenStack 虚拟机启动流程 UML 分析(内含 UML 源码)
目录文章目录目录前言API 请求Nova API 阶段Nova Conductor 阶段Nova Scheduler 阶段Nova Compute 阶段(计算节点资源分配部分)Nova Compute 阶段(NUMA、CPU 资源分配部分)Nova Compute 阶段(虚拟机资源构建部分)前言上图可见 虚拟机启动流程 之于 OpenStack 的含义,本文秉承一图抵前言的原则,通过 UM...2019-04-13 23:54:291509
0
-
原创 OpenStack 虚拟机冷/热迁移的实现原理与代码分析
目录文章目录目录前文列表冷迁移代码分析(基于 Newton)Nova 热迁移实现原理热迁移代码分析向 libvirtd 发出热迁移指令轮询监控 libvirtd 的数据迁移状态参考资料前文列表《OpenStack 虚拟机的磁盘文件》《基于 Libvirt 的 KVM 虚拟机 Live Migration 实现原理》《OpenStack 虚拟机的冷/热迁移功能实践》冷迁移代码分析(基于 ...2019-03-21 20:24:463028
0
-
原创 OpenStack 虚拟机的磁盘文件类型与存储方式
目录文章目录目录虚拟机的磁盘文件类型虚拟机磁盘文件的存放方式QCOW2 镜像格式与 qemu-img 指令虚拟机的磁盘文件类型Nova 虚拟机的虚拟磁盘主要包含有 Root Disk、Ephemeral、Swap、Block Storage 等几种类型。Root Disk – virtual root disk size in glgabytes. This is an ephemera...2019-03-21 17:48:152047
0
-
原创 OpenStack 虚拟机冷/热迁移功能实践与流程分析
目录文章目录目录迁移的应用场景迁移的类型冷迁移热迁移迁移时需要处理的数据类型迁移的运行场景迁移的应用场景当物理服务器发生故障修复时,或当物理服务器升级维护时,需要将物理服务器之上的虚拟机热迁移出去。当某个物理服务器上的负载超出安全阈值,需要将其中一些虚拟机迁移出去,以此释放资源。对一个区域中的物理服务器进行虚拟机负载均衡。迁移的类型冷迁移冷、即冷冻,数据的冷冻,不存在动态数据的...2019-03-15 18:33:343641
0
-
原创 Nova rebuild for boot from volume issue
目录文章目录目录Nova boot from volumeRebuild InstanceRebuild for boot from volumeNova boot from volume众所周知,Nova Launch Instance 有很多种方法,boot from image、boot from volume、boot from snapshot 等等。一般的我们在测试环境中大多会选...2019-01-17 13:59:37932
3
-
原创 OpenStack Nova 高性能虚拟机之 CPU 绑定
目录目录前文列表KVM 的功能列表KVM 工具集KVM 虚拟机的本质是什么vCPU 的调度与性能问题Nova 支持的 vCPU 绑定vcpu_pin_set 配置项CPU 绑定策略前文列表OpenStack Nova 高性能虚拟机之 NUMA 架构亲和 多进程、多线程与多处理器计算平台的性能问题# KVMKVM(Kernel-based...2018-07-29 22:31:524046
2
-
原创 OpenStack Nova 高性能虚拟机之 NUMA 架构亲和
目录目录服务器的计算平台体系结构SMP 对称多处理结构NUMA 非统一内存访问结构MPP 大规模并行处理结构NUMA 体系结构基本概念获取宿主机的 NUMA 拓扑Nova 实现的 NUMA 亲和Nova 定义的 NUMA 对象概念实现 NUMA 亲和的背景操作系统发行版许可证(Licensing)CPU 拓扑对性能的影响超线程对性能的影响NUMA Top...2018-06-27 17:22:005321
0
-
原创 Nova 的高性能虚拟机支撑
目录目录CPU 计算平台体系结构SMP 结构NUMA 结构MMP 结构CPU 计算平台体系结构SMP 结构SMP(Sysmmetric Multi-Processor System,对称多处理器系统),顾名思义,SMP 结构由多个具有对称关系的处理器组成。所谓对称,即处理器之间是水平的镜像关系,无有主从之分。它们平等的共享内存、总线、I/O、中断等全部计...2018-06-10 17:21:251531
0
-
原创 Openstack nova-scheduler 源码分析 — Filters/Weighting
目录目录前言调度器FilterScheduler调度器的工作流程Filters 过滤器Filters 类型Weighting 权重源码实现关键文件及其意义阶段一nova-scheduler 接收 build_instances RPC 远程调用前言本篇记录了 Openstack 在创建 Instances 时,nova-scheduler 作为2016-08-16 01:08:583109
2