s3fs |
Système de fichiers S3 |
---|---|
Linux | Externe |
Syntaxe
s3fs [-C [-h] | [-cdrf bucket] [-p access_key] [-s secret_access_key] ] | [ -o options mountpoint] |
Paramètres
Nom | Description |
---|---|
Mode commande | |
-C | Ce paramètre permet d'entrer en mode de commande. Ce doit être la première option de la ligne de commande lorsque vous utilisez s3fs en mode commande. |
-h | Ce paramètre permet d'afficher les informations d'utilisation en mode commande. |
-c bucket | Ce paramètre permet de créer un compartiment S3. |
-d bucket | Ce paramètre permet de supprimez le compartiment S3 spécifié et toutes les données qu'il contient. Utilisez-le avec prudence ! |
-r bucket | Ce paramètre permet de réparer de manière interactive un système de fichiers S3 défectueux (pas encore intégré). |
-f bucket | Ce paramètre permet de formater un compartiment S3 pour le rendre approprié pour le montage. |
-k bucket | Ce paramètre permet de faire basculer le verrou sur un compartiment. Les compartiments doivent être déverrouillés pour les formater ou les supprimer. |
-p access_key | Ce paramètre permet de fournir la clef d'accès AWS si elle n'est pas définie dans votre environnement. |
-s secret_access_key | Ce paramètre permet de fournir la clef d'accès secrète AWS si elle n'est pas définie dans votre environnement. |
-o options | Ce paramètre permet d'indiquer les options de montage lorsque s3fs fonctionne en mode de montage. |
Mode montage | |
bucket=bucket | Ce paramètre permet d'indiquer le nom du compartiment Amazon S3 que vous souhaitez monter (par défaut : aucun). |
preserve_cache=[no|yes] | Ce paramètre permet d'indiquer l'état du cache. Si la valeur est yes, le cache pour le montage spécifié ne sera pas supprimé lors du démontage, ce qui évitera la nécessité de téléchargements lors d'un remontage ultérieur (par défaut: no). |
cachedir=directory | Ce paramètre permet de fixer le répertoire de base où les fichiers s3fs mis en cache seront entreposés. Par défaut : «$HOME/.fuse-s3fs-cache/». |
host=host_name | Ce paramètre permet de remplacer le nom d'hôte par défaut d'Amazon S3. Par défaut : «s3.aws.amazon.com». |
lazy_fsdata=[no|yes] | Ce paramètre permet de fixer la méthode d'écriture du démontage. Si la valeur est yes, les métadonnées du système de fichiers ne seront réécrites sur S3 que lors du démontage. Par défaut : «yes». |
writeback_time=seconds | Ce paramètre permet d'indiquer le nombre de secondes d'hystérésis à suspendre lorsqu'on envisage de téléverser un fichier sur S3. Si, après la pause, s3fs détecte que d'autres processus ont ouvert un fichier, le téléversement est reporté. La valeur par défaut est 10. |
AWS_ACCESS_KEY_ID=key | Ce paramètre permet de fixer le AWS_ACCESS_KEY_ID pour votre compte AWS si vous ne souhaitez pas le placer dans votre environnement. Par défaut : «none». |
AWS_SECRET_ACCESS_KEY=key | Ce paramètre permet de fixer le AWS_SECRET_ACCESS_KEY pour votre compte AWS si vous ne souhaitez pas le placer dans votre environnement. Si vous ajoutez un montage au fichier «/etc/fstab», il est déconseillé d'utiliser ce paramètre. Cela permettra de publier votre clef secrète et d'autoriser les autres utilisateurs à utiliser votre compte. Par défaut : «none». |
Description
Cette commande permet d'effectuer la gestion d'un système de fichiers S3 d'AWS d'Amazon (S3 FUSE). La commande s3fs est une application de système de fichiers FUSE soutenue par le service d'entreposage simple de services Web d'Amazon (soit S3, http://aws.amazon.com). La commande s3fs peut fonctionner en mode commande ou en mode montage (mount). En mode montage, s3fs monte un compartiment Amazon S3 (ayant été correctement formaté) en tant que système de fichiers local. En mode commande, s3fs est capable de manipuler les compartiments d'Amazon S3 de différentes manières utiles.
Remarques
- Les variables d'environnement ou les paramètres AWS_ACCESS_KEY_ID et AWS_SECRET_ACCESS_KEY doivent être définis et exportés par l'utilisateur effectuant un montage avec s3fs pour pouvoir utiliser s3fs avec succès.
- Le fichier «/etc/fstab» contient les entrée qu'utilisera la commande s3fs.
- Capacité multi-utilisateur : Bien qu'il soit possible de partager des compartiments S3 entre plusieurs utilisateurs, le modèle de cohérence des données actuel du service Amazon S3 empêche l'utilisation en toute sécurité de plusieurs montages de plusieurs utilisateurs. Bien que s3fs autorise actuellement plusieurs montages, une telle activité peut entraîner une corruption des données. Une prochaine version contiendra un mécanisme de verrouillage pour se protéger en toute sécurité contre plusieurs montages en lecture-écriture. Plusieurs montages en lecture seule après un seul montage en lecture-écriture sont sécurisés, mais ne reflètent pas les modifications apportées par le montage en écriture à l'une des méta-données du fichier ou du système de fichiers, ceci limitant l'utilité.
- Disposition du système de fichiers et limitations : Le système de fichiers s3fs est conçu pour être très, très simple. S3 maintient un système d'entreposage à plat, cela signifie qu'aucune hiérarchie de répertoires n'est autorisée sur l'entreposage du support. Les informations de répertoire sont entreposées dans les méta-données du système de fichiers étant extraites lors du montage à partir d'un fichier appelé fsdata. Ce fichier est une classe du langage de programmation Python ayant été traitée et conservant l'ensemble de la hiérarchie des répertoires. Les fichiers sont entreposés avec leurs noms de chemin d'accès complets dans le système de fichiers, ceci facilitant la récupération de fichiers via toute interface Web vers S3, au cas où les méta-données seraient corrompues. Notez que les méta-données (entreposées sur S3 dans un fichier appelé fsdata) ont une présentation définie par la définition de la classe Python dans l'exécutable s3fs. Pour comprendre ou visualiser la mise en page de ces données, il faut lire le code Python. Plus précisément, la classe S3DriveMetaData doit être étudiée, car c'est la classe de base étant analysée. Étant donné que les fichiers sont entreposés en tant qu'objets individuels sur S3, en plus du fait qu'il existe une limite de 5 Go pour chaque objet dans S3, s3fs a actuellement une limite naturelle de 5 Go par fichier.
- Compatibilité avec d'autres mécanismes d'accès S3 : Amazon S3 est simplement panneau d'administration d'entreposage. La commande s3fs est simplement une API d'entreposage exportant cet entreposage sous la forme d'un système de fichiers local. Notez qu'il existe de nombreux autres mécanismes pour utiliser S3, certains systèmes de fichiers étant orientés, comme s3fs, ainsi que d'autres méthodes. Il est important de noter que cette application crée une structure de système de fichiers unique sur le compartiment d'entreposage S3 ciblé. En tant que tel, il est incompatible avec les autres intégrations de compartiment S3. Il ne faut pas utiliser d'autres clients s3fs (dont plusieurs sont disponibles) pour monter des compartiments créés avec cet utilitaire. Cela est vrai pour toutes les intégrations de systèmes de fichiers S3, car chacune a une structure de système de fichiers unique. Cela dit, la structure de cette structure de système de fichiers S3 la rend compatible avec le mécanisme d'accès S3 basé sur le Web. À l'aide d'un navigateur Web, il est possible de récupérer des fichiers individuels à partir d'un compartiment ayant été formaté pour être utilisé comme système de fichiers s3fs.
- Apache : Si vous utilisez un compartiment (Bucket) de S3 pour un serveur Web de production comme Apache par exemple, vous devez prend en compte que vous risquez d'atteindre très vite la limite d'un trop grand nombre de fichiers (Too many open files), vous devriez donc multiplier par 10 la valeur de la commande ulimit pour vous assurez de ne dépasser la limite et de faire tomber le montage d'une volume S3. Dans les situations extrêmes, vous devriez probablement abandonner l'option S3 pour carrément monter un NFS entreposé dans EC2.
- AWS S3 : Le S3 d'Amazon fournit une API pour créer et gérer des compartiments. Vous pouvez créer un maximum de 100 compartiments à partir de votre console AWS. Lorsque vous créez un compartiment, vous devez fournir un nom et une région AWS dans laquelle vous souhaitez créer le compartiment. Dans chaque compartiment, vous pouvez entreposer un nombre illimité d'objets. Vous pouvez utiliser les informations d'identification racine de votre compte AWS pour créer un compartiment, mais cela n'est pas recommandé. Au lieu de cela, créez simplement un utilisateur IAM et ajoutez une autorisation complète à cet utilisateur sur le compartiment S3. Vous pouvez accéder à votre compartiment S3 à partir de votre console Amazon S3.
- Alternative : Si vous souhaitez combiner des Amazon S3 et Google Cloud, vous devriez plutôt envisager la solution commerciale ObjectiveFS. Si vous n'êtes pas satisfait de s3fs (S3FS-FUSE), vous pouvez également utilisé RioFS.
Variables d'environnement
Commande | Description |
---|---|
AWS_ACCESS_KEY_ID | Cette variable d'environnement permet d'indiquer la clef publique de votre service Web Amazon. Il doit être configuré pour que s3fs puisse vous identifier sur Amazon. |
AWS_SECRET_ACCESS_KEY | Cette variable d'environnement permet d'indiquer la clef privée de votre service Web Amazon. Il doit être configuré pour que s3fs puisse vous identifier sur Amazon. |
Installation
On peut installer la commande s3fs sur la distribution Ubuntu 16.04 à l'aide de la commande suivante :
sudo apt-get install s3fs |
Sur de nombreuses distributions Linux, il est nécessaire de compiler la commande s3fs de la façon suivante :
yum install -y gcc libstdc++-devel gcc-c++ fuse fuse-devel curl-devel libxml2-devel mailcap automake openssl-devel git git clone https://github.com/s3fs-fuse/s3fs-fuse.git cd s3fs-fuse ./autogen.sh ./configure make make install |
On peut installer la commande s3fs sur Mac OS X à l'aide de la commande suivante :
brew install s3fs |
Exemples
L'exemple suivant permet de monter un compartiment nommé moncompartiment à partir du dossier /chemin/a/monter avec les informations de connexion situé dans le fichier «/etc/passwd-s3fs» :
s3fs moncompartiment /chemin/a/monter -o passwd_file=/etc/passwd-s3fs |
L'exemple suivant permet de monter automatique le s3fs lors du démarrage de Linux en ajouter la ligne suivante dans le fichier /etc/fstab en utilisant un clef dans le fichier /etc/fichierdeclef et en utilisant l'utilisateur Apache (s'il vaut 048 dans le fichier /etc/group) :
s3fs#moncompartiment:/dossiers3 /chemin/a/monter fuse rw,allow_other,passwd_file=/etc/fichierdeclef,uid=48,gid=48,umask=0000 0 0 |