4.3. コントロールプレーンのバックアップ

コントロールプレーンをバックアップするには、まず Pacemaker クラスターおよびコントロールプレーンノード上で動作しているすべてのコンテナーを停止する必要があります。状態の整合性確保のためにスタックを操作しないでください。バックアップ手順が完了したら、Pacemaker クラスターおよびコンテナーを起動します。

Pacemaker クラスターおよびコンテナーを再起動した後にデータベースを復元できるように、データベースをバックアップする必要がある点に注意してください。

コントロールプレーンノードを同時にバックアップします。

前提条件

  • バックアップディレクトリーを作成し、エクスポートしている。詳細は、「バックアップノードの準備」を参照してください。
  • 各コントロールプレーンノードに ReaR をインストールし、設定している。詳細は、「ReaR のインストールおよび設定」を参照してください。
  • ネットワークインターフェースに OVS ブリッジを使用する場合には、以下の形式で NETWORKING_PREPARATION_COMMANDS パラメーターを /etc/rear/local.conf ファイルに追加して、OVS インターフェースを手動で設定します。

    NETWORKING_PREPARATION_COMMANDS=('<command_1>' '<command_2>' ...')

    <command_1> および <command_2> を、ネットワークインターフェース名または IP アドレスを設定するコマンドに置き換えます。たとえば、ip link add br-ctlplane type bridge コマンドを追加してコントロールプレーンのブリッジ名を設定するか、ip link set eth0 up コマンドを追加してインターフェースの名前を設定できます。ネットワーク設定に基づいて、パラメーターにさらにコマンドを追加します。

手順

  1. データベースのパスワードを特定します。

    [heat-admin@overcloud-controller-x ~]# PASSWORD=$(sudo /bin/hiera -c /etc/puppet/hiera.yaml mysql::server::root_password)
  2. データベースのバックアップを作成します。

    [heat-admin@overcloud-controller-x ~]# mysql -uroot -p$PASSWORD -s -N -e "select distinct table_schema from information_schema.tables where engine='innodb' and table_schema != 'mysql';" | xargs mysqldump -uroot -p$PASSWORD --single-transaction --databases > openstack-backup-mysql.sql
    [heat-admin@overcloud-controller-x ~]# mysql -uroot -p$PASSWORD -s -N -e "SELECT CONCAT('\"SHOW GRANTS FOR ''',user,'''@''',host,''';\"') FROM mysql.user where (length(user) > 0 and user NOT LIKE 'root')" | xargs -n1 mysql -uroot -p$PASSWORD -s -N -e | sed 's/$/;/' > openstack-backup-mysql-grants.sql
    注記

    データベースのバックアップは、万が一を考えての措置です。このステップにより、復元手順の一部として Galera クラスターが自動的に復元されない場合に、手動で復元することができます。Galera クラスターの復元に関する詳細は、「Galera クラスターに関するトラブルシューティング」を参照してください。

  3. コントロールプレーンノードのいずれかで、Pacemaker クラスターを停止します。

    重要

    スタックは操作しないでください。Pacemaker クラスターおよびコンテナーを停止すると、コンピュートノードへのコントロールプレーンサービスが一時的に中断します。また、ネットワーク接続、Ceph、および NFS データプレーンサービスにも中断が発生します。この手順の最終ステップに従い、Pacemaker クラスターおよびコンテナーがサービスに戻るまで、インスタンスの作成、インスタンスの移行、要求の認証、クラスターの健全性の監視はできません。

    [heat-admin@overcloud-controller-x ~]# sudo pcs cluster stop --all
  4. 各コントロールプレーンノードで、コンテナーを停止します。

    1. コンテナーを停止します。

      [heat-admin@overcloud-controller-x ~]# sudo docker stop $(sudo docker ps -a -q)
    2. ceph-mon@controller.service コンテナーを停止します。

      [heat-admin@overcloud-controller-x ~]# sudo systemctl stop ceph-mon@$(hostname -s)
    3. ceph-mgr@controller.service コンテナーを停止します。

      [heat-admin@overcloud-controller-x ~]# sudo systemctl stop ceph-mgr@$(hostname -s)
  5. オプション: ganesha-nfs を使用する場合は、1 つのコントローラー上のファイルサーバーを無効にします。

    [heat-admin@overcloud-controller-x ~]# sudo pcs resource disable ceph-nfs
  6. オプション: ceph サービスの ceph-mds および ceph-rgw を使用する場合は、以下のサービスを停止します。

    [heat-admin@overcloud-controller-x ~]# sudo systemctl stop ceph-mds@$(hostname -s)
    
    [heat-admin@overcloud-controller-x ~]# sudo systemctl stop ceph-rgw@$(hostname -s)
  7. コントロールプレーンをバックアップするには、各コントロールプレーンノードでコントロールプレーンのバックアップを実行します。

    [heat-admin@overcloud-controller-x ~]# sudo rear -d -v mkbackup

    ReaR で作成するバックアップの ISO ファイルは、バックアップノードの /ctl_plane_backups ディレクトリーにあります。

    注記

    バックアップコマンドを実行すると、tar コマンドおよび tar プロセス時に無視されるソケットに関する以下のような警告メッセージが表示されることがあります。

    WARNING: tar ended with return code 1 and below output:
    ---snip---
    tar: /var/spool/postfix/public/qmgr: socket ignored
    ...
    ...
    This message indicates that files have been modified during the archiving process and the backup might be inconsistent. Relax-and-Recover continues to operate, however, it is important that you verify the backup to ensure that you can use this backup to recover your system.
  8. バックアップ手順により各コントロールプレーンノードの ISO イメージが生成されたら、Pacemaker クラスターを再起動します。コントロールプレーンノードのいずれかで、以下のコマンドを入力します。

    [heat-admin@overcloud-controller-x ~]# sudo pcs cluster start --all
  9. 各コントロールプレーンノードで、コンテナーを起動します。

    1. コンテナーを起動します。

      [heat-admin@overcloud-controller-x ~]# sudo systemctl restart docker
    2. ceph-mon@controller.service コンテナーを起動します。

      [heat-admin@overcloud-controller-x ~]# sudo systemctl start ceph-mon@$(hostname -s)
    3. ceph-mgr@controller.service コンテナーを起動します。

      [heat-admin@overcloud-controller-x ~]# sudo systemctl start ceph-mgr@$(hostname -s)
  10. オプション: ceph-mds および ceph-rgw を使用する場合は、以下のサービスを起動します。

    [heat-admin@overcloud-controller-x ~]# sudo systemctl start ceph-rgw@$(hostname -s)
    [heat-admin@overcloud-controller-x ~]# sudo systemctl start ceph-mds@$(hostname -s)
  11. オプション: ganesha-nfs を使用する場合は、1 つのコントローラー上のファイルサーバーを有効にします。

    [heat-admin@overcloud-controller-x ~]# sudo pcs resource enable ceph-nfs