Maison  >  Article  >  Opération et maintenance  >  Comment configurer un système de fichiers de cluster hautement disponible sous Linux

Comment configurer un système de fichiers de cluster hautement disponible sous Linux

WBOY
WBOYoriginal
2023-07-07 13:18:071754parcourir

Comment configurer un système de fichiers de cluster hautement disponible sous Linux

Introduction :
Dans le domaine informatique, la haute disponibilité (haute disponibilité) est une technologie qui vise à améliorer la fiabilité et la disponibilité du système. Dans un environnement de cluster, un système de fichiers hautement disponible est l'un des composants importants pour garantir le fonctionnement continu du système. Cet article explique comment configurer un système de fichiers de cluster hautement disponible sous Linux et donne des exemples de code correspondants.

  1. Installer les packages
    Tout d'abord, assurez-vous que les packages nécessaires sont installés sur votre système. Dans la plupart des distributions Linux, ces packages peuvent être installés à l'aide d'outils de gestion de packages. Les logiciels suivants sont courants :
  • Pacemaker : un outil de gestion de cluster pour gérer l'état et les ressources du système de fichiers.
  • Corosync : Outil de communication pour la création et la maintenance d'environnements de cluster.
  • DRBD : périphérique de bloc répliqué distribué, utilisé pour implémenter la mise en miroir de disque.
  • GFS2 ou OCFS2 : utilisé pour fournir un système de fichiers de cluster hautement disponible.

Sur Ubuntu, vous pouvez utiliser la commande suivante pour installer le package :

sudo apt-get install pacemaker corosync drbd8-utils gfs2-utils
  1. Configurer l'environnement du cluster
    Tout d'abord, vous devez configurer l'environnement du cluster, y compris la communication entre les nœuds et la gestion des ressources. Ce qui suit est un exemple de configuration simple avec deux nœuds (nœud1 et nœud2) :
  • Modifiez le fichier /etc/hosts et ajoutez l'adresse IP et le nom d'hôte du nœud afin que les nœuds puissent accéder les uns aux autres.
sudo nano /etc/hosts

Ajoutez ce qui suit :

192.168.1.100    node1
192.168.1.101    node2
  • Configurez la communication Corosync.

Créez le fichier de configuration Corosync.

sudo nano /etc/corosync/corosync.conf

Ajoutez ce qui suit :

totem {
    version: 2
    secauth: off
    cluster_name: mycluster
    transport: udpu
}

nodelist {
    node {
        ring0_addr: node1
        nodeid: 1
    }
    node {
        ring0_addr: node2
        nodeid: 2
    }
}

quorum {
    provider: corosync_votequorum
}

logging {
    to_syslog: yes
    to_logfile: yes
    logfile: /var/log/corosync.log
    debug: off
    timestamp: on
}
  • Activez les services Corosync et Pacemaker.
sudo systemctl enable corosync
sudo systemctl enable pacemaker

Démarrez le service.

sudo systemctl start corosync
sudo systemctl start pacemaker
  1. Configuration de DRBD
    DRBD est un périphérique de bloc répliqué distribué, utilisé pour implémenter la mise en miroir de disque entre plusieurs nœuds. Ce qui suit est un exemple de configuration de DRBD avec deux nœuds (node1 et node2) et utilisant /dev/sdb comme périphérique de bloc partagé :
  • Configuration de DRBD.

Créez le fichier de configuration DRBD.

sudo nano /etc/drbd.d/myresource.res

Ajoutez ce qui suit :

resource myresource {
    protocol C;

    on node1 {
        device /dev/drbd0;
        disk   /dev/sdb;
        address 192.168.1.100:7789;
        meta-disk internal;
    }

    on node2 {
        device /dev/drbd0;
        disk   /dev/sdb;
        address 192.168.1.101:7789;
        meta-disk internal;
    }

    net {
        allow-two-primaries;
    }

    startup {
        wfc-timeout     15;
        degr-wfc-timeout 60;
    }

    syncer {
        rate    100M;
        al-extents 257;
    }

    on-node-upgraded {
        # promote node1 to primary after a successful upgrade
        if [ "$(cat /proc/sys/kernel/osrelease)" != "$TW_AFTER_MAJOR.$TW_AFTER_MINOR.$TW_AFTER_UP" ] && 
           [ "$(cat /proc/mounts | grep $DRBD_DEVICE)" = "" ] ; then
            /usr/bin/logger "DRBD on-node-upgraded handler: Promoting to primary after upgrade.";
            /usr/sbin/drbdsetup $DRBD_DEVICE primary;
        fi;
    }
}
  • Initialisez DRBD.
sudo drbdadm create-md myresource

Démarrez DRBD.

sudo systemctl start drbd
  1. Configurer le système de fichiers de cluster
    Vous avez le choix entre plusieurs systèmes de fichiers de cluster, tels que GFS2 et OCFS2. Ce qui suit est un exemple de configuration utilisant GFS2 comme exemple.
  • Créer un système de fichiers.
sudo mkfs.gfs2 -p lock_gulmd -t mycluster:myresource /dev/drbd0
  • Montez le système de fichiers.
sudo mkdir /mnt/mycluster
sudo mount -t gfs2 /dev/drbd0 /mnt/mycluster
  • Ajoutez des ressources du système de fichiers.
sudo pcs resource create myresource Filesystem device="/dev/drbd0" directory="/mnt/mycluster" fstype="gfs2"  op start  timeout="60s"  op stop  timeout="60s"  op monitor interval="10s"  op monitor timeout="20s"  op monitor start-delay="5s"  op monitor stop-delay="0s"
  • Activer et démarrer les ressources.
sudo pcs constraint order myresource-clone then start myresource
sudo pcs constraint colocation add myresource with myresource-clone
  1. Test haute disponibilité
    Après avoir terminé la configuration ci-dessus, vous pouvez tester la haute disponibilité. Voici les étapes de test :
  • Arrêtez le nœud maître.
sudo pcs cluster stop node1
  • Vérifiez si le système de fichiers fonctionne correctement sur le nœud de veille.
sudo mount | grep "/mnt/mycluster"

La sortie doit être l'adresse et le point de montage du nœud de secours.

  • Restaurez le nœud maître.
sudo pcs cluster start node1
  • Vérifiez si le système de fichiers est restauré sur le nœud maître.
sudo mount | grep "/mnt/mycluster"

La sortie doit être l'adresse et le point de montage du nœud maître.

Conclusion : 
La configuration d'un système de fichiers de cluster hautement disponible peut améliorer la fiabilité et la disponibilité du système. Cet article décrit comment configurer un système de fichiers de cluster hautement disponible sous Linux et fournit des exemples de code correspondants. Les lecteurs peuvent configurer et ajuster de manière appropriée en fonction de leurs propres besoins pour obtenir une plus grande disponibilité.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn