※本ページは、”Exadata patchmgr: Making Exadata Updates Effortless” の翻訳です。
はじめに
Exadata patchmgrは、Exadata Engineered Systemでソフトウェア更新をインテリジェントに管理し、Exadataデータベース・サーバー、ストレージ・サーバーおよびネットワーク・ファブリック・スイッチの自動更新を提供する特殊なユーティリティです。単一のコマンドのシンプルさにより、複雑な更新を簡単かつ確実にオーケストレーションし、労力を最小限に抑えます。定期的なソフトウェア・アップデートの適用は、すべてのお客様およびワークロードにとって重要であり、システムのセキュリティを確保し、パフォーマンスを最適化し、継続的な可用性を維持します。Exadata patchmgrは、オンライン、ローリング、および非ローリング更新をサポートしているため、管理者は環境に最適なパッチ適用戦略を柔軟に選択できます。オンラインおよびローリング更新により、Exadataはダウンタイムなしでパッチを適用することで、Oracle RACデータベースの継続的な可用性を維持します。非ローリング更新が必要なシナリオでは、patchmgrはすべてのターゲット・サーバー間でパラレルに更新を適用します。ただし、プロセス中にデータベースの停止時間が必要です。
Exadata patchmgrの機能概要
patchmgrユーティリティは、複数のデータベース・サーバー間で自動化されたソフトウェア更新を管理できます。Exadata patchmgrは、「駆動システム」で実行されます。これは通常、Exadata以外のデータベース・サーバーであり、複数のExadataシステムを更新する中央サーバーとして機能します。包括的なpatchmgrコマンドのヘルプは、Exadataの公式ドキュメントにあります。
デフォルトでは、適切なpatchmgrディストリビューションが、関連するサーバーまたはスイッチの更新に含まれています。ただし、常に使用可能な最新バージョンのpatchmgrを使用することをお薦めします。patchmgrユーティリティは、既知の問題やベスト・プラクティスに対応し、新しいハードウェアをサポートするために頻繁に更新されます。
次に、patchmgrの内部アーキテクチャおよび操作ワークフローを確認します。

patchmgrがデータベース・サーバーで実行されると、事前チェック(precheck)・ステージが始まります。このフェーズでは、必要なパッチ・レベルやターゲット・コンポーネントなど、ユーザーが提供する情報が使用されます。また、事前チェックでは、前提条件が検証され、潜在的な競合がチェックされるため、必要な更新のみが適用され、パッチ適用プロセス中のエラーの防止に役立ちます。次に、必要なソフトウェア・バンドルを関連するターゲット・ノードにステージングし、整合性と互換性を検証します。patchmgrは、ディスク領域やサービス・ステータスのチェックなどの環境と構成チェックを実行してシステムの準備状況をインテリジェントに検証し、適用可能なパッチ・レベルのチェックも実行します。結果が成功すると、すべてのコンポーネントを更新する準備が整います。検出されたブロッキングの問題はログに記録され、解決のフラグが付けられるため、最適でない状況で更新を開始できません。Exadata patchmgrは、更新前にバックアップも実行します。最近のバックアップはロールバックに使用でき、必要に応じて自動ロールバックに使用されます。
patchmgrログには、データベース・サーバーの到達可能性、発生したエラー、更新の進捗など、Exadataシステム・ソフトウェア更新プロセスに関する情報が含まれます。ログのサブセットがここに表示されます。
:INFO : Hosts Reachable: [test_machine]
:INFO : All hosts are reachable via ICMP/ping
:Working: Verify SSH equivalence for the root user to test_machine
:SUCCESS: Verify SSH equivalence for the root user to test_machine
:INFO : Preparing nodes: test_machine
:Working: Check for enough free space on test_machine to transfer and unzip files.
:SUCCESS: Check for enough free space on test_machine to transfer and unzip files.

データベース・サーバーで事前チェック・ステージが正常に完了すると、patchmgrはステージング/適用/更新の段階に移動し、更新プロセスを開始します。patchmgr自動化インテリジェンスは、更新を管理するために複数のサブユーティリティを調整します。自動化では、yumまたはdnfを使用して更新を編成し、指定されたRPMをデータベース・ノード・スタックに適用します。yumはOracle Linux 7での更新に使用され、dnf (dandified yum)はOracle Linux 8以降を実行するシステムでの更新に使用されます。更新は慎重にチェックされ、依存関係が尊重されるように順序付けされ、障害が発生した場合にロールバック・オプションを使用できます。ファームウェアに関連する更新を含む更新では、複数回のリブートが必要になる場合があります。
:INFO : Current image version on dbnode(s) is:
:INFO : test_machine: 25.1.5.0.0.250517
:INFO : For details, check the following files in /u01/patchmgr/dbserver_patch_250517:
:INFO : -
_dbnodeupdate.log
:INFO : - patchmgr.log
:INFO : - patchmgr.trc
:INFO : Exit status:0
:INFO : Exiting.

