Remarques :
- Ce tutoriel nécessite un accès à Oracle Cloud. Pour vous inscrire à un compte gratuit, reportez-vous à Introduction à Oracle Cloud Infrastructure Free Tier.
- Il utilise des exemples de valeurs pour les informations d'identification, la location et les compartiments Oracle Cloud Infrastructure. Lorsque vous terminez votre atelier, remplacez ces valeurs par celles propres à votre environnement cloud.
Effectuer une synchronisation bidirectionnelle inter-région dans Oracle Cloud Infrastructure à l'aide de la synchronisation
Introduction
La synchronisation inter-région du stockage d'objets est essentielle pour diverses charges de travail cloud, notamment la sauvegarde de données, la récupération après sinistre et l'accès multi-région. Bien qu'Oracle Cloud Infrastructure (OCI) fournisse des fonctionnalités de réplication pour OCI Object Storage, il ne propose pas de solution de synchronisation bidirectionnelle native. Cette limitation signifie que les utilisateurs doivent s'appuyer sur des implémentations personnalisées pour synchroniser les fichiers entre les régions.
Syncthing, un outil de synchronisation de fichiers décentralisé open source, fournit une synchronisation bidirectionnelle continue qui fonctionne en temps réel. Contrairement à OCI Functions, qui s'appuie sur un modèle orienté événement pour la réplication d'objet, la synchronisation synchronise efficacement des structures de fichiers entières entre des machines virtuelles tout en prenant en charge les répertoires locaux et montés OCI Object Storage.
Dans ce tutoriel, nous allons déployer la synchronisation sur les instances OCI Compute dans deux régions à l'aide d'une pile OCI Resource Manager, ce qui permet une synchronisation bidirectionnelle automatique entre le stockage de machine virtuelle local et les répertoires montés OCI Object Storage.
Points à prendre en compte
Lorsque vous montez la synchronisation avec OCI Object Storage à l'aide de s3fs :
-
Les performances d'écriture de s3fs (OCI Object Storage) peuvent constituer un goulet d'étranglement : l'écriture directe vers OCI Object Storage à l'aide de s3fs est plus lente que sur le disque local.
-
La synchronisation de fichiers volumineux peut être lente : l'écriture et la lecture de fichiers volumineux directement à partir d'OCI Object Storage peuvent prendre quelques minutes au lieu de quelques secondes.
-
Avantage de synchronisation au niveau des blocs perdu : étant donné qu'OCI Object Storage nécessite des écritures d'objet complet, l'efficacité de synchronisation au niveau des blocs de Syncthing est diminuée.
-
Meilleure pratique : synchronisez d'abord les fichiers localement, puis déplacez-les vers OCI Object Storage.
Quand la synchronisation est-elle une bonne idée ?
-
Idéal pour la synchronisation en temps réel, en particulier pour les modifications de petits fichiers à haute fréquence entre les régions.
-
Idéal pour la synchronisation bidirectionnelle, contrairement à OCI Functions, qui nécessitent une logique supplémentaire pour les mises à jour bidirectionnelles.
-
Idéal pour la synchronisation Cloud hybride ou sur site vers OCI, où l'intégration directe d'OCI Object Storage n'est pas possible.
-
Meilleur lors de la synchronisation du stockage de machine virtuelle local : évitez d'utiliser des buckets montés s3fs pour la synchronisation directe.
-
Inidéal pour les transferts de fichiers batch volumineux : OCI Functions les gère plus efficacement avec le traitement par objet.
Objectifs
-
Déployez une pile OCI Resource Manager dans deux régions pour provisionner automatiquement deux instances OCI Compute avec Syncthing préinstallées.
-
Configurez la synchronisation sur les deux machines virtuelles afin d'activer la synchronisation décentralisée en temps réel du stockage local et des répertoires montés OCI Object Storage dans plusieurs régions.
Prérequis
-
Accès à une location OCI avec deux régions activées pour la synchronisation inter-région.
-
Droits d'accès permettant de créer et de gérer des instances OCI Compute, des buckets OCI Object Storage et des ressources réseau.
-
Un VCN existant avec un sous-réseau public dans chaque région pour le déploiement de machine virtuelle.
-
Buckets OCI Object Storage existants dans les deux régions, qui seront utilisés pour la synchronisation.
-
Clé secrète client permettant au système de fichiers S3 (s3fs) de monter des buckets OCI Object Storage sur les machines virtuelles.
Tâche 1 : préparation des informations nécessaires au déploiement de la machine virtuelle
-
Téléchargez la pile OCI Resource Manager. Cette pile automatise le déploiement d'une machine virtuelle exécutant Oracle Linux 8 sur un fichier VM.Standard.E5. Forme flexible. Il installe la synchronisation à l'aide de CloudInit, monte un bucket OCI existant et configure l'accès à l'aide de s3fs. La machine virtuelle est provisionnée avec un accès SSH, une adresse IP publique et balisée pour une identification facile. Pour plus d'informations, reportez-vous à Pile OCI Resource Manager.
-
Créez un VCN avec un sous-réseau public dans les deux régions cible.
La pile sera déployée dans les deux emplacements pour provisionner une machine virtuelle avec la synchronisation pour la synchronisation de stockage bidirectionnelle inter-région. Une fois déployée, la synchronisation est accessible dans le navigateur à l'aide de l'adresse IP publique de la machine virtuelle.
-
Assurez-vous qu'un bucket OCI Object Storage existe dans chaque région où les tests seront effectués. La visibilité du bucket peut être privée.
-
Créez une clé secrète client pour le montage s3fs. La clé secrète client sera utilisée pour accéder à OCI Object Storage.
-
Connectez-vous à la console OCI, accédez à Profil, cliquez sur votre nom utilisateur et sur Clés secrètes client.
-
Cliquez sur Générer une clé secrète et entrez un nom, tel que
s3fs-access
. -
Veillez à copier la clé générée telle que nous l'utiliserons ultérieurement dans la tâche 2.
-
Cliquez sur Clé d'accès et copiez la valeur telle que nous l'utiliserons ultérieurement dans la tâche 2.
-
Copiez l'espace de noms à partir de la page Détails du bucket que nous utiliserons ultérieurement dans la tâche 2.
-
Tâche 2 : appliquer la pile
-
Connectez-vous à la console OCI, accédez à Services de développeur, à Gestionnaire de ressources et cliquez sur Piles.
-
Créez la pile OCI Resource Manager Terraform. Pour plus d'informations, reportez-vous à la section Creating a Stack from a Zip File.
-
Cliquez sur Créer une pile.
-
Sélectionnez le fichier
.zip
et ajoutez la pile. -
Entrez la clé de balise.
-
Fournissez les informations relatives au jeu de transport, puis cliquez sur Suivant.
-
-
Sur la page Configurer les variables, entrez les informations suivantes.
- Compartiment : entrez le compartiment.
- VCN et sous-réseau : sélectionnez un VCN existant et un sous-réseau public.
- Modifiez le nom d'affichage vm si vous le souhaitez.
- Clé SSH publique : entrez la clé SSH publique de la machine virtuelle.
- Domaine de disponibilité : sélectionnez un domaine de disponibilité.
- OCID de clé secrète client et clé d'accès de clé secrète client : entrez l'OCID de clé secrète client et la clé d'accès de clé secrète client créés dans la tâche 1.
- Nom de la catégorie : entrez le nom de la catégorie.
- Espace de noms Object Storage : sélectionnez l'espace de noms Object Storage.
-
Cliquez sur Suivant et vérifiez les informations. Si tout est correct, sélectionnez Exécuter l'application et cliquez sur Créer.
Une fois le travail d'application terminé, il doit renvoyer les adresses IP publiques et privées de la machine virtuelle nouvellement créée.
-
Répétez les étapes dans une région secondaire pour y créer la deuxième machine virtuelle.
-
Vérifiez que les buckets OCI Object Storage sont montés vers
/home/opc/logging
au niveau de la machine virtuelle, en vous connectant via SSH à l'aide des commandes suivantes.mount | grep s3fs
Si le bucket est monté correctement, la sortie doit se présenter comme suit :
Cela confirme que s3fs a monté le bucket sur
/home/opc/logging
sur l'une des machines virtuelles.
Tâche 3 : configurer la synchronisation
Une fois que les deux machines virtuelles sont déployées dans les deux régions, configurez la synchronisation sur chaque machine virtuelle en suivant les étapes ci-dessous pour synchroniser le stockage entre elles.
-
Copiez l'adresse IP publique de la machine virtuelle dans la première région et utilisez-la dans le navigateur pour accéder à l'interface de synchronisation. Entrez l'URL suivante.
http://<vm1-public-ip>:8384
-
Après avoir accédé à l'interface, vous verrez l'interface de synchronisation qui sera similaire à l'image suivante. Les zones Dossiers et Dispositifs distants sont les zones que vous allez configurer pour la synchronisation à l'étape suivante.
Remarque : vous pouvez définir un nom d'utilisateur et un mot de passe dans Paramètres sous la section GUI pour supprimer les avertissements.
-
Dans la section Dossiers, cliquez sur Ajouter un dossier pour créer ou inclure un dossier de machine virtuelle local dans l'interface d'administration de synchronisation.
-
Entrez les informations suivantes pour configurer un dossier local et cliquez sur Enregistrer.
- Libellé du dossier : nom convivial permettant d'identifier le dossier. Par exemple,
local_VM1
. - Chemin du dossier : chemin du répertoire du dossier local. Par exemple,
~/local_VM1
.
Vous pouvez réinsérer le terminal de machine virtuelle créé par le dossier
local_VM1
. - Libellé du dossier : nom convivial permettant d'identifier le dossier. Par exemple,
-
Répétez les étapes 1 à 4 dans la machine virtuelle à partir de la région secondaire et ajoutez le dossier
local_VM2
dans l'interface de synchronisation VM2. -
Configurez la connexion de synchronisation inter-région entre les deux machines virtuelles, en commençant par VM1.
-
Dans la section Périphériques distants de la première machine virtuelle de synchronisation, cliquez sur Ajouter un périphérique distant pour inclure un dossier distant de la deuxième région.
-
Dans Général, entrez les informations suivantes.
-
ID de périphérique : ID du deuxième périphérique de synchronisation. Sur VM2, ouvrez l'interface de synchronisation, accédez à Actions, à Afficher l'ID, copiez la valeur affichée et collez-la dans ce champ.
-
Nom du périphérique : entrez un nom pertinent, tel que
remote_VM2
.
-
-
Dans Partage, sélectionnez
local_VM1
à partager avec le périphérique distant. -
Dans Avancé, entrez
tcp://<vm2-public-ip>:22000
dans Adresses,22000
est le port TCP utilisé pour la synchronisation des données. -
Cliquez sur Enregistrer.
-
-
A ce stade, sur la synchronisation VM1, le dossier local
local_VM1
doit apparaître en vert Up to Date et le périphérique distantremote_VM2
affichera Disconnected.Pour terminer la connexion, effectuez les mêmes étapes sur la synchronisation VM2, en utilisant les données équivalentes collectées à partir de la synchronisation VM1, entrez ID de périphérique,
tcp://<vm1-public-ip>:22000
en tant qu'adresses et nom de périphérique, tel queremote_VM1
.Remarque : assurez-vous que le port
22000
est ouvert dans la liste de sécurité des réseaux cloud virtuels. -
Après les configurations équivalentes, vous devez être invité dans chaque interface de synchronisation à accepter l'ajout du dossier distant. Cliquez sur Ajouter.
-
Vous serez invité à l'enregistrer localement avec des détails spécifiques. Par exemple, sur VM1, vous serez invité à enregistrer le fichier
local_VM2
entrant. Vous pouvez modifier le nom de ce dernier sur VM1 enremote_VM2
pour un affichage plus clair. Vous avez également la possibilité de le mettre en correspondance avec un chemin VM1 local. Il peut s'agir de n'importe quel chemin ; un nouveau dossier est créé s'il n'existe pas. Vous pouvez également sélectionner~/local_VM1
, ce qui signifie que le contenu des deux dossiers des deux machines virtuelles sera fusionné au même emplacement. Dans notre exemple, entrez le chemin~/remote_VM2
. -
Effectuez la même étape sur VM2 par rapport au dossier
local_VM1
entrant et mettez-le en correspondance en tant queremote_VM1
. -
A présent, les deux machines virtuelles doivent être synchronisées et les dossiers gérés par Syncthing ; sur VM1,
local_VM1
etremote_VM2
; sur VM2,local_VM2
etremote_VM1
.
Tâche 4 : tester la synchronisation du stockage local
Pour tester la synchronisation de synchronisation, connectez-vous à chaque machine virtuelle à l'aide de SSH. Dans le répertoire de base opc, vous trouverez deux dossiers.
-
Dossier local (
local_VM1
) : stocke les fichiers sur cette machine virtuelle. -
Dossier distant (
remote_VM2
) : reflète les fichiers synchronisés de la deuxième machine virtuelle.
Pour vérifier la synchronisation, nous allons ajouter ou modifier un fichier dans le dossier local sur une machine virtuelle et vérifier si les modifications apparaissent dans le dossier correspondant sur la machine virtuelle distante. En outre, nous surveillerons l'interface de synchronisation ou les journaux pour confirmer la synchronisation réussie entre les deux régions OCI.
-
Connectez-vous via SSH à VM1.
ssh opc@<vm1-public-ip>
-
Exécutez la commande suivante pour accéder au dossier
local_VM1
partagé de synchronisation local.cd ~/local_VM1
-
Exécutez la commande suivante pour créer un fichier de test.
echo "testing sync" > testVM1.txt
-
Ouvrez un nouveau terminal et SSH dans VM2.
ssh opc@<vm2-public-ip>
-
Exécutez la commande suivante pour accéder au dossier partagé sur VM2.
cd ~/remote_VM1
-
Exécutez les commandes suivantes pour vérifier si le fichier apparaît.
ls -l cat testVM1.txt
-
Suivez les mêmes étapes sur VM2 et vérifiez qu'un fichier apparaît sur VM1 dans le dossier
remote_VM2
. -
Vérifiez le statut de synchronisation dans l'interface de synchronisation. Ouvrez
http://<vm1-public-ip>:8384
ethttp://<vm2-public-ip>:8384
dans un navigateur pour vérifier les journaux et le statut de synchronisation.
Tâche 5 : tester la synchronisation du contenu de bucket OCI Object Storage
Les buckets sont montés sur les machines virtuelles déployées dans le répertoire /home/opc/logging
. Pour tester et synchroniser les fichiers situés dans les buckets montés, vous devez répéter les étapes précédentes afin d'ajouter le répertoire de machine virtuelle logging
en tant que dossier local, puis le partager à partir des appareils distants. Vous verrez quelque chose de semblable à ceci :
-
VM1:
Créez ensuite un fichier dans le répertoire logging
qui apparaîtra dans le bucket OCI et sera synchronisé avec le répertoire VM2 logging
s'il est correctement configuré, et donc dans le second bucket à partir de la région croisée.
Tâche 6 : effectuer d'autres tests
Il existe deux points que vous pouvez facilement tester avec le même dossier et les mêmes périphériques partagés que ceux configurés précédemment.
-
Test à l'aide de nouveaux fichiers volumineux : la synchronisation sera rapide. Créez un fichier volumineux en local sur la machine virtuelle dans les dossiers
local_VM1
/local_VM2
, puis créez le répertoirelogging
, ce qui signifie que s3fs est utilisé pour la synchronisation OCI Object Storage inter-région.-
Créez un fichier volumineux sur VM1.
cd local_VM1 dd if=/dev/urandom of=~/local_VM1/testfile1 bs=1M count=500
-
Vérifiez la synchronisation sur VM2.
ls -lh ~/local_VM2/
Vérifiez également dans l'interface de synchronisation des machines virtuelles.
-
Répétez l'opération pour le répertoire monté s3fs (
logging
).cd ~/logging dd if=/dev/urandom of=~/logging/testfile2 bs=1M count=500
-
Vérifiez la synchronisation sur VM2 dans le répertoire
logging
, dans l'interface de synchronisation, ainsi que dans le bucket de deuxième région afin de déterminer la vitesse d'affichage du fichier. -
Vous pouvez ensuite procéder aux mêmes tests avec un fichier de quelques Go. Envisagez également de télécharger un fichier volumineux directement vers le premier bucket et de surveiller la vitesse de synchronisation avec le deuxième bucket.
-
-
Test à l'aide de fichiers volumineux modifiés : cela permet également de détecter et de synchroniser efficacement les modifications. Modifiez les fichiers locaux dans les répertoires
local_VM1
/local_VM2
et les fichiers existants dans les buckets OCI Object Storage montés sur les machines virtuelles sous le répertoirelogging
.-
Modifiez un fichier existant.
echo "New content" >> ~/local_VM1/testfile1
-
Vérifiez la mise à jour sur VM2.
-
Répétez les étapes 1 et 2 pour les fichiers OCI Object Storage.
echo "Modified content" >> ~/logging/testfile2
-
Liens connexes
Remerciements
- Auteur - Adina Nicolescu (ingénieure cloud senior)
Ressources de formation supplémentaires
Explorez d'autres ateliers sur docs.oracle.com/learn ou accédez à d'autres contenus de formation gratuits sur le canal Oracle Learning YouTube. De plus, visitez le site education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.
Pour obtenir la documentation produit, consultez le site Oracle Help Center.
Perform Cross-Region Bidirectional Synchronization in Oracle Cloud Infrastructure using Syncthing
G29467-01
Copyright ©2025, Oracle and/or its affiliates.