Implémentation d'un serveur de cluster NFS sur OCI à l'aide d'Object Storage en tant que référentiel

Lorsqu'une quantité illimitée de données critiques non structurées est fréquemment consultée dès sa création, mais peu de fois par la suite, la meilleure option est Oracle Cloud Infrastructure Object Storage.

Cependant, étant donné que certaines applications ne peuvent pas utiliser Object Storage de façon native, nous devons utiliser des solutions tierces. Pour cette architecture, nous utiliserons :

  • Clone permettant de lire et d'écrire dans Object Storage.
  • Corosync et Pacemaker pour créer le cluster (actif-de secours) et assurer la haute disponibilité requise par les applications critiques (par exemple, Rclone, IP secondaire, service NFS, point de montage, etc.).
  • Adresse IP secondaire pour monter le système de fichiers réseau (NFS) partagé par le cluster et pour le basculement automatique entre les noeuds du cluster.

Cette architecture de référence décrit une configuration inspirée par le client, alliant haute disponibilité et flexibilité.

Architecture

Le diagramme suivant illustre cette architecture de référence.

Dans ce scénario, pour accélérer le processus de permutation, nous avons conservé les services Rclone et NFS en cours d'exécution, Rclone dans le modèle de montage, le service NFS partageant le dossier monté par Rclone et l'adresse IP secondaire attachée à un seul des noeuds.

L'architecture se compose des éléments suivants :



oci-rclone-architecture-diagramme-oracle.zip

Le processus de permutation entre les noeuds est visible sur OTube.

APP Server => inst-i6hjc-rclone-ha -  Client Server
                        /mnt/nfs_rclone_v2 =  Mount point client side 

NFS - Floating IP = 172.10.0.100 

RCLONE => nfs-rclone = Cluster Node1 = IP = 172.10.0.287
RCLONE STANDBY => inst-e2fc3-rclone-ha =  Cluster Node 2 - IP = 172.10.0.121

NFS -  SHARE
/mnt/nfs_rclone =  From Object Storage 

Vous pouvez utiliser la sauvegarde inter-région pour créer une récupération après sinistre. Si vous utilisez une variable dans la configuration, la configuration du clone est statique.



oci-nfs-cluster-architecture-diagramme-oracle.zip

Pour la récupération après sinistre :

  • Utilisez la réplication Object Storage pour la récupération après sinistre en créant une réplique des données dans d'autres régions. Voir Explorer plus : Utiliser la réplication.
  • Créez une solution de récupération après sinistre pour les instances de calcul. Voir Explorer d'autres éléments : réplication d'un volume.

Cette architecture comporte les composants suivants :

  • Région

    Une région Oracle Cloud Infrastructure est une zone géographique localisée qui contient des centres de données, appelés domaines de disponibilité. Les régions sont indépendantes les unes des autres et de grandes distances peuvent les séparer (dans des pays voire des continents).

  • Domaines de disponibilité

    Les domaines de disponibilité sont des centres de données indépendants autonomes au sein d'une région. Les ressources physiques de chaque domaine de disponibilité sont isolées des ressources des autres domaines de disponibilité, ce qui assure la tolérance aux pannes. Les domaines de disponibilité ne partagent ni infrastructure telle qu'un réseau d'alimentation ou de refroidissement, ni réseau interne. Ainsi, il est peu probable qu'un problème survenant dans un domaine de disponibilité affecte les autres domaines de disponibilité de la région.

  • Domaine de pannes

    Un domaine de pannes est un regroupement de matériel et d'infrastructures au sein d'un domaine de disponibilité. Chaque domaine de disponibilité comporte trois domaines de pannes avec une alimentation et un matériel indépendants. Lorsque vous distribuez des ressources sur plusieurs domaines de pannes, vos applications peuvent tolérer les pannes de serveur physique, de maintenance du système et d'alimentation au sein d'un domaine de pannes.

  • Réseau cloud virtuel (VCN) et sous-réseaux

    Un VCN est un réseau personnalisable défini par logiciel que vous configurez dans une région Oracle Cloud Infrastructure. Comme les réseaux de centres de données traditionnels, les réseaux cloud virtuels vous donnent un contrôle total sur votre environnement réseau. Un VCN peut comporter plusieurs blocs CIDR qui ne se chevauchent pas et que vous pouvez modifier après avoir créé le VCN. Vous pouvez segmenter un VCN en sous-réseaux, qui peuvent être ciblés vers une région ou un domaine de disponibilité. Chaque sous-réseau se compose d'une plage contiguë d'adresses qui ne chevauchent pas les autres sous-réseaux du VCN. Vous pouvez modifier la taille d'un sous-réseau après sa création. Un sous-réseau peut être public ou privé.

  • Stockage d'objets

    Object Storage offre un accès rapide à de grandes quantités de données structurées et non structurées de tout type de contenu, y compris des sauvegardes de base de données, des données analytiques et du contenu enrichi tel que des images et des vidéos. Vous pouvez stocker les données, puis les extraire directement à partir d'Internet ou de la plate-forme cloud, et ce, en toute sécurité. Vous pouvez adapter le stockage de manière transparente sans subir de dégradation des performances ni de la fiabilité du service. Utilisez le stockage standard pour le stockage "à chaud" auquel vous devez accéder rapidement, immédiatement et fréquemment. Utilisez le stockage d'archive pour un stockage "froid" que vous conservez pendant de longues périodes et que vous accédez rarement ou rarement.

  • Rclone

    Rclone est un programme de ligne de commande open source permettant de gérer des fichiers sur le stockage cloud, utilisé ici pour distribuer Object Storage via NFS.

  • Corosync et Pacemaker

    Corosync et Pacemaker sont tous deux des services open source adaptés à la fois aux petits et aux grands clusters et responsables de la haute disponibilité au sein des applications.

  • OCI CLI

    L'interface de ligne de commande OCI est responsable de l'intégration de la ressource Linux Corosync/Pacemaker VirtualIP IPaddr2 à l'adresse IP secondaire Oracle Cloud Infrastructure vNIC.

  • Oracle Linux

    Les instances Oracle Linux 8.6 sont utilisées pour héberger cet environnement. D'autres distros Linux peuvent également être utilisées, à condition qu'elles prennent en charge Linux Rclone/Corosync/Pacemaker.

  • Adresse IP secondaire

    Une adresse IP privée secondaire peut être ajoutée à une instance après son lancement. Vous pouvez l'ajouter à la VNIC principale ou secondaire de l'instance. Cette adresse IP secondaire flottera entre les noeuds ; si un noeud est arrêté, l'adresse IP flottante passera à un autre. Corosync et Pacemaker seront responsables de ce processus de changement.

