La lecture de cet article vous permettra de profiter de l'espace de stockage d'un compte Hubic sur Debian 7 (tutoriel facilement adaptable à toute autre distribution linux).
L'accès aux fichiers s'effectuera comme s'il s'agissait d'un disque dur local ou une clef usb montée. On va pour cela devoir utiliser un programme opensource appelé hubicfuse basé, comme son nom le laisse comprendre, sur le logiciel fuse.
Limites de la solution proposée
Comme l'annonce le README du projet, certaines limitations s'appliquent à l'utilisation du système de fichier obtenu par l'installation et la configuration de hubicfuse. Celles-ci risquent peu d'évoluer car induites par l'infrastructure du service Hubic et les technologies employées en son sein. Ainsi, en ce 30/10/2015, il faut savoir les choses suivantes :
Le renommage de dossiers n'est pas fonctionnel.
Lorsque l'on lit et écrit des fichiers, un fichier local temporaire sert de tampon.
Une structure des dossiers est gardée en mémoire, ce qui peut être problématique dans le cas d'un système de fichier très étendu. De plus, les fichiers ajoutés par d'autres applications (par exemple l'application de synchronisation windows proposée par Hubic) n'apparaîtront sur le linux tant que le cache ne sera pas expiré.
La racine de l'espace de stockage Hubic ne peut contenir que des dossiers, car ceux-ci sont mappés à des conteneurs dans l'infrastructure du fournisseur de service.
Moins intéressant, les dossiers sont créés comme fichiers vides avec le type de contenu "application/directory".
L'infrastructure de Hubic limite le nombre de dossiers et fichiers par dossiers à 10000.
Dernier point et non des moindres, il ne faut pas s'attendre à obtenir des performances similaires à l'utilisation d'un disque local, n'oublions pas que les données passeront par le réseau et traverseront des kilomètres dans des cables ethernet !
Mise en place de la solution
Paramétrage du compte Hubic
Créez un compte gratuit sur Hubic (vous pourrez toujours payer pour plus de stockage par la suite si vous êtes satisfaits).
Naviguez vers "MON COMPTE" comme sur la capture d'écran ci-dessous.
Sélectionnez maintenant l'onglet "Développeurs" pour ensuite cliquer "Ajouter une application".
Une popup apparaît. Renseignez le champ "Nom" comme bon vous semble, il n'aura aucun impact sur le bon suivit de ce tutoriel.
Veillez par contre à bien entrer "http://localhost/" dans le champ "Domaine de redirection". Validez.
L'application est désormais créée et nous souhaitons connaître les informations de connexion la concernant. Cliquez donc sur le bouton "Détails".
Apparaîssent des informations très importantes pour la suite qu'il vous faut garder à l'oeil ou noter. Ce sont le "Client ID" et le "Client Secret".
Installation de hubicfuse
On installe les dépendances
sudo apt-get install gcc make curl libfuse-dev pkg-config libcurl4-openssl-dev libxml2-dev libssl-dev libjson-c-dev libmagic-dev
On se déplace à un endroit propice à l'installation de programmes issus de source autre qu'un dépot de paquets
cd /opt/
On récupère les sources du projet hubicfuse
sudo git clone https://github.com/TurboGit/hubicfuse.git
On compile et installe le programme
cd hubicfuse/
sudo ./configure
sudo make
sudo make install
On lance la configuration
sudo ./hubic_token
Remplir les champs demandés avec les données obtenues en cliquant sur Détails sur notre "application" dans l'espace personnel de notre compte Hubic créé plus tôt
Copier les trois dernière lignes :
client_id=api_hubic_[Hash]
client_secret=[OtherHash]
refresh_token=[ThirdHash]
sudo nano .hubicfuse
Coller les trois lignes
Sauvegarder CTRL+X puis O ou Y suivant la langue de votre installation
On empêche tout utilisateur autre que root de pénetrer dans le dossier et interagir avec les fichiers de hubicfuse
sudo chmod -R g-rwx,o-rwx ./
On créer le dossier qui va servir de point de montage
sudo mkdir /mnt/hubic/
On créer un lien symbolique vers le fichier contenant les identifiants car hubicfuse va chercher tout seul dans /root/.hubicfuse et ce n'est pas configurable
sudo ln -s /opt/hubicfuse/.hubicfuse /root/.hubicfuse
On monte définitivement en inscrivant l'instruction dans /etc/fstab
sudo nano /etc/fstab
Ligne à ajouter a la fin du fichier :
hubicfuse /mnt/hubic fuse user,auto 0 0
On quitte et sauvegarde
On monte le disque
sudo mount /mnt/hubic/
Si besoin on démonte le disque ainsi :
sudo umount /mnt/hubic/
sudo dd if=/dev/zero of=/mnt/hubic/default/testfile bs=512k count=100
sudo dd if=/mnt/hubic/default/testfile of=/dev/null bs=512k count=100
J'obtiens pour ma part une moyenne de 412 kB/s pour la première commande et 174 MB/s pour la seconde. Vous ne devez pas vous attendre à obtenir des résultats similaires, beaucoup de facteurs rentrant en compte. Néanmoins le ratio entre la vitesse de download et d'upload à de grandes chances d'être similaire.
Le système de stockage obtenu ne peut de par les performances qu'il offre permettre une utilisation intensive. L'installation d'une base de donnée sur celui-ci est donc inenvisageable. De même que la plupart des utilisations classiques d'un disque local.
Il est néanmoins parfaitement possible que le réseau reliant votre serveur et les serveurs de stockage Hubic soient suffisamment performant pour vous permettre d'utiliser cet espace disque pour, par exemple, stocker vos images disques de distributions linux récupérées en P2P. Ce cas de figure est particulièrement viable si le serveur que vous administrez se trouve sur le réseau OVH (offres classiques ou leurs offres lowcost avec Kimsufi) car Hubic est un service d'OVH et donc hébergé dans leurs datacenters.
L'utilisation de cet espace disque à des fins de sauvegarde semble en tous cas l'option par défaut la plus indiquée.