3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

IBM CloudでOS ReloadによるVSIをRHEL 7からRHEL 8へアップグレードする

Posted at

背景

RHEL 7のライフサイクルについては、Maintenance Support 2は2024年6月30日に終了となり、Extended Lifecycle Supportは2028年6月30日になります。

ただし、IBM CloudはRHEL 7のExtended Lifecycle Supportを提供していないため、RHEL 7.xのお使いのお客様は来年の6月末までにRHEL 8にアップグレードする必要があります。

RedHat自身はIn-place upgrade方法を提供していますが、IBM Cloud上のRHEL 7のin-place upgradeはサポートされていません。(今後のRHEL 8についてはin-place upgradeをサポートするか、まだ分からないんです。)OS Reloadというやり方はIBM Cloudに推薦されたUpgrade方法になります。

本記事では、先ずはOS ReloadでRHEL 7をUpgradeすることについて具体的な手順を示しました。次は、OS ReloadでUpgradeすると、システムへの影響及び注意点、そして、よくある質問についてまとめました。最後に、他の道があるかについては検討しました。

OS ReloadでVSIをRHEL 7からRHEL 8へUpgradeする

まずは、全体の流れについては次の通りです:
1.既存のVSI(RHEL 7)をBackupする
2.比較のため、Reloadする前にVSIの状況を確認する
3.Diskを保持してOS Reloadする
4.ReloadしたVSI(RHEL 8)でDataを復旧する

次は、詳細のステップについて説明します。

1. 既存のVSI(RHEL 7)をBackupする

OS Reloadの際には、Disk preservationという選択肢があり、原則的にそのDiskを使用してVSIを復旧することができます。ただし、万が一Diskを保存する時にエラーが発生する恐れを考慮して、最初に普段のBackup方法よりシステムをBackupすることがお勧めです。具体的なBackup方法はそれぞれありますので、この記事でBackupの部分を割愛します。

2. 比較のため、Reloadする前にVSIの状況を確認する

私の検証環境にClassic InfrastructureでRHEL 7.xのVSIを作成しました。

image.png

VSIの名前をクリックして、Storage TabでBlock storage detailsを確認すると:
‐ Portable Storageがないです。
‐ System storage detailsの一覧に、25GBのSystem Diskが一つのみ、あります。
image.png
image.png

VSIをSSH Loginして、現在のOS Release情報を確認します。CMDの出力により、現在はRed Hat Enterprise Linux Server 7.9を利用しています。

SSH Terminal
[root@virtualserver01-helen ~]# cat /etc/os-release
NAME="Red Hat Enterprise Linux Server"
VERSION="7.9 (Maipo)"
ID="rhel"
ID_LIKE="fedora"
VARIANT="Server"
VARIANT_ID="server"
VERSION_ID="7.9"
PRETTY_NAME="Red Hat Enterprise Linux Server 7.9 (Maipo)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:redhat:enterprise_linux:7.9:GA:server"
HOME_URL="https://www.redhat.com/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"

REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 7"
REDHAT_BUGZILLA_PRODUCT_VERSION=7.9
REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="7.9"
[root@virtualserver01-helen ~]#

データを保持できるかどうかを確認するため、SampleFileBeforeUpgrade.txtを準備します。

SSH Terminal
[root@virtualserver01-helen ~]# echo "This is made before the RHEL 7 upgrade" > SampleFileBeforeUpgrade.txt
[root@virtualserver01-helen ~]# ls
redhat_subscription.log  SampleFileBeforeUpgrade.txt
[root@virtualserver01-helen ~]# cat /root/SampleFileBeforeUpgrade.txt
This is made before the RHEL 7 upgrade
[root@virtualserver01-helen ~]#

3. Diskを保持してOS Reloadする

VSIの詳細画面で、右上にあるActions ボタンを押して、OS reloadをクリックして、OS Reloadの設定画面に遷移します。
image.png

OS Reloadの設定画面では、
‐ Operating Systemの行で右側の三点メニューをクリックして、Editを選択して、New SelectionをRed Hat Enterprise Linux 8.x - Minimal Install (64 bit) (1-4 Core)に設定します。
- (重要)画面の下方に、必ずOS Reload with Disk Preservation
を有効にしてください。そうすると、OS Reloadは新規DiskでRHEL 8を実行して、現在のSystem Diskを変更せずに丸ごとにPortable Diskとして保持しておきます。

image.png
image.png
image.png

設定が終わったら、右側の確認項目をチックして、Reloadボタンをクリックして、PopupしたWarning WindowsでConfirm OS ReloadをクリックしてReloadを始めます。Reloadは数分で完了するはずです。
image.png

4. ReloadしたVSI(RHEL 8)でDataを復旧する

Reloadが完了したら、VSIの情報を確認しましょう。
まずは、VSIの詳細画面で、現在のOS ImageとOSがRHEL 8になったことを確認します。
image.png

次は、Storage tabで、Portable StorageとSystem Diskの状況を確認します。

  • Portable Storageには、DriveRetention-xxxの名前で25 GBのDiskが見えます。これは保持したRHEL 7のSystem Diskです。
  • System storage detailsには、二つの25GB Diskが見えており、新規のRHEL 8 System Diskと保持したRHEL 7 System Diskであります。

image.png
image.png

VSIをSSH Loginして、CMDでOSとDiskの状況をチェックします。
CMD cat /etc/os-releaseの出力により、現在のOSはRed Hat Enterprise Linux 8.7に変更しました。

