13
LEGO – Rennes, 3 Juillet 2007 Deploying Gfarm and JXTA-based applicatio Deploying Gfarm and JXTA-based applicatio using the ADAGE deployment tool using the ADAGE deployment tool Landry Breuil, Loïc Cudennec and Christian P IRISA / INRIA, PARIS project-t

LEGO – Rennes, 3 Juillet 2007 Deploying Gfarm and JXTA-based applications using the ADAGE deployment tool Landry Breuil, Loïc Cudennec and Christian Perez

Embed Size (px)

Citation preview

Page 1: LEGO – Rennes, 3 Juillet 2007 Deploying Gfarm and JXTA-based applications using the ADAGE deployment tool Landry Breuil, Loïc Cudennec and Christian Perez

LEGO – Rennes, 3 Juillet 2007

Deploying Gfarm and JXTA-based applicationsDeploying Gfarm and JXTA-based applicationsusing the ADAGE deployment toolusing the ADAGE deployment tool

Landry Breuil, Loïc Cudennec and Christian Perez

IRISA / INRIA, PARIS project-team

Page 2: LEGO – Rennes, 3 Juillet 2007 Deploying Gfarm and JXTA-based applications using the ADAGE deployment tool Landry Breuil, Loïc Cudennec and Christian Perez

LEGO - Rennes, 3 Juillet 2007 2

Data sharing for grid-based applications Numerical simulations, collaborative design, distributed databases, code-

coupled applications Desirable features: transparency, consistency, uniform access, persistency

Grid data sharing service (JuxMem, INRIA/IRISA) Transparent access to replicated data Fault tolerance and consistency mechanisms Data stored in physical memory

Global distributed file system (Gfarm, AIST/Univ.Tsukuba) File fragmentation and replication Smart replica selection Data stored on disk: secondary persistent storage

Motivations (1/2)Offering persistent storage to a grid data sharing service

Page 3: LEGO – Rennes, 3 Juillet 2007 Deploying Gfarm and JXTA-based applications using the ADAGE deployment tool Landry Breuil, Loïc Cudennec and Christian Perez

LEGO - Rennes, 3 Juillet 2007 3

