バックアップおよび復元
Red Hat build of MicroShift データベースのバックアップと復元
概要
第1章 MicroShift データのバックアップと復元
サポート対象のすべてのシステムで、MicroShift データベースを手動でバックアップおよび復元できます。Greenboot ヘルスチェックを完了する必要があり、バックアップの前に MicroShift サービスを停止する必要があります。
次の手順では、MicroShift データのみがバックアップされます。アプリケーションデータは付属しません。
-
rpm-ostree
システムでは、MicroShift は起動するたびに自動的にバックアップを作成します。これらの自動バックアップは、システムが再起動されるたびに削除され、最新のバックアップに置き換えられます。 -
rpm-ostree
システムを使用している場合は、Greenboot がシステムをロールバックした後、データは自動的に復元されます。このデータ復元により、ロールバックが完了した後のデータベースは、ホスト上で実行されているソフトウェアと必ず一致します。 - 他のタイプのシステムでは、手動でデータをバックアップおよび復元する必要があります。
1.1. MicroShift サービスの停止
次の手順を使用して、MicroShift サービスを停止します。
前提条件
- MicroShift サービスが実行されている。
手順
次のコマンドを入力して、MicroShift サービスを停止します。
$ sudo systemctl stop microshift
MicroShift にデプロイされたワークロードは、MicroShift サービスが停止した後も引き続き実行されます。次のコマンドを入力して、実行中のワークロードを表示します。
$ sudo crictl ps -a
次のコマンドを入力して、デプロイされたワークロードを停止します。
$ sudo systemctl stop kubepods.slice
1.2. MicroShift データを手動でバックアップする
MicroShift データは、いつでも手動でバックアップできます。システムを更新する前にデータをバックアップし、更新が失敗した場合やその他のシステムトラブルに備えてデータを保存してください。自動バックアップは、/var/lib/microshift-backups
ディレクトリーに作成されます。このディレクトリーを各コマンドで指定すると、手動でデータをバックアップおよび復元するために使用できます。バックアップを作成する際は、出力ファイルのファイルパス全体を使用する必要があります。
前提条件
- ホストへの root アクセス権限がある。
- MicroShift が停止している。
手順
次のコマンドを実行して、親ディレクトリーを使用し、
/var/lib/microshift-backups/<my_manual_backup>
などの名前を指定してバックアップを手動で作成します。$ sudo microshift backup /var/lib/microshift-backups/<my_manual_backup>
<my_manual_backup>
を、使用するバックアップ名に置き換えます。出力例
??? I1017 07:38:16.770506 5900 data_manager.go:92] "Copying data to backup directory" storage="/var/lib/microshift-backups" name="test" data="/var/lib/microshift" ??? I1017 07:38:16.770713 5900 data_manager.go:227] "Starting copy" cmd="/bin/cp --verbose --recursive --preserve --reflink=auto /var/lib/microshift /var/lib/microshift-backups/test" ??? I1017 07:38:16.776162 5900 data_manager.go:241] "Finished copy" cmd="/bin/cp --verbose --recursive --preserve --reflink=auto /var/lib/microshift /var/lib/microshift-backups/test" ??? I1017 07:38:16.776256 5900 data_manager.go:125] "Copied data to backup directory" backup="/var/lib/microshift-backups/test" data="/var/lib/microshift"
オプション: 次のコマンドを実行し、カスタム名を使用して特定の親ディレクトリーにバックアップを手動で作成します。
$ sudo microshift backup /mnt/<other_backups_location>/<another_manual_backup>
<other_backups_location>
を使用するディレクトリーに置き換え、<my_manual_backup>
を使用するバックアップ名に置き換えます。
検証
-
選択したディレクトリー内のデータを表示して、バックアップが存在することを確認できます。たとえば、
/var/lib/microshift-backups/<my_manual_backup>/
または/mnt/<other_backups_location>/<another_manual_backup>
などです。
1.3. MicroShift データのバックアップを手動で復元する
MicroShift データをバックアップから手動で復元できます。更新後や、必要なデータを削除したり破損させたりするシステムのイベントの発生後にバックアップを復元できます。自動バックアップは、デフォルトで /var/lib/microshift-backups
ディレクトリーにあります。このディレクトリーを各コマンドで指定すると、手動でデータをバックアップおよび復元するために使用できます。バックアップを復元する場合は、ファイルパス全体を使用する必要があります。
rpm-ostree
システムの場合、MicroShift はデータを自動的にバックアップおよび復元します。
前提条件
- ホストへの root アクセス。
- データのバックアップファイルに対する完全パス。
- MicroShift サービスを停止している。
手順
次のコマンドを実行して、復元するバックアップの完全なファイルパスを使用して MicroShift データを手動で復元します。
$ sudo microshift restore /var/lib/microshift-backups/<my_manual_backup>
<my_manual_backup>
を、使用したバックアップ名に置き換えます。オプション: 完全なファイルパスを使用して、自動ostree
バックアップを復元することもできます。出力例
??? I1017 07:39:52.055165 6007 data_manager.go:131] "Copying backup to data directory" storage="/var/lib/microshift-backups" name="test" data="/var/lib/microshift" ??? I1017 07:39:52.055243 6007 data_manager.go:154] "Renaming existing data dir" data="/var/lib/microshift" renamedTo="/var/lib/microshift.saved" ??? I1017 07:39:52.055326 6007 data_manager.go:227] "Starting copy" cmd="/bin/cp --verbose --recursive --preserve --reflink=auto /var/lib/microshift-backups/test /var/lib/microshift" ??? I1017 07:39:52.061363 6007 data_manager.go:241] "Finished copy" cmd="/bin/cp --verbose --recursive --preserve --reflink=auto /var/lib/microshift-backups/test /var/lib/microshift" ??? I1017 07:39:52.061404 6007 data_manager.go:175] "Removing temporary data directory" path="/var/lib/microshift.saved" ??? I1017 07:39:52.063745 6007 data_manager.go:180] "Copied backup to data directory" name="test" data="/var/lib/microshift"
オプション: バックアップの完全なファイルパスを使用して、カスタマイズされたディレクトリーからデータを手動で復元します。以下のコマンドを実行します。
$ sudo microshift restore /<mnt>/<other_backups_location>/<another_manual_backup>
<other_backups_location>
を使用したディレクトリーに置き換え、<my_manual_backup>
を復元するバックアップを作成する際に使用したバックアップ名に置き換えます。- ホストを再起動します。ホストを再起動すると、すべてのワークロードと Pod が再起動できるようになります。
検証
-
oc get pods -A
コマンドを使用してクラスターが実行中であることを確認してから、復元されたデータを確認します。