Nova analysis (1)-overall architecture

Source: Internet
Author: User

Conceptual digoal

Logical digoal

Nova is the most complicated and distributed component of openstack. A large number of processes cooperate to turn end user API requests into running virtual machines. Below is a list of these processes and their functions:

  • Nova-API accepts and responds to end user compute api cils. it supports openstack compute API, Amazon's EC2 API and a Special admin API (for privileged users to perform administrative actions ). it also initiates most of the orchestration activities (such as running an instance) as well as enforces some policy (mostly quota checks ).

  • The Nova-compute process is primarily a worker daemon that creates and terminates Virtual Machine instances via hypervisor's APIs (xenapi for xenserver/XCP, libvirt for KVM or qemu, vmwareapi for VMware, etc .). the process by which it does so is fairly complex but the basics are simple: accept actions from the queue and then perform a series of system commands (like launching a KVM instance) to carry them out while updating state in the database.

  • Nova-volume manages the creation, attaching and detaching of Z volumes to compute instances (similar functionality to Amazon's Elastic Block Storage ). cinder has eventually replace Nova-volume functionality, Nova-volume is already retired.

  • The Nova-network worker daemon is very similar to Nova-compute and Nova-volume. it accepts networking tasks from the queue and then performs tasks to manipulate the network (such as setting up bridging interfaces or changing iptables rules ). this functionality has been migrated to neutron, a separate openstack project.

  • The Nova-Schedule Process is conceptually the simplest piece of code in openstack NOVA: it takes a virtual machine instance request from the queue and determines where it shoshould run (specifically, which compute server host it shoshould run on ).

  • The queue provides a central hub for passing messages between daemons. this is usually implemented with rabbitmq today, but cocould be any amqp Message Queue (such as Apache qpid ). new to the Folsom release is support for zero MQ.

  • The SQL database stores most of the Build-time and runtime state for a cloud infrastructure. this includes des the instance types that are available for use, instances in use, networks available and projects. theoretically, openstack Nova can support any database supported by SQL-alchemy but the only databases currently being widely used are sqlite3 (only appropriate for test and development work), MySQL and PostgreSQL.

  • Nova also provides console services to allow end users to access their virtual instance's console through a proxy. This involves several daemons (NOVA-console, Nova-novncproxy and Nova-consoleauth ).

Nova interacts with your other openstack services: keystone for authentication, glance for images and horizon for Web interface. the glance interactions are central. the API process can upload and query glance while Nova-compute will download images for use in launching images.

Setup. cfg

The Entry Points Mechanism of Python setuptools is mainly used for two purposes: Automatic Script Creation and dynamic discovery of services and Plugins.

The main function of the creic Script Creation is to encapsulate platform differences and generate the python package entry script on different platforms. Portal scripts such as Nova-API and Nova-scheduler are generated through this mechanism.

Dynamic discovery of services and plugins: this package declares its "extension point" through the entry point ", then, the third-party package or each module of the package can declare the implementation of this "extension point. In a package, you can obtain all the current implementations of the corresponding "extension point" in some way and perform corresponding processing.

The entry point declaration and registration are completed in the setup. cfg configuration file or setup. py: Setup method of each package.

From the setup. cfg of the source code of Nova, you can see which services and configurations are installed on Nova during deployment. The lele_scripts section contains the NOVA-related services:

console_scripts =    nova-all = nova.cmd.all:main    nova-api = nova.cmd.api:main    nova-api-ec2 = nova.cmd.api_ec2:main    nova-api-metadata = nova.cmd.api_metadata:main    nova-api-os-compute = nova.cmd.api_os_compute:main    nova-baremetal-deploy-helper = nova.cmd.baremetal_deploy_helper:main    nova-baremetal-manage = nova.cmd.baremetal_manage:main    nova-cells = nova.cmd.cells:main    nova-cert = nova.cmd.cert:main    nova-compute = nova.cmd.compute:main    nova-conductor = nova.cmd.conductor:main    nova-console = nova.cmd.console:main    nova-consoleauth = nova.cmd.consoleauth:main    nova-dhcpbridge = nova.cmd.dhcpbridge:main    nova-manage = nova.cmd.manage:main    nova-network = nova.cmd.network:main    nova-novncproxy = nova.cmd.novncproxy:main    nova-objectstore = nova.cmd.objectstore:main    nova-rootwrap = oslo.rootwrap.cmd:main    nova-scheduler = nova.cmd.scheduler:main    nova-spicehtml5proxy = nova.cmd.spicehtml5proxy:main    nova-xvpvncproxy = nova.cmd.xvpvncproxy:main

These services will be started according to the configuration of Nova, among which Nova-Network/NOVA-dhcpbridge is recommended to be replaced by neutron.

 

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.