Plakar - Pack d'intégration MinIO
Pack d'intégration MinIO
Cette documentation suppose que Plakar v1.0.2 est installé.
Si vous utilisez une version plus récente, les commandes diffèrent légèrement, car certaines commandes de configuration ont été modifiées dans la version 1.0.3 . Consultez le journal des modifications de la version 1.0.3 pour adapter les commandes en conséquence.
Table des matières
Configurer les autorisations IAM dans MinIO
Utilisez votre boutique Kloset hébergée sur MinIO
Restaurer un instantané dans un bucket MinIO
Plakar syntaxe riche vs syntaxe simple
Stocker la configuration MinIO
Cohérence et limites des instantanés
Introduction
L'intégration MinIO intégrée de Plakar comprend trois connecteurs :
•Connecteur de stockage : pour héberger un magasin Kloset dans un bucket MinIO.
•Connecteur source : pour sauvegarder n’importe quel bucket MinIO dans un magasin Kloset existant.
•Connecteur de destination : pour restaurer depuis n'importe quel magasin Kloset dans un bucket MinIO.
Cas d'utilisation pour cette intégration
•Hébergez un magasin Kloset dans un bucket MinIO et utilisez-le pour sauvegarder votre système de fichiers local, vos serveurs distants, vos bases de données ou toute autre source de données prise en charge par Plakar.
•Sauvegardez un bucket MinIO dans n'importe quel magasin Kloset, par exemple hébergé sur le système de fichiers local, sur un serveur SFTP distant ou même dans un autre bucket MinIO.
•Restaurez un instantané d'un magasin Kloset dans un bucket MinIO .
Compatibilité
•Cette intégration est intégrée à Plakar et disponible dans toutes les versions. Aucune installation de package supplémentaire n'est requise.
•Toutes les versions de MinIO sont prises en charge.
Installation
Pour interagir avec MinIO, Plakar utilise l'API compatible S3 de MinIO qui est prise en charge nativement.
Aucun package ou plugin supplémentaire n'est requis.
Les s3connecteurs sont intégrés et sont toujours disponibles dans votre installation Plakar
$ plakar version
plakar/v1.0.2
importers: fs, ftp, s3, sftp # <-- `s3` is listed here
exporters: fs, ftp, s3, sftp # <-- And here
klosets: fs, http, https, ptar, s3, sftp, sqlite # <-- And here
Configurer les autorisations IAM dans MinIO
MinIO prend en charge un contrôle d'accès précis grâce à des politiques de type IAM. Vous pouvez attribuer des autorisations aux utilisateurs ou aux comptes de service de l'une des manières suivantes :
Option 1 : Utilisation de l'interface de ligne de commande mc (client MinIO)
C'est la méthode la plus courante et la plus scriptable. Vous pouvez :
•Créer des utilisateurs avecmc admin user add
•Définir les politiques au format JSON
•Attachez des politiques aux utilisateurs avecmc admin policy attach
Contenu de policy.json — N'oubliez pas de supprimer les commentaires, sinon le JSON sera invalide
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["s3:GetObject", "s3:ListBucket"],
// To allow restoring into the bucket, you need to add the PutObject action
// "Action": ["s3:GetObject", "s3:ListBucket", "s3:PutObject"],
// To allow using the bucket as a Kloset store, you also need to give permissions to create the bucket
// "Action": ["s3:GetObject", "s3:ListBucket", "s3:PutObject", "s3:CreateBucket"],
"Resource": ["arn:aws:s3:::plakar-kloset", "arn:aws:s3:::plakar-kloset/*"]
}
]
}
Créez l'utilisateur plakar_useravec le mot de passe mysecretpasswordet attribuez plakar-policy-lui la politique
mc alias set local http://localhost:9000 minioadmin minioadmin
mc admin user add local plakar_user mysecretpassword
mc admin policy create local plakar-policy policy.json
mc admin policy attach local --user plakar_user plakar-policy
Option 2 : Utilisation de la console MinIO (interface utilisateur Web)
Si vous avez activé la console d'administration, vous pouvez :
•Créer des utilisateurs via le panneau Identity>Users
•Attribuer des politiques prédéfinies ou personnalisées
•Examiner et gérer l'accès via l'interface utilisateur
La politique que vous devez attacher à l'utilisateur dépend de votre cas d'utilisation :
•Politique de lecture seule : si vous devez sauvegarder uniquement un bucket, utilisez une politique qui autorise s3:GetObjectet s3:ListBucketexécute des actions. Les autorisations d'écriture ne sont pas nécessaires.
•Politique de lecture-écriture : si vous devez restaurer un instantané dans un bucket ou héberger un magasin Kloset dans un bucket, utilisez une politique qui inclut également s3:PutObject.
Connecteur de stockage
Le connecteur de stockage vous permet d'héberger un magasin Kloset dans un bucket MinIO. Ceci est utile si vous souhaitez utiliser MinIO comme backend durable et compatible S3 pour stocker des snapshots Plakar.
Hébergez une boutique Kloset dans un bucket MinIO
Configuration
Utilisez les commandes plakar config repository create <name>et plakar config repository set <name> <option> <value>pour configurer un bucket MinIO en tant que magasin Kloset.
Configurer Plakar pour utiliser MinIO pour héberger une boutique Kloset
plakar config repository create minio_store
plakar config repository set minio_store location s3://localhost:9000/plakar-kloset
plakar config repository set minio_store access_key minioadmin
plakar config repository set minio_store secret_access_key minioadmin
#Only if your MinIO instance does not use TLS
plakar config repository set minio_store use_tls false
Options de configuration
Option |
Valeur |
location |
Emplacement du bucket au formats3://<hostname[:port]>/<bucket-name> |
access_key |
Clé d'accès pour l'instance MinIO |
secret_access_key |
Clé secrète pour l'instance MinIO |
use_tls |
S'il faut utiliser TLS pour la connexion (par défaut : true) |
storage_class |
La classe de stockage à utiliser pour les objets dans le bucket (par défaut : STANDARD) |
Une fois configuré, utilisez la syntaxe plakar at @minio_storepour faire référence à ce magasin dans les commandes.
Utilisez votre boutique Kloset hébergée sur MinIO
Une fois configuré, utilisez la boutique Kloset hébergée dans MinIO comme n'importe quelle autre boutique Kloset.
Utilisez la boutique Kloset hébergée dans MinIO comme n'importe quelle autre boutique Kloset
# Initialize a new Kloset store in the MinIO bucket
plakar at @minio_store create
# List all snapshots in the Kloset store
plakar at @minio_store ls
# Backup a local folder to the Kloset store
plakar at @minio_store backup /etc
# Backup any source connector to the Kloset store
plakar at @minio_store backup @myconnector
# Restore a file from a snapshot in the Kloset store
plakar at @minio_store restore <snapshot_id>:/etc/passwd
# Run the web UI to browse the Kloset store
plakar at @minio_store ui
Connecteur source
Le connecteur source vous permet de créer un instantané d'un bucket MinIO et de le stocker dans un magasin Kloset.
La boutique Kloset peut être hébergée dans n'importe lequel des backends pris en charge par Plakar (système de fichiers, SFTP, …), y compris MinIO lui-même.
Sauvegarder un bucket MinIO dans un magasin Kloset
Configuration
Utilisez les commandes plakar config remote create <name> et plakar config remote set <name> <option> <value> pour configurer un bucket MinIO comme source de sauvegardes.
Configurer le connecteur source pour sauvegarder un bucket MinIO
plakar config remote create minio_src
plakar config remote set minio_src location s3://localhost:9000/mybucket
plakar config remote set minio_src access_key minioadmin
plakar config remote set minio_src secret_access_key minioadmin
# Only if your MinIO instance does not use TLS
plakar config remote set minio_src use_tls false
Options de configuration
Les options de configuration du connecteur source sont similaires à celles du connecteur de stockage. Consultez la section Connecteur de stockage pour plus de détails.
Sauvegarder un bucket MinIO
Pour sauvegarder un bucket MinIO dans un magasin Kloset, utilisez plakar at <store> backup @minio_src.
Créez un magasin Kloset sur le système de fichiers et sauvegardez-y un bucket MinIO configuré
# Initialize a new Kloset store on the local filesystem
plakar at ./my-store create
# Run the backup, assuming @minio_src is configured
plakar at ./my-store backup @minio_src
# Or, reference any Kloset store configured
plakar at @mystore backup @minio_src
Connecteur de destination
Le connecteur de destination vous permet de restaurer un instantané d'un magasin Kloset dans un bucket MinIO.
L'emplacement du magasin Kloset n'a pas d'importance : il peut être hébergé sur le système de fichiers local, sur un serveur SFTP distant ou même dans un autre bucket MinIO.
Restaurer un instantané dans un bucket MinIO
Configuration
Utilisez les commandes plakar config remote create <name> et plakar config remote set <name> <option> <value> pour configurer un bucket MinIO comme destination pour les restaurations.
Configurer le connecteur de destination pour sauvegarder un bucket MinIO
plakar config remote create minio_src
plakar config remote set minio_src location s3://localhost:9000/mybucket
plakar config remote set minio_src access_key minioadmin
plakar config remote set minio_src secret_access_key minioadmin
# Only if your MinIO instance does not use TLS
plakar config remote set minio_src use_tls false
Options de configuration
Les options de configuration du connecteur de destination sont similaires à celles du connecteur de stockage. Consultez la section Connecteur de stockage pour plus de détails.
Restaurer un instantané dans un bucket MinIO
Pour restaurer un instantané d'un magasin Kloset dans un bucket MinIO, utilisez plakar at <store> restore -to @minio_dst <snapshot-id>.
Restaurer un instantané d'un magasin Kloset dans un bucket MinIO
plakar at ./my-store restore -to @minio_dst <snapshot-id>
# Or, reference any Kloset store configured
plakar at @mystore restore -to @minio_dst <snapshot-id>
Limitations et considérations
Plakar syntaxe riche vs syntaxe simple
Plakar prend en charge deux formats pour spécifier l'emplacement du magasin Kloset et le connecteur source ou de destination sur lequel opérer :
•La syntaxe riche avec plakar at @<store>référencement d'un connecteur de stockage, plakar backup @<source>référencement d'un connecteur source et plakar restore -to @<destination>référencement d'un connecteur de destination.
•La syntaxe simple avec plakar at <store>(eg. plakar at ./mystore), plakar backup <source>(eg. plakar backup ./mybucket) et plakar restore -to <destination>(eg. plakar restore -to ./mybucket).
La syntaxe riche est le seul moyen de faire référence au connecteur de stockage MinIO, au connecteur source ou au connecteur de destination.
La raison est que seule la syntaxe riche permet de fournir les options de configuration nécessaires (comme access_key, secret_access_key, et use_tls) pour se connecter à l'instance MinIO.
Stocker la configuration MinIO
Le connecteur source MinIO crée des instantanés d'un bucket en répertoriant tous ses objets et en téléchargeant leur contenu. Il ne stocke pas la configuration du bucket, comme les politiques, les règles de cycle de vie ou les paramètres de version.
De plus, si votre instance MinIO utilise le chiffrement côté serveur (SSE) pour le stockage, la configuration SSE ne fait pas partie des données capturées par Plakar. Cependant, Plakar effectue son propre chiffrement avant de stocker un fragment, garantissant ainsi la sécurité des données au repos, même sans recourir au SSE.
Cohérence et limites des instantanés
Plakar s'appuie sur l'API MinIO (compatible S3) pour analyser et capturer des instantanés du contenu des buckets. Cependant, les systèmes de stockage d'objets ne garantissent pas l'isolation des instantanés, ce qui signifie que :
•Si des objets sont ajoutés, modifiés ou supprimés pendant le processus de capture instantanée, la capture instantanée résultante peut être incohérente.
•Il n’existe pas de capture atomique ponctuelle sur tous les objets.
Par conséquent:
L'instantané représente une lecture cohérente de tous les objets au moment où ils ont été répertoriés et récupérés, mais pas une image figée du bucket à un moment donné.
Dépannage
Erreurs d'identification
Si vous voyez des erreurs 401/403, vérifiez les clés d'accès, les clés secrètes et qu'elles use_tlssont correctement définies.
Afficher la configuration actuelle de Plakar
plakar config
Questions fréquemment posées
Plakar sauvegarde-t-il toutes les versions des objets ?
Non. Plakar inclut uniquement la dernière version visible de chaque objet dans le bucket au moment de l'instantané.
Si le contrôle de version est activé dans MinIO, les anciennes versions ne sont pas sauvegardées.
Puis-je synchroniser un magasin Kloset hébergé dans MinIO avec un autre bucket MinIO ?
Oui.
Déclarez deux magasins Kloset pointant vers vos buckets MinIO source et cible (par exemple @minio_prodet @minio_backup), puis exécutez une commande de synchronisation.
Transférer un instantané d'un magasin Kloset dans MinIO vers un autre
plakar at @minio_prod sync <snapshot-id> to @minio_backup
Transférer tous les instantanés d'un magasin Kloset vers un autre
plakar at @minio_prod sync to @minio_backup
Notez que cela n'est pas spécifique à MinIO : deux magasins Kloset peuvent être synchronisés quel que soit leur backend de stockage sous-jacent, même s'ils sont différents (par exemple, l'un sur MinIO et l'autre sur un système de fichiers local).
Comment activer ou désactiver TLS ?
Mettez à jour l'option de configuration use_tlssur trueou falseselon que votre instance MinIO utilise ou non TLS. Pour un développement local, il est préférable de désactiver TLS.
Activer ou désactiver TLS pour l'intégration MinIO
# Disable TLS for the Kloset store
plakar config repository set minio_store use_tls false
# Disable TLS for the Source or Destination connector
plakar config remote set minio_src use_tls false
plakar config remote set minio_dst use_tls false
Puis-je restaurer les données de MinIO vers un autre fournisseur (par exemple, AWS, Azue, GCP, Wasabi, Scaleway, OVH) ?
Oui. Configurez le connecteur de stockage pour qu'il pointe vers le bucket MinIO et définissez le connecteur de destination pour qu'il pointe vers le fournisseur cible.
Comment générer un .ptarfichier plat à partir d'un magasin MinIO ?
Comme tout autre magasin Kloset, vous pouvez l'utiliser plakar ptarpour exporter un magasin Kloset dans un .ptarfichier portable.
Exporter @minio_storevers un .ptarfichier
plakar ptar -o ./export.ptar -k @minio_store
Comment restaurer un .ptarfichier plat dans un bucket MinIO ?
Exécutez la commande suivante pour restaurer un .ptarfichier dans un bucket MinIO configuré dans le connecteur de destination @minio_dst.
Restaurer un .ptarfichier sur une cible
plakar at ./export.ptar restore -to @minio_dst
Appendice