Thursday, October 22, 2020

Openstack

 I have started using this upcoming technology recently.  Will update this post when i get time.


Virtualization 2.0 - Openstack - Tutorialspoint


Architecture:

image


Terminology:


1. Nova:

Nova is the OpenStack project that provides a way to provision compute instances (aka virtual servers). Nova supports creating virtual machines, baremetal servers (through the use of ironic), and has limited support for system containers. Nova runs as a set of daemons on top of existing Linux servers to provide that service. 

It manages the life cycle of compute instances in an OpenStack environment. It includes Spawning , scheduling and decomposing of virtual machines on demand.

2. Swift

OpenStack Object Storage (swift) is used for redundant, scalable data storage using clusters of standardized servers to store petabytes of accessible data. It is a long-term storage system for large amounts of static data which can be retrieved and updated.  

 It stores and retrieves arbitrary unstructured data objects via a HTTP based API . It is highly fault tolerant with its data replication and scale out architecture.

3. Cinder

 Cinder architecture

 

Cinder is a Block Storage service for OpenStack. It's designed to present storage resources to end users that can be consumed by the OpenStack Compute Project (Nova). This is done through the use of either a reference implementation (LVM) or plugin drivers for other storage. 

The short description of Cinder is that it virtualizes the management of block storage devices and provides end users with a self service API to request and consume those resources without requiring any knowledge of where their storage is actually deployed or on what type of device.  It provides persistent storage to running devices.


4. Neutron

Neutron is an OpenStack project to provide "networking as a service" between interface devices (e.g., vNICs) managed by other Openstack services (e.g., nova). 

5. Horizon

Horizon is the canonical implementation of OpenStack’s Dashboard, which provides a web based user interface to OpenStack services including Nova, Swift, Keystone, etc. 

image


6. Keystone

Keystone is an OpenStack service that provides API client authentication, service discovery, and distributed multi-tenant authorization by implementing OpenStack's Identity API. It supports LDAP, OAuth, OpenID Connect, SAML and SQL.

7. Glance

The Image service (glance) enables users to discover, register, and retrieve virtual machine images. It offers a REST API that enables you to query virtual machine image metadata and retrieve an actual image. You can store virtual machine images made available through the Image service in a variety of locations, from simple file systems to object-storage systems like OpenStack Object Storage. 

It stores and retrieves virtual machine disk images . Images can be used as a template in setting up a new server. Usually images are stored in swift ( object ) service.


8. Ceilometer

Ceilometer's goal is to efficiently collect, normalise and transform data produced by OpenStack services. The data it collects is intended to be used to create different views and help solve various telemetry use cases. Aodh and Gnocchi are two examples of services extending Ceilometer data. 

9. Heat

An important component of a cloud environment is orchestration. In OpenStack, there’s a program dedicated exclusively to Orchestration within the platform and the main project in this program is Heat. In mentioned blog post,  learn a little bit about OpenStack Heat and how to create simple orchestrations with it.

According to the OpenStack Foundation, Heat is an orchestration engine to launch multiple composite cloud applications based on templates in the form of text files that can be treated as code. In simple terms, Heat provides the OpenStack users with a way to automate the creation of cloud components like networks, instances, storage devices and much more.

10. VNFD

The behavioural and deployment information of a VNF in Tacker is defined in a template known as VNF Descriptor (VNFD). The template is based on TOSCA standards and is written in YAML. It is on-boarded in a VNF catalog.

(VNF descriptor) is translated to HOT (Heat Orchestration Template).Tacker server utilizes Heat when creating/scaling/healing /deleting virtual resources as a component of VIM (virtualized infrastructure manager).

 

11. Tacker:

 

 Tacker Architecture.png

Tacker is an official OpenStack project building a Generic VNF Manager (VNFM) and an NFV Orchestrator (NFVO) to deploy and operate Network Services and Virtual Network Functions (VNFs) on an NFV infrastructure platform like OpenStack. It is based on ETSI MANO Architectural Framework and provides a functional stack to Orchestrate Network Services end-to-end using VNFs.  

12.TOSCA: 

https://cloudify.co/what-is-tosca/

 

 

 Topology and Orchestration Specification for Cloud Applications (TOSCA) represents a standard created by the industry group OASIS.

  The TOSCA standard has the main goal of answering the need for automation, portability, and interoperability along with the management challenges of complex cloud applications. Until now there have been two versions of TOSCA code introducing a unique language to describe its Service Template: the first is based on XML (2013), and the second one is based on YAML (2016). With the use of these two, there exist mechanisms that can then broader define services in order to describe vendor-specific or domain-specific information.

 

TOSCA (which also happens to be the name of a famous opera by Giacomo Puccini) is a data model that can be used by telecom carriers for creating templates or data descriptions of applications and infrastructure for cloud services. It can also be used to define the relationships among these services, as well as their operational behavior. This can happen independently of the supplier creating the service or the technology infrastructure used to deliver it. In short, TOSCA abstracts configuration data away from specific hardware or services to make cloud services more interoperable and portable.

 TOSCA Cloud Oasis

 

13. Floating IP

Floating IPs are just publicly routable IPs that you typically buy from an ISP (the one that you put on the firewall). Users can allocate them to their instances, thus making them reachable from the outside world. 

Each instance has a private, fixed IP address and can also have a public, or floating IP address. Private IP addresses are used for communication between instances, and public addresses are used for communication with networks outside the cloud, including the Internet.

When you launch an instance, it is automatically assigned a private IP address that stays the same until you explicitly terminate the instance. Rebooting an instance has no effect on the private IP address.

A pool of floating IP addresses, configured by the cloud administrator, is available in OpenStack Compute. The project quota defines the maximum number of floating IP addresses that you can allocate to the project. After you allocate a floating IP address to a project, you can:

  • Associate the floating IP address with an instance of the project. Only one floating IP address can be allocated to an instance at any given time.
  • Disassociate a floating IP address from an instance in the project.
  • Delete a floating IP from the project which automatically deletes that IP’s associations.

 

 14. Key Pairs:

Key pairs are SSH credentials that are injected into an instance when it is launched. Keypairs consist of two elements—a public key and a private key.The public portion of our keypair is injected into our instance at boot-time through a service known as cloud-init.

- A key pair belongs to an individual user, not to a project. To share a key pair across multiple users, each user needs to import that key pair.

 

 15. Instances:

OpenStack virtual machines are called instances, mostly because they are instances of an image that is created upon request and that is configured when launched. The main difference between OpenStack and traditional virtualization technology is the way state is stored. With traditional virtualization technology, the state of the virtual machine is persistent.

OpenStack can support both persistent and ephemeral models

 

 For more details on openstack, visit

https://www.rackspace.com/en-in/blog/what-is-openstack-the-basics-part-1

No comments:


Mindbox