Openstack Network Knowledge Data Summary:
Openstack concept
I just heard that I was going to do OpenStack development, it was quite exciting. I don't know what OpenStack is, but I know it has something to do with cloud computing. Cloud computing This thing, listen to the tall, the major Internet companies have cast into engage in, so the general direction is to be sure. So I can't restrain, want to deploy OpenStack on own host, to experience what this is what thing. After a toss, finally in the virtual machine with Devstack to deploy the OpenStack (deployment process, the most pit is the domestic firewall).
The process of deployment is actually the process of installing a bunch of Python packages into the host system. OpenStack has a python package called Dashboard, which provides a WEB interface from which I really experience what OpenStack is. The process of creating a virtual machine on Dashboard is interesting, and many of the steps involved are similar to the reality of installing a computer.
Openstack |
| Real life
Create an Ubuntu mirror |
Use UltraISO to burn a USB drive with an Ubuntu system |
Create a provider network |
Call the telecom to open the network to the home |
Create Instance Host |
Bought a host, and with just the U disk to install it good Ubuntu system |
Start Instance Host |
Plug the network port of telecommunications into the host network card |
I created two Instance hosts in Dashboard, two hosts running well. For now, this effect is similar to VMware Workstation software, which allows you to run multiple virtual hosts on a single physical machine. Only VMware Workstation software is oriented to a single physical machine, while OpenStack can manage and virtualize the physical machine cluster. When hundreds of physical machines are OpenStack managed, and the terminal uses only one Dashboard interface, the concept of a private cloud is revealed.
Have a perceptual understanding, then go to OpenStack official website is what define own:
Open source software for creating private and public clouds.
OpenStack software controls large pools of compute, storage, and networking resources throughout a datacenter, managed THR Ough a dashboard or via the OpenStack API. OpenStack works with popular enterprise and open source technologies The making it ideal for heterogeneous.
Hundreds of the world's largest brands rely on OpenStack to run their businesses-every day, reducing costs and helping the M move faster. OpenStack has a strong ecosystem, and users seeking commercial support can choose from different openstack-powered product s and services in the marketplace.
The software is built by a thriving community of developers, in collaboration with users, and are designed in the Open at O ur summits.
OpenStack software controls large computing, storage, and network resources throughout the data center, and users can manage them through the Dashboard or OpenStack APIs. As I understand it,Openstack is more like an operating system, a powerful cloud computing operating system.
Openstack Network Concept
The two Instance virtual machines I created earlier through Dashboard can ping each other because they are both in the same two-tier network and are directly linked to the Provider network.
| VM1 | | VM2 |
|-------| | -------|
| |
| Eth (172.24.4.2) | Eth (172.24.4.3) ____|______________________|___________--------------
Provider (172.24.4 .0/24)
The topology above actually covers the three network concepts in the core of OpenStack: Network,subnet, Port. We map these three concepts to the network topology above:
- The name "Provider" corresponds to the OpenStack network.
- "172.24.4.0/24" This IP address pool, corresponds to the OpenStack Subnet
- "Eth (172.24.4.2)" This Instance network card, corresponding is the Port of OpenStack
In fact, we can also let VM1 and VM2 not on a two-tier network, but this time, we need to introduce another core concept of OpenStack network Router.
| VM2 |
| -------|
|
| Eth (10.0.0.2) _______|_______----
Private (10.0.0.0/24)
|
| If (10.0.0.1)
|
| VM1 | | Router1 |
| -------| | ----------|
| |
| Eth (172.24.4.2) | Gw (172.24.4.3) ____|_______________________|__________----------------
Provider (172.24). 4.0/24)
As a result, VM1 and VM2 are not in the same two-tier network, two Instance virtual machine network environment is also achieved isolation. As you can see from the topology, there are three more new parts:
- Router: The Router1 in the topology
- Router-gateway: That is, Gw (172.24.4.3) in the topology, mainly for Router1 to access Provider network behind the virtual machines.
- router-interface: The If (10.0.0.1) in the topology, let Router1 be the L3 gateway to the Private network.
The above two network topology, covering the core concept of the OpenStack network, of course, only the above four core concepts, is not able to adapt to the actual Data Center complex network topology requirements, for this reason there are other virtual network concepts such as: FLOATINGIP, Securitygroup, Servicefunctionchain and so on.
Introduction to Openstack network components
Openstack contains a number of subprojects, and currently several core subprojects are as follows:
- Nova: Provides compute computing power (virtual machine)
- Neutron: Provides networking network connectivity capabilities
- Glance: Provides image mirroring storage capabilities
- Keystone: Provide identity authentication capability
- Cinder/swift: Provides storage storage capabilities
Network virtualization is a rapid development of the field, to the present neutron has been very good support L2, L3, HA, Securitygroup, Lbaas, Fwaas, Vpnaas, DVR and so on. It's just that I've read some articles about the direction neutron should be, focusing on the customization of API standards. Let each network function peel out from the neutron, let each network equipment merchant's SDN Controller Plugin to focus and realize this part function. Neutron needs to design a good set of North interface specifications, to become a pure API Server (These views are correct, I am not sure, but a change of altitude to see things, may not be a good thing).
Neutron inside there are two frameworks that are more interesting, ML2 frameworks and Extension plugin frameworks. ML2 is an abstraction of the L2 network function, which allows for different L2 virtualization technologies (Linuxbridge, Openvswitch ...). Only unified to receive ML2 can. and Extension Plugin for some SDN controler or network Function Virtual in the development, can conveniently butt into the neutron, carry on the deployment test, wait for its hatching mature, then merge into the neutron project. The Openstack (neutron + ovn) I deployed on the mainframe was actually made full use of neutron ML2 and extensionplugin to realize that neutron's flexibility was very strong.
The above is a brief introduction to neutron, now say OVN (Open Virtual Network for Openvswitch), which is the Openvswitch team to Hatch OVS's own subprojects, in order to make OVS more user-friendly support for virtual networks, let me quote An excellent view of IBM's blog post:
Pick up from how to use OVN to improve OVS performance in the cloud computing environment
As we all know, Openvswitch has become the most popular virtual switch in Openstack deployments with its rich functionality and good performance. Because the architecture of Openstack Neutron introduces some performance problems, such as neutron-server to communicate with a lot of agents, RPC is a performance bottleneck, and neutron use a lot of namespace,namespace The source is limited and the system overhead is large, which is also a performance bottleneck. OVS community felt that in the long run, neutron should have a project to do the control plane of the virtual network, neutron only need to provide API processing, so OVS community launched OVN (Open Virtual Network) This project, OVN is OVS control Plane, it adds the native support to the OVS to the virtual network, greatly enhances the OVS in the actual application environment the performance and the scale.
If you want to use OVN and neutron for integration, you also need NETWORKING-OVN Plugin help. NETWORKING-OVN is a simpler Plugin, and its job is to translate the definition of virtual networks in neutron into OVN definition of virtual networks. Its simplicity comes from the graceful neutron API interface design, and the streamlined OVN north to the database table design.
| OPENSTACK | | | | (neutron) | API Server
-----------------------
| |
V v
---> networing-ovn <---Service and Plugin
| |
V v
|----------|
| OVN | SDN Controller for Openvswitch
|----------|
|
V
----------------------
| Openvswitch | Dataplan support for Virtual networking Function
| |
Thank you for reading, I hope to help you, thank you for your support for this site!