Friday, 29 June 2012

OpenStack : An Introduction


OpenStack is a collection of open source projects that can be used for creating and running private/public clouds. It comes under IaaS (Infrastructure as a Service) category of cloud computing. In IaaS model, resources related to computing, network, storage and other infrastructure components are abstracted and provided as a service. 

OpenStack project was founded by Rackspace Hosting and NASA. Rackspace contribted for the Object Storage part while NASA contributed for the Compute part.

Latest (version 5) OpenStack is called ESSEX. It was released on 4/5/2012.

OpenStack services have beed divided into 5 main categories:

Nova - Compute Service

It handles/manages the lifecycle of instances created/running withing OpenStack cloud. Nova features are exposed as web services. It manages compute power, network, authorization, scalability etc.

If you have openstack installed then you can run the following command and check the status of various nova services:

nova-manage service list

Binary                 Host              Zone             Status     State Updated_At
nova-network      ranjank           nova             enabled    :-)   2012-06-11 19:53:03
nova-scheduler    ranjank           nova             enabled    :-)   2012-06-11 19:53:03
nova-volume       ranjank           nova             enabled    :-)   2012-06-11 19:53:03
nova-compute     ranjank           nova             enabled    :-)   2012-06-11 19:53:03
nova-cert             ranjank           nova             enabled    :-)   2012-06-11 19:53:03
nova-compute     ranjank           nova             enabled    :-)   2012-06-11 19:53:03

Swift - Storage Service

Swift is a distributed virtual object store for OpenStack. It can be used to store large number of objects of any size. It is similar to Amazon S3 (the popular Simple Storage Service from Amazon). It can also be used for backup and archiving of objects.

Glance - Imaging Service

Glance is an OpenStack service for adding, retrieving and deleting VM (Virtual Machine) images.

Running the following command will show me what all the VM images I have added:

glance index

ID                                                                 Name                Disk Format   Container Format    Size
------------------------------------ ------------------------------ -------------------- --------------------
e3ef93d0-efd0-4254-bfc8-575b0894049f     win_server_1                 raw        ovf          21474836480
d61fbaea-de34-45a5-a309-d6b0c3806bf4    win_server_2                 raw        ovf          21474836480
e3f2a4b4-f653-42a2-8742-1b32a55caea3    cirros                              qcow2   bare         9761280
67eb5530-dadb-4ad6-8d15-21f6bc34568a   tty                                  ami         ami         25165824
0c454b27-5c7e-4ec3-a524-33fffad873a2     tty-ramdisk                     ari          ari           5882349
0bbdd345-2200-40eb-b49d-9933b34b2b62 tty-kernel                        aki         aki          4404752

Keystone - Identity Service

Keystone provides authentication and authorization for various OpenStack components like Swift, Glance, Nova etc. There are two ways it can authenticate:

1. Username/Password
2. Auth-Token

Running the following command show the list of keystone users:

keystone user-list

+-----------------------------------------------------------------------------------------------------------+
|                id                                             | enabled |          email                        |    name  
+-----------------------------------------------------------------------------------------------------------+
| eb69c5901d4b4b4aaa8ce0192a1546c2  | True    | rkumar@example.com       | rkumar    
| f13904ef8af5473788bb665bde5a72cc    | True    | akumar@example.com      | akumar    
| fb701ad1cf7f4aa2a8613cbae2066d7a     | False   | skumar@example.com      | skumar    
| 1a737cfa16224cf8be1abdadb334326f    | True    | None                                  | ec2      
| 2ebdab8c9a6c403cb534c4efb12a4013   | True    | None                                  | swift    
| ac921326ac0b42c4b4d000b988d7911a | True    | None                                   | user      
| acf9eca7ded441ed9dea4caaf16aa055     | True    | None                                   | admin    
| ad3da366b4c0463e967a197c868504f0  | True    | None                                   | nova      
| deed0e9553674db299668f8fd0256eb3  | True    | None                                   | glance    
+----------------------------------+---------+--------------------------+------------+

Horizon - UI Service

It is web-based dashboard for managing OpenStack services. It can be used to manage VM-instances, images, users, volumes, object-store etc. You can connect to any instance though VNC from Horizon.

I will cover each of these components in detail in upcoming posts. Keep watching this space.

No comments:

Post a Comment