更新が適用され、ノードがオンラインに戻ると、制御が戻される前に鍵サービスが検証されます。その後、patchmgrは更新の完了を確認し、更新ステータスを記録して、パッチ適用計画内の次のノードまたはコンポーネントに進みます。
Exadata Live Updateの導入により、patchmgrは、セキュリティ・パッチなどの更新を実行中のカーネルおよびユーザー領域ライブラリに、再起動しなくても適用できるようになりました。Live Updateでは、KspliceやRPMなどの業界標準のユーティリティを使用して、ベア・メタル、VMホスト、VMゲストなどのデータベース・サーバーを更新でき、さらに具体的には、カーネル/システム・パッケージ、ファームウェア、ユーザー・スペース・パッケージおよびExadataパッケージをオンラインで更新できます。Live Updateでは、ターゲット・システムが使用可能であり、変更を有効にするために再起動する必要はありません。Exadataデータベース・サーバー上でこれらの中断のないオンラインのソフトウェア更新を頻繁に実行でき、セキュリティ修正を適用することで、組織がセキュリティ・コンプライアンス要件を満たすのに役立ちます。
更新に再起動が必要な場合、patchmgrは再起動プロセスを監視し、予想されるすべてのサービスが正常に起動することを確認します。ヘルス・チェックは、クリティカル・コンポーネントを検証するために自動的に実行されます。また、パッチが適用されたソフトウェア・コンポーネントが更新されたバージョンを実行していること、およびシステム・リソースが予想されるしきい値内で機能していることも検証されます。クリーンな状態を維持するために、一時ファイルのクリーンアップやロギングなどの追加のハウスキーピングタスクが完了します。すべてのノードまたはVMが正常に再起動および検証されると、patchmgrは結果をログに記録し、警告を含むパッチ・ステータスを要約した包括的なレポートを生成して、最終的なシステム・ヘルスを報告します。これにより、トレーサビリティが確保され、管理者は更新結果を明確に把握できます。
:SUCCESS: Completed run of command: ./patchmgr
--dbnodes dbs_group --upgrade
--repo /u01/patches/dbnode/p37471649_241000_Linux-x86-64.zip
--target_version 25.1.5.0.0.250517
:INFO : Upgrade performed on dbnode(s) in file dbs_group: [test_machine]
:INFO : Current image version on dbnode(s) is:
:INFO : test_machine: 24.1.5.0.0.250517
:INFO : For details, check the following files in /u01/patchmgr/dbserver_patch_250517
:INFO : -
_dbnodeupdate.log
:INFO : - patchmgr.log
:INFO : - patchmgr.trc
:INFO : Exit status:0
:INFO : Exiting.
そして、それだけです。更新ステップは、単一のコマンドで管理されます。patchmgrでは、データベース・サーバーの更新は簡単ではありません。簡単、自動、信頼性が高く、インテリジェントです。
ストレージ・サーバーのExadata System Software 更新
Exadata Storage ServersのExadata System Software の更新は、Exadataデータベース・サーバーおよびRDMAスイッチの更新とは独立して適用できます。patchmgrユーティリティを使用すると、データベース・サーバーと同様に、ローリング方式または非ローリング方式でストレージ・サーバーの更新を実行できます。

ストレージ・サーバーの非ローリング更新には、調整された停止時間が含まれます。このプロセス中に、すべてのデータベースおよびクラスタ・サービスが停止します。これにより、システムおよびデータの一貫性が確保され、更新パスが簡素化されます。すべてのストレージ・サーバー(セル)がパラレルに更新されます。データベースおよびクラスタ対応サービスをオフラインにすると、すべての更新を同時に適用できます。この方法では、計画メンテナンス・ウィンドウが必要な間、合計更新時間が最小限に抑えられます。

