深入解析OpenStack Nova源码与架构

需积分: 11 18 下载量 70 浏览量 更新于2024-07-20 收藏 868KB DOCX 举报
"openstack开发讲义涵盖了openstack接口标准和源码架构,重点解析了nova模块的功能和数据库表结构的扩展。" OpenStack是一个开源的云计算平台,用于构建私有云和公有云服务。它由多个组件组成,每个组件都有特定的功能,协同工作以提供全面的云基础设施服务。在openstack开发讲义中,主要讨论了Nova项目,它是OpenStack计算服务的核心,负责虚拟机实例的生命周期管理。 1. Nova源码架构介绍 - **Nova-api** 是CloudController,处理所有API请求,如OpenstackAPI和EC2API,执行业务流程并进行配额检查。 - **Nova-schedule** 调度器,根据算法决定虚拟机实例在哪个主机上运行,用户可以自定义调度策略。 - **Nova-compute** 关键组件,负责创建、销毁虚拟机实例,管理虚拟机生命周期,与KVM等虚拟化技术配合工作。 - **Nova-network** 处理网络相关任务,如设置网桥接口和修改iptables规则。 - **Queue** 使用RabbitMQ作为消息中间件,连接不同模块进行通信。 - **SQL database** 存储OpenStackCompute的状态信息,支持SQLite3、MySQL、PostgreSQL等多种数据库。 - **Glance** 镜像服务,包括glance-api、glance-registry和镜像存储,支持多种存储后端如Swift。 - **Dashboard** (Horizon) 提供图形用户界面,方便开发者和管理员使用。 2. 数据库表结构的扩展 - 在Nova中,数据库扩展通常涉及创建新的表或修改现有表以适应新的功能需求。扩展过程可能包括在`nova.db.sqlalchemy.migrate_repo`目录下创建数据库迁移脚本,定义表结构,然后应用这些更改到数据库。 在深入学习OpenStack开发时,理解这些核心组件的功能和它们如何协作至关重要。开发者需要掌握Nova的源码结构,了解数据库交互方式,以及如何通过扩展表结构来增强服务功能。此外,熟悉OpenStack的API接口标准和组件间的通信机制,对于开发和维护云环境是必要的。同时,OpenStack的灵活性允许开发者根据实际需求选择不同的存储、网络和调度策略,这也是其广泛应用的原因之一。
641 浏览量
学习要求: 熟悉基本的linux命令 具备基本的网络知识 掌握一门编程语言 课程特点: 深刻理解:OpenStack的设计原理,体系构架和关键技术,构建一个OpenStack环境所需的核心组件以及核心组件间的联系; 全面掌握:如何通过不同的部署工具比如packstack,部署OpenStack环境;如何通过单独部署OpenStack核心组件逐渐搭建出OpenStack环境; 定制研发:在学习openstack源码级深度解析培训后,你能了解openstack源码的体系结构,并能根据需要进行定制开发,满足您在实际生产环境中OpenStack的各种疑问和不满足的功能。 ------------------------课程内容------------------------ 课时1、课前学习环境准备 课时2、课程介绍 课时3、OpenStack概论 课时4、实例:OpenStack自动安装(Fuel) 课时5、作业:OpenStack Fuel 课时6、OpenStack安装部署答问 课时7、Keystone 详解 课时8、实例:OpenStack 手动安装 - 环境准 课时9、实例:Keystone 手动安装 课时10、实例:Keystone CLI 使用 课时11、实例:Keystone API使用 课时12、Glance详解 课时13、实例:Glance手动安装以及CLI、API 课时14、实例:Glance镜像制作 课时15、实例:Glance镜像修改 课时16、作业:Keystone手动练习 课时17、Keystone答问 课时18、作业:Glance手动练习 课时19、Nova架构及原理详解 课时20、实例:Nova手动安装 课时21、实例:Instance启动过程回顾 课时22、网络基础知识盘点 课时23、Neutron原理详解 课时24、实例:Neutron手动安装 课时25、实例:网络命名空间 课时26、实例:物理机连接openvswitch的虚 课时27、实例:租户私有网络创建 课时28、Neutron SDN 实现详解 课时29、实例:Neutron SDN 手动实现 课时30、作业:Nova、Neuron手动安装练习 课时31、作业:Neutron 相关实例练习 课时32、Neutron 答问 课时33、Cinder 原理详解 课时34、Cinder iSCSI实现原理详解 课时35、实例:Cinder 手动安装 课时36、Swift 架构与原理详解 课时37、实例:Swift 手动安装 课时38、Dashboard 介绍与演示 课时39、实例:Dashboard 手动安装 课时40、实例:Dashboard 浮动IP访问实例 课时41、实例:Dashboard 块存储的使用 课时42、实例:Dashboard 对象存储的使用 课时43、实例:OpenStack 命令行接口使用 课时44、OpenStack HA与性能调优 课时45、OpenStack Devstack 自动安 课时46、配置 OpenStack Eclipse 开发环境 课时47、配置 OpenStack Eclipse 开发环境 课时48、OpenStack 自动化测试 - 单元测试 课时49、OpenStack 自动化测试 - 集成测试 课时50、Nova 源码结构 课时51、Nova 调用流程源码解析 课时52、Nova 分层架构与业务模型剖析 课时53、Nova 自定义 API 扩展编码实现 课时54、Django 介绍与快速开始 课时55、Django view 和 urls 的用法 课时56、Django Templates 模板的用法(一) 课时57、Django Templates 模板的用法(二) 课时58、Django Form 表单的用法 课时59、Horizon 结构源码剖析(1) 课时60、Horizon 自定义 Panel 编码实现 课时61、Horizon 自定义 DataView 编码实 课时62、企业部署案例:企业私有云规划与案 课时63、OpenStack 和其他开源云平台比较