Recommandations

Utilisez les recommandations suivantes comme point de départ pour la configuration de cluster NFS à l'aide d'instances OCI avec des adresses IP secondaires et Object Storage. Vos besoins peuvent différer de l'architecture décrite ici.
  • Rclone

    Utilisez le même nom de répertoire sur les deux noeuds du cluster. Faites attention à la configuration d'export NFS afin qu'il n'y ait aucun problème à utiliser le système de fichiers Rclone. Si vous utilisez l'interface graphique pour monter le répertoire, vous pouvez le surveiller via l'interface graphique.

    Si vous ne configurez pas les services Rclone dans le cluster Linux, nous vous recommandons d'utiliser un script shell dans crontab pour démarrer les services lors du démarrage du serveur

  • VCN

    Lorsque vous créez un VCN, déterminez le nombre de blocs CIDR requis et la taille de chaque bloc en fonction du nombre de ressources que vous prévoyez d'attacher aux sous-réseaux du VCN. Utilisez des blocs CIDR situés dans l'espace d'adresses IP privées standard.

    Sélectionnez des blocs CIDR qui ne chevauchent aucun autre réseau (dans Oracle Cloud Infrastructure, votre centre de données sur site ou un autre fournisseur cloud) sur lequel vous souhaitez configurer des connexions privées.

    Après avoir créé un VCN, vous pouvez modifier, ajouter et supprimer ses blocs CIDR.

    Lorsque vous concevez les sous-réseaux, tenez compte de vos exigences en matière de sécurité et de flux de trafic. Associez toutes les ressources d'un niveau ou d'un rôle spécifique au même sous-réseau, ce qui peut servir de limite de sécurité.

  • Formes de calcul

    Cette architecture utilise une image de système d'exploitation Oracle Linux avec la forme flexible E3 ou E4 avec des ressources minimales pour héberger les hôtes de calcul vers les noeuds de cluster. Si votre application a besoin de davantage de réseau, de mémoire ou de coeurs à débit, vous pouvez choisir une autre forme.

  • Cluster Oracle Linux

    Une fois vos instances Oracle Linux provisionnées, vous devez configurer l'interface de ligne de commande comme expliqué dans la documentation publique, et installer et configurer votre cluster Corosync/Pacemaker avec ses exigences (stonith, quorum, ressources, contraintes, etc.). Après avoir configuré votre cluster Corosync/Pacemaker et l'interface de ligne de commande, vous devez configurer votre ressource VirtualIP. Ce lien est un exemple rapide de configuration d'une ressource VirtualIP sur Corosync/Pacemaker à l'aide de la ligne de commande. Le même processus peut également être effectué via l'interface utilisateur du navigateur Web.

  • Stockage d'objet

    Utilisez la gestion du cycle de vie des objets (reportez-vous à Explorer d'autres) pour modifier le type et utiliser les règles de conservation afin de conserver les données (reportez-vous à Explorer d'autres) afin de modifier et de gérer les données dans le bucket après avoir téléchargé les fichiers.

  • Corosync et Pacemaker

    Utilisez autant de variables que possible lors de l'intégration de Linux Corosync et de Pacemaker avec l'interface de ligne de commande OCI pour que le script reste statique et indépendant du serveur en cours d'exécution.

Remerciements

  • Auteur : Diego Mariano
  • Contributeur : John Sulyok