meta données pour cette page
Apprendre à utiliser OrangeFS
Il est un système de fichiers open source et, est la prochaine génération de Parallel Virtual File System (PVFS). Sa force réside sur le principe d'un système de fichiers parallèle. Cela signifie que les données sont distribuées sur plusieurs serveurs dont les accès sont simultanés même lorsqu'il y a plusieurs applications qui demandent ces accès. OrangeFS a été conçu pour être utilisé à grande échelle. Aujourd'hui, il est employé dans les grandes entreprises, universités, laboratoires nationaux, etc.
Ce projet existe depuis 2011.
Voici l'infrastructure que nous allons mettre en place :
A la suite de ce tutoriel, nous allons configurer un manager qui aura pour rôle de surveiller et contrôler les nœuds. Mais en contre partie il ne contiendra pas de données utilisateurs. Ce sont les noeuds qui les auront sur une partition dédié d'un disque. Nous reviendrons sur sa création plus bas.
Pour se simplifier la tâche dans ce tutoriel, on n'utilise pas d'IP fixe mais leurs hostname. Pour que les machines puissent se connaître automatiquement, nous allons utiliser le paquet suivant :
apt-get install libnss-mdns
Toutes les commandes seront à exécuter en tant que root
Initialisation du cluster
Tout d'abord on a besoin des dépendances suivantes qui vont nous permettre de compiler les logiciels :
apt-get install gcc flex bison libssl-dev libdb-dev linux-source perl make linux-headers-3.16.0-4-amd64 zip openssl automake autoconf patch g++ libattr1-dev -y
Téléchargeons les sources :
wget https://s3.amazonaws.com/download.orangefs.org/current/source/orangefs-2.9.6.tar.gz tar -xzf orangefs-2.9.6.tar.gz
Rendons nous dans le dossier du projet et vérifions qu'il ne manque pas de dépendances :
cd orangefs-2.9.6/ ./configure --prefix=/opt/orangefs
Ci-dessus, l'option –prefix permet de définir la localisation des fichiers binaire une fois la compilation terminée :
make make install
On créer les dossiers qui contiendrons le fichier de journalisation et les données clientes :
mkdir -vp /opt/orangefs/log /opt/orangefs/storage/data /opt/orangefs/storage/meta
Configuration du cluster
Définissons maintenant les protocoles, ports ainsi que les noeuds qui seront utilisé :
/opt/orangefs/bin/pvfs2-genconfig /opt/orangefs/etc/orangefs-server.conf
**************************************************************************** Welcome to the OrangeFS Configuration Generator: This interactive script will generate a configuration file suitable for use with a new OrangeFS (aka PVFS2) file system. Please see the OrangeFS documentation at http://www.orangefs.org/documentation for details. **************************************************************************** You must first select the network protocol that your file system will use. The currently supported options are "tcp", "gm", "mx", "ib", and "portals". (For multi-homed configurations, use e.g. "ib,tcp".) * Enter protocol type [Default is tcp]: Choose a TCP/IP port for the servers to listen on. Note that this script assumes that all servers will use the same port number. * Enter port number [Default is 3334]: Choose a directory for each server to store data in. * Enter directory name: [Default is /opt/orangefs/storage/data]: Choose a directory for each server to store metadata in. * Enter directory name: [Default is /opt/orangefs/storage/meta]: Choose a file for each server to write log messages to. * Enter log file location [Default is /var/log/orangefs-server.log]: /opt/orangefs/log/orangefs-server.log Next you must list the hostnames of the I/O servers. Acceptable syntax is "node1, node2, ..." or "node{#-#,#,#}". * Enter hostnames [Default is localhost]: orangefs2, orangefs3, orangefs4 Use same servers for metadata? (recommended) * Enter yes or no [Default is yes]: Configured a total of 3 servers: 3 of them are I/O servers. 3 of them are Metadata servers. * Would you like to verify server list (y/n) [Default is n]? Writing fs config file... done
On partage les logiciels avec les nœuds déclaré ci-dessus :
scp -r /opt/orangefs orangefs[2-4]:/opt/
Déployer des nœuds
Précédemment on a déclaré ces nœuds et on leur a donné les logiciels qu'il faut pour qu'ils puissent communiquer avec tout le cluster.
Ainsi sur chacun d'eux, on créer d'abord une partition d'un disque disponible qui contiendra les données clientes :
cfdisk /dev/sdb mkfs.ext4 /dev/sdb1 mount /dev/sdb1 /opt/orangefs/storage/data/
Ainsi ces étapes correspondent :
- Création de la partition sdb1
- Formatage de la partition en ext4
- Montage de la partition dans le dossier /opt/orangefs/storage/data
On fait prendre conscience de la configuration :
/opt/orangefs/sbin/pvfs2-server -f /opt/orangefs/etc/orangefs-server.conf
Puis on lance le programme qui est responsable de la communication à travers le cluster :
/opt/orangefs/sbin/pvfs2-server /opt/orangefs/etc/orangefs-server.conf
Monter la partition
Il faut d'abord que notre système supporte PVFS2 d'OrangeFS! Je vous conseil donc de suivre le tutoriel sur la compilation d'un noyau.
Attaquons enfin la dernière partie qui consiste à monter le système de fichier pvfs2 sur une machine cliente. En tant qu'utilisateur root, on récupère les fichiers binaires du serveur maître du cluster :
scp -r root@orangefs1:/opt/orangefs /opt/
Comme sur les nœuds, on lance le logiciel client :
/opt/orangefs/sbin/pvfs2-client -p /opt/orangefs/sbin/pvfs2-client-core
Puis On créer l'emplacement du futur point de montage :
mkdir /mnt/orangefs
On rechercher un serveur disponible :
grep "Alias " /opt/orangefs/etc/orangefs-server.conf | awk '{ print $3 }' | head -n 1
On obtient :
tcp://orangefs2:3334
On indique que l'on va utiliser le système de fichier pvfs2 :
echo "tcp://orangefs2:3334/orangefs /mnt/orangefs pvfs2 defaults,noauto 0 0" >> /etc/fstab
Finalement, on monte le système de fichier :
mount -t pvfs2 tcp://orangefs2:3334/orangefs /mnt/orangefs/
On peut ainsi voir que le point de montage est bien effectif :
df -h |grep orangefs
tcp://orangefs2:3334/orangefs 56G 132M 56G 1% /mnt/orangefs