You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 24 Next »

Overview

Target

  • Hyper-V Server 2012
  • WMI for VMM control

Strategy

  • CloudStack Agent Model
  • Business logic in ServerResource accesses WMI

Support basic commands

  • VM lifecycle
    • Local disk creation from template
    • VM creation, start/stop, and destruction
  • VMM monitoring
    • Host, VM and storage stats returned to CloudStack Server

VM network isolation using VLANs

Basic template management

Expand networking support

  • Flat networking with Security Groups for VM isolation

Volume service

  • Volumes management independent of VMs

Expand VM management

  • Migration

Shared storage

Native SystemVMs

  • Console access
    • RDP sessions to Hyper-V VMs

Architecture*

  • Reuse KVM-style Agent Container
    • Java-based agent executes on hypervisor
    • Call out to WMI
  • Use existing SystemVMs
  • Local Primary Storage
    • Local folder
  • Secondary storage accessed as NFS/SMB via Windows Server 2012
    • Free license Hyper-V Server 2012 has no NFS client
    • Admin manually mounts secondary storage to appear as local folder

Design changes

Near

Adopt Javelin Storage model

  • Avoid NFS requirements

Far

V2 WMI API

  • Currently mix of v1 and v2

Access WMI from Java

  • Remove use of scripts
  • Remove agent from Hyper-V server

Misc Design Notes

Local Storage

  • UUIDs for volumes correspond to their file names on disk. Only this UUID is persisted on the Hyper-V Server

Misc QA Notes

Test Plan

Unit tests

  • Each test corresponds to one or more Command objects sent to a ServerResource
  • No unit tests for server-side objects (Discoverer or HypervisorGuru)
  • Tests written to work only on Hyper-V 2012

Progress

HyperV Branch https://git-wip-us.apache.org/repos/asf?p=cloudstack.git;a=shortlog;h=refs/heads/hyperv

  • Plugin is cloud-plugin-hypervisor-hyperv, under ./plugins/hypervisor/hyperv
  • Minor changes to UI required for template creation

The changes are in the following branch https://git-wip-us.apache.org/repos/asf/cloudstack/repo?p=cloudstack.git;a=tree;h=hyperv;hb=hyperv. For 4.3 support for following features is being targeted.

  1. Pure hyperv zone will be supported. No mixed zone.
  2. Support for SMB/CIFS as primary and secondary.
  3. Local storage as primary
  4. Start/Stop instance.
  5. Reboot and destroy instance.
  6. Attach/ Detach iso.
  7. Template and iso registration.
  8. Attach and Detach volumes.
  9. Live migration of an instance from one host to another. Only vm migration (no storage migration).
  10. Advanced networking. Isolation using vlans.
  11. Isolated and shared networking.
  12. Console access.

What is currently working.

  1. Systemvm template has been created for hyper.
  2. Pure hyperv zone. Virtual router comes up in pure hyperv and services get configured.
  3. Vm instance deployment. Start and stop instance.
  4. Local storage is working. Instances are created and disks are on local. Work of shared storage as primary is in progress.
  5. Attach and detach iso.
  6. Advanced networking, isolated network.
  7. Template and iso registration.
  8. Support for CIFS as secondary storage.
  9. Unit tests for agent have been written and proposed for review. Once they are reviewed and merged to hyperv branch, the hyperv branch will be proposed for merge to master.

Background

Original Feature Spec

  • No labels