Using Puppet to contextualize computing resources for ATLAS analysis on Google Compute Engine

Similar documents
Scientific Cluster Deployment and Recovery Using puppet to simplify cluster management

arxiv: v1 [cs.dc] 7 Apr 2014

Tests of PROOF-on-Demand with ATLAS Prodsys2 and first experience with HTTP federation

CernVM-FS beyond LHC computing

PROOF as a Service on the Cloud: a Virtual Analysis Facility based on the CernVM ecosystem

Evolution of the ATLAS PanDA Workload Management System for Exascale Computational Science

Security in the CernVM File System and the Frontier Distributed Database Caching System

13th International Workshop on Advanced Computing and Analysis Techniques in Physics Research ACAT 2010 Jaipur, India February

DIRAC pilot framework and the DIRAC Workload Management System

Software installation and condition data distribution via CernVM File System in ATLAS

Evaluation of the Huawei UDS cloud storage system for CERN specific data

Using S3 cloud storage with ROOT and CvmFS

ATLAS Nightly Build System Upgrade

The PanDA System in the ATLAS Experiment

The ATLAS PanDA Pilot in Operation

Evolution of Cloud Computing in ATLAS

Exploiting Virtualization and Cloud Computing in ATLAS

Managing a tier-2 computer centre with a private cloud infrastructure

Recent Developments in the CernVM-File System Server Backend

LHCb experience running jobs in virtual machines

WLCG Transfers Dashboard: a Unified Monitoring Tool for Heterogeneous Data Transfers.

ATLAS Experiment and GCE

The evolving role of Tier2s in ATLAS with the new Computing and Data Distribution model

Singularity in CMS. Over a million containers served

File Access Optimization with the Lustre Filesystem at Florida CMS T2

Clouds at other sites T2-type computing

Experience with PROOF-Lite in ATLAS data analysis

Virtualization of the ATLAS Tier-2/3 environment on the HPC cluster NEMO

AutoPyFactory: A Scalable Flexible Pilot Factory Implementation

Towards Monitoring-as-a-service for Scientific Computing Cloud applications using the ElasticSearch ecosystem

The ATLAS EventIndex: an event catalogue for experiments collecting large amounts of data

Clouds in High Energy Physics

Lightweight scheduling of elastic analysis containers in a competitive cloud environment: a Docked Analysis Facility for ALICE

ATLAS Distributed Computing Experience and Performance During the LHC Run-2

Distributed Caching Using the HTCondor CacheD

CernVM a virtual software appliance for LHC applications

Opportunities for container environments on Cray XC30 with GPU devices

Status and Roadmap of CernVM

Application of Virtualization Technologies & CernVM. Benedikt Hegner CERN

WLCG Lightweight Sites

Running Jobs in the Vacuum

Overview of ATLAS PanDA Workload Management

VC3. Virtual Clusters for Community Computation. DOE NGNS PI Meeting September 27-28, 2017

Monitoring System for the GRID Monte Carlo Mass Production in the H1 Experiment at DESY

Reliability Engineering Analysis of ATLAS Data Reprocessing Campaigns

Improved ATLAS HammerCloud Monitoring for Local Site Administration

RADU POPESCU IMPROVING THE WRITE SCALABILITY OF THE CERNVM FILE SYSTEM WITH ERLANG/OTP

From raw data to new fundamental particles: The data management lifecycle at the Large Hadron Collider

Use of containerisation as an alternative to full virtualisation in grid environments.

30 Nov Dec Advanced School in High Performance and GRID Computing Concepts and Applications, ICTP, Trieste, Italy

Using CernVM-FS to deploy Euclid processing S/W on Science Data Centres

DIRAC distributed secure framework

Optimization of Italian CMS Computing Centers via MIUR funded Research Projects

Singularity tests at CC-IN2P3 for Atlas

ATLAS software configuration and build tool optimisation

Cloud du CCIN2P3 pour l' ATLAS VO

The Diverse use of Clouds by CMS

What s new in HTCondor? What s coming? HTCondor Week 2018 Madison, WI -- May 22, 2018

