Cloud infrastructure design - VM - KVM hypervisor + libvirt-virsh - iSCSI storage for OS+data - local SSD for swap - fully supported OS: Linux (2.6.32+ based distros) - partial support: Windows (+ virtio drivers) - may also work: FreeBSD (-CURRENT for virtio) - storage - 2 storage servers design - 2x 2iface bonding (roundrobin), one to each switch - 10GE interconnect for replication - virtualized storage servers - areca hwraid -> drbd -> LVM -> KVM VM -> LVM -> iSCSI target - iSCSI multipathing - Debian GNU/Linux based - Virtual NFS storage server for shared data (ISOs) - network - RouterOS + Virtual Routers - Dual switch architecture, dumb switches ************************************* * IMPLEMENTATION * Software stack infrastructure: - Ruby backend daemons - PHP central API [superHA VM] - CLI frontend - jQuery mobile frontend 3 stages of implementation: Bare minimum Deadline: end of 2011 Optimal featureset Deadline: hw_purchase_date + 3 months Rich featureset Dealine: optimal_featureset + 6-12 months ************************************* * BACKEND * Bare minimum of backend functions - Cluster - resource tracking - basic allocator (resource based) - failover support - VM - create - start/stop/reset - delete - attach/detach ISO - storage - create VM virtual drive - delete VM virtual drive - register/unregister ISO - network - bridge - attach tap - detach tap - IP mac filter - assign IP - unassign IP Optimal featureset = Bare minimum + - Cluster - enhanced allocator (resource+usage based) - rebalance support - VM - clean shutdown - add/remove more virtual drives - local SSD swap management - offline migration - storage - usage monitoring per iSCSI export - offline resize - network - usage monitoring per IP - VLAN management - attach/detach VM - VNC management (port forward) Rich featureset = Optimal + - Cluster - advanced allocator (resource+usage+trending) - automatic rebalance - VM - userspace tools (linux only, written in Ruby) - online migration - stats reporting - optimized cluster resource planning - storage - virtual storage management - create/delete - start/stop/reset - attach/detach VLAN - network - virtual router management - create/delete - start/stop/reset - attach/detach VLAN ************************************* * FRONTEND * CLI (full unlimited access to everything) Web interface (user + admin, access restricted - admin vs user) Bare minimum featureset CLI - Full scope of bare minimum backend featureset - User management - Add/delete/modify Admin web interface - Cluster overview (resources) User web interface - User management - Change password - start/stop/reset VM - attach/detach ISO Optimal featureset = Bare minimum + CLI - Full scope of optimal backend featureset Admin web interface - Bare minimum CLI featureset - User management - Resource pools for users User web interface - VM management within resource pool - create/delete - User locked inside one VLAN - html5based in-browser VNC client Rich featureset CLI - Full scope of rich featureset Admin web interface - Full scope of rich featureset User web interface - Full scope of rich featureset