当前位置:网站首页>Openstack learning notes -nova component insight
Openstack learning notes -nova component insight
2022-06-25 13:19:00 【Guard of Tuanzi】
Video understanding :
nova Components are used to build virtual machines ( function : Responsible for responding to virtual machine creation requests 、 Dispatch 、 Destroy the virtual machine )
nova Main components :
nova-api: Responsible for receiving external rest api Request
nova-scheduler: Responsible for scheduling ( amount to nova-api The Secretary of )
nova-compute: Be responsible for specific de debugging of relevant virtualization drivers
nova-conductor: help nova-computer view the database , Then pass the message through message queue Pass to nova-computer
Why should I use... When viewing a database nova-conductor instead of nova-computer Look it up directly ?
1、 Based on safety considerations : Once the virtual machine is broken , Would pass nova-computer Get information about virtual machines
2、 Based on database pressure :nova-computer There are many , Many virtual machines can be built at the same time , Multiple nova-computer Accessing the database at the same time will put pressure on the database
Book Understanding :
A preliminary understanding Nova:
yes OpenStack The computing component of , It controls the state changes, birth and death of virtual machines , Managing their resource allocation . stay OpenStack The core role of the player in the project .
current Nova Only focus on providing unified computing resource abstraction , These computing resources can be physical machines 、 virtual machine , Even containers .
Nova Architecture :
Nova It consists of multiple components that provide different functions , Foreign passage REST API signal communication , Internal adoption RPC communicate , Use DB Database to store data
Nova Mainly by API、 Compute、 Conductor、 Scheduler 4 Core components , They pass through RPC communicate .
API: Is to enter Nova Of HTTP Interface , You can scale out by deploying multiple .
1、API Depending on whether the request is a long-term task or a short-term task , Send the request to Conductor perhaps Compute.
2、 Long term task requests are sent to Conductor
Conductor: Be responsible for the whole process tracking and scheduling .
1、 For requests that need to be scheduled for new virtual machines or migration classes ,Conductor Will send to Scheduler Request a qualified compute node , Then the request is finally sent to the appropriate computing node .
2、 In addition to the long-term task, it is also responsible for representing other nodes DB visit .( This is mainly for security issues and the realization of online upgrade function )
3、 Finally, requests for virtual machine operations will be sent to Compute Components
Compute: Responsible for working with Hypervisor communicate , Realize the life cycle management of virtual machine .
1、 To each Hypervisor Support through Virt Driver Framework to implement
Take creating a virtual machine as an example ,Nova The internal execution process of the component :
1、 First, the user executes novaclient The command provided to create the virtual machine .
2、API The service is listening to novaclient Sent HTTP Ask and API Convert it to AMQP news
3、 Through message queuing (Queue) call Conductor service ,Conductor After the service receives the task through the message queue , Do some preparatory work ( Such as summarizing virtual machine parameters )
4、 Then tell through the message queue Scheduler Select a host that meets the requirements of virtual machine creation
5、Conductor Get Scheduler After the provided target host , Will ask Compute Services create virtual machines
6、Compute And Hypervisor communicate
ps: Not all business processes are like the above , For some short-term tasks , For example, delete the virtual machine , Unwanted Scheduler service ,API Tell... Through message queue Compute Delete the specified virtual machine ,Compute adopt Conductor Updating the database completes the business process .
Nova Internal detailed services :
1、nova-all: Used to start all Nova Auxiliary scripts for services , among API Service as WSGI Server startup
2、nova-api: Externally provided REST API service , At present, there are two API service ,nova-api-metadata and nova-api-os-compute.nova-api According to the configuration file /eyc//nova/nova.conf Of enable_apis Option settings to start both services
3、nova-api-metadata: Accept virtual machine instances metadata( Metadata ) Related requests . At present, this part of the work is carried out by Neturon complete ( Only when deployed on multiple computing nodes , And use nova-network Only in the case of nova-api-metadata API service ).
4、nova-api-os-compute:OpenStack API service .
5、nova-cells:Cell The module allows the user without affecting the existing OpenStack Under the premise of cloud environment , Enhanced lateral expansion 、 Large scale deployment capability .Cell After the module is enabled ,OpenStack The hosts in the cloud environment are divided into groups ( Become Cell).noval-cells Be responsible for each Cell Communication between , And selecting the appropriate for a new virtual machine instance Cell( So every Cell They all need to run nova-cells service )
6、nova-cert: management X509 certificate .
7、nova-compute:Compute service
8、nova-conductor:Conductor service
9、nova-consol: Allow users to access the console of the virtual machine instance through a proxy .ps: stay G Version is nova-xvpnvncproxy replace
10、nova-novncproxy: Nova Provides novncproxy The agent supports the user to pass vnc Access virtual machine . Provide complete vnc Access functions , It involves several Nova service (nova-consoleauth Provide authentication authorization , nova-novncproxy Used to support browser based vnc client ,nova-xvpvncproxy For support based on Java Of vnc client .)
11、nova-dhcpbridge: management nova-network Of DHCP bridge
12、nova-manage: Provide many with Nova Maintenance and management related functions , Such as user creation .
13、nova-network: Provide network services , Has been Neutron replaced ( Now only in use Devstack Deploy OpenStack It will only be used when it is used nova-network)
14、nova-rootwrap: Used in OpenStack During the operation, use root Run some as shell command .
15、nova-scheduler: Scheduler service .
Nova The communication between the services in the use of AMQP Realized RPC Mechanism , among nova-compute、 nova-conductor and nova-scheduler One will be registered at startup RPC Server, and nova-api because Nova There is no service inside that will call interface it provides , So there's no need to register .
Nova API:
1、Nova API Is to access and use Nova Public interface of various services provided . As a client and Nova Between the middle layers .Nova API Pass the client's request to Nova, stay Nova After the request is processed, the processing structure is returned to the client .
2、Nova v2 API yes Nova It was born API, Always use Extension As an extension API The mechanism of .Extension The mechanism itself does not conform to OpenStack Of Development . As more and more OpenStack Deploy , Different OpenStack Deployment through Extension Mechanism to extend or tailor API, This leads to OpenStack Completely lost interoperability . There is no mechanism to handle errors correctly , This leads to some DB Layer differences are exposed to RESTful API among , It also damages OpenStack Interoperability of .
3、Nova v2.1 API Improved error handling , It covers the difference DB Differences between . The most important thing is that it introduces a new mechanism Microversion To expand Nova API. From now on Extension stay v2.1API Will be completely deleted , Final OpenStack Will have a unified API To achieve interoperability .
4、Microversion It's monotonous , Manifested as X.Y In the form of .X Only in very significant changes and effects The whole thing API Will change ( In fact, this rarely happens ), And any other API All changes need to be changed Y, Whether it's API Request , Return or semantic change . Only bug No need Microversion The change of
5、 whatever Nova API All changes need to be submitted nova-specs, It needs to be strict review To prevent unexpected changes from destroying API The compatibility of .
6、 The system has a minimum version and a maximum version number , As long as the request is within this range, it will be accepted . The minimum and maximum version numbers can be obtained by version API To query .
7、Nova API Is based on WSGI Realized .nova/api/openstack/ The bottom contains WSGI Infrastructure code , Its Some of them Nova WSGI stack As required middleware, And how to parse and distribute the core code of the request .
边栏推荐
- Introduction to mongodb chapter 01 introduction to mongodb
- Sword finger offer day 3 string (simple)
- Always maintain epidemic prevention and control and create a safe and stable social environment
- Back test of quantitative trading - example of futures CTA strategy (tqzfuturerenkoscalpingstrategy)
- leetcode - 384. 打乱数组
- 剑指offer 第 3 天字符串(简单)
- 1251- client does not support authentication protocol MySQL error resolution
- Include what you use to save chaotic header files
- À propos du stockage des données en mémoire
- Uncover gaussdb (for redis): comprehensive comparison of CODIS
猜你喜欢
随机推荐
[visio] solving the fuzzy problem of parallelogram in word
Include what you use to save chaotic header files
Sword finger offer II 028 Flatten multi-level bidirectional linked list
[pit avoidance means "difficult"] the antd form dynamic form is deleted, and the first line is displayed by default
Assemble relevant knowledge points of flag bit (connected)
Lexical trap
Download File blob transcoding
Sword finger offer 04 Find in 2D array
Heavyweight live | bizdevops: the way to break the technology situation under the tide of digital transformation
Fedora 35 部署DNS主从和分离解析 —— 筑梦之路
Shenzhen mintai'an intelligent second side_ The first offer of autumn recruitment
mysql导入导出数据到excel表日期出现问题
Of binary tree_ Huffman tree_ Huffman encoding
剑指 Offer II 028. 展平多级双向链表
[AI helps scientific research] fool drawing of loss curve
An article clearly explains MySQL's clustering / Federation / coverage index, back to table, and index push down
初始c语言的知识2.0
MySQL learning notes
关于数据在内存中存储的相关例题
J2EE从入门到入土01.MySQL安装