第6章 Galera を使用したデータベースレプリケーションの管理

Red Hat OpenStack Platform では、データベースレプリケーションの管理に MariaDB Galera Cluster を使用します。Pacemaker は、データベースのマスター/スレーブのステータスを管理するバンドルセットリソースとして、Galera サービスを実行します。Galera を使用して、ホスト名の解決、クラスターの整合性、ノードの整合性、データベースレプリケーションのパフォーマンス等、データベースクラスターのさまざまな要素をテストおよび検証することができます。

データベースクラスターの整合性を詳しく調べる際には、各ノードは以下の条件を満たしている必要があります。

  • ノードが正しいクラスターの一部である。
  • ノードがクラスターに書き込み可能である。
  • ノードがクラスターからのクエリーおよび書き込みコマンドを受け取ることができる。
  • ノードがクラスター内の他のノードに接続されている。
  • ノードが Write Set をローカルデータベースのテーブルにレプリケーションしている。

6.1. MariaDB クラスターでのホスト名の解決の確認

MariaDB Galera クラスターのトラブルシューティングを行うには、まずホスト名解決の問題を取り除き、続いて各コントローラーノードのデータベースで Write Set のレプリケーションステータスを確認します。MySQL データベースにアクセスするには、オーバークラウドのデプロイメント時に director が設定したパスワードを使用します。

デフォルトでは、director は Galera リソースを IP アドレスにではなくホスト名にバインドします。そのため、ホスト名の解決を妨げる問題 (例: DNS の設定不良や異常など) が原因で、Pacemaker による Galera リソースの管理が不適切になる場合があります。

手順

  1. コントローラーノードから hiera コマンドを実行し、MariaDB データベースの root パスワードを取得します。

    $ sudo hiera -c /etc/puppet/hiera.yaml "mysql::server::root_password"
    *[MYSQL-HIERA-PASSWORD]*
  2. ノードで実行される MariaDB コンテナーの名前を取得します。

    $ sudo podman ps | grep -i galera
    a403d96c5026  undercloud.ctlplane.localdomain:8787/rhosp-rhel8/openstack-mariadb:16.0-106            /bin/bash /usr/lo...  3 hours ago  Up 3 hours ago         galera-bundle-podman-0
  3. 各ノードの MariaDB データベースから、Write Set のレプリケーション情報を取得します。

    $ sudo podman exec galera-bundle-podman-0 sudo mysql -B --password="[MYSQL-HIERA-PASSWORD]" -e "SHOW GLOBAL STATUS LIKE 'wsrep_%';"
        +----------------------------+----------+
        | Variable_name              | Value    |
        +----------------------------+----------+
        | wsrep_applier_thread_count | 1        |
        | wsrep_apply_oooe           | 0.018672 |
        | wsrep_apply_oool           | 0.000630 |
        | wsrep_apply_window         | 1.021942 |
        | ...                        | ...      |
        +----------------------------+----------+

    関連する変数はそれぞれ wsrep の接頭辞を使用します。

  4. クラスターが正しいノード数を報告することを確認して、MariaDB Galera Cluster の健全性および整合性を検証します。