(57)【特許請求の範囲】
【請求項１】
コンピュータ本体に接続される第１のＦＣデバイスおよび第２のＦＣデバイスの識別情報と、第１のＦＣデバイスが前記コンピュータ本体で動作するオペレーションシステムがインストールされているブートデバイスである旨のブート識別コードとを含む優先デバイステーブルと、
前記コンピュータ本体をブートするときに前記優先デバイステーブルを読み込んで前記ブート識別コードを参照し、ブートデバイスである前記第１のＦＣデバイスに対して初期化コマンドを発行し、前記第１のＦＣデバイスに対する初期化が完了してから前記第２のＦＣデバイスに対する初期化コマンドを発行する初期化手段と
を有することを特徴とするコンピュータシステム。
【請求項２】
前記第２のＦＣデバイスに対する初期化コマンドは、前記第１のＦＣデバイスに対するＩ／Ｏコマンドが発行されていないタイミングで発行されることを特徴とする、請求項１に記載のコンピュータシステム。
【請求項３】
前記初期化手段が、前記優先デバイステーブルの前記ブート識別コードを前記コンピュータ本体内のブート識別記憶域に記憶することを特徴とする、請求項２に記載のコンピュータシステム。
【請求項４】
前記コンピュータ本体は、
前記第１のＦＣデバイスおよび前記第２のＦＣデバイスとアクセス可能であり、前記第１のＦＣデバイスから前記コンピュータ本体をブートする第１のＦＣチャネルと、
前記第１のＦＣデバイスおよび前記第２のＦＣデバイスとアクセス可能である第２のＦＣチャネルと
を有し、
前記第２のＦＣチャネルを初期化するとき、前記初期化手段は前記優先デバイステーブルを参照せず、前記ブート識別記憶域にブート識別コードを記憶しないことを特徴とする、請求項３に記載のコンピュータシステム。
【請求項５】
前記コンピュータ本体は、
前記第１のＦＣデバイスおよび前記第２のＦＣデバイスとアクセス可能であり、前記第１のＦＣデバイスから前記コンピュータ本体をブートする第１のＦＣチャネルと、
前記第１のＦＣチャネルに対応し、前記ブート識別コードを含む第１の優先デバイステーブルと、
前記第１のＦＣデバイスおよび前記第２のＦＣデバイスとアクセス可能である第２のＦＣチャネルと、
前記第２のＦＣチャネルに対応し、前記ブート識別コードを含まない第２の優先デバイステーブルと
を有することを特徴とする、請求項３に記載のコンピュータシステム。
【請求項６】
前記初期化手段が前記第１のＦＣデバイスに対して発する初期化コマンドにはブート識別情報が含まれ、
前記第１のＦＣチャネルおよび前記第２のＦＣチャネルは、ＦＣスイッチを介して前記コンピュータ本体と接続されており、
前記ＦＣスイッチは、前記ブート識別情報が含まれる初期化コマンドを受信したときに、該初期化コマンドの対象であるＦＣデバイスの識別情報およびブート識別コードを含むブートディスクテーブルを記憶するローカルメモリを有することを特徴とする、請求項４および請求項５のうちいずれか１項に記載のコンピュータシステム。
【請求項７】
前記ＦＣスイッチは、前記初期化手段から前記ＦＣスイッチがアクセス可能なＦＣデバイスリストを要求されたときに、前記ブートディスクテーブルに含まれるＦＣデバイスのブート識別コードを含めた前記ＦＣデバイスリストを前記初期化手段に返信し、
前記第２のＦＣチャネルに対応する初期化手段は、前記ＦＣスイッチから返信されたＦＣデバイスリストに含まれるブート識別コードと、前記ブート識別記憶域に記憶されたブート識別コードとを比較し、異なっていれば前記ブート識別コードに該当するＦＣデバイスにはアクセスしないよう前記オペレーションシステムに対して設定することを特徴とする、請求項６に記載のコンピュータシステム。
【請求項８】
前記第１のＦＣデバイスおよび前記第２のＦＣデバイスのうち一方もしくは両方が複数のＦＣデバイスを含むことを特徴とする、請求項１ないし請求項７のうちいずれか１項に記載のコンピュータシステム。
【請求項９】
前記優先デバイステーブルは前記ブートデバイスでない優先初期化ＦＣデバイスの識別情報を少なくとも１つ以上含み、前記初期化手段は前記ブートデバイスに対する初期化が完了した直後に前記優先初期化ＦＣデバイスを優先的に初期化することを特徴とする、請求項１ないし請求項８のうちいずれか１項に記載のコンピュータシステム。
【請求項１０】
第１のＦＣデバイスおよび第２のＦＣデバイスと接続可能なコンピュータ本体であって、
前記第１のＦＣデバイスおよび前記第２のＦＣデバイスの識別情報と、第１のＦＣデバイスが前記コンピュータ本体で動作するオペレーションシステムがインストールされているブートデバイスである旨のブート識別コードとを含む優先デバイステーブルと、
前記コンピュータ本体をブートするときに前記優先デバイステーブルを読み込んで前記ブート識別コードを参照し、ブートデバイスである前記第１のＦＣデバイスに対して初期化コマンドを発行し、前記第１のＦＣデバイスに対する初期化が完了してから前記第２のＦＣデバイスに対する初期化コマンドを発行する初期化手段と
を有することを特徴とするコンピュータ本体。
【請求項１１】
前記第２のＦＣデバイスに対する初期化コマンドは、前記第１のＦＣデバイスに対するＩ／Ｏコマンドが発行されていないタイミングで発行されることを特徴とする、請求項１０に記載のコンピュータ本体。
【請求項１２】
前記初期化手段が前記優先デバイステーブルの前記ブート識別コードを記憶するブート識別記憶域を有することを特徴とする、請求項１１に記載のコンピュータ本体。
【請求項１３】
前記第１のＦＣデバイスおよび前記第２のＦＣデバイスとアクセス可能であり、前記第１のＦＣデバイスから前記コンピュータ本体をブートする第１のＦＣチャネルと、
前記第１のＦＣデバイスおよび前記第２のＦＣデバイスとアクセス可能である第２のＦＣチャネルと
を有し、
前記第２のＦＣチャネルを初期化するとき、前記初期化手段は前記優先デバイステーブルを参照せず、前記ブート識別記憶域にブート識別コードを記憶しないことを特徴とする、請求項１２に記載のコンピュータ本体。
【請求項１４】
前記第１のＦＣデバイスおよび前記第２のＦＣデバイスとアクセス可能であり、前記第１のＦＣデバイスから前記コンピュータ本体をブートする第１のＦＣチャネルと、
前記第１のＦＣチャネルに対応し、前記ブート識別コードを含む第１の優先デバイステーブルと、
前記第１のＦＣデバイスおよび前記第２のＦＣデバイスとアクセス可能である第２のＦＣチャネルと、
前記第２のＦＣチャネルに対応し、前記ブート識別コードを含まない第２の優先デバイステーブルと
を有することを特徴とする、請求項１２に記載のコンピュータ本体。
【請求項１５】
前記第１のＦＣチャネルおよび前記第２のＦＣチャネルは、ＦＣスイッチを介して前記コンピュータ本体と接続可能であり、
前記初期化手段が前記第１のＦＣデバイスに対して発する初期化コマンドにはブート識別情報が含まれることを特徴とする、請求項１３および請求項１４のうちいずれか１項に記載のコンピュータ本体。
【請求項１６】
前記第２のＦＣチャネルに対応する初期化手段は、前記ＦＣスイッチから取得したＦＣデバイスリストに含まれるブート識別コードと、前記ブート識別記憶域に記憶されたブート識別コードとを比較し、異なっていれば前記ブート識別コードに該当するＦＣデバイスにはアクセスしないよう前記オペレーションシステムに対して設定することを特徴とする、請求項１５に記載のコンピュータ本体。
【請求項１７】
第１のＦＣデバイスおよび第２のＦＣデバイスがコンピュータ本体に接続されているコンピュータシステムを起動する方法であって、
前記第１のＦＣデバイスおよび前記第２のＦＣデバイスの識別情報と、第１のＦＣデバイスが前記コンピュータ本体で動作するオペレーションシステムがインストールされているブートデバイスである旨のブート識別コードとを含む優先デバイステーブルを前記コンピュータ本体に記憶する優先デバイステーブル記憶工程と、
前記優先デバイステーブルを読み込んで前記ブート識別コードを参照するブート識別コード参照工程と、
ブートデバイスである前記第１のＦＣデバイスに対して初期化コマンドを発行する第１の初期化工程と、
前記第１の初期化工程が完了したことを確認する完了確認工程と、
前記完了確認工程の後で前記第２のＦＣデバイスに対する初期化コマンドを発行する第２の初期化工程と
を有することを特徴とする起動方法。
【請求項１８】
前記第２の初期化工程は、前記第１のＦＣデバイスに対するＩ／Ｏコマンドが発行されていないタイミングで前記第２のＦＣデバイスに対する初期化コマンドを発行することを特徴とする、請求項１７に記載の起動方法。
【請求項１９】
第１のＦＣデバイスおよび第２のＦＣデバイスがコンピュータ本体に接続されているコンピュータシステムを起動する際に、前記第１のＦＣデバイスおよび前記第２のＦＣデバイスを初期化する初期化プログラムであって、前記コンピュータ本体に、
前記第１のＦＣデバイスおよび前記第２のＦＣデバイスの識別情報と、第１のＦＣデバイスが前記コンピュータ本体で動作するオペレーションシステムがインストールされているブートデバイスである旨のブート識別コードとを含む優先デバイステーブルを読み込んで前記ブート識別コードを参照する処理と、
ブートデバイスである前記第１のＦＣデバイスに対して初期化コマンドを発行する第１の初期化処理と、
前記第１の初期化工程が完了したことを確認する確認処理と、
前記確認処理の後で前記第２のＦＣデバイスに対する初期化コマンドを発行する第２の初期化処理と
を実行させることを特徴とする初期化プログラム。
【請求項２０】
前記第２の初期化処理は、前記第１のＦＣデバイスに対するＩ／Ｏコマンドが発行されていないタイミングで前記第２のＦＣデバイスに対する初期化コマンドを発行することを特徴とする、請求項１９に記載の初期化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ本体に接続された周辺機器から起動されるコンピュータシステムに関し、特にファイバーチャネルによってコンピュータ本体に接続された周辺機器から起動されるコンピュータシステムに関する。
【背景技術】
【０００２】
ファイバーチャネル（Fibre Channel、以後ＦＣという）は、ギガビット級ネットワーク技術の一種であり、主にストレージエリアネットワーク（Storage Area Network）などにおいて大規模ストレージを構築する際に、コンピュータと周辺機器を結ぶためのデータ転送方式の一つとして使用されている。ＦＣは、光ファイバーケーブルのみならず、銅線の同軸ケーブルやツイストペアケーブルなどを使用しても構築可能である。
【０００３】
ＦＣは、特に大規模なストレージを必要とするサーバなどのコンピュータ装置に外部記憶装置を接続するのに適した性能を備えている。以後、ＦＣを介してコンピュータ装置に接続される外部記憶装置を、ＦＣデバイスという。
【０００４】
ＦＣなどのインターフェイスによって周辺機器が接続されたコンピュータシステムについての技術としては、たとえば次のような技術がある。特許文献１には、複数のＩ／Ｏ処理を優先と非優先に分割して制御し、非優先のＩ／Ｏは処理を抑制しながら動作させるという技術が開示されている。特許文献２には、同一のＦＣデバイスと接続する複数のチャネルで、一方を通常使用するチャネル、他方をリトライ用のチャネルとするという技術が開示されている。特許文献３には、ＷＷＮ（World Wide Name）と業務識別情報とエリア識別情報とを対応付けてストレージシステム内に記憶しておくことにより、計算機の設定を容易にするという技術が開示されている。非特許文献１は、後述のGID_FTなどのＦＣにおける代表的なコマンドについて規定している。
【０００５】
【特許文献１】特開２００２−１０８５６７号公報
【特許文献２】特開２００５−２０８９７１号公報
【特許文献３】特開２００７−１６４３０５号公報
【非特許文献１】「Fibre Channel - Generic Services-5（FC-GS-5） Rev8.51」The American National Standard Institute T11 technical committee
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ＦＣデバイスを接続したコンピュータシステムで、ＦＣデバイスにオペレーティングシステム（ＯＳ）をインストールして、ブートディスクとしてとして使用する場合がある。そのような場合、ＦＣデバイスの初期化からＯＳが起動するまでにかかるシステム起動（ブート）時間は、できるだけ短時間である必要がある。
【０００７】
しかし、ブートディスク以外のＦＣデバイスがブートを行うＦＣチャネルに接続されていると、それらのＦＣデバイス全てを初期化してからでないとＯＳの読み込みを開始することができないので、システムの起動に時間がかかる。特に、多数のＦＣデバイスを接続されたシステムにおいて、ＦＣデバイスの初期化のために長時間を要する。
【０００８】
そこで、ＦＣデバイスの初期化に要する時間を省略するため、該ＦＣチャネルからブートディスクにのみアクセス可能として、他のＦＣデバイスにはアクセスできないようにすることが普通に行われていた。具体的には、ブートディスクのみをＦＣチャネルに直結するか、あるいはＦＣスイッチのゾーニング機能を利用するなどの方法である。
【０００９】
しかしながら、そのようにしてブートディスク以外のＦＣデバイスを接続しないと、転送速度が高速であり、かつ多数のＦＣデバイスを接続して大規模なストレージを容易に構築できるという、ＦＣのメリットを生かすことができない。
【００１０】
また、１つのＦＣデバイスが複数のコンピュータにおいて共有されることや、１つのコンピュータシステムが複数のＦＣチャネルを有することも多いが、特定のコンピュータをブートするブートディスクは、１つのＦＣチャネルからのみ参照可能であるようにする必要がある。そのようにしなければ、コンピュータにおけるＯＳの動作、およびＯＳのライセンス（使用許諾）などの面において問題が生じる。そのため、他のＦＣチャネルからブートディスクを参照できないよう、コンピュータシステムが設定される必要がある。
【００１１】
前述の特許文献１〜３および非特許文献１は、ブートを行うＦＣチャネルにブートディスク以外のＦＣデバイスを接続していても高速にシステム起動を可能とする構成、および他のＦＣチャネルからブートディスクを参照不可能とする構成を備えていない。それらの文献を組み合わせた技術においても同様である。
【００１２】
本発明の目的は、ＦＣデバイスをブートディスクとしてコンピュータシステムを起動する際に、ブートを行うＦＣチャネルにブートディスク以外のＦＣデバイスを接続していても高速にシステム起動が可能なコンピュータシステム、コンピュータ本体、ＦＣスイッチ、起動方法、送信方法、および初期化プログラムを提供することにある。
【課題を解決するための手段】
【００１３】
上記目的を達成するため、本発明に係るコンピュータシステムは、コンピュータ本体に接続される第１のＦＣデバイスおよび第２のＦＣデバイスの識別情報と、第１のＦＣデバイスがコンピュータ本体で動作するオペレーションシステムがインストールされているブートデバイスである旨のブート識別コードとを含む優先デバイステーブルと、コンピュータ本体をブートするときに優先デバイステーブルを読み込んでブート識別コードを参照し、ブートデバイスである第１のＦＣデバイスに対して初期化コマンドを発行し、第１のＦＣデバイスに対する初期化が完了してから第２のＦＣデバイスに対する初期化コマンドを発行する初期化手段とを有することを特徴とする。
【００１４】
上記目的を達成するため、本発明に係るコンピュータ本体は、第１のＦＣデバイスおよび第２のＦＣデバイスと接続可能なコンピュータ本体であって、第１のＦＣデバイスおよび第２のＦＣデバイスの識別情報と、第１のＦＣデバイスがコンピュータ本体で動作するオペレーションシステムがインストールされているブートデバイスである旨のブート識別コードとを含む優先デバイステーブルと、コンピュータ本体をブートするときに優先デバイステーブルを読み込んでブート識別コードを参照し、ブートデバイスである第１のＦＣデバイスに対して初期化コマンドを発行し、第１のＦＣデバイスに対する初期化が完了してから第２のＦＣデバイスに対する初期化コマンドを発行する初期化手段とを有することを特徴とする。
【００１６】
上記目的を達成するため、本発明に係る起動方法は、第１のＦＣデバイスおよび第２のＦＣデバイスがコンピュータ本体に接続されているコンピュータシステムを起動する方法であって、第１のＦＣデバイスおよび第２のＦＣデバイスの識別情報と、第１のＦＣデバイスがコンピュータ本体で動作するオペレーションシステムがインストールされているブートデバイスである旨のブート識別コードとを含む優先デバイステーブルをコンピュータ本体に記憶する優先デバイステーブル記憶工程と、優先デバイステーブルを読み込んでブート識別コードを参照するブート識別コード参照工程と、ブートデバイスである第１のＦＣデバイスに対して初期化コマンドを発行する第１の初期化工程と、第１の初期化工程が完了したことを確認する完了確認工程と、完了確認工程の後で第２のＦＣデバイスに対する初期化コマンドを発行する第２の初期化工程とを有することを特徴とする。
【００１８】
上記目的を達成するため、本発明に係る初期化プログラムは、第１のＦＣデバイスおよび第２のＦＣデバイスがコンピュータ本体に接続されているコンピュータシステムを起動する際に、第１のＦＣデバイスおよび第２のＦＣデバイスを初期化する初期化プログラムであって、コンピュータ本体に、第１のＦＣデバイスおよび第２のＦＣデバイスの識別情報と、第１のＦＣデバイスがコンピュータ本体で動作するオペレーションシステムがインストールされているブートデバイスである旨のブート識別コードとを含む優先デバイステーブルを読み込んでブート識別コードを参照する処理と、ブートデバイスである第１のＦＣデバイスに対して初期化コマンドを発行する第１の初期化処理と、第１の初期化工程が完了したことを確認する確認処理と、確認処理の後で第２のＦＣデバイスに対する初期化コマンドを発行する第２の初期化処理とを実行させることを特徴とする。
【発明の効果】
【００２０】
本発明は、上記したように優先デバイステーブルを読み込んでブート識別コードを参照し、まずブートデバイスに対して初期化コマンドを発行するように構成しているので、ブートデバイスの初期化を完了してから、ブートの動作を継続しつつその他のＦＣデバイスの初期化を行うことができ、さらにブートを行わないＦＣチャネルからブートディスクを参照できないようにすることができる。これによって、ブートを行うＦＣチャネルにブートディスク以外のＦＣデバイスを接続していても高速にシステム起動が可能な、従来にない優れたコンピュータシステム、コンピュータ本体、ＦＣスイッチ、起動方法、送信方法、および初期化プログラムを提供することができる。
【発明を実施するための最良の形態】
【００２１】
［第１の実施の形態］
図１は、本発明の第１の実施の形態に係るコンピュータシステム１の構成を示すブロック図である。コンピュータシステム１は、コンピュータ本体２、ＦＣスイッチ７０、およびディスク装置８０〜８２とで構成される。コンピュータ本体２は、ＣＰＵ１０、メインメモリ２０、チップセット３０、Ｉ／Ｏポート５０、およびコンピュータ本体２に内蔵されるＦＣカード６０および６１とで構成される。
【００２２】
ＣＰＵ１０は、コンピュータ本体２の中枢機能を担う演算処理装置で、ＯＳ、ＢＩＯＳ、アプリケーションプログラムなどを実行する。ＣＰＵ１０は、外部バスを介してチップセット３０に接続され、そこから各デバイスに接続されて信号の送受を行っている。
【００２３】
メインメモリ２０は、やはりチップセット３０に接続されており、ＣＰＵ１０が実行するプログラムの読み込み領域、処理データを書き込む作業領域として利用されるＲＡＭである。
【００２４】
Ｉ／Ｏポート５０は、複数のスロット５１〜５４を有し、各種周辺機器を接続することが可能である。なお、スロットの数は４つに限定されない。ＣＰＵ１０およびメインメモリ２０は、チップセット３０を経由して、スロット５１〜５４に接続された周辺機器にアクセスすることができる。
【００２５】
いま、スロット５１にはＦＣデバイスを接続するためのインターフェイスであるＦＣカード６０が接続されている。同様にスロット５３にもＦＣカード６１が接続されている。なお、接続に使用されるスロットの選択はこの形態に限定されず、図１で空いているスロット５２および５４を使用してもよい。ＦＣカード６０および６１は、ＦＣスイッチ７０と接続され、それぞれが異なるＦＣチャネルとして形成されている。以後、ＦＣカード６０のＦＣチャネルを第１のＦＣチャネルとし、ＦＣカード６１のＦＣチャネルを第２のＦＣチャネルとする。
【００２６】
コンピュータ本体２をブートすることが可能であるように設定されているＦＣチャネルを、ブートチャネルという。第１のＦＣチャネルはブートチャネルであり、第２のＦＣチャネルにはブートチャネルではない。特定のＦＣチャネルをブートチャネルとして設定する方法は後述する。
【００２７】
ＦＣスイッチ７０は、ローカルメモリエリア７１を有し、ローカルメモリエリア７１に後述のブートディスクテーブル１１０が記憶される。
【００２８】
ＦＣスイッチ７０には、ＦＣデバイスであるディスク装置８０〜８２が接続されている。ＦＣスイッチ７０により、ＦＣカード６０および６１のいずれからも、ディスク装置８０〜８２のいずれにもアクセスできる。ディスク装置８０には、コンピュータ本体２で動作するＯＳの本体がインストールされている。以後、ＯＳの本体がインストールされているディスク装置をブートディスクという。ディスク装置８０はブートディスクであり、ディスク装置８１および８２はブートディスクではない。
【００２９】
チップセット３０は、サービスプロセッサ４０（以後ＳＰ４０という）を有する。ＳＰ４０は、このコンピュータシステム１を制御する組み込みシステムであり、ＳＰ４０を介して外部からこのコンピュータシステム１のブートおよび診断などの制御を行うことができる。また、ＳＰ４０の記憶領域にはＢＩＯＳ４１、ブートプログラム４２、および後述する優先デバイステーブル１００などか記憶されている。
【００３０】
コンピュータシステム１をブートするときには、ＳＰ４０の制御によって、まずＢＩＯＳ４１によるセルフテストなどを行った後、ＦＣカード６０に対応するデバイスドライバであるＦＣドライバ２２が、メインメモリ２０上に確保されたＦＣドライバ領域２２ｂにロードされる。ＦＣカード６１に対応するＦＣドライバ２３も、メインメモリ２０上のＦＣドライバ２２とは異なる領域にロードされる。
【００３１】
そしてＳＰ４０の制御によって、ブートプログラム４２がメインメモリ２０上のＯＳ用領域にロードされ、このブートプログラム４２によってブートディスクが接続されるＦＣチャネルの初期化が指示される。ＦＣチャネルに接続されたブートディスクからＯＳ２１の本体がＯＳ用領域にロードされ、それによってＯＳ２１の動作が開始される。
【００３２】
また、ＢＩＯＳ４１およびブートプログラム４２に、第１のＦＣチャネルをブートチャネルとする旨の設定があらかじめされている。第２のＦＣチャネルには、そのような設定はない。なお、特定のＦＣチャネルをブートチャネルとする設定方法はこれに限定されず、コンピュータシステムの構成によって様々な方法がとられ得る。
【００３３】
また、ＦＣドライバ２２の領域には、優先デバイステーブル１００がやはりＳＰ４０から読み出されて、ＦＣドライバ２２と共にＦＣドライバ領域２２ｂに記憶される。第１のＦＣチャネルはブートチャネルであるので、優先デバイステーブル１００を読み出すが、ブートチャネルでない第２のＦＣチャネルでは、ＦＣドライバ２３は優先デバイステーブル１００を読み出さない。
【００３４】
ちなみに、図１は本実施の形態を説明するために、主要なハードウェアの構成および接続関係を簡素化して記載したに過ぎないものである。コンピュータシステム１を構成するためには、これら以外にも多くのデバイスが使われるが、それらは当業者には周知であるので詳しく言及しない。また、図１で記載した複数のブロックを１個の装置や回路としたり、逆に１個のブロックを複数の装置や回路に分割して構成したりすることも、当業者が任意に選択することができる範囲においては本発明の範囲に含まれる。
【００３５】
図２は、図１で示したＳＰ４０に記憶されている優先デバイステーブル１００の構成を示す概念図である。優先デバイステーブル１００は、ＦＣデバイスの識別番号であるＤＩＤ（Device ID）番号１０１と、各々のＤＩＤ番号１０１に対応するブート識別コード１０２からなる。
【００３６】
ブート識別コード１０２が「１（０００００１ｂ）」であれば、そのデバイスはブートディスクとして設定される。ブート識別コード１０２が「０（００００００ｂ）」であれば、そのデバイスはブートディスクとはならない。なお、ＤＩＤ番号１０１の代わりに、ＦＣデバイスを識別するＷＷＮ（World Wide Name）を使用してもよい。
【００３７】
図１に示した例では、ディスク装置８０のみがブートディスクとして設定されており、ディスク装置８１および８２はブートディスクとはならない。しかし、ディスク装置８１および８２は優先デバイステーブル１００に載ることにより、後述する優先初期化デバイスとして設定されることになる。
【００３８】
ＦＣチャネルの初期化処理において、通常ブートプログラムはＦＣスイッチ７０にGID_FTコマンドを発行してアクセス可能なＦＣデバイスのＤＩＤ番号１０１の一覧を取得し、取得されたすべてのＤＩＤ番号１０１のＦＣデバイスに対して一斉にPLOGIコマンドおよびPRLIコマンドなどの初期化コマンドを実行して、それらのＦＣデバイスを初期化する。コマンドを発行したすべてのＦＣデバイスから応答が帰ってくるまでは、他の制御を行うことはできない。そのため、ブートディスクに対して発行されたＩ／Ｏコマンドを実行できない。
【００３９】
本実施の形態では、ＦＣドライバ２２は優先デバイステーブル１００を読み出し、ＦＣスイッチ７０にGID_FTコマンドを発行して、アクセス可能なＦＣデバイスの一覧を取得する。ブート識別コード１０２が「１」である（ブートディスクである）ＤＩＤ番号１０１が、ＦＣスイッチ７０から取得したアクセス可能なＦＣデバイスの一覧の中に存在するか否かを確認する。存在すれば該ブートディスクのみに対してＩ／Ｏコマンドを発行し、該ブートディスクのみの初期化処理をまず行う。
【００４０】
ブートディスクではないその他のＦＣデバイスの初期化処理は、ブートディスクのみの初期化処理が完了し、そのことがＦＣドライバ２２に通知された後に行われる。従って、ＯＳの立ち上げなどに伴うブートディスクに対するＩ／Ｏコマンドの実行がブートディスク以外のＦＣデバイスよりも優先され、該Ｉ／Ｏコマンドが発行されていないタイミングでブートディスク以外のＦＣデバイスに対する初期化処理が行われる。
【００４１】
本実施の形態では、初期化コマンドをすべてのＤＩＤ番号１０１に対して一斉に発行せず、GID_FTコマンドによって得られたＤＩＤ番号１０１の一覧の先頭から一つずつ初期化コマンドを発行する。また初期化コマンドの発行の前に、ブートディスクに対するＩ／Ｏコマンドが発行されているか否かを確認し、Ｉ／Ｏコマンドがあれば該Ｉ／Ｏコマンドを実行し、なければその他のＦＣデバイスに初期化コマンドを一つずつ発行する。これによって、ブートディスクに対するＩ／Ｏコマンドを優先しつつ、その他のＦＣデバイスの初期化処理が可能であるので、ＯＳの立ち上げなどが滞ることはない。
【００４２】
図３は、図１で示したＦＣスイッチ７０に、ブート識別コード１１２が登録される処理を示す概念図である。ここでは、第１のＦＣチャネル（ＦＣカード６０）によって、ディスク装置８０からコンピュータシステム１をブートする。本実施の形態では、ブートするＦＣチャネルから他のＦＣチャネルにあるＦＣデバイスに接続可能であるよう、ＦＣスイッチ７０のゾーニング機能は使用しない。
【００４３】
しかし、ブートディスクはブートするＦＣチャネル以外のＦＣチャネルからアクセスできないように保護する必要がある。図３の例で言うなら、ブートディスクであるディスク装置８０はブートチャネルである第１のＦＣチャネル（ＦＣカード６０）からのみアクセス可能とし、ブートチャネルではない第２のＦＣチャネル（ＦＣカード６１）からはアクセス不能とする必要がある。そしてブートディスクでないディスク装置８１および８２には、第１および第２のＦＣチャネルのいずれからもアクセスできるようにする必要がある。
【００４４】
具体的には、ブートディスクに対する初期化は、前述のPLOGIコマンドにブート識別コード１０２を付加した専用コマンドを発行することによって行われる。この専用コマンドをBoot-PLOGIコマンドという。ＦＣスイッチ７０は、PLOGIコマンドにブート識別コード１０２が付加されていればBoot-PLOGIコマンドであると認識し、ＦＣスイッチ７０内のローカルメモリエリア７１に設けたブートディスクテーブル１１０に、ブートディスクのＤＩＤ番号１０１とともに登録する。
【００４５】
ブートディスクテーブル１１０は、優先デバイステーブル１００と同様にＤＩＤ番号１１１と、ブート識別コード１１２とを有する。ＦＣドライバ２２は、ＦＣスイッチ７０にコマンドを発して、現在アクセス可能なＦＣデバイスリスト１１３を取得することができる。ブートディスクテーブル１１０に登録されたＦＣデバイスのＤＩＤ番号１１１とブート識別コード１１２が、ＦＣデバイスリスト１１３に含まれてＦＣドライバ２２に返信される。
【００４６】
ＦＣスイッチ７０では、接続されているＦＣチャネルからGID_FTコマンドなどによってアクセス可能なＦＣデバイスのリストを要求されたら、送信するＦＣデバイスリスト１１３で、返信データ１８０の中のリザーブ領域を利用して、ブート識別コードを送信するように制御する。
【００４７】
図４は、図３で示したＦＣスイッチ７０がGID_FTコマンドに対する返信（Accept）でＦＣチャネルに送信する返信データ１８０のフォーマットを示す概念図である。このデータの１エントリーはコントロール１８１が１バイト、ポート識別子１８２が３バイトの計４バイトからなる。ポート識別子１８２にＤＩＤ番号１１１が設定され、コントロール１８１の先頭ビットが１の場合、そのエントリーが最後のエントリーであることを示す。このとき、コントロール１８１の先頭ビットの１以外の７ビットは使用されず、リザーブ領域（ｒで表現される）となっている。このリザーブ領域の７ビットに、ブート識別コード１１２を設定することができる。
【００４８】
ブートチャネルは、優先デバイステーブル１００からブート識別コード１０２を読み出した場合、ブート識別コード１０２の値をＦＣチャネルのブート識別コード２２ｃとして保持する。ブートチャネルでないＦＣチャネルのブート識別コード２２ｃは「０」である。従って、ＦＣスイッチ７０からコマンドを使用してブートディスクテーブル１１０を読み出すと、ブートチャネルでないＦＣチャネルのブート識別コード２２ｃは、ブートディスクテーブル１１０のブート識別コード１１２と不一致となる。
【００４９】
ブート識別コード２２ｃとブート識別コード１１２とが一致しない場合は、該ＦＣデバイスは他のＦＣチャネルもしくはコンピュータによってブートディスクとして既に使用されていることを意味する。そのため、ＦＣスイッチ７０はブート識別コード２２ｃと１１２が一致しないＦＣデバイスにはアクセスしないように制御する。このようにして、ブートディスクをブートチャネルからのみアクセス可能にしている。
【００５０】
図５は、図３および４で示したＦＣスイッチ７０が、ＦＣドライバ２２からのコマンドに対応して行う処理を表すフローチャートである。処理が起動すると（ステップＳ５００）、ＦＣスイッチ７０がＦＣドライバ２２からのコマンドの受信を待つ（ステップＳ５０１）。コマンドを受信したら、該コマンドがBoot-PLOGIコマンドであるかGID_FTコマンドであるかを判断する（ステップＳ５０２およびＳ５０４）。
【００５１】
Boot-PLOGIコマンドであれば、ブートディスクテーブル１１０にブート識別コード１０２をＤＩＤ番号１０１とともに登録して（ステップＳ５０３）、ステップＳ５０１に戻る。GID_FTコマンドであれば、ブートディスクテーブル１１０のＤＩＤ番号１１１とブート識別コード１１２をＦＣデバイスリスト１１３に含めてＦＣドライバ２２に返信して（ステップＳ５０４）、ステップＳ５０１に戻る。その他のコマンドであれば、該コマンドに対応する通常の処理をして（ここでは図示しない）、ステップＳ５０１に戻る。
【００５２】
なお、図５のフローチャートに係る各ステップの動作内容は、ＦＣスイッチ７０があらかじめ備えるコンピュータで動作するプログラム（ファームウェアなど）として実行させるように構成することができる。
【００５３】
図６は、図１で示したコンピュータシステム１において、ブートディスクのみを初期化する処理、およびブートディスクへのＩ／Ｏコマンド実行中にその他のFCデバイスを初期化する処理の実行イメージを示すイメージ図である。まず、ＳＰ４０からメインメモリ２０のＯＳ２１の領域に、ＯＳ本体をブートディスクであるディスク装置８０から読み出すブートプログラムがロードされる。ブートプログラムは、スロット５１に接続されたＦＣカード６０を制御するＦＣチャネルの初期化処理開始を指示する（矢印（Ａ））。
【００５４】
ＦＣドライバ２２は、ブートチャネルの初期化であるので、初期化処理開始の指示に対して、ＦＣドライバ２２の領域に格納された優先デバイステーブル１００を読み出し（矢印（Ｂ））、そこからブートディスクのブート識別コード１０２を取り出し、ＦＣドライバ領域２２ｂに、ＦＣドライバ２２のブート識別コード２２ｃとして保存する。そして、ＦＣスイッチ７０に対してGID_FTコマンドを発行し、優先デバイステーブル１００のＤＩＤ番号１０１のＦＣデバイスが存在するか否かを確認する。
【００５５】
ＦＣスイッチ７０から受け取ったアクセス可能なＦＣデバイスリストの中に、優先デバイステーブル１００のＤＩＤ番号１０１で示されるＦＣデバイスが存在していれば、ブートプログラムはBoot-PLOGIコマンドをＦＣスイッチ７０に送る（矢印（Ｃ））。ＦＣスイッチ７０はBoot-PLOGIコマンドを認識し、図３に示したブートディスクテーブル１１０にブート識別コード１１２とそれに対応するＤＩＤ番号１１１を保存する。
【００５６】
ブートディスクであるディスク装置８０の初期化が完了すると、ディスク装置８０からＦＣドライバ２２を介してブートプログラムに初期化完了が報告される（矢印（Ｄ））。これによって、ブートディスクの初期化は完了したことになるので、ブートプログラムはＯＳ本体をディスク装置８０から読み出すＩ／Ｏコマンドを発行する（矢印（Ｆ））。
【００５７】
その一方で、ブートディスクの初期化が完了したことを受けたＦＣドライバ２２は、ブートディスク以外のＦＣデバイスの初期化を行う（矢印（Ｅ））。ブートディスク以外のＦＣデバイスの初期化処理は、ＦＣスイッチ７０から受け取ったＦＣデバイスリストから、図２の（ｂ）に示したようなブートディスクを除いたＦＣデバイスリストを作成し、その先頭のＤＩＤ番号１０１から順番に初期化を行っていく。その際、初期化処理を実行する前に、矢印（Ｆ）で示すブートディスクに対するＩ／Ｏコマンドが発行されているかを確認し、発行されていれば該Ｉ／Ｏコマンドの処理を優先して実行するように制御する（矢印（Ｇ））。
【００５８】
ブートディスク以外のＦＣデバイスの初期化が完了すれば、ＦＣデバイスの接続構成が変更されたことを、ブートが完了して立ち上がったＯＳに通知する（矢印（Ｈ））。
【００５９】
図７〜８は、図１で示した本実施の形態のＦＣカード６０〜６１の初期化に係る、ＦＣドライバ２２〜２３による処理を表すフローチャートである。ＦＣカード６０はブートチャネルであり、ＦＣカード６１はブートチャネルではない。しかし、それぞれのＦＣカードに対応するＦＣドライバ２２と２３は同一のコンピュータプログラムであり、自らが初期化しているＦＣチャネルがブートチャネルであるか否かを動作の中で判断して、ブートチャネルである場合とそうでない場合のそれぞれに対応した動作を行う。従って、以後の説明においては、ＦＣドライバ２２が動作の主体であるとして説明を行うが、ＦＣドライバ２３もそれと同一の動作を行うことができるものとして理解されたい。
【００６０】
ＦＣドライバ２２の処理が起動すると（ステップＳ２００）、ブートプログラム４２内部の初期設定を判断することにより、現在の処理がブートプログラムによるブートチャネルの初期化処理であるか否かを判断する（ステップＳ２０１）。
【００６１】
ブートを行うＦＣチャネルの初期化処理であれば、ＳＰ４０から優先デバイステーブル１００を取得し、ブート識別コード１０２とブートディスクのＤＩＤ番号１０１を取り出してＦＣドライバ領域２２ｂのブート識別コード２２ｃとして（ステップＳ２０２）、ステップＳ２０４に進む。ブートを行うＦＣチャネルの初期化処理でなければ、ブート識別コード２２ｃ＝０と設定して（ステップＳ２０３）、ステップＳ２０４に進む。
【００６２】
ＦＣドライバ２２は、ＦＣスイッチ７０からＦＣデバイスリスト１１３を取得し（ステップＳ２０４）、優先デバイステーブル１００に含まれるブート識別コード１０２が０であるか否かを判定する（ステップＳ２０５）。ブート識別コード１０２＝０であればステップＳ２０６に、０でなければステップＳ２０７に進む。ブート識別コード１０２＝０であれば、優先デバイステーブル１００にブートディスクが指定されていないということである。
【００６３】
ブートディスクが指定されていない状態であれば、ステップＳ２０６でブート識別コード２２ｃ＝０とする（ステップＳ２０６）。続いて、優先デバイステーブル１００に優先初期化としてディスクが指定されているか否かを判断する（ステップＳ２０８）。ブートディスク以外で、優先デバイステーブル１００に掲載されているＦＣデバイスは、優先初期化として指定されていることを意味する。指定されているディスクがなければ、ＦＣチャネルの通常の初期化処理を行って（ステップＳ２０９、詳細は後述の図９に示す）、ＯＳに初期化完了を通知し（ステップＳ２１０）、処理を終了する（ステップＳ２１６）。
【００６４】
ステップＳ２０８で、優先初期化として指定されているディスクがあれば、そのディスクが現在接続されているかを判断する（ステップＳ２１１）。接続されていなければ、ステップＳ２０９に戻る。接続されていれば、後述のステップＳ２１２に進む。
【００６５】
ステップＳ２０５で、ブートディスクが指定されていれば、ＦＣチャネルが保持するブート識別コード２２ｃに、優先デバイステーブル１００に指定されたブート識別コード１０２を設定し（ステップＳ２０７）、後述のステップＳ２１２に進む。
【００６６】
ブートディスクまたは優先して初期化するディスクがある場合、該ディスクに対して初期化処理を行って（ステップＳ２１２、詳細は後述の図９に示す）、ＯＳに初期化完了を通知する（ステップＳ２１３）。初期化完了を通知されたＯＳは、ブートプログラム４２によってブートディスクからＯＳの本体をロードし、ブートを続行する。ＦＣドライバ２２は、それと並行して残りのＦＣデバイスに対しても初期化処理を行って（ステップＳ２１４、詳細は後述の図１０に示す）、ＯＳにＦＣデバイスの構成変化を通知し（ステップＳ２１５）、処理を終了する（ステップＳ２１７）。
【００６７】
図９は、図７〜８のステップＳ２０９および２１２として示した、ＦＣデバイスの初期化処理の詳細を表すフローチャートである。処理を開始すると（ステップＳ３００）、ＦＣドライバ２２はＦＣチャネルが保持するブート識別コード２２ｃが０であるか否かを判別する（ステップＳ３０１）。ステップＳ２０９からこの処理が呼び出された場合はブート識別コード２２ｃ＝０であるので、ステップＳ３０４に進み、ステップＳ２０４で取得したＦＣデバイスリスト１１３に掲載されている全てのデバイスに初期化コマンドを発行してステップＳ３０６に進む。
【００６８】
ステップＳ３０１でブート識別コード２２ｃ≠０の場合はステップＳ３０２に進み、ステップＳ２０４で取得したＦＣデバイスリスト１１３にあるブートディスクのブート識別コード１１２によって判定する。ブートディスクのブート識別コード１１２が０であるか、またはブートディスクのブート識別コード１１２がＦＣチャネルのブート識別コード２２ｃと一致している場合は、ステップＳ３０３に進み、ブートディスクのみに対してブート識別子付きの初期化コマンド（Boot-PLOGI）を発行してステップＳ３０６に進む。
【００６９】
ステップＳ３０２で、ブートディスクのブート識別コード１１２が０でなく、かつブートディスクのブート識別コード１１２がＦＣチャネルのブート識別コード２２ｃと一致しない場合は、ステップＳ３０５に進み、ブートディスク以外に対して通常の初期化コマンドを発行してステップＳ３０６に進む。
【００７０】
ステップＳ３０３（または３０４、３０５）で初期化コマンドを発行したＦＣドライバ２２は、初期化コマンドを発行したＦＣデバイスからのリプライを待ち、全てのＦＣデバイスから正常なリプライがあったか否かを判定する（ステップＳ３０６）。全てのＦＣデバイスから正常なリプライがあった場合、全てのＦＣデバイスについて報告用ＦＣデバイスリストを作成して（ステップＳ３０７）終了する（ステップＳ３０９）。正常なリプライがなく、初期化に失敗したＦＣデバイスがある場合、正常なリプライがあったＦＣデバイスのみについて報告用ＦＣデバイスリストを作成して（ステップＳ３０８）終了する（ステップＳ３０９）。報告用ＦＣデバイスリストは、ステップＳ２１０または２１３で、ＯＳに初期化完了を通知する際に使用される。
【００７１】
図１０は、図８のステップＳ２１４として示した、残りのＦＣデバイスの初期化処理の詳細を表すフローチャートである。処理を開始すると（ステップＳ４００）、ＦＣドライバ２２は既に初期化が完了しているブートディスクを除くＦＣデバイスのリストを作成し（ステップＳ４０１）、該デバイスリストを格納したエリアの先頭アドレスをポインタとして設定する（ステップＳ４０２）。
【００７２】
続いてブートディスクに対するＩ／Ｏコマンドが発行されているか否かを判別し（ステップＳ４０３）、発行されていれば該Ｉ／Ｏコマンドを実行して（ステップＳ４０４）ステップＳ４０３に戻る。ブートディスクに対するＩ／Ｏコマンドが発行されていないことを確認したら、ポインタの示すＦＣデバイスに対して通常の初期化コマンドを発行し（ステップＳ４０５）、それに対する該ＦＣデバイスからのリプライを待つ（ステップＳ４０６）。
【００７３】
ステップＳ４０６で正常なリプライがあった場合、該ＦＣデバイスを報告用ＦＣデバイスリストに掲載し、ポインタを次のＦＣデバイスを示すように更新して（ステップＳ４０７）、ステップＳ４０９に進む。正常なリプライがなかった場合、ポインタのみを次のＦＣデバイスを示すように更新して（ステップＳ４０８）、ステップＳ４０９に進む。
【００７４】
ステップＳ４０９で、全てのＦＣデバイスの初期化を完了したか否かを判断し、完了していなければステップＳ４０３に戻り、完了していれば終了する（ステップＳ４１０）。報告用ＦＣデバイスリストは、ステップＳ２１５で、ＯＳにＦＣデバイスの構成変化を通知する際に使用される。
【００７５】
なお、図７〜１０の各フローチャートに係る各ステップの動作内容は、コンピュータ本体２で動作するプログラムであるＦＣドライバ２２として実行させるように構成することもできるし、それ以外のプログラムや形態で実行させるように構成してもよい。
【００７６】
以上の構成を取ることにより、ブートディスクのみを先行して初期化するので、ＦＣデバイスが多数接続されている構成であっても、初期化処理を高速に完了してシステムを高速に起動することができる。また、ＦＣスイッチのゾーニング機能を使用しなくても、ブート処理中にブートチャネル以外からブートディスクへのアクセスが防ぐことができる。もちろん、ＦＣデバイスの初期化が完了した後は、ブートチャネルからブートディスク以外のＦＣデバイスへのアクセスが可能である。その際、ブートディスクへのＩ／Ｏ処理が優先されるので、ブートディスクにおけるＯＳの立ち上げなどの処理が滞ることもない。
【００７７】
［第２の実施の形態］
次に、本発明の第２の実施の形態について説明する。システムの構成および動作は図１〜１０で図示した第１の実施の形態とほぼ同一であるので、図示せず、相違点を簡単に説明するのみにとどめる。
【００７８】
第１の実施の形態では、図１〜２に示す優先デバイステーブル１００はＳＰ４０に記憶され、ブートディスクを接続するＦＣドライバ２２のみが初期化処理の際に読み出す。ブートチャネルでないＦＣドライバ２３は優先デバイステーブル１００を読み出さず、図７のステップＳ２０３でブート識別コード２２ｃ＝０と設定している。
【００７９】
それに対して第２の実施の形態では、ＦＣカード６０および６１が、各々のＦＣチャネルに対応する優先デバイステーブル１００を持つ。各々の優先デバイステーブル１００は、ＳＰ４０に記憶されていてもよいし、また各々のＦＣカード６０および６１に記憶するようにしてもよい。ブートチャネルでないＦＣチャネルに対応する優先デバイステーブル１００には、ブート識別コード１０２＝０が最初から記憶されている。そのため、図７のステップ２０１および２０３は省略される。
【００８０】
上記以外は、第１の実施の形態と構成および処理の内容は同一であるので、説明を省略する。ただし、第２の実施の形態は、初期化の処理はＦＣチャネルごとに行うことができるので、多数のＦＣチャネルが接続されたコンピュータシステムであっても、ＦＣデバイスを全て初期化することによるＦＣチャネルの初期化処理の遅延を考慮する必要がなくなるという点で、第１の実施の形態と比べて優位である。
【００８１】
これまで本発明について図面に示した特定の実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができることは言うまでもないことである。
【産業上の利用可能性】
【００８２】
ファイバーチャネルによって周辺機器が接続可されるコンピュータシステム全般に適用できる。特に、多数のＦＣデバイスが接続されたコンピュータシステムに好適である。
【図面の簡単な説明】
【００８３】
【図１】本発明の第１の実施の形態に係るコンピュータシステムの構成を示すブロック図である。
【図２】図１で示したＳＰに記憶されている優先デバイステーブルの構成を示す概念図である。
【図３】図１で示したＦＣスイッチに、ブート識別コードが登録される処理を示す概念図である。
【図４】図３で示したＦＣスイッチがGID_FTコマンドに対する返信（Accept）でＦＣチャネルに送信する返信データのフォーマットを示す概念図である。
【図５】図３および４で示したＦＣスイッチが、ＦＣドライバからのコマンドに対応して行う処理を表すフローチャートである。
【図６】図１で示したコンピュータシステムにおいて、ブートディスクのみを初期化する処理、およびブートディスクへのＩ／Ｏコマンド実行中にその他のFCデバイスを初期化する処理の実行イメージを示すイメージ図である。
【図７】図１で示した本実施の形態のＦＣカードの初期化に係る、ＦＣドライバによる処理を表すフローチャートである。
【図８】図７の続きである。
【図９】図７〜８のステップＳ２０９および２１２として示した、ＦＣデバイスの初期化処理の詳細を表すフローチャートである。
【図１０】図８のステップＳ２１４として示した、残りのＦＣデバイスの初期化処理の詳細を表すフローチャートである。
【符号の説明】
【００８４】
１  コンピュータシステム
２  コンピュータ本体
１０  ＣＰＵ
２０  メインメモリ
２１  ＯＳ
２２  ＦＣドライバ（初期化手段、初期化プログラム）
２２ｂ  ＦＣドライバ領域（ブート識別記憶域）
２２ｃ、１０２、１１２  ブート識別コード
２３  ＦＣドライバ
３０  チップセット
４０  サービスプロセッサ（ＳＰ）
４１  ＢＩＯＳ
４２  ブートプログラム
５０  Ｉ／Ｏポート
６０  ＦＣカード（第１のＦＣチャネル）
６１  ＦＣカード（第２のＦＣチャネル）
７０  ＦＣスイッチ
７１  ローカルメモリエリア（ローカルメモリ）
８０  ディスク装置（第１のＦＣデバイス）
８１〜８２  ディスク装置（第２のＦＣデバイス）
１００  優先デバイステーブル
１０１、１１１  ＤＩＤ番号（ＦＣデバイスの識別情報）
１１０  ブートディスクテーブル
１１３  ＦＣデバイスリスト
【図１】
0005104320.tif 000002
【図２】
0005104320.tif 000003
【図３】
0005104320.tif 000004
【図４】
0005104320.tif 000005
【図５】
0005104320.tif 000006
【図６】
0005104320.tif 000007
【図７】
0005104320.tif 000008
【図８】
0005104320.tif 000009
【図９】
0005104320.tif 000010
【図１０】
0005104320.tif 000011