10.4.2. greenboot による RHEL for Edge イメージのロールバック


RHEL for Edge イメージでは、トランザクション更新のみがオペレーティングシステムに適用されます。トランザクション更新はアトミックです。つまり、すべての更新が成功した場合にのみ更新が適用されます。また、ロールバックがサポートされます。トランザクション更新では、失敗した更新を最後の既知の良い状態に簡単にロールバックすることができ、更新中のシステム障害を防ぐことができます。

ヘルスチェックの実行は、直接的な保守機能が制限されているか存在しないエッジデバイスでソフトウェアの問題をチェックし、システムロールバックを実行する必要がある場合に特に役立ちます。

注記

OSTree を使用していないシステムで更新が失敗した場合は、ヘルスチェックが実行される可能性がある場合でも、ロールバックを使用できません。

greenboot ヘルスチェックフレームワークによるインテリジェントなロールバックを使用すると、システムが起動するたびにシステムの正常性を自動的に評価できます。事前設定されたヘルスチェックは、greenboot-default-health-checks サブパッケージから取得できます。これらのチェックは、rpm-ostree システムの /usr/lib/greenboot/check 読み取り専用ディレクトリーにあります。

greenbootrpm-ostree を活用し、システム起動時に実行されるカスタムヘルスチェックを実行します。問題が発生した場合、システムは変更をロールバックし、最後の作業状態を保持します。rpm-ostree 更新をデプロイすると、スクリプトが実行され、重要なサービスが更新後も機能することが確認されます。システムが機能しない場合、更新はシステムの最新の動作バージョンにロールバックされます。このプロセスにより、RHEL for Edge デバイスが確実に動作状態になります。

事前設定されたヘルスチェックは、greenboot-default-health-checks` サブパッケージから取得できます。これらのチェックは、rpm-ostree システムの `/usr/lib/greenboot/check 読み取り専用ディレクトリーにあります。シェルスクリプトを次のタイプのチェックとして設定することもできます。

例10.1 greenboot のディレクトリー構造

etc
└─ greenboot
   ├─ check
   |   └─ required.d
   |   └─ init.py
   └─ green.d
   └─ red.d
Required
失敗してはならないヘルスチェックが含まれています。必要なシェルスクリプトを /etc/greenboot/check/required.d ディレクトリーに配置します。スクリプトが失敗すると、greenboot はデフォルトでスクリプトを 3 回再試行します。/etc/greenboot/greenboot.conf ファイルで再試行回数を設定するには、GREENBOOT_MAX_BOOTS パラメーターを目的の再試行回数に設定します。

すべての再試行が失敗すると、ロールバックが利用可能であれば greenboot が自動的に開始します。ロールバックが利用できない場合は、手動介入が必要であることをシステムログ出力が示します。

Wanted
失敗してもシステムをロールバックしないヘルスチェックが含まれています。必要なシェルスクリプトを /etc/greenboot/check/wanted.d ディレクトリーに配置します。Greenboot はスクリプトが失敗したことを通知し、システムの正常性ステータスは影響を受けず、ロールバックも再起動も実行しません。

チェック後に実行するシェルスクリプトを指定することもできます。

Green
起動が成功した後に実行するスクリプトが含まれています。これらのスクリプトを /etc/greenboot/green.d ディレクトリーに配置します。Greenboot は起動が成功したことを通知します。
Red
起動に失敗した後に実行するスクリプトが含まれています。この種類のスクリプトは /etc/greenboot/red.d ディレクトリーに配置します。システムは起動を 3 回試行し、失敗した場合はスクリプトを実行します。greenboot は起動が失敗したことを通知します。

以下の図は、RHEL for Edge イメージのロールバックプロセスを説明しています。

イメージ復元プロセス

更新されたオペレーティングシステムを起動した後、greenbootrequired.d ディレクトリーと wanted.d ディレクトリー内のスクリプトを実行します。required.d ディレクトリー内のいずれかのスクリプトが失敗した場合、greenbootred.d ディレクトリー内のスクリプトを実行してから、システムを再起動します。

greenboot は、アップグレードしたシステムでの起動をさらに 2 回試行します。3 回目の起動試行中に required.d 内のスクリプトが依然として失敗する場合、greenboot は最後に red.d スクリプトを 1 回実行し、red.d ディレクトリー内のスクリプトが問題を修正するための修正アクションを実行しようとして失敗したことを確認します。その後、greenboot は、現在の rpm-ostree デプロイメントから以前の安定したデプロイメントにシステムをロールバックします。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る