CPU能力の割り当てが
重要になる
z SystemsのCPU性能や可用性の向上に伴い、従来、複数台のz Systems上で分散稼働させていたシステムを1台に集約する動きが増えている。TCOやソフトウェアコストの削減が目的だが、その結果、1台のz Systems上で従来よりもLPAR数が多くなり、複数のLPARによるCPU資源の共有や、稼働特性の異なるシステムの混在が顕著になってきた。そのため、各LPARへのCPU能力の割り当てをいかに適切に行うかが、ハードウェア資源の管理やパフォーマンス/サービスレベルの管理で重要となっている。
今回は、LPARへのCPU資源の割り当てで有用な「キャッピング」について、昨今多用されている方式や、新たに使用可能となった方式を中心に解説する。
キャッピング設定の
意義と種類
z SystemsのLPARへのCPU割り当ては、Weight(重み付け)設定値に基づき、PR/SMマイクロコードが行っている。これは、CPUを共用するLPARのWeight合計値を分母、各LPARのWeight値を分子とする相対的な割合である。
Weight値は、LPAR間でCPU使用の競合が発生した場合の“保証値”の位置づけであるため、CPU資源に余剰があればWeight値を超えたCPU能力を利用できる。この特性は、CPU資源の有効活用の観点ではメリットとなるが、CPU資源がほかのLPARで想定以上に使用されてしまうと(たとえば、オンライン立ち上げ時などCPU資源が急遽必要となるスパイク状況)、影響を受ける可能性がある。
また、z/OSのソフトウェア使用料金はWorkload License Charge(WLC)による従量課金体系なので、設定値以上にCPUが使われるとソフトウェア料金が上昇する恐れもある。
このような事情から、LPARへのCPU能力の割り当てに上限を設ける場合はWeight値だけでは不十分であり、キャッピングによる設定の必要性が増している。図表1に、z Systemsハードウェアにおいて設定可能なキャッピングの種類とその特性をまとめた。
今回はこれらキャッピングのうち、最近多用されている「ソフトウェア・キャッピング」と新しい方式である「絶対値キャッピング」について触れる。
ソフトウェア・キャッピング
ソフトウェア・キャッピングは、2000年に64bit対応となったzSeries 900(z900)から使用可能となった方式である。それ以前は、Weight値の相対能力を上限とする固定的なキャッピング方式しかなかったが、ソフトウェア・キャッピングの登場に伴い、従来方式は「ハードウェア・キャッピング」と名称変更され区別されるようになった。
ソフトウェア・キャッピングの主目的は、z/OS Workload License Chargeへの対応である。つまり、CPU性能の抑制よりもz/OS関連のソフトウェア料金に上限を設けるのが主眼である。なお、ソフトウェア・キャッピングは、z/OS WLMアドレス空間が担当し、PR/SMマイクロコードが指示を行うため、z/OSの稼働が前提条件となる(z/OS以外のLPARでは使用できない)。
ソフトウェア・キャッピングの上限は「Defined Capacity」(DC)と呼ばれ、HMCからMSU値により設定を行う。一方、z/OSが稼働するLPARで過去4時間に使用したCPU能力の平均値を、MSU値換算で「4時間経過平均MSU値」と呼ぶ。この「4時間経過平均MSU値」がDefined Capacityで設定されている上限MSU値を上回ったときにソフトウェア・キャッピングが「ON」となり、その逆に、「4時間経過平均MSU値」が、Defined Capacity設定のMSU値を下回ると「OFF」になる。この動的制御が、ハードウェア・キャッピングと大きく異なる点である(図表2)。
なお、Defined Capacityを設定した場合であっても、Weight値は別途設定する必要がある。その理由は、ソフトウェア・キャッピングが発生していない状況において、他のLPARとのCPU競合が発生した場合の保証値として必要になるからである。
◆ LPAR Group
ソフトウェア・キャッピングの設定は当初LPAR単位に限られていた。しかし、z9 EC/z9 BC以降のハードウェアおよびz/OSV1R8以降の組み合わせでは、複数のLPARを「Group」(LPAR Group)として設定し、そのGroupに対して上限MSU値を設定することも可能となった。これはバッチ区画とオンライン区画のように、CPUピーク特性の異なるLPARでのソフトウェア料金上限管理に有効であり、現在最も多用されているキャッピング方式である。また、LPAR Groupに上限MSU値を設定しながら、個々のLPARに対する上限MSU値の併用も可能である。
LPAR Groupでの上限MSU値設定は、Group内LPARのWeight値に基づき各LPARに上限MSU値が割り当てられる(図表3)。割り当てられたMSU値を使い切っていないLPARが存在する場合は、その余剰分はCPU能力を必要としているほかのLPARに再配分される。このように、適切なソフトウェア料金管理と柔軟なCPU配分を同時に行える方式なので、多くの適用実績がある。
◆ Unused Vector
LPAR GroupにおけるキャッピングのON/OFFの判定は、LPAR個別の制御と比較して複雑となることから、別の概念を用いて管理される。それが「Unused Vector」と呼ばれるもので、LPAR Groupの上限MSU値からGroup内各LPARの「4時間経過平均MSU値」の合計を差し引いた値を指している。
Unused Vectorがプラスの場合は、上限MSU値までCPUを使っていないことを意味しており、キャッピングは発生しない。しかしマイナスの場合はLPAR Group全体で上限MSU値まで使い切っていることを意味しているため、キャッピングがONとなり、各LPARに割り当てられたMSU値に基づくキャッピングが行われる(図表4)。
Unused Vectorは、ハードウェアではなくz/OSが管理している。他LPARのz/OS CPUの使用状況は、ハードウェアのPR/SMマイクロコードからz/OSへ通知されるのみで、z/OSからPR/SMマイクロコードへは通知されない。この仕様により、LPAR Group内であとからIPLされたz/OSは、IPLから4時間未満の間は他z/OSの「4時間経過平均MSU値」を正確に判定できない制約が発生する。このため、他LPARのCPU使用状況に関係なく、IPL後4時間未満のLPARではキャッピングが発生しない。
これが「IPL Bonus」と呼ばれる現象である。IPL Bonusが発生しているときは、LPAR Groupの合計MSU値は設定されている上限値を上回ってしまうが、その場合でもLPAR Groupの上限MSU値がSCRT(Sub-Capacity Reporting Tool)で報告されるので、ソフトウェア料金が上限MSU値を超えることはない。
絶対値キャッピング
Linux on z Systemsを稼働させる場合、ソフトウェア料金はコア数に基づく課金となる。従来のコア数課金はIFLの個数単位(整数)であったが、zEC12およびzBC12 Driver15からCPUキャパシティ上限を0.01個から255.0個の範囲で設定する「絶対値キャッピング」(Absolute Capping)が使用可能となった。従来の100分の1個単位で、より柔軟なコア数課金が実現した。
上限が固定されるキャッピング方式である点は、ハードウェア・キャッピングと同様に見えるが、ハードウェア・キャッピングではWeight値の相対割合で上限が決定されるのに加えて、分母となるWeight合計値はActivateされているLPARのみが対象となる。このため、LPARのActivate/Deactivate運用により上限は必ずしも固定されず、さらにLPAR構成変更が行われた場合にも変動する可能性があった。これに対して絶対値キャッピングはコア数設定なので、ほかのLPARの稼働状況や構成変更に影響されることはない。
また、絶対値キャッピング方式の当初のターゲットはLinux on z Systemsであったが、IFLだけでなく、CP、zIIP、ICFでも設定可能で、Linux on z Systems以外のユーザーでも使用可能である(図表5)。
絶対値キャッピングは当初、ソフトウェア・キャッピングと同様にLPAR単位でしか設定できなかったが、z13およびz13s Driver 27から複数のLPAR Groupでも可能となった。これにより、ホスティングのように複数のユーザーを共存させる場合でも、適切なCPU資源の割り当て管理が可能になるだけでなく、開発フェーズなどで段階的にCPUキャパシティを増加させる場合に、ハードウェアのアップグレードを伴わずにCPU能力の上限を柔軟かつ適切に管理できるようになった。
LPAR Groupでの絶対値キャッピングは2016年3月から使用可能になったが、問い合わせや相談が筆者宛てにも寄せられており、今後の採用拡大が見込まれる。
また絶対値キャッピングに関しては、2016年4月から「絶対MSU値キャッピング」(Absolute MSU Capping)という設定方法が追加された。z/OS V2R1以上でAPAR OA49201(PTF)の適用により使用可能になる。絶対MSU値キャッピングによって、MSU値相当のCPUキャパシティは瞬間的にも超えることができない。MSU値の設定はLPAR単位およびLPAR Group単位のどちらも可能で、LPAR Groupの場合、ソフトウェア・キャッピングを使用しているLPARと絶対MSU値キャッピングの混在も可能である。
ソフトウェア・キャッピングと
絶対値キャッピングの併用
ソフトウェア・キャッピングと絶対値キャッピングは、組み合わせによる設定も可能である。とくにLPAR Group内での組み合わせにより、効果的なCPUキャパシティ管理を実現できる。それぞれの組み合わせの可否および条件について図表6にまとめた。
ハードウェア・キャッピングについては①のみ使用可能となっており、ソフトウェア・キャッピングおよび絶対値キャッピングとは排他使用となる点に注意が必要である。
また③~⑥の組み合わせでわかるように、ソフトウェア・キャッピングと絶対値キャッピングはLPAR単体/LPAR Groupのどちらでも併用でき、各LPARの特性に応じて柔軟に組み合わせることができる。なお、複数のキャッピング方式を併用している場合は、最初に条件に該当したキャッピング方式によりCPUキャパシティ上限が決定される。
日本のメインフレームユーザーの間では、LPAR Group単位のソフトウェア・キャッピングが多用されている。ただし、「4時間経過平均MSU値」の推移によっては、ごく短時間、他のLPARへのCPU割り当てに影響を及ぼす場合がある。とくに、プロセッサの置き換えや構成変更によってキャパシティが増えるケースではキャッピングがONとなるタイミングが変わってしまい、夜間バッチ処理からオンライン処理への切り替えに影響が発生したケースも報告されている。
ハードウェアの前提条件があるためすべてのユーザーに適用できるとは限らないが、条件を満たしている場合は、ソフトウェア・キャッピングだけでなく絶対値キャッピングとの組み合わせにより、このような事態を回避できることもある。本稿により、個々のLPARの稼働特性やサービスレベルを考慮した適切なキャッピング設定への一助となれば幸いである。
著者|樋沼 伸浩
日本アイ・ビー・エム システムズ・エンジニアリング株式会社
テクニカル・コンピテンシー 第一テクノロジー
アドバイザリーITスペシャリスト
著者プロフィール
995年、日本IBM入社。1996年より並列シスプレックスのシステム検証チームに参画。その後z/OS、およびz Systemsサーバーの技術サポートに従事。IBM Redbooks「IBM zEnterprise 196 Technical Guide」の執筆も行う。2015年1月より日本IBMシステムズ・エンジニアリングに出向。
[IS magazine No.14(2017年1月)掲載]