CloudStack 2.2. Allocator Implementation. short description. open source cloud com puting. Dude McPants

Similar documents
Apache CloudStack 4.x (incubating) Network Setup: excerpt from Installation Guide. Revised February 28, :32 pm Pacific

Cloud.com CloudStack Release Notes

Building Private Cloud Architectures

Citrix CloudPlatform (powered by Apache CloudStack) Version 4.5 Administration Guide

SolidFire SF3010 All-SSD storage system with Citrix CloudPlatform Reference Architecture

Citrix CloudPlatform (powered by Apache CloudStack) Version Administration Guide

RED HAT ENTERPRISE VIRTUALIZATION FOR SERVERS: COMPETITIVE FEATURES

Cloud.com CloudStack Community Edition 2.1 Beta Installation Guide

SmartCloud Monitoring - Capacity Planning ROI Case Study

STeP-IN SUMMIT June 18 21, 2013 at Bangalore, INDIA. Performance Testing of an IAAS Cloud Software (A CloudStack Use Case)

Agenda. Begining Research Project. Our problems. λ The End is not near...

ORACLE VM MANAGEMENT PACK

FOR SERVERS 2.2: FEATURE matrix

RED HAT ENTERPRISE VIRTUALIZATION PERFORMANCE: SPECVIRT BENCHMARK

Syncplicity On-Premise Storage Connector

EMC ViPR Controller Add-in for Microsoft System Center Virtual Machine Manager

RED HAT ENTERPRISE VIRTUALIZATION FOR SERVERS: PRICING & LICENSING GUIDE

Red Hat enterprise virtualization 3.0 feature comparison

CloudPlatform (powered by Apache CloudStack) Version Administrator's Guide

SmoothWall Virtual Appliance

An Oracle Technical White Paper June Oracle VM Windows Paravirtual (PV) Drivers 2.0: New Features

Virtualization. as a key enabler for Cloud OS vision. Vasily Malanin Datacenter Product Management Lead Microsoft APAC

Best Practices: Modeling Virtual Environments in SPECTRUM

Storage XenMotion: Live Storage Migration with Citrix XenServer

Intel Cloud Builder Guide: Cloud Design and Deployment on Intel Platforms

Building a big IaaS cloud with Apache CloudStack

An Oracle White Paper September Oracle WebLogic Server 12c on Microsoft Windows Azure

VMware vsphere 5.5: Install, Configure, Manage Lab Addendum. Lab 4: Working with Virtual Machines

CloudPlatform (powered by Apache CloudStack) Version 4.2 Administrator's Guide

Business Process Desktop: Acronis backup & Recovery 11.5 Deployment Guide

Flexiant Cloud Orchestrator with Parallels Cloud Server

An Oracle White Paper March Oracle s Single Server Solution for VDI

Enterprise Java Applications on VMware: High Availability Guidelines. Enterprise Java Applications on VMware High Availability Guidelines

An Oracle White Paper August Oracle VM 3: Server Pool Deployment Planning Considerations for Scalability and Availability

Cloud Server. Parallels. Key Features and Benefits. White Paper.

Solution Brief Availability and Recovery Options: Microsoft Exchange Solutions on VMware

FAQ. NetApp MAT4Shift. March 2015

PHD Virtual Backup for Hyper-V

Evaluation of Multi-Hypervisor Management with HotLink SuperVISOR

Deploying Fusion Middleware in a 100% Virtual Environment Using OVM ANDY WEAVER FISHBOWL SOLUTIONS, INC.

Benchmark Results of Fengqi.Asia

efolder BDR for Veeam Cloud Connection Guide

Ubuntu OpenStack on VMware vsphere: A reference architecture for deploying OpenStack while limiting changes to existing infrastructure

Managing Traditional Workloads Together with Cloud Computing Workloads

RED HAT ENTERPRISE VIRTUALIZATION FOR SERVERS: COMPETITIVE PRICING GUIDE

Kronos Workforce Central on VMware Virtual Infrastructure

Effectively Managing Heterogeneous Virtual Environments

Virtual LoadMaster for Microsoft Hyper-V

