You are viewing an old version of this page. View the current version.
Compare with Current
View Page History
« Previous
Version 16
Next »
Overview
Target
- Hyper-V Server 2012
- WMI for VMM control
Strategy
- CloudStack Agent Model
- Business logic in ServerResource accesses WMI
Phase 1
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
Phase 2
Expand networking support
- Flat networking with Security Groups for VM isolation
Volume service
- Volumes management independent of VMs
Expand VM management
Shared storage
Native SystemVMs
- Console access
- RDP sessions to Hyper-V VMs
Progress
GitHub repository https://github.com/lafferty/cshv3
- Plugin is cloud-plugin-hypervisor-hyperv, under ./plugins/hypervisor/hyperv
- Minor changes to UI required for template creation
Architecture
- Reuse KVM-style Agent Container
- Java-based agent executes on hypervisor
- Call out to WMI via Hyper-V scripts
- Use existing SystemVMs
- Include XenServer cluster to run SSVM and Virtual Router
- Local Primary Storage
- 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
- Executes in Cygwin
Design changes
Near
Adopt Javelin Storage model
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
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
Background
Original Feature Spec