以下、本発明の一側面に係る情報処理装置及び制御方法について図を参照しつつ説明する。但し、本発明の技術的範囲はそれらの実施の形態に限定されず、特許請求の範囲に記載された発明とその均等物に及ぶ点に留意されたい。
図1は、実施形態において想定する場面の一例を示す概略図である。
情報処理装置1は、パーソナルコンピュータ又はサーバであり、第2ハードディスク16b及び第3ハードディスク16cを有している。第2ハードディスク16b及び第3ハードディスク16cは、それぞれOS(Operating System)である第1OS、第1OSをメモリにロードするためのブートローダ、及びユーザデータを記憶している。情報処理装置1は、SATA(Serial Advanced Technology Attachment)規格に従ったポート2及びポート3を有している。情報処理装置1において、ポート2及びポート3にはそれぞれ第2ハードディスク16b及び第3ハードディスク16cが接続されているが、ポート1にはハードディスクが接続されていない。
他の情報処理装置1´は、パーソナルコンピュータ又はサーバであり、第1ハードディスク16a´、第2ハードディスク16b´及び第3ハードディスク16c´を有している。第1ハードディスク16a´〜第3ハードディスク16c´のそれぞれは、第1OSと異なるOSである第2OS、第2OSをメモリにロードするためのブートローダ、及びユーザデータを記憶している。他の情報処理装置1´は、SATA規格に従ったポート1〜3を有している。他の情報処理装置1´において、ポート1〜3にはそれぞれ第1ハードディスク16a´〜第3ハードディスク16c´が接続されている。
情報処理装置1は、電源が投入されると起動処理を開始する。情報処理装置1は、起動処理において、接続されているポートの番号が最も小さいハードディスクを選択し、選択したハードディスクに記憶されているブートローダに従ってOSを起動させる。図1に示す例では、ポート1にハードディスクが接続されていないため、情報処理装置1は、ポート2に接続された第2ハードディスク16bに記憶されているブートローダに従って第1OSを起動させる。
情報処理装置1において他の情報処理装置1´の第1ハードディスク16a´に記憶されているユーザデータを使用するために、ポート1に第1ハードディスク16a´が接続される場合がある。その場合、情報処理装置1は、接続されているポートの番号が最も小さいハードディスクを選択するため、ポート1に接続された第1ハードディスク16a´を選択する。次に、情報処理装置1は、第1ハードディスク16a´に記憶されているブートローダに従って第2OSを起動させる。しかしながら、第2OSには他の情報処理装置1´のハードウェア及びソフトウェア構成に応じた設定がなされていることから、第2OSにおける設定が第1OSにおける設定と異なる場合、情報処理装置1は、不適切に動作する可能性がある。このような状況は、特に、情報処理装置1又は他の情報処理装置1´の少なくとも一方が複数のハードディスクを用いてRAID(Redundant Arrays of Inexpensive Disks)を構成する場合に発生し得る。
情報処理装置1は、複数のハードディスクのそれぞれに装置に関する構成情報を記憶しておく。情報処理装置1は、特定のハードディスクに記憶されたブートローダに従って起動する際に、複数のハードディスクのそれぞれに記憶された構成情報の中から自装置に関する構成情報を選択する。情報処理装置1は、選択した構成情報にそのブートローダが記憶されたハードディスクの識別情報が含まれない場合、起動処理を停止する。これにより、情報処理装置1は、上記した場面において、不適切に動作することを防止することを図る。
図2は、第1実施形態に係る情報処理装置のハードウェア構成の例を示す図である。
情報処理装置1は、記憶装置として複数のハードディスクを有するパーソナルコンピュータ又はサーバ等であり、特定のプログラムからの要求に従ってデータを格納するとともに、格納したデータを読み出す。情報処理装置1は、通信装置11と、入力装置12と、表示装置13と、記憶装置14と、CPU17とを有する。
通信装置11は、主に2.4GHz帯、5GHz帯等を感受帯域とするアンテナを含む無線LAN(Local Area Network)の通信インタフェース回路を有する装置である。通信装置11は、アクセスポイント等との間でIEEE(The Institute of Electrical and Electronics Engineers)802.11規格の無線通信方式に基づいて無線通信を行う。そして、通信装置11は、アクセスポイントを介して他のコンピュータ(不図示)とデータの送受信を行う。通信装置11は、アクセスポイントを介して他のコンピュータから受信したデータをCPU17に供給し、CPU17から供給されたデータをアクセスポイントを介して他のコンピュータに送信する。
通信装置11は、通信インタフェース回路が使用するMAC(Media Access Control)アドレスを記憶する通信メモリ11aを有する。通信メモリ11aは、ROM(Read Only Memory)等の不揮発性のメモリであり、MACアドレスを記憶できるものであればどのようなものでもよい。MACアドレスは、有線LAN又は無線LANと接続する全ての通信インタフェース回路に一意に割り当てられているアドレスであり、本実施形態においては、情報処理装置1を他の情報処理装置と識別するための識別子として使用される。
通信装置11は、MACアドレスを有し、他のコンピュータと通信できるものであればどのようなものであってもよい。例えば、通信装置11は、有線LAN(Local Area Network)通信方式に従って他のコンピュータと通信するものでもよい。
入力装置12は、タッチパネル式の入力装置、キーボード、マウス等の入力デバイス及び入力デバイスから信号を取得するインタフェース回路を有する装置である。入力装置12は、ユーザの入力を受け付け、ユーザの入力に応じた信号をCPU17に対して出力する。
表示装置13は、液晶、有機EL(Electro-Luminescence)等から構成されるディスプレイ及びディスプレイに画像データ又は各種の情報を出力するインタフェース回路を有する装置である。表示装置13は、CPU17と接続されて、CPU17から出力された画像データをディスプレイに表示する。なお、タッチパネルディスプレイを用いて、入力装置12と表示装置13を一体に構成してもよい。
記憶装置14は、ROM15aと、RAM15bと、第1ハードディスク16aと、第2ハードディスク16bと、第3ハードディスク16cとを有する。以後、ROM15a及びRAM15bをメモリ15と総称する場合がある。また、第1ハードディスク16a、第2ハードディスク16b及び第3ハードディスク16cを、ハードディスク16と総称する場合がある。
ROM15aには、BIOSが記憶される。第1ハードディスク16a、第2ハードディスク16b及び第3ハードディスク16cのそれぞれには、ブートローダ、カーネル等が記憶される。
ハードディスク16は、情報処理装置1のSATA等のコンピュータにハードディスクを接続するインタフェース規格に従ったポートと着脱可能に接続される。ハードディスク16とポートとの接続状態は、ポートを一意に識別するポート番号毎にRAM15bに記憶される。なお、ハードディスク16は、2つでもよく、4つ以上でもよい。また、情報処理装置1は、第1ハードディスク16a、第2ハードディスク16b及び第3ハードディスク16cに対してRAIDによるミラーリングを構成してもよい。
記憶装置14は、さらに汎用の記憶装置、フレキシブルディスク、光ディスク等の可搬用の記憶装置等を有する。また、記憶装置14には、情報処理装置1の各種処理に用いられる各種データ、コンピュータプログラム、データベース、テーブル等を記憶する。コンピュータプログラムは、コンピュータ読み取り可能な可搬型記録媒体から、公知のセットアッププログラム等を用いて情報処理装置1にインストールされてもよい。可搬型記録媒体は、例えばCD−ROM(Compact Disk Read Only Memory)、DVD−ROM(Digital Versatile Disk Read Only Memory)等である。
図3は、ハードディスクにおけるデータ構造の例を示す図である。
ハードディスク16の内、ブートローダを記憶するハードディスクは、パーティションテーブル、ローダ位置、ブートローダ、構成情報、初期化済フラグ、カーネル、ファイルシステム、ユーザデータ等を記憶する。ハードディスク16は、さらにハードディスクを一意に識別可能な識別情報をハードディスク16のレジスタ内に記憶している。識別情報は、例えばUUID(Universally Unique IDentifier)である。
パーティションテーブルは、ハードディスク16内の各パーティションの開始セクタ及びパーティションサイズ等、パーティションの設定に関する情報を記憶するテーブルである。各パーティションの終了セクタは、各パーティションの開始セクタ及びパーティションサイズから算出可能である。
ローダ位置は、ブートローダがハードディスク16に記憶されている位置をセクタ単位で示す。ローダ位置の値が1の場合、ブートローダがハードディスク16に記憶されていないことを示す。ブートローダは、カーネル等を記憶装置14のメモリ上に読み込むためのプログラムである。ブートローダは、例えばGRUB(GRand Unified Bootloader)である。
構成情報は、情報処理装置1が有するハードウェアの構成を示す情報である。構成情報の詳細については後述する。
初期化済フラグは、ハードディスク16が、所定の初期化処理が実行されたハードディスクであるか否かを示す。初期化済フラグが設定されていることは、そのハードディスクは所定の初期化処理が実行されたハードディスクであることを示す。
カーネルは、情報処理装置1のOSの中心的なプログラムであり、動作中のプログラムの実行状態の管理、ハードウェア資源の管理等、OSの基本的な動作を実行するプログラムである。OSは、例えばLinux(登録商標)である。カーネルは、ファイルとして記憶され、所定のディレクトリに配置される。カーネルのファイル名には、カーネルを記憶しているハードディスクの識別情報が情報処理装置1の管理者により設定されている。
ファイルシステムは、情報処理装置1が記憶するファイルを管理するために使用される。ユーザデータは、ファイルシステム上にユーザが作成した任意のデータである。
なお、ハードディスク16の記憶領域は、セクタ単位で分割された第1〜第5パーティションを含む。第1パーティションには、ブートローダが記憶される。第2パーティションには、構成情報及び初期化済フラグが記憶される。第3パーティションには、カーネルが記憶される。第4パーティションには、ファイルシステムが記憶される。第5パーティションには、ユーザデータが記憶される。ハードディスク16は、さらに他のパーティションを含んでもよく、ユーザデータを記憶しない場合は第5パーティションを含まなくてもよい。
第4パーティション又は第5パーティションは、さらに、これらのパーティションを設定する際に使用される、ハードディスクのパーティション数と各パーティションの開始セクタ及び終了セクタの組とを含むパーティション設定情報を記憶する。また、第4パーティション又は第5パーティションは、さらに、構成情報の初期値を記憶する。なお、パーティションテーブル及びローダ位置は、パーティションが設定された領域以外の記憶領域に記憶される。
CPU17は、プロセッサの一例であり、予め記憶装置14に記憶されているプログラムに基づいて動作する。なお、CPU17に代えて、DSP(digital signal processor)、LSI(large scale integration)等が用いられてもよい。また、CPU17に代えて、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programming Gate Array)等が用いられてもよい。
CPU17は、通信装置11、入力装置12、表示装置13及び記憶装置14と接続され、これらの各部を制御する。CPU17は、通信装置11を介した他の情報処理装置等とのデータ送受信制御等を行う。
図4は、構成情報のデータ構造の一例を示す図である。
構成情報には、構成情報の版数と、構成情報を設定した情報処理装置のMACアドレスと、構成情報を設定した情報処理装置のハードディスク情報とが、互いに関連付けられて記憶されている。構成情報は、情報処理装置の管理者又は情報処理装置上で動作するプログラムによって設定され、情報処理装置が有するハードディスク16のそれぞれに記憶される。
版数には初期値として1が設定され、版数は構成情報が更新設定される度にインクリメントされる。即ち、MACアドレスが同一の構成情報の中で最も新しい構成情報の版数は、最も大きい値となる。
ハードディスク情報は、構成情報が設定されたときに当該構成情報を設定した情報処理装置が有していた全てのハードディスクに関する情報である。ハードディスク情報には、情報処理装置が有していた各ハードディスク毎に、各ハードディスクの識別情報と、状態情報とが互いに関連付けられて記憶されている。状態情報は、ハードディスクの動作状態が正常か異常かを示す。ハードディスクの動作状態は、ハードディスクが有するS.M.A.R.T.(Self-Monitoring, Analysis and Reporting Technology)情報等に基づいて、ハードディスクを有する情報処理装置により決定される。
図5は、記憶装置及びCPUの概略構成を示す図である。
記憶装置14には、BIOS151、ブートローダ161、カーネル162、構成情報選択プログラム163、ブートハードディスク判定プログラム164、起動処理終了プログラム165、起動処理停止プログラム166、ブートローダ削除プログラム167、ハードディスク更新プログラム168、構成情報変更プログラム169等の各プログラムが記憶される。これらの各プログラムは、プロセッサ上で動作するソフトウェアにより実装される機能モジュールである。
BIOS151は、ROM15aに記憶される。ブートローダ161及びカーネル162は、第1ハードディスク16a、第2ハードディスク16b及び第3ハードディスク16cのそれぞれに記憶される。構成情報選択プログラム163、ブートハードディスク判定プログラム164、起動処理終了プログラム165、起動処理停止プログラム166、ブートローダ削除プログラム167、ハードディスク更新プログラム168及び構成情報変更プログラム169は、ファイルシステム160に含まれ、第1ハードディスク16a、第2ハードディスク16b及び第3ハードディスク16cのそれぞれに記憶される。
CPU17は、記憶装置14に記憶された各プログラムを読み込み、読み込んだ各プログラムに従って動作することにより、BIOS部171、ブートローダ部181、カーネル部182、構成情報選択部183、ブートハードディスク判定部184、起動処理終了部185、起動処理停止部186、ブートローダ削除部187、ハードディスク更新部188、構成情報変更部189等として機能する。
図6は、情報処理装置の動作の例を示すフローチャートである。以下、図6に示したフローチャートを参照しつつ、情報処理装置の動作の例を説明する。なお、以下に説明する動作のフローは、主にCPU17により情報処理装置1の各要素と協働して実行される。
ユーザが情報処理装置1の電源を投入すると、CPU17は、ROM15aからBIOS151を読み出してRAM15bに複写し、複写したBIOS151に従ってBIOS部171として動作し、起動処理を開始する(ステップS11)。起動処理とは、BIOSの起動からユーザが情報処理装置1を操作可能な状態になるまでに実行される一連の処理であり、CPU17によって実行される。ユーザが情報処理装置1を操作可能な状態とは、例えばログインプロンプトが表示装置13に表示され、ユーザが入力装置12を操作することにより情報処理装置1にログイン可能な状態である。
次に、BIOS部171は、第1ハードディスク16a、第2ハードディスク16b及び第3ハードディスク16cの中から、ブートローダが記憶されているハードディスクを所定の優先順位に従って一つ選択する(ステップS12)。
BIOS部171は、ローダ位置の値が1か否かに従って、第1ハードディスク16a〜第3ハードディスク16cの内ブートローダが記憶されているハードディスクを抽出する。BIOS部171は、ブートローダが記憶されているハードディスクが複数個存在する場合、抽出したハードディスクからRAM15bに記憶された接続状態に基づいてポート番号が最も小さいSATAポートと接続されたハードディスクを選択する。
次に、BIOS部171は、ハードディスクが選択されたか否かを判定する(ステップS13)。ハードディスクが選択されなかった場合(ステップS13−N)、BIOS部171は、異常処理を実行する(ステップS14)。BIOS部171は、異常処理において、ブートローダが記憶されているハードディスクが存在しないことを示す表示画面を表示装置13に表示させ、起動処理を停止する(ステップS15)。
ハードディスクが選択された場合(ステップS13−Y)、BIOS部171は、選択したハードディスクからブートローダ161を読み出してRAM15bに複写する。CPU17は、RAM15bに複写したブートローダ161に従ってブートローダ部181として動作する。以後、RAM15bに複写したブートローダ161を記憶していたハードディスクをブートハードディスクと称する場合がある。
ブートローダ部181は、BIOS部171が選択したハードディスクからカーネル162を読み出してRAM15bに複写し、CPU17は、RAM15bに複写したカーネル162に従ってカーネル部182として動作する。
カーネル部182は、BIOS部171が選択したハードディスク上のファイルシステム160を読み出してRAM15b上に複写し(ステップS16)、CPU17は、RAM15bに複写した各プログラムに従って各プログラムに対応する各部として動作する。
次に、構成情報選択部183は、構成情報の選択処理を実行する(ステップS17)。構成情報の選択処理については後述する。
次に、構成情報選択部183は、構成情報の選択処理において、構成情報が選択されたか否かを判定する(ステップS18)。
構成情報の選択処理において構成情報が選択されなかったと判定された場合(ステップS18−N)、構成情報選択部183は、構成情報の初期値に従って新しい構成情報を作成し、ハードディスク16のそれぞれに記憶する(ステップS19)。
次に、起動処理終了部185は、ログインプロンプトを表示装置13に表示させて、起動処理を終了する(ステップS22)。後述するブートハードディスクの判定処理を省略して起動処理を進行させ、終了させるのは、構成情報選択部183が新しい構成情報を作成した場合、ブートハードディスクの判定処理に必要な情報が新しい構成情報に含まれていないためである。
構成情報の選択処理において構成情報が選択されたと判定された場合(ステップS18−Y)、ブートハードディスク判定部184は、ブートハードディスクの判定処理を実行する(ステップS20)。ブートハードディスク判定部184は、ブートハードディスクの判定処理において、構成情報の選択処理で選択された構成情報に基づいてブートハードディスクが適切であるか否かを判定する。ブートハードディスクの判定処理については後述する。
次に、ブートハードディスク判定部184は、ブートハードディスクの判定処理において、ブートハードディスクが適切であると判定されたか否かを判定する(ステップS21)。
ブートハードディスクの判定処理においてブートハードディスクが適切であると判定された場合(ステップS21−Y)、起動処理終了部185は、ログインプロンプトを表示装置13に表示させて、起動処理を終了する(ステップS22)。
ブートハードディスクの判定処理においてブートハードディスクが適切でないと判定された場合(ステップS21−N)、起動処理停止部186は、装置の起動処理を停止する(ステップS23)。
次に、ブートローダ削除部187は、ブートハードディスクからブートローダを削除する(ステップS24)。例えば、ブートローダ削除部187は、ブートハードディスクのローダ位置の値をブートローダがブートハードディスクに記憶されていない状態を示す1に設定する。さらに、ブートローダ削除部187は、ブートハードディスクのパーティションテーブルから、ブートローダ161が記憶されているパーティションに関する情報を削除する。
次に、ブートローダ削除部187は、ソフトウェアリセットを実行し、情報処理装置1を再起動する(ステップS25)。情報処理装置1が再起動されると、CPU17は、ステップS11から再度起動処理を実行する。
ステップS12において、BIOS部171は、ブートローダが記憶されていないハードディスクを起動処理で選択しないため、以後、他の情報処理装置で使用されていたハードディスクが起動処理で使用されることを防止できる。また、情報処理装置1は、構成情報選択プログラム163〜構成情報変更プログラム169の各プログラムを使用することにより、BIOS151を修正することなく図6に示す処理を実行可能である。
図7は、構成情報の選択処理の動作の例を示すフローチャートである。構成情報の選択処理は、図6のステップS17で実行される。
最初に、構成情報選択部183は、通信メモリ11aから情報処理装置1のMACアドレスを取得する(ステップS31)。次に、構成情報選択部183は、第1ハードディスク16a〜第3ハードディスク16cに記憶されている全ての構成情報の中から、構成情報に含まれるMACアドレスが、取得したMACアドレスと一致する構成情報を抽出する(ステップS32)。次に、構成情報選択部183は、構成情報が抽出されたか否かを判定する(ステップS33)。
構成情報が抽出されなかった場合(ステップS33−N)、構成情報選択部183は、構成情報を選択せずに一連の処理を終了する。構成情報が抽出された場合(ステップS33−Y)、構成情報選択部183は、抽出された構成情報の中から版数が最も新しい構成情報を選択して(ステップS34)、一連の処理を終了する。
図8は、ブートハードディスクの判定処理の動作の例を示すフローチャートである。ブートハードディスクの判定処理は、図6のステップS20で実行される。
最初に、ブートハードディスク判定部184は、ブートハードディスクからカーネル162のファイル名を読み出し、読み出したファイル名をブートハードディスクの識別情報として取得する(ステップS41)。
次に、ブートハードディスク判定部184は、取得したブートハードディスクの識別情報が適切か否かを判定する(ステップS42)。例えば、ブートハードディスク判定部184は、情報処理装置1が有する全ハードディスクから各ハードディスクの識別情報を取得し、カーネル162のファイル名が、取得したハードディスクの識別情報のいずれかと一致するか否かを判定する。ブートハードディスク判定部184は、カーネル162のファイル名が、取得したハードディスクの識別情報のいずれかと一致する場合、ブートハードディスクの識別情報は適切であると判定する。ブートハードディスク判定部184は、カーネル162のファイル名がハードディスクの識別情報のいずれとも一致しない場合、ブートハードディスクの識別情報は適切でないと判定する。
識別情報が適切でない場合(ステップS42−N)、ブートハードディスク判定部184は、ブートハードディスクが適切でないと判定し(ステップS46)、一連の処理を終了する。
識別情報が適切である場合(ステップS42−Y)、ブートハードディスク判定部184は、構成情報選択部183により選択された構成情報が、取得した識別情報を含むか否かを判定する(ステップS43)。
選択された構成情報が取得した識別情報を含まない場合(ステップS43−N)、ブートハードディスク判定部184は、ブートハードディスクが適切でないと判定し(ステップS46)、一連の処理を終了する。
選択された構成情報が取得した識別情報を含む場合(ステップS43−Y)、ブートハードディスク判定部184は、その構成情報からその識別情報に対応するハードディスクの状態情報を読み出す。次に、ブートハードディスク判定部184は、読み出した状態情報が正常か異常か、即ちブートハードディスクの前回の動作状態が正常か異常かを判定する(ステップS44)。
状態情報が異常である場合(ステップS44−N)、ブートハードディスク判定部184は、ブートハードディスクが適切でないと判定し(ステップS46)、一連の処理を終了する。
状態情報が正常である場合(ステップS44−Y)、ブートハードディスク判定部184は、ブートハードディスクが適切であると判定し(ステップS45)、一連の処理を終了する。
図9は、イベント処理の動作の例を示すフローチャートである。以下、図9に示したフローチャートを参照しつつ、情報処理装置の動作の例を説明する。なお、以下に説明する動作のフローは、起動処理の終了後から定期的に、主にCPU17により情報処理装置1の各要素と協働して実行される。
最初に、ハードディスク更新部188は、情報処理装置1に新たなハードディスクが検出されたか否かを判定する(ステップS51)。ハードディスク更新部188は、RAM15bに記憶されたSATAポートとハードディスクとの接続状態を確認し、前回接続されていなかったハードディスクの接続を確認した場合、新たなハードディスクが検出されたと判定する。
新たなハードディスクが検出された場合(ステップS51−Y)、ハードディスク更新部188は、ハードディスクの更新処理を実行する(ステップS52)。
ハードディスクの更新処理において、ハードディスク更新部188は、新たに検出されたハードディスクからそのハードディスクの識別情報を取得する。次に、ハードディスク更新部188は、以下の(1)〜(3)の3つの条件を全て満たすか否かを判定する。
(1)構成情報選択部183により選択された構成情報が、取得された識別情報を含むこと。
(2)選択された構成情報において、取得された識別情報に対応するハードディスクの状態情報が正常であること。
(3)新たに検出されたハードディスクに初期化済フラグが設定されていること。
(1)〜(3)の条件を全て満たす場合、ハードディスク更新部188は、一連の処理を終了する。
(1)〜(3)の条件のうち少なくとも1つの条件を満たさない場合、ハードディスク更新部188は、ハードディスクの初期化処理を実行し、一連の処理を終了する。
初期化処理において、ハードディスク更新部188は、初期化済フラグの設定をクリアする。次に、ハードディスク更新部188は、新たに検出されたハードディスクのパーティション及びパーティションテーブルを、選択された構成情報を記憶するハードディスクに記憶されているパーティション設定情報に従って設定する。次に、ハードディスク更新部188は、パーティションが設定されたハードディスクに、選択された構成情報を記憶するハードディスクに記憶されているローダ位置、ブートローダ、構成情報、カーネル及びファイルシステムを複写する。次に、ハードディスク更新部188は、ブートローダ等が複写されたハードディスクに初期化済フラグを設定して、初期化処理を終了する。
情報処理装置1は、新たに検出されたハードディスクに、選択された構成情報を記憶するハードディスクに記憶されているブートローダ等を複写する。従って、情報処理装置1は、次回以降の起動処理において新たに検出されたハードディスクが選択された際に、不適切な動作をすることを防止することが可能となる。
新たなハードディスクが検出されなかった場合(ステップS51−N)、構成情報変更部189は、情報処理装置1が有する各ハードディスク16からS.M.A.R.T.情報を取得する。構成情報変更部189は、取得したS.M.A.R.T.情報に基づいて、ハードディスクに異常が発生したか否かを判定する(ステップS53)。例えば、構成情報変更部189は、S.M.A.R.T.情報に含まれる、ハードディスクからデータを読み込むときのエラー率が所定値より高い場合、ハードディスクに異常が発生したと判定する。
ハードディスクに異常が発生していない場合(ステップS53−N)、構成情報変更部189は、一連の処理を終了する。
ハードディスクに異常が発生した場合(ステップS53−Y)、構成情報変更部189は、異常が検出されたハードディスクの識別情報を取得する。次に、構成情報変更部189は、各ハードディスク16に記憶されている構成情報の、異常を検出したハードディスクの識別情報に対応する状態情報を異常に設定して(ステップS54)、一連の処理を終了する。
以上詳述したように、情報処理装置1は、特定のハードディスクに記憶されたブートローダに従って起動する際に、複数のハードディスクのそれぞれに記憶された構成情報の中から自装置に関する構成情報を選択する。情報処理装置1は、選択した構成情報にそのブートローダが記憶されたハードディスクの識別情報が含まれない場合、起動処理を停止する。これにより、情報処理装置1は、不適切に動作することを防止可能である。
情報処理装置1を含む各情報処理装置の使用する各ハードディスクには、自装置のMACアドレス及びハードディスクの識別情報を含む構成情報が記憶されている。また、情報処理装置1は、起動処理において、各ハードディスクに記憶された構成情報から、自装置のMACアドレスと一致するMACアドレスを含む構成情報を抽出及び選択することにより、自装置用の構成情報を適切に選択する。従って、適切に選択された構成情報が、ブートハードディスクの識別情報を含まない場合、ブートハードディスクは、電源が切られた情報処理装置1に新たに接続され、且つ、接続前には他の情報処理装置で使用されていた可能性が高い。
他の情報処理装置で使用されていたブートハードディスクが記憶するブートローダは、他の情報処理装置で使用されていたカーネルを起動しようとする。しかし、そのカーネルは、以前から情報処理装置1で使用されていたハードウェア又はソフトウェアを適切に制御できない可能性がある。情報処理装置1は、他の情報処理装置で使用されていたブートローダに従って起動しようとする場合、起動処理を停止するため、不適切な動作をすることを防止することが可能となる。
また、情報処理装置1は、自装置に関する構成情報の中で、版数が最も新しい構成情報を選択する。構成情報の中で版数が最も新しい構成情報は、現在の状態に最も近いハードディスクの情報を示す。従って、情報処理装置1は、不適切な動作をする可能性をより低減させることが可能となる。
また、情報処理装置1は、構成情報に含まれる選択したハードディスクの状態情報が異常を示している場合、起動処理を停止する。従って、情報処理装置1は、不適切な動作をする可能性をより低減させることが可能となる。
なお、情報処理装置1のファイルシステムは、カーネル部182が最初に展開する初期ファイルシステムと、その後に展開されるルートファイルシステムとに分割されていてもよい。この場合、カーネル部182が展開した初期ファイルシステムに含まれるプログラムは、RAIDの構成、ルートファイルシステムのRAM15b上への展開等の処理を実行してもよい。
また、構成情報は、RAIDを構成するハードディスクの識別情報を含んでもよく、カーネル部182が展開した初期ファイルシステムに含まれるプログラムは、構成情報に含まれる識別情報により識別されるハードディスクを用いてRAIDを構成してもよい。