Menu Close
Settings Close

Language and Page Formatting Options

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

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

他の Pacemaker サービスと同様に、pcs status コマンドを使用して、Galera サービスが実行されていることと、それが実行されているコントローラーノードを確認できます。Pacemaker バンドルステータスの表示についての詳細は、「バンドルのステータスの確認」を参照してください。

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

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

7.1. ホスト名の解決の確認

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

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

手順

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

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

    $ sudo docker ps | grep -i galera
    5fb195b0d9e8        192.168.24.1:8787/rh-osbs/rhosp13-openstack-mariadb:pcmklatest   "dumb-init -- /bin..."   7 hours ago         Up 7 hours  galera-bundle-docker-0
  3. 各ノードの MariaDB データベースから、Write Set のレプリケーション情報を取得します。

    $ sudo docker exec galera-bundle-docker-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 の健全性および整合性を検証します。