(57)【特許請求の範囲】
【請求項１】
複数の仮想システムの個別の時刻を管理するコンピュータシステムの時間管理制御方法において、
サービスプロセッサが保持するシステム全体の時刻と、前記システム全体の時刻と前記仮想システムの時刻との差分を、前記仮想システムのファームウェアにより取得するステップと、
時刻変更指示に応じて、前記ファームウェアにより、システム全体の時刻と前記仮想システムの変更時刻の差分を計算し、前記両差分を加算して、前記サービスプロセッサに通知するステップと、
前記サービスプロセッサが保持する前記仮想システムの前記差分を、通知された前記加算値で更新するステップとを有する
ことを特徴とするコンピュータシステムの時間管理制御方法。
【請求項２】
請求項１において、
前記取得ステップは、前記サービスプロセッサが保持する各仮想システムの前記差分から、前記仮想システムに対応する前記差分を前記仮想システムのファームウェアにより取得するステップからなる
ことを特徴とするコンピュータシステムの時間管理制御方法。
【請求項３】
複数の仮想システムと、
システム全体の時刻と、前記システム全体の時刻と前記仮想システムの時刻との差分を保持するサービスプロセッサとを有し、
前記仮想システムは、前記サービスプロセッサから前記システム全体の時刻と前記差分を取得し、時刻変更指示に応じて、前記システム全体の時刻と前記仮想システムの変更時刻の差分を計算し、前記両差分を加算して、前記サービスプロセッサに通知し、
前記サービスプロセッサは、保持する前記仮想システムの前記差分を、通知された前記加算値で更新する
ことを特徴とするコンピュータシステム。
【請求項４】
請求項３において、
前記仮想システムは、前記サービスプロセッサが保持する各仮想システムの前記差分から、前記仮想システムに対応する前記差分を取得する
ことを特徴とするコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の独立したシステムにより構成されるコンピュータシステムにおいて、個々のシステムをそれぞれ異なる時間で管理するための時刻管理制御方法及びコンピュータシステムに関し、特に、システム全体の時間管理用ハードウェアを減少するための時刻管理制御方法及びコンピュータシステムに関する。
【背景技術】
【０００２】
近年、コンピュータシステムの規模が増大すると共に、その使われ方も多様化している。大規模システムは、複数のシステムボード、複数のＣＰＵ、複数のメモリ、複数のＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）などのリソースを持つ。【０００３】
このような大規模システムでは、すべてのリソースを使用して、単一の仮想システムとして動作させる使い方以外に、必要なリソースを割当てた個々の独立した仮想システムに分割して、複数のシステムを動作させる使い方が増えている。【０００４】
この独立して動作するシステムは、他のシステムに影響されない独立した時間管理を行なうことが求められる。一つの大規模システムを複数の仮想システムに分割した場合でも、個々の独立したシステム毎に、動作時間を管理することが必要である。【０００５】
しかし、分割された仮想システムは、あくまで大規模システムのリソースを仮想的に割り当てただけであり、それら一つ一つに時間管理のハードウェア（時刻タイマー）を実装させることはできない。そのため、サービスプロセッサ(以降、ＳＰと記述する)と呼ばれる大規模システム全体を管理するための装置に、個々の仮想システムの時間管理を行なう装置を組み込むことが要求されている。【０００６】
図８は、従来のコンピュータシステムの構成図、図９は、そのシステム時刻管理の説明図、図１０は、システム時刻変更処理の説明図である。【０００７】
図８に示すように、大規模コンピュータシステムは、Ｎ個の仮想システム１００−１〜１００−Ｎと、サービスプロセッサ２００とで構成される。各仮想システム１００−１〜１００−Ｎは、１又は複数のＣＰＵ１１０，１又は複数のメモリ１２０と、Ｉ／Ｏデバイス１３０を有する。メモリ１２２は、ＯＳ格納域１２２に、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）１４０を、ファームウェア格納域１２４に、フィームウェア１５０を格納する。【０００８】
ＯＳ１４０は、ファームウェアインターフェース手段（プログラム）を有し、ファームウェア１５０は、ＯＳインターフェース手段（プログラム）、ＳＰインターフェース手段（プログラム）、時刻変更通知手段（プログラム）を有する。【０００９】
ＣＰＵ１１０は、このＯＳ１４０，ファームウェア１５０を実行して、所望の処理を行う。Ｉ／Ｏデバイス１３０は、サービスプロセッサ２００に接続され、例えば、時刻タイマーの役割を行うＴＯＤ１３２と、ＳＰインターフェース手段（プログラム）１３４とを有する。ＴＯＤ１３２は、例えば、不揮発性メモリとカウンタで構成され、電源断となっても、時刻を保持できる。【００１０】
サービスプロセッサ２００は、システムの時刻タイマーの役割を果たすＴＯＤ２０２と、時刻変更通知手段を有するＦＷインターフェース手段（プログラム）２０４とを有する。【００１１】
このような構成において、仮想システムの時刻を変更することは、例えば、時刻を過去又は将来として、何らかの処理を行い、検証テストする場合や、コンピュータの移行をシミュレーションする場合等である。【００１２】
図９及び図１０を参照して、従来の時刻管理方法を説明する。先ず、ＯＳ１４０からファームウェア１５０に、時刻変更指示を与える。ファームウェア１５０は、時間管理用ハードウェアＴＯＤ１３２に、ＯＳ１４０からの設定時刻（経過時間単位）を通知する。時間管理用ハードウェア１３２は、バッファ領域に、この設定時刻を格納し、ＳＰインターフェース１３４から時刻変更をサービスプロセッサ２００に通知する。【００１３】
サービスプロセッサ２００は、時間管理用ハードウェア１３２のバッファ領域から指示された変更時刻情報を取得し、システム全体のシステム時刻管理用ハードウェア２０２で、システム時刻を元に、変更時間との差分時間を計算する。これを、仮想システムの時間管理用ハードウェア１３２に書き込む。時間管理用ハードウェア１３２は、これを受け、変更時刻を計算する。又、書き込み後、サービスプロセッサ２００は、ファームウェア１５０に、時刻変更の設定完了を通知し、ファームウェア１５０は、この通知をＯＳ１４０に伝える。【００１４】
このように、従来は、サービスプロセッサ２００が、仮想システムの時刻と変更予定の時間との差分時間（ｎｅｗ−ｔｉｍｅ）を、計算し、仮想システムの時間管理用ハードウェア１３２の記憶領域に、差分時間を設定し、ハードウェア１３２が時刻を計算していた（例えば、特許文献１，２参照）。【００１５】
【特許文献１】特開平１１−０１５５５８号公報
【特許文献２】特開２００４−３１８８７８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１６】
このような従来の構成は、小規模のシステムを対象としているが、大規模なシステムでは、仮想システム毎に、時間管理ハードウェアＴＯＤ１３２を持たせる必要があり、システム単位数が増大すると、膨大なハードウェアが必要となり、コストアップの原因にもなっていた。【００１７】
又、サービスプロセッサの計算処理が必要なため、サービスプロセッサが、ほかの優先順位の高い処理を実行していた場合に、時間管理用ハードウェアの記憶領域への時刻設定が遅れて、実際に設定される時間に誤差が生じることが考えられる。【００１８】
従って、本発明の目的は、多数の仮想システムを構築しても、時間管理用ハードウェアの数を減少するためのコンピュータシステムの時間管理制御方法及びコンピュータシステムを提供することにある。【００１９】
又、本発明の目的は、多数の仮想システムを構築しても、時間管理用ハードウェアの数を減少して、コストアップを防止するためのコンピュータシステムの時間管理制御方法及びコンピュータシステムを提供することにある。【００２０】
本発明の目的は、多数の仮想システムを構築しても、時刻変更の遅れを防止するためのコンピュータシステムの時間管理制御方法及びコンピュータシステムを提供することにある。
【課題を解決するための手段】
【００２１】
この目的の達成のため、本発明は、複数の仮想システムの個別の時刻を管理するコンピュータシステムの時間管理制御方法であって、サービスプロセッサが保持するシステム全体の時刻と、前記システム全体の時刻と前記仮想システムの時刻との差分を、前記仮想システムのファームウェアにより取得するステップと、時刻変更指示に応じて、前記ファームウェアにより、システム全体の時刻と前記仮想システムの変更時刻の差分を計算し、前記両差分を加算して、前記サービスプロセッサに通知するステップと、前記サービスプロセッサが保持する前記仮想システムの前記差分を、通知された前記加算値で更新するステップとを有する。【００２２】
又、本発明のコンピュータシステムは、複数の仮想システムと、システム全体の時刻と、前記システム全体の時刻と前記仮想システムの時刻との差分を保持するサービスプロセッサとを有し、前記仮想システムは、前記サービスプロセッサから前記システム全体の時刻と前記差分を取得し、時刻変更指示に応じて、前記システム全体の時刻と前記仮想システムの変更時刻の差分を計算し、前記両差分を加算して、前記サービスプロセッサに通知し、前記サービスプロセッサは、保持する前記仮想システムの前記差分を、通知された前記加算値で更新する。【００２３】
又、本発明は、好ましくは、前記取得ステップは、前記サービスプロセッサが保持する各仮想システムの前記差分から、前記仮想システムに対応する前記差分を前記仮想システムのファームウェアにより取得するステップからなる。
【発明の効果】
【００２４】
サービスプロセッサが、システム全体の時刻と仮想システムの時刻との差分を、仮想システム毎に保持し、仮想システムのファームウェアが、システム全体の時刻と、システム全体の時刻と仮想システムの時刻と差分を取得して、システム全体の時刻と変更時刻の差分を計算し、両差分を加算して、サービスプロセッサに通知する。このため、各仮想システムに、時間管理ハードウェアを必要とせず、仮想システムの時刻を変更できる。又、サービスプロセッサは、更新のみの処理となるため、計算処理等の遅れによる時間設定の誤差も防止できる。
【図面の簡単な説明】
【００２５】
【図１】本発明のコンピュータシステムの一実施の形態の構成図である。
【図２】図１の時刻管理機構のブロック図である。
【図３】図２の時刻変更処理フロー図である。
【図４】図２の処理における時刻を未来に変更する場合の説明図である。
【図５】図２の処理における時刻を未来に変更する例の説明図である。
【図６】図２の処理における時刻を過去に変更する場合の説明図である。
【図７】図２の処理における時刻を過去に変更する例の説明図である。
【図８】従来のコンピュータシステムの構成図である。
【図９】従来の時刻管理機構のブロック図である。
【図１０】従来の時刻変更処理フロー図である。
【発明を実施するための最良の形態】
【００２６】
以下、本発明を図面に従い、コンピュータシステム、時刻変更制御、他の実施の形態の順で説明するが、本発明は、下記実施の形態に限らず、種々の変形が可能である。【００２７】
［コンピュータシステム］
図１は、本発明のコンピュータシステムの一実施の形態の構成図である。図１に示すように、大規模コンピュータシステムは、Ｎ個の仮想システム１−１〜１−Ｎと、サービスプロセッサ２とで構成される。各仮想システム１−１〜１−Ｎは、１又は複数のＣＰＵ１０，１又は複数のメモリ１２と、Ｉ／Ｏデバイス１３を有する。メモリ１２は、ＯＳ格納域１２−１に、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）１４を、ファームウェア格納域１２−２に、フィームウェア１５を格納する。【００２８】
ＯＳ１４は、ファームウェアインターフェース手段（プログラム）を有し、ファームウェア１５は、ＯＳインターフェース手段（プログラム）、ＳＰインターフェース手段（プログラム）、時刻変更通知手段（プログラム）を有する。【００２９】
ＣＰＵ１０は、このＯＳ１４，ファームウェア１５を実行して、所望の処理を行う。Ｉ／Ｏデバイス１３は、サービスプロセッサ２００に接続されたＳＰインターフェース手段（プログラム）１３−１を有する。【００３０】
サービスプロセッサ２は、システムの時刻タイマーの役割を果たす時間管理ハードウェアＴＯＤ２４と、時刻変更通知手段を有するＦＷインターフェース手段（プログラム）２０と、各仮想システムの差分秒を格納するＳＲＡＭ（メモリ）２２とを有する。【００３１】
図８の従来技術と図１の本発明の実施の形態とのハードウェア構成の主な違いは、図８では各仮想システム毎に、時間管理ハードウェア１３２を持っているが、図１の実施の形態では、サービスプロセッサ２のみ時間管理ハードウェア２４を持つ。また、図１のサービスプロセッサ２には、ＳＲＡＭ（揮発性メモリ）２２が搭載されており、各仮想システム１−１〜１−Ｎの差分秒を記憶する。【００３２】
ここで、時間管理ハードウェアＴＯＤは、時刻タイマーの役割をするハードウェアであり、日付や時間の値を複数のカウンタで保持しており、個々のカウンタが最大値に達すると上位のカウンタが増加するような仕組みを持つ。【００３３】
又、ファームウェアは、ＯｐｅｎＢｏｏｔＰＲＯＭとよばれるデバイスツリー情報の作成やＯＳブートなどを行なうためのファームウェアのことである。【００３４】
ＦＷインターフェース手段は、ＯＳ１４からファームウェア１５に指示を出すために存在するインターフェースのことである。サービスプロセッサ２にあるものは、サービスプロセッサ２からファームウェアと情報のやりとりをするために用意されたインターフェースを示す。【００３５】
ＯＳインターフェース手段は、ファームウェア１５からＯＳ１４と情報のやりとりをするためのインターフェースのことである。ハードウェアの実体は、ＦＷインターフェースと同じものであるが、区別できるように、ＯＳインターフェース手段とした。ＳＰインターフェース手段は、ファームウェア１５からサービスプロセッサ２に指示を出すために存在するインターフェースである。【００３６】
即ち、サービスプロセッサ２に、仮想システム単位毎の時間を保存する記憶領域２２を用意する。この記憶領域２２には、サービスプロセッサ２に実装された時間管理用ハードウェア２４で処理されているシステム全体の時間と個々の仮想システムの時間との差分時間（domain-time)が保存される。【００３７】
仮想システム1-1が,自身の時間設定を変更する際には、サービスプロセッサ２内の記憶領域２２に保存された自分の仮想システムの差分時間を変更することで行なう。差分時間の変更は、主に、ＯＳ１４からファームウェア１５に指示され、ファームウェア１５が、サービスプロセッサ２に時間変更を要求するコマンドを発行するという手順で行われる。ただし、このコマンドで、サービスプロセッサ２に渡す情報は、システム全体の時間と変更予定時間との差分時間(set-time)を渡すものとする。【００３８】
［時刻変更処理］
図２は、図１の時刻変更処理の説明図、図３は、図２の時刻変更処理フロー図である。【００３９】
図２を参照して、図３の時刻変更処理を説明する。【００４０】
（１）仮想システム１−１の起動時に、ファームウェア１５が、サービスプロセッサ２へ現在の時刻を取得するためのコマンドを発行する。このコマンド発行で、ファームウェア１５は、システム全体の時間（system-timeという)と仮想システム時間とシステム全体時間との差分時間(domain-timeという)を取得する。【００４１】
（２）仮想システム１−１の管理時間を変更する必要が生じた場合に、ＯＳ１４からファームウェア１５に、時間変更のコマンドを発行する。このとき、コマンドを通じて、変更予定時刻と仮想システムの現時刻との差分時間（new-timeという)を、ファームウェア１５に渡す。【００４２】
（３）ＯＳ１４から発行されたコマンドをファームウェア１５が受けて、サービスプロセッサ２に時間変更を依頼するときに渡す時間 (domain-time + new-time)を計算する。【００４３】
（４）ファームウェア１５は、サービスプロセッサ２に、時刻変更コマンドを通じて、（３）で計算した時間 (domain-time + new-time)を渡す。【００４４】
（５）サービスプロセッサ２は、（４）で渡された時間を、仮想システム１−１の差分時間を保存している記憶領域２２−１に設定する。【００４５】
（６）サービスプロセッサ２は、設定後、時刻設定処理の完了をファームウェア１５に通知し、時刻設定処理の完了をファームウェア１５からＯＳ１４に通知する。【００４６】
このように、サービスプロセッサ２が、システム全体の時刻と仮想システムの時刻との差分を、仮想システム毎に保持し、仮想システム１−１のファームウェア１５が、システム全体の時刻と、システム全体の時刻と仮想システムの時刻と差分を取得して、システム全体の時刻と変更時刻の差分を計算し、両差分を加算して、サービスプロセッサ２に通知する。【００４７】
このため、各仮想システムに、時間管理ハードウェアを必要とせず、仮想システムの時刻を変更できる。又、サービスプロセッサ２は、更新のみの処理となるため、計算処理等の遅れによる時間設定の誤差も防止できる。【００４８】
図４及び図５は、現時刻より未来に仮想システムの時刻を変更する例の説明図である。図４を参照して、図５の例を説明する。【００４９】
図５に示すように、システム時間は、ＵＮＩＸ（登録商標）基準時刻（ここでは、１９７０／１／１  ００：００：００）と、サービスプロセッサ２の時間管理ハードウェア２４が管理するシステム時刻（ここでは、２００５／１／１  ００：００：００）との時間差1)である。ドメイン時間は、サービスプロセッサ２のシステム時刻と仮想システム１−１の個別時刻（ここでは、２００６／１／１  ００：００：００）との時間差2)である。【００５０】
サービスプロセッサ２の時間管理ハードウェア２４は、システム時間1)を持ち、メモリ２２の記憶領域２２−１に、ドメイン時間を保持する。【００５１】
先ず、仮想システム１−１のファームウェア１５は、サービスプロセッサ２より取得してきたシステム時間1)と、ドメイン時間2)を持つ。【００５２】
ＯＳ１４から、変更後の時刻と仮想システムの現在の時刻との差分秒Ｎｅｗ−ｔｉｍｅ3)をファームウェア１５に通知する。ファームウェア１５は、ドメイン時間2)とＮｅｗ時間3)を足したものを、サービスプロセッサ２に通知する。サービスプロセッサ２は、ファームウェア１５から通知された2)＋3)を、メモリ２２−１に保存する。以上により、時刻変更が行われる。【００５３】
図６及び図７は、現時刻より過去に仮想システムの時刻を変更する例の説明図である。図６を参照して、図７の例を説明する。【００５４】
図７でも、図５と同様に、システム時間1)、ドメイン時間2)を定義する。先ず、仮想システム１−１のファームウェア１５は、サービスプロセッサ２より取得してきたシステム時間1)と、ドメイン時間2)を持つ。【００５５】
ＯＳ１４から、変更後の時刻と仮想システムの現在の時刻との差分秒Ｎｅｗ−ｔｉｍｅ3)（−３６００秒）をファームウェア１５に通知する。ファームウェア１５は、ドメイン時間2)とＮｅｗ時間3)を足したものを、サービスプロセッサ２に通知する。サービスプロセッサ２は、ファームウェア１５から通知された2)＋3)を、メモリ２２−１に保存する。以上により、時刻変更が行われる。【００５６】
［他の実施の形態］
以上の説明では、ＵＮＩＸ（登録商標）を例に説明したが、他の構成でも良い。又、仮想システムの数は、複数あれば良い。【００５７】
サービスプロセッサ２が、システム全体の時刻と仮想システムの時刻との差分を、仮想システム毎に保持し、仮想システム１−１のファームウェア１５が、システム全体の時刻と、システム全体の時刻と仮想システムの時刻と差分を取得して、システム全体の時刻と変更時刻の差分を計算し、両差分を加算して、サービスプロセッサ２に通知する。【００５８】
このため、各仮想システムに、時間管理ハードウェアを必要とせず、仮想システムの時刻を変更できる。又、サービスプロセッサ２は、更新のみの処理となるため、計算処理等の遅れによる時間設定の誤差も防止できる。
【図１】
0004606493.tif 000002
【図２】
0004606493.tif 000003
【図３】
0004606493.tif 000004
【図４】
0004606493.tif 000005
【図５】
0004606493.tif 000006
【図６】
0004606493.tif 000007
【図７】
0004606493.tif 000008
【図８】
0004606493.tif 000009
【図９】
0004606493.tif 000010
【図１０】
0004606493.tif 000011