アンダークラウドとコントロールプレーンのバックアップおよびリストア
更新/アップグレード時に、アンダークラウドとオーバークラウドのコントロールプレーンをバックアップおよびリストアする手順
概要
第1章 アンダークラウドとコントロールプレーンのバックアップおよびリストア リンクのコピーリンクがクリップボードにコピーされました!
本ガイドの手順を使用して、更新/アップグレードの前に、Red Hat OpenStack Platform 13 のアンダークラウドおよびオーバークラウドのコントローラーノード (以下、コントロールプレーンノードと呼びます) の状態をバックアップするステップを説明します。この手順により、更新またはアップグレード時にエラーが発生した場合に、アンダークラウドおよびオーバークラウドのコントロールプレーンノードを以前の状態にリストアすることができます。
1.1. 背景 リンクのコピーリンクがクリップボードにコピーされました!
本ガイドの手順では、Bash で書かれたオープンソースの災害復旧ソリューション Relax and Recover (ReaR) を使用します。ReaR は、アンダークラウドまたはコントロールプレーンノードの最新状態で設定されるブート可能なイメージを作成します。ReaR を使用すると、システム管理者はバックアップを作成するファイルを選択することもできます。
ReaR では、以下に示すさまざまなブートメディア用フォーマットがサポートされます。
- ISO
- USB
- eSATA
- PXE
本書に記載する例は、ISO ブートフォーマットを使用してテストされています。
ReaR は、以下に示すさまざまなプロトコルを使用してブートイメージを転送することができます。
- HTTP/HTTPS
- SSH/SCP
- FTP/SFTP
- NFS
- CIFS (SMB)
Red Hat OpenStack Platform 13 のアンダークラウドとオーバークラウドのコントロールプレーンノードをバックアップおよびリストアする目的で、本書に記載する例は、NFS を使用してテストされています。
1.2. バックアップ管理オプション リンクのコピーリンクがクリップボードにコピーされました!
ReaR では、内部および外部両方のバックアップ管理オプションを使用することができます。
内部バックアップ管理
内部バックアップ管理オプションを以下に示します。
-
tar -
rsync
外部バックアップ管理
外部バックアップ管理オプションには、オープンソースのソリューションおよびプロプライエタリーのソリューションの両方が含まれます。オープンソースのソリューションを以下に示します。
- Bacula
- Bareos
プロプライエタリーのソリューションを以下に示します。
- EMC NetWorker (Legato)
- HP DataProtector
- IBM Tivoli Storage Manager (TSM)
- Symantec NetBackup
第2章 バックアップノードの準備 リンクのコピーリンクがクリップボードにコピーされました!
アンダークラウドまたはコントロールプレーンノードをバックアップする前に、バックアップイメージを受け入れるバックアップノードを準備します。
2.1. NFS サーバーの準備 リンクのコピーリンクがクリップボードにコピーされました!
ReaR では、複数の転送手段を使用することができます。Red Hat は、NFS を使用した ReaR によるバックアップおよびリストアをサポートします。
バックアップノードに NFS サーバーをインストールします。
yum install -y nfs-utils
[root@backup ~]# yum install -y nfs-utilsCopy to Clipboard Copied! Toggle word wrap Toggle overflow ファイアウォールに NFS サービスを追加して、ポート
111および2049が開放されている状態にします。以下に例を示します。firewall-cmd --add-service=nfs firewall-cmd --add-service=nfs --permanent
[root@backup ~]# firewall-cmd --add-service=nfs [root@backup ~]# firewall-cmd --add-service=nfs --permanentCopy to Clipboard Copied! Toggle word wrap Toggle overflow NFS サーバーを有効にし、さらに起動します。
systemctl enable nfs-server systemctl restart nfs-server
[root@backup ~]# systemctl enable nfs-server [root@backup ~]# systemctl restart nfs-serverCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.2. バックアップディレクトリーの作成およびエクスポート リンクのコピーリンクがクリップボードにコピーされました!
バックアップ用 ISO イメージをアンダークラウドまたはコントロールプレーンノードからバックアップノードにコピーするには、バックアップディレクトリーを作成する必要があります。
前提条件
- NFS サーバーをインストールして有効にしている。詳しい情報は、NFS サーバーの準備 を参照してください。
手順
バックアップディレクトリーを作成します。
mkdir /ctl_plane_backups
[root@backup ~]# mkdir /ctl_plane_backupsCopy to Clipboard Copied! Toggle word wrap Toggle overflow ディレクトリーをエクスポートします。
<IP_ADDRESS/24>を IP アドレスおよびネットワークのサブネットマスクに置き換えてください。[root@backup ~]# cat >> /etc/exports << EOF /ctl_plane_backups <IP_ADDRESS/24>(rw,sync,no_root_squash,no_subtree_check) EOF
[root@backup ~]# cat >> /etc/exports << EOF /ctl_plane_backups <IP_ADDRESS/24>(rw,sync,no_root_squash,no_subtree_check) EOFCopy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/exportsファイルのエントリーは、スペース区切りリストの形式です。アンダークラウドおよびオーバークラウドのコントロールプレーンノードが異なるネットワークまたはサブネットを使用している場合には、以下の例に示すように、それぞれのネットワークまたはサブネットについて、このステップを繰り返します。cat >> /etc/exports << EOF /ctl_plane_backups 192.168.24.0/24(rw,sync,no_root_squash,no_subtree_check) / ctl_plane_backups 10.0.0.0/24(rw,sync,no_root_squash,no_subtree_check) / ctl_plane_backups 172.16.0.0/24(rw,sync,no_root_squash,no_subtree_check) EOF
cat >> /etc/exports << EOF /ctl_plane_backups 192.168.24.0/24(rw,sync,no_root_squash,no_subtree_check) / ctl_plane_backups 10.0.0.0/24(rw,sync,no_root_squash,no_subtree_check) / ctl_plane_backups 172.16.0.0/24(rw,sync,no_root_squash,no_subtree_check) EOFCopy to Clipboard Copied! Toggle word wrap Toggle overflow NFS サーバーを再起動します。
systemctl restart nfs-server
[root@backup ~]# systemctl restart nfs-serverCopy to Clipboard Copied! Toggle word wrap Toggle overflow エントリーが NFS サーバーで正しく設定されていることを確認します。
showmount -e `hostname`
[root@backup ~]# showmount -e `hostname`Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第3章 Relax and Recover (ReaR) のインストールおよび設定 リンクのコピーリンクがクリップボードにコピーされました!
アンダークラウドおよびオーバークラウドのコントロールプレーンをバックアップするには、まずアンダークラウドおよび各コントロールプレーンノードに ReaR をインストール/設定する必要があります。
3.1. ReaR のインストール リンクのコピーリンクがクリップボードにコピーされました!
アンダークラウドおよびコントロールプレーンをバックアップする前に、Relax and Recover (ReaR) パッケージおよび ISO イメージを生成するためのパッケージを、アンダークラウドノードおよび各コントロールプレーンノードにインストールする必要があります。
手順
ReaR パッケージおよび ISO イメージを生成するためのパッケージを、アンダークラウドノードおよび各コントロールプレーンノードにインストール
yum install rear genisoimage nfs-utils -y
[root@controller-x ~]# yum install rear genisoimage nfs-utils -yCopy to Clipboard Copied! Toggle word wrap Toggle overflow 今後のアップグレードの問題を回避するには、予定されている ReaR cron タスクを削除します。
rm -f /etc/cron.d/rear
[root@controller-x ~]# rm -f /etc/cron.d/rearCopy to Clipboard Copied! Toggle word wrap Toggle overflow アンダークラウドおよび各コントロールプレーンノードにバックアップディレクトリーを作成します。
mkdir -p /ctl_plane_backups
[root@controller-x ~]# mkdir -p /ctl_plane_backupsCopy to Clipboard Copied! Toggle word wrap Toggle overflow NFS を実行するバックアップノードの
ctl_plane_backupsNFS ディレクトリーを、アンダークラウドおよび各コントロールプレーンノードにマウントします。mount -t nfs <BACKUP_NODE_IP_ADDRESS>:/ctl_plane_backups /ctl_plane_backups
[root@controller-x ~]# mount -t nfs <BACKUP_NODE_IP_ADDRESS>:/ctl_plane_backups /ctl_plane_backupsCopy to Clipboard Copied! Toggle word wrap Toggle overflow <BACKUP_NODE_IP_ADDRESS>を NFS サーバーを実行するバックアップノードの IP アドレスに置き換えてください。
3.2. ReaR 設定ファイルの作成 リンクのコピーリンクがクリップボードにコピーされました!
Relax and Recovery (ReaR) をアンダークラウドノードおよび各コントロールプレーンノードにインストールしたら、root ユーザーとして設定ファイルを作成します。
手順
ReaR 設定ファイルを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
<NODE_HOSTNAME>をノードのホスト名に置き換えてください。たとえば、ノードのホスト名がcontroller-0の場合は、<NODE_HOSTNAME>をcontroller-0に置き換えます。 <BACKUP_NODE_IP_ADDRESS>を、NFS サーバーを実行するバックアップノードの IP アドレスに置き換えます。これは、バックアップノードの準備時に設定した IP アドレスです。詳細は、2章バックアップノードの準備 を参照してください。重要アンダークラウドまたはコントロールプレーンノードがブートモード UEFI を使用する場合は、設定ファイルに
USING_UEFI_BOOTLOADER=1を追加する必要があります。
-
ネットワークインターフェイスに OVS ブリッジを使用する場合は、次の設定を
/etc/rear/local.confファイルに追加して、リカバリープロセスがネットワーク経由でバックアップを取得できるようにします。NETWORKING_PREPARATION_COMMANDS=('<command_1>' '<command_2>' ... '<command_n>')NETWORKING_PREPARATION_COMMANDS=('<command_1>' '<command_2>' ... '<command_n>')Copy to Clipboard Copied! Toggle word wrap Toggle overflow <command_1>、および<command_n>までのすべてのコマンドを、ネットワーク設定を設定するために必要なコマンドに置き換えます。次に例を示します。-
コントロールプレーンブリッジ名を設定するには、
ip link add br-ctlplane type bridgeコマンドを追加します。 -
インターフェイスの名前を設定するには、
ip link set eth0 upコマンドを追加します。
-
コントロールプレーンブリッジ名を設定するには、
rescue.confファイルを作成します。[root@controller-x ~]# tee -a "/etc/rear/rescue.conf" > /dev/null <<'EOF' BACKUP_PROG_OPTIONS+=( --anchored --xattrs-include='*.*' --xattrs ) EOF
[root@controller-x ~]# tee -a "/etc/rear/rescue.conf" > /dev/null <<'EOF' BACKUP_PROG_OPTIONS+=( --anchored --xattrs-include='*.*' --xattrs ) EOFCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第4章 バックアップ手順の実行 リンクのコピーリンクがクリップボードにコピーされました!
Fast Forward Upgrade を実施する前に、アンダークラウドおよびオーバークラウドのコントロールプレーンノードをバックアップし、エラーが発生した場合に以前の状態に復元できるようにします。
アンダークラウドおよびオーバークラウドのバックアップを作成する前に、アンダークラウドからオーバークラウドに対する操作を実施しないようにしてください。
4.1. アンダークラウドのバックアップ作成前の前提条件タスクの実行 リンクのコピーリンクがクリップボードにコピーされました!
アンダークラウドをデプロイする場合や、既存のアンダークラウドに変更を加える場合には、アンダークラウドのバックアップを実行しないでください。
データの破損を防ぐには、アンダークラウドノードをバックアップする前に、スタックのエラーや実行中のタスクがないこと、および mariadb を除くすべての OpenStack サービスが停止していることを確認してください。
手順
スタックでエラーが発生していないことを確認します。
<STACKNAME>はスタック名に置き換えてください。デプロイして利用可能なすべてのスタックにコマンドを使用します。openstack stack failures list <STACKNAME>
(undercloud) [stack@undercloud-0 ~]$ openstack stack failures list <STACKNAME>Copy to Clipboard Copied! Toggle word wrap Toggle overflow アンダークラウドで実行中のタスクがないことを確認します。
openstack stack list --nested | grep -v "_COMPLETE"
(undercloud) [stack@undercloud-0 ~]$ openstack stack list --nested | grep -v "_COMPLETE"Copy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドによって結果が返されなければ、実行中のタスクはありません。
アンダークラウド上のすべての OpenStack サービスを停止します。
systemctl stop openstack-* systemctl stop neutron-* systemctl stop ironic* systemctl stop haproxy systemctl stop httpd
# systemctl stop openstack-* # systemctl stop neutron-* # systemctl stop ironic* # systemctl stop haproxy # systemctl stop httpdCopy to Clipboard Copied! Toggle word wrap Toggle overflow mariadbが実行していることを確認します。sudo systemctl status mariadb
# sudo systemctl status mariadbCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.2. アンダークラウドのバックアップ リンクのコピーリンクがクリップボードにコピーされました!
アンダークラウドノードをバックアップするには、アンダークラウドノードで root ユーザーとしてログインする必要があります。データベースを復元できるように、バックアップを作成する必要がある点に注意してください。
前提条件
- バックアップディレクトリーを作成し、エクスポートしている。詳細は、バックアップディレクトリーの作成およびエクスポート を参照してください。
- アンダークラウドをバックアップする前の、前提条件のタスクを実施している。詳細は、バックアップディレクトリーの作成およびエクスポート を参照してください。
- 各コントロールプレーンノードに ReaR をインストールし、設定している。詳細は、Relax and Recover (ReaR) のインストールと設定 を参照してください。
手順
データベースのパスワードを特定します。
PASSWORD=$(sudo /bin/hiera -c /etc/puppet/hiera.yaml mysql::server::root_password)
[root@undercloud stack]# PASSWORD=$(sudo /bin/hiera -c /etc/puppet/hiera.yaml mysql::server::root_password)Copy to Clipboard Copied! Toggle word wrap Toggle overflow データベースのバックアップを作成します。
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
[root@undercloud stack]# 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.sqlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 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[root@undercloud stack]# 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.sqlCopy to Clipboard Copied! Toggle word wrap Toggle overflow mariadbデータベースサービスを停止します。systemctl stop mariadb
[root@undercloud stack]# systemctl stop mariadbCopy to Clipboard Copied! Toggle word wrap Toggle overflow バックアップを作成します。
rear -d -v mkbackup
[root@undercloud stack]# rear -d -v mkbackupCopy to Clipboard Copied! Toggle word wrap Toggle overflow ReaR で作成するバックアップの ISO ファイルは、バックアップノードの
/ctl_plane_backupsディレクトリーにあります。アンダークラウドを再起動します。
- アンダークラウドに stack ユーザーとしてログインします。
アンダークラウドを再起動します。
sudo reboot
[stack@undercloud]$ sudo rebootCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.3. コントロールプレーンのバックアップ リンクのコピーリンクがクリップボードにコピーされました!
コントロールプレーンをバックアップするには、まず Pacemaker クラスターおよびコントロールプレーンノード上で動作しているすべてのコンテナーを停止する必要があります。状態の整合性確保のためにスタックを操作しないでください。バックアップ手順が完了したら、Pacemaker クラスターおよびコンテナーを起動します。
Pacemaker クラスターおよびコンテナーを再起動した後にデータベースを復元できるように、データベースをバックアップする必要がある点に注意してください。
コントロールプレーンノードを同時にバックアップします。
前提条件
- バックアップディレクトリーを作成し、エクスポートしている。詳細は、バックアップディレクトリーの作成およびエクスポート を参照してください。
- 各コントロールプレーンノードに ReaR をインストールし、設定している。詳細は、Relax and Recover (ReaR) のインストールと設定 を参照してください。
手順
データベースのパスワードを特定します。
PASSWORD=$(sudo /bin/hiera -c /etc/puppet/hiera.yaml mysql::server::root_password)
[heat-admin@overcloud-controller-x ~]# PASSWORD=$(sudo /bin/hiera -c /etc/puppet/hiera.yaml mysql::server::root_password)Copy to Clipboard Copied! Toggle word wrap Toggle overflow データベースのバックアップを作成します。
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 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.sqlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 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[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.sqlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記データベースのバックアップは、万が一を考えての措置です。このステップにより、復元手順の一部として Galera クラスターが自動的に復元されない場合に、手動で復元することができます。Galera クラスターの復元に関する詳細は、Galera クラスターに関するトラブルシューティング を参照してください。
コントロールプレーンノードのいずれかで、Pacemaker クラスターを停止します。
重要スタックは操作しないでください。Pacemaker クラスターおよびコンテナーを停止すると、コンピュートノードへのコントロールプレーンサービスが一時的に中断します。また、ネットワーク接続、Ceph、および NFS データプレーンサービスにも中断が発生します。この手順の最終ステップに従い、Pacemaker クラスターおよびコンテナーがサービスに戻るまで、インスタンスの作成、インスタンスの移行、要求の認証、クラスターの健全性の監視はできません。
sudo pcs cluster stop --all
[heat-admin@overcloud-controller-x ~]# sudo pcs cluster stop --allCopy to Clipboard Copied! Toggle word wrap Toggle overflow 各コントロールプレーンノードで、コンテナーを停止します。
コンテナーを停止します。
sudo docker stop $(sudo docker ps -a -q)
[heat-admin@overcloud-controller-x ~]# sudo docker stop $(sudo docker ps -a -q)Copy to Clipboard Copied! Toggle word wrap Toggle overflow ceph-mon@controller.service コンテナーを停止します。
sudo systemctl stop ceph-mon@$(hostname -s)
[heat-admin@overcloud-controller-x ~]# sudo systemctl stop ceph-mon@$(hostname -s)Copy to Clipboard Copied! Toggle word wrap Toggle overflow ceph-mgr@controller.service コンテナーを停止します。
sudo systemctl stop ceph-mgr@$(hostname -s)
[heat-admin@overcloud-controller-x ~]# sudo systemctl stop ceph-mgr@$(hostname -s)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
オプション:
ganesha-nfsを使用する場合は、1 つのコントローラー上のファイルサーバーを無効にします。sudo pcs resource disable ceph-nfs
[heat-admin@overcloud-controller-x ~]# sudo pcs resource disable ceph-nfsCopy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: ceph サービスの
ceph-mdsおよびceph-rgwを使用する場合は、以下のサービスを停止します。sudo systemctl stop ceph-mds@$(hostname -s) sudo systemctl stop ceph-rgw@$(hostname -s)
[heat-admin@overcloud-controller-x ~]# sudo systemctl stop ceph-mds@$(hostname -s) [heat-admin@overcloud-controller-x ~]# sudo systemctl stop ceph-rgw@$(hostname -s)Copy to Clipboard Copied! Toggle word wrap Toggle overflow コントロールプレーンをバックアップするには、各コントロールプレーンノードでコントロールプレーンのバックアップを実行します。
sudo rear -d -v mkbackup
[heat-admin@overcloud-controller-x ~]# sudo rear -d -v mkbackupCopy to Clipboard Copied! Toggle word wrap Toggle overflow ReaR で作成するバックアップの ISO ファイルは、バックアップノードの
/ctl_plane_backupsディレクトリーにあります。注記バックアップコマンドを実行すると、
tarコマンドおよび tar プロセス時に無視されるソケットに関する以下のような警告メッセージが表示されることがあります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow バックアップ手順により各コントロールプレーンノードの ISO イメージが生成されたら、Pacemaker クラスターを再起動します。コントロールプレーンノードのいずれかで、以下のコマンドを入力します。
sudo pcs cluster start --all
[heat-admin@overcloud-controller-x ~]# sudo pcs cluster start --allCopy to Clipboard Copied! Toggle word wrap Toggle overflow 各コントロールプレーンノードで、コンテナーを起動します。
コンテナーを起動します。
sudo systemctl restart docker
[heat-admin@overcloud-controller-x ~]# sudo systemctl restart dockerCopy to Clipboard Copied! Toggle word wrap Toggle overflow ceph-mon@controller.serviceコンテナーを起動します。sudo systemctl start ceph-mon@$(hostname -s)
[heat-admin@overcloud-controller-x ~]# sudo systemctl start ceph-mon@$(hostname -s)Copy to Clipboard Copied! Toggle word wrap Toggle overflow ceph-mgr@controller.serviceコンテナーを起動します。sudo systemctl start ceph-mgr@$(hostname -s)
[heat-admin@overcloud-controller-x ~]# sudo systemctl start ceph-mgr@$(hostname -s)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
オプション:
ceph-mdsおよびceph-rgwを使用する場合は、以下のサービスを起動します。sudo systemctl start ceph-rgw@$(hostname -s) sudo systemctl start ceph-mds@$(hostname -s)
[heat-admin@overcloud-controller-x ~]# sudo systemctl start ceph-rgw@$(hostname -s) [heat-admin@overcloud-controller-x ~]# sudo systemctl start ceph-mds@$(hostname -s)Copy to Clipboard Copied! Toggle word wrap Toggle overflow オプション:
ganesha-nfsを使用する場合は、1 つのコントローラー上のファイルサーバーを有効にします。sudo pcs resource enable ceph-nfs
[heat-admin@overcloud-controller-x ~]# sudo pcs resource enable ceph-nfsCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第5章 復元手順の実行 リンクのコピーリンクがクリップボードにコピーされました!
更新またはアップグレード中にエラーが発生した場合には、アンダークラウドもしくはオーバークラウドのコントロールプレーンノードのいずれか (またはその両方) をリストアして、以前の状態にすることができます。復元手順の一部として Galera クラスターが自動的に復元されない場合は、クラスターを手動で復元する必要があります。
コロケーションされた Ceph モニターを持つアンダークラウドまたはオーバークラウドのコントロールプレーンノードを復元することもできます。
ISO ファイルからブートする場合には、アンダークラウドおよびオーバークラウドが NFS サーバーにアクセスできるようにします。
以下の一般的な手順を使用します。
- ブート可能な ISO イメージを DVD に書き込むか、または ILO リモートアクセスを通じてイメージを読み込みます。
- リカバリーメディアからリストアが必要なノードをブートします。
-
Recover <HOSTNAME> を選択します。
<HOSTNAME>は復元するノードの名前に置き換えてください。 -
ユーザー
rootとしてログオンします。 - バックアップを復元します。
5.1. アンダークラウドの復元 リンクのコピーリンクがクリップボードにコピーされました!
Fast Forward Upgrade を実施中にエラーが発生した場合には、「アンダークラウドのバックアップ」に記載の手順により作成した ISO イメージを使用して、アンダークラウドノードを以前に保存した状態にリストアすることができます。バックアップの手順により、ISO イメージは「バックアップディレクトリーの作成およびエクスポート」のステップで作成したバックアップノードのフォルダーに保存されます。
手順
- アンダークラウドノードをシャットダウンします。次のステップに進む前に、アンダークラウドノードが完全にシャットダウンされていることを確認します。
-
バックアッププロセス中に作成した ISO イメージを使用してアンダークラウドノードをブートし、リストアします。ISO イメージは、バックアップノードの
/ctl_plane_backupsディレクトリーにあります。 - Relax-and-Recover ブートメニューが表示されたら、Recover <UNDERCLOUD_NODE> を選択します。<UNDERCLOUD_NODE> は、アンダークラウドノードの名前になります。
rootユーザーとしてログインします。以下のメッセージが表示されます。
Welcome to Relax-and-Recover. Run "rear recover" to restore your system! RESCUE <UNDERCLOUD_NODE>:~ # rear recover
Welcome to Relax-and-Recover. Run "rear recover" to restore your system! RESCUE <UNDERCLOUD_NODE>:~ # rear recoverCopy to Clipboard Copied! Toggle word wrap Toggle overflow イメージのリストアがすぐに行われます。完了すると、コンソールは以下のメッセージを受信します。
Finished recovering your system Exiting rear recover Running exit tasks
Finished recovering your system Exiting rear recover Running exit tasksCopy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドラインインターフェイスが利用できる状態になったら、イメージのリストアプロセスは完了です。ノードの電源をオフにします。
RESCUE <UNDERCLOUD_NODE>:~ # poweroff
RESCUE <UNDERCLOUD_NODE>:~ # poweroffCopy to Clipboard Copied! Toggle word wrap Toggle overflow ノードをブートすると、以前の状態で再開されます。
5.2. コントロールプレーンの復元 リンクのコピーリンクがクリップボードにコピーされました!
Fast Forward Upgrade を実施中にエラーが発生した場合には、「コントロールプレーンのバックアップ」に記載の手順により作成した ISO イメージを使用して、コントロールプレーンノードを以前に保存した状態にリストアすることができます。コントロールプレーンをリストアする場合には、状態の整合性を確保するために、すべてのコントロールプレーンノードを以前の状態にリストアする必要があります。
Red Hat は、Open vSwitch (OVS) およびデフォルトの Open Virtual Network (OVN) などのネイティブ SDN を使用する Red Hat OpenStack Platform のバックアップをサポートします。サードパーティーの SDN についての詳細は、サードパーティーの SDN ドキュメントを参照してください。
手順
- 各コントロールプレーンノードをシャットダウンします。次のステップに進む前に、コントロールプレーンノードが完全にシャットダウンされていることを確認します。
-
バックアッププロセス中に作成した ISO イメージを使用してコントロールプレーンノードをブートし、リストアします。ISO イメージは、バックアップノードの
/ctl_plane_backupsディレクトリーにあります。 Relax-and-Recover ブートメニュー が表示されたら、Recover <CONTROL_PLANE_NODE> を選択します。<CONTROL_PLANE_NODE> をコントロールプレーンノードの名前に置き換えます。
以下のメッセージが表示されます。
Welcome to Relax-and-Recover. Run "rear recover" to restore your system! RESCUE <CONTROL_PLANE_NODE>:~ # rear recover
Welcome to Relax-and-Recover. Run "rear recover" to restore your system! RESCUE <CONTROL_PLANE_NODE>:~ # rear recoverCopy to Clipboard Copied! Toggle word wrap Toggle overflow イメージのリストアがすぐに行われます。リストアが完了すると、コンソールは以下のメッセージを受信します。
Finished recovering your system Exiting rear recover Running exit tasks
Finished recovering your system Exiting rear recover Running exit tasksCopy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドラインインターフェイスが利用できる状態になったら、イメージのリストアプロセスは完了です。ノードの電源をオフにします。
RESCUE <CONTROL_PLANE_NODE>:~ # poweroff
RESCUE <CONTROL_PLANE_NODE>:~ # poweroffCopy to Clipboard Copied! Toggle word wrap Toggle overflow ブートシーケンスを通常のブートデバイスに設定します。ノードをブートすると、以前の状態で再開されます。
サービスが正常に実行されていることを確認するには、pacemaker のステータスを確認します。
rootユーザーとしてコントローラーにログインし、以下のコマンドを実行します。pcs status
# pcs statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow - オーバークラウドのステータスを確認するには、Tempest を使用します。Tempest の詳細は、OpenStack Integration Test Suite Guide の Configuring the OpenStack Integration Test Suite を参照してください。
5.3. Galera クラスターに関するトラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
復元手順の一部として Galera クラスターが復元されない場合は、Galera を手動で復元する必要があります。
以下の手順では、1 つのコントローラーノードでいくつかのステップを実施する必要があります。手順の実施と同じコントローラーノードで、これらのステップを実施するようにしてください。
手順
Controller-0 で、Galera クラスターの仮想 IP を取得します。
sudo hiera -c /etc/puppet/hiera.yaml mysql_vip
$ sudo hiera -c /etc/puppet/hiera.yaml mysql_vipCopy to Clipboard Copied! Toggle word wrap Toggle overflow すべてのコントローラーノードで、仮想 IP を通じたデータベース接続を無効にします。
sudo iptables -I INPUT -p tcp --destination-port 3306 -d $MYSQL_VIP -j DROP
$ sudo iptables -I INPUT -p tcp --destination-port 3306 -d $MYSQL_VIP -j DROPCopy to Clipboard Copied! Toggle word wrap Toggle overflow Controller-0 で MySQL の root パスワードを取得します。
sudo hiera -c /etc/puppet/hiera.yaml mysql::server::root_password
$ sudo hiera -c /etc/puppet/hiera.yaml mysql::server::root_passwordCopy to Clipboard Copied! Toggle word wrap Toggle overflow Controller-0 で、Galera リソースを
unmanagedモードに設定します。sudo pcs resource unmanage galera-bundle
$ sudo pcs resource unmanage galera-bundleCopy to Clipboard Copied! Toggle word wrap Toggle overflow すべてのコントローラーノードで、MySQL コンテナーを停止します。
sudo docker container stop $(sudo docker container ls --all --format “{{.Names}}” --filter=name=galera-bundle)$ sudo docker container stop $(sudo docker container ls --all --format “{{.Names}}” --filter=name=galera-bundle)Copy to Clipboard Copied! Toggle word wrap Toggle overflow すべてのコントローラーノードで、現在のディレクトリーを移動します。
sudo mv /var/lib/mysql /var/lib/mysql-save
$ sudo mv /var/lib/mysql /var/lib/mysql-saveCopy to Clipboard Copied! Toggle word wrap Toggle overflow すべてのコントローラーノードで、新規ディレクトリー
/var/lib/mysqを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow すべてのコントローラーノードで、MySQL コンテナーを起動します。
sudo docker container start $(sudo docker container ls --all --format "{{ .Names }}" --filter=name=galera-bundle)$ sudo docker container start $(sudo docker container ls --all --format "{{ .Names }}" --filter=name=galera-bundle)Copy to Clipboard Copied! Toggle word wrap Toggle overflow すべてのコントローラーノードで、MySQL データベースを作成します。
sudo docker exec -i $(sudo docker container ls --all --format "{{ .Names }}" \ --filter=name=galera-bundle) bash -c "mysql_install_db --datadir=/var/lib/mysql --user=mysql"$ sudo docker exec -i $(sudo docker container ls --all --format "{{ .Names }}" \ --filter=name=galera-bundle) bash -c "mysql_install_db --datadir=/var/lib/mysql --user=mysql"Copy to Clipboard Copied! Toggle word wrap Toggle overflow すべてのコントローラーノードで、データベースを起動します。
sudo docker exec $(sudo docker container ls --all --format "{{ .Names }}" \ --filter=name=galera-bundle) bash -c "mysqld_safe --skip-networking --wsrep-on=OFF" &$ sudo docker exec $(sudo docker container ls --all --format "{{ .Names }}" \ --filter=name=galera-bundle) bash -c "mysqld_safe --skip-networking --wsrep-on=OFF" &Copy to Clipboard Copied! Toggle word wrap Toggle overflow すべてのコントローラーノードで、
.my.cnfGalera 設定ファイルを移動します。sudo docker exec $(sudo docker container ls --all --format "{{ .Names }}" \ --filter=name=galera-bundle) bash -c "mv /root/.my.cnf /root/.my.cnf.bck"$ sudo docker exec $(sudo docker container ls --all --format "{{ .Names }}" \ --filter=name=galera-bundle) bash -c "mv /root/.my.cnf /root/.my.cnf.bck"Copy to Clipboard Copied! Toggle word wrap Toggle overflow すべてのコントローラーノードで、Galera root パスワードをリセットします。
sudo docker exec $(sudo docker container ls --all --format "{{ .Names }}" \ --filter=name=galera-bundle) bash -c "mysql -uroot -e'use mysql;update user set password=PASSWORD(\"$ROOTPASSWORD\")where User=\"root\";flush privileges;'"$ sudo docker exec $(sudo docker container ls --all --format "{{ .Names }}" \ --filter=name=galera-bundle) bash -c "mysql -uroot -e'use mysql;update user set password=PASSWORD(\"$ROOTPASSWORD\")where User=\"root\";flush privileges;'"Copy to Clipboard Copied! Toggle word wrap Toggle overflow すべてのコントローラーノード上の Galera コンテナー内で、
.my.cnfGalera 設定ファイルを復元します。sudo docker exec $(sudo docker container ls --all --format "{{ .Names }}" \ --filter=name=galera-bundle) bash -c "mv /root/.my.cnf.bck /root/.my.cnf"$ sudo docker exec $(sudo docker container ls --all --format "{{ .Names }}" \ --filter=name=galera-bundle) bash -c "mv /root/.my.cnf.bck /root/.my.cnf"Copy to Clipboard Copied! Toggle word wrap Toggle overflow Controller-0 で、バックアップデータベースファイルを
/var/lib/MySQLにコピーします。sudo cp $BACKUP_FILE /var/lib/mysql sudo cp $BACKUP_GRANT_FILE /var/lib/mysql
$ sudo cp $BACKUP_FILE /var/lib/mysql $ sudo cp $BACKUP_GRANT_FILE /var/lib/mysqlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記これらのファイルへのパスは /home/heat-admin/ です。
Controller-0 で、MySQL データベースを復元します。
sudo docker exec $(docker container ls --all --format "{{ .Names }}" \ --filter=name=galera-bundle) bash -c "mysql -u root -p$ROOT_PASSWORD < \"/var/lib/mysql/$BACKUP_FILE \" " sudo docker exec $(sudo docker container ls --all --format "{{ .Names }}" \ --filter=name=galera-bundle) bash -c "mysql -u root -p$ROOT_PASSWORD < \"/var/lib/mysql/$BACKUP_GRANT_FILE \" "$ sudo docker exec $(docker container ls --all --format "{{ .Names }}" \ --filter=name=galera-bundle) bash -c "mysql -u root -p$ROOT_PASSWORD < \"/var/lib/mysql/$BACKUP_FILE \" " $ sudo docker exec $(sudo docker container ls --all --format "{{ .Names }}" \ --filter=name=galera-bundle) bash -c "mysql -u root -p$ROOT_PASSWORD < \"/var/lib/mysql/$BACKUP_GRANT_FILE \" "Copy to Clipboard Copied! Toggle word wrap Toggle overflow すべてのコントローラーノードで、データベースをシャットダウンします。
sudo docker exec $(sudo docker container ls --all --format "{{ .Names }}" \ --filter=name=galera-bundle) bash -c "mysqladmin shutdown"$ sudo docker exec $(sudo docker container ls --all --format "{{ .Names }}" \ --filter=name=galera-bundle) bash -c "mysqladmin shutdown"Copy to Clipboard Copied! Toggle word wrap Toggle overflow Controller-0 で、ブートストラップノードを起動します。
sudo docker exec $(sudo docker container ls --all --format "{{ .Names }}" --filter=name=galera-bundle) \ /usr/bin/mysqld_safe --pid-file=/var/run/mysql/mysqld.pid --socket=/var/lib/mysql/mysql.sock --datadir=/var/lib/mysql \ --log-error=/var/log/mysql_cluster.log --user=mysql --open-files-limit=16384 \ --wsrep-cluster-address=gcomm:// &$ sudo docker exec $(sudo docker container ls --all --format "{{ .Names }}" --filter=name=galera-bundle) \ /usr/bin/mysqld_safe --pid-file=/var/run/mysql/mysqld.pid --socket=/var/lib/mysql/mysql.sock --datadir=/var/lib/mysql \ --log-error=/var/log/mysql_cluster.log --user=mysql --open-files-limit=16384 \ --wsrep-cluster-address=gcomm:// &Copy to Clipboard Copied! Toggle word wrap Toggle overflow 検証: Controller-0 で、クラスターのステータスを確認します。
sudo docker exec $(sudo docker container ls --all --format "{{ .Names }}" \ --filter=name=galera-bundle) bash -c "clustercheck"$ sudo docker exec $(sudo docker container ls --all --format "{{ .Names }}" \ --filter=name=galera-bundle) bash -c "clustercheck"Copy to Clipboard Copied! Toggle word wrap Toggle overflow Galera cluster node is synced のメッセージが表示されるのを確認してください。表示されない場合は、ノードを再作成する必要があります。
Controller-0 で、設定からクラスターアドレスを取得します。
sudo docker exec $(sudo docker container ls --all --format "{{ .Names }}" \ --filter=name=galera-bundle) bash -c "grep wsrep_cluster_address /etc/my.cnf.d/galera.cnf" | awk '{print $3}'$ sudo docker exec $(sudo docker container ls --all --format "{{ .Names }}" \ --filter=name=galera-bundle) bash -c "grep wsrep_cluster_address /etc/my.cnf.d/galera.cnf" | awk '{print $3}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 残りの各コントローラーノードでデータベースを起動し、クラスターを検証します。
データベースを起動します。
sudo docker exec $(sudo docker container ls --all --format "{{ .Names }}" \ --filter=name=galera-bundle) /usr/bin/mysqld_safe --pid-file=/var/run/mysql/mysqld.pid --socket=/var/lib/mysql/mysql.sock \ --datadir=/var/lib/mysql --log-error=/var/log/mysql_cluster.log --user=mysql --open-files-limit=16384 \ --wsrep-cluster-address=$CLUSTER_ADDRESS &$ sudo docker exec $(sudo docker container ls --all --format "{{ .Names }}" \ --filter=name=galera-bundle) /usr/bin/mysqld_safe --pid-file=/var/run/mysql/mysqld.pid --socket=/var/lib/mysql/mysql.sock \ --datadir=/var/lib/mysql --log-error=/var/log/mysql_cluster.log --user=mysql --open-files-limit=16384 \ --wsrep-cluster-address=$CLUSTER_ADDRESS &Copy to Clipboard Copied! Toggle word wrap Toggle overflow MYSQL クラスターのステータスを確認します。
sudo docker exec $(sudo docker container ls --all --format "{{ .Names }}" \ --filter=name=galera-bundle) bash -c "clustercheck"$ sudo docker exec $(sudo docker container ls --all --format "{{ .Names }}" \ --filter=name=galera-bundle) bash -c "clustercheck"Copy to Clipboard Copied! Toggle word wrap Toggle overflow Galera cluster node is synced のメッセージが表示されるのを確認してください。表示されない場合は、ノードを再作成する必要があります。
すべてのコントローラーノードで MySQL コンテナーを停止します。
sudo docker exec $(sudo docker container ls --all --format "{{ .Names }}" --filter=name=galera-bundle) \ /usr/bin/mysqladmin -u root shutdown$ sudo docker exec $(sudo docker container ls --all --format "{{ .Names }}" --filter=name=galera-bundle) \ /usr/bin/mysqladmin -u root shutdownCopy to Clipboard Copied! Toggle word wrap Toggle overflow すべてのコントローラーノードで以下のファイアウォールルールを削除して、仮想 IP アドレス経由のデータベース接続を許可します。
sudo iptables -D INPUT -p tcp --destination-port 3306 -d $MYSQL_VIP -j DROP
$ sudo iptables -D INPUT -p tcp --destination-port 3306 -d $MYSQL_VIP -j DROPCopy to Clipboard Copied! Toggle word wrap Toggle overflow すべてのコントローラーノードで MySQL コンテナーを再起動します。
sudo docker container restart $(sudo docker container ls --all --format "{{ .Names }}" --filter=name=galera-bundle)$ sudo docker container restart $(sudo docker container ls --all --format "{{ .Names }}" --filter=name=galera-bundle)Copy to Clipboard Copied! Toggle word wrap Toggle overflow すべてのコントローラーノードで
clustercheckコンテナーを再起動します。sudo docker container restart $(sudo docker container ls --all --format "{{ .Names }}" --filter=name=clustercheck)$ sudo docker container restart $(sudo docker container ls --all --format "{{ .Names }}" --filter=name=clustercheck)Copy to Clipboard Copied! Toggle word wrap Toggle overflow Controller-0 で、Galera リソースを
managedモードに設定します。sudo pcs resource manage galera-bundle
$ sudo pcs resource manage galera-bundleCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.4. コロケーションされた Ceph モニターを持つアンダークラウドおよびコントロールプレーンノードの復元 リンクのコピーリンクがクリップボードにコピーされました!
更新またはアップグレード中にエラーが発生した場合には、ReaR バックアップを使用して、アンダークラウドもしくはオーバークラウドのコントロールプレーンノードのいずれか (またはその両方) を以前の状態に復元することができます。
前提条件
- ReaR をインストールおよび設定していること。詳細は、ReaR のインストールおよび設定 を参照してください。
- バックアップノードを準備します。詳しくは、バックアップノードの準備 を参照してください。
- バックアップ手順を実行します。詳細は、バックアップ手順の実行 を参照してください。
手順
バックアップノードで、Ceph バックアップをホストする NFS ディレクトリーをエクスポートします。
<IP_ADDRESS/24>を IP アドレスおよびネットワークのサブネットマスクに置き換えてください。[root@backup ~]# cat >> /etc/exports << EOF /ceph_backups <IP_ADDRESS/24>(rw,sync,no_root_squash,no_subtree_check) EOF
[root@backup ~]# cat >> /etc/exports << EOF /ceph_backups <IP_ADDRESS/24>(rw,sync,no_root_squash,no_subtree_check) EOFCopy to Clipboard Copied! Toggle word wrap Toggle overflow アンダークラウドノードで、source コマンドでアンダークラウドの認証情報を読み込み、以下のスクリプトを実行します。
source stackrc
# source stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow #! /bin/bash for i in `openstack server list -c Name -c Networks -f value | grep controller | awk -F'=' '{print $2}' | awk -F' ' '{print $1}'`; do ssh -q heat-admin@$i 'sudo systemctl stop ceph-mon@$(hostname -s) ceph-mgr@$(hostname -s)'; done#! /bin/bash for i in `openstack server list -c Name -c Networks -f value | grep controller | awk -F'=' '{print $2}' | awk -F' ' '{print $1}'`; do ssh -q heat-admin@$i 'sudo systemctl stop ceph-mon@$(hostname -s) ceph-mgr@$(hostname -s)'; doneCopy to Clipboard Copied! Toggle word wrap Toggle overflow ceph-mgr@controller.serviceコンテナーが停止したことを確認するには、以下のコマンドを入力します。sudo docker ps | grep ceph
[heat-admin@overcloud-controller-x ~]# sudo docker ps | grep cephCopy to Clipboard Copied! Toggle word wrap Toggle overflow アンダークラウドノードで、source コマンドでアンダークラウドの認証情報を読み込み、以下のスクリプトを実行します。
source stackrc
# source stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow 復元するノードで、以下のタスクを実行します。
- 次に進む前にノードの電源を切ります。
-
バックアッププロセス中に作成した ReaR バックアップファイルでノードを復元します。ファイルは、バックアップノードの
/ceph_backupsディレクトリーにあります。 -
Relax-and-Recoverブートメニューから、Recover <CONTROL_PLANE_NODE>を選択します。ここで、<CONTROL_PLANE_NODE>はコントロールプレーンノードの名前になります。 プロンプトで以下のコマンドを入力します。
RESCUE <CONTROL_PLANE_NODE> :~ # rear recover
RESCUE <CONTROL_PLANE_NODE> :~ # rear recoverCopy to Clipboard Copied! Toggle word wrap Toggle overflow イメージの復元プロセスが完了すると、コンソールに以下のメッセージが表示されます。
Finished recovering your system Exiting rear recover Running exit tasks
Finished recovering your system Exiting rear recover Running exit tasksCopy to Clipboard Copied! Toggle word wrap Toggle overflow 復元するノードに対して、Ceph バックアップを
/ceph_backupsディレクトリーから/var/lib/cephディレクトリーにコピーします。システムのマウントポイントを特定します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /dev/vda2ファイルシステムは/mnt/localにマウントされます。一時ディレクトリーを作成します。
RESCUE <CONTROL_PLANE_NODE>:~ # mkdir /tmp/restore RESCUE <CONTROL_PLANE_NODE>:~ # mount -v -t nfs -o rw,noatime <BACKUP_NODE_IP_ADDRESS>:/ceph_backups /tmp/restore/
RESCUE <CONTROL_PLANE_NODE>:~ # mkdir /tmp/restore RESCUE <CONTROL_PLANE_NODE>:~ # mount -v -t nfs -o rw,noatime <BACKUP_NODE_IP_ADDRESS>:/ceph_backups /tmp/restore/Copy to Clipboard Copied! Toggle word wrap Toggle overflow コントロールプレーンノードで、既存の
/var/lib/cephディレクトリーを削除します。RESCUE <CONTROL_PLANE_NODE>:~ # rm -rf /mnt/local/var/lib/ceph/*
RESCUE <CONTROL_PLANE_NODE>:~ # rm -rf /mnt/local/var/lib/ceph/*Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以前の Ceph マップを復元します。
<control_plane_node>をコントロールプレーンノードの名前に置き換えます。RESCUE <CONTROL_PLANE_NODE>:~ # tar -xvC /mnt/local/ -f /tmp/restore/<CONTROL_PLANE_NODE>/<CONTROL_PLANE_NODE>.tar.gz --xattrs --xattrs-include='*.*' var/lib/ceph
RESCUE <CONTROL_PLANE_NODE>:~ # tar -xvC /mnt/local/ -f /tmp/restore/<CONTROL_PLANE_NODE>/<CONTROL_PLANE_NODE>.tar.gz --xattrs --xattrs-include='*.*' var/lib/cephCopy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルが復元されていることを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
ノードの電源を切ります。
RESCUE <CONTROL_PLANE_NODE> :~ # poweroff
RESCUE <CONTROL_PLANE_NODE> :~ # poweroffCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ノードの電源をオンにします。ノードは以前の状態で再開します。