Server Virtualization with Windows Server Hyper-V and System Center

Course Syllabus. Implementing and Managing Windows Server 2008 Hyper-V. Key Data. Audience. At Course Completion. Prerequisites

IBM Virtual Server Services. A smarter way to support and grow your business

POD INSTALLATION AND CONFIGURATION GUIDE. EMC CIS Series 1

Backing Up the CTERA Portal Using Veeam Backup & Replication. CTERA Portal Datacenter Edition. May 2014 Version 4.0

Oracle VM Manager Template. An Oracle White Paper February 2009

Introduction to Virtual Datacenter

IBM SmartCloud Monitoring

Protecting Virtual Servers with Acronis True Image

Hyper V Windows 2012 and 8. Virtual LoadMaster for Microsoft Hyper V on Windows Server 2012, 2012 R2 and Windows 8. Installation Guide

Cloud Sure - Virtual Machines

Windows Server Virtualization An Overview

Backup Exec System Recovery Management Solution 2010 FAQ

Architecting for the next generation of Big Data Hortonworks HDP 2.0 on Red Hat Enterprise Linux 6 with OpenJDK 7

CloudStack Release Notes

Magic xpi 4.0 Release Notes

Running VirtualCenter in a Virtual Machine

NVIDIA GRID 2.0 ENTERPRISE SOFTWARE

Cloud n Service Presentation. NTT Communications Corporation Cloud Services

Datasheet Fujitsu Cloud Infrastructure Management Software V1

Barracuda Backup Vx. Virtual Appliance Deployment. White Paper

Instant Recovery for VMware

Are You Ready for the Holiday Rush?

EMC Virtual Infrastructure for Microsoft Applications Data Center Solution

CA Unified Infrastructure Management

Citrix CloudPlatform (powered by Apache CloudStack) Version 4.2 Release Notes. Revised September 02, :45 am Pacific

