cursus ibi cloud ifb pour les sciences du vivant...2016/10/11 · export nfs sur le cloud...
TRANSCRIPT
Formation Cloud IFBCursus IBI "Cloud IFB pour les Sciences du Vivant"
Module IBI - 2 Utilisation avancée du cloud IFB
Institut Français de Bioinformatique - IFB French Institute of Bioinformatics -
ELIXIR-FR CNRS UMS3601 - Gif-sur-Yvette - FRANCE
�2IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette
Mission : to make available core bioinformatics resources to the life science research community. ✓ To provide support for national biology programs✓ To provide an IT infrastructure devoted to
management and analysis of biological data✓ To act as a middleman between the life science
community and the bioinformatics/computer science research community
IFB - Institut Français de Bioinformatique
ELIXIR French Node
• The European distributed infrastructure for life-science information
• To optimize the interactions and coordination between the national level and ELIXIR and other ESFRI infrastructures in biomedical and environmental field,
• To promote consistency and complementarities between the components offered by the ELIXIR French node and those of other European nodes
http://www.france-bioinformatique.frCNRS UMS3601. Avenue de la Terrasse, Bât 21. 91190 Gif-sur-Yvette
French distributed infrastructure for life-science information
�3IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette
•Mission : to provide core bioinformatics resources to the life science research community. ✓ To set up a French IT infrastructure (cloud)
devoted to management and analysis of biological data
✓ To provide hardware, data collections and bioinformatics tools
✓ To collaborate with international infrastructure (ELIXIR)
•Current resources ✓ A national hub : IFB-core
IT resources hosted at CNRS IDRIS SC center✓ A network of regional centers
35 bioinformatics platforms - 15,000 cores - 6 PB✓ 4 running clouds
➡Create a federation of clouds for life sciences
IFB’s e-Infrastructure
CC
C
C
�4IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette
•Public : tout public •Fréquence : bimestrielle •Niveau requis
✓ débutant sur le cloud,✓ utilisateur de services bioinformatiques
•Objectifs ✓ Savoir utiliser le cloud IFB pour des analyses de données biologiques : exécuter ses
propres machines virtuelles et transférer ses données entre son poste de travail et le cloud et récupérer les résultats.
•Contenu: ✓ Présentation du cloud IFB ;✓ Présentation du tableau de bord ;✓ Déploiement des machines virtuelles ;✓ Gestion des données avec des disques virtuels, leur gestion ;✓ Les différents types de connexion aux VMs (SSH, Web et bureau à distance).✓ Pratique : utilisation de l’appliance Galaxy et d’un bureau virtuel
•Documents: ✓ Diapos : Présentation du cloud IFB✓ Fascicule : Utilisation du cloud IFB
IBI-1 - Utilisation de base du cloud IFBProchaines sessions
fin 2016
IBI-1 - Utilisation de base du cloud IFB
�5IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette
Public : Utilisateur du cloudFréquence : trimestrielle Niveau requis
• Avoir suivi IBI-1 (ou équivalent) et maitriser la ligne de commande
Objectifs • Savoir déployer une application complexe pour l'analyse intensive de données biologiques de
grande taille.
• Savoir adapter les machines virtuelles disponibles pour répondre à des besoins plus complexes.
Contenu: • Déploiement d'une application bioinformatique complexe comprenant plusieurs machines
virtuelles
• Installation de logiciels à partir d'archives (codes source ou binaires) ou à l'aide de scripts (approver)
• Utilisation de conteneurs docker pour l'installation de logiciels bioinformatiques
• Intégration des ressources de données (génome, annotation ...) grâce à l'appliance BiomaJ ou avec d'autres solutions
• Gestion des données avec des disques virtuels en NFS
Documents: • Diapos : présentation des fonctionnalités avancées du cloud IFB
• Fascicule : cas pratique des fonctionnalités les plus fréquemment utilisées
IBI-2 - Utilisation avancée du cloud IFB Prochaines sessions
fin 2016
�6IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette
•Public : ✓ Développeurs avec une pratique du cloud IFB
•Fréquence : semestrielle •Niveau requis
✓ avoir suivi IBI-2 (ou équivalent) et connaitre le système d'exploitation Linux
•Objectifs ✓ Savoir intégrer un logiciel ou un pipeline bioinformatique dans une machine virtuelle pour une
diffusion et mise à disposition sur le cloud IFB.
•Contenu: ✓ Présentation des bonnes pratiques de création d’appliance.✓ Présentation des fonctionnalités avancées disponibles dans le cloud IFB : le montage automatique des
collections de données publiques de référence, la contextualisation d’un portail web, la configuration des disques virtuels pour la conservation des paramètres d’un logiciel ou portail …
✓ Présentation des différents modèles d'intégration: archives (codes source ou binaires), scripts d'installation automatique (approver, puppet), conteneurs (docker).
✓ Création de conteneurs docker pour le déploiement de logiciels bioinformatiques✓ Choix et configuration de l'interface pour les utilisateurs (CLI, portail web, bureau virtuel à distance)✓ Rédaction d'une description pour le référencement dans le cloud IFB
•Documents: ✓ Diapos : Présentation des bonnes pratiques de création d'appliance sur le cloud IFB✓ Fascicule : Exemples de cas pratique
Prochaines sessionsfin 2016
IBI-3 - Développement demachines virtuelles modèles (appliances)
�7IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette
I. Personnaliser une VM du cloudI.1. Par interface web d’une applicationI.2. Par installation en ligne de commande
II. Partage avec NFSII.1. appliance BiomaJ
III. Utilisation d’un cluster
Sommaire
�9IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette
Choisir les outils (1/2)
�9Coll. IFB-core/GenOuest
Metadata from • ELIXIR bio.tools
• cloud marketplace
• docker hub
• …
http://rainbio.france-bioinformatique.fr/rainbio/
�10IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette
Choisir les outils (2/2)
Etat des ressources
allouéesEtat des
ressources utilisées
Détail des machines virtuelles en cours exécution
état de la machine
supprimer une machine créer/afficher les VM et les disques
�11IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette
Appliances sur le cloud
toolsBLAST
TopHat
FastASSearch
R
ClustalW2
samtoolsBWA
Linuxsystem
Createnew cloudservices
Bioinformatics Marketplace
Structures ...Sequences ProteomicsGalaxy
+Virtual Machines
OMSSA
PeptideShaker
HMMer
Muscle
X!tandemARIA
fastQCClustalOmega
Galaxy
Appliance : machine préconfigurée disponible sur le cloud, dédiée aux traitements de données biologiques.
Elles sont : - rapides à lancer; - prête à l’emploi; - personnalisable en fonction des
besoins (manuellement, avec des scripts) ;
- petites tailles.
Elles peuvent être utilisées : - lancer des analyses sur ces données; - tester des outils; - environnements de développements.
Les VMs reposent sur une Centos (6 ou 7) ou une Ubuntu 14.04.
�12IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette
Installation d’applications
- installation manuelle : téléchargement des binaires, ou des sources puis compilation…
- installation automatique : gestionnaire standard de package, script approver (IFB), recettes d’installation (puppet…)
- docker container : dockerfiles…
�13IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette
•Exemple avec RStudio
•Exemple avec Galaxy
•Exemple dans un bureau virtuel
Interface Web
�14IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette
• Installation d’un nouveau package dans RStudio
- se connecter comme utilisateur ruser / ruser;- dans la console:
❖ installer le package;❖ charger la librairie en ligne de commande ou dans la liste des
packages disponibles;❖ créer un histogramme.
Demo : appliance R statistical computing
# Installation par défaut dans le dossier : ~/R/x86_64-redhat-linux-gnu-library/3.1"install.packages("ggplot2")install.packages(“ggplot2", lib.loc=“/path/“)
library(library("ggplot2", lib.loc="~/R/x86_64-redhat-linux-gnu-library/3.1")
ggplot(diamonds, aes(price, fill = cut)) + geom_histogram(binwidth = 500)
# Vous pouvez sauvegarder l’image dans le dossier /home/ruser/R.
�15IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette
• Mise à disposition d’une instance Galaxy (actuellement version 16.01) avec un accès admin, elle peut-être configurée en fonction de vos besoins;
• Accessible via un proxy;• Deux comptes possibles :
- compte utilisateur: donne accès au disque virtuelle monté dans /root/upload_dir;
- compte admin : permet d’installer de nouveaux outils;• ATTENTION : ne pas changer cette configuration pour conserver une
instance de Galaxy fonctionnelle;• Galaxy est un service, qui est lancé automatiquement au démarrage de
la machine virtuelle;• Dossiers utiles :
- Galaxy est installé dans le dossier :❖ /ifb/galaxy-dist/
- Les nouveaux outils sont installés :❖ /ifb/shed_tools/
- les données de BioMaj sont accessibles : ❖ /ifb/databases
• Exemple d’installation d’un outil à partir du toolshed
Appliance Galaxy
�16IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette
• Dans un bureau virtuel on se retrouve dans le même environnement qu’une machine linux.
• Un des deux comptes est configuré en fonction de l’appliance :
- utilisateur ego : par défaut il a les droits en lecture/écriture uniquement dans /home/ego ;
- utilisateur root : même droit qu’on se connectant en ligne de commande;
• Exemple d’installation de FastQC dans un bureau virtuel
Demo : bureau Virtuel
�18IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette
• intégration logiciel dans une appliance: ✓ Docker, choix de BioShadock comme
dépôt d’image docker✓ Conda, recette d’installation de logiciels et
gestion des dépendances
•déploiement automatique de machine virtuelle ✓ Puppet : déploiement automatique de
machine virtuelle intégration d’outils configuration de service/ressources. Un serveur Foreman est installé à l’IFB, prochainement accessible.
Intégration logicielle dans le cloud
Channel R
�19IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette
Installation automatique
1. script approver
�20IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette
Script approver
approver
- tool1-vA - tool2-vA - tool2-vB - ….
bash scriptsapprover -l
Affiche la liste des outils disponible
approver -i /ifb —t toolN-vZ
Lance l’installation de toolN-vZ et nettoyage des fichiers temporaires
Logs disponibles dans le dossier : ~/.approver
Dédié à des machines sous CentOS
�21IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette
Installation automatique
2. Conda/Bioconda
�22IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette
•“Conda est un système de gestion des paquets open source et système de gestion de l'environnement pour l'installation de plusieurs versions de logiciels et de leurs dépendances et de commutation facilement entre eux. Il fonctionne sur Linux, OS X et Windows, et a été créé pour les programmes Python mais peut conditionner et distribuer tout logiciel.”
Conda
http://conda.pydata.org/docs/ https://github.com/bioconda/bioconda-recipes https://anaconda.org/sperrin/
Dépôt de recettes
Recette- meta.yaml- build.sh
fichier bowtie2.2.2.8.tar.bz2 bowtie2 —version
installbuild
Dépôt de packages
deploy
�23IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette
•fichier meta.yaml ✓ description de l’outil et
localisation des sources
Recette conda•fichier build.sh✓script shell pour installer l’outil
NB: possibilité de définir des fichiers patch
pour modifier l’exécutable
�24IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette
Conda / BioConda# installation Anaconda3 pour python3 (Anaconda2 pour python2) wget http://repo.continuum.io/archive/Anaconda3-Linux-x86_64.sh bash ./Anaconda3-Linux-x86_64.sh
# création d’un dossier ./anaconda3, contenant l’ensemble des fichiers utilisées et des outils installés. conda update conda conda info
# rechercher un outil anaconda search <name> conda search <name> conda info <name> # installer un outil conda install -c <channel> <name>=<version>
# lister les outils installés conda list
�25IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette
Installation automatique
3. docker / container
�26IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette
Introduction Docker• il repose sur la technologie des conteneurs. Docker permet de packager une application avec ses dépendances dans un espace dédié ✓ éviter les problématiques de compatibilité entre
version;
• il faut avoir les droits root pour utiliser docker, d’où une utilisation à privilégier dans une machine virtuelle;
• il permet d’installer rapidement une version d’un logiciel qui est prêt à l’emploi.
Dépôt images docker
docker pull imageimage
docker sur une VM
docker run image et l’application
container
container
l’application effectue le traitement
docker build
�27IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette
•une application portée sous Docker correspond à une image Docker, elle peut être récupérer depuis des dépôts d’images docker : ✓ dépôt de Docker : https://hub.docker.com/
❖ commande : docker pull <image_name>:<tag>✓ dépôt dédié tel que BioShaDock en bioinformatique :
https://docker-ui.genouest.org ❖ commande : docker pull docker-registry.genouest.org/<image_name>:<tag | latest>
• le lancement d’une image crée un container docker. En principe, une image contient une application et ses dépendances; ✓ lancement de l’application :
❖ docker run <docker_options <image_name>:<tag> <commande> <arguments> ❖ ex : affichage du help de bwa :❖ docker run docker-registry.genouest.org/ifb/bwa:0.7.10 bwa
•pour des raisons de sécurité, il faut vérifier la sources des images récupérer et si possible consulter le Dockerfile;
utilisation d’une image
�28IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette
Docker dans le cloud
push
pull
dockervirtual machine
Developer
dockervirtual machine
User
Container layer
IFB’sCloud
push
Cluster Swarm
Node1
Node n
Master
Registryof containers
BioShaDockIFB’s docker hub
�29IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette
Docker on the cloud
docker virtual machine
docker virtual machine autre
BioShaDock
pull push
BioShaDockIFB’s docker hub
(hosted at GenOuest)
https://docker-ui.france-bioinformatique.fr https://docker-ui.genouest.org/
Runner Docker activé (> 16.01)
�30IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette
BioShaDockdocker-ui.france-bioinformatique.fr/
�31IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette
BioShaDock
accès au Dockerfile, si ajouter
utilisation des metadata
EDAM
ajouter un lien vers le catalogue d’Elixir bio.tools
�32IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette
Docker : MEMO des principales commandes# version de docker docker version # lister les images disponibles docker images # lister les containers en cours d’exécution docker ps # lister les containers en cours d’exécution et arrêté en attente de suppression docker ps -a
# lancer une image docker run <options> <image_name>:<tag> <cmd> <args> options :
-it pour être en mode interactif -d pour le lancer en background -v <dir_local>:<dir_container> pour définir des points de montage -w pour définir le dossier de travail
# supprimer un container ou supprimer toutes les containers (option -f pour forcer) docker rm -f <container_id | container_name> OU docker rm -f $(docker ps -aq) # supprimer une image ou toutes les images docker rmi -f <image_name>:<tag> OU docker rmi -f $(docker images -q)
https://docs.docker.com/ Dernière version 1.12,
version disponible sur le cloud 1.11
�33IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette
Fonction : - Récupérer des images - Instantier et gérer les containers.
Accès à une console, à des statistiques d’utilisation de la machine
Shipyard
service shipyard help
Usage: service shipyard startstopclientreloadcleanstatushelp
http://shipyard-project.com/
�34IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette
• Dans une appliance Docker:- Utilisation de Docker;- Utilisation de Shipyard.
Demo
�36IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette
Serveur NFS
VM1
virtualdisk
VM2
VMn
…
VMNFS server
datasharing
Point de montage : /root/mydisk
Serveur NFS disponible dans l’appliance permet : 1/ de partager un disque avec toutes les VMs en lecture seule; 2/ partager un disque en lecture-écriture avec une VM
�37IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette
Point de montage NFS
VM1
virtualdisk
VM2
VMn
…
VMNFS server
/root/mydisk
1) Créer une instance du serveur NFS avec un disque
2) Sur les autres machines, configurer le pare-feu (ou l’arrêter temporairement)CentOS : service iptables stop Ubuntu : ufw disable
�38IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette
VM1
VM2
VMn
…
3) Sur chaque VM, monter le disque en configurant le fichier /etc/fstab en ajoutant une ligne sur ce modèle :
IP_NFSserver:/root/mydisk /root/sharedisk nfs defaults 0 0
Montage NFS en read-only
mkdir /root/sharedisk mount -a mount
Lancer les commandes pour monter et vérifier le montage
�39IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette
VM1
…
virtualdisk
VMNFS
server
/root/mydisk
Montage NFS en read-write4) En plus des étapes 1 à 3, sur le serveur NFS, donner accès en écriture au disque à la seule machine VM1. Modifier le fichier /etc/exports, remplacer la ligne par une sur ce modèle:
/root/mydisk IP_client(rw,no_root_squash)
service nfs reload exportfs -av
Relancer le serveur pour prendre en compte les modifier et vérifier la configuration
IP_client
NB: après suppression d’une machine virtuelle, pensez à mettre à jour la liste des machines avec un droit accès au disque sur le serveur NFS.
�40IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette
•Autre moyen pour partager un dossier entre machine virtuelle est de faire un montage en ssh, les machines peuvent communiquer entre elles par ssh.
Partage dossier entre VMs
1) pas de pré-requis à installer 2) Depuis machine X, partage du dossier
work avec avec la machine Y 3) création du montage, point de montage
shared_ssh 4) vérification du montage dans la machine X
mkdir shared_ssh
sshfs [email protected]:/root/work shared_ssh
df -h
VMsource
192.54.201.Y
/root/work
démontage fusermount -u shared_ssh
VMtarget
192.54.201.X
/root/shared_ssh
�42IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette
Dépôt BioMaj
La VM BioData permet de partager
vos données de référence
VM1
databanks
VM2
VMn
…
VMBio Data
datasharing
/ifb/databases
Interface web BioMaj WEB
�43IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette
Exemple de construction2 appliances et 2 disques virtuels : - NFS server: avec un disque contenant les données de référence
(génomes, index…) - Biocompute : avec un disque virtuel qui contient les données
d’entrée et de sortie de l’analyse des données.
/root/mydisk : contient les données à traiter
/root/sharedisk: contient les données de référence partagées avec les autres VMs., accessibles en lecture seule
VMBiocompute
virtual disk
VM…
virtualdisk
VMNFS
server
/root/mydisk : contient les données de référence partagées avec les VMs
�45IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette
Mode clusterUn script de configuration qui crée un cluster à la « volée ».
• 6 ordonnanceurs de tâches disponibles:
Torque/Maui
�46IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette
Mode cluster : principe
VMMaster
VMnode1jobs
(ifb-qsub)
virtualdisk
VMnode2
VMnode2
…Montage
automatique ‘/root/mydisk'
Sauvegarde des données sur un disque partagé par
NFS ‘/root/mydisk’
User
I/O
I/O
SSH
�48IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette
Cluster Swarm
•Deux méthodes pour instancier un cluster Swarm : ✓ utilisation uniquement en ligne de commande,
❖ script : ifb-cluster-swarm ou swarm;✓ utilisation de l’interface graphique Shipyard,
❖ script : ifb-cluster-shipyard ou shipyard;
•Architecture sur le cluster : ✓ 1 master avec un interface graphique✓ N noeuds;✓ dossiers partagés;
�49IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette
Cluster Swarm•Deux méthodes pour lancer des conteneurs : ✓ via un script: le traitement sera reparti uniquement entre les
noeuds du cluster.✓ via l’interface Shipyard: le traitement sera reparti uniquement entre
toutes les machines du cluster: master et noeud;
NB: bien identifier les ressources utiles pour le master et les noeuds en fonction.
swarm-docker info swarm-docker versionContainers : 11 Running: 9 Paused: 0 Stopped: 2 Images: 10 Server Version: swarm/1.2.5 Strategy: spread Nodes: 2 vm0007: 192.54.201.38:2375 └ Status: Healthy └ Containers: 7 (7 Running, 0 Paused, 0 Stopped) vm0077: 192.54.201.108:2375 └ Status: Pending └ Containers: 4 └ Error: Engine […]. └ UpdatedAt: 2016-10-10T14:28:28Z
Client: Version: 1.11.2 API version: 1.23 Go version: go1.5.4 Git commit: b9f10c9 Built: Wed Jun 1 21:47:50 2016 OS/Arch: linux/amd64
Server: Version: swarm/1.2.5 API version: 1.22 Go version: go1.5.4 Git commit: 27968ed Built: Thu Aug 18 23:10:29 UTC 2016 OS/Arch: linux/amd64
�50IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette
Cluster avec SwarmCluster Swarm
Node1
Node n
virtualdisk
VMNFS server
shared folderfrom master
ifb-cluster-swarm /root/cluster/node.l IP_Serveur_NFS swarm /root/cluster/node.l IP_Serveur_NFS
swarm /root/cluster/node.l
swarm /root/cluster/node.l uninstall
Master
La création du cluster stoppe le service Shipyard, arrête tous les conteneurs et redémarre le service docker de toutes les machines, il crée le dossier partagé.
�51IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette
Cluster Swarm
for n in $(seq 1 5) ; do swarm-docker run -d —name nginx-$n nginx ; done
swarm-docker ps
Lancement de plusieurs conteneurs :
Suivi des conteneurs
Peu de fonctionnalités disponibles pour gérer le cluster dans swarm.
CONTAINER ID IMAGE COMMAND PORTS NAMES b02264fe33fa nginx "nginx -g 'daemon off" 80/tcp, 443/tcp vm0011/nginx-5 9855bc1bf144 nginx "nginx -g 'daemon off" 80/tcp, 443/tcp vm0011/nginx-3 856ece96fa2f nginx "nginx -g 'daemon off" 80/tcp, 443/tcp vm0088/nginx-4 d301621cffdf nginx "nginx -g 'daemon off" 80/tcp, 443/tcp vm0088/nginx-2 d9bc8dfd8bf8 nginx "nginx -g 'daemon off" 80/tcp, 443/tcp vm0011/nginx-1
docker ps CONTAINER ID IMAGE COMMAND PORTS NAMES 8d4a55532a9c swarm "/swarm join --addr=1" 2375/tcp node-192.54.201.119 a8e46f838a74 swarm "/swarm join --addr=1" 2375/tcp node-192.54.201.117 20c7c176a55e swarm "/swarm manage token:" 0.0.0.0:5732->2375/tcp master
Cas cluster avec deux nodes
hostname vm0011
hostname vm0088Node Address Status Type Build Protocol DC agent_slave_1 192.54.201.117:8301 alive client 0.6.4 2 dc1 agent_slave_2 192.54.201.119:8301 alive client 0.6.4 2 dc1 master 192.54.201.111:8301 alive server 0.6.4 2 dc1
consul members
�52IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette
Cluster avec ShipyardCluster Swarm
Node1
Node n
virtualdisk
VMNFS server
shared folderfrom master
shipyard /root/cluster/node.l IP_Serveur_NFS
shipyard /root/cluster/node.l
shipyard /root/cluster/node.l uninstall
Master
La création du cluster stoppe le service Shipyard, arrête tous les conteneurs et redémarre le service docker de toutes les noeuds, il crée le dossier partagé.
�54IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette
Etape 1 : créer les VMs
ssh-agent ssh-add ~/.ssh/id_rsa (or id_dsa)
Mettre en place l’agent ssh depuis le terminal sur votre ordinateur:
Lancer une VM avec un disque virtuel: le master Lancer plusieurs machines: les nodes
�55IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette
~/cluster/
master
nodes.l
ifb-cluster
ifb-qsub
node 1machine IP
node nmachine IP
Etape 2 : configurer le cluster
Ajouter les IPs des VMs nodes dans le fichier /root/cluster/nodes.l
(bouton ‘Get IPs’ du tableau de bord)
! une par ligne
node-1 IP … node-n IP
ifb-worker
ifb-worker
…
Se connecter au master en ‘ssh -A …’
�56IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette
ifb-cluster cluster/nodes.lor
ifb-cluster cluster/nodes.l x
x = nombre de CPUs de chaque
VM/node
!! le dossier du disque virtuel root/mydisk est partagé avec les VMs nodes
Cluster
master
nodes.l
ifb-cluster
ifb-qsub
configure lesnodes
node 1machine IP
node nmachine IP
ifb-worker
ifb-worker
Etape 2 : configurer le cluster
�57IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette
ifb-qsub $job-cmd-1
ifb-qsub ajoute les jobs dans la pile du
master
Etape 3 : lancer les jobs
Cluster
master
nodes.l
ifb-cluster
ifb-qsub
ifb-qsub $job-cmd-2
ifb-qsub $job-cmd-N…
Pile de jobs
$job-cmd-1
…$job-cmd-2
$job-cmd-N
�58IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette
$job-cmd-1
Pile de jobs
Running jobs
Cluster
master
nodes.l
ifb-cluster
ifb-qsub
node 1machine IP
node nmachine IP
ifb-worker
ifb-worker
…$job-cmd-2
$job-cmd-N
prends les jobs
ifb-worker sur chaque node: récupère les jobs un à un,
jusqu’au dernier
Etape 3 : lancer les jobs
�59IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette
Démo Cluster
• Mise en place d’un cluster virtuel- Utilisation de rabbitmq;- Utilisation de SGE.
�60IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette
Liens
BioShaDock :docker-ui.genouest.org
BioMaJ: http://biomaj.genouest.org/
Tutoriel Galaxy pour ajouter des outilshttps://wiki.galaxyproject.org/Admin/Tools/AddToolFromToolShedTutorial
�61IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette
•http://www.france-bioinformatique.fr/fr/evenements/IFB-IBI
•Contact formation : [email protected]
•Contact cloud : [email protected]
Liens
�63IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette
•Lors de la première connexion✓ complétez vos
paramètres✓ rubrique ‘Settings’
•! clé SSH:✓ La créer (cf. doc.)✓ attention aux retours à
la ligne lors du copier-coller
Connexion au Cloud IFBhttps://cloud.france-bioinformatique.fr/cloud/profile
Dans un terminal, les clés sont enregistrées dans le dossier :ls -la ~/.ssh
Générer la clé utilisée pour le cloudssh-keygen -t dsa -b 2048
Ajouter à l’agent SSH, le chemin vers la clé privée générée. Opération obligatoire si vous n’enregistrez pas la clé dans le dossier ssh.eval "$(ssh-agent -s)ssh-add ~/.ssh/id_dsa
Copier la clé publique pour l’ajouter dans la page Settings du Cloud, (attention pas de retour à la ligne).pbcopy < ~/.ssh/id_dsa.pub
NB: pas gestion de clé openssh pour se connecter avec le bureau virtuel X2Go, comme avec Windows.
Connexion ssh sous Linux/MacOS
Machine Windows
Connexion avec le logiciel PuTTY Installation à partir du lien avec PuTTY Generator
http://www.putty.org/
�67IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette
1
2
3
4
5
6
Connexion ssh avec PuTTY
sous Windows
6
5
4
3
2
1 Choisir le paramètre "SSH-2 DSA" (en bas de la fenêtre) puis cliquer sur « Generate". Bouger la souris dans le cadre pour générer la clé.
Copier la clé publique du cadre et la copier dans le cadre ssh-key de la page Settings du cloud. Attention : aucun retour à la ligne, la clé doit commencer par ssh.
Sauvegarder la clé privée générée, liée à la clé publique.
Dans le menu Conversion, choisir exporter la clé openssh, elle sera utilisée pour se connecter avec X2Go au bureau virtuel,
PuTTY Generator - clé ssh
PuTTY - connexion à une machine virtuelle
Dans le menu, à gauche (Connexion/SSH/Auth), configurer la connexion ssh en renseignant le chemin vers le fichier de la clé privée.Dans le menu à gauche (Session), avec les informations sur la machine virtuelle données dans le tableau de bord du cloud, renseigner l’adresse IP et le port (22), type de connection ssh. Cliquer sur Open pour ouvrir un terminal, puis entrer le login.
�69IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette
Conda & Docker & Galaxy
Création automatiqued’image docker à partirde recette conda(BioShaDock)
Galaxy peututiliser des outils avec des images docker.
Galaxy peut installer des outils avec conda.
installation de Galaxy avec une image docker
VM
pull/push
push
install
upload
runrun
run
dockerize