Nutanix Database Service(NDB)には、DB サーバ VM の OS パッチ適用機能が用意されているので、ためしに実行して様子を見てみました。ただし今回はただの様子見です。
今回の環境
今回の様子見対象は、下記のようにプロビジョニングした Oracle Database の DB サーバです。
OS は、Oracle Linux 8.7 です。
[root@ndb-oracle-02 ~]# cat /etc/oracle-release Oracle Linux Server release 8.7
ちょうどこの DB サーバ には、いくつか更新された RPM が提供されています。
[root@ndb-oracle-02 ~]# dnf check-update メタデータの期限切れの最終確認: 1:46:24 時間前の 2022年12月22日 10時53分20秒 に 実施しました。 kernel-uek.x86_64 5.4.17-2136.314.6.3.el8uek ol8_UEKR6 libsolv.x86_64 0.7.20-4.el8_7 ol8_baseos_latest python3-cffi.x86_64 1.14.3-2.el8 ol8_developer_EPEL python3-cryptography.x86_64 3.3.1-2.el8 ol8_developer_EPEL selinux-policy.noarch 3.14.3-108.0.2.el8 ol8_baseos_latest selinux-policy.src 3.14.3-108.0.2.el8 ol8_baseos_latest selinux-policy-targeted.noarch 3.14.3-108.0.2.el8 ol8_baseos_latest systemd.x86_64 239-68.0.2.el8 ol8_baseos_latest systemd-libs.x86_64 239-68.0.2.el8 ol8_baseos_latest systemd-pam.x86_64 239-68.0.2.el8 ol8_baseos_latest systemd-udev.x86_64 239-68.0.2.el8 ol8_baseos_latest
Yum のリポジトリは、インターネット公開されている Oracle Linux デフォルトのものを参照しています。
[root@ndb-oracle-02 ~]# dnf repolist repo id repo の名前 ol8_UEKR6 Latest Unbreakable Enterprise Kernel Release 6 for Oracle Linux 8 (x86_64) ol8_appstream Oracle Linux 8 Application Stream (x86_64) ol8_baseos_latest Oracle Linux 8 BaseOS Latest (x86_64) ol8_developer_EPEL Oracle Linux 8 EPEL Packages for Development (x86_64) ol8_developer_EPEL_modular Oracle Linux 8 EPEL Modular Packages for Development (x86_64) [root@ndb-oracle-02 ~]# [root@ndb-oracle-02 ~]# [root@ndb-oracle-02 ~]# cat /etc/yum.repos.d/*.repo | grep -E -e '\[|\]' -e url -e enabled | grep 'enabled=1' -B2 [ol8_developer_EPEL] baseurl=https://yum$ociregion.$ocidomain/repo/OracleLinux/OL8/developer/EPEL/$basearch/ enabled=1 [ol8_developer_EPEL_modular] baseurl=https://yum$ociregion.$ocidomain/repo/OracleLinux/OL8/developer/EPEL/modular/$basearch/ enabled=1 [ol8_baseos_latest] baseurl=https://yum$ociregion.$ocidomain/repo/OracleLinux/OL8/baseos/latest/$basearch/ enabled=1 [ol8_appstream] baseurl=https://yum$ociregion.$ocidomain/repo/OracleLinux/OL8/appstream/$basearch/ enabled=1 -- [ol8_UEKR6] baseurl=https://yum$ociregion.$ocidomain/repo/OracleLinux/OL8/UEKR6/$basearch/ enabled=1
メンテナンス ウインドウの作成
NDB の Web UI で、「メンテナンス ウィンドウ」画面を開きます。
「作成」をクリックします。
メンテナンス ウィンドウのパラメータを入力して「作成」をクリックします。スケジュールの選択肢は「週次」または「月次」なので、今回は設定直後に実行されるように時間指定しています。
- メンテナンス ウィンドウ名: window-01
- スケジュール: 週次
- 繰り返し: Thursday
- 時刻(これは JST): 21:45:00
- 所要時間: 2(最小値が 2時間)
これで、メンテナンス ウィンドウが作成されました。
DB サーバ VM へのメンテナンス ウィンドウの設定
「データベース サーバー VM」→「リスト」画面を開いて、対象の DB サーバを選択してから「アクション」→「メンテナンス」をクリックします。
メンテンナンス内容と、メンテナンス ウィンドウを指定して「関連付け」をクリックします。
- オペレーティング システム パッチ適用: ON
- データベース パッチ適用: OFF のまま
- メンテナンス ウィンドウ: window-01
これで、DB サーバ VM の画面を開くとメンテナンス ウィンドウが割り当てられたことが確認できます。
DB サーバ のアップデートの様子見
指定した時間帯になると、自動的に OS パッチ適用処理が開始されます。処理の進捗は、「オペレーション」画面の「Perform Maintenance」タスクとして表示されます。
タスク前の「+」を展開すると、どのような処理が実施されるか確認できます。
ちなみに今回は、残念ながら失敗になりました。
せっかくなので、どのように OS パッチを適用していそうか確認しておきます。
/var/log/secure ファイルを確認すると、普通に yum コマンドを利用してアップデートしているようです。メンテナンス ウィンドウでは 21:45 を指定しているのですが、タイムゾーン設定が EST になっているようでタイムスタンプは「Dec 22 07:45」あたりになっています。
下記のコマンドを実行している様子がわかります。
- yum install -y yum-utils
- yum check-update -y
- yum clean -y all
- yum history -y info
- yum -y update
[root@ndb-oracle-02 ~]# grep yum /var/log/secure Dec 22 07:45:59 ndb-oracle-02 sudo[1979708]: oracle : TTY=unknown ; PWD=/opt/era_base/era_engine/stack/linux/python/lib/python3.6/site-packages/nutanix_era/era_drivers/patch_os ; USER=root ; COMMAND=/opt/era_base/era_priv_cmd.sh yum install -y yum-utils Dec 22 07:46:01 ndb-oracle-02 sudo[1979723]: oracle : TTY=unknown ; PWD=/opt/era_base/era_engine/stack/linux/python/lib/python3.6/site-packages/nutanix_era/era_drivers/patch_os ; USER=root ; COMMAND=/opt/era_base/era_priv_cmd.sh yum check-update -y Dec 22 07:47:10 ndb-oracle-02 sudo[1980481]: oracle : TTY=unknown ; PWD=/opt/era_base/era_engine/stack/linux/python/lib/python3.6/site-packages/nutanix_era/era_drivers/patch_os ; USER=root ; COMMAND=/opt/era_base/era_priv_cmd.sh yum clean -y all Dec 22 07:47:10 ndb-oracle-02 sudo[1980488]: oracle : TTY=unknown ; PWD=/opt/era_base/era_engine/stack/linux/python/lib/python3.6/site-packages/nutanix_era/era_drivers/patch_os ; USER=root ; COMMAND=/opt/era_base/era_priv_cmd.sh yum history -y info Dec 22 07:47:10 ndb-oracle-02 sudo[1980499]: oracle : TTY=unknown ; PWD=/opt/era_base/era_engine/stack/linux/python/lib/python3.6/site-packages/nutanix_era/era_drivers/patch_os ; USER=root ; COMMAND=/opt/era_base/era_priv_cmd.sh yum -y update
NDB Web UI ではロールバックしてそうでしたが、RPM はインストールされて dnf check-update の表示はなくなりました。ちなみに /var/log/dnf.log などを確認するとインストール成功していたりします。
[root@ndb-oracle-02 ~]# dnf check-update メタデータの期限切れの最終確認: 0:28:37 時間前の 2022年12月22日 12時48分01秒 に 実施しました。 [root@ndb-oracle-02 ~]#
ただし、OS 再起動は実施されなかったようで、読み込まれているカーネルはこの時点では以前のままです。
[root@ndb-oracle-02 ~]# uname -r 5.4.17-2136.313.6.el8uek.x86_64 [root@ndb-oracle-02 ~]# rpm -q kernel-uek kernel-uek-5.4.17-2136.307.3.1.el8uek.x86_64 kernel-uek-5.4.17-2136.313.6.el8uek.x86_64 kernel-uek-5.4.17-2136.314.6.3.el8uek.x86_64
とりあえず実施してみると悩ましい結果になりましたが、ふつうに yum update で RPM 適用が実施される様子がわかりました。
つづく。(かもしれない)