What is Haizea?
Haizea is an open-source VM-based lease management architecture. Let's break that down, shall we?
- Haizea is a resource manager (or, depending on who you ask, a "resource scheduler"): Haizea is a software component that can manage a set of computers (typically a cluster), allowing users to request exclusive use of those resources described in a variety of terms, such as "I need 10 nodes, each with 1 GB of memory, right now" or "I need 4 nodes, each with 2 CPUs and 2GB of memory, from 2pm to 4pm tomorrow".
- Haizea uses leases: The fundamental resource provisioning abstraction in Haizea is the lease. Intuitively, a lease is some form of contract where one party agrees to provide a set of resources (an apartment, a car, etc.) to another party. When a user wants to request computational resources from Haizea, it does so in the form of a lease. When applied to computational resources, the lease abstraction is a powerful and general construct with a lot of nuances. The Haizea Manual includes a more detailed definition of leases and the types of leases supported by Haizea (see below for a quick list of supported lease types).
- Haizea is VM-based: We hold that the best way of implementing resource leases is using virtual machines (VMs). Therefore, Haizea's scheduling algorithms are geared towards managing virtual machines, factoring in all the extra operations (and overhead) involved in managing VMs. The Globus Virtual Workspaces group, where Haizea was originally developed, has an extensive list of publications that argue how using virtual machines for resource leasing is A Good Thing (and also Not A Trivial Thing).
- Haizea is open source: Haizea is published under the Apache License 2.0, a BSD-like OSI-compatible license.
What can you do with Haizea?
You can use Haizea one of two ways. Haizea can be used as a standalone component or as a scheduling backend for a virtual infrastructure manager, such as OpenNebula. So, if you're...
- Using Haizea with OpenNebula: Haizea can be used as a drop-in replacement for OpenNebula's scheduling daemon. OpenNebula is a virtual infrastructure manager that enables the dynamic deployment and re-allocation of virtual machines on a pool of physical resources. OpenNebula and Haizea complement each other, since OpenNebula provides all the enactment muscle (OpenNebula can manage Xen and KVM virtual machines on a cluster, with VMWare support to follow shortly) while Haizea provides all the scheduling brains. The Haizea Manual includes a chapter on how to run Haizea and OpenNebula together.
- Using Haizea on its own: Haizea is, primarily, a VM resource management component that can take lease requests and make scheduling decisions, but doesn't actually know anything about how to enact those decisions. For example, Haizea may determine at what times a set of VMs representing a lease must start and stop, but it doesn't actually know how to instruct a virtual machine manager to do these actions. Haizea can, however, simulate those enactment actions so, on its own, Haizea can be useful if you're doing scheduling research involving leases or VMs (in fact, the Haizea simulator has been used in a couple of papers).
Haizea supports the following types of leases:
- Leases requiring a single VM or groups of VMs that must run in parallel.
- Best-effort leases, which will wait in a queue until resources become available.
- Advance reservation leases, which must start at a specific time.
- Immediate leases, which must start right now, or not at all.
Haizea's scheduling algorithms can...
- ... explicitly schedule the deployment overhead of virtual machines, instead of having it deducted from a user's allocation. For example, if a lease must start at 2pm, Haizea will schedule the transfer of the necessary VM images to the physical nodes where the virtual machines will be running (and will make sure that the images arrive on time).
- ... leverage the suspend/resume capability of virtual machines to suspend preemptible leases when a higher-priority lease needs resources. It also leverages cold migration of VMs (migrating a suspended VM to a different machine to resume it there). Live migration scheduling is in the works.
- ... schedule best-effort requests using a First-Come-First-Serve queue with backfilling (aggressive, conservative, or with any number of reservations).
Haizea can be used as a scheduling backend for the OpenNebula virtual infrastructure manager to do all the above in a Xen or KVM cluster. It can also be used to simulate long-running workloads (weeks or months). See the Haizea Manual for more details on how to use all these features.