Distributing storage of LHC data - in the nordic countries

Virtual machine provisioning, code management, and data movement design for the Fermilab HEPCloud Facility

The ATLAS Tier-3 in Geneva and the Trigger Development Facility

Global Software Distribution with CernVM-FS

On-demand provisioning of HEP compute resources on cloud sites and shared HPC centers

Evolution of Database Replication Technologies for WLCG

Interfacing HTCondor-CE with OpenStack: technical questions

CMS users data management service integration and first experiences with its NoSQL data storage

Challenges and Evolution of the LHC Production Grid. April 13, 2011 Ian Fisk

How can you implement this through a script that a scheduling daemon runs daily on the application servers?

Monitoring ARC services with GangliARC

Testing SLURM open source batch system for a Tierl/Tier2 HEP computing facility

Tier 3 batch system data locality via managed caches

Monitoring of large-scale federated data storage: XRootD and beyond.

PROOF-Condor integration for ATLAS

Benchmarking the ATLAS software through the Kit Validation engine

Striped Data Server for Scalable Parallel Data Analysis

Flying HTCondor at 100gbps Over the Golden State

Monte Carlo Production on the Grid by the H1 Collaboration

A WEB-BASED SOLUTION TO VISUALIZE OPERATIONAL MONITORING LINUX CLUSTER FOR THE PROTODUNE DATA QUALITY MONITORING CLUSTER

Using a dynamic data federation for running Belle-II simulation applications in a distributed cloud environment

STATUS OF PLANS TO USE CONTAINERS IN THE WORLDWIDE LHC COMPUTING GRID

Extending ATLAS Computing to Commercial Clouds and Supercomputers

Bringing ATLAS production to HPC resources - A use case with the Hydra supercomputer of the Max Planck Society

The DMLite Rucio Plugin: ATLAS data in a filesystem

Conference The Data Challenges of the LHC. Reda Tafirout, TRIUMF

Servicing HEP experiments with a complete set of ready integreated and configured common software components

Interoperating AliEn and ARC for a distributed Tier1 in the Nordic countries.

UW-ATLAS Experiences with Condor

Running HEP Workloads on Distributed Clouds

The Legnaro-Padova distributed Tier-2: challenges and results

Journal of Physics: Conference Series. Related content. To cite this article: Jan-Philip Gehrcke et al 2010 J. Phys.: Conf. Ser.

Data services for LHC computing

Popularity Prediction Tool for ATLAS Distributed Data Management

HIGH ENERGY PHYSICS ON THE OSG. Brian Bockelman CCL Workshop, 2016

An Analysis of Storage Interface Usages at a Large, MultiExperiment Tier 1

MOHA: Many-Task Computing Framework on Hadoop

CPM. Quick Start Guide V2.4.0

ElasterStack 3.2 User Administration Guide - Advanced Zone

CernVM-FS. Catalin Condurache STFC RAL UK

BOSS and LHC computing using CernVM and BOINC

Outline. ASP 2012 Grid School

Transcription:

Journal of Physics: Conference Series OPEN ACCESS Using Puppet to contextualize computing resources for ATLAS analysis on Google Compute Engine To cite this article: Henrik Öhman et al 2014 J. Phys.: Conf. Ser. 513 032073 Related content - Exploiting Virtualization and Cloud Computing in ATLAS Fernando Harald Barreiro Megino, Doug Benjamin, Kaushik De et al. - Evaluating Google Compute Engine with PROOF Gerardo Ganis and Sergey Panitkin - Integrating multiple scientific computing needs via a Private Cloud infrastructure S Bagnasco, D Berzano, R Brunetti et al. View the article online for updates and enhancements. This content was downloaded from IP address 46.3.199.70 on 13/02/2018 at 20:21