How To Set Up A Shared Insight Cache Server On A Pc Or Macbook With A Virtual Environment On A Virtual Computer (For A Virtual) (For Pc Or Ipa) ( For Macbook) (Or Macbook). (For Macbook

Configuring and Deploying a Private Cloud with System Center 2012 MOC 10751

CLOUDSTACK VS OPENSTACK. Apache CloudStack: It Just Works for Service Providers

Tips for getting started! with! Virtual Data Center!

About the VM-Series Firewall

What s New with VMware Virtual Infrastructure

HP CloudSystem Enterprise

Backup and Recovery in the Virtual Age. Scott Baker and Bahar Shah

Abstract. Microsoft Corporation Published: November 2011

Creating, Deploying, and

PANO MANAGER CONNECTOR FOR SCVMM& HYPER-V

Which is Better: Virtualization or Cloud IaaS?

POD INSTALLATION AND CONFIGURATION GUIDE. Python Security

Newsletter 4/2013 Oktober

Server Consolidation with SQL Server 2008

JovianDSS Evaluation and Product Training. Presentation updated: October 2015

Cloud Platform Comparison: CloudStack, Eucalyptus, vcloud Director and OpenStack

Drobo How-To Guide. Cloud Storage Using Amazon Storage Gateway with Drobo iscsi SAN

Virtual LoadMaster for VMware ESX, ESXi using vsphere

Netwrix Auditor. Virtual Appliance Deployment Guide. Version: 8.0 8/1/2016

BLACK BOX. Quick Start Guide. Virtual Central Management System (VCMS) Works with LES Series Console Servers. LES-VCMS. Customer Support Information

RED HAT ENTERPRISE VIRTUALIZATION 3.0

Dell High Availability Solutions Guide for Microsoft Hyper-V

NetIQ Aegis Adapter for VMware vcenter Server

Week Overview. Installing Linux Linux on your Desktop Virtualization Basic Linux system administration

CLOUD SERVERS vs DEDICATED SERVERS

Transcription:

CloudStack 2.2 Allocator Implementation short description open source cloud com puting Dude McPants Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/license-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. Apache CloudStack is an effort undergoing incubation at The Apache Software Foundation (ASF). Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF. CloudStack is a registered trademark of the Apache Software Foundation. Apache CloudStack, the CloudStack word design, the Apache CloudStack word design, and the cloud monkey logo are trademarks of the Apache Software Foundation. Abstract A short overview and summary of the book's subject and purpose, traditionally no more than one paragraph long. Note: the abstract will appear in the front matter of your book and will also be placed in the description field of the book's RPM spec file. 1. Implementing a custom HostAllocator... 2 1.1. Host Allocator Interface... 2 1.2. Reference HostAllocator Implementation... 4 1

Allocator Implementation 1.3. Loading a custom HostAllocator... 4 2. Custom Storage Pool Allocator... 4 2.1. Custom Storage Pool Allocator Interface... 4 2.2. Reference StoragePoolAllocator Implementation... 5 2.3. Loading a custom StoragePoolAllocator... 6 Allocators are part of the CloudStack Adapters. There are following categories of allocators currently supported: 1. HostAllocators: Allows you to create custom rules to determine which physical host to allocate the guest virtual machines on. 2. StoragePoolAllocators: Allows you to create custom rules to determine which storage pool to allocate the guest virtual machines on. 1. Implementing a custom HostAllocator 1.1. Host Allocator Interface HostAllocators are written by extending com.cloud.agent.manager.allocator.hostallocator interface. The interface defines following two methods. /** * Checks if the VM can be upgraded to the specified ServiceOffering * @param UserVm vm * @param ServiceOffering offering * @return boolean true if the VM can be upgraded **/ public boolean isvirtualmachineupgradable(final UserVm vm, final ServiceOffering offering); /** * Determines which physical hosts are suitable to allocate the guest virtual machines on * * @param VirtualMachineProfile vmprofile * @param DeploymentPlan plan * @param Type type * @param ExcludeList avoid * @param int returnupto * @return List<Host> List of hosts that are suitable for VM allocation **/ public List<Host> allocateto( VirtualMachineProfile<?extends VirtualMachine> vmprofile, DeploymentPlan plan, Type type, ExcludeList avoid, int returnupto); A custom HostAllocator can be written by implementing the allocateto method Input Parameters for the method HostAllocator :: allocateto : 1. com.cloud.vm.virtualmachineprofile vmprofile 2 VirtualMachineProfile describes one virtual machine. This allows the adapters like Allocators to process the information in the virtual machine and make determinations on what the virtual machine profile should look like before it is actually started on the hypervisor. HostAllocators can make use of the following information present in the VirtualMachineProfile:

Host Allocator Interface a. The ServiceOffering that specifies configuration like requested CPU speed, RAM etc necessary for the guest VM. b. The VirtualMachineTemplate, the template to be used to start the VM. 2. com.cloud.deploy.deploymentplan DeploymentPlan should specify: a. datacenterid: The data center the VM should deploy in. b. podid: The pod the VM should deploy in; null if no preference. c. clusterid: The cluster the VM should deploy in; null if no preference. d. poolid: The storage pool the VM should be created in; null if no preference 3. com.cloud.host.host.type type Type of the Host needed for this guest VM. Currently com.cloud.host.host.type interface defines the following Host types: a. Storage b. Routing c. SecondaryStorage d. ConsoleProxy e. ExternalFirewall f. ExternalLoadBalancer 4. com.cloud.deploy.deploymentplanner.excludelist avoid The ExcludeList specifies what datacenters, pods, clusters, hosts, storagepools should not be considered for allocating this guest VM. HostAllocators should avoid the hosts that are mentioned in ExcludeList.hostIds a. SetLong dcids; b. SetLong podids; c. SetLong clusterids; d. SetLong hostids; e. SetLong poolids; 5. int returnupto This specifies return up to that many vailable hosts for this guest VM. To get all possible hosts, set this value to -1 3

Allocator Implementation 1.2. Reference HostAllocator Implementation Refer to com.cloud.agent.manager.allocator.impl.firstfitallocator that implements the HostAllocator interface. This allocator checks available hosts in the specified datacenter, Pod, Cluster and considering the given Service Offcering requirements. If returnupto = 1, this allocator would return the first Host that fits the requirements of the guest VM 1.3. Loading a custom HostAllocator Write a custom HostAllocator class, implementing the interface described above. Package the code into a JAR file and make the JAR available in the classpath of the Management Server/tomcat Modify the components.xml and components-premium.xml files found in /client/ tomcatconf as follows: Search for 'HostAllocator' in these files. <adapters key="com.cloud.agent.manager.allocator.hostallocator"> <adapter name="firstfit" class="com.cloud.agent.manager.allocator.impl.firstfitallocator"/> </adapters> Replace the FirstFitAllocator with your clas name. Optionally, you can change the name of the adapter as well. Restart the Management Server 2. Custom Storage Pool Allocator StoragePoolAllocators are written by extending com.cloud.storage.allocator. StoragePoolAllocator interface. 2.1. Custom Storage Pool Allocator Interface A custom StoragePoolAllocator can be written by implementing the allocateto method /** * Determines which storage pools are suitable for the guest virtual machine * @param DiskProfile dskch * @param VirtualMachineProfile vmprofile * @param DeploymentPlan plan * @param ExcludeList avoid * @param int returnupto * @return List<StoragePool> List of storage pools that are suitable for the VM **/ public List<StoragePool> allocatetopool(diskprofile dskch, VirtualMachineProfile<? extends VirtualMachine> vm, DeploymentPlan plan, ExcludeList avoid, int returnupto); 4

Reference StoragePoolAllocator Implementation This interface also contains some other methods to support some legacy code. However your custom allocator can extend the existing com.cloud.storage.allocator. AbstractStoragePoolAllocator. This class provides default implementation for all the other interface methods. Input Parameters for the method StoragePoolAllocator :: allocateto : 1. com.cloud.vm.diskprofile dskch DiskCharacteristics describes a disk and what functionality is required from it. It specifies the storage pool tags if any to be used while searching for a storage pool. 2. om.cloud.vm.virtualmachineprofile vmprofile VirtualMachineProfile describes one virtual machine. This allows the adapters like Allocators to process the information in the virtual machine and make determinations on what the virtual machine profile should look like before it is actually started on the hypervisor. StoragePoolAllocators can make use of the following information present in the VirtualMachineProfile: a. The VirtualMachine instance that specifies the properties of the guest VM. b. The VirtualMachineTemplate, the template to be used to start the VM. 3. com.cloud.deploy.deploymentplan plan DeploymentPlan should specify: a. datacenterid: The datacenter the VM should deploy in. b. podid: The pod the VM should deploy in; null if no preference c. clusterid: The cluster the VM should deploy inl null if no preference. d. poolid: The storage pool the VM should be created in; null if no preference. 4. com.cloud.deploy.deploymentplanner.excludelist avoid The ExcludeList specifies what datacenters, pods, clusters, hosts, storagepools should not be considered for allocating this guest VM. StoragePoolAllocators should avoid the pools that are mentioned in ExcludeList.poolIds: a. Setlong dcidsl; b. Setlong podids; c. Setlong clusterids; d. Setlong hostids; e. Setlong poolids; 5. int returnupto This specifices return up to that many available pools for this guest VM. To get all possible pools set this value to -1 2.2. Reference StoragePoolAllocator Implementation Refer to com.cloud.storage.allocator.firstfitstoragepoolallocator that implements the StoragePoolAllocator interface. This allocator checks available pools in the specified datacenter, Pod, Cluster, and considers the given DiskProfile charateristics. 5

Allocator Implementation If returnupto = 1, this allocator would return the first Storage Pool that fits the requirements of the guest vm 2.3. Loading a custom StoragePoolAllocator Write a custom StoragePoolallocator class, implementing the interface described above. Package the code into a JAR file and make the JAR available in the classpath of the management server/tomcat. Modify the components.xml and components-premium.xml files found in /client/ tomcatconf as follows: Search for 'StoragePoolAllocator' in these files. Replace the FirstFitStoragePoolAllocator with your class name. Optionally, you can change the name of the adapter as well. Restart the management server 6