AIX 5.3をPower Systems Virtual Server上に移行インストールしてみる(移行後はAIX 7.2)

#はじめに
本記事では、AIX5.3のシステム・バックアップ(mksysb)を、Power Systems Virtual Server(以下PowerVS)上に移行インストールする手順を紹介します。移行インストールに際しては、以下の手順を参考にしました。

>mksysb の移行
>https://www.ibm.com/docs/ja/aix/7.2?topic=aix-mksysb-migration

***
なお、本記事ではできるだけ公式ドキュメントを元に手順を作成・実施していますが、本手順がサポートされているかどうかについては確認できていません。また、AIX5.3のサポートは終了しています。そのため、本手順によって、AIX5.3 → 7.2への移行が可能であることを保証するものではありません。また、本記事では、AIX 5.3 → 7.2へ１回でアップグレードしていますが、一般的には、AIX 5.3 → 7.1 → 7.2の２段階アップグレードが奨励されているようです。
**(2021/6/3追記)**
**奨励される方法は、以下の２段階アップグレードのようです。本記事の方法は、簡単だけどリスクもありそうです。**
**(1) AIX 5.3とAIX 7.1の両方をサポートするハードウエア上で、AIX 5.3 → AIX 7.1へアップグレード**
**(2) アップグレード後のmksysbをPowerVSへ転送**
**(3) PowerVS上のLPARへ、mksysbをAIX 7.2へ移行インストール**
***
# 手順概要
AIX 5.3はPOWER9上ではサポートされていません。一方、PoweVSでは、ダラスを除いて最新のPOWER9サーバーが使用されています。移行するためには、AIX 5.3で取得したmksysbを、AIX 7.2(またはAIX 7.1)へアップデートしつつリストアする必要があります。これを本記事では「移行インストール」と呼びます。大まかな手順は、以下のとおりです。

1. AIX5.3のmksysbを取得する
1. PowerVS上にLPARを２つ作成する（１つはNIMサーバー用、もう１つはaix53のmksysbの移行用です)
1. NIMサーバーにAIX5.3のmksysbと、AIX7.2インストールDVDのISOをコピーする
1. NIMサーバー構築し、AIX7.2のspot, lpp_sourceを定義する
1. NIMサーバーにリストア先LPARをクライアントとして定義する
1. NIMサーバーにAIX5.3のmksysbを定義する
1. bosinst.dataを準備する
1. bosinst.dataリソースを定義する
1. Migration Installを開始する
1. 完了

本記事では、チューナブルの確認など省略している手順があります。詳細は、公式ドキュメントを参照してください。

>Migrating to AIX Version 7.2
>https://www.ibm.com/docs/en/aix/7.2?topic=aix-migrating-version-72

# AIX5.3のmksysbを取得する
手持ちのmksysbがなかったので、POWER7のサーバーにAIX5.3を導入しました。移行後、きちんとリストアされていることを確認するために、ユーザーhtanakaを追加し、ホームディレクトリに"oslevel -s"の出力をリダイレクトしたファイルを置いています。

````shell:
$ whoami
htanaka
$ oslevel -s > oslevel.txt
$ cat oslevel.txt
5300-12-05-1140
$
````
mksysbはシンプルに-Xオプションのみで取得しました。

````shell:
# mksysb -X /mnt/aix53.mksysb
````

# PowerVS上に以下のLPARを２つ作成する
nim1とaix53というLPARを２つ作りました。
![スクリーンショット 2021-05-30 14.56.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/143277/af719e8a-c4c3-7b7a-3893-3c183c163230.png)
* nim1: NIMサーバー用LPAR
* aix53: AIX5.3のmksysbをAIX7.2へ移行インストールするLPAR

# NIMサーバーにAIX5.3のmksysbと、AIX7.2インストールDVDのISOをコピーする

NIMサーバーに先程取得したAIX5.3のmksysbと、AIX7.2のインストールDVDのISOをコピーします。ファイルシステムのサイズは適宜調整してください。

````shell:
# ls -l
total 22853368
-rw-r--r--    1 root     system   3794468864 May 28 07:12 AIX_v7.2_Install_7200-05-02-2113_DVD_1_of_2_042021_LCD8223016.iso
-rw-r--r--    1 root     system   7905331200 May 29 09:30 aix53.mksysb
#
````

# NIMサーバー構築し、AIX7.2のspot, lpp_sourceを定義する

NIM関連ファイルセットの導入のためには、先程コピーしたAIX7.2のISOを使います。あらかじめ、以下のようにどこかにマウントしておきます。その後、bos.sysmgt.nim.master bos.sysmgt.nim.client bos.sysmgt.nim.spotの３つのファイルセットを導入します。

````shell:
# loopmount -i AIX_v7.2_Install_7200-05-02-2113_DVD_1_of_2_042021_LCD8223016.iso -o "-v cdrfs -o ro" -m /mnt
# installp -acgXd /mnt bos.sysmgt.nim.master bos.sysmgt.nim.client bos.sysmgt.nim.spot
````