または、Exadata Storage Serversのローリング更新を実施する場合は、データベースの継続的な可用性が可能になります。データベースおよびクラスタ・サービスは、プロセス全体でオンラインのままです。patchmgrは、一度に1つのストレージ・サーバーを更新し、最初にすべてのグリッド・ディスクおよびASMディスクをオフラインにしてから、更新をサーバーに適用し、最後にすべてのASMディスクおよびグリッド・ディスクをオンラインに戻します。各ストレージ・サーバーの更新後、patchmgrは、次のサーバーを更新するために移動する前に、ASMディスク・グループまたはストレージ・プールが完全に再同期およびリバランスされていることを確認します。この自動順序付けおよび監視は、patchmgrによって調整され、サービスの中断なしで行われます。
Exadataストレージ・サーバーを更新するには、いくつかのステップのみを使用して更新プロセスを準備、実行および監視します。ここでは、事前チェックと更新を効率的に実行するために使用される主要なコマンドとオプションを示します。Exachkは、システムの安定性とコンプライアンスを確保するためにハードウェア、ソフトウェア構成およびベスト・プラクティスを検証する、Exadataシステム用の包括的なヘルス・チェック・ツールです。サーバー更新の前にExachkを実行すると、パッチ適用プロセスに支障をきたす可能性のある既存の問題(構成エラーやソフトウェアの不一致など)が特定およびハイライトされます。一方、更新後の実行では、更新の成功を確認し、システムの健全性を検証します。更新ステップは、単一のコマンドで管理されます。
Simple Storage Server Update Steps
1. Exachk Health Check
2. Perform a pre-update validation
# patchmgr
--cells cell_host_file
: cell_host_file
: The cell_host_file is a text file containing the host names
: of the storage servers to update. The file contains one
: storage server host name or IP address per line. The
: storage server patching will fail if the list file is
: not specified.
--patch_check_prereq [--rolling]
: patch_check_prereq
: Runs a prerequisite check on all the storage servers to determine
: if the patch can be applied to the storage servers.
: --rolling Specifies that the update is done in a rolling fashion.
: If not specified, the update is done in a non-rolling fashion.
3. Update all storage servers
# patchmgr
--cells cell_host_file
--patch [--rolling]
: Apply the patch, including firmware updates,
: wherever possible (BIOS, Disk Controller and disk drives)
: to all storage servers in the cell host list file.
4. Exachk Health Check
: Verify that the system operational status is normal
RoCE(RDMA)および管理ネットワーク・スイッチの更新
Exadata patchmgrは、Exadata管理スイッチおよびRoCE/RDMAネットワーク・スイッチの更新も管理できます。古いExadataシステムのインフィニバンド・スイッチも更新できます。組み込みの事前チェックと、1つのコマンドでファームウェアと構成を更新する機能により、patchmgrは更新プロセス全体を自動化および合理化し、すべてのスイッチの更新を安全かつ一貫して実行できるようにします。スイッチの更新は、単一のpatchmgrコマンドの実行と同じくらい簡単で、プロセスを高速、信頼性が高く、容易にします。
Exadata patchmgrのパワー
複雑な更新ワークフローを自動化し、スタック全体の一貫性を確保することで、patchmgrはExadataの更新における運用リスクと管理オーバーヘッドを大幅に削減します。Exadataに依存する組織の場合、patchmgrはシステムをセキュアで高いパフォーマンスかつ完全に更新するための不可欠なツールです。Oracle Fleet Patching and Provisioning (FPP)は、大規模なエンタープライズ環境でExadataの更新を一元化および自動化する強力なソリューションであり、patchmgrとシームレスに統合することで、フリート全体で自動化された合理化されたメンテナンスを実現します。
定期的な更新は、最新の製品およびセキュリティ修正を適用し、データを保護し、セキュリティのベストプラクティスへのコンプライアンスを維持することで、データベースの可用性、整合性、およびシステムの整合性を確保するためにExadataにとって重要です。また、ソフトウェアの更新は、業務に影響を与える前に脆弱性や潜在的な問題に対処し、継続的で信頼性の高いビジネス・サービスをサポートします。Exadata patchmgrは、データベース・サーバー、ストレージ・サーバーおよびネットワーク・スイッチにわたる複雑なマルチコンポーネント・ソフトウェア更新を、それぞれ1つのコマンドで実行して調整および自動化します。
謝辞
この記事は、著者がAlex Blyth、Rene Kundersma、Doug Utzigと行った議論の恩恵を受けています。
