the cms@home prototype laurence field it/sdc 11 november 2014

Download The CMS@home Prototype Laurence Field IT/SDC 11 November 2014

If you can't read please download the document

Upload: charity-tucker

Post on 21-Dec-2015

212 views

Category:

Documents


0 download

TRANSCRIPT

  • Slide 1
  • The CMS@home Prototype Laurence Field IT/SDC 11 November 2014
  • Slide 2
  • Motivation Summer Student Project Investigate the feasibility Develop a prototype Profited from a clustering of expertise in SDC CRAB3 Async stage-out Messaging FTS And prior experience Test4Theory Date Title 2
  • Slide 3
  • Test4Theory Model Avoid restarting the VM for every job Reduces CVMFS related network traffic Separate VM management and job management Inline with the cloud model Can reuse cloud related tooling CoPilot support challenges Aging codebase Dependencies not available in the standard repositories New standardized components available for some functions Date Title 3 VM BOINC Server Volunteer Agent Job Wrapper Co Pilot Job Agent Storage Agent Job Description Data I/O
  • Slide 4
  • Async stage-out Initial Architecture 4 CRAB3 Messaging Service Messaging Service Data Bridge VM Volunteer Agent Job Wrapper Job Description FTS Grid Pull Push TaskWorker Plugin TaskWorker Plugin Data I/O
  • Slide 5
  • TaskWorker Plugin Task Worker Obtains a task request Fetches work from the job queue Generates the job specifications Submits them to the remote job manager HTCondor Handler Responsible for the actual workflow execution New task => handleNewTask handler Implements the operations called Actions e.g. JobSpec creation and submission May be backend specific Specific Actions are required to support a new backend The required actions need to be associate to the appropriate handlers Work will be assigned to the right handler which implements the appropriate actions 5
  • Slide 6
  • Apache Plugin How to authenticate BOINC users? In the VM, credential provided via /dev/fd0 BOINC_USERNAME BOINC_AUTHENTICATOR Identity Provider (IDP) BOINC Project DB MySQL User Table mod_auth_mysql Maps username/password to DB table AuthMysqlUserTable user AuthMySQLNameField name AuthMySQLPasswordField authenticator Enables reuse of apache-based HTTP technology 6
  • Slide 7
  • Message Queue Messaging service does not support BOINC authentication Not clear if it is possible or worthwhile to provide functionality Standard apache Web server approach mod_auth_mysql to validate BOINC users credential mod_auth_ssl to validate CRAB3 server's x509 credential Two simple cgi scripts put-job.cgi get-job.cgi Simple file-based queue python-dirq Job descriptions from CRAB3 Supports arbitrary file types Garbage in, Garbage out Extensible 7 Web Server dirq put Get
  • Slide 8
  • The Data Bridge Spans authentication domains BOINC users credential Grid x509 credentials Scalable data I/O With sandboxing capabilities Data Isolation Simple apache-based prototype Supports HTTP PUT/GET mod_auth_mysql to validate BOINC users credential mod_auth_ssl to validate CRAB3 server's x509 credential HTTP Federation Possibility to reuse standard DM tools 8
  • Slide 9
  • Dynamic HTTP Federations The Dynafed system implements federated storage over HTTP In testing in LHCb and Canada (Atlas) Federates WebDAV or S3 enabled storage systems Apache front end Can be used as a data bridge S3 storage backend(s) Acts as a security gateway, authenticating clients either via X509 or BOINC auth Clients then redirected directly to the storage Great scalability potential Global system, smart replica selection (availability, proximity) http://svnweb.cern.ch/trac/lcgdm/wiki/Dynafeds 9
  • Slide 10
  • Apache The Data Bridge 10 ssl FTS S3 mysql CRAB3 BOINC User BOINC User PUT/GET HTTP redirect & sign PUT/GET Grid DynaFed
  • Slide 11
  • VM and Job Agent CernVM3 Contextualized using CernVM Online CVMFS configuration Mount cms and grid Add BOINC user Credentials read from /dev/fd0 name, authenticator CMSJobAgent.py workflow Gets new job description Downloads required input files Runs job Uploads output files CMSJobAgent.sh Checks if CMSJobAgent.py is running If not starts it cms-agent cron Runs CMSJobAgent.sh every minute 11
  • Slide 12
  • Async stage-out Current Architecture 12 CRAB3 Message Queue Data Bridge VM Volunteer Agent Job Wrapper FTS Grid GET PUT TaskWorker Plugin TaskWorker Plugin
  • Slide 13
  • Extending the platform The Data Bridge as a common component for BOINC projects For VM-based approaches requiring external job injection Data movement external to BOINC Can support high data I/O requirements BOINC & DataBridge Recipe PUTjob description PUT data Create Job Agent GET job description GET input data Provided by the job description Run Job PUT output Read data from output bucket Similar to HLT Fitter bad data etc. Could be used in the storage-less IaaS providers Date Title 13
  • Slide 14
  • Summary Advanced prototype for CMS@home Following the proven Test4Theory model Developed the concept of the Data Bridge Reused HTTP federation component for S3 Added BOINC authentication Added a simple message delivery function For the job description Provide an image along with a job agent Extended CRAB3 to support his approach Using a Task Work plugin Towards a platform for volunteer computing Date Title 14
  • Slide 15
  • Acknowledgements Hendrik Borras Daniele Spiga Hassen Riahi Adrien Devres Fabrizio Furano Oliver Keeble Date Title 15