Note :
- Ce tutoriel nécessite l'accès à Oracle Cloud. Pour vous inscrire à un compte gratuit, voir Démarrer avec le niveau gratuit d'Oracle Cloud Infrastructure.
- Il utilise des exemples de valeurs pour les données d'identification, la location et les compartiments d'Oracle Cloud Infrastructure. À la fin de votre laboratoire, remplacez ces valeurs par celles qui sont propres à votre environnement en nuage.
Effectuer une synchronisation bidirectionnelle inter-région dans Oracle Cloud Infrastructure à l'aide de la synchronisation
Présentation
La synchronisation inter-région du stockage d'objets est essentielle pour diverses charges de travail en nuage, y compris la sauvegarde des données, la récupération après sinistre et l'accès multi-région. Bien qu'Oracle Cloud Infrastructure (OCI) offre des capacités de réplication pour OCI Object Storage, il n'offre pas de solution native de synchronisation bidirectionnelle. Cette limitation signifie que les utilisateurs doivent s'appuyer sur des mises en oeuvre 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 alternativement en temps réel. Contrairement à OCI Functions, qui s'appuie sur un modèle basé sur des événements pour la réplication d'objet, Syncthing synchronise efficacement des structures de fichiers entières entre des machines virtuelles tout en prenant en charge les répertoires locaux et montés sur OCI Object Storage.
Dans ce tutoriel, nous allons déployer la synchronisation sur des instances de calcul OCI dans deux régions à l'aide d'une pile du gestionnaire de ressources OCI, ce qui permettra une synchronisation automatique et bidirectionnelle entre le stockage de machine virtuelle local et les répertoires montés dans OCI Object Storage.
Points à considérer
Lorsque vous montez la synchronisation avec le service de stockage d'objets pour OCI à l'aide de s3fs :
-
La performance d'écriture du service s3fs (OCI Object Storage) peut être un goulot d'étranglement : L'écriture directe dans OCI Object Storage à l'aide de s3fs est plus lente que sur le disque local.
-
La synchronisation des fichiers volumineux peut être lente : L'écriture et la lecture de fichiers volumineux directement à partir du service de stockage d'objets pour OCI peuvent prendre quelques minutes au lieu de quelques secondes.
-
Avantage de synchronisation au niveau des blocs perdu : Comme le service de stockage d'objets pour OCI nécessite des écritures d'objet complet, l'efficacité de synchronisation au niveau des blocs de Syncthing est diminuée.
-
Meilleur exercice : Synchronisez d'abord localement, puis déplacez les fichiers vers le service de stockage d'objets pour OCI.
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écessite une logique supplémentaire pour les mises à jour bidirectionnelles.
-
Parfait pour le nuage hybride ou la synchronisation sur place avec OCI, où l'intégration directe du stockage d'objets OCI n'est pas possible.
-
Meilleur lors de la synchronisation du stockage de machine virtuelle local : Évitez d'utiliser des seaux montés s3fs pour la synchronisation directe.
-
Pas idéal pour les transferts de fichiers séquentiels volumineux : OCI Functions gère ces opérations plus efficacement par traitement d'objet.
Objectifs
-
Déployez une pile du gestionnaire de ressources OCI dans deux régions pour provisionner automatiquement deux instances de calcul OCI avec la synchronisation préinstallée.
-
Configurer la synchronisation sur les deux machines virtuelles pour permettre la synchronisation en temps réel et décentralisée du stockage local et des répertoires montés par le service de stockage d'objets pour OCI dans plusieurs régions.
Préalables
-
Accès à une location OCI avec deux régions activées pour la synchronisation inter-région.
-
Autorisations pour créer et gérer des instances de calcul OCI, des seaux de stockage d'objets OCI et des ressources de réseau.
-
Réseau VCN existant avec un sous-réseau public dans chaque région pour le déploiement de machines virtuelles.
-
Seaux de stockage d'objets OCI existants dans les deux régions, qui seront utilisés pour la synchronisation.
-
Clé secrète client pour le système de fichiers S3 (s3fs) permettant de monter les seaux de stockage d'objets OCI sur les machines virtuelles.
Tâche 1 : Préparer les informations nécessaires au déploiement de la machine virtuelle
-
Téléchargez la pile du gestionnaire de ressources OCI. Cette pile automatise le déploiement d'une machine virtuelle exécutant Oracle Linux 8 sur VM.Standard.E5. Forme flexible. Il installe la synchronisation à l'aide de CloudInit, monte un seau 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 marquée pour une identification facile. Pour plus d'informations, voir Pile du gestionnaire de ressources OCI.
-
Créez un VCN avec un sous-réseau public dans les deux régions cibles.
La pile sera déployée dans les deux emplacements pour provisionner une machine virtuelle avec synchronisation en vue d'une synchronisation bidirectionnelle du stockage inter-région. Une fois déployé, Syncthing est accessible dans le navigateur à l'aide de l'adresse IP publique de la machine virtuelle.
-
Assurez-vous qu'un seau de stockage d'objets OCI existe dans chaque région où les tests seront effectués. La visibilité du seau peut être Privé.
-
Créer une clé secrète de client pour le montage s3fs. La clé secrète du client sera utilisée pour accéder au service de stockage d'objets OCI.
-
Connectez-vous à la console OCI, naviguez jusqu'à Profil, cliquez sur votre nom d'utilisateur et sur Clés secrètes de client.
-
Cliquez sur Créer une clé secrète et entrez un nom, par exemple
s3fs-access
. -
Assurez-vous de copier la clé générée car nous l'utiliserons plus tard dans la tâche 2.
-
Cliquez sur Clé d'accès et copiez la valeur comme nous l'utiliserons plus tard dans la tâche 2.
-
Copiez l'espace de noms dans la page Détails du seau que nous utiliserons plus tard dans la tâche 2.
-
Tâche 2 : Appliquer la pile
-
Connectez-vous à la console OCI, naviguez jusqu'à Services de développement, Gestionnaire de ressources et cliquez sur Piles.
-
Créez la pile du gestionnaire de ressources OCI Terraform. Pour plus d'informations, voir Création d'une pile à partir d'un fichier zip.
-
Cliquez sur Créer une pile.
-
Sélectionnez le fichier
.zip
et ajoutez la pile. -
Entrer une clé de marqueur.
-
Cliquez sur Suivant.
-
-
Dans 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 du mv si vous le souhaitez.
- Clé SSH publique : Entrez la clé SSH publique pour la machine virtuelle.
- Domaine de disponibilité : Sélectionnez un domaine de disponibilité.
- OCID de la clé secrète client et clé d'accès de la clé secrète client : Entrez l'OCID de la clé secrète client et la clé d'accès de la clé secrète client créés dans la tâche 1.
- Nom du seau : Entrez le nom du seau.
- Espace de noms du stockage d'objets : Sélectionnez l'espace de noms du stockage d'objets.
-
Cliquez sur Suivant et vérifiez les informations. Si tout va bien, sélectionnez Exécuter l'application et cliquez sur Créer.
Une fois la tâche d'application terminée, elle doit retourner les adresses IP publiques et privées de la machine virtuelle nouvellement créée.
-
Répétez les étapes d'une région secondaire pour y créer la deuxième machine virtuelle.
-
Vérifiez que les seaux du service de stockage d'objets pour OCI sont montés sur
/home/opc/logging
au niveau de la machine virtuelle, en vous connectant au moyen de SSH à l'aide des commandes suivantes.mount | grep s3fs
Si le seau est monté avec succès, vous devriez voir la sortie comme suit :
Cela confirme que s3fs a monté le seau sur
/home/opc/logging
sur l'une des machines virtuelles.
Tâche 3 : Configurer la synchronisation
Une fois les deux machines virtuelles 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 Syncthing qui sera similaire à l'image suivante. Les dossiers et les appareils distants sont les zones que vous allez configurer pour la synchronisation à l'étape suivante.
Note : Vous pouvez définir un nom d'utilisateur et un mot de passe dans les 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 la synchronisation.
-
Entrez les informations suivantes pour configurer un dossier local et cliquez sur Enregistrer.
- Étiquette du dossier : Nom convivial pour identifier le dossier. Par exemple,
local_VM1
. - Chemin du dossier : Chemin du répertoire du dossier local. Par exemple,
~/local_VM1
.
Vous pouvez archiver le terminal de machine virtuelle créé par le nouveau dossier
local_VM1
. - Étiquette du dossier : Nom convivial pour 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 Appareils distants de la première machine virtuelle de synchronisation, cliquez sur Ajouter un appareil distant pour inclure un dossier distant de la deuxième région.
-
Dans Général, entrez les informations suivantes.
-
ID appareil : Il s'agit de l'ID du deuxième appareil de synchronisation. Sur VM2, ouvrez l'interface de synchronisation, naviguez jusqu'à Actions, Afficher l'ID, copiez la valeur affichée et collez-la dans ce champ.
-
Nom de l'appareil : Entrez un nom pertinent tel que
remote_VM2
.
-
-
Dans Partage, sélectionnez
local_VM1
à partager avec l'appareil 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.
-
-
À ce stade, sur VM1 Syncthing, le dossier local
local_VM1
doit s'afficher en vert À ce jour et l'appareil distantremote_VM2
affiche Déconnecté.Pour terminer la connexion, effectuez les mêmes étapes sur la synchronisation VM2, à l'aide des données équivalentes collectées à partir de la synchronisation VM1, entrez ID appareil,
tcp://<vm1-public-ip>:22000
en tant qu'adresses et nom de l'appareil, par exempleremote_VM1
.Note : Assurez-vous que le port
22000
est ouvert dans la liste de sécurité des réseaux en nuage 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
local_VM2
entrant. Vous pouvez modifier son nom sur VM1 enremote_VM2
pour obtenir un affichage plus clair. Vous avez également la possibilité de le mapper à 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. Pour notre exemple, entrez le chemin~/remote_VM2
. -
Effectuez la même étape sur VM2 par rapport au dossier
local_VM1
entrant et mappez-le en tant queremote_VM1
. -
Maintenant, les deux machines virtuelles doivent être synchronisées et les dossiers administrés par Syncthing; sur VM1, sur
local_VM1
etremote_VM2
; sur VM2, surlocal_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 d'origine opc, vous trouverez deux dossiers.
-
Dossier local (
local_VM1
) : Stocke les fichiers sur cette machine virtuelle. -
Dossier distant (
remote_VM2
) : Réfléchit aux fichiers synchronisés à partir 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.
-
SSH dans VM1.
ssh opc@<vm1-public-ip>
-
Exécutez la commande suivante pour naviguer jusqu'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 naviguer jusqu'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
-
Effectuez les mêmes étapes sur VM2 et vérifiez qu'un fichier s'affiche 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 du seau de stockage d'objets OCI
Les seaux 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 seaux montés, vous devez refaire 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 similaire à ceci :
-
VM1:
Ensuite, créez un fichier dans le répertoire logging
qui le fera apparaître dans le seau OCI et synchronisez-le avec le répertoire VM2 logging
s'il est correctement configuré, donc dans le deuxième seau de l'inter-région également.
Tâche 6 : Effectuer d'autres tests
Il y a deux points que vous pouvez facilement tester davantage avec le même dossier et les mêmes périphériques partagés que ceux configurés précédemment.
-
Tester à l'aide des nouveaux fichiers volumineux : Cette opération sera synchronisée rapidement. Créez un fichier volumineux localement 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 inter-région du service de stockage d'objets pour OCI.-
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 seau de la 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 charger un fichier volumineux directement dans le premier seau et de surveiller sa vitesse de synchronisation avec le second seau.
-
-
Tester à 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 seaux de stockage d'objets OCI montés sur les machines virtuelles sous le répertoirelogging
.-
Modifier 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 du service de stockage d'objets pour OCI.
echo "Modified content" >> ~/logging/testfile2
-
Liens connexes
Remerciements
- Auteur - Adina Nicolescu (ingénieur en nuage principal)
Autres ressources d'apprentissage
Explorez d'autres laboratoires sur le site docs.oracle.com/learn ou accédez à plus de contenu d'apprentissage gratuit sur le canal Oracle Learning YouTube. De plus, visitez education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.
Pour obtenir la documentation sur le produit, visitez Oracle Help Center.
Perform Cross-Region Bidirectional Synchronization in Oracle Cloud Infrastructure using Syncthing
G29466-01
Copyright ©2025, Oracle and/or its affiliates.