Skip to end of metadata
Go to start of metadata

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