Une introduction à iRODS (Jean-Yves Nief)
Introduction à iRODS - JI 08 - Obernai2 Introduction à iRODS Collaborations scientifiques internationales: –Données (publiques, privées) distribuées sur de nombreux sites. –Stockage hétérogène (fichiers/bases de données/flux de données, URL, cartouches/disques). –OS hétérogènes. –Authentification / droits d’accès aux fichiers dans l’organisation virtuelle. –Authentification / droits d’accès à travers différentes organisations virtuelles. Virtualisation du stockage nécessaire: –Vue hiérarchique (organisation logique) de l’ensemble des données. –Applicatif qui gère les données indépendant: 1.des évolutions technologiques des systèmes de stockage. 2.des modifications de l’organisation locale des fichiers (ex: serveurs, points de montage, etc…).
Introduction à iRODS - JI 08 - Obernai3 Aux origines de iRODS: SRB Aux origines de iRODS: SRB SRB (Storage Resource Broker) offre une réponse à ces aspects et à bien d’autres… Développé au SDSC: démarrage en Sous licence de l’Université de Californie / General Atomics. Développeurs au contact permanent des utilisateurs: –Ajout de fonctionnalités demandées par la communauté. Portage sur un grand nombre d’OS et de plateformes. Support de nombreux systèmes de stockage, non limitatif. Vaste communauté d’utilisateurs.
Introduction à iRODS - JI 08 - Obernai4 Fonctionnalités de SRB (I) Gestion des réplicats et des versions. Accès aux données à partir de leurs attributs au lieu de leur nom et emplacement physique.
Introduction à iRODS - JI 08 - Obernai5 Fonctionnalités de SRB (II) Recherche par métadonnées associées aux objets. Annotations possibles sur les fichiers. Audit: enregistrement de toutes les actions effectuées. Hiérarchie des ressources de stockage: –Ressources logiques: ensemble de ressources physiques. –Ressources hiérarchisés: ressources caches (temporaires, ex: disque) + 1 ressource archive (ex: cartouche, disque). Gestion des ACLs, groupes, domaines… Extension du schéma de metadonnées.
Introduction à iRODS - JI 08 - Obernai6 Utilisation de SRB au CC-IN2P3 HEP BaBar Site « miroir » de SLAC Calice Archivage de données CMOS Archivage de données QCD ~dizaines To / an Astroparticule Antares Tier 0: ~200 To / an Auger Tier 0: ~dizaines To / an Edelweiss Tier 0: ~dizaines To / an SN Factory Au cœur du online: ~Go / j Biomédical BioEmergence Tier 0: Projet européen Mammographie Projet avec le LIRIS (1 thèse) Neuroscience ISC, CHU de Lyon, Strasbourg 1 Po de données dans SRB fin 2008
Introduction à iRODS - JI 08 - Obernai7 Pourquoi passer à iRODS ? (I) SRB n’est pas open source: –Problème pour projets avec partenaires privés. –Distribution libre du code… –Pas un problème dans le secteur académique!!! (accès et modification du code source tout à fait possible). Code et schéma de la base de données à retravailler: simplifier (rappel: démarrage en 98).
Introduction à iRODS - JI 08 - Obernai8 Pourquoi passer à iRODS ? (II) Virtualisation du stockage pas suffisante. Applications clientes s’appuyant sur ces middlewares: –Pas de garde-fous. –Pas de garanties d’application stricte d’une politique de préservation des données. Nécessité pour un projet de distribution de données de définir une politique homogène et cohérente de: – gestion des données. – gestion des ressources de stockage. Essentiel dans les projets d’archivage massif de fichiers (bibliothèques numériques…). Aucun outil de grille actuellement ne permet cela.
Introduction à iRODS - JI 08 - Obernai9 Pourquoi passer à iRODS ? (III) Cas typiques de chausse-trappes: –Non respect de certaines règles préétablies. –Plusieurs applicatifs coexistent pour gérer les données et le workflow incohérences potentielles. –Plusieurs versions du même applicatif utilisé au sein du projet incohérences potentielles. Délester l’application cliente des contraintes locales à chaque système. Solution: virtualisation de la politique de gestion des données, exprimée sous forme de règles.
Introduction à iRODS - JI 08 - Obernai10 Quelques exemples simples… ACL personnalisés dans le système: –Interdire effacement de fichiers dans une arborescence particulière même par le propriétaire. Intégrité et sécurité des données: –Checksum automatique lancé en arrière plan. –Anonymisation à la volée même si non effectuée par le client. Enrichissement des métadonnées: –Enrichissement automatisée des métadonnées associées aux objets (dans ou hors de la db du système). Personnalisation des paramètres de transfert: –Nombre de flux, taille des paquets, fenêtre TCP variant en fct de l’origine de la connexion à un serveur. … à vos plumes …
Introduction à iRODS - JI 08 - Obernai11 iRODS iRule Oriented Data Systems. Projet démarré en Janvier Première version officielle en Décembre 2006 (v 0.5). Financé par: NSF, NARA (National Archives and Records Administration). CC-IN2P3, e-science (UK): collaborateurs.
Introduction à iRODS - JI 08 - Obernai12 iRODS Reprend les principes de SRB. Metacatalogue: iCAT de iRODS MCAT de SRB. Mais va beaucoup plus loin: –Gestion des données basée sur des règles paramétrées côté serveur. –Personnalisation complète du système sans avoir à modifier le code iRODS. –Écriture de ses propres services en ajoutant ses propres modules. –Virtualisation de la politique de gestion des données. –Espace logique pour les règles: Regroupement en ensembles de règles. Gestion des versions.
Introduction à iRODS - JI 08 - Obernai13 iRODS côté client Commandes binaires (à la mode Unix) pour Unix (Linux, Solaris, AIX, Mac OSX) et Windows. APIs: –C. –Java. –PHP. –etc… Clients graphiques: –Appli web. –Application standalone pour Windows.
Introduction à iRODS - JI 08 - Obernai14 Architecture serveur de iRODS (1 fédération) OU iRODS iCAT iRODS (….) iCAT iRODS iCAT (….) (Maître) (esclave)
Introduction à iRODS - JI 08 - Obernai15 Architecture serveur de iRODS (n fédérations): futur proche iRODS iCAT iRODS (….) iCAT iRODS (….) iCAT iRODS (….) [Zone I] [Zone II] [Zone III]
Introduction à iRODS - JI 08 - Obernai16 iRODS: les règles Une règle (préfixe ac) est composée de: 1.Nom. 2.Condition. 3.Appel de fonction(s): autre(s) règle(s) ou micro-services. 4.Récupération en cas d’erreur. Un µ-service (préfixe msi): –Effectue une tâche précise, peuvent faire appel à des fonctionnalités internes de iRODS. –Interface standard fournie avec les µ-services Exemple de règle (appelée lors de l’effacement d’un fichier): acDataDeletePolicy||nop|nop
Introduction à iRODS - JI 08 - Obernai17 iRODS: les règles Modification de la règle précédente: –Empêcher l’effacement des données dans /in2p3/RealData: acDataDeletePolicy|$objPath like /in2p3/RealData/*|msiDeleteDisallowed|nop Enchainement de micro-services pouvant être inclus lors de l’écriture d’un fichier: myTestRule{ *B = /temp/home/rods/test2; *C = /temp/home/rods/test3; msiDataObjOpen(*A,*S_FD); // ouverture de test1. msiDataObjCreate(*B,null,*D_FD); // création de test2. msiDataObjLseek(*S_FD,10,SEEK_SET,*junk1); // lecture des octets de test1 de octets à partir du … msiDataObjRead(*S_FD,10000,*R_BUF); // …. 10 ème. msiDataObjWrite(*D_FD,*R_BUF,*W_LEN); // écriture du contenu dans test2. msiDataObjClose(*S_FD,*junk2); // fermeture de test1. msiDataObjClose(*D_FD,*junk3); // fermeture de test2. msiDataObjCopy(*B,*C,null,*junk4); // copie de test2 dans test3 dans la ressource courante. delay (" ") { msiDataObjRepl(*C,demoResc8,*junk5); // réplication après un délai de test3 sur un autre type de stockage. msiDataObjChksum(*C,*Operation,*ChecksumRes); // checksum de tous les réplica de test3. } msiDataObjUnlink(*B,*junk6); // effaçage de test2. } INPUT *A=“/temp/home/rods/test1”,*Condition="COLL_NAME = '/tempZone/home/rods/loopTest'",*Operation=ChksumAll
Introduction à iRODS - JI 08 - Obernai18 iRODS: Rule Engine Permet le traitement des règles.
Introduction à iRODS - JI 08 - Obernai19 iRODS: Rule Engine Possibilité d’avoir des actions en tâche de fond au sein d’une règle (liste gérée par la base de données). Possibilité pour un utilisateur de: –Surveiller l’état des tâches différées. –Modifier des paramètres pour des tâches différées. –Annuler des tâches différées. –Soumettre ses propres règles à un serveur. Les µ services permettent des interactions entre iRODS et des systèmes extérieurs.
Introduction à iRODS - JI 08 - Obernai20 Participation du CC-IN2P3 à iRODS (I) Spécifications des fonctionnalités, tests, debugging. Programme de tests des fonctionnalités + tests de charge. Ecriture de micro-services: –contrôle d’accès personnalisé aux serveurs. –Répartition de charge dynamique (en cours). –Gestion des ressources composites (caches + archives). Interface HPSS + interface « universelle » à un système de stockage de masse: en cours (T. Kachelhoffer). Côté client: explorateur universel (JUX), inclut iRODS: P. Calvat.
Introduction à iRODS - JI 08 - Obernai21 Participation du CC-IN2P3 à iRODS (II) iRODS iCAT server iRODS data server 1.Ask each server for its metrics: rule engine cron task (msi). 2. Performance script launched on each server. Perf script 3. Results sent back to the iCAT. 4. Store metrics into iCAT. DB 5. Compute a «quality factor» for each server stored in an other table: r.e. cron task (msi).
Introduction à iRODS - JI 08 - Obernai22 Tests iRODS au CC-IN2P3 (I) Transferts longue distance entre Lyon et KEK (Tsukuba – Japon): –Débits observés jusqu’à 400 Mbits/s (meilleur que bbcp dans les mêmes conditions matérielles). Tests de charge: – –n clients en //. – –Jusqu’à 1.5 millions d’objets enregistrés dans qques centaines de milliers de collections. (Yoshimi Iida - KEK)
Introduction à iRODS - JI 08 - Obernai23 Tests iRODS au CC-IN2P3 (II): LSST LSST: –Telescope au Chili: 1 ère lumière en –Storage Challenge pour Super Computing 08: Gestion et réplication des données en « conditions réelles ». CTIO SDSC NCSA ROE CC-IN2P3
Introduction à iRODS - JI 08 - Obernai24 Utilisation de iRODS au CC-IN2P3 Stockage et accès mutualisé à des archives numériques (Liris): –Qques To / an. –Plateformes clients: Windows, Mac OSX. Projets potentiels dans un futur proche: Adonis...
Introduction à iRODS - JI 08 - Obernai25 iRODS en France Astrophysique: –Intégration de iRODS avec VO Space (specs de l’Observatoire Virtuel): Observatoire de Strasbourg. Archives numériques: –iRODS choisi par la BNF pour la gestion de la couche stockage: intégration en cours par Atos Origin. Maquette avec le CC. –Travail de prospective pour Adonis (avec le CINES + CRDO): archivage pérenne pour les Sciences Humaines. Centre de Recherche Européen de Xerox à Grenoble (projet Shaman), HP. Sun Microsystems. ….
Introduction à iRODS - JI 08 - Obernai26 iRODS dans le monde Sciences humaines & archives numériques: –NARA (archives nationales américaines), Bibliothèque Nationale du Congrès. –UK, Allemagne. Biomédical: BIRN (USA), grille allemande. Astrophysique: utilisation pour l’IVOA, LSST. Physique des particules: Japon (KEK-JPARC). Océanographie, Sciences de la Terre. SUN Microsystems, PostGres.
Introduction à iRODS - JI 08 - Obernai27 Conclusion iRODS ouvre des perspectives très riches: –Personnalisation poussée du paramétrage des services. –Interfaçage avec des services totalement extérieur à iRODS. –Côté client: virtualisation des règles de gestion des données. Workshop iRODS à Lyon: 2-5 Février 2009.
Introduction à iRODS - JI 08 - Obernai28 Références SRB: – – iRODS: –