I am trying to do a portal/dashboard with multiple cloud provider backends and unified billing, and have decided on OpenNebula for its maturity and extensibility. There are three variables in this model: cloud provider, region/availability zone, and tier, which would be naturally mapped to the native concepts of cluster, host, and template, but there are some issues that I am unsure of.
In the OpenNebula model, capacity is tied to host and monitored by host probes, and a VM template should uniquely designate the cost per CPU/memory/disk. For public clouds, both capacity and cost can only be determined given the complete provider-region-tier triplet, which essentially means that both VM templates and hosts has to be 1:1 with all possible triplet permutations, and does not feel particularly scalable. The in-tree EC2 driver seems to have resorted to static capacity and cost by requiring fixed static quota (instance_types
) for each tier in the host config.
Is there a better way to handle these within the current design of OpenNebula framework?