Using Puppet to contextualize computing resources for ATLAS analysis on Google Compute Engine Henrik Öhman a, Sergey Panitkin b, and Valerie Hendrix c on behalf of the ATLAS Collaboration a Uppsala University (SE), b Brookhaven National Laboratory (US), c Lawrence Berkeley National Lab. (US) E-mail: a henrik.ohman@physics.uu.se, b panitkin@bnl.gov, c vchendrix@lbl.gov Abstract. With the advent of commercial as well as institutional and national clouds, new opportunities for on-demand computing resources for the HEP community become available. The new cloud technologies also come with new challenges, and one such is the contextualization of computing resources with regard to requirements of the user and his experiment. In particular on Google s new cloud platform Google Compute Engine (GCE) upload of user s virtual machine images is not possible. This precludes application of ready to use technologies like CernVM and forces users to build and contextualize their own VM images from scratch. We investigate the use of Puppet to facilitate contextualization of cloud resources on GCE, with particular regard to ease of configuration and dynamic resource scaling. 1. Introduction Commercial and institutional and national clouds have been providing Infrastructure-as-a- Service (IaaS) as computing resources for the High Energy Physics (HEP) community for several years. A common way to configure these resources is to create custom machine images which have all the necessary software pre-installed and pre-configured. This can be a time consuming task with possibly high turnaround times for configuration and diagnostics. An alternative approach to creating such custom machine images is to use software for system configuration which enables configuration of the machine from a bare OS installation. ATLAS analysis is the task of analyzing data samples collected with the ATLAS experiment [1]. It involves running distributed analysis software over data and simulated samples using computing resources affiliated to the ATLAS experiment. In Section 2 the components of a typical computer cluster for ATLAS analysis is described. Section 3 describes the contextualization procedure and the source code developed for the present work. In Section 4 the results of the study is presented, and results of a related study are cited. The paper is concluded in Section 5. The descriptions in Section 2 should be viewed as related work, and is not a contribution to the this paper. Content from this work may be used under the terms of the Creative Commons Attribution 3.0 licence. Any further distribution of this work must maintain attribution to the author(s) and the title of the work, journal citation and DOI. Published under licence by IOP Publishing Ltd 1

1.1. Computing resources for ATLAS analysis The majority of computing resources for ATLAS analysis are distributed throughout the world and joined together via the Worldwide LHC Computing Grid (WLCG), the Open Science Grid (OSG), and NorduGrid. This wide distribution of resources create a necessarily heterogeneous flora of systems and system configurations. Indeed, different computing sites use different hardware, different batch scheduling software, different storage configurations, and so on. At the same time all computing elements must provide a homogeneous environment for experiment software, such that any processing and analysis is reproducible and that the generated results are reliable. Both the heterogeneous and the homogeneous parts of the software for ATLAS analysis clusters are discussed below. 1.2. Puppet Puppet [2] is software that automates many tasks that system administrators perform. Puppet is operated by declarative manifests that define a desired system state. The desired state is then enforced on the system, protecting it from drifts in the configuration. Puppet can also simulate changes before enforcing them, and report what changes have been made. 1.3. Google Compute Engine (GCE) With Google s new cloud for IaaS, Google Compute Engine (GCE) [3], uploading of custom machine images is not possible. GCE has its own proprietary tools for customizing images that are not usable to create cloud independent machine configurations. In this context Puppet is particularly useful, enabling the creation of truly cloud independent, and indeed even infrastructure independent machine configurations. 2. Elements of an ATLAS analysis cluster An ATLAS analysis cluster is a computing cluster connected to the PanDA (Production and Distributed Analysis) [4] system for ATLAS. For this purpose several functions are required. The cluster must be able to run the pilot jobs [5] that retrieve the payloads from the PanDA queue; it must have a local batch system that can manage the individual jobs; it must have the right connections to distributed storage; and it must be able to access CERN and ATLAS analysis and processing software. Below we describe the components and setup of the cluster used in this study. 2.1. AutoPyFactory AutoPyFactory [6] is a modular, pluggable system able to collect jobs from different job queues in different ways and submit them to different types of batch systems. It works by submitting empty wrapper jobs to the batch cluster which download and run the pilot code. The pilot jobs in turn request a job from the specified PanDA queue. If a job is found its payload is retrieved and executed. The AutoPyFactory submits jobs to the batch system manager, and on our cluster it runs on the manager node. 2.2. HTCondor HTCondor [7] is a job management system specially developed for high throughput computing. It offers the regular functions of batch system software, like queue management, job scheduling and prioritizing, and management and monitoring of computing resources. It also provides capabilities to match jobs to resources, and facilities to tie together several smaller clusters situated in different administrative locations. The HTCondor setup in our cluster consists of one manager node which runs the job submission and job brokering services, and one or more worker nodes which run individual jobs. 2

