Cursus IBI Cloud IFB pour les Sciences du Vivant...2016/10/11  · Export NFS sur le cloud...

69
Formation Cloud IFB Cursus 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

Transcript of Cursus IBI Cloud IFB pour les Sciences du Vivant...2016/10/11  · Export NFS sur le cloud...

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

�8IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette

Personnaliser une appliance

�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

�17IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette

Installation automatique de logiciel

�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

�35IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette

Export NFS sur le cloud

�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

�41IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette

Accéder à des ressources

�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

�44IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette

Mode Cluster

�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

�47IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette

Cluster Swarm

�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é.

�53IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette

Cluster RabbitMQ & SGE

�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

�62IBI-1-MeetU du 12-13 juin 2016, IFB-core, Gif-sur-Yvette

Annexes

�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

Machine Linux/MacOS

Connexion avec la commande ssh Utilisation à partir d’un terminal

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