OpenStack Nova源码结构(1)

感谢朋友支持本博客,欢迎共同探讨交流,由于能力和时间有限,错误之处在所难免,欢迎指正!
如果转载,请保留作者信息。
博客地址:http://blog.csdn.net/gaoxingnengjisuan
邮箱地址:dong.liu@siat.ac.cn


以下是本人通过阅读Grizzly版OpenStack源码,整理的简要的Nova模块源码结构,希望和大家相互交流。

/bin:Nova各个服务的启动脚本

/nova/api/auth.py:通用身份验证的中间件,访问keystone;
/nova/api/manager.py:Metadata管理初始化;
/nova/api/sizelimit.py:limit中间件的实现;
/nova/api/validator.py:一些参数的验证;
/nova/api/ec2/__init__.py:Amazon EC2 API绑定,路由EC2请求的起点;
/nova/api/ec2/apirequest.py:APIRequest类;
/nova/api/ec2/cloud.py:云控制器:执行EC2 REST API的调用,这个调用是通过AMQP RPC分派到其他节点;
/nova/api/ec2/ec2utils.py:ec2相关的实用程序;
/nova/api/ec2/faults.py:捕获异常并返回REST响应;
/nova/api/ec2/inst_state.py:状态信息的设置;
/nova/api/metadata/__init__.py:Nova元数据服务;
/nova/api/metadata/base.py:实例元数据相关信息;
/nova/api/metadata/handler.py:Metadata请求处理程序;
/nova/api/metadata/password.py:元数据相关的密码处理程序;
/nova/api/openstack/__init__.py:OpenStack API控制器的WSGI中间件;
/nova/api/openstack/auth.py:身份验证;
/nova/api/openstack/common.py:一些通用管理程序;
/nova/api/openstack/extensions.py:模块扩展相关;
/nova/api/openstack/urlmap.py:urlmap相关;
/nova/api/openstack/wsgi.py:wsgi的一些应用;
/nova/api/openstack/xmlutil.py:处理xml的实用程序;
/nova/api/openstack/compute/__init__.py:OpenStack Compute API的WSGI中间件;
/nova/api/openstack/compute/consoles.py:OpenStack Compute API控制台;
/nova/api/openstack/compute/extensions.py:扩展管理;
/nova/api/openstack/compute/flavors.py:OpenStack Compute API的flavors控制器;
/nova/api/openstack/compute/image_metadata.py:OpenStack Compute API的镜像源文件API控制器;
/nova/api/openstack/compute/images.py:用于检索/显示镜像的基本控制器;
/nova/api/openstack/compute/ips.py:OpenStack API的服务IP地址API控制器;
/nova/api/openstack/compute/limits.py:limit中间件相关;
/nova/api/openstack/compute/server_metadata.py:OpenStack API的服务元数据API控制器;
/nova/api/openstack/compute/servers.py:server的模板类以及控制类API实现;
/nova/api/openstack/compute/versions.py:版本相关;
/nova/api/openstack/compute/contrib/__init__.py:
/nova/api/openstack/compute/contrib/admin_actions.py:定义了若干管理员权限运行的管理虚拟机的操作;
/nova/api/openstack/compute/contrib/agents.py:主要实现对代理器的处理;
注:代理主要指的是来宾(guest)的代理。主机可以使用代理来实现在来宾系统(guest)上访问磁盘文件、配置网络以及运行其他程序或脚本。
/nova/api/openstack/compute/contrib/aggregates.py:管理员Aggregate API操作扩展;  
/nova/api/openstack/compute/contrib/attach_interfaces.py:实例接口扩展;(应该看看)
/nova/api/openstack/compute/contrib/availability_zone.py:对可用的zone的处理的API集合;
/nova/api/openstack/compute/contrib/baremetal_nodes.py:裸机节点管理员操作API扩展;
/nova/api/openstack/compute/contrib/cells.py:cell操作扩展API;
/nova/api/openstack/compute/contrib/certificates.py:OpenStack API的x509数字认证操作API;
/nova/api/openstack/compute/contrib/cloudpipe_update.py:为cloudpipe实例处理更新vpn ip/port;
/nova/api/openstack/compute/contrib/cloudpipe.py:通过cloudpipes连接vlan到外网;
/nova/api/openstack/compute/contrib/config_drive.py:配置驱动扩展;
/nova/api/openstack/compute/contrib/console_output.py:控制台输出控制;
/nova/api/openstack/compute/contrib/consoles.py:控制台控制API;
/nova/api/openstack/compute/contrib/coverage_ext.py:Coverage报告API控制器;
/nova/api/openstack/compute/contrib/createserverext.py:扩展建立对服务v1.1 API的支持;
/nova/api/openstack/compute/contrib/deferred_delete.py:延期删除实例扩展;
/nova/api/openstack/compute/contrib/disk_config.py:磁盘配置扩展API;
/nova/api/openstack/compute/contrib/evacuate.py:允许管理员迁移一个服务从失败的主机到一个新的主机;
/nova/api/openstack/compute/contrib/extended_availability_zone.py:可用的zone状态API扩展;
/nova/api/openstack/compute/contrib/extended_ips.py:扩展IP API扩展;
/nova/api/openstack/compute/contrib/extended_server_attributes.py:扩展服务属性API扩展;
/nova/api/openstack/compute/contrib/extended_status.py:扩展实例状态的API;
/nova/api/openstack/compute/contrib/fixed_ips.py:固定IP操作API;
/nova/api/openstack/compute/contrib/flavor_access.py:OpenStack API的flavor访问操作API;
/nova/api/openstack/compute/contrib/flavor_disabled.py:OpenStack API的flavor禁用访问API;
/nova/api/openstack/compute/contrib/flavor_rxtx.py:OpenStack API的flavor Rxtx API;
/nova/api/openstack/compute/contrib/flavor_swap.py:OpenStack API的flavor Swap API扩展;
/nova/api/openstack/compute/contrib/flavorextradata.py:OpenStack API的flavor额外数据扩展;
/nova/api/openstack/compute/contrib/flavorextraspecs.py:实例类型额外规格扩展;
/nova/api/openstack/compute/contrib/flavormanage.py:flavor管理API;
/nova/api/openstack/compute/contrib/floating_ip_dns.py:浮动IP DNS支持;
/nova/api/openstack/compute/contrib/floating_ip_pools.py:浮动IP池;
/nova/api/openstack/compute/contrib/floating_ips_bulk.py:批量浮动IP支持;
/nova/api/openstack/compute/contrib/floating_ips.py:浮动IP控制器;
/nova/api/openstack/compute/contrib/fping.py:Fping控制器的实现;
/nova/api/openstack/compute/contrib/hide_server_addresses.py:特定的状态下隐藏服务地址;
/nova/api/openstack/compute/contrib/hosts.py:主机管理扩展;
/nova/api/openstack/compute/contrib/hypervisors.py:虚拟机管理程序管理的扩展;
/nova/api/openstack/compute/contrib/image_size.py:镜像大小管理;
/nova/api/openstack/compute/contrib/instance_actions.py:对实例操作的管理;
/nova/api/openstack/compute/contrib/instance_usage_audit_log.py:虚拟机实例应用的日志记录控制器;
/nova/api/openstack/compute/contrib/keypairs.py:密钥对API管理扩展;
/nova/api/openstack/compute/contrib/multinic.py:多网络支持扩展;
/nova/api/openstack/compute/contrib/networks_associate.py:Network Association支持;
/nova/api/openstack/compute/contrib/os_networks.py:管理员权限网络管理扩展;
/nova/api/openstack/compute/contrib/os_tenant_networks.py:基于租户的网络管理扩展;
/nova/api/openstack/compute/contrib/quota_classes.py:磁盘配额类管理支持;
/nova/api/openstack/compute/contrib/quotas.py:磁盘配额管理支持;
/nova/api/openstack/compute/contrib/rescue.py:实例救援模式扩展;
/nova/api/openstack/compute/contrib/scheduler_hints.py:传递任意的键值对到调度器;
/nova/api/openstack/compute/contrib/security_group_default_rules.py:安全组默认规则的支持;
/nova/api/openstack/compute/contrib/security_groups.py:安全组的扩展支持;
/nova/api/openstack/compute/contrib/server_diagnostics.py:服务器诊断的支持;
/nova/api/openstack/compute/contrib/server_password.py:server password扩展的支持;
/nova/api/openstack/compute/contrib/server_start_stop.py:虚拟机实例启动和停止的API支持;
/nova/api/openstack/compute/contrib/services.py:对service扩展的支持;
/nova/api/openstack/compute/contrib/simple_tenant_usage.py:简单的租户使用率的扩展;
/nova/api/openstack/compute/contrib/used_limits.py:有限使用资源的数据;
/nova/api/openstack/compute/contrib/virtual_interfaces.py:虚拟接口扩展;
/nova/api/openstack/compute/contrib/volumes.py:卷相关管理的扩展;
/nova/cells/driver.py:cell通讯驱动基类;
/nova/cells/manager.py:cell服务管理API,主要定义了类CellsManager;
/nova/cells/messaging.py:cell通信模块;
/nova/cells/opts.py:cell的全局配置选项;
/nova/cells/rpc_driver.py:cell RPC通信驱动,通过RPC实现cell的通信;
/nova/cells/rpcapi.py:nova-cells RPC客户端API,来实现与nova-cells服务的交流,主要就是Cell RPC API客户端类;
/nova/cells/scheduler.py:cell调度器实现;
/nova/cells/state.py:cell状态管理实现,包括一个CellState类(为一个特定的cell保存信息类)和一个CellStateManager类(cell状态管理类);
/nova/cells/utils.py:cell的实用方法;
/nova/cert/manager.py:x509数字认证的证书管理,主要包括一个类CertManager(认证管理类);
/nova/cert/rpcapi.py:认证管理RPC的客户端API;
/nova/cloudpipe/pipelib.py:CloudPipe - 建立一个用户数据加载zip文件,并根据它启动一个实例;
/nova/compute/api.py:处理关于计算资源的所有的请求;
/nova/compute/cells_api.py:通过cell执行的服务操作API;
/nova/compute/instance_actions.py:对一个实例的所有可能的操作;
/nova/compute/instance_types.py:对实例的内置属性的操作;
/nova/compute/manager.py:对实例相关的所有进程的处理(来宾虚拟机);
ComputeVirtAPI类:计算Virt API;
ComputeManager类:管理实例从建立到销毁的运行过程;
/nova/compute/power_state.py:Power state表示的是从一个特定的域调用virt driver时的状态;
/nova/compute/resource_tracker.py:跟踪计算主机的资源,例如内存和磁盘等,管理实例资源;
/nova/compute/rpcapi.py:compute RPC API客户端;
ComputeAPI类:compute rpc API的客户端类;
SecurityGroupAPI类:安全组RPC API客户端类;
/nova/compute/stats.py:用来更新计算节点工作量统计数据信息的操作;
/nova/compute/task_states.py:实例可能处于的任务状态;
/nova/compute/utils.py:计算相关的使用工具和辅助方法;
/nova/compute/vm_mode.py:实例可能的虚拟机模式;
/nova/compute/vm_states.py:实例可能的虚拟机状态;
/nova/conductor/__init__.py:这里简单解释一下nova conductor服务,在Grizzly版的Nova中,nova-conductor是在nova-compute之上的新的服务层,它使得nova-compute不再直接访问数据库;
/nova/conductor/api.py:处理conductor service所有的请求;
LocalAPI类:conductor API 的本地版本,这个类处理了本地数据库的更新,而不是通过RPC;
API类:通过RPC和ConductorManager类实现数据库的更新,实现Conductor的管理;
/nova/conductor/manager.py:处理来自其他nova服务的数据库请求;
注:主要实现就是ConductorManager类;
/nova/conductor/rpcapi.py:conductor RPC API客户端;
/nova/console/api.py:处理ConsoleProxy API请求;
/nova/console/fake.py:模拟ConsoleProxy driver用于测试;
/nova/console/manager.py:控制台代理服务;
/nova/console/rpcapi.py:console RPC API客户端;
/nova/console/vmrc_manager.py:VMRC控制台管理;
/nova/console/vmrc.py:VMRC控制台驱动;
/nova/console/websocketproxy.py:与OpenStack Nova相兼容的Websocket proxy;
/nova/console/xvp.py:Xenserver VNC Proxy驱动;
/nova/consoleauth/__init__.py:控制台身份验证模块;
/nova/consoleauth/manager.py:控制台的认证组组件;
/nova/consoleauth/rpcapi.py:控制台认证rpc API的客户端;
/nova/db/__init__.py:Nova数据库的抽象;
/nova/db/api.py:定义数据库访问接口;
/nova/db/base.py:需要模块化数据库访问基类;
/nova/db/migration.py:数据库设置和迁移命令;
/nova/db/sqlalchemy/api.py:SQLAlchemy后端的执行;
/nova/db/sqlalchemy/models.py:nova数据的SQLAlchemy模板;
/nova/db/sqlalchemy/types.py:自定义SQLAlchemy类型;
/nova/db/sqlalchemy/utils.py:SQLAlchemy实用程序;
/nova/image/glance.py:使用Glance作为后端的镜像服务的实现;
GlanceClientWrapper类:glance客户端包装类;
包括:建立一个glance客户端、调用一个glance客户端对象来获取image镜像等方法;
GlanceImageService类:这个glance镜像服务类提供了glance内部的磁盘镜像对象的存储和检索;
还有其他的一些glance镜像服务方法;
/nova/image/s3.py:从S3获取数据,建立镜像等相关方法;
/nova/network/api.py:API类:通过nova-network进行网络管理的API;
/nova/network/dns_driver.py:定义DNS管理器接口;
/nova/network/driver.py:加载网络驱动;
/nova/network/floating_ips.py:FloatingIP类:实现添加浮动IP的功能和相关管理;
/nova/network/l3.py:L3网络的实现和管理;
/nova/network/ldapdns.py:LdapDNS管理;
/nova/network/linux_net.py:linux应用程序实现vlans、bridges和iptables rules;
/nova/network/manager.py:建立IP地址和设置网络;
RPCAllocateFixedIP类:FlatDCHP的设置和VLAN网络管理;
NetworkManager类:实现通用的网络管理的方法集合类;
FlatManager类:不使用vlan的FLAN网络管理;
FlatDHCPManager类:DHCP FLAT网络管理;
VlanManager类:DHCP的VLAN网络管理;
/nova/network/minidns.py:用于测试的DNS驱动类;
/nova/network/model.py:定义网络模板;
Model类:定义了对于大多数的网络模型所必需的结构;
IP类:Nova中的一个IP地址;
FixedIP类:Nova中的一个浮动IP;
Route类:Nova中的一个IP路由;
Subnet类:Nova中的一个IP路由;
Network类:代表网络中的Network参数;
VIF类:虚拟的网络接口;
NetworkInfo类:为一个Nova实例存储和处理网络信息;
/nova/network/noop_dns_driver.py:Noop DNS管理方法的定义;
/nova/network/nova_ipam_lib.py:QuantumNovaIPAMLib类:应用本地Nova数据库来实现Quantum IP地址管理接口;
/nova/network/rpcapi.py:network RPC API客户端;
/nova/network/sg.py:实现对安全组的抽象和相关API;
/nova/network/quantumv2/__init__.py:获取quantum v2版客户端;
/nova/network/quantumv2/api.py:访问quantum 2.xAPI接口方法集合类;
/nova/network/security_group/openstack_driver.py:OpenStank安全组驱动相关;
/nova/network/security_group/quantum_driver.py:SecurityGroupAPI类:安全组相关的管理API;
/nova/network/security_group/security_group_base.py:SecurityGroupBase类:安全组基类;
/nova/objectstore/s3server.py:基于本地文件实现S3式的存储服务;
/nova/openstack/common/cliutils.py:命令行实用工具,确认所提供的用于调用方法的参数是充足的;
/nova/openstack/common/context.py:实现存储安全上下文信息的类;
/nova/openstack/common/eventlet_backdoor.py:eventlet后门程序;
/nova/openstack/common/excutils.py:异常相关的实用程序;
/nova/openstack/common/fileutils.py:文件相关的实用程序;
/nova/openstack/common/gettextutils.py:获取文本文件实用程序;
/nova/openstack/common/importutils.py:加载类的相关实用程序和辅助方法;
/nova/openstack/common/jsonutils.py:JSON相关实用程序;
/nova/openstack/common/local.py:Greenthread本地存储;
/nova/openstack/common/lockutils.py:锁相关的方法;
/nova/openstack/common/log.py:OpenStack日志处理程序;
/nova/openstack/common/memorycache.py:memcached客户端接口;
/nova/openstack/common/network_utils.py:network相关的实用程序和辅助方法;
parse_host_port方法:把address和default_port解析成host和port配对形式的字符串;
/nova/openstack/common/policy.py:policy机制就是用来控制某一个User在某个Tenant中的权限的机制;
/nova/openstack/common/processutils.py:系统级的实用程序和辅助方法;
/nova/openstack/common/setup.py:一些实用程序;
/nova/openstack/common/timeutils.py:time相关实用方法;
/nova/openstack/common/uuidutils.py:UUID相关实用方法;
/nova/openstack/common/version.py:版本信息;
/nova/openstack/common/db/api.py:多DB API的后端支持;
/nova/openstack/common/db/exception.py:DB相关的自定义异常;
/nova/openstack/common/db/sqlalchemy/models.py:SQLAlchemy模板;
/nova/openstack/common/db/sqlalchemy/session.py:SQLAlchemy后端的会话处理;
/nova/openstack/common/db/sqlalchemy/utils.py:分页查询的实现;
/nova/openstack/common/notifier/api.py:notifier(通知)功能实现的API;
/nova/openstack/common/notifier/log_notifier.py:实现确定系统日志记录器;
/nova/openstack/common/notifier/rabbit_notifier.py:在Grizzly版本中,不在应用rabbit来发送通知,而是使用rpc_notifier来进行发送,提示转到相关方法;
/nova/openstack/common/notifier/rpc_notifier.py:通过RPC发送一个通知;
/nova/openstack/common/notifier/rpc_notifier2.py:通过RPC发送一个通知;
/nova/openstack/common/plugin/callbackplugin.py:管理插件的callback功能;
/nova/openstack/common/plugin/plugin.py:为OpenStack增加插件定义接口;
/nova/openstack/common/plugin/pluginmanager.py:插件相关管理;
/nova/openstack/common/rootwrap/filters.py:命令行的各种过滤器的实现;
/nova/openstack/common/rootwrap/wrapper.py:实现过滤器的封装;
/nova/openstack/common/rpc/__init__.py:远程过程调用(rpc)的抽象实现;
/nova/openstack/common/rpc/amqp.py:基于openstack.common.rpc实现AMQP之间的代码共享,AMQP的实现;
/nova/openstack/common/rpc/common.py:RPC封装的实现;
/nova/openstack/common/rpc/dispatcher.py:RPC消息调度的代码实现;
/nova/openstack/common/rpc/impl_fake.py:虚拟RPC实现,直接调用代理方法而不用排队;
/nova/openstack/common/rpc/impl_kombu.py:系统默认的RPC实现;
/nova/openstack/common/rpc/impl_qpid.py:RPC实现之一;
/nova/openstack/common/rpc/impl_zmq.py:RPC实现之一;
/nova/openstack/common/rpc/matchmaker.py:MatchMaker类;
/nova/openstack/common/rpc/proxy.py:RPC客户端的辅助类;
/nova/openstack/common/rpc/service.py:运行在主机host上的服务对象;

由于篇幅原因,请继续看下篇博文OpenStack Nova源码结构(2)

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值