Motivations (2/2)Proposition of common architecture (#1 out of 3 propositions)

Cluster #1 Cluster #2

JuxMemGlobalDataGroup(GDG)

JuxMemProvider

GDG Leader

JuxMemProvider

JuxMemProvider

GFarmGFSDGFSD GFSDGFSD

One particular JuxMem provider (GDG leader) flushes data to Gfarm Then, other Gfarm copies can be created using Gfarm’s gfrep command

Page 4: LEGO – Rennes, 3 Juillet 2007 Deploying Gfarm and JXTA-based applications using the ADAGE deployment tool Landry Breuil, Loïc Cudennec and Christian Perez

LEGO - Rennes, 3 Juillet 2007 4

Deploying the Gfarm file system 4 roles: metadata server, metadata cache server, file system node and client

node Dependencies between roles:

Tree-based a role should start after its father

Deploying the JuxMem service (JXTA-based application) 2 types of peers: rendezvous and edges Dependencies between peers:

Tree-based a peer should start after its rendezvous peer

Deployment constraints Gfarm should be launched before JuxMem The Gfarm client should share the same node than the JuxMem provider

Generic deployment tool ADAGE (INRIA/IRISA)

Towards a mixed deploymentUsing the ADAGE deployment tool

Page 5: LEGO – Rennes, 3 Juillet 2007 Deploying Gfarm and JXTA-based applications using the ADAGE deployment tool Landry Breuil, Loïc Cudennec and Christian Perez

LEGO - Rennes, 3 Juillet 2007 5

Gfarm file system (1/2)Tree-based dependencies

serverserver

cachecache cachecache

clientclient storagestorageclientclient clientclientstoragestorage storagestorage

Server IP, tcp port

Server IP, tcp portCache IP, tcp port

Server IP, tcp portCache IP, tcpport

Configuration file

Page 6: LEGO – Rennes, 3 Juillet 2007 Deploying Gfarm and JXTA-based applications using the ADAGE deployment tool Landry Breuil, Loïc Cudennec and Christian Perez

LEGO - Rennes, 3 Juillet 2007 6

Gfarm file system (2/2)Describing the application

<server name="metadata_server" port_master="10602" port_gfmd="10601" port_gfsd="10600"/><procs> <proc name="metadata_cache_server" role="agent" cardinality="1" /><proc name="fs_node" role="gfsd" cardinality="1" agent="metadata_cache_server" /> <proc name="gf_client" role="client" binary="true" cardinality="1" agent="metadata_cache_server" /></procs>

Defining tcp ports for Gfarm roles

Naming this metadata cache server

Defining which cache server to connect with

Binary to execute on the client node

Page 7: LEGO – Rennes, 3 Juillet 2007 Deploying Gfarm and JXTA-based applications using the ADAGE deployment tool Landry Breuil, Loïc Cudennec and Christian Perez

LEGO - Rennes, 3 Juillet 2007 7

JuxMem (1/3)is a JXTA-based application

edgeedgeedgeedge

rdvrdv

edgeedge

edgeedge

rdvrdv

rdvrdv

edgeedge

PlatformConfig file:tcp port,IP and tcp port of seed

Page 8: LEGO – Rennes, 3 Juillet 2007 Deploying Gfarm and JXTA-based applications using the ADAGE deployment tool Landry Breuil, Loïc Cudennec and Christian Perez

LEGO - Rennes, 3 Juillet 2007 8

JuxMem (2/3)Describing the JXTA application

<profiles> <profile name="p_manager"> <services rdv="true" relay="false" /> <networks tcp="true" port="9701" /> <behavior binding="c" filename="simple_manager" args="120"/> </profile> </profiles>

<overlay> <rdvs> <rdv id="manager" profile_name="p_manager" cardinality="1"> </rdv> </rdvs>

<edges> <edge id="provider" profile_name="p_provider »

cardinality="1" rdv="manager" /> <edge id="writer" profile_name="p_writer »

cardinality="1" rdv="manager" /> <edge id="reader" profile_name="p_reader »

cardinality="1" rdv="manager" /> </edges> </overlay>

Defining a profile for the manager

Rendezvous instanciation

Edge instanciation

Seed name

Langage: JDL (Mathieu Jan)

Page 9: LEGO – Rennes, 3 Juillet 2007 Deploying Gfarm and JXTA-based applications using the ADAGE deployment tool Landry Breuil, Loïc Cudennec and Christian Perez

LEGO - Rennes, 3 Juillet 2007 9

JuxMem (3/3)Deploying step-by-step

edge1edge1edge2edge2

node1node1

node2node2

rdvrdv

ADAGEADAGE

Topology

edge3edge3

Rdv: 9701

rdv

Writing PlatformConfigWaiting peer up

Callback=9701

Page 10: LEGO – Rennes, 3 Juillet 2007 Deploying Gfarm and JXTA-based applications using the ADAGE deployment tool Landry Breuil, Loïc Cudennec and Christian Perez

LEGO - Rennes, 3 Juillet 2007 10

JuxMem (3/3)Deploying step-by-step, dynamic tcp ports assignation

edge1edge1edge2edge2

node1node1

node2node2

rdvrdv

ADAGEADAGE

Topology

edge3edge3

Rdv: 9701Edge2: 9703

Edge2(seed=node1:9701)

Callback=9703

Edge1(seed=node1:9701)Edge3(seed=node1:9701)

Callback=9701Callback=9705

Edge1: 9701Edge3: 9705

Page 11: LEGO – Rennes, 3 Juillet 2007 Deploying Gfarm and JXTA-based applications using the ADAGE deployment tool Landry Breuil, Loïc Cudennec and Christian Perez

LEGO - Rennes, 3 Juillet 2007 11

Meta plugin (1/2)Mixed Architecture

cluster group

GFarm client

GFarm file system node

JuxMem Client

JuxMem manager

JuxMem Provider

GFarm server

GFarm agent

Page 12: LEGO – Rennes, 3 Juillet 2007 Deploying Gfarm and JXTA-based applications using the ADAGE deployment tool Landry Breuil, Loïc Cudennec and Christian Perez

LEGO - Rennes, 3 Juillet 2007 12

Meta plugin (2/2)Describing the mixed architecture

<specific id="gfarm-desc »path="./tests/gfarm-appl.xml"/>

<specific id="juxmem-desc »path="./tests/jxta-appl.xml"/>

<dependency deptype="acked" what="provider"> <onwhat>gf_client_0</onwhat> </dependency>

Pointing to the Gfarm description

Pointing to the JuxMem description

Expressing ack dependency

Expressing colocation

<submission_method name="ssh"/> <planner mode="random"/> <transfer_files method="scp"/> <plugin name="JXTA » file="tests/meta-gfarm-jxta-ctrl-params-spec.xml"/> <placement_constraints> <collocate id="gf_client_0" with="provider"/> </placement_constraints>

Page 13: LEGO – Rennes, 3 Juillet 2007 Deploying Gfarm and JXTA-based applications using the ADAGE deployment tool Landry Breuil, Loïc Cudennec and Christian Perez

LEGO - Rennes, 3 Juillet 2007 13

Some ADAGE features used by these plugins File transfer Wait for file creation Callback mechanism

Some experimentations Deploying up to 40 Gfarm roles Adapting the JuxMem basic tutorial to ADAGE

Future work Using large scale configurations

Towards a mixed deploymentUsing the ADAGE deployment tool

http://adage.gforge.inria.fr/wiki