第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 リソースの管理が不適切になる場合があります。
手順
コントローラーノードから
hieraコマンドを実行し、MariaDB データベースの root パスワードを取得します。sudo hiera -c /etc/puppet/hiera.yaml "mysql::server::root_password" *[MYSQL-HIERA-PASSWORD]*
$ sudo hiera -c /etc/puppet/hiera.yaml "mysql::server::root_password" *[MYSQL-HIERA-PASSWORD]*Copy to Clipboard Copied! Toggle word wrap Toggle overflow ノードで実行される 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
$ 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-0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 各ノードの MariaDB データベースから、Write Set のレプリケーション情報を取得します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 関連する変数はそれぞれ
wsrepの接頭辞を使用します。- クラスターが正しいノード数を報告することを確認して、MariaDB Galera Cluster の健全性および整合性を検証します。