Saturday, October 26, 2013

OpenStack


What is OpenStack?

OpenStack is an open and scalable operating system for building public and private clouds. In July 2010 Rackspace Hosting and NASA jointly launched an open-source cloud-software initiative known as OpenStack. Later on many more organizations lend their support for the Open Stack initiative. The complete list of organizations can be found here http://www.openstack.org/foundation/companies/

Wikipedia: OpenStack is a cloud computing project to provide an infrastructure as a service (IaaS). It is free open source software released under the terms of the Apache License.

Components of OpenStack:

1) Compute (Nova): The OpenStack cloud operating system enables enterprises and service providers to offer on-demand computing resources, by provisioning and managing large networks of virtual machines. It is designed to manage and automate pools of computer resources and can work with widely available virtualization technologies, as well as bare metal and high-performance computing (HPC) configurations.
AMQP (Advanced Message Queuing Protocol) is the messaging technology chosen by the OpenStack cloud. The AMQP broker, either RabbitMQ or Qpid, sits between any two Nova components and allows them to communicate in a loosely coupled fashion. More precisely, Nova components (the compute fabric of OpenStack) use Remote Procedure Calls to communicate to one another.

2) Storage (Swift\Cinder): OpenStack has support for both Object Storage and Block Storage.

Object Storage(Swift) is ideal for cost effective, scale-out storage. OpenStack provides redundant, scalable object storage using clusters of standardized servers capable of storing petabytes of data. Objects and files are written to multiple disk drives spread throughout servers in the data center, with the OpenStack software responsible for ensuring data replication and integrity across the cluster.

Block Storage(Cinder) allows block devices to be exposed and connected to compute instances for expanded storage, better performance and integration with enterprise storage platforms. Block storage is appropriate for performance sensitive scenarios such as database storage, expandable file systems, or providing a server with access to raw block level storage.

3) Networking (Neutron): Traditional network management techniques fall short of providing a truly scalable, automated approach to managing these next-generation networks. At the same time, users expect more control and flexibility with quicker provisioning.

OpenStack Networking is a pluggable, scalable and API-driven system for managing networks and IP addresses. Users can create their own networks, control traffic and connect servers and devices to one or more networks. OpenStack Networking ensures the network will not be the bottleneck or limiting factor in a cloud deployment and gives users real self service, even over their network configurations.

4) Dashboard (Horizon): The dashboard is an extensible web app that allows cloud administrators and users to control their compute, storage and networking resources. As a cloud administrator, the dashboard provides an overall view of the size and state of your cloud. You can create users and projects, assign users to projects and set limits on the resources for those projects. Developers can automate access or build tools to manage their resources using the native OpenStack API or the EC2 compatibility API.

5) Shared Services (Keystone\Glance): OpenStack shared services integrate the OpenStack components with each other as well as external systems to provide a unified experience for users as they interact with different cloud resources.

OpenStack Identity Service(Keystone) provides a central directory of users mapped to the OpenStack services they can access. It acts as a common authentication system across the cloud operating system and can integrate with existing backend directory services like LDAP. It supports multiple forms of authentication including standard username and password credentials, token-based systems and AWS-style logins.

As an administrator, OpenStack Identity enables you to:

a) Configure centralized policies across users and systems.
b) Create users and tenants and define permissions for compute, storage and networking resources using role-based access control (RBAC) features.
c) Integrate with an existing directory like LDAP, allowing for a single source of identity authentication across the enterprise.

As a user, OpenStack Identity enables you to:

a) Get a list of the services that you can access.
b) Make API requests or log into the web dashboard to create resources owned by your account.

OpenStack Image Service(Glance) provides discovery, registration and delivery services for disk and server images. The ability to copy or snapshot a server image and immediately store it away is a powerful capability of the OpenStack cloud operating system. Stored images can be used as a template to get new servers up and running quickly.

A multi-format image registry, the image service allows uploads of private and public images in a variety of formats, including:

a) Raw
b) Machine (kernel/ramdisk outside of image, a.k.a. AMI)
c) VHD (Hyper-V)
d) VDI (VirtualBox)
e) qcow2 (Qemu/KVM)
f) VMDK (VMWare)
g) OVF (VMWare, others)

No comments:

Post a Comment