2.3. XRootD The XRootD system [8] consists of several services to enable low latency access to large amounts of data. It can at the same time provide access to globally stored data (through streaming or caching) and locally stored data. The configuration possibilities are too numerous to be given justice here, so only the setup chosen for our cluster is described. In this setup each worker node acts as an XRootD data server which provides access to files stored on the node and storage for incoming data. The Cluster Management Service creates a storage cluster of the XRootD data servers. To manage the storage cluster, the manager node (running the HTCondor manager and the AutoPyFactory service) acts as an XRootD redirector which redirects requests for files or storage to worker nodes where it is available. The XRootD service on the manager node is in turn connected to a redirector outside the cluster which provides access to ATLAS data and simulated samples. In our setup this global redirector is a member of the Federated ATLAS XRootD storage (FAX) [9] which aims at providing a unified interface to the different ATLAS storage systems. The File Residency Manager is responsible for downloading files located through a request to the global redirector and storing it in the XRootD cluster, and also for purging seldom unused files from it. 2.4. CernVM-FS CernVM-FS [10] (CVMFS) is a HTTP based file system that provides access to experiment software through caching and downloading on demand. In this way the operating system is effectively separated from the experiment software, and consistent access regardless of the machine type and operating system is provided. CVMFS repositories are provided for ATLAS software, for generic grid software, and for the other experiments on the LHC. The software repositories can be accessed directly from the so-called Stratum 1 servers, but CVMFS recommends the use of a Squid [11] service to cache software close to the client, and it is mandatory for clusters with more than 30 simultaneous connections. 3. Contextualizing machines on GCE The process of contextualization is that of configuring a machine for its role at the first time it is started. Contextualization as discussed in this paper entails anything from setting up extra disk space attached to virtual machine instances, installing software, configuring software, and starting software services. Once the contextualization step is complete the machine is ready to assume its role. On most commercial and private clouds contextualization can be achieved in two ways; either by creating a custom machine image that is uploaded to the cloud, or through the means of instance or cloud metadata provided at instantiation which might include user data. It is also possible to use commands over e.g. SSH [12] to contextualize a machine, provided that connectivitiy allows. On GCE it is not possible to upload custom machine images, meaning that tools such as Boxgrinder [13] or HEP-adapted appliances such as CernVM [14] can not be used. Instead the entire process of creating a custom machine image has to take place on a machine running inside the GCE. This severely hampers versatility by causing even small and predictable configuration changes to require starting a machine and applying configuration steps manually. GCE supports contextualization via metadata, and this then becomes the only viable option. This metadata can take the form of a program that is executed on the machine during boot. Although such a program can theoretically perform any configuration task, it would require a non-negligible development effort, and there already exist tools suitable for the task. 3

3.1. Puppet configuration We use Puppet to configure the machines in the cluster. Puppet offers a masterful setup, where one node acts as Puppet master which distributes configurations to other nodes. In this setup configuration changes are pushed to the Puppet master and nodes are automatically updated to reflect the changes. Puppet also offers a masterless setup where configuration changes are pulled to and applied on each node. We chose to use the masterless setup and to distribute the Puppet configuration with Git [15] via a public GitHub [16] archive. Updates are achieved by sending commands over SSH [12] to pull updates from the Git repository and apply them locally. For this method of updating to work, the machines must have a public IP address, an SSH service running, and the corresponding port must be open for inbound connections. The Puppet configuration is separated into modules where each describes the desired state of a specific function or software. It includes modules for setting up CVMFS, XRootD, HTCondor, and AutoPyFactory, and it also contains modules for installing software packages necessary for ATLAS analysis. Each module is configurable with a set of parameters making it reusable in other contexts. The configuration is available to the general public from the atlasgce-modules [17] GitHub repository. One of the benefits of using Puppet is that the modules contain all the necessary information to configure a node as either a manager or a worker. It also makes it easy to add further roles to extend the capabilities of the modules. What role a node should assume can thus not be a part of the modules themselves, but must be provided in the form of a node configuration template by the means of instance metadata. (This is also how any secrets must be provided, since they should not be part of the publicly available modules. Modification of instance metadata is secured with HTTPS.) This node configuration template is a top level component that contains items that differ between individual cluster, such as PanDA cloud, site, and queue, XRootD global redirector, and CVMFS proxy configuration. 3.2. Bootstrapping Just providing a Puppet configuration in the form of modules and node configuration template is not enough to contextualize a machine running a completely unconfigured machine image. We must also provide a way to put Puppet on the machine, and tell it what modules and node configuration template to use. This procedure of preparing a machine for more extensive configuration is called bootstrapping. Bootstrapping a node on the cluster is done by a program designed to do as little as necessary and in as simple a way as possible. It is executed as part of the operating system startup procedure and performs the following tasks: it installs Puppet and Git; it formats and mounts any extra disk space attached to the machine; it downloads the Puppet modules; it applies the node configuration template which finalizes the contextualization. The bootstrapping procedure is executed at a late stage during boot, when networking and other necessary functions have become available. 4. Results Our investigations show that it is possible to contextualize machines on GCE with Puppet for ATLAS analysis. It also shows that a single set of Puppet modules can serve configurations for several different roles in a cluster. The modules along with the node configuration templates for each role give a consistent description of the cluster collected in one place, written in one language. The modules are publicly available and fully documented in the atlasgce-modules [17] GitHub repository. 4

Event Time Acc. time Cluster start command 4 s 4 s Head node instantiation 43 s 47 s Worker node instantiation (1-4) 29 s 76 s Table 1. Cluster startup time. The times given for the node instantiations are from GCE has registered the command until the GCE reports that the node has started. They do not include contextualization times. Head Worker 1 Worker 2 Worker 3 Worker 4 Installing Puppet and support 0:40 min 0:32 min 0:32 min 0:30 min 0:37 min Formatting additional storage 0:42 min 1:15 min 1:22 min 1:21 min 1:09 min Applying Puppet configuration 4:16 min 4:17 min 3:54 min 3:56 min 4:25 min Total 5:38 min 6:04 min 5:48 min 5:47 min 6:11 min Table 2. Node contextualization times of bare CentOS 6 images. The times are defined as the difference between the start and completion times of the different steps of the bootstrap script that is running the contextualization as they are listed in the operating system log files. 4.1. Performance of GCE GCE has provided a stable platform for the setup and testing of the cluster, and the development of the Puppet configuration and the supporting scripts. Although no long-term availability tests have been made during the this study, the cluster has been available for the entirety of the development; a period of four months. An earlier study [18] used a setup similar to what is described in this paper to run ATLAS production jobs corresponding to about 214 million events during a period of 8 weeks using 4000 cores. During this study GCE proved a very stable platform and none of the job failures that occurred were due to GCE. A very rudimentary test of cluster startup time has been performed. Table 1 shows the startup time of a cluster consisting of a head node and four worker nodes, where the worker nodes are instantiated in parallel. An early benchmarking study [19] that compares GCE s performance compared to Amazon EC2 paints a similar picture. 4.2. Impact on startup times Contextualizing a machine from scratch rather than using pre-configured machine images does of course have a detrimental effect on machine startup times. However the additional time required to download, install, and configure software and services is not so large that it affects its usefulness for on-demand resource creation. The contextualization times of a cluster consisting of a head node and four worker nodes are listed in Table 2. The main part is spent downloading software packages in the Applying Puppet configuration step. 4.3. Inbound performance of XRootD The inbound performance of XRootD from FAX to GCE nodes has also been tested. Average transfer rates for transferring from a single source amounts to 40 MB/s, and from multiple sources using multiple data streams to 57 MB/s. This performance is achieved over public networks and using an XRootD cluster with 1.7 TB disk space per node [18]. No other metrics pertaining to file transfer and caching have been measured. In particular no measurement of the outbound performance of XRootD has been made. 5

