(57)【特許請求の範囲】
【請求項１】
少なくとも2台以上の複数の計算機と、前記全ての計算機が、ストレージ用インタフェースを介して直接アクセス可能なストレージと接続している計算機システムにおいて、
ストレージは、各々の計算機専用に設けたローカル論理ボリュームと、全ての計算機がアクセス可能な通信論理ボリュームを備え、
通信論理ボリュームは、全ての計算機の起動状況を記録する計算機ステータステーブルを備え、
計算機は、OSの起動を制御し計算機の起動状況を伝えるブートアップ制御プログラムを備え、
計算機ステータステーブルは、ブートアップ制御プログラムによって各々の計算機の起動状況が記載され、ブートアップ制御プログラムは、起動中の計算機数を知るために計算機ステータステーブルを参照し、その起動状況によって計算機のOS起動開始のタイミングを制御することで、ストレージへのアクセス分散を可能にし、計算機のOS起動を実行することを特徴とする計算機システム。
【請求項２】
前記請求項１記載の計算機システムにおいて、
前記計算機がパワーオンし、前記ブートアップ制御プログラムを始動するステップと、
前記ブートアップ制御プログラムが前記通信論理ボリュームの計算機ステータステーブルにアクセスし、全計算機の起動状況を参照するステップと、
前記ブートアップ制御プログラムが、前記計算機ステータステーブルの各々の計算機の専用領域に起動状況を記載するステップとを備えたことを特徴とする計算機の起動の方法。
【請求項３】
前記請求項１記載の計算機システムにおいて、
ストレージは、全ての計算機とコンソールがそれぞれアクセス可能な通信論理ボリュームと呼ぶ共用論理ボリュームを備え、
通信論理ボリュームは、各々の計算機専用に、その計算機だけが書き込み可能であると定めた専用論理領域を備え、
前記専用論理領域は、各々の計算機の起動状況を記載するものであり、前記計算機が各計算機の前記専用論理領域を適当なタイミングでリードすることにより、各計算機における起動状況を認識することを特徴とする通信の方法。
【請求項４】
前記請求項１記載の計算機システムの構成に、さらにコンソールを備えた計算機システムにおいて、
計算機は、OSの起動を制御し計算機の起動状況を伝えるブートアップ制御プログラムを備え、
コンソールは、計算機の起動を制御する計算機起動制御プログラムと計算機の起動状況を記録する計算機ステータステーブルを備え、
ブートアップ制御プログラムは計算機起動制御プログラムに起動状況を通信し、計算機起動制御プログラムは、計算機ステータステーブルを参照し、計算機の起動数を制御するためにブートアップ制御プログラムに通信することで、ストレージへのアクセスの時間的分散を可能にし、計算機のOS起動を実行することを特徴とする計算機システム。
【請求項５】
前記請求項４記載の計算機システムにおいて、
前記計算機がパワーオンし、前記ブートアップ制御プログラムを始動するステップと、前記ブートアップ制御プログラムが前記計算機起動制御プログラムに起動状況を通知するステップと、前記計算機起動制御プログラムが前記計算機ステータステーブルを参照するステップと、前記計算機起動制御プログラムが前記計算機ステータステーブルを書き換えるステップと、前記計算機起動制御プログラムが前記ブートアップ制御プログラムに通知するステップを備えたことを特徴とする計算機の起動の方法。
【請求項６】
前記請求項４記載の計算機システムにおいて、
前記コンソールおよび計算機が接続するためのインタフェースはファイバチャネルであり、
前記コンソールおよび計算機はファイバチャネルを制御する手段を備え、
前記コンソールおよび計算機が備えるファイバチャネルを制御する手段は、ブロードキャスト可能なメッセージフレームで、その内部に、少なくとも１台以上の計算機に実装したファイバチャネルを制御する手段を特定するための識別子であるWorld Wide Nameと、前記計算機の起動状況や前記コンソールが発行する制御情報を特定するための起動制御識別子を格納したメッセージフレームを送信可能であり、
前記ファイバチャネルを制御する手段は、前記コンソールおよび計算機が発行したブロードキャストのメッセージフレームに、当該ファイバチャネルを制御する手段を特定するための識別子であるWorld Wide Nameが格納されていることを確認した時には、前記起動制御識別子の内容に従って起動制御を実行することを特徴とする計算機とコンソールの通信の方法。
【請求項７】
前記請求項１および４記載の計算機システムにおいて、
前記ブートアップ制御プログラムは、起動数制御により待機中の状態であることを前記計算機の操作者に伝えるために、前記計算機の出力装置にその旨を表示することを特徴とする計算機の起動の方法。
【請求項８】
前記請求項１および４記載の計算機システムにおいて、
前記計算機が備えるブートアップ制御プログラムは電源起動時に実行されるプログラムであり、
前記計算機の起動数を制御し、前記計算機によって書き換え可能であるブートアップ制御プログラムを備えたことを特徴とする計算機システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ストレージを共用する複数計算機のOS起動の方法に関し、特に、OS起動時に複数計算機のストレージ集中アクセスによる性能低下を防止する方法に関する。
【０００２】
【従来の技術】
複数の計算機を用いた計算機システムとして、複数の計算機と、複数の計算機を管理するサーバと、複数の計算機が共用するストレージを備えた計算機システムが知られている。図１７の例を用いて説明する。
【０００３】
同図において、200x（200a＝200n）は計算機、100は計算機200xが共用するストレージ、1001は計算機200xがダウンロードするOS、400は計算機を設置してある場所とは物理的に離れた場所にあるサーバ、500はサーバ400とストレージ100を接続する接続インターフェース、600x（600a＝600n）は複数の計算機200xとサーバ400が通信するためのLAN（Local Area Network）である。
【０００４】
計算機200xがパワーオンすると、まず、計算機200x はLAN 600x経由でサーバ400にアクセスする。次に、ストレージ100にあるOS 1001をダウンロードし、起動を開始する。複数の計算機 200xがパワーオンすると、パワーオンした全ての計算機 200xがOS 1001をダウンロードしようとするため、サーバ 400やストレージ 100への負荷が増大することになる。
【０００５】
【発明が解決しようとする課題】
（課題）
上記従来技術では、複数の計算機を同時に起動しようとすると、サーバやストレージにアクセスが集中することになり、OS起動のような負荷のかかる処理の場合、処理性能が低下し、OS起動に多大な時間がかかるという課題がある。同時に起動する計算機数が多いほどOS起動時間は長大化し、多台数の計算機を使用する場合、業務に支障を来すことになる。
【０００６】
それぞれの操作者が電源投入時間をずらして起動すればストレージへのアクセス集中は回避できるが、他の操作者がいつ電源を入れるかを把握し、他の計算機の起動を待ち、常に電源投入時間を考慮しながら計算機に電源を投入しなけらばならないという課題がある。電源投入は計算機を使用するたびに行なわなければならず、操作者はその都度余計な手間がかかるという課題がある。
【０００７】
（目的）
本発明の目的は、ストレージを共用する計算機システムにおいて、管理者または操作者が、計算機の起動に関する新たな手間や時間を費やすことなく複数計算機の起動が可能な方法を提供し、かつ、複数計算機のOS起動時に、ストレージへの負荷を時間的に分散する方法を提供することにより、ストレージへのアクセス集中による性能低下を防止し、OS起動時間を短縮することである。
【０００８】
【課題を解決するための手段】
上記の目的を達成するために、複数の計算機と、複数の計算機をパワーオンするための管理コンソールと、複数の計算機と管理コンソールが共用するストレージを備えた計算機システムを構築する。
【０００９】
本発明の第一の手段では、管理コンソールは複数の計算機の電源を遠隔地から制御するためのリモートパワー制御プログラムと、計算機グループを管理するための管理テーブルを備える。
【００１０】
計算機は、遠隔地から電源制御をすることができるリモートパワーオン制御手段を備える。
【００１１】
リモートパワー制御プログラムは、管理テーブルで定義された計算機グループにしたがって計算機グループ毎に時間差をつけてパワーオンすることにより、ストレージへのアクセスの時間的分散を可能とする。
【００１２】
本発明の第二の手段では、複数の計算機及び管理コンソールは、ファイバチャネル等の接続インターフェースによりストレージに接続する。
【００１３】
管理コンソールは複数の計算機の電源を遠隔地から制御するためのリモートパワー制御プログラムを備える。
【００１４】
計算機は、遠隔地から電源制御をすることができるリモートパワーオン制御手段と、OSの起動を制御し、計算機の起動状況を伝えるブートアップ制御プログラムを備える。
【００１５】
ストレージは、複数の計算機のそれぞれ専用の論理ユニットと、すべての計算機が使用することができ、計算機の起動状況を記録する通信論理ユニットと、これらの論理ユニットを定義・作成するＬＵ定義プログラムとを備える。
【００１６】
ブートアップ制御プログラムが通信論理ユニットを参照し、計算機数を制御することで、ストレージへのアクセス分散を可能にし、計算機のOS起動を実行する。
【００１７】
また、本発明の第三の手段は、前記第二の手段において、ストレージに配置された通信論理ユニットのかわりに、管理コンソールに計算機の起動を制御する計算機起動制御プログラムを備え、集中型起動制御を行なうことを特徴とする。
【００１８】
【発明の実施の形態】
（第一実施形態）
従来の技術ではサーバを用いたシステム構成がとられていたが、本実施形態では、運用管理や性能の面で優れているサーバレス型のシステム構成とする。この場合も従来技術で述べたような複数計算機の起動時にストレージへのアクセス集中が起こるという課題は同様である。なお、もちろん本発明はこの構成に限定されるものではない。
【００１９】
図１は本実施形態の計算機システムの構成図である。同図において、2x（2a＝2n）は計算機、1はすべての計算機2が共用するストレージ、4は計算機システムを管理するための管理コンソール、3はすべての計算機2xとストレージ1と管理コンソール4を相互に接続するファイバチャネル接続手段、5x（5a＝5n）はファイバチャネルである。7はストレージ1と管理コンソール 4が通信するための通信手段、6x（6a＝6n）は複数の計算機2xと管理コンソール4が通信するためのLAN（Local Area Network）である。
【００２０】
以下、計算機としてはPC（Personal Computer）等のクライアント用計算機を想定し説明するが、サーバや、ワークステーション等のその他の計算機にも応用可能である。また、計算機とストレージを接続するためのインタフェース（以下Ｉ／Ｆと略記する）は、その接続距離と速度の面で最適であるファイバチャネルを想定するが、SCSI（Small Computer System Interface）、USB（Universal Serial Bus）、IEEE1394、等、様々なI／Fに適用可能である。
【００２１】
図２は計算機2xの構成図である。21はこの計算機2のユーザが情報を入力したり出力したりするための入出力装置、22は計算機の全体の制御を行う中央制御手段、25はファイバチャネルの接続、制御を行うために計算機2に搭載したファイバチャネルボード、24はLAN6x用いた通信を行うためのLANボード、23は中央制御手段22が各種制御を実行するために必要なプログラムやデータを格納するためのメモリである。
【００２２】
ファイバチャネルボード25において、250はファイバチャネルの制御を行うファイバチャネルコントローラ、251はファイバチャネルコントローラが制御をするために必要なプログラムやデータや、中央制御手段22がファイバチャネルコントローラ250を制御するために必要なプログラムやデータを格納するためのメモリである。メモリ251において、2511はファイバチャネル5xに接続した計算機2xの外部のストレージ1からOSを起動するめにファイバチャネルコントローラ250を制御するために中央制御手段22が実行するブートアップ制御プログラムである。2512はファイバチャネルコントローラ250を一意に識別するために設けた世界で唯一な名称の情報であるWWN（World Wide Name）である。ここで、本実施形態ではファイバチャネルボード25が計算機2xに搭載されているとしたが、本ボードに搭載するファイバチャネルコントローラ250、およびメモリ251を計算機2xに該ボード25を用いずに直接実装することも可能であり、この場合も本発明の作用、効果は全く同一である。
【００２３】
26は計算機2xのメイン電源スイッチである。
【００２４】
図３はストレージ1の構成図である。11はストレージの全体制御を司る中央制御手段、15はファイバチャネル5dへの接続とその制御を行うファイバチャネルコントローラ、12は中央制御手段11がストレージ1の内部制御を行うためのプログラムやデータを格納するためのメモリ、16は管理コンソール4との間の通信を行うための通信手段、13x（13a＝13n）と14は論理ユニット（LU：Logical Unit）である。
【００２５】
ここで論理ユニットLUとは、論理ボリュームとも呼ばれるストレージ1内部に設けた仮想的なボリュームのことであり、計算機とストレージを接続するI／Fの一つのプロトコルであるSCSI（Small Computer System Interface）の仕様において定義された名称である。以下、論理ボリュームのことを単にLUと呼ぶことにする。またLUを識別するための番号のことをLUN（Logical Unit Number）と呼ぶ。
【００２６】
論理ユニット13xは計算機2x専用のLUであり計算機#x用ローカルLUである。ローカルLU13xには各計算機2x専用のOS 131xが格納される。一方、論理ユニット14はすべての計算機2xと管理コンソール4のいずれもがアクセス可能な共用LUである。
【００２７】
メモリ12において、121は複数のLUを定義したり作成したりするために中央制御手段11が実行するLU定義プログラム、122は各計算機2xが複数のLUのそれぞれに対するアクセス禁止／許可や、LUの属性や、上位計算機から認識されるLUNである仮想LUNとストレージ内部でLUを管理するために付加した内部LUNのそれぞれの対応関係を中央制御手段11が管理するためのLUN管理テーブル、123はLUN管理テーブル122の情報に従い各計算機2xからの各LUへのアクセスを制限／許可する制御を行い、許可した場合には当該LUに対するリード・ライトアクセスの制御を中央制御手段11が実行するためのアクセス制御プログラムである。
【００２８】
LUについて説明する。LUはストレージの上位計算機から見たときの論理的なボリュームである。上位計算機は1つのLUを１台の論理的なディスク装置として認識する。
【００２９】
ストレージ1は内部に複数のLUを定義し、構築することができる。これを内部LUと呼ぶことにする。ストレージ1では内部LUを管理するため0から始まる整数でシリアル番号付けする。この番号を内部LUNと呼ぶ。
【００３０】
一方、本発明の計算機システムのように複数の計算機2xが１台のストレージ1を共用する場合、計算機2xそれぞれに専用のLUを割り当てる。一般にPC等の上位計算機はOSブート時に接続するストレージをサーチしてLUを検出するが、サーチ方法にいくつかの制約がある場合がある。それは、
(a) LUNは0から順にサーチする
(b) LUNは連続番号で存在することを仮定し、ある番号が存在しない場合以降のサーチは行わない
の２点である。これはサーチ時間を短縮するための工夫である。本発明の計算機2もこのような特性をもつ計算機2xであると仮定する。このような場合、もし、内部LUNをそのまま上位計算機に割り当てるとすると、内部LUN=0以外のLUを割り当てられた計算機はこのLUを検出できないことになってしまう。そこで、すべての計算機に対し、0から始まり、かつ連続番号でLUNを割り当てることが望ましい。そこで、本発明においては、ストレージ1は各計算機2xごとにその計算機2xが使用する内部LUををすべて0から始まる連続したLUNになるよう再定義することで上記の課題を解決する。このように各計算機2xから認識されるLUを仮想LU、その番号を仮想LUNと呼び、内部LUおよび内部LUNと区別する。これらの内部LUN、仮想LUNとの対応関係は、ストレージ1が備えるLUN管理テーブル122で管理する。
【００３１】
ストレージ1が備えるLUN管理テーブル122の一例を図４に示す。LUN管理テーブル122には、ポート番号と、Target IDと、仮想LUNと、内部LUNと、WWNと、S_IDと、属性を格納する。
【００３２】
ポート番号は、ストレージ1が備えるファイバチャネル接続ポートの番号を格納する。本実施形態ではポート数は１個を仮定し、一律0を格納する。
【００３３】
TargetIDは、計算機2xとの接続I／Fにおいて、ストレージ1に割り当てる識別 IDのことである。本実施形態のように計算機2xとストレージ1の接続I／Fがファイバチャネルの場合には各ポート毎に唯一のD_ID（Destination ID）を備えるが、ポート番号の項があるので省略してもよいし、ファイバチャネルの初期化時に決定したD_IDを格納しても良い。SCSIの場合には同一ポートに複数のIDを備えることができるので、そのときの各LUNの属するTarget IDを格納する。本実施形態ではファイバチャネルを仮定しているので、Target IDの欄は未使用とし、一律0を格納する。
【００３４】
仮想LUNと内部LUNは、計算機2xに割り当てた内部LUNと各計算機2xから認識される仮想LUNとの対応関係を示す。たとえば、内部LUN0は仮想LUN0として、また内部LUN2も仮想LUN0として定義する。両者はともに仮想LUN0として定義されているが、それぞれ使用できる計算機2xが異なる。
【００３５】
WWNは、各計算機2xのファイバチャネルコントローラ250を特定する情報であるWorld Wide Nameを格納する。ファイバチャネルのポートとポートの接続関係を確立するポートログイン処理の際に、各計算機2xのWWN 2512がストレージ1に通知される。
【００３６】
S_IDは、ファイバチャネルのフレームヘッダに格納されるID情報であり、フレームを作成したソース（イニシエータ）を識別するIDである。S_IDは、ファイバチャネルの初期化の際に、動的に割り当てられる。先に述べたWWNは初期化の際に交換された各ファイバチャネルポートにより一意に設定される値であるが、WWNとS_IDの関連づけを行うことで、フレーム毎にWWNを調べなくてもS_IDのみ検査することで計算機2xが特定できるようになっている。
【００３７】
属性は、各LUの所有属性を示す。「専用」は１台の計算機2x専用のLUであることを示す。「共用」は複数の計算機2xが共用するLUであることを示す。
【００３８】
ここで、図３のストレージ1の構成図と図４のLUN管理テーブル122の対応関係について説明する。計算機2aがWWN＝WWNa、S_ID＝S_IDa、計算機2bがWWN＝WWNb、S_ID＝S_IDb、計算機2nがWWN＝WWNn、S_ID＝S_IDn、管理コンソール4がWWN＝WWNz、S_ID＝S_IDzとすると、図３の計算機2a用ローカルLU13aは内部LUN=0、仮想LUN=0、計算機2b用ローカルLU13bは内部LUN=1、仮想LUN=0、計算機2n用ローカルLU13nは内部LUN=n、仮想LUN=0、計算機2a、2b、・・・、2nの共用LU14は内部LUN=k、仮想LUN=1とマッピングする。また、共用LU14は管理コンソール4でも共用するので、WWN=WWNz、S_ID=S_IDzに対応する内部LUN=kは仮想LUN=0としてマッピングする。なお、ここで管理コンソール4はストレージ1に専用のローカルLUを所持していないので、共用LU14を仮想LUN=0としてマッピングしている。
【００３９】
管理コンソール4を操作する作業者は、管理コンソール4の入出力装置41からLUを定義し、作成する指示を送ることができる。この指示は、通信手段47によりストレージ1に発行される。ストレージ1の通信手段16はこの指示を受信し中央制御手段11に報告する。中央制御手段11はLU定義プログラム121を起動し、指示に従いLUを作成する。そして、定義されたLUのアクセス制御情報として、ポート番号と、Target IDと、仮想LUNと、内部LUNと、WWNと、S_IDと、属性をLUN管理テーブル122に格納する。この作業をすべての計算機2xに対して割り当てるLUの回数繰り返すことで上記LUN管理テーブル122の通りLUを作成できる。
【００４０】
図５は管理コンソール4の構成図である。41は管理者が管理コンソール4を操作するための入出力装置、42は管理コンソール4全体の制御を司る中央制御手段、43は中央制御手段41が実行するプログラムやデータを格納するためのメモリ、45はファイバチャネル5eへの接続、制御を行うファイバチャネルボード、44はLAN6dを用いた通信を行うためのLANボード、46は管理コンソール4のOSやプログラムを格納するディスク装置、47はストレージとの間の通信を行う通信手段である。
【００４１】
メモリ43において、431は計算機2xの電源を制御するリモートパワー制御プログラム、4311は計算機グループを管理する管理テーブルである。図６に該テーブル4311の構成を示す。該テーブル4311は、各計算機のグループ番号が記載される。同じグループに属する計算機は同時に起動することになり、1グループあたりの計算機数は、ストレージの性能等によって決定する。
【００４２】
同図は同時起動数を３としたときの例である。なお、該テーブル4311は一度作成しておけば、計算機構成の変更やストレージの処理性能の変更等がなければ、次回からもそのまま使用することができる。
【００４３】
次に計算機の起動作業の詳細動作について説明する。
【００４４】
(1)管理テーブル作成
管理コンソール4を操作する作業者は、起動する複数計算機をいくつかのグループに分割し、入出力装置41から各計算機のグループ番号を管理テーブル4311に登録する。起動しない計算機についてはグループ番号を０とする。
【００４５】
(2)計算機のパワーオン
リモートパワー制御プログラム431は、管理テーブル4311にしたがって、グループ番号１から順に各グループ毎に一定間隔でリモートパワーオンパケット900の作成・送信を行い、計算機 2ｘの起動を行なう。リモートパワーオンパケット900の送出間隔は、好ましくは計算機の起動時間と略同一とする。該パケット900は、計算機2xをパワーオンするためのパケットであり、その構成を図7に示す。該パケット900は、ヘッダ901とデータ部902からなる。データ部902は、同期部9021とリモートパワーオンする計算機2xのMACアドレス9022をｎ回連続したもので構成される。
【００４６】
リモートパワー制御プログラム431はLANボード44を制御し同ボード44から該パケット900を計算機2xに送信する。
【００４７】
計算機2xのLANボード24上にあるリモートパワーオン制御手段241は、該パケット900を受信する。同手段241は、該パケット900のデータ部902にあるMACアドレス9021を検出する。同手段241は、検出されたMACアドレス9021とLANボード24のMACアドレスとを比較し、同一であった場合はメイン電源スイッチ26を制御し、計算機2xをパワーオンする。パワーオンした計算機2xはストレージ1のローカルLU13xにある各計算機2x専用のOS 131xを読み込み、起動する。
【００４８】
このようにして、計算機2xは、グループ毎に時間差をつけて順次起動していくので、ストレージへのアクセス集中の防止が可能となる。
【００４９】
本実施形態によれば、計算機グループ毎に計算機の起動が行われ、常に一定数の計算機が起動するので、ストレージへのアクセスを時間的に分散することができ、過剰なアクセス集中を抑制することができる。したがって、ストレージの性能低下を防止することができ、システム全体でのOS起動時間を短縮することができる。
【００５０】
（第二実施形態）
第一実施形態では、管理コンソールによる遠隔からの計画的なパワーオンの場合には有効であるが、操作者による直接のパワーオンの場合には対応できないという課題が残る。したがって管理コンソールによるパワーオンと操作者によるパワーオンの両方が混在する環境においては、ストレージへアクセスが集中する可能性がある。パワーオンの方法が混在する環境においても対応できるように、パワーオンの方法にはよらないアクセス集中防止策が必要である。本実施形態は、パワーオンの方法にはよらずにストレージへのアクセス集中を防止し、複数計算機の起動を行なうことができる。ここでは、遠隔からの計算機のパワーオンはLAN経由であることを想定し、説明する。
【００５１】
図８は本実施形態の計算機システムの構成図である。第一実施形態との相違点は、ストレージ 1に新たに通信LU 17を備えたことである。通信LU 17はすべての計算機2xと管理コンソール4のいずれもがアクセス可能であり、計算機の起動状況を通信するためのLUである。通信LU17には計算機ステータステーブル171を格納する。該テーブル171は計算機2xの起動状況を表すテーブルである。
【００５２】
図９に該テーブル171の構成を示す。該テーブル171には排他制御を行なうためのフラグブロックと計算機2x用のブロックがあり、それぞれ該テーブル171内のアドレスを一意に決めておく。フラグブロックのステータス1はいずれかの計算機2xがテーブルにアクセス中であることを表し、ステータス0はテーブルにアクセス中の計算機がいないことを表す。計算機2x用ブロックのステータス1はその計算機がOS起動中であることを表し、ステータス0は未起動、ステータス2は起動が終了したことを表す。計算機2xのブートアップ制御プログラム2511がファイルシステムを使用したファイルリード／ライトではなく、直接LUの論理ブロックをリード／ライトするRAW I／Oコマンドによりアクセスする。また、管理コンソール4は、この計算機ステータステーブル171をRAW I／Oでリードし、適当なタイミングでポーリングすることで各計算機2xの状況を逐次知ることができる。
【００５３】
ブートアップ制御プログラム2511はファイバチャネル5xに接続した計算機2xの外部のストレージ1からOSを起動したり、通信LU117と通信するために用いられる。同プログラム2511は、フラッシュメモリ等を用いることにより、計算機2によって書き換え可能とすることもできる。
【００５４】
次に計算機の起動作業の詳細動作について図１０のフローチャートを用いながら説明する。
【００５５】
(a) 計算機のパワーオン
管理コンソール4のリモートパワー制御プログラム431による遠隔からのパワーオンや、操作者による直接のパワーオン等によって、計算機2xがパワーオンする（図１０のステップ701）。
【００５６】
(b) ブートアップ制御プログラム始動
計算機2xはパワーオンするとファイバチャネルボード25のメモリ251にあるブートアップ制御プログラム2511を始動する（ステップ702）。
【００５７】
(c) ブートアップ制御プログラムが計算機ステータステーブルを参照
ブートアップ制御プログラム2511は、ストレージ1の通信LU17にある計算機ステータステーブル171を参照する。
【００５８】
該プログラム2511は、まずフラグブロックにアクセスし、アクセス中の計算機がいないか調べる。アクセス中の計算機がいなければフラグブロックを１に書き換え、計算機2x用のブロックを参照する。他の計算機がアクセス中であれば、アクセス終了まで待機する（ステップ703）。
【００５９】
(d) 起動中の計算機数が閾値以下である
ブートアップ制御プログラム2511は、計算機ステータステーブル171の計算機2x用ブロックのステータス１の合計数によって起動中の計算機数を知ることができる。閾値はストレージの性能等によってあらかじめ決定された値であり、同時起動可能な計算機数を表す(ステップ704）。
【００６０】
(e) 待機状態を画面表示
起動中の計算機数が閾値より多い場合は、フラグブロックのステータスを0に書き換え、一旦アクセスを終了し、他の計算機がOSの起動を終了して、起動中の計算機数が閾値以下になるまでブートアップ制御プログラム2511は待機する。その際、該プログラム2511は待機状態であることを操作者に伝えるため、入出力装置21の画面上に待機状態であることを表示する。該プログラム2511は一定時間経過した後、再び計算機ステータステーブル171にアクセスする（ステップ709）。
【００６１】
(f) ブートアップ制御プログラムは自計算機のステータスを１に書き換える
起動中の計算機数が閾値以下であれば、ブートアップ制御プログラム2511は、次の処理に進む。起動中であることを表すため、該プログラム2511は、計算機ステータステーブル171の自計算機のステータスを1に書き換え、フラグブロックのステータスを0に戻し、該テーブル171へのアクセスを終了する（ステップ705）。
【００６２】
(g) ブートアップ制御プログラムはOS起動開始
ブートアップ制御プログラム2511は、ストレージ1の計算機専用ローカルLU 13xにあるOS 131xの起動を開始する（ステップ706）。
【００６３】
(h) OS起動完了後、ブートアップ制御プログラムは自計算機のステータスを0に書きかえる。
【００６４】
OS 131xの起動が完了したことを表すため、ブートアップ制御プログラム2511は、計算機ステータステーブル171の自計算機のステータスを0に書き換える（ステップ707）。
【００６５】
以上で計算機の起動動作が終了する。複数の計算機2xが同時に起動動作を実行した場合、閾値までは同時にOS 131xの起動処理が行なわれるが、閾値を超えた場合は、起動中の計算機2xがOS 131xの起動を完了し、計算機ステータステーブル171のステータスを書き換えるまで、他の計算機2xは待機することになる。これによって、ある一定数以上の計算機が同時にOS起動処理を行なうことがなくなり、ストレージ１への過剰なアクセス集中を抑制することができる。したがって、ストレージ1の性能低下を防止することができ、システム全体でのOS起動時間を短縮することができる。
【００６６】
本実施形態によれば、複数計算機のOS起動時に、ストレージへの負荷を時間的に分散することができ、ストレージを共用する計算機システムにおいて、ストレージへの過剰なアクセス集中を抑制することができる。したがって、ストレージの性能低下を防止することができ、システム全体でのOS起動時間を短縮することができる。
【００６７】
また、パワーオンの方法によらず適用可能であるので、遠隔からのパワーオンや直接のパワーオンが混在する環境においても有効である。
【００６８】
また、管理者または操作者が、計算機の起動に関する新たな手間や時間を費やすことなく複数計算機の起動が可能となり、管理コストや人件費の削減につながる。
【００６９】
（実施形態３）
本実施形態においても管理コンソールによる遠隔からの計算機のパワーオンだけでなく、操作者による直接のパワーオンの場合にも適用可能であり、パワーオンの方法にはよらずにストレージへのアクセスを分散した計算機の起動が可能である。ここでは、遠隔操作によるファイバチャネル経由での計算機のパワーオンを想定し、説明する。
【００７０】
図１１は本実施形態の計算機システムの構成図である。第二実施形態との相違点は、図８のLAN 6が存在していないことと通信LU 17に配置されていた計算機ステータステーブル171を管理コンソール4に配置し、新規に計算機起動制御プログラム432を配置したことであり、その他は同一である。
【００７１】
図１２は本実施形態の管理コンソールの構成図である。第二実施形態との相違点は、LANボードが存在しないことと、新規に計算機起動制御プログラム432を設け、ディスク装置46に計算機ステータステーブル171を格納したことである。計算機起動制御プログラム432は、OS起動処理をする計算機数を制御するためのプログラムである。計算機ステータステーブル171は図9に示すものと同一であり、計算機の起動状況を表すテーブルである。第二実施形態ではブートアップ制御プログラム2511が直接参照し、リード／ライトを行なったが、本実施形態では、ブートアップ制御プログラム2511は計算機起動制御プログラム432に通知し、計算機起動制御プログラム432がリード／ライトを行なう。
【００７２】
図１３は本実施形態の計算機2xの構成図である。第二実施形態の計算機2xとの相違点は、LANボードが存在しないことと、ファイバチャネルボード上にリモートパワーオン制御手段2501と待機電源2502が存在していることである。
【００７３】
待機電源2502は計算機2xに設けたものであり、計算機2xのメイン電源がオフの状態でも、この待機電源2502だけはオンになっているように構成する。
【００７４】
リモートパワーオン制御手段2501は、ファイバチャネルコントローラ250の内部に設けたものであり、待機電源2502に接続している。よって、たとえ計算機2xのメイン電源がオフの状態でも、ファイバチャネルコントローラ250が動作するよう制御することができる。そこで、ファイバチャネル5経由で到着するフレーム（パケット）を受信することができる。
【００７５】
次に計算機の起動作業の詳細動作について図１４のフローチャートを用いながら説明する。
【００７６】
(a) 計算機のパワーオン
ファイバチャネルによるリモートパワーオン制御について説明する。図１５は、ファイバチャネルを用いたリモートパワーオンフレーム950の一実施形態である。9501はSOF（Start of Frame）であり、フレームの先頭を示す。9502はフレームヘッダであり、フレームの送信ノードの情報やフレームの種別等の情報を格納する。9502aはブロードキャスト識別子であり、このフレームがブロードキャストフレームとして、同一ファイバチャネルに接続するすべてのノードに対し同時に発行されるフレームであることを示す。9503はペイロードでありこのフレームの転送データの実態である。9503x（xはa＝n）はWWNであり、リモートパワーオンを実施する計算機2xのファイバチャネルコントローラ250のWWN 2512を格納する。9504はCRC（Cyclic Redundancy Code）であり、フレームのビット化けを検出するためのデータ保証コードである。9505はEOF（End Of Frame）であり、フレームの末尾であることを示す。
【００７７】
次にファイバチャネルを用いたリモートパワーオン制御の動作を説明する。管理コンソール4のリモートパワー制御プログラム4311は、リモートパワーオンフレーム950を作成する。このときリモートパワーオンの対象となる少なくとも１台以上の計算機2xのWWNをフレーム950のペイロード9503に格納する。そして、ファイバチャネルボード45を制御してブロードキャストで同フレーム950を送信する。
【００７８】
ここで、各計算機2xはすべて停止していると仮定する。計算機2x本体は停止しているものの、ファイバチャネルコントローラ250は、待機電源2502で動作しており、ファイバチャネル5により到着するフレームを待ち受けている。ここで、上記のリモートパワーオンフレーム950を受信したとすると、同コントローラ250のリモートパワーオン制御手段2501はこのフレーム950のフレームヘッダ9502を検査し、ブロードキャストフレームであることを確認する。次に、同コントローラ250のWWN2512が同フレーム950のペイロード9503に格納されているかどうか検査する。もし、格納されていれば同手段2501はメイン電源スイッチ26を制御することで電源オンにして、計算機2xを起動する。もし、格納されていなければ、このフレーム950を無視し再び待ち受け状態になる。
【００７９】
ここで、リモートパワーオンフレーム950のペイロード9503に格納したWWNは、第一実施形態に記載のLANによるリモートパワーオンパケットと同様に同一のWWNを繰り返し何回か格納しても構わない。
【００８０】
以上のように、LANがなくてもファイバチャネル5を用いてリモートパワーオン制御が可能になる。
【００８１】
上記においては、ファイバチャネルのブロードキャストフレームを用いパワーオン制御を行う方法を説明したが、もしファイバチャネルコントローラがIPプロトコルに対応しているならば、図7に示すリモートパワーオンパケットを用いる方法もある。この場合も上記と構成、動作は同様である。しかし、パケットをそのまま使用できるので、リモートパワー制御プログラムをそのまま適用できる。
【００８２】
このようにして、複数計算機2xをパワーオンする（図１４のステップ801）。
【００８３】
(b) ブートアップ制御プログラム始動
計算機2xはパワーオンするとファイバチャネルボード25のメモリ251にあるブートアップ制御プログラム2511を始動する（ステップ802）。
【００８４】
(c) ブートアップ制御プログラムは管理コンソールの計算機起動制御プログラムに通知し、起動許可を待つ
ブートアップ制御プログラム2511は、起動開始であることを管理コンソール4の計算機起動制御プログラム432に通知するため、起動制御フレーム960を送出する。起動制御フレーム960は、ブートアップ制御プログラム2511が計算機2xの起動開始・終了を計算機起動制御プログラム432に通知したり、計算機起動制御プログラム432がブートアップ制御プログラム2511に起動許可を与えるために用いられるフレームである。図16に起動制御フレーム960の構成を示す。リモートパワーオンフレーム950との相違点は起動識別子96032が存在することである。計算機起動制御プログラム432は、WWN 96031によって計算機を特定し、起動識別子96032によってその計算機が起動開始か起動終了かを知ることができる（ステップ803）。
【００８５】
(d) 計算機起動制御プログラムは、計算機ステータステーブルを参照
通知を受けた計算機起動制御プログラム432は、起動中の計算機数を知るために、ディスク装置46にある計算機ステータステーブル171を参照する。該テーブル171は図９に示すものと同一であり、計算機2xの起動状況を表すテーブルである。なお、本実施形態では該テーブル171を参照できるのは管理コンソールだけであり、排他制御が不要であるため、フラグブロックは使用しない（ステップ804）。
【００８６】
(e) 起動中の計算機数が閾値以下である
計算機起動制御プログラム432は、計算機ステータステーブル171のステータス１の数によって起動中の計算機数を知ることができる。起動中の計算機数が閾値より多い場合は、他の計算機から起動終了通知が来て、起動中の計算機数が閾値以下になるまでブートアップ制御プログラム2511を待機させる。このとき、計算機起動制御プログラム432は、ブートアップ制御プログラム2511に待機命令を伝えるため起動制御フレーム960を送出する。起動中の計算機数が閾値以下であれば、計算機起動制御プログラム432は、次の処理に進む（ステップ805）。
【００８７】
(f) 待機状態を画面表示
起動制御フレーム960が送出されると、ブートアップ制御プログラム2511はWWN 96031によって自分宛のフレームかどうかを判断し、起動制御識別子96032によって待機命令を受けたことを知ることができる。待機命令を受けた該プログラム2511は、待機状態であることを操作者に伝えるため、入出力装置21の画面上に待機状態であることを表示する。該プログラム2511は一定時間経過した後、再び管理コンソール4の計算機起動制御プログラム432に起動開始の起動制御フレーム960を送出する（ステップ812）。
【００８８】
(g) 計算機起動制御プログラムは通知を受けた計算機のステータスを１に書き換える
起動中の計算機数が閾値以下であれば、計算機起動制御プログラム432は、次の処理に進む。通知を受けた計算機が起動中であることを表すため、該プログラム432は、計算機ステータステーブル171の通知を受けた計算機のステータスを1に書き換える（ステップ806）。
【００８９】
(h) 計算機起動制御プログラムは、ブートアップ制御プログラムに起動許可を与える
計算機起動制御プログラム432は、ブートアップ制御プログラム2511に起動許可を与えるため起動制御フレーム960を送出する。待機していたブートアップ制御プログラム2511はWWN 96031によって自分宛のフレームかどうかを判断し、起動制御識別子96032によって起動許可を受けたことを知ることができる（ステップ807）。
【００９０】
(i) 起動許可を受けたブートアップ制御プログラムはOS起動開始
起動許可を受けたブートアップ制御プログラム2511は、ストレージ1の計算機専用ローカルLU13xにあるOS 131xの起動を開始する（ステップ808）。
【００９１】
(j) OS起動完了後、ブートアップ制御プログラムは計算機起動制御プログラムに起動完了通知
ブートアップ制御プログラム2511は、計算機起動制御プログラム432に、OS 131xの起動が完了したことを通知するため、起動制御フレーム960を送出する（ステップ809）。
【００９２】
(k) 計算機起動制御プログラムは通知を受けた計算機のステータスを0に書きかえる
OS 131xの起動が完了したことを表すため、計算機起動制御プログラム432は、計算機ステータステーブル171の通知を受けた計算機のステータスを0に書き換える（ステップ810）。
【００９３】
以上で計算機の起動動作が終了する。複数の計算機2xが同時に起動動作を実行した場合、閾値までは同時にOS 131xの起動処理が行なわれるが、閾値を超えた場合は、起動中の計算機2xがOS 131xの起動を完了し、管理コンソールに起動終了を通知するまで、他の計算機2xは待機することになる。これによって、ある一定数以上の計算機が同時にOS起動処理を行なうことがなくなり、ストレージ１への過剰なアクセス集中を抑制することができる。したがって、ストレージ1の性能低下を防止することができ、システム全体でのOS起動時間を短縮することができる。第二実施形態が、各計算機による分散型起動数制御方式であったのに対し、本実施形態は、管理コンソールによる集中型起動数制御方式といえる。
【００９４】
以上の通り、本実施形態によれば、OS起動状況を確認するために複数の計算機と管理コンソールの間に必要な通信と、リモートパワーオン制御をLANを用いずにファイバチャネル経由で行うことができるので、LANそのものを削除することができる。これにより、上記第二実施形態と同一の効果に加え、さらに、LANの設備コストやメンテナンスコストを低減でき、さらに低コスト化を実現することができるという効果がある。
【００９５】
また、本実施形態によれば、管理コンソールと通信して起動制御を行なうため、さらにストレージへの負荷を低減できるという効果がある。さらに、起動制御を集中化することにより、計算機の管理・起動状況の把握が容易になるという効果がある。
【００９６】
【発明の効果】
本発明によれば、複数計算機のOS起動時に、ストレージへの負荷を時間的に分散することができるので、ストレージを共用する計算機システムにおいて、ストレージへの過剰なアクセス集中を抑制することができる。したがって、ストレージの性能低下を防止することができ、システム全体でのOS起動時間を短縮することができるという効果がある。また、本発明によれば、管理者または操作者が、計算機の起動に関する新たな手間や時間を費やすことなく複数計算機の起動が可能となり、管理コストや人件費の削減につながるという効果がある。
【００９７】
さらに本発明によれば、LANを用いずにファイバチャネルだけで起動作業を実行できるので、システム導入時のLANとファイバチャネルの２種類のケーブルを敷設することにより発生する導入コストや、維持管理のための運用コストを低減することができるという効果がある。
【図面の簡単な説明】
【図１】第１実施形態の計算機システムの構成図。
【図２】第１実施形態の計算機の構成図。
【図３】第１実施形態のストレージの構成図。
【図４】第１実施形態のストレージのLUN管理テーブルの構成図。
【図５】第１実施形態の管理コンソールの構成図。
【図６】第１実施形態の管理テーブルの構成図。
【図７】第１実施形態のリモートパワーオンパケットの構成図。
【図８】第２実施形態の計算機システムの構成図。
【図９】第２実施形態の計算機ステータステーブルの構成図。
【図１０】第２実施形態の計算機の起動動作のフローチャート。
【図１１】第３実施形態の計算機システムの構成図。
【図１２】第３実施形態の管理コンソールの構成図。
【図１３】第３実施形態の計算機の構成図。
【図１４】第３実施形態の計算機の起動動作のフローチャート。
【図１５】第３実施形態のファイバチャネルのリモートパワーオンフレームの構成図。
【図１６】第３実施形態の起動制御フレームの構成図。
【図１７】従来技術の計算機システムの構成図。
【符号の説明】
1…ストレージ、11…中央制御手段、12…メモリ、13…計算機専用ローカルLU、14…共用LU、15…ファイバチャネルコントローラ、16…通信手段、17…通信LU、121…LU定義プログラム、122…LUN管理テーブル、123…アクセス制御プログラム、131…OS、171…計算機ステータステーブル、2…計算機、21…入出力装置、22…中央制御手段、23…メモリ、24…LANボード、241…リモートパワーオン制御手段、25…ファイバチャネルボード、250…ファイバチャネルコントローラ、2501…リモートパワーオン制御手段、2502…待機電源、251…メモリ、2511…ブートアップ制御プログラム、2512…WWN、26…メイン電源スイッチ、3…ファイバチャネル接続装置、4…管理コンソール、41…入出力装置、42…中央制御手段、43…メモリ、431…リモートパワー制御プログラム、4311…管理テーブル、432…計算機起動制御プログラム、44…LANボード、45…ファイバチャネルボード、46…ディスク装置、47…通信手段、5…ファイバチャネル、6…LAN、7…通信I／F、900…リモートパワーオンパケット、950…リモートパワーオンフレーム、960…起動制御フレーム、100…ストレージ、1001…OS、200…計算機、400…サーバ、500…接続インターフェース、600…LAN。
【図１】
0003864664.tif 000002
【図２】
0003864664.tif 000003
【図３】
0003864664.tif 000004
【図４】
0003864664.tif 000005
【図５】
0003864664.tif 000006
【図６】
0003864664.tif 000007
【図７】
0003864664.tif 000008
【図８】
0003864664.tif 000009
【図９】
0003864664.tif 000010
【図１０】
0003864664.tif 000011
【図１１】
0003864664.tif 000012
【図１２】
0003864664.tif 000013
【図１３】
0003864664.tif 000014
【図１４】
0003864664.tif 000015
【図１５】
0003864664.tif 000016
【図１６】
0003864664.tif 000017
【図１７】
0003864664.tif 000018