はじめに
メインフレーム(z/OS)の開発環境をIBM Cloud上にセットアップしてみた時のログです。今回はライセンスのアクティベート処理について。
関連記事
クラウド上でのメインフレーム開発環境構築 - (1) 仮想サーバー作成
クラウド上でのメインフレーム開発環境構築 - (2) ZD&T管理サーバーのインストール
クラウド上でのメインフレーム開発環境構築 - (3) ライセンス管理
クラウド上でのメインフレーム開発環境構築 - (4) ZD&Tインスタンス作成概要(ADCD)
クラウド上でのメインフレーム開発環境構築 - (5) ZD&Tインスタンス作成詳説(ADCD)
クラウド上でのメインフレーム開発環境構築 - (6) DeviceMapファイル補足
クラウド上でのメインフレーム開発環境構築 - (7) ネットワーク構成補足
クラウド上でのメインフレーム開発環境構築 - (8) ADCD IPL, Shutdown補足
クラウド上でのメインフレーム開発環境構築 - (9) DASD管理補足
クラウド上でのメインフレーム開発環境構築 - (10)既存ZD&Tからイメージ作成
全体像
今回はライセンス・サーバーに対してライセンスのアクティベート処理を行います。
ZD&Tインスタンスはライセンス・サーバーと通信を行いライセンスが有効であることが確認されると稼働できるようになります。従って、事前にライセンス・サーバーに有効なライセンスを適用しておく必要があります。
※もちろんこれは有償製品なので、事前にライセンスを購入しておく必要があります。
ライセンスのアクティベート
ライセンスをアクティベートするには、大まかに以下のような流れで行います。
- ライセンス・サーバーでリクエスト・ファイルを作成
- リクエスト・ファイルを元にRational Licence Key CenterのWebサイトからアップデート・ファイルを取得
- アップデート・ファイルをライセンス・サーバーに適用
リクエスト・ファイル作成
まず、ライセンス・サーバーを導入したサーバー上で、ライセンス・ファイルを入手するための"リクエスト・ファイル"なるものを作成する必要があります。このライセンス・ファイルには、ライセンス・サーバーのH/W情報などが含まれることになるため、H/W情報が変わってしまった場合はライセンスのアクティベートをし直す必要があります(そのため、クラウド上であっても特定のH/W上で稼働できる環境を選択する必要があります。今回は一時的なテスト環境のためめその辺は意識してません)。
参考: IBM Z Development and Test Environment 12.0.5 - Overview
ZD&T Enterprise Edition and Parallel Sysplex can work on cloud and VMs. You need to make sure that the underlying hardware is not changed by your cloud service provider. CPU or hard drive needs to be a static entity to ensure that all ZD&T editions work.
rootユーザーで/opt/IBM/LDK/以下のrequest_licenseコマンドを実行します。
[root@zdt01 ~]# cd /opt/IBM/LDK
[root@zdt01 /opt/IBM/LDK]# ./request_license
zPDT/LDK license request started.
fingerprint status 0
The request file created is: ~/zdt01_ibmj-cloud-freeusage-p052_cloud_1603110779.zip
Success
[root@zdt01 /opt/IBM/LDK]# ls -la ~ | grep zdt01
-rw-r--r--. 1 root root 1147 Oct 19 07:32 zdt01_ibmj-cloud-freeusage-p052_cloud_1603110779.zip
ホームディレクトリにリクエスト・ファイルが作成されました。
これをインターネット接続可能なPCに転送します。
アップデート・ファイルの取得
※この作業はインターネット接続可能なPC上で行います。
参考: ソフトウェア・ベースのライセンス交付 - 更新ファイルの取得 - ソフトウェア・ベースのライセンス・サーバーの場合
上で取得したリクエスト・ファイルを元に、"アップデート・ファイル"というものをRational License Key CenterというWebサイトからインターネット経由で入手する必要があります。
ZD&Tは有償製品ですので購入時に取得したライセンス情報を元にRational License Key Centerでアカウントを作成しておく必要があります。
そのアカウントを使用して、上のガイドに従ってリクエスト・ファイルを元にアップデート・ファイルを生成します。
例: zdt01_ibmj-cloud-freeusage-p052_cloud_1603110779_update.zip
アップデート・ファイルを入手したらライセンス・サーバー上に転送します。
アップデート・ファイルの適用
参考: ソフトウェア・ベースのライセンス・サーバー・マシンへの更新ファイルの適用
ライセンスのアクティベートを行うために、入手したアップデート・ファイルをライセンス・サーバーに適用します。
アップデートファイルは/root/License/zdt01_ibmj-cloud-freeusage-p052_cloud_1603110779_update.zip
に配置している想定です。
rootユーザーでupdate_licenseコマンドを実行します。
[root@zdt01 ~]# cd /opt/IBM/LDK/
[root@zdt01 /opt/IBM/LDK]# ./update_license /root/License/zdt01_ibmj-cloud-freeusage-p052_cloud_1603110779_update.zip
opened /root/License/zdt01_ibmj-cloud-freeusage-p052_cloud_1603110779_update.v2c
read
The license update was successful.
There were no additional results to display.
以下のコマンドで適用されたライセンスの確認ができます。
[root@zdt01 /opt/IBM/LDK]# ./query_license
The following key is available:
HASP-SL key_id=742677908500558229 feature(s):
FID Feature Name Expiration Logins MaxLogins
334- ADCD License Tue Oct 19,2021 18:59:59 0 1
333- CPU License Tue Oct 19,2021 18:59:59 0 8
Host Information: zdt01.ibmj-cloud-freeusage-p052.cloud localhost
No login sessions
ibmsys1ユーザーで以下のコマンドを実行します。
[ibmsys1@zdt01 ~]$ cd /usr/z1090/bin/
[ibmsys1@zdt01 /usr/z1090/bin]$ ./uimserverstart
uimserver is already running.
これでライセンスの適用は完了です。
補足
ライセンス・サーバーの実体
ここまで、単に「ライセンス・サーバー」と言ってきたものの実体としては、細かくみると"ライセンス・サーバー"と"UIMサーバー"の2つのコンポーネントから構成されます。それぞれ1947, 9451のポートをListenしてZD&Tインスタンスのライセンスを管理します。
ライセンス・サーバーをセットアップすると、hasplmd.serviceというsystemdのサービスと、ibmsys1ユーザーのcrontabに/usr/z1090/bin/uimserverstart
のエントリーが追加されます。
ライセンス・サーバー
systemdサービス “hasplmd.service” により起動
コマンド: /usr/sbin/hasplmd
ポート: 1947(tcp, udp)
[taguchi@zdt01 ~]$ sudo systemctl status hasplmd.service
● hasplmd.service - Sentinel LDK Runtime Environment (hasplmd daemon)
Loaded: loaded (/etc/systemd/system/hasplmd.service; enabled; vendor preset: disabled)
Active: active (running) since Mon 2020-10-19 07:29:03 CDT; 1 weeks 0 days ago
Process: 1605 ExecStart=/usr/sbin/hasplmd -s (code=exited, status=0/SUCCESS)
Main PID: 1619 (hasplmd)
CGroup: /system.slice/hasplmd.service
mq1619 /usr/sbin/hasplmd -s
Oct 19 07:29:03 zdt01.ibmj-cloud-freeusage-p052.cloud systemd[1]: Starting Sentinel LDK Runtime Environment (hasplmd daemon)...
Oct 19 07:29:03 zdt01.ibmj-cloud-freeusage-p052.cloud hasplmd[1619]: HASP LM v21.0.1.77814 loaded
Oct 19 07:29:03 zdt01.ibmj-cloud-freeusage-p052.cloud systemd[1]: Started Sentinel LDK Runtime Environment (hasplmd daemon).
[taguchi@zdt01 ~]$ ss -an | grep 1947
udp UNCONN 0 0 *:1947 *:*
tcp LISTEN 0 128 *:1947 *:*
[taguchi@zdt01 ~]$ sudo lsof -i:1947
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
hasplmd 1619 root 9u IPv4 15129 0t0 TCP *:sentinelsrm (LISTEN)
hasplmd 1619 root 10u IPv4 15130 0t0 UDP *:sentinelsrm
[taguchi@zdt01 ~]$ sudo cat /etc/services | grep sentinelsrm
sentinelsrm 1947/tcp # SentinelSRM
sentinelsrm 1947/udp # SentinelSRM
UIMサーバー
ibmsys1ユーザーのcrontabにより起動
コマンド: /usr/z1090/bin/uimserverstart
ポート: 9451(tcp)
[ibmsys1@zdt01 /usr/z1090/bin]$ crontab -l
@reboot /usr/z1090/bin/uimserverstart reboot > /dev/null
*/13 * * * * /usr/z1090/bin/uimserverstart > /dev/null
[taguchi@zdt01 ~]$ ps -ef | grep uimserver | grep -v grep
ibmsys1 1640 1 0 Oct19 ? 00:00:06 /usr/z1090/bin/uimserver
[taguchi@zdt01 ~]$ ss -an | grep 9451
tcp LISTEN 0 32 *:9451 *:*
[taguchi@zdt01 ~]$ sudo lsof -i:9451
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
uimserver 1640 ibmsys1 4u IPv4 15350 0t0 TCP *:9451 (LISTEN)
CP数について
管理対象の各ZD&Tインスタンスでは、Linuxが稼働しているサーバー(今回のようなCloud環境の場合は仮想サーバー)の論理コア数をZD&Tのプロセッサーとして割り当てることができます。
ライセンス・サーバーでは、管理対象のZD&Tインスタンスに割り当て可能なCP数のトータルの数が管理されます。
[root@zdt01 /opt/IBM/LDK]# ./query_license
The following key is available:
HASP-SL key_id=742677908500558229 feature(s):
FID Feature Name Expiration Logins MaxLogins
334- ADCD License Tue Oct 19,2021 18:59:59 0 1
333- CPU License Tue Oct 19,2021 18:59:59 0 8
Host Information: zdt01.ibmj-cloud-freeusage-p052.cloud localhost
No login sessions
query_licenseコマンド結果の、CPU Licenseの MaxLoginsで示されている数が該当します(上の例だと"8")。
有効なCP数が"8"の場合、1CPずつ割り当てたインスタンスを8個構成する、8CP割り当てのインスタンスを1つ構成する、5CP割り当てのインスタンス1つ+3CP割り当てのインスタンスを1つ、といったようにライセンスで有効なCP数を超えない範囲で複数のインスタンスに割り振りが可能です。
1つのZD&Tインスタンスには、最大で8CPまで割り当て可能です。
参考: Allocating multiple licenses
各々のZD&Tに割り当てるCP数は、ZD&Tインスタンスが稼働するサーバーのCP数を超えることはできません。また、Linux稼働用に少なくとも1コアはZD&Tに割り当てずに残しておく必要があります。
1インスタンスに割り当てるCP数(上限8)については、それぞれGCP, zIIP, IFL(IBM Integrated Facility for Linux Processors)として認識させることができます。例えば、以下の定義例は7つ分のCPをZD&Tインスタンスに割り当てており、その内訳としてGCPx5, zIIPx2を指定しています。(数字の後にProcessorの種類をその数分だけ指定)
[system]
processors 7 cp cp cp cp cp ziip ziip
memory 16G
3270port 3270
ちなみにzIIPとして割り当てた分はライセンスを消費しませんので、上の例だと5CP分のライセンスがあれば足ります。
(少なくともGCPは1つ以上指定する必要があり、全てzIIPとすることはできません。)
ライセンスの更新について
上の手順を見ても分かるように、ライセンス・サーバーのH/W情報をリクエスト・ファイルという形で抽出してそれを元にアップデート・ファイルを生成し、ライセンスのアクティベートを行っています。そのため、ライセンス・サーバーのH/Wが変わるとライセンスが無効になってしまいます。その場合は再度アップデート・ファイルを入手しなおしてアクティベートする必要があります。
またライセンスの有効期間は1年ですので、1年ごとにライセンスの更新を行う必要があります。