Apache VCL

The Apache VCL project.

VCL, Virtual Computing Lab. The VCL can be many things, first and foremost it is a open-source system used to dynamically provision and broker remote access to a dedicated compute environment for an end-user. The provisioned computers are typically housed in a data center and may be physical blade servers, traditional rack mounted servers, or virtual machines. VCL can also broker access to standalone machines such as a lab computers on a university campus.

One of the primary goals of VCL is to deliver a dedicated compute environment to a user for a limited time through a web interface. This compute environment can range from something as simple as a virtual machine running productivity software to a machine room blade running high end software (i.e. a CAD, GIS,statistical package or an Enterprise level application) to a cluster of interconnected physical (bare metal) compute nodes.

Also using the scheduling API it can be used to automate the provisioning of servers in a server farm or HPC cluster.

User Documentation


Interested in joining the community or giving back to open source? There are several ways to assist:

  • Join the mailing lists below and discuss ideas.
  • Contribute bug-fixes or get involved in development.
  • Help with the documentation, both end-user and installation.
  • Help improve the website.

Mailing lists


Project Resources



Subversion Repository




Current version

VCL 2.4.2

Release Roadmap


User Documentation

Documentation (work in progress: Diagrams, Install guide)

Architecture Diagram



#asfvcl on Freenode

Conceptual Overview

The conceptual overview below shows that remote users connect to the VCL Scheduling Application (the web VCL portal) and request access to a desired application environment. The application environment consists of an operating system and a suite of applications. The computer types are machine room blade servers, vmware virtual machines, and standalone machines.

VCL Feature List

  • Automated provisioning, on-demand or future based
  • Brokers user sessions
  • Block allocations - provisioning larger number of compute environments for a specific event
    • For the class room
    • For a conference workshop
  • Physical (bare-metal) provisioning using xCAT
  • Virtual machine provisioning on VMware ESXi, VMware ESX Standard server, VMware Free Server
  • Image creation - allow end-users to create custom environments
  • Image revision control - create multiple revisions of an image
  • Statistics of environment usage
  • Privilege control - grant varying levels of control to end-users through web interface
    • Image checkout, image creation, manage users, manage resources, manage resource schedules
  • Set available/unavailable schedules for nodes
  • Multiple Management Nodes for scalability
  • API support for making requests and provisioning resources


Bare-metal = a physical server (such as a blade server) as opposed to a virtual machine

Node = a computer

Resource = a compute node, an image, a management node, or a schedule

Management Node = a process server or the machine where vcld is running; processes user requests assigned by the scheduler; does the provisioning

System Requirements

See the VCL Installation documentation for more information

Web Frontend


Management Node Backend

  • No labels