SSH Terminal
[root@virtualserver01-helen ~]# cat /etc/os-release
NAME="Red Hat Enterprise Linux"
VERSION="8.7 (Ootpa)"
ID="rhel"
ID_LIKE="fedora"
VERSION_ID="8.7"
PLATFORM_ID="platform:el8"
PRETTY_NAME="Red Hat Enterprise Linux 8.7 (Ootpa)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:redhat:enterprise_linux:8::baseos"
HOME_URL="https://www.redhat.com/"
DOCUMENTATION_URL="https://access.redhat.com/documentation/red_hat_enterprise_linux/8/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"

REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 8"
REDHAT_BUGZILLA_PRODUCT_VERSION=8.7
REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="8.7"
[root@virtualserver01-helen ~]#

OS Reload前に準備したSampleFileBeforeUpgrade.txtは、もちろん現在の /root folderに見えなくなりました。

SSH Terminal
[root@virtualserver01-helen ~]# ll
total 4
-rw-r--r--. 1 root root 665 Jul 13 05:59 redhat_subscription.log

Fdiskで現在のDisk情報を確認して、xvdaxvdcの25GB Diskがあることが分かりました。
:出力が長すぎて、一部の行が削除されました。

SSH Terminal
[root@virtualserver01-helen ~]# fdisk -l
Disk /dev/xvda: 25 GiB, 26843701248 bytes, 52429104 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xb55622f5

Device     Boot   Start      End  Sectors Size Id Type
/dev/xvda1 *       2048  2099199  2097152   1G 83 Linux
/dev/xvda2      2099200 52428799 50329600  24G 83 Linux
......
Disk /dev/xvdc: 25 GiB, 26843701248 bytes, 52429104 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x97bf69a8

Device     Boot   Start      End  Sectors Size Id Type
/dev/xvdc1 *       2048  2099199  2097152   1G 83 Linux
/dev/xvdc2      2099200 52428799 50329600  24G 83 Linux

File Systemを確認してみますと,xvdaはMountされております。xvdcはMountされてない、アクセスできない状態です。

SSH Terminal
[root@virtualserver01-helen ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        928M     0  928M   0% /dev
tmpfs           978M     0  978M   0% /dev/shm
tmpfs           978M   17M  962M   2% /run
tmpfs           978M     0  978M   0% /sys/fs/cgroup
/dev/xvda2       24G  1.7G   21G   8% /
/dev/xvda1      974M  215M  692M  24% /boot
tmpfs           196M     0  196M   0% /run/user/0

つまり、RHEL 7のSystem Diskは保持されましたが、OS Reloadしてからは直接アクセスできません。以前のDataを復旧するため、そのDiskをMountする操作が必要です。手順は次の通りです。

SSH Terminal
[root@virtualserver01-helen ~]# mkdir /mnt/rhel7_data
[root@virtualserver01-helen ~]# mount /dev/xvdc2 /mnt/rhel7_data
[root@virtualserver01-helen ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        928M     0  928M   0% /dev
tmpfs           978M     0  978M   0% /dev/shm
tmpfs           978M   17M  962M   2% /run
tmpfs           978M     0  978M   0% /sys/fs/cgroup
/dev/xvda2       24G  1.7G   21G   8% /
/dev/xvda1      974M  215M  692M  24% /boot
tmpfs           196M     0  196M   0% /run/user/0
/dev/xvdc2       24G  1.2G   22G   6% /mnt/rhel7_data
[root@virtualserver01-helen ~]# ll /mnt/rhel7_data/root/
total 8
-rw-r--r--. 1 root root 665 Jul 13 04:04 redhat_subscription.log
-rw-r--r--. 1 root root  39 Jul 13 03:35 SampleFileBeforeUpgrade.txt

以上は、OS ReloadしてClassic VSIをRHEL 7からRHEL 8へUpgradeする手順、及び、Reloadした前のDataをアクセスする手順については、紹介しました。

システムへの影響及び注意点、そして、よくある質問

既に気づいたと思いますが、OS ReloadよりVSI RHELをUploadする方法は、実は新しいOSを構築するという方法です。
OS Reload with Disk Preservationしないと、同じDiskでRHEL 8を実行して、前のRHEL 7に導入されたMiddleware、Application及びDataは、すべて上書きされてなくなりました。
OS Reload with Disk Preservationを有効にしたら、新規DiskでRHEL 8を実行して、以前の環境はPortable Diskとして保持されています。

従って、いずれにしても、新規のRHEL 8のVSI環境には、お客様ご自身でMiddleware、ApplicationおよびDataを復旧する必要があります。Dataの復旧はPortable Diskから移行できますので、わりと簡単かなと思いますが、Softwareの復旧はシステムの構成により様々な状況があります。

ですので、RHEL Upgradeを検討する際に、必ず事前のシステムバックアップ、そして、後の復旧作業を含めて検討していただければと思います。もし、システムやApplicationの構築には、Ansibleなどの自動化ツールを利用している場合、復旧作業が大幅に低減でき、楽になれると思います。

また、以下についてはよく聞かれますので、お伝えします:

  1. OS Reloadしても、VSIのIP Addressが変更しません。
  2. OS Reloadする際、必ずVSI Downtimeがあります。実際のDowntime時間はOSのバージョンとDisk Sizeに依存してますが、大体数分ぐらになります。
  3. OS Reload with Disk Preservationを有効にしたら, そのPortable DiskはBlock Storageとして料金が発生します。

他の道があるかとうか

IBM CloudはOS Reloadのやり方を推薦していますが、 システム全体を考えてDowntimeを避けたい場合、現行環境を保持してまま、新規環境でRHEL 8の上にシステムを構築するという方法も可能です。平行期間にはCloud料金が倍になるとのデメリットがありますが、Downtimeを避けてしっかり検証できるとのメリットもあります。

最後に

以上は私の理解で書いた内容です。間違い点が出ましたら、ごコメントいただければ幸いです。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?