system testing cloud services using · data archiving at cern ad aeternum storage 7 tape libraries,...

18
SYSTEM TESTING CLOUD SERVICES USING EOS + CTA DEVELOPMENT USE-CASE from IT STorage group Julien Leduc CERN

Upload: others

Post on 05-Nov-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SYSTEM TESTING CLOUD SERVICES USING · DATA ARCHIVING AT CERN Ad aeternum storage 7 tape libraries, 83 tape driv es, 20k tapes Current use: 180 PB Current capacity: 0.6 EB Exponentially

SYSTEM TESTING CLOUDSERVICES USING

EOS + CTA DEVELOPMENT USE-CASE from IT STorage group Julien Leduc CERN

Page 2: SYSTEM TESTING CLOUD SERVICES USING · DATA ARCHIVING AT CERN Ad aeternum storage 7 tape libraries, 83 tape driv es, 20k tapes Current use: 180 PB Current capacity: 0.6 EB Exponentially

DATA ARCHIVING AT CERNAd aeternum storage7 tape libraries, 83 tape drives, 20k tapesCurrent use: 180 PBCurrent capacity: 0.6 EBExponentially growing

Page 3: SYSTEM TESTING CLOUD SERVICES USING · DATA ARCHIVING AT CERN Ad aeternum storage 7 tape libraries, 83 tape driv es, 20k tapes Current use: 180 PB Current capacity: 0.6 EB Exponentially

DATA ARCHIVING AT CERNEVOLUTION

EOS + tapes...EOS is CERN strategic storage platformtape is the strategic long term archive medium

EOS + tapes = ♥Meet CTA: CERN Tape ArchiveStreamline data paths, so�ware andinfrastructure

Page 4: SYSTEM TESTING CLOUD SERVICES USING · DATA ARCHIVING AT CERN Ad aeternum storage 7 tape libraries, 83 tape driv es, 20k tapes Current use: 180 PB Current capacity: 0.6 EB Exponentially

CTA is glued to the back of EOSEOS manages CTA tape files as replicasCTA contains a catalogue of all tape filesCTA provides optimised, preemptive scheduling

Page 5: SYSTEM TESTING CLOUD SERVICES USING · DATA ARCHIVING AT CERN Ad aeternum storage 7 tape libraries, 83 tape driv es, 20k tapes Current use: 180 PB Current capacity: 0.6 EB Exponentially

CTA DEVELOPMENT TIMELINEEnd 2016: First functional prototype releaseApril 2017: First release for additional copy use cases2018: Production-ready version

Easy migration path from CASTOR to EOS+CTA: onlymetadata need to be migrated CASTOR tape formatwill be reused.

Page 6: SYSTEM TESTING CLOUD SERVICES USING · DATA ARCHIVING AT CERN Ad aeternum storage 7 tape libraries, 83 tape driv es, 20k tapes Current use: 180 PB Current capacity: 0.6 EB Exponentially

CTA + EOS DEVELOPMENTSThis involves tightly coupled development in the intial

phase for both so�ware, and extensive testing toquickly catch regressions.

Page 7: SYSTEM TESTING CLOUD SERVICES USING · DATA ARCHIVING AT CERN Ad aeternum storage 7 tape libraries, 83 tape driv es, 20k tapes Current use: 180 PB Current capacity: 0.6 EB Exponentially

CASTOR INTEGRATION TESTSEasy situation:

all components are within one git repositoryPuppet deploys development instances on VMsLimited external dependencies per instance: 1database, 1 virtual tape library

Page 8: SYSTEM TESTING CLOUD SERVICES USING · DATA ARCHIVING AT CERN Ad aeternum storage 7 tape libraries, 83 tape driv es, 20k tapes Current use: 180 PB Current capacity: 0.6 EB Exponentially

CASTOR INTEGRATION TESTSBut several issues:

deploying a developer instance from scratch takesloooonnng time...code changes in CASTOR o�en require Puppetmanifest changereal tape hardware tests are way further downthe road in separate hostgroups, environments...

which implies ad hoc developer tests...

Page 9: SYSTEM TESTING CLOUD SERVICES USING · DATA ARCHIVING AT CERN Ad aeternum storage 7 tape libraries, 83 tape driv es, 20k tapes Current use: 180 PB Current capacity: 0.6 EB Exponentially

CTA+EOS INTEGRATION TESTSComplex situation:

2 distinct so�ware projectsMore external dependencies per instance: 1database, 1 virtual tape library, 1 objectstore

Page 10: SYSTEM TESTING CLOUD SERVICES USING · DATA ARCHIVING AT CERN Ad aeternum storage 7 tape libraries, 83 tape driv es, 20k tapes Current use: 180 PB Current capacity: 0.6 EB Exponentially

