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)