CloudStack Development for KVM in a Virtual Machine · To familiarize programmers with developing for CloudStack using a virtualized KVM host . Prerequisites 1) Computer Hypervisor

Post on 29-Aug-2019

217 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

Transcript

CloudStack Development for KVMin a Virtual Machine

CloudStack Development for KVMin a Virtual Machine

PurposeTo familiarize programmers with developing for CloudStack

using a virtualized KVM host

PurposeTo familiarize programmers with developing for CloudStack

using a virtualized KVM host

Prerequisites1) Computer

● Hypervisor capable of running nested virtualization−VMware Fusion 6 Pro + MacOS−Linux w/KVM, nested=1 kvm module parameter

● 4GB of free RAM (8GB+ total system ram)2) Internet Connection

● For download of source, VM templates, wiki instructions

DevCloud Development ModelsDevCloud Development Models● Full Stack in VM● Full Stack in VM ● Split Manager/Agent● Split Manager/Agent

Installation:MacOS w/VMware Fusion

Installation:MacOS w/VMware Fusion

1. Install VMware Fusion 6 Professional2.Set up networks, VMware Fusion → Preferences

Setup vmnet2

Setup vmnet3

3. Download DevCloud-KVM VM for VMware Fusion: http://marcus.mlsorensen.com/cloudstack-extras/devcloud-kvm-fusion.tar.gz

4. Extract package via double-click in Finder5. Navigate folder, right click VM → Open With → VMware Fusion

Select “I moved it”, which will preserve MAC addresses

Installation:Linux w/KVMInstallation:

Linux w/KVM

1. Verify nested KVM capability

2. Download DevCloud-KVM package for Linux KVM

3. Extract archive

4. Install networks

5. Edit file devcloud-kvm.xml, change path for qcow2 image to match actual path on workstation

6. Register and start VM

Inside DevCloud-KVMssh root@172.17.10.10password : “password”

Inside DevCloud-KVMssh root@172.17.10.10password : “password”

Installing CloudStack from SourceInstalling CloudStack from Source

Deploying A ZoneDeploying A Zone

NetworkNetwork

Key KVM Agent ClassesKey KVM Agent Classes● LibvirtComputingResource

– Primary handler of *Command classes● VirtualRoutingResource

– Handles Virtual Router programming *Command classes● LibvirtVMDef

– Handles putting together Libvirt XML for guests● KVMStorageProcessor

– Handles most storage related *Command classes● StorageAdaptor

– Interface for implementing a storage pool (agent-side storage plugins)● VifDriver

– Interface for implementing vm nic plug, unplug (network plugin)– Extend VifDriverBase

● LibvirtComputingResource– Primary handler of *Command classes

● VirtualRoutingResource– Handles Virtual Router programming *Command classes

● LibvirtVMDef– Handles putting together Libvirt XML for guests

● KVMStorageProcessor– Handles most storage related *Command classes

● StorageAdaptor– Interface for implementing a storage pool (agent-side storage plugins)

● VifDriver– Interface for implementing vm nic plug, unplug (network plugin)– Extend VifDriverBase

top related