Skip to content

jingsu/openstack

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Overview

This project is an Openstack extension that exposes Gridcentric's Virtual Machine Streaming (VMS) technology. It allows Openstack clouds to take advantage of VMS-enabled hypervisors (currently supports Xen and KVM). See http://www.gridcentric.com for more information on VMS.

Installation Instructions

There are two main components that need to be installed:

  • API-Extension: This is the actual API extension that exposes the new REST end points
  • Gridcentric Service: A new Openstack service that performs the gridcentric specific operations.

This extension needs to be installed wherever the nova-api and nova-compute services are running. Note also that Gridcentric's vms package need to be installed on all of the compute nodes.

Installing from deb package:

# Build the deb package
$ make deb

# Install the package found in the main directory. If using Ubuntu use the one labeled 'ubuntu'.
$ sudo dpkg -i nova-gridcentric_1.0-{ubuntu}*.deb

Installing from source:

# Build the extension
$ python setup.py build

# Install the extension
$ sudo python setup.py install

# Copy the extension file (gridcentric/osapi/gridcentric_extension.py) to the nova osapi
# extension directory (the --osapi_extensions_path nova configuration flag):
$ sudo mkdir -p /var/lib/nova/extensions
$ sudo cp gridcentric/osapi/gridcentric_extension.py /var/lib/nova/extensions/

# Copy the gc-api script to /usr/bin
$ sudo cp tools/gc-api /usr/bin

# (Optional) Copy the nova-gridcentric upstart script (etc/nova-gridcentric.conf) to /etc/init/
$ sudo cp etc/nova-gridcentric.conf /etc/init

# Restart the nova-api service
$ sudo restart nova-api

# Start the nova-gridcentric service. Check the /var/log/nova/nova-gc.log file to ensure the
# service is running. Note this is only needed on the machines running the nova-compute service.
$ sudo start nova-gridcentric
$ tail /var/log/nova/nova-gc.log

Usage

# Boot a new instance using the regular Openstack API
$ nova boot --flavor 1 --image 1 ChromeOS-HVM

# Wait for the instance to move from BUILD to ACTIVE. Once ACTIVE ssh into the instance
# and install the vms-agent package. The agent package is used to ensure that the networking is
# reconfigured correctly when launching new instances.

# Bless the instance. This will create a running snapshot of the instance that can later be
# used to launch new instances. Launched instances will be started with the same loaded memory
# as this blessed one.
$ gc-api bless <id of the instance from step 1>

# List the nova instances and there should now be a new one with a status of BLESSED. This
# instance represents a blessed snapshot that can be launched. Note that this instance is not
# consuming any RAM or CPU resources.

# Launch more instances based off of the blessed one
$ gc-api launch <blessed instance id>
$ gc-api launch <blessed instance id>
# ... etc ...

# Delete the launched instances.
$ nova delete <instance_id>

# Discard the blessed instance. This will clean up all the VMS artifacts associated with the
# snapshot and remove the blessed instance from the nova database.
$ gc-api discard <blessed instance id>

Project Contents

nova:
    The Openstack Compute (nova) extension

About

GridCentric OpenStack extensions.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%