ホームページ >運用・保守 >Linuxの運用と保守 >Linux で高可用性データベース クラスター監視を構成する方法

Linux で高可用性データベース クラスター監視を構成する方法

WBOY
WBOYオリジナル
2023-07-05 11:13:36869ブラウズ

Linux で高可用性データベース クラスター監視を構成する方法

はじめに:
現代のエンタープライズ システムでは、データベースは重要なコンポーネントです。データベースの高可用性と継続的な安定した動作を確保するには、Linux 上で高可用性データベース クラスター監視を構成することが必要な手順です。この記事では、Linux 環境で高可用性データベース クラスター監視を構成する方法を紹介し、関連するコード例を示します。

1. データベース クラスターのインストールと構成
データベース クラスターの監視を構成する前に、まず信頼性の高いデータベース クラスターを構築する必要があります。 MySQL データベースを例として、MySQL データベース クラスターをインストールして構成する手順は次のとおりです。

  1. MySQL データベースをダウンロードしてインストールします
    各ノードで次のコマンドを実行します。インストールするには:

    $ sudo apt-get update
    $ sudo apt-get install mysql-server
  2. MySQL データベース マスター ノードの構成
    マスター ノードの MySQL 構成ファイル (通常は /etc/mysql/my.cnf にあります) を開き、次の手順を実行します。構成:

    [mysqld]
    server-id=1
    log-bin=mysql-bin
    binlog-format=ROW
  3. MySQL データベース スレーブ ノードの構成
    スレーブ ノードの MySQL 構成ファイルを開いて、次の構成を実行します:

    [mysqld]
    server-id=2
    relay-log=mysql-relay-bin
    log-bin=mysql-bin
    binlog-format=ROW
    read-only=1
  4. データベースを起動します
    各ノードで次のコマンドを実行してデータベース サーバーを起動します:

    $ sudo systemctl start mysql

2. Keepalived を使用して高可用性を実現します
Keepalived はオープン ソース ツールですサービスの高可用性を実現するために使用できます。 Keepalived を使用してデータベース クラスターの高可用性を構成する手順は次のとおりです。

  1. Keepalived のインストール
    インストールする各ノードで次のコマンドを実行します:

    $ sudo apt-get install keepalived
  2. Keepalived の構成
    Keepalived 構成ファイル (通常は /etc/keepalived/keepalived.conf 内) を開き、次のように構成します:

    vrrp_script check_mysql {
        script "/usr/bin/mysqladmin ping"
        interval 2
        weight -1
        fall 3
        rise 2
    }
    
    vrrp_instance VI_1 {
        interface eth0
        state BACKUP
        virtual_router_id 51
        priority 100
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass strongpassword
        }
        virtual_ipaddress {
            192.168.1.100
        }
        track_script {
            check_mysql
        }
    }
  3. Start Keepalived
    Inノード上で次のコマンドを実行して Keepalived サービスを開始します:

    $ sudo systemctl start keepalived

3. Pacemaker と Corosync を使用してクラスター監視を実装します
Pacemaker はクラスター管理と自動フェイルオーバーのためのツールです, while Corosync クラスター通信を実現するために使用されるソフトウェアです。 Pacemaker と Corosync を使用してデータベース クラスター監視を構成する手順は次のとおりです。

  1. Pacemaker と Corosync をインストールします
    インストールする各ノードで次のコマンドを実行します:

    $ sudo apt-get install pacemaker corosync
  2. Corosync の構成
    Corosync 構成ファイル (通常は /etc/corosync/corosync.conf にあります) を開き、以下を構成します:

    totem {
        version: 2
        secauth: on
        cluster_name: my_cluster
        transport: udpu
    }
    
    nodelist {
        node {
            ring0_addr: node1_ip
            name: node1
            nodeid: 1
        }
        node {
            ring0_addr: node2_ip
            name: node2
            nodeid: 2
        }
        /* Add more nodes as necessary */
    }
    
    quorum {
        provider: corosync_votequorum
    }
  3. Pacemaker の構成
    各ノードで次のコマンドを実行して、Pacemaker を構成します。

    $ sudo crm configure
    crm(live)> property no-quorum-policy=ignore
    crm(live)> rsc_defaults resource-stickiness=100
    crm(live)> rsc_defaults migration-threshold=1
    crm(live)> configure primitive mysql lsb:mysql op monitor interval=30s
    crm(live)> configure clone mysql-clone mysql meta clone-max=2 clone-node-max=1
    crm(live)> configure group mysql-group mysql-clone
    crm(live)> verify
    crm(live)> commit

結論:
上記の構成により、Linux 上で高可用性データベース クラスター監視を正常に実装できました。このようにして、ノード障害が発生した場合でもデータベース システムは稼働し続けることができ、システムの安定性と可用性が確保されます。

参考コード例:

  1. MySQL マスターノード設定ファイル例 (/etc/mysql/my.cnf):

    [mysqld]
    server-id=1
    log-bin=mysql-bin
    binlog-format=ROW
  2. MySQL スレーブ ノード設定ファイルの例 (/etc/mysql/my.cnf):

    [mysqld]
    server-id=2
    relay-log=mysql-relay-bin
    log-bin=mysql-bin
    binlog-format=ROW
    read-only=1
  3. Keepalived 設定ファイルの例 (/etc/keepalived/keepalived.conf):

    vrrp_script check_mysql {
    script "/usr/bin/mysqladmin ping"
    interval 2
    weight -1
    fall 3
    rise 2
    }
    
    vrrp_instance VI_1 {
    interface eth0
    state BACKUP
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass strongpassword
    }
    virtual_ipaddress {
        192.168.1.100
    }
    track_script {
        check_mysql
    }
    }
  4. Pacemaker 設定コマンドの例:

    $ sudo crm configure
    crm(live)> property no-quorum-policy=ignore
    crm(live)> rsc_defaults resource-stickiness=100
    crm(live)> rsc_defaults migration-threshold=1
    crm(live)> configure primitive mysql lsb:mysql op monitor interval=30s
    crm(live)> configure clone mysql-clone mysql meta clone-max=2 clone-node-max=1
    crm(live)> configure group mysql-group mysql-clone
    crm(live)> verify
    crm(live)> commit

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

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