Hubic : Point de Montage sur Serveur Debian
Il n’est plus difficile aujourd’hui de trouver des espaces de stockage dans le cloud gratuits (dans une certaine limite). Un intérêt détourné est de pouvoir s’en servir comme d’un espace de backup/stockage (mais pas que) pour son pour son serveur dédié. En effet, bien souvent les serveurs low-cost viennent sans rien en dehors des disques dur locaux et en cas de perte ou corruption des disques, c’est le drame. Cet article va donc présenter comment monter sur un serveur debian un espace de stockage Hubic à l’aide de Hubicfuse. Hubic, c’est 25 Go gratuits, autant en profiter.
Article modifié le 2 oct. 2015 pour prendre en compte les dernières modifications d’authentification d’Hubic (refresh_token)
Pré-Requis à l’Installation
Bien entendu, le pré-requis essentiel est la création d’un compte sur Hubic. Ensuite, plus classiquement, il faut charger les librairies nécessaires à la compilation :
1 | root@server:# apt-get install build-essential libcurl4-openssl-dev libxml2-dev libssl-dev libfuse-dev libjson0-dev pkg-config libmagic-dev |
Et charger la dernière version d’HubicFuse disponible sur le github, ici la 1.0.1.
1 2 3 4 | root@server:~# wget https://github.com/TurboGit/hubicfuse/archive/master.zip --2014-07-16 20:21:52-- https://github.com/TurboGit/hubicfuse/archive/master.zip Resolving github.com (github.com)... 192.30.252.130 Connecting to github.com (github.com)|192.30.252.130|:443... connected. |
Compilation de Hubic Fuse
Là c’est assez simple.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | root@server:~# unzip master.zip Archive: master.zip 619179a8eee439395a442892c7e64ac6f007171f creating: hubicfuse-master/ inflating: hubicfuse-master/.gitignore inflating: hubicfuse-master/LICENSE inflating: hubicfuse-master/Makefile.in inflating: hubicfuse-master/README inflating: hubicfuse-master/cloudfsapi.c inflating: hubicfuse-master/cloudfsapi.h inflating: hubicfuse-master/cloudfuse.c inflating: hubicfuse-master/config.h.in inflating: hubicfuse-master/configure inflating: hubicfuse-master/configure.ac inflating: hubicfuse-master/install-sh root@server:~# cd ./hubicfuse-master/ root@server:~/hubicfuse-master# ./configure [...] root@server:~/hubicfuse-master# make gcc -g -O2 -I/usr/include/libxml2 -D_FILE_OFFSET_BITS=64 -I/usr/include/fuse -I/usr/include/json -o hubicfuse cloudfsapi.c cloudfuse.c -lxml2 -lcurl -lfuse -lssl -lcrypto -ljson root@server:~/hubicfuse-master# make install /usr/bin/install -c hubicfuse /usr/local/bin/hubicfuse |
Voilà, HubicFuse est maintenant installé sur son serveur Debian.
Configurer HubicFuse avec son compte Hubic
Il faut d’abord définir sur son compte Hubic une application :
A noter que le domaine de redirection n’a pas vraiment d’importance. On crée dans son « $HOME » un fichier .hubicfuse contenant les paramètres correspondants :
1 2 3 4 5 6 | root@server:~# cat /root/.hubicfuse # Here is what your app needs to connect to hubiC: client_id=api_hubic_xxxxxxxxxxxxxxxxxxxxxxxxxxxx client_secret=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx refresh_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx root@server:~# chmod 600 ./.hubicfuse |
Pour obtenir le refresh_token, on peut utiliser le script hubic_token fourni :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | root@server:~/hubicfuse-master# ./hubic_token client_id (the app's id): api_hubic_xxxxxxxxxxxxxxxxxxxxxxxxxxxx client_secret (the app's secret): xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx redirect_uri (declared at app's creation): https://phil.writesthisblog.com/ For the scope -what you authorize your app to do-, enter characters as suggested in parenthesis, or just hit return if you don't need the item authorized. Get account usage (r): r Get all published links in one call (r): r Get OpenStack credentials, eg. access to your files (r): r Send activation email (w): w Add new/Get/Delete published link (wrd): wrd user_login (the e-mail you used to subscribe): xxxxxxxxxx@xxxxxxx.xx user_pwd (your hubiC's main password): Success! # Here is what your app needs to connect to hubiC: client_id=api_hubic_xxxxxxxxxxxxxxxxxxxxxxxxxxxx client_secret=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx refresh_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
Il ne reste plus qu’à rapidement monter son espace Hubic pour tester :
1 2 | root@server:~/hubicfuse-master# mkdir /mnt/hubic root@server:~/hubicfuse-master# hubicfuse /mnt/hubic -o noauto_cache,sync_read,allow_other |
Si tout s’est bien passé, l’espace devrait normalement être disponible.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | root@server:~/hubicfuse-master# df -h Filesystem Size Used Avail Use% Mounted on /dev/simfs 10G 1.3G 8.8G 13% / tmpfs 103M 68K 103M 1% /run tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 231M 0 231M 0% /run/shm hubicfuse 8.0T 0 8.0T 0% /mnt/hubic root@server:~/hubicfuse-master# ls /mnt/hubic/default/ -alh total 0 drwxr-xr-x 2 root root 0 Jul 16 21:14 . drwxr-xr-x 2 root root 0 Jan 1 1970 .. drwxr-xr-x 2 root root 0 Jul 8 18:41 Documents drwxr-xr-x 2 root root 0 Jul 8 17:41 Images drwxr-xr-x 2 root root 0 Jul 8 17:41 Videos |
Montage Automatique du compte Hubic
Pour pouvoir monter automatiquement avec le fstab, il faut d’abord avoir installé fuse-utils :
1 2 3 4 5 6 7 8 9 | root@server:~# apt-get install fuse-utils Reading package lists... Done Building dependency tree Reading state information... Done The following extra packages will be installed: fuse The following NEW packages will be installed: fuse fuse-utils [...] |
On peut maintenant rajouter la ligne suivante à son /ets/fstab et tester avec umount/mount :
1 2 3 4 | root@server:~# cat /etc/fstab | grep hubic hubicfuse /mnt/hubic fuse noauto_cache,sync_read,allow_other 0 0 root@server:~# umount /mnt/hubic root@server:~# mount /mnt/hubic |
Quelques Tests de Débits et Conclusion
En se servant de la commande dd, on peut se faire une idée rapide du débit de son point de montage. Ici, le dd va prendre en mémoire un nombre count de blocs de taille bs et copier vers le compte Hubic et réciproquement.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | root@server:~# dd if=/dev/zero of=/mnt/hubic/default/Documents/test bs=512k count=200 200+0 records in 200+0 records out 104857600 bytes (105 MB) copied, 14.408 s, 7.3 MB/s root@server:~# dd if=/dev/zero of=/mnt/hubic/default/Documents/test bs=100M count=1 1+0 records in 1+0 records out 104857600 bytes (105 MB) copied, 8.61703 s, 12.2 MB/s root@server:~# dd if=/mnt/hubic/default/Documents/test of=/root/test bs=512k count=200 bs=512k count=200 200+0 records in 200+0 records out 104857600 bytes (105 MB) copied, 4.15439 s, 25.2 MB/s |
A comparer avec le débit du disque local du VPS.
1 2 3 4 5 6 7 8 9 | root@server:~/hubicfuse-master# dd if=/dev/zero of=/root/test bs=512k count=200 200+0 records in 200+0 records out 104857600 bytes (105 MB) copied, 0.162768 s, 644 MB/s root@server:~# dd of=/dev/null if=/root/test bs=512k count=200 200+0 records in 200+0 records out 104857600 bytes (105 MB) copied, 0.0398987 s, 2.6 GB/s |
Finalement, ce n’est pas trop mal, mais en vérité, après avoir utilisé Hubic sur plusieurs jours, j’ai aussi pu constater des débits de seulement 3 Mo/s. Clairement, on ne peut donc pas considérer Hubic comme une simple extension de son disque. N’importe quel disque sata récent atteint sans problème les 50 Mo/s. Mais c’est largement suffisant pour s’en servir comme d’un espace de back-up à l’aide de scripts dans la crontab etc. On pourra aussi s’en servir comme d’un espace pour son client transmission. Par contre, y mettre sa base de données sera une mauvaise idée.
Dans tous les cas, Hubic c’est 25 Go de stockage gratuit et pour 1 € par mois 100 Go. Sans vouloir faire de publicité, je n’ai pas d’actions OVH, c’est une solution (mais il y en a d’autre) tout à fait adaptée pour réaliser les sauvegardes de ses serveurs à moindre frais. Il n’y a donc plus d’excuse, comme on le voit encore trop souvent sur les forums, pour se retrouver un jour avec toutes les données critiques de ses serveurs perdues !
/root/hubicfuse-master/hubic_token
pour l'obtenir. Et mettre le 'client_id', 'client_secret' et 'refresh_token' dans le fichier /root/.hubicfuse et non plus /root/.cloudfuse !!Je vais mettre à jour le tuto !Merci pour la remarque :-)