Download
Download
Download
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
ORCA-BEN: a distributed control<br />
framework for GENI <br />
- A Inter-Cloud IaaS Provisioning System for Scientific Workflows <br />
Yufeng Xin yxin@renci.org!
The Project Team!<br />
Co-‐PI: Jeffrey Chase <br />
Duke University <br />
Students: <br />
Prateek Jaipuria <br />
Muzhi Zhao <br />
PI: Ilia Baldine <br />
RENCI, UNC-‐Chapel <br />
Hill <br />
Anirban Mandal <br />
GENI Controller, <br />
applica>on <br />
interface, actor <br />
registry <br />
Aydan Yumerefendi <br />
Core code <br />
enhancements <br />
Chris Heermann <br />
BEN Testbed <br />
opera>ons, <br />
interconnec>ons with <br />
na>onal/interna>onal <br />
networks <br />
Staff: <br />
Victor Orlikowski <br />
Sincere thanks to our sponsors: <br />
GPO/GENI, ASCR/DOE, SDCI/NSF <br />
2!
Background!<br />
• ORCA-BEN: one of several GENI Control Framework Candidates"<br />
– Lead of ʻCluster Dʼ of GENI projects"<br />
• Project goal: extend ORCA (Open Resource Control Architecture) to"<br />
– Cross cloud provisioning: connections, clusters, and topologies "<br />
– Provision multi-layered network domains (BEN, NLR Sherpa, I2 ION)"<br />
– Leveraging Semantic Web technologies"<br />
– Interoperate with other CF candidates (XMLRPC controller)"<br />
• Connectivity"<br />
• API and Resource description translations"<br />
• Big Idea: create a variety of application-specific topologies out of<br />
collection of independent cloud providers connected by one or more<br />
multi-layered network providers"<br />
– GENI is a kind of IaaS."<br />
– 40GB/100GB network will bring everything closer."<br />
– Other uses: large-scale scientific applications on clouds interconnected by<br />
dynamic high speed networks"<br />
3!
Outline!<br />
• ORCA Architecture and Implementation!<br />
– Distributed actors and lease-based operation"<br />
• Substrate Stitching"<br />
• Semantic resource representations"<br />
– Substrate components and interfaces"<br />
• BEN and beyond"<br />
• NEuca + ImageProxy"<br />
• Interoperability"<br />
– Connectivity"<br />
– Resource description translations"<br />
• Scientific Application Support"<br />
– Wide area Hadoop based applications"<br />
– Workflows"
ORCA-BEN Overview<br />
Goal: provision built-‐to-‐order slices of networked virtual infrastructure from <br />
mul>ple cloud or network providers, dynamically on the fly. <br />
AM <br />
AM <br />
SM <br />
Brokering Services <br />
Image/Appliance Services <br />
Slide courtesy of Jeff Chase
ORCA Design and Implementation!<br />
• Pervasive virtualiza>on <br />
• Brokering <br />
• Pluggable <br />
– Policy <br />
– Controller <br />
– Interface <br />
• Cloud technologies <br />
• Seman>c web resource representa>on <br />
• Federated ID management
NEUCA<br />
NEuca – networked extension to<br />
Eucalyptus!<br />
Provide publicly routable<br />
IP with port number(s)<br />
to reach VM<br />
Donwload/register<br />
user images at multiple<br />
sites<br />
DNAT PROXY<br />
IMAGE PROXY<br />
Instantiate VM<br />
topologies<br />
EUCALYPTUS<br />
ORCA<br />
HEAD NODE<br />
WORKER<br />
WORKER<br />
WORKER<br />
WORKER<br />
7!
Eucalyptus/XCat ImageProxy!<br />
Map URL to EMI<br />
IMAGE PROXY<br />
ORCA SITE<br />
AUTHORITY<br />
EUCALYPTUS<br />
Register<br />
<strong>Download</strong><br />
Remotely hosted<br />
image<br />
<strong>Download</strong><br />
OS Image<br />
Map URL to EMI<br />
IMAGE PROXY<br />
ORCA SITE<br />
AUTHORITY<br />
Register<br />
EUCALYPTUS<br />
8!
BEN Topology and Inter-Domain<br />
Connectivity!<br />
6509<br />
ATDNet, MAX,<br />
BOSSnet<br />
Infinera<br />
DTN<br />
I2 ION<br />
Dark fiber to<br />
McLean, VA<br />
Duke<br />
Polatis<br />
Cisco<br />
RTP<br />
Cisco Research<br />
Wave<br />
C-Wave<br />
L3 PoP,<br />
Raleigh<br />
RENCI<br />
NLR FrameNet<br />
Cisco<br />
Research<br />
Wave<br />
FrameNet<br />
I2<br />
NLR<br />
7606<br />
Polatis<br />
OXC<br />
To BEN<br />
10Gbps<br />
UNC-CH<br />
NCSU<br />
RENCI<br />
6509<br />
StarLight<br />
C-wave<br />
6506<br />
NCNI BEN Fiber<br />
UNC/RENCI BEN Fiber<br />
C-Wave<br />
Potential connection<br />
National/International<br />
research networks<br />
Existing connection<br />
Presentation title goes here" 9!
Distributed Stitching in ORCA!<br />
• Stitching is the process of connecting resources of different types of<br />
belonging to different providers to each other"<br />
• Stitching involves a process of agreeing on labels between two<br />
parties"<br />
– Labels may denote bandwidth (VLAN tag, MPLS label, DWDM wavelength)"<br />
• Can be done through multi-step negotiation"<br />
– Complex protocols may be required"<br />
• ORCA approach is based on analyzing dependencies of providers<br />
(label producer vs. label consumer; can you translate labels?)"<br />
– A DAG of dependencies is formed based on the requested topology"<br />
– Properties carrying labels are passed from the root(s) of the DAG along the<br />
branches "<br />
– Certain resources wait to be instantiated until the label information needed<br />
to stitch them is available"<br />
10!
Outline!<br />
• ORCA Architecture"<br />
– Distributed actors and lease-based operation"<br />
– Substrate components and interfaces"<br />
– Substrate Stitching"<br />
– Semantic resource representations!<br />
• Semantic graph !<br />
• Substrate: NDL-OWL, Cloud!<br />
• Domain: Abstraction!<br />
• Request: Cluster, connection, topology!<br />
• Interoperability"<br />
– Connectivity"<br />
– Resource description translations"<br />
• Scientific Application Support"<br />
– Wide area Hadoop based applications"<br />
– Workflows"<br />
11!
Outline!<br />
• ORCA Architecture and Implementation!<br />
– Distributed actors and lease-based operation"<br />
• Substrate Stitching"<br />
• Semantic resource representations"<br />
– Substrate components and interfaces"<br />
• BEN and beyond"<br />
• NEuca + ImageProxy"<br />
• Interoperability"<br />
– Connectivity"<br />
– Resource description translations"
Substrate Resource Description!<br />
• Multilayer Network description"<br />
– Semantic graph: dynamical model with new RDF<br />
resources and properties (xc, virtual interface,<br />
connection hierarchy, reservations)"<br />
– OWL vs. RDF"<br />
– DTN network description"<br />
– Collection (bag, set, list), labelSet, etc"<br />
• Cloud resource description"<br />
– Virtualization as an adaptation"<br />
– Substrate hosting capability"<br />
– Shortcut to classified type"<br />
Presentation title goes here" 13!
Compute.owl!<br />
<br />
MacOS<br />
Note: Features mostly represent known constants.<br />
<br />
Feature<br />
1<br />
<br />
Vendor<br />
foaf:xxx()<br />
<br />
Debian<br />
<br />
Microsoft<br />
<br />
LinuxFileSystem<br />
<br />
ISO9660<br />
<br />
<br />
0..1<br />
<br />
<br />
Linux<br />
OS<br />
VServer<br />
vendor<br />
VirtualBox<br />
osDistribution(xsd:String)<br />
<br />
<br />
<br />
<br />
osVersion(xsd:String)<br />
LinuxRamdisk<br />
RAMType<br />
Xen<br />
ImageType<br />
<br />
DebianLenny<br />
clockFrequency<br />
<br />
<br />
<br />
version(xsd:String)<br />
(xsd:Float)<br />
OpenVZ<br />
VMM<br />
KVM<br />
<br />
1<br />
osDistribution(Lenny)<br />
<br />
LinuxKernel<br />
osVersion(5.0.8)<br />
Windows<br />
1<br />
1<br />
<br />
vendor(url:Debian)<br />
None<br />
<br />
<br />
'None' virtualization means bare metal<br />
<br />
<br />
DDRRam<br />
VMWare<br />
ImageProxyXML<br />
OVF<br />
<br />
<br />
Windows7<br />
Note: this goes to storage ontology<br />
<br />
<br />
Laptop<br />
osDistribution<br />
DDR1066<br />
DDR266<br />
<br />
<br />
(Windows7)<br />
<br />
clockFrequency clockFrequency<br />
RawStorageVolume<br />
ComputeElementType<br />
osVersion(7)<br />
RackedServer<br />
(1.066)<br />
(0.266)<br />
<br />
vendor(url:Microsoft)<br />
storageCapacity<br />
RamDisk<br />
(xsd:Integer)<br />
<br />
<br />
Blade<br />
<br />
DDR2-1066<br />
<br />
MoteType<br />
<br />
clockFrequency<br />
<br />
<br />
<br />
<br />
SCSI146G<br />
TelosB<br />
(1.066)<br />
IDE40G<br />
ARM2<br />
ARM6<br />
AtmelAVR8<br />
IDEDisk<br />
SCSIDisk<br />
storageCapacity<br />
storageCapacity<br />
(146GB)<br />
<br />
<br />
(40GB)<br />
<br />
<br />
IMote<br />
XSM<br />
<br />
<br />
ComputeElementComponent represent<br />
SATADisk<br />
VirtualDisk<br />
x86<br />
CPUArchitecture 1<br />
quantifiable elements of a running compute system<br />
<br />
1<br />
SATA250G<br />
Semantic shortcut hierarchy for well-known server types.<br />
<br />
<br />
<br />
For convenience, NDL-OWL declares these as both<br />
<br />
ComputeElementComponent<br />
storageCapacity<br />
FlashDisk<br />
SSD<br />
classes and individuals. Individuals are used in substrate descriptions,<br />
x86-64 <br />
classes are used in requests and manifests.<br />
(250GB)<br />
IA-64<br />
We expect the RSpecs to support these by name.<br />
architecture<br />
<br />
<br />
<br />
<br />
architecture vendor<br />
os<br />
<br />
EC2CPUCore<br />
0..1 0..1<br />
0..1 ramType storageVolume<br />
StarGateCE<br />
LaptopKanseiCE<br />
EC2C1XLarge<br />
EC2M1XLarge<br />
0..1<br />
0..1 0..1 0..1<br />
vmm(url:None)<br />
vmm(url:None)<br />
vmm(url:Xen)<br />
vmm(url:Xen)<br />
clockFrequency(1.2)<br />
<br />
<br />
<br />
imageType<br />
cpu(url:PXA55)<br />
cpu(url:IntelCeleromM) cpu(url:EC2CPUCore) cpu(url:EC2CPUCore)<br />
vendor(url:AMD)<br />
CPU<br />
Memory<br />
Storage<br />
DiskImage<br />
memoryCapacity(64MB) numCPUCores(1) memoryCapacity(7000) memoryCapacity(15000)<br />
family("OPTERON")<br />
storageCapacity(32MB) memoryCapacity<br />
numCPUCores(8)<br />
numCPUCores(4)<br />
numCPUCores(xsd:Integer) memoryCapacity storageCapacity imageLocation(xsd:URL)<br />
architecture(url:x86-64)<br />
(200MB)<br />
architecture(url:x86-64) architecture(url:x86-64)<br />
cpuFamily(xsd:String)<br />
(xsd:Integer)<br />
(xsd:Integer)<br />
imageSize(xsd:Integer)<br />
storageCapacity(80GB) storageCapacity<br />
storageCapacity<br />
cpuModel(xsd:String) hasUnit(url:Unit)<br />
1<br />
hasUnit(url:Unit)<br />
1..*<br />
(1690GB)<br />
(1690GB)<br />
cpuStepping(xsd:string)<br />
ioSpeed(xsd:Integer)<br />
<br />
clockFrequency(xsd:Float)<br />
raidLevel(xsd:Integer)<br />
QuadNehalem24<br />
numVolumes 1..*<br />
1..*<br />
<br />
(xsd:Integer)<br />
XSMCE<br />
clockFrequency(2.4)<br />
<br />
vendor(url:Intel)<br />
vmm(url:None)<br />
EC2M1Large<br />
Note: this goes to storage ontology<br />
family("Xeon")<br />
cpu(url:ATmega128L)<br />
<br />
Note: for systems including heterogeneous cores<br />
vmm<br />
vmm(url:Xen)<br />
cpuModel("Nehalem")<br />
you can add several CPUInfo instances<br />
memoryCapacity(4kB)<br />
ClassifiedComputeElement<br />
storage<br />
diskImage<br />
cpu(url:EC2CPUCore)<br />
architecture(url:x86-64)<br />
describing different CPU pools<br />
cpu<br />
memory<br />
storageCapacity(512kB)<br />
memoryCapacity(7500)<br />
numCPUCores(4)<br />
numCPUCores(2)<br />
<br />
architecture(url:x86-64)<br />
<br />
<br />
virtualize<br />
storageCapacity(850GB)<br />
computeElementType<br />
TelosBCE<br />
Xeon3<br />
ATmega128L<br />
0..1 0..1 0..1<br />
vmm(url:None)<br />
<br />
<br />
clockFrequency(3.0) clockFrequency(0.016)<br />
1..*<br />
cpu(url:MSP430)<br />
NetworkElement<br />
ComputeElement<br />
<br />
<br />
vendor(url:Intel)<br />
vendor(url:Atmel)<br />
memoryCapacity(10kB)<br />
<br />
EC2M1Small<br />
0..1<br />
EC2C1Medium<br />
family("Xeon")<br />
architecture<br />
memoryCapacity(xsd:Integer)<br />
storageCapacity<br />
PlanetLabCE<br />
architecture(url:x86-64) (url:AtmelAVR8)<br />
numSockets(xsd:Integer)<br />
(1000kB)<br />
vmm(url:Xen)<br />
vmm(url:Xen)<br />
vmm(url:VServer)<br />
numCPUCores(1) numCPUCores(1)<br />
storageCapacity(xsd:Integer)<br />
cpu(url:EC2CPUCore) cpu(url:EC2CPUCore)<br />
imageLocation(xsd:URL)<br />
memoryCapacity(1700)<br />
<br />
memoryCapacity(1700)<br />
numCPUCores(1)<br />
IMoteCE<br />
numCPUCores(2)<br />
architecture(url:x86)<br />
architecture(x86)<br />
Note: Individuals of these classes can describe resources of an AM.<br />
vmm(url:None)<br />
storageCapacity(160GB) storageCapacity(350GB)<br />
'virtualize' property is a kind of adaptation.<br />
<br />
<br />
cpu(url:PXA271)<br />
ServerCloud<br />
Testbed<br />
memoryCapacity(256kB)<br />
storageCapacity(32MB)<br />
Note: need to make these types/individuals<br />
<br />
StarGate<br />
<br />
EucaM1Large<br />
vmm(url:Xen) or vmm<br />
(KVM)<br />
cpu(url:EC2CPUCore)<br />
memoryCapacity(512)<br />
numCPUCores(2)<br />
architecture(url:x86-64)<br />
storageCapacity(10GB)<br />
<br />
EucaC1Medium<br />
vmm(url:Xen) or vmm<br />
(KVM)<br />
cpu(url:EC2CPUCore)<br />
memoryCapacity(256)<br />
numCPUCores(1)<br />
architecture(url:x86-64)<br />
storageCapacity(5GB)<br />
<br />
EucaM1Small<br />
vmm(url:Xen) or vmm<br />
(KVM)<br />
cpu(url:EC2CPUCore)<br />
memoryCapacity(128)<br />
numCPUCores(1)<br />
architecture(url:x86-64)<br />
storageCapacity(2GB)<br />
<br />
EucaM1XLarge<br />
vmm(url:Xen) or vmm<br />
(KVM)<br />
cpu(url:EC2CPUCore)<br />
memoryCapacity(1024)<br />
numCPUCores(2)<br />
architecture(url:x86-64)<br />
storageCapacity(20GB)<br />
<br />
EucaC1XLarge<br />
vmm(url:Xen) or vmm<br />
(KVM)<br />
cpu(url:EC2CPUCore)<br />
memoryCapacity(2048)<br />
numCPUCores(4)<br />
architecture(url:x86-64)<br />
storageCapacity(20GB)<br />
<br />
CoreLabCluster<br />
virtualize<br />
(url:CoreLabNode)<br />
<br />
EucalyptusCluster<br />
virtualize<br />
(url:EucaM1Small) or<br />
virtualize<br />
(url:EucaC1Medium) or<br />
virtualize<br />
(url:EucaC1XLarge) or<br />
virtualize<br />
(url:EucaM1Large) or<br />
virtualize<br />
(url:EucaM1XLarge)<br />
<br />
PlanetlabCluster<br />
virtualize<br />
(url:PlanetLabNode)<br />
<br />
ProtogeniCluster<br />
virtualize<br />
(url:ProtoGeniNode)<br />
Note: More info needed<br />
<br />
ORBITTestbed<br />
virtualize(???)<br />
<br />
KanseiGenieTestbed<br />
virtualize(url:MicaNode)<br />
or virtualize<br />
(url:TelosBNode) or<br />
virtualize(url:IMoteNode)<br />
<br />
ProtoGeniCE-d710<br />
vmm(url:None) or vmm<br />
(url:OpenVZ) or vmm(url:KVM)<br />
cpu(url:QuadNehalem24)<br />
memory storage<br />
<br />
d710Storage<br />
type(url:Storage)<br />
storageVolume(url:SATA250G)<br />
numVolumes(2)<br />
<br />
ProtoGeniCE-pc3000<br />
vmm(url:None) or vmm<br />
(url:OpenVZ) or vmm(url:KVM)<br />
cpu(url:Xeon3)<br />
memory<br />
storage<br />
<br />
pc3000Storage<br />
type(url:Storage)<br />
storageVolume(url:SCSI146G)<br />
numVolumes(2)<br />
<br />
ProtoGeniCE-pc850<br />
vmm(url:None) or vmm<br />
(url:OpenVZ) or vmm(url:KVM)<br />
cpu(url:Pentium3)<br />
memory<br />
storage<br />
<br />
pc850Storage<br />
type(url:Storage)<br />
storageVolume(url:IDE40G)<br />
numVolumes(1)<br />
<br />
CoreLabCE<br />
vmm(url:KVM)<br />
<br />
d710Memory<br />
type(url:Memory)<br />
ramType(url:DDR2-1066)<br />
memoryCapacity(12GB)<br />
<br />
pc3000Memory<br />
type(url:Memory)<br />
ramType(url:DDR2-400)<br />
memoryCapacity(2GB)<br />
<br />
pc850Memory<br />
type(url:Memory)<br />
Presentation title goes here" 14!<br />
ramType(url:PC133-SDRAM)<br />
memoryCapacity(512MB)
Request and Embedding!<br />
– Request Type"<br />
• Bound vs. Unbound"<br />
• Single cloud site vs. multiple cloud sites"<br />
– Connection:"<br />
– Virtual Topology:"<br />
– Virtual cluster:Node group and dependency: Master/Slave groups, "<br />
– Properties:"<br />
• Reservation ID"<br />
• Reservation term: time.owl"<br />
• VM type: EC2Small"<br />
– Predefined (CPU, Memory, Disk)"<br />
• IP addresses"<br />
– Range per Node Group "<br />
• VM Image"<br />
– Image URL (XML metafile e.g. ImageProxy or OVF)"<br />
• Post-boot NEuca script"<br />
• Network QoS"<br />
– Bandwidth"<br />
– Embedding Policy!<br />
• Path computing!<br />
• Topology embedding!<br />
• Cluster and topology partitioning and embedding!<br />
" ""
ORCA Architecture and Information Life<br />
Cycle!<br />
"#$%&'(%)*!<br />
+,)*&,-!.,,-/!!!!!<br />
9%:5%/*!<br />
9;
Outline!<br />
• ORCA Architecture"<br />
– Distributed actors and lease-based operation"<br />
– Substrate components and interfaces"<br />
– Substrate Stitching"<br />
– Semantic resource representations"<br />
• Semantic graph !<br />
• Substrate: NDL-OWL, Cloud!<br />
• Domain: Abstraction!<br />
• Request: Cluster, connection, topology!<br />
• Interoperability"<br />
– Connectivity"<br />
– Resource description translations"<br />
– User Interface: Web, XMLRPC API"<br />
• Scientific Application Support"<br />
– Wide area Hadoop based applications"<br />
– Workflows"<br />
17!
ProtoGENI Interoperability!<br />
• Resource description conversion"<br />
– From NS2/RSpec v1/v2 to NDL-OWL requests"<br />
– http://geni-test.renci.org:11080/ndl-conversion/convert.jsp"<br />
• GENI AM API and ProtoGENI API support via<br />
ORCA XMLRPC controller in the SM"<br />
– Validated via GPOs ʻomniʼ"<br />
– ListResource(),createSliver(),sliverStatus(),deleteSliver()"<br />
• Next steps"<br />
– Advertizing ORCA clouds to ProtoGENI"<br />
– Creating ProtoGENI-friendly manifests"<br />
18!
Cluster-D connectivity!<br />
19!
Ongoing inter-cluster connectivity,<br />
interoperability, and application integration!<br />
• GENI AM API and ProtoGENI API support via<br />
ORCA XMLRPC controller in the SM. "<br />
• Developing I2 ION, and OSCAR interfaces"<br />
• Connectivity to ESNet"<br />
• Monitoring integration"<br />
• Hadoop based analytics"<br />
• Scientific workflow"<br />
20!
Use case 1: Wide area Hadoop based<br />
scientific applications over clouds!<br />
• Map-reduce is an example of a step within a<br />
complex scientific workflow."<br />
• Hadoop VM image, script to launch Hadoop<br />
cluster on Neuca/EC2 clouds."<br />
• ORCA controller to provision a Hadoop cluster<br />
on multiple Neuca/EC2 clouds interconnected<br />
by multi-domain high speed network."<br />
• Performance study with different distributions of<br />
Hadoop nodes."<br />
• Application: Hadoop-Blast."<br />
21!
Use case 2: Scientific Workflow!<br />
• Multi-scale chemistry simulation pipeline (UNC<br />
– EFRC, DOE)"<br />
• MotifNetwork (an NSF CDI-II project)"<br />
• Integrated Microbial Genomes or IMG(DOE<br />
environmental genomics) "<br />
• Nearby Supernova Factory or SNfactory (DOE<br />
cosmological physics),"<br />
• Workflow for Collaborative Adaptive Sensing of<br />
the Atmosphere or CASA (an NSF ERC)."<br />
Presentation title goes here" 22!
More Information!<br />
• http://geni-orca.renci.org"<br />
• http://www.networkedclouds.org"<br />
Presentation title goes here" 23!