ホームページ  >  記事  >  運用・保守  >  Linux 上で高可用性クラスター ファイル システムを構成する方法

Linux 上で高可用性クラスター ファイル システムを構成する方法

WBOY
WBOYオリジナル
2023-07-07 13:18:071730ブラウズ

Linux で高可用性クラスター ファイル システムを構成する方法

はじめに:
コンピューター分野では、高可用性 (高可用性) は、システムの信頼性と可用性を向上させることを目的とした技術です。 . .クラスター環境では、可用性の高いファイル システムは、システムの継続的な運用を確保するための重要なコンポーネントの 1 つです。この記事では、Linux 上で高可用性クラスター ファイル システムを構成する方法と、対応するコード例を紹介します。

  1. ソフトウェア パッケージのインストール
    まず、必要なソフトウェア パッケージがシステムにインストールされていることを確認します。ほとんどの Linux ディストリビューションでは、これらのパッケージはパッケージ管理ツールを使用してインストールできます。一般的なソフトウェア パッケージは次のとおりです。
  • Pacemaker: ファイル システムのステータスとリソースを管理するためのクラスター管理ツール。
  • Corosync: クラスター環境を構築および維持するための通信ツール。
  • DRBD: ディスク ミラーリングの実装に使用される分散複製ブロック デバイス。
  • GFS2 または OCFS2: 高可用性クラスター ファイル システムを提供するために使用されます。

Ubuntu では、次のコマンドを使用してパッケージをインストールできます:

sudo apt-get install pacemaker corosync drbd8-utils gfs2-utils
  1. クラスター環境の構成
    まず、クラスター環境を構成する必要があります。ノード間の通信とリソース管理が含まれます。以下は、2 つのノード (node1 と node2) を使用した簡単な構成例です。
  • /etc/hosts ファイルを変更し、ノードの IP アドレスとホスト名を追加して、ノードが次のことを実行できるようにします。相互にアクセスします。
sudo nano /etc/hosts

次のコンテンツを追加します:

192.168.1.100    node1
192.168.1.101    node2
  • Corosync 通信を構成します。

Corosync 構成ファイルを作成します。

sudo nano /etc/corosync/corosync.conf

以下を追加します:

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
}
  • Corosync および Pacemaker サービスを有効にします。
sudo systemctl enable corosync
sudo systemctl enable pacemaker

サービスを開始します。

sudo systemctl start corosync
sudo systemctl start pacemaker
  1. DRBD の構成
    DRBD は、複数のノード間でディスク ミラーリングを実装するために使用される分散複製ブロック デバイスです。以下は、2 つのノード (node1 とnode2) があり、共有ブロック デバイスとして /dev/sdb を使用する DRBD の構成例です。
  • DRBD の構成。

DRBD 構成ファイルを作成します。

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

以下を追加します:

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;
    }
}
  • DRBD を初期化します。
sudo drbdadm create-md myresource

DRBD を開始します。

sudo systemctl start drbd
  1. クラスター ファイル システムの構成
    GFS2 や OCFS2 など、さまざまなクラスター ファイル システムから選択できます。 GFS2を例とした構成例を以下に示します。
  • ファイル システムを作成します。
sudo mkfs.gfs2 -p lock_gulmd -t mycluster:myresource /dev/drbd0
  • ファイル システムをマウントします。
sudo mkdir /mnt/mycluster
sudo mount -t gfs2 /dev/drbd0 /mnt/mycluster
  • ファイル システム リソースを追加します。
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"
  • リソースを有効にして開始します。
sudo pcs constraint order myresource-clone then start myresource
sudo pcs constraint colocation add myresource with myresource-clone
  1. 高可用性のテスト
    上記の構成を完了したら、高可用性をテストできます。テストの手順は次のとおりです。
  • マスター ノードを停止します。
sudo pcs cluster stop node1
  • スタンバイノードでファイルシステムが正常に動作しているか確認してください。
sudo mount | grep "/mnt/mycluster"

出力は、スタンバイ ノードのアドレスとマウント ポイントである必要があります。

  • マスター ノードを復元します。
sudo pcs cluster start node1
  • ファイル システムがプライマリ ノードに復元されているかどうかを確認します。
sudo mount | grep "/mnt/mycluster"

出力はマスター ノードのアドレスとマウント ポイントである必要があります。

結論:
高可用性クラスター ファイル システムを構成すると、システムの信頼性と可用性が向上します。この記事では、Linux 上で高可用性クラスター ファイル システムを構成する方法について説明し、対応するコード例を示します。リーダーは、自身のニーズに応じて適切に構成および調整して、より高い可用性を実現できます。

以上がLinux 上で高可用性クラスター ファイル システムを構成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。