CTA+EOS INTEGRATION TESTSHow to fix everything?

I am lazy and impatientno manual operation → CImake it fast

Must allow similarly easy beta testingdeployments for administrators/users (simple andbulletproof)How to test real tape hardware?

Page 11: SYSTEM TESTING CLOUD SERVICES USING · DATA ARCHIVING AT CERN Ad aeternum storage 7 tape libraries, 83 tape driv es, 20k tapes Current use: 180 PB Current capacity: 0.6 EB Exponentially

CTA CIImplemented in CERN Gitlab instance

Build so�ware: CTA RPMs available as artifactsBuild and publish a generic Docker image in gitlabregistry

Contains all required RPMs for instantiation (CTAartifacts, specific EOS version, specific XROOTDversion)

Run system tests in custom kubernetes cluster

Page 12: SYSTEM TESTING CLOUD SERVICES USING · DATA ARCHIVING AT CERN Ad aeternum storage 7 tape libraries, 83 tape driv es, 20k tapes Current use: 180 PB Current capacity: 0.6 EB Exponentially

BASIC KUBERNETES CONCEPTSNAMESPACE 1: subnet 10.0.1.x

CONFIGURATIONs

Config1

SERVICE 1

SERVICE 2

SERVICEs

POD 1

POD2

POD3

PODsPODs

NAMESPACE 2: subnet 10.0.2.x

SERVICE 1

SERVICE 2

SERVICEs

POD 1

POD2

PODsPODs

kubernetes CLUSTER

PV1

label: ceph

PV2

label: local

Page 13: SYSTEM TESTING CLOUD SERVICES USING · DATA ARCHIVING AT CERN Ad aeternum storage 7 tape libraries, 83 tape driv es, 20k tapes Current use: 180 PB Current capacity: 0.6 EB Exponentially

KUBERNETES RESOURCESSystem tests on dedicated kubernetes clusters

One Puppet deployed kubernetes cluster perdeveloper on one VMKubernetes resources per cluster:

1 Oracle database (+ unlimited sqlite accounts)1 Ceph objectstore (+ unlimited localobjectstores)10 Virtual tape libraries: 2 tape drives, 10 tapes

Page 14: SYSTEM TESTING CLOUD SERVICES USING · DATA ARCHIVING AT CERN Ad aeternum storage 7 tape libraries, 83 tape driv es, 20k tapes Current use: 180 PB Current capacity: 0.6 EB Exponentially

INSTANTIATING A TESTCreate k8 NamespaceInstantiate all Services in the namespaceConsumable resources are implemented asPersistent Volumes

Issue a Persistent Volume Claim with selectorInstantiate associated Configuration in theNamespace

Instantiate all the Pods with their associatedcontainers to implement all the servicesWait for all the pods to be ready

Page 15: SYSTEM TESTING CLOUD SERVICES USING · DATA ARCHIVING AT CERN Ad aeternum storage 7 tape libraries, 83 tape driv es, 20k tapes Current use: 180 PB Current capacity: 0.6 EB Exponentially

NAMESPACE

CONFIGURATIONs

ObjectStore

DataBase

TapeLibrary

ctafrontend

ctaeos

kdc

SERVICEs

SYSTEM TEST

setup EOS WFExrdcp file -> ctaeos- is it on tape?remove EOS disk copyretrieve from CTA- is is back in EOS?

GITLAB

CTA frontend

CTA EOS

CTA CLI

tape srv

KDC

PODsPODs

INSTANTIATING A TEST

Page 16: SYSTEM TESTING CLOUD SERVICES USING · DATA ARCHIVING AT CERN Ad aeternum storage 7 tape libraries, 83 tape driv es, 20k tapes Current use: 180 PB Current capacity: 0.6 EB Exponentially

REAL TAPE DRIVE TESTSDeploy Puppet manifest on real hardwareAdd physical tape library resources in hieraIncrease timeouts for system tests

VOILÀ!We can deploy the same kubernetes instance on real

tape hardware and run exactly the same system tests.

Page 17: SYSTEM TESTING CLOUD SERVICES USING · DATA ARCHIVING AT CERN Ad aeternum storage 7 tape libraries, 83 tape driv es, 20k tapes Current use: 180 PB Current capacity: 0.6 EB Exponentially

THE ENDVery powerful approach addresses all our use casesFast, flexible, isolated and self contained in so�warerepository

TO DOWrite more system tests (using jtest? scripts?...)Bulletproofing reproducibility for regression testsEvaluate possible production use ☺

Page 18: SYSTEM TESTING CLOUD SERVICES USING · DATA ARCHIVING AT CERN Ad aeternum storage 7 tape libraries, 83 tape driv es, 20k tapes Current use: 180 PB Current capacity: 0.6 EB Exponentially

QUESTIONS?