IBM i バージョン7.5ベータ・プログラム体験記
IBM i のテクノロジーにおいても最先端をゆくべきだという意気込みを背景に、開発部門によるIBM i 新バージョンのベータ・プログラム参加者募集を知るや否や、一も二も無く手を挙げたのはまだ年をまたぐ前のことでした。テスト用のハードウェア資源ばかりでなく、新バージョンをインストールして実際に製品を試す人手も確保しなければなりません。賛同者を得て、極めてスムーズに社内調整を進めることができたのは幸いでした。確保できたシステムはPower S914のいわゆるGモデル、9009-41Gです。
狙いは新バージョンの早期展開に向けた、スキル獲得と社内経験値の積み上げです。基幹業務を担うサーバーであるために、お客様は必ずしも新しいものに飛びつくわけではありません。新製品が発表されても数ヶ月間は様子見が続く傾向があるのは致し方ない反面、製品提供側としてはもったいないという思いは常に抱いておりました。IBM i に求められるのは何よりもまず安定性、それが満足されて初めて新たな価値に目を向けていただけるようになります。私達は新しい機能や概念を訴求したくなる傾向がありますが、安定性確認はその前提となっているのが現実です。身をもって体験することでまずは新バージョンの安定性を確認し、その上で新たな価値を伝えたい、どうせやるならば先頭切ってやるべきだ、というわけです。
バージョン6.1の基幹業務アプリをリストアしただけで正しく動作するか
無限と形容したくなる程の極めて幅広い機能を備えるオペレーティング・システムですし、日常業務を別に抱えているので、確保したとは言っても技術者は四六時中テストに没頭できるわけではありません。機能の山の中で彷徨わないためにも、何を試すべきかを予め決めておくことは重要です。IBM i を導入されるお客様の動機の最大のものは、古くなった既存システムの刷新にありますので、我々も同じことをやってみる必要があります。RPGで記述されフル・バックアップされている社内の基幹システムを動かしてみよう、という目標を設定するのに時間はかかりませんでした。
まずは社内システムのバージョン6.1上で保管したフル・バックアップ・テープを確保しました。バージョン7.5から数えて5レベルも古いので、アプリケーション資産継承性を維持するためのハードルは十分に高いと言って良さそうです。これよりも古いとバイナリ・コンバージョン、すなわち実行コードの移行手続きを実施しなければなりませんので、テスト前に余計な手間を要します。このテープから該当ライブラリをリストアし、アプリケーションを稼働させることができれば成功です。自社基幹業務については、という注釈は付きますが、資産継承性はバージョン7.5においても実現されている、と言うことができます。
結果は全く問題ありませんでした。従来と全く同じ使い勝手、全く同じ動作が実現されておりました。互換性の確認が主目的ですので、これ以上にお伝えできる内容が無いのは何だか情けないような気もしますが、安定性を確認できたという望ましい結論が得られたわけです。少々ドタバタしたのは、技術者は基幹業務システムのユーザーではないことでした。アプリケーション・メニューを表示させるところまでは良かったのですが、そこから先に踏み込めなかったので、基幹業務アプリのユーザーの協力を得なければなりませんでした。
新しいNavigator for i はパフォーマンスと見栄えが大幅に改善されている
バージョン7.5で新登場した機能ではありませんが、我々が注目するべき機能はNavigator for i だと言えるでしょう。ブラウザから使えるIBM i の管理用インターフェースです。昨年の全面刷新を期に、旧来のNavigatorはHeritage Navigator、刷新版はNewNavと俗称することで区別されています。詳しい製品機能紹介は他に譲るとして、新旧は概ね以下のとおりに比較する事ができます。
Heritage Navigator | NewNav |
---|---|
単一ノードの管理 | 多数ノードを同時に管理 |
必要最低限のモニター機能 | 強化されたモニター機能 |
最新ではないWebテクノロジー | Angularテクノロジーを活用 |
応答時間はよろしくない | 応答性が良い |
多機能 | データ収集においてIBM i サービスを利用 |
最も違いを感じた点はパフォーマンスです。きちんとした測定ではありませんが、画面更新に10秒を要していたものが、2秒になった様な感覚があります。Heritage Navigatorでは必要だった忍耐がほぼ要りません。この忍耐ゆえに、利用を諦めた方も多いのではないでしょうか。実は筆者もそうでした。他に管理対象ノード(サーバー)の切換えが極めて迅速であること、ユーザー・インターフェースがよりモダンなものになったこと、を挙げることができます。日常的にエミュレータを使うべき理由は無くなった、という印象を抱かせるインパクトがあります。
利用上の問題は見出せませんでした。IBMまで巻き込んでしまった我々の誤解の一つは、ユーザー名が表示されるべきところに「クセコフ」と出ていた事です。こんな名前のプロファイルは作っていないのです。テストを実施した技術者はEdgeブラウザを日常的に利用しており、英語ページは日本語に翻訳するのをディフォルト設定にしています。システムが出力したかったのは「QSECOFR」なのですが、Edgeがこれをクセコフと「翻訳」していたのでした。翻訳オプションを不要に設定し直したら、正しく「QSECOFR」に修正されました。意外に要注意点かもしれません。
保管の際の新しい圧縮オプション「ZLIB」を試してみる
システムの様々なオブジェクトをバックアップするのは、ほぼ全ての方にとって日常業務の一つだと言えるでしょう。テープなどのメディアをできる限り活用するためにも、世間では様々な圧縮アルゴリズムが考案・実装されています。ZLIBはその中でも最も優れたものの一つで、バージョン7.5で新たに指定できるようになりました。今回は約11Gバイトのサイズを持つライブラリを対象に、SAVLIBコマンドを投入するに際して、「*DEV」「*YES」「*ZLIB」の三つの圧縮オプションを比較してみました。なお、Power10プロセッサに搭載されている「NX(ネスト・アクセラレータ)」を活用できると、*ZLIBオプション指定時のパフォーマンスは大分改善されるようなのですが、Power9のテスト機では試すことはできません。そこで今回はパフォーマンス低下には目をつむり、圧縮率のみに着目してみました。
結果は以下表のとおりです。ZLIB圧縮率の高さは圧倒的であることがわかります。なお、ライブラリ内のデータはテキストなのかバイナリ・コードなのかによって、圧縮率は大きく違うはずですので、これは単なるサンプルに過ぎない点に留意してください。また、ZLIB指定によってバックアップ時間は大きく伸びた事は付け加えておきたいと思います。アクセラレータと共に使用するか、経過時間は気にならない環境において使用するべきなのでしょう。
サイズ(GB) | |
元のライブラリ | 11.06 |
*DEV | 10.93 |
*YES | 0.97 |
*ZLIB | 0.30 |
いつも使っている機能が動かなかったのはセキュリティ強化によるものだったらしい
日常的に利用している機能に触れてみる事も必要です。弊社技術者がいつも使っているBRMSを起動しようと、「GO BRMS」コマンドを投入したら以下画面(一部)が表示されました。これでは機能オプションを選択することができません。ちなみにベータ・プログラム用に提供されたIBM i は英語版ですので、表示されているテキスト自体は問題ありません。
このような経験は初めてですし、開発部門からもらったベータ・プログラム開始のガイドといった簡易なメモにも、BRMS起動に関する注意事項は見当りません。最初に疑ったのはライセンス・キーの入力し損ないですが、WRKLICINFコマンドで確認しても問題はありません。次に疑ったのはPTFです。実はベータ・プログラム期間中に累積PTFがリリースされていたのですが、開発部門のコメントは「必須ではないが適用を強く推奨する」といったものでしたので、必須ではないならと時間を要する作業を後回しにしておりました。IBMに問題を報告する前に少なくともそのくらいは実施しておかなければならないだろうと観念し、作業を実施することにしました。
時間をかけてPTFを適用したにも関わらず、再度の「GO BRMS」の結果に変化はありません。ユーザーとしてはここで万策尽きたと判断しIBMのサポートを仰ぐことにしました。最初に確認を求められたのは、PTF SI77553 が一時適用になっているか、というものでしたが問題はありません。次いで指摘されたのは、「INZBRM OPTION(*DATA)」と「SETUSRBRM」コマンドは実行済みか、というものでした。どちらも簡易メモに記載されておらず、必要性を認識していなかったので実行していません。結果的にはこのアドバイスが有効でした。二つのコマンドを立て続けに投入したので、どちらが有効だったのか確認する機会を逸してしまいましたが、重要なのはおそらく後者コマンドだったであろうと推測しています。
製品マニュアルを見ると「INZBRM」はBRMSを初期化するために投じられます。製品をインストールした際に設定値には触れていないので、このコマンドの効果はおそらく何もありません。もう一方の「SETUSRBRM」コマンドは、IBM i 7.5で強化されたセキュリティに関わるものです。
IBMから得たアドバイスは以下のようなものでした。バージョン7.5のBRMS出荷時設定によると、ディフォルト権限は従来の「*ALLOWED」(許可)から「*DENIED」(拒絶)に変更されています。最初にシステム監理者に対して利用を許可し、次いで各ユーザーに対してアクセス権を付与する、という手順が必要になります。SETUSRBRMコマンドはその最初の許可を与えるために投じられます。
これ以外にも全般的にセキュリティ権限管理は厳格化されています。例えば、サインオンできればあらゆる資源へのアクセスが許可される、セキュリティ・レベル(QSECURITY)20は設定不可になります。特定権限を持たないユーザーは*PUBLIC権限があるものとして管理されますが、*CHANGEや*ALLが*USEに変更されます。利用できる機能に対する制約が厳しくなる傾向にあるのは、安全のための対価とでも言うべきかもしれません。世情を考えるとやむを得ないのでしょう。IBMでは「IBM i プログラム資料説明書7.5」(新バージョンで追加・変更された機能をまとめたドキュメント)を参照して欲しいと強調しています。
CLプログラムの便利機能
これまで主にシステム運用の観点から新バージョンを見てまいりました。プログラマが評価する機能強化ポイントは人によって違うと思いますが、我々が着目したのはCLです。「CALL」または「CALLPRC」コマンドによるプログラム・コールにおいて、受け渡すパラメータのタイプや長さを指定できるようになりました。例えば「CALL PGM(LIB1/MYPGM1) PARM((3 (*INT 4)) ('sample01' (*CHAR 50)))」のようにすれば、最初のパラメータは4バイトの整数、次は50バイトの文字列が引渡されます。劇的な生産性向上をもたらすわけではありませんが、便利な小技が使えるようになったような印象です。C言語のキャストに似たような機能だと思えば良さそうです。試した限りにおいて、全く問題無く動作しました。
まとめ
バージョン7.5は安定稼働していたというのが全体的な印象です。バグが叩き出されて安定するのを待つ、といった考慮はもはや過去のものではないでしょうか。IBMにトラブルと思って我々が報告した現象は、結果的には全て操作上の問題によるものでした。もし旧バージョンからアップグレードする際に注意するべき点を一つ挙げるとすれば、強化されたセキュリティです。もし迷ったら「IBM i プログラム資料説明書7.5」を参照すれば、ほとんどの疑問は解消するのではないかと思います。この拙文はごく限られた期間内に、限られた機能を試した体験を記述したものに過ぎませんが、全てのIBM i ユーザーの方にとって役立つものであれば幸いです。