NTNX>日記

個人的な趣味による Nutanix Community Edition 日記。Japanese のみですみません。

NDB で OS アップデートの様子を見てみる。

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 適用が実施される様子がわかりました。

つづく。(かもしれない)

©2023 gowatana
クリエイティブ・コモンズ・ライセンスこの 作品 は クリエイティブ・コモンズ 表示 4.0 国際 ライセンスの下に提供されています。