Si vous souhaitez mettre en place un espace de stockage pour vos sauvegardes de machines virtuelles (sous Proxmox), il n’est pas obligatoire de passer par un Proxmox Backup Server ou de configurer une nouvelle machine pour y faire un serveur NFS par exemple.
(Proxmox Backup Server est d’ailleurs un très bon outils que je vous recommande si vous avez la possibilité d’en mettre un en place)
La solution choisie est d’utiliser un stockage S3 (ici chez Scaleway). Vous pouvez d’ailleurs utiliser cette méthode avec d’autres fournisseurs compatibles S3 et effectuer vos sauvegardes sur différentes plateformes #multicloud. Le logiciel S3fs va être utilisé ici comme client S3.
Création et configuration du Bucket
Rendez-vous dans la console Scaleway puis cliquer sur Object Storage dans la section Stockage. Cliquez ensuite sur Créer un bucket. Indiquez les éléments suivant (exemple) :
- Nom : pve-s3-scw
- Région : Paris
- Visibilité du bucket : privé
Vous obtenez ensuite votre bucket :
Il faut maintenant créer une clef API depuis le menu Identifiants (sous votre nom d’utilisateur). Cliquez sur Générer une nouvelle clé API puis indiqué un nom (pve-s3-scw) et validez.
Notez bien la clé d’accès et la clé secrète générées.
Configuration sur Proxmox VE
Les étapes suivantes sont à faire sur chacune des nodes de votre cluster Proxmox. Si vous n’avez qu’un seul serveur sans cluster, cela fonctionne de la même manière.
Installation S3fs
L’installation est classique et S3fs est disponible dans les paquets officiels de Debian :
# apt install s3fs
Configuration et montage du bucket
Pour pouvoir monter le bucket il faut créer un fichier (passwd-s3fs) dans lequel placer les identifients API (en remplaçant ACCESS_KEY_ID et SECRET_ACCESS_KEY par vos clés ) et lui donner des droits restreints :
echo ACCESS_KEY_ID:SECRET_ACCESS_KEY > /etc/passwd-s3fs
chmod 600 /etc/passwd-s3fs
Il faut ensuite créer le point de montage sur le serveur :
mkdir /mnt/pve-s3-scw
Le montage se fait via la commande s3fs suivi de différentes options pour spécifier le serveur Scaleway et le fichier d’identifiants (rajoutez les options -o dbglevel=info -f -o curldbg si vous rencontrez des problèmes).
s3fs pve-s3-scw /mnt/pve-s3-scw -o passwd_file=/etc/passwd-s3fs -o url=https://s3.fr-par.scw.cloud/
On peut vérifier la présence du point de montage de type s3fs avec la commande pydf
Filesystem Size Used Avail Use% Mounted on
rpool/ROOT/pve-1 321G 169G 152G 52.6 [####....] /
/dev/fuse 30M 60k 30M 0.2 [........] /etc/pve
s3fs 256T 0 256T 0.0 [........] /mnt/pve-s3-scw
rpool 152G 128k 152G 0.0 [........] /rpool
rpool/ROOT 152G 128k 152G 0.0 [........] /rpool/ROOT
rpool/data 152G 128k 152G 0.0 [........] /rpool/data
Configuration du stockage Proxmox
Une fois que toutes les nodes ont le point de montage configuré de la même manière, il faut se rendre dans la GUI de Poxmox pour configurer le nouveau stockage. Il faut aller dans la partie Datacenter, puis Storage, cliquer sur Add et choisir Directory.
Indiquez un nom (S3-scw), spécifiez le point de montage (/mnt/pve-s3-scw) précédemment créé dans le champs Directory, choisissez VZDump backup file dans la partie Content et cochez l’option Shared.
Vous avez maintenant un nouveau stockage disponible sur votre cluster.
Vous pouvez y placer vos Sauvegardes en configurant un Backup Job comme ceci :
Conclusion
Voici une solution qui vous permet de mettre en place des sauvegardes externalisées de façon simple et rapide. Cette solution de stockage S3 n’est pour l’instant pas compatible avec Proxmox Backup Server (problème d’exclusivité sur les points de montage).
Comme expliqué dans l’introduction, il est possible de monter d’autres stockages de type S3 chez d’autres fournisseurs afin d’avoir des sauvegardes dans différents lieux et pouvoir les restaurer en toute circonstance.
Un exemple de sauvegarde pour une machine virtuelle avec un disque virtuel de 32 Go (6.46 Go le fichier de sauvegarde) en mode stop en 17 minutes :
Voici la vue côté console Scaleway de vos différentes sauvegardes :
La suite ici :
Pas mal, j’ai testé ça marche impecable merci !
Question cependant : savez-vous comment stocker directement dans glacier plustôt qu’en standard (pour baisser les coûts) ?
Je voit comment le faire à la main mais en auto avec s3fs ?
Merci !
Et bien voici la réponse en un article 🙂
https://blog.waccabac.com/sauvegarde-proxmox-sur-stockage-s3-scaleway-glacier/
Bonjour, merci pour votre tutoriel
Quelle méthode serait la plus viable pour cette fois-ci stocker les backups sur un bucket minio qui serait hosté en local?
Bonjour et merci 🙂
Je n’ai jamais testé MinIO mais en théorie cela devrait également fonctionner.
Extra votre tutoriel, merci !
J’utilise la passerelle S3 pour stocker sur Storj, mais l’opération de renommage du fichier de sauvegarde échoue tout à la fin de l’opération. Je suppose que c’est lié à l’implémentation de S3 pour Storj.
Quelqu’un aurait-il le même souci et trouvé une solution ? (j’ai essayé de connecter via S3FS avec d’autres options (telles que norenameapi), mais sans succès
Merci !
Hello,
Super ton article, j’étais super content hier en pouvant backup mes VM dessus 🙂
Aujourd’hui j’ai voulu faire ça « plus propre » donc j’ai tout supprimé et refait (juste avec des noms différents) et ça ne fonctionne plus 😀
J’ai testé avec les mêmes noms qu’hier et pareil.
La partition est bien mount : #pydf
s3fs 16Z 0 16Z 0.0 [……………………] /mnt/scaleway-bucket
Mais je ne peux plus écrire dedans : # touch test
touch: failed to close ‘test’: Input/output error
Si je trouve la solution, je reviendrais ici ajouter une solution à mon problème 🙂
Comme promis je reviens ici donner ma solution 🙂
il faut entré un argument supplémentaire pour préciser le endpoint : -o endpoint=fr-par
Cela donne :
s3fs pve-s3-scw /mnt/pve-s3-scw -o passwd_file=/etc/passwd-s3fs -o url=https://s3.fr-par.scw.cloud/ -o endpoint=fr-par
Merci beaucoup pour ces retours !