5. Conclusion We have investigated how well Google s IaaS platform GCE is able to perform as an ATLAS analysis cluster. GCE launches instances very quickly which suits an on-demand analysis cluster scheme particularly well. A prior study [18] has shown that GCE is also able to handle the large amount of input data that is required for ATLAS analysis. With extra disk space serving as a local XRootD cache GCE also becomes a possible option for a semi-permanent cluster. We have also investigated the use of Puppet to contextualize computing resources for ATLAS analysis clusters in particular, and more generally for any computing activity in HEP that uses one or more of CVMFS, HTCondor, or XRootD. Puppet has been found to function well in this context: startup times increase but remain manageable, and the benefits are numerous. Puppet offers a clear and comprehensive way to specify a machine configuration that can be made to work with multiple machine roles, on any operating system, and with any cloud provider. By extension it is possible to contextualize machines in any grid site, or other system of machines in the same way. The increased startup times can be reduced by using machine images where the required software has been pre-loaded, but where configuration is still handled by Puppet. Indeed, the very same Puppet configuration can be used as for the bare machine images. With IaaS clouds it is trivial to add or remove machines from a cluster, and with Puppet it is easy to adjust the configuration without terminating and restarting it. The possibility to update the configuration of running machines even reconfigure an entire cluster is a valuable improvement over image based contextualization methods. References [1] ATLAS Collaboration 2008 JINST 3 S08003 [2] Puppet Labs: IT Automation Software for System Administrators (Accessed: 2013-10-01) URL http://puppetlabs.com/ [3] Google Compute Engine Cloud Platform (Accessed: 2013-10-01) URL https://cloud.google.com/products/compute-engine [4] ATLAS Collaboration 2008 J.Phys.Conf.Ser. 119 062036 [5] ATLAS Collaboration 2011 J.Phys.Conf.Ser. 331 062040 [6] Caballero J, Hover J, Love P and Stewart G A 2012 J.Phys.Conf.Ser. 396 032016 [7] Thain D, Tannenbaum T and Livny M 2005 Concurrency - Practice and Experience 17 323 356 [8] Dorigo A, Elmer P, Furano F and Hanushevsky A 2005 WSEAS Transactions on Computers 1 [9] About Federated ATLAS storage using XRootD (Accessed: 2013-10-09) URL http://atlas-xrd.web.cern.ch/content/about [10] Blomer J, Buncic P, Charalampidis I, Harutyunyan A, Larsen D and Meusel R 2012 J.Phys.Conf.Ser. 396 052013 [11] squid : Optimising Web Delivery (Accessed: 2013-10-01) URL http://www.squid-cache.org/ [12] The Secure Shell (SSH) Protocol Architecture (Accessed: 2013-10-01) URL http://www.ietf.org/rfc/rfc4251.txt [13] BoxGrinder (Accessed: 2013-10-01) URL http://boxgrinder.org/ [14] Buncic P, Aguado Sanchez C, Blomer J, Franco L, Harutyunian A, Mato P and Yao Y 2011 J.Phys.Conf.Ser. 331 052004 [15] Git (Accessed: 2013-10-01) URL http://git-scm.com/ [16] GitHub (Accessed: 2013-10-01) URL https://github.com [17] atlasgce-modules (Accessed: 2013-10-01) URL https://github.com/spiiph/atlasgce-modules [18] Cloud Computing and High-Energy Particle Physics: How ATLAS Experiment at CERN Uses Google Compute Engine in the Search for New Physics at LHC (Accessed: 2013-10-01) URL https://developers.google.com/events/io/sessions/333315382 [19] By the numbers: How Google Compute Engine stacks up to Amazon EC2 (Accessed: 2013-10-01) URL http://gigaom.com/2013/03/15/by-the-numbers-how-google-compute-engine-stacks-up-to-amazon-ec2/ 6