- Easy-to-use web control panel & API: customers have full control
- Commodity server hardware: for lowest technical costs
- Advanced Linux KVM virtualization: any OS & no special drivers
- Multiple independent RAID arrays: for redundancy
- Flexible server sizes: from 2GHz/1GB to 8-core/8GB
- Automated 24/7 monitoring: alerts when intervention needed
The ElasticStack cloud platform runs entirely on commodity server hardware, with no SAN/NAS required.
This makes
installation simple and means that you don't have to invest in expensive specialist hardware.
The ElasticStack cloud platform includes three distinct software layers:
These are entirely
distinct components, which communicate via well-defined APIs. See our recommended
hardware requirements for each component.
A full description of each layer follows below.
Cloud computing architecture
|
|
This runs once centrally, and provides the public web interface that your customers see,
and the billing system for their usage.
It communicates with the API server using the public external API.
This is the component that you are most likely to customize (see
Customization options below).
|
|
|
This runs once centrally. It maintains the overview of which
virtualization hosts hold which virtual drives and which cloud servers, and hence where
new instances should be provisioned.
It exports our public external API (described on the
ElasticHosts site), and communicates with the virtualization hosts using an internal API.
|
|
|
This runs on each virtualization host individually. It manages storage
for virtual drives and virtualization for cloud servers.
ElasticStack uses Linux KVM, the advanced
virtualization platform built into mainline Linux. We believe KVM is superior to Xen, VMWare and Virtuozzo:
see Why we chose KVM virtualization below.
It supports high-performance cloud servers running any OS with no special drivers.
Cloud servers can be created and scaled at any size from 2GHz/1GB up to 8-core/8GB.
Our storage backend uses local RAID arrays on each virtualization host, divided into virtual drives
and shared between virtualization hosts over iSCSI. This offers redundancy and high performance with
no single point of cluster failure and no expensive SAN/NAS hardware.
|
Our cloud platform architecture offers very flexible customization options. Depending on your individual requirements, you
can simply re-brand our web control panel, add new features for your customers, or re-engineer the
web control panel and billing completely to integrate with your existing systems.
- [Typical] Rebranding and local payment integration (2-3 weeks, included in setup)
- [Advanced] Re-engineer web control panel and/or billing over our API and cluster management (2-3 months)
- [Bespoke] Custom feature development
We offer you full source code, so your developers can make changes themselves. Alternatively, we are happy to
add bespoke features on request.
Before selecting Linux KVM, we evaluated VMWare and Xen, two other virtualization platforms providing similar
capabilities to KVM (Virtuozzo only provides OS-level containers). We selected KVM as the best architecture
for virtualization on modern processors with fast hardware virtualization support (VT-x and NPT on Intel or AMD-V and EPT on AMD).
Increasing hardware virtualization support
- Historically, virtualization platforms used software to trap and simulate certain instructions, memory management and I/O in the host virtual machines. VMWare was an early leader in this software technology.
- With the first generation of hardware virtualization, the VT-x/AMD-V extensions trapped these instructions in hardware, giving a significant speed improvement. However, virtualized memory management and I/O remained bottlenecks. Xen was an early proponent of paravirtualization, which attacks those bottlenecks by modifying the host operating system at compile time.
- With the second generation of hardware virtualization, the NPT/EPT extensions minimize the memory management bottleneck. As a result, MMU paravirtualization is a legacy approach, leaving just scheduling and I/O to be virtualized in software by a hypervisor. (I/O virtualization requires a good set of device drivers for the underlying hardware, of course: an area in which Linux excels.)
Hypervisor architecture and device drivers
- Linux KVM is a hypervisor which is built into mainline Linux. It uses the full range of hardware virtualization support, and directly uses the regular Linux scheduler and I/O device drivers.
- Xen runs an external hypervisor for scheduling, and uses a modified Linux kernel in domain 0 to provide device drivers.
- VMWare runs a proprietary external hypervisor, which includes scheduling and device drivers, many of which are adapted from Linux.
- We believe the KVM architecture is superior to both Xen and VMWare, since the mainline Linux scheduler and device drivers are both extremely well designed, widely deployed, professionally maintained and thoroughly tested, to a level likely well above what a single company can achieve on either their own proprietary codebase or locally maintained fork of Linux.