その後の作業(AIX7.2のspot, lpp_sourceを定義)は、[AIX技術情報](https://www.ibm.com/support/pages/aix-%E6%8A%80%E8%A1%93%E6%83%85%E5%A0%B1)の"NIM 環境の構築"の「1.NIMマスターの定義」の部分を参考に実施しました。

# NIMサーバーにリストア先LPARをクライアントとして定義する

リストア先となるaix53のLPARをNIMクライアントとして定義します。これも、[AIX技術情報](https://www.ibm.com/support/pages/aix-%E6%8A%80%E8%A1%93%E6%83%85%E5%A0%B1)の"NIM 環境の構築"の「2.NIMクライアントの定義」の部分を参考に実施しました。

#NIMサーバーにAIX5.3のmksysbを定義する

先ほどコピーしたaix53.mksysbをNIMのmksysbリソースとして定義します。NIMマスター上でコマンドラインから "smit nim_mkres" を実行後、リソース一覧から "mksysb" を選択します。表示されたパラメーターの中で以下の３つを変更します。

````shell:
* Resource Name          [aix53_mksysb]        : リソース名
* Server of Resource     [master]              : mksysbをおいてあるホスト
* Location of Resource   [/root/aix53.mksysb]  : mksysbへのパス
````

#bosinst.dataを準備する

bosinst.dataは、mksysbのリストアの方法を記載する設定ファイルのようなものです。今回、雛形はaix53.mksysbの中に入っているものをつかいました。以下のように、aix53.mksysbからbos.instを抽出します。

````shell:
# restore -xvf aix53.mksysb  ./bosinst.data
````

bosinst.dataを下記のガイドを参考にカスタマイズします。

>mksysb の移行でカスタマイズ済みの bosinst.data ファイルを使用するための要件
>https://www.ibm.com/docs/ja/aix/7.2?topic=migration-requirements-using-customized-bosinstdata-file-mksysb

わたしは、以下の部分を変更しました。

````shell:
INSTALL_METHOD = migrate
PROMPT = no
ACCEPT_LICENSES = yes
RECOVER_DEVICES = no
MKSYSB_MIGRATION_DEVICE = network
target_disk_data:
        PVID =
        CONNECTION =
        LOCATION =
        SIZE_MB =
        HDISKNAME = hdisk0
````

#bosinst.dataリソースを定義する

先程カスタマイズしたbosinst.dataをNIM上のbosinst.dataリソースとして定義します。NIMマスター上でコマンドラインから "smit nim_mkres" を実行後、リソース一覧から "bosinst_data" を選択します。表示されたパラメーターの中で以下の３つを変更します。

````shell:
* Resource Name          [bosinst_aix53]        : リソース名
* Server of Resource     [master]               : bosinst.dataをおいてあるホスト
* Location of Resource   [/root/bosinst.data]  : bosinst.dataへのパス
````

これで、以下のリソースが定義されたはずです（下記の出力は、関係ないリソースを省略しています）。

````shell:
# lsnim
lpp_source_aix72       resources       lpp_source
spot1                  resources       spot
aix53                  machines        standalone
aix53_bosinst          resources       bosinst_data
aix53_mksysb           resources       mksysb
#
````

#移行インストールを開始する

以上で、準備完了です。NIMサーバーから以下のようなコマンドを実行して、移行インストールを開始します。

````shell:
# nim -o bos_inst -a source=rte -a spot=spot1 -a lpp_source=lpp_source_aix72 -a bosinst_data=aix53_bosinst -a mksysb=aix53_mksysb aix53
````

>なお、ここではaix53リストア用のLPARが起動していることを想定しています。LPARが起動していなかったり、ネットワークが疎通できないような場合には、上記コマンドがタイムアウトで終了します。その場合は、SMSメニューからネットワーク・インストールの手順を実施します。この手順は、[AIX技術情報](https://www.ibm.com/support/pages/aix-%E6%8A%80%E8%A1%93%E6%83%85%E5%A0%B1)の"NIM 環境の構築"の「4. NIM クライアントへの OS の導入」が参考になります。

しばらくして、クライアントの状態を見ると、進捗が表示されます。

````shell:
bash-4.3# lsnim -l aix53
aix53:
   class           = machines
   type            = standalone
   installed_image = aix53_mksysb
   connect         = nimsh
   platform        = chrp
   netboot_kernel  = 64
   if1             = network1 aix53 0
   cable_type1     = bnc
   Cstate          = Base Operating System installation is being performed
   prev_state      = BOS installation has been enabled
   Mstate          = in the process of booting
   info            = BOS install 2% complete : Running: MnM_Restore_NIM_Required_Files...
   boot            = boot
   bosinst_data    = aix53_bosinst
   lpp_source      = lpp_source_aix72
   mksysb          = aix53_mksysb
   nim_script      = nim_script
   spot            = spot1
   cpuid           = 00CA78004B00
   control         = master
   Cstate_result   = success
bash-4.3#
````

#完了

完了すると、AIX7.2に移行完了した状態で起動してきます。わたしはCPU/メモリをケチったせいか、完了まで３時間近くかかりました。

````shell:
$ whoami
htanaka
$ cat oslevel.txt
5300-12-05-1140
$ oslevel -s
7200-00-01-1543
$
````

この後、Restricted Kernel Tunablesなどの移行後のお約束作業を実施します。