Upload
abhinav-vedanbhatla
View
84
Download
3
Embed Size (px)
Citation preview
Survey Of Open Source Cloud Architectures
Project Goal● Each open source cloud computing architecture namely Eucalyptus,
OpenStack, CloudStack, and OpenNebula are to be installed on the resources provided
● Document the working procedure and installation steps● Evaluate the performance of each architecture using the tools like
sysbench and iperf● Compare the obtained results
Project Architecture
Router:
4 port 10/100 switch
1 WAN port
DHCP
Layer 3 (Network) packet routing
Switch:
10/100 Mbps ports
Layer 2 (Link) packet routing
CS1/CS2:
Dual core 2.4Ghz CPUs
4GB RAM
250GB HDD
Background
Cloud computing is a model for enabling ubiquitous, convenient on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.
NIST Definition
CharacteristicsOn-demand self service
Broad network access
Resource pooling
Measured service
Service ModelsThere are three service models in Cloud Computing:
Software-as-a-service
Platform-as-a-service
Infrastructure-as-a-service
Service Models
Deployment ModelsThe four deployment models are:
Public Cloud
Private Cloud
Hybrid Cloud
Community Cloud
Deployment Models
Major Public Cloud VendorsAmazon AWS
Microsoft Azure
Google Cloud
Open Source Cloud PlatformOpen source cloud storage is a cloud storage architecture that uses freely
available source code to build and manage a private cloud storage platform.
The major advantage of using open source cloud solution is the user can modify the solution according to his own needs.
Additionally, it also prevents the purchase of expensive license and tools.
Survey Of ArchitecturesThe three architectures taken for the survey are:
OpenStack
Eucalyptus
OpenNebula
OpenStack
OpenStackOpenstack is a collection of open source project that is collectively utilized to
operate a cloud network infrastructure in order to provide IaaS.
OpenStack architecture was designed with a goal to support interoperability between cloud services and allow businesses to build services in their respective data centers.
The architecture of openstack consists of 11 components namely, Compute (Nova), Object Storage (Swift), Block Storage (Cinder), Networking (Neutron), Dashboard (Horizon), Identity Service (Keystone), Image Service (Glance), Telemetry (Ceilometer), Orchestration (Heat), Database (Trove), Elastic Mapreduce (Sahara)
OpenStack- Related WorkOpenStack is used in the FROST (Forensic OpenStack Tools) design.
It is essentially a management plane forensic toolkit in a private instantiation of OpenStack cloud platform.
OpenStack has many components but FROST uses only Nova, the compute component and Horizon, the OpenStack dashboard.
OpenStack - Architecture
OpenStack - InstallationThe openstack architecture was installed using DevStack, an opinionated
script that helps in creating a quick OpenStack environment.
The configuration we followed was All-in-one single machine. This installs the components in one single machine.
The documentation that we followed was clear and was easy to understand. Firstly, we select the Linux distribution to install it as the Host OS.We used the Ubuntu 14.04.2 LTS version and OpenStack is installed as a Guest OS to instantiate a virtual machine.
OpenStack - Installation (cont.)Steps involved in the installation process:
1. We have used the OpenStack Quickstart installation guide to install OpenStack cloud architecture.
2. Download DevStack using the git command. As the git program wasn’t installed we installed the package using the apt-get install git command and then used the following command to download OpenStack:
git clone https://git.openstack.org/openstack-dev/devstack
OpenStack - Installation (cont.)3 . The DevStack repository has the entire OpenStack template and the configuration files. Now our configuration meets the minimal requirements for the OpenStack installation. The next step is to install the DevStack repository. The commands we used for the installation are:
cd devstack; ./stack.sh
4 . Once, the installation is complete, the URL of the dashboard with the login credentials is returned.
OpenStack - Dashboard View
OpenStack - Virtual Machine / Instance Creation
The first step to launch a virtual machine is that, we need to create a keypair and download it in the respective client.
Launch an image and update it with its updated key.
The instances module will be updated with a new instance. Thereafter, when the power status turns running, the virtual machine is ready.
Instance
Eucalyptus
EucalyptusEucalyptus stands for Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems developed by University of California Santa Barbara, a software available under GPL that helps in creating and managing a private or even publicly accessible cloud.
AIM: To replicate the EC2 interfaces and functionality.
Provides EC2 compatible cloud computing platform and S3 compatible cloud storage platform.
Eucalyptus Architecture consists of five components which together reflect EC2.
Figure: Eucalyptus Architecture
Node Controller
Manages the life cycle of instances running on the node.
NC communicates with the OS and hypervisor running on the node on one side and the Cluster Controller on the other side.
NC requests the OS running on the node to find out the nodes physical resources -, the size of memory, the number of cores, the disk space available and also it learns about the state of VM instances running on the node and broadcasts this data up to the Cluster Controller
Cluster Controller (CC)Controls one or more Node Controllers and deploys instances on them.
Audits networking for the instances running on the Nodes under certain types of networking modes of Eucalyptus(STATIC, SYSTEM, MANAGED, MANAGED NOVLAN).
Main role is to get requests from CLC to deploy instances and determine which NC’s to use for deploying the instances.
Manages the virtual network available to the instances, gathers all detailed information about the NC’s registered with it and report it to the CLC
Walrus Storage Controller (WS3)
Acts as a persistent simple storage service using REST and SOAP API’s compatible with S3 APIs.
Similar to Amazons S3 API.
Helps in storing the machine images, snapshots and serving files using S3 API.
Storage Controller (SC)Acts as persistent block storage for use by the instances.
Similar to Amazon’s ElasticBlockStorage (EBS)
● Entry point to the cloud infrastructure.
● Offers an EC2/S3 compliant web services interface to the client tools on one side and communicates with the rest of the components of the Eucalyptus infrastructure on the other side.
● Records the availability of resources on various components of cloud infrastructure, including hypervisor nodes.
● CLC has a detailed info about the availability and usage of resources in the cloud and the state of the cloud.
Cloud Controller (CLC)
Eucalyptus InstallationHost OS: Cent OS 6.6Eucalyptus as Guest OS to instantiate a virtual machine.Hardware Requirements: 220 GB of disk space, 4 GB RAM and Ethernet NIC.Software Requirements: Eucalyptus faststart ISO file. UnetBootin is used to load ISO image into bootable USB drive.INSTALLATION STEPS1. Boot target system from Eucalyptus faststart media and install CentOS6.2. Set the language preference.3. Network information: eth0 DHCP4. Time Zone settings5. Cloud configuration Options
Most of them are default values. As we use the DHCP configurations, all IP addresses are assigned by the network
6. Disk install:Eucalyptus is intended to be the primary application and occupies all
the disk space on the system.7. Eucalyptus installation begins. S/W will be installed and default Eucalyptus machine image (EMI) will be built. Reboot is needed for changes to take effect.8. Accept licence agreement, create non-root login.
Dashboard View
Images
Launching Instances
Key Pair Generation:2 Ways:1. Generate key pair in dashboard and download in Client system.2. Generate in client and import it to dashboard.
Update the image with current key pair.Launch image to get VM running!
Instances
OpenNebula
IntroductionOpenNebula is free and open-source software, subject to the requirements of the
Apache License version 2.
OpenNebula is a cloud computing platform for managing heterogeneous distributed data center infrastructures.
March 1, 2008
It is the most simple among other open- source architectures.
OpenNebula Architectural Overview
CentOS 7 and KVM as a Hypervisor.
There are two separate roles: Frontend and Nodes.
Same host machine has been used.
Design and Installation
Design and Installation1. Installation in the Frontend
1.1. Enable the Extra Packages for Enterprise Linux(EPEL) repo:
1.2. Install the required packages:
1.3. Configure and Start the services:
1.4. Configure NFS (Skip this section)
Design and Installation1.5. Configure SSH Public Key
Design and Installation2. Installation in the Nodes
2.1. Install the repo:
2.2. Install the required packages:
Design and Installation
2.3. Configure the Network:substitute /etc/sysconfig/network-scripts/ifcfg-ens3 with:
And add a new /etc/sysconfig/network-scripts/ifcfg-br0 file.
After the changes, Restart the network:
2.4. Configure the NFS(Skip this section)
3. Basic UsageAll the operations in this section can be Sunstone instead of the command line. using the URL: http://localhost:9869.
3.1. Adding the host.
3.2. Adding the Virtual Resources
3.2. Adding the Virtual Resources(cont.)
3.2. Adding the Virtual Resources(cont.)
3.2. Adding the Virtual Resources(cont.)
3.3. Running a Virtual Machine
Running Virtual Machine
Results
As the dashboards for the three architectures are ready, we had to find their performances by benchmarking.
● CPU performance● Network Performance● Local Storage Performance
Results …. EucalyptusSSH into an instance (default Image : CentOS 6 demo).
● Result: Root password Invalid● Irrespective of trying general admin passwords like root, admin, password
etc. password was unknown.
We tried various images from ubuntu repositories below● https://cloud-images.ubuntu.com/● http://cloud.centos.org/centos/7/images/● https://fedoraproject.org/wiki/Cloud_images
Used euca-tools commands to link the above images to the eucalyptus repository.All these images were used to create some instances, but they had the same issue too.
● euca-bundle-image -i ubuntu-14.04-server-cloudimg-i386.tar.gz --arch x86_64
● euca-upload-bundle -b mybucket2 /var/tmp/bundle-303zWq/ubuntu-14.04-server-cloudimg-i386.tar.gz.manifest.xml
● euca-register -n mybucket2 mybucket2/ubuntu-14.04-server-cloudimg-i386.tar.gz.manifest.xml
● euca-modify-image-attribute -l -a all emi-730F3B34 --region admin@
Results …. OpenStack Launched an instance (default Image : Cirros 0.3.1-x86_64-uec). ● Result: Root password Invalid● Irrespective of trying general admin passwords like root,
admin, password etc. password was unknown.
We tried various images from ubuntu below repositories● https://cloud-images.ubuntu.com/● http://cloud.centos.org/centos/7/images/● https://fedoraproject.org/wiki/Cloud_images
All these images were used to create some instances, but they had the same issue too.
Results …. OpenNebulaImage was retrieved from the marketplace. Launched an instance (default Image : CentOS-6.5-one-4.8). ● Result: Root password Invalid● Irrespective of trying general admin passwords like root,
admin, password etc. password was unknown.
We tried various images from ubuntu below repositories● https://cloud-images.ubuntu.com/● http://cloud.centos.org/centos/7/images/● https://fedoraproject.org/wiki/Cloud_images
All these images were used to create some instances, but they had the same issue too.
Surprising Issue → Solved by checking the one_auth file.
OpenNebula VM Console
Conclusion● Eucalyptus, OpenStack and OpenNebula were installed successfully.● The documentation for OpenStack using DevStack was easier but not
detailed to explain any possible errors.● The Eucalyptus configuration using the documentation was simple.● OpenNebula was installed successfully using the documentation and
instances were created.● Most of the image files available for all the three architectures limited
the user to ssh into the virtual machine instance.● So, if the correct image files were located we would have been able to
benchmark the performance evaluations of all the three architectures.
Questions?
Thank You