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

Compare with Current View Page History

« Previous Version 25 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

Adopt Javelin Storage model

  • Avoid NFS requirements

Agent model

  • Cloudstack agent model.
  • C# based agent which makes WMI calls for operations on the hypervisor.
  • Agent accepts json requests and does the necessary operations on the hypervisor.

V2 WMI API

  • 2012 R2 supports only root/virtualization/v2 namespace. WMI calls on the agent will use the same namespace.

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