Version 10 (modified by ibaldin, 8 years ago)

--

Using ImageProxy with ORCA

Overview

ImageProxy allows independent Ecalyptus sites to create VMs with identical images. Images are identified by a URL and a GUID, representing image hash. Provided with these two parameters ImageProxy associated with a Eucalyptus site can download and install that image and provide ORCA with site-specific AMI/EMI that can be used to create guest VMs on that site. Even though AMI/EMI will be different for each site, VMs will be runnning the same user-supplied image.

ORCA Integration (Camano 3.0+)

Resource Specification

Image URL and GUID can be passed to ORCA as part of Reservation instance of the NDL-OWL request as follows:

    <request:Reservation rdf:about="#id-mp-request-2">
        <request:startingTime
            >2010-11-02T13:00:00Z</request:startingTime>
        <request:endingTime
            >2010-11-03T13:00:00Z</request:endingTime>
        <compute:hasVMImage rdf:resource="#DukeVMImageTest"/>
        <collections:element rdf:resource="&Request2;tblink-l4"/>
        <collections:element rdf:resource="&Request2;tblink-l5"/>
        <collections:element rdf:resource="&Request2;tblink-l6"/>
        <request:inDomain rdf:resource="&DukeVMSite2;Domain"/>
        <layer:atLayer rdf:resource="&ethernet;EthernetNetworkElement"/>
    </request:Reservation>

    <compute:VMImage rdf:about="#DukeVMImageTest">
        <topology:hasGUID rdf:datatype="&xsd;string">1234567890</topology:hasGUID>
        <topology:hasURL>http://geni-orca.renci.org/image/duke</topology:hasURL>
    </compute:VMImage>

Handler Integration

The interface to ImageProxy SOAP service is implemented as an OrcaAntTask named ImgProxyRegisterTask in the orca.handlers.ec2.tasks.imgproxy package (under handlers/ec2). The task is integrated into the standard EC2 handler used with Eucalyptus/NEuca. ImageProxy-specific settings can be passed to orca via ec2.site.properties file. The relevant properties are:

# Image Proxy (use it or not true/false)
ec2.img.proxy.use=true
# SOAP URL of the image proxy
ec2.img.proxy.url=http://geni-test.renci.org:11080/axis2/services/IMAGEPROXY
# SOAP timeout (in sec; adjust only if you know what you're doing)
ec2.img.proxy.timeout=3600

The handler expects config.image.url and config.image.guid properties to be passed to it by the AM.

For more information see the sections about NEuca handler and NEuca handler testing.

Deployment

Recommended deployment is through tomcat in the same container as the Euca authority actor. ImageProxy? relies on having euca-xxx-xxx executables available on the system it runs on. Also, choose the location of IMAGEPROXY_HOME wisely, as it cashes large image files and can easily overwhelm as small filesystem.