A/ Client-Serveur bbftp :Les outils de transfert (
serveur et client ) sont développés par Gilles
Farrache pour D0 et Babar. Ces 2 expériences transferent
regulièrement outre-atlantique des volumes importants
de données. L'intéret de ce transfert est d'aller vite
et en cas de
suspension de la ligne pendant plus de 50 mn de ne perdre que
le fichier courant . Cependant ces données ont des caractéristiques
tres différentes :
Babar : les données sont fortement compressibles
et elles sont extraites des disques objectivity.
D0 : les données
sont des fichiers déja compressés au maximum et ils
résident sur des disques (rfio a Lyon ou /pnfs sur
D0mino
Dans la version 1.9.4, le client bbftp est installé
sur toutes les machines interactives de Lyon et le demon tourne sous
root, sur d0mino.fnal.gov
2/ On peut utiliser le client pour transferer des données
à partir des disques /afs
Les scripts *.csh et *.py du package d0_bbftp.tar permettent
la création du fichier de controle à bbftp
ainsi que l'envoi des fichiers *.params et *.py des repertoires Metadata.
Le stage des fichiers en batch est soumis si les données
sont sur bande ( option Xtage)
Installation des scripts :
Se placer dans le repertoire de travail d'une production cad $GROUP_DIR/workdir ( les jobdir se trouve dans $GROUP_DIR/workdir )
Copier à partir de $THRONG_DIR/info-data/pmc03/d0_bbftp.tar.gz
Detarer le fichier
cd d0_bbftp
Le déroulement du script est le suivant :
1/ Faut il transferer
les répertoires Metadata [CR=yes]
Si oui ===> Confirmer [yes/no]
2/ Creation du
fichier de controle de bbftp à partir de HPSS [CR=yes]
Si non ===> Creation du fichier de controle de
bbftp à partir de XTAGE [yes/no]
La syntaxe d'appel de run_bbftp.csh est :
run_ftp_bbftp.csh prodname ( nom du répertoire top de production ) database_name (nom du fichier database) [ where ( chemin absolu du disque output sur d0mino )]
Exemple :
./run_ftp_bbftp.csh fakedir export_database
ou
./run_ftp_bbftp.csh myprod export_hpss_database /tmp/777/
La 1ère commande concerne la production qui se trouve $GROUP_DIR/workdir/fakedir
; par defaut , les transferts de fichiers se font dans /sam/cache20/import/in2p3
On peut spécifier un autre filesystem de d0mino pour envoyer
les fichiers ( /scratch4/user/...)
Au lancement du script run_ftp_bbftp.csh, sont crées
deux repertoires de travail w_prodname/export et w_prodname/export_param
pour chaque production à exporter à partir de
d0_bbftp
Vous devez donc vérifier si vous avez les droits d'écriture
sur ces filesystem sinon adressez vous à Lee
Lueking
Enfin, afin que les fichiers data soient rapidement ecrits dans Enstore,
il est conseillé de vérifier la syntaxe des
fichier import.py avec les commandes suivantes :
setup n32
setup python
setup sam
python my_importfile.py
Quand le fichier ctrlfile est cree dans w_prodname/export, le transfert de fichiers peut etre lance par la commande : ./d0_bbftpc.csh &
Quand tous les fichiers sont arrivés, une dernière opération
est nécessaire , à savoir mettre les droits 777 sur tous
les fichiers (params, import et data)
2/ Vous devez donc vérifier si vous avez les droits d'écriture sur les filesystem concernés sinon adressez vous à Lee Lueking
3/ Le script run_ftp_bbftp.csh permet de ne pas transférer
les fichiers *.params et import.py s'ils ont déjà
été transferés ou s'il
s'agit d'un export privé.
4/ Si les données sont des fichiers stagés
, ils ne sont plus 'accessed' au moment du client bbftp
:
IL faut donc les maintenir en exécutant sur C2in2p3, le
script interactif make_xtagein.csh crée
dans le répertoire w_prodname
5/ Liste des fichiers de d0_bbftp.tar
run_ftp_bbftp.csh
ftparam.py
: fait les liens vers les fichiers *.params et import.py
d0ftparam
: fait le transfert de *.params et import.py
ftpsim_bbftp.py
: fait le stage des fichiers
make_ctrl_bbftp.py :
cree le fichier de controle
d0_bbftpc.csh
: active le client bbftpc - a condition d'avoir obtenu un pid
avec la commande bbftpcd -u user -o mypid d0mino.fnal.gov
MyTools.py
: librairie de mc_runjob (G.Graham)