(57)【要約】      （修正有）【課題】設置サイズを大型化せずに、より多くの記憶容量を提供可能な記憶制御装置を提供する。【解決手段】高密度型の記憶ユニット３内には、複数のサブ記憶ユニット４が設けられている。各サブ記憶ユニット４は、複数のハードディスクドライブ５と、コントローラ６と、メモリ７と、電源装置８と、表示部９とを備えている。各サブ記憶ユニット４は、それぞれ独立して動作する。制御装置２は、各サブ記憶ユニット４から取得される管理用データＤ１〜Ｄ３に基づいて、管理テーブル２Ｅを作成する。テーブル内容にエラーがある場合は、ユーザに通知される。記憶ユニット特定部２Ｆからの指示に応じて、表示部９は点灯し、サブ記憶ユニットの場所をユーザに通知する。【選択図】図１
2010117850.tif 000002
【特許請求の範囲】
【請求項１】
制御装置と、該制御装置によって制御される複数の記憶ユニットとを備える記憶制御装置であって、
前記制御装置は、前記各記憶ユニットと通信する通信部を複数備えており、
前記各記憶ユニットのうち少なくとも一つ以上の記憶ユニットは、筐体と、該筐体内に設けられ、それぞれ独立して動作する複数のサブ記憶ユニットとを備えている、第１型の記憶ユニットとして構成されており、
前記各サブ記憶ユニットは、複数の記憶装置と、該各記憶装置と前記通信部との通信を担当するユニット制御部と、前記各記憶装置及び前記ユニット制御部に電力を供給する電源装置と、をそれぞれ備えている、記憶制御装置。
【請求項２】
前記各サブ記憶ユニットには、
前記筐体単位で設定され、前記筐体を管理するための筐体管理用データと、
前記各サブ記憶ユニット単位で設定され、前記制御装置が前記ユニット制御部と通信を行うためのアドレスデータと、
前記筐体内の前記各サブ記憶ユニットを区別するための区別用データとが、
それぞれ記憶されている、請求項１に記載の記憶制御装置。
【請求項３】
前記制御装置は、同一の前記筐体管理用データを応答する複数の前記サブ記憶ユニットを、同一筐体に属するサブ記憶ユニットであると判定し、それらの各サブ記憶ユニットをグループ化して管理する、請求項２に記載の記憶制御装置。
【請求項４】
前記区別用データは、前記筐体管理用データに対応付けられて記憶されている、請求項２または請求項３に記載の記憶制御装置。
【請求項５】
前記第１型の記憶ユニットに設定される前記筐体管理用データは、前記第１型の記憶ユニットに設定されるべきユニークな筐体管理用データとして予め用意されているデータの中から選択される、請求項２〜請求項４のいずれかに記載の記憶制御装置。
【請求項６】
前記第１型の記憶ユニットに設定される前記アドレスデータは、前記第１型の記憶ユニットに設定されるべきユニークなアドレスデータとして予め用意されているデータの中から選択される、請求項２〜請求項５のいずれかに記載の記憶制御装置。
【請求項７】
前記各通信部は、前記各記憶ユニットとデイジーチェーン接続されており、
前記制御装置は、前記デイジーチェーン接続上の位置が前記制御装置に近い記憶ユニットから順番に若い管理番号を設定して前記記憶ユニットを管理する、請求項１〜請求項６のいずれかに記載の記憶制御装置。
【請求項８】
前記制御装置は、前記サブ記憶ユニットから取得される、前記筐体管理用データと前記アドレスデータ及び前記区別用データを含む一式のデータに基づいて、前記サブ記憶ユニットを一意に特定し、さらに、前記一式のデータにより特定される前記サブ記憶ユニットに管理番号を対応付けることにより、前記サブ記憶ユニットを管理する、請求項２〜請求項６のいずれかに記載の記憶制御装置。
【請求項９】
前記制御装置は、今回の起動時に、デイジーチェーン接続されている前記各サブ記憶ユニットから取得した前記一式のデータが、前回の起動時に取得された前記一式のデータと一致するか否かを判定し、今回の起動時に取得された前記一式のデータと前回の起動時に取得された前記一式のデータとが一致しない場合に警告を出力する、請求項８に記載の記憶制御装置。
【請求項１０】
前記制御装置は、前記記憶ユニットが新たに接続された場合に、その新たな記憶ユニットのデイジーチェーン接続上の位置が最後尾であるか否かを判定し、その新たな記憶ユニットの前記デイジーチェーン接続上の位置が最後尾ではない場合に警告を出力し、さらに、その新たな記憶ユニットが、前記デイジーチェーン接続上の最後尾に位置する前記サブ記憶ユニットである場合に、そのサブ記憶ユニットから取得される前記一式のデータに、現在の管理番号から連続する新たな管理番号を加えて、管理及び記憶する、請求項８に記載の記憶制御装置。
【請求項１１】
前記制御装置は、前記記憶ユニットが新たに接続された場合に、その新たな記憶ユニットから取得される前記アドレスデータが他の記憶ユニットの前記アドレスデータと重複していないかを第１判定し、さらに、前記新たな記憶ユニットから取得される前記筐体管理用データ及び前記区別用データが、他の記憶ユニットの前記筐体管理用データ及び前記区別用データと重複していないかを第２判定し、さらに、その新たな記憶ユニットから取得した前記区別用データが、前記筐体内における前記サブ記憶ユニットの配置上、現在の記憶ユニットのうち、デイジーチェーン接続上の最後尾に接続されている記憶ユニットに対して連続性を有するか否かを第３判定し、前記第１判定または前記第２判定または前記第３判定のいずれかで肯定的な判定結果が得られない場合、警告を出力する、請求項２〜請求項６のいずれかに記載の記憶制御装置。
【請求項１２】
前記筐体管理用データと前記アドレスデータと前記区別用データとは、それぞれ異なる複数の記憶領域に重複して記憶されており、
前記ユニット制御部は、前記複数の記憶領域からそれぞれ読み出される複数の前記筐体管理用データが一致しない場合、多数決に従って前記筐体管理用データを決定する、請求項２〜請求項１０のいずれかに記載の記憶制御装置。
【請求項１３】
前記第１型の記憶ユニットの前記筐体には、前記各サブ記憶ユニットに対応する複数の表示部が設けられており、
前記ユニット制御部は、前記各表示部のうち前記制御装置により指定されたサブ記憶ユニットに対応する表示部を作動させる、請求項１〜請求項１２のいずれかに記載の記憶制御装置。
【請求項１４】
前記複数の記憶ユニットには、前記第１型の記憶ユニットとは異なる第２型の記憶ユニットが少なくとも一つ以上含まれており、
前記第２型の記憶ユニットは、筐体と、該筐体内に設けられる複数の記憶装置と、前記筐体内に設けられ、前記各記憶装置と前記通信部との通信を担当するユニット制御部と、前記各記憶装置及び前記ユニット制御部に電力を供給する電源装置とを、備えている、請求項１〜請求項１３のいずれかに記載の記憶制御装置。
【請求項１５】
制御装置と、該制御装置によって制御される複数の記憶ユニットとを備える記憶制御装置であって、
前記制御装置は、前記各記憶ユニットと通信するための複数の通信部と、前記各記憶ユニットを管理するための管理テーブルを記憶する記憶部とを備え、
前記制御装置には、前記各通信部に前記各記憶ユニットが均等に分散するようにしてデイジーチェーン接続されており、かつ、前記制御装置は、接続順序に応じて、前記各記憶ユニットに連続する管理番号を設定するようになっており、
前記各記憶ユニットは、筐体と、該筐体内に設けられ、それぞれ独立して動作する複数のサブ記憶ユニットとを備えており、
前記各サブ記憶ユニットは、複数の記憶装置と、該各記憶装置と前記通信部との通信を担当するユニット制御部と、前記各記憶装置及び前記ユニット制御部に電力を供給する電源装置と、を備えており、
前記ユニット制御部は、それぞれ異なる複数のメモリを備えており、
前記各メモリには、筐体単位で設定され、前記筐体を管理するための筐体管理用データと、前記各サブ記憶ユニット単位で設定され、前記制御装置が前記ユニット制御部と通信を行うためのアドレスデータと、前記筐体内の前記各サブ記憶ユニットを区別するための区別用データとが、所定データとしてそれぞれ記憶されており、
前記各ユニット制御部は、前記各メモリからそれぞれ読み出される、前記所定データが一致しない場合、多数決に従って決定し、
前記制御装置は、記憶制御装置を起動する場合、及び、新たに前記記憶ユニットを追加接続する場合、前記制御装置に接続上の位置が近い記憶ユニットの前記ユニット制御部から順番に、前記所定データをそれぞれ取得して管理テーブルを作成し、作成された前記管理テーブルを所定の規則に基づいてチェックし、前記管理テーブルが前記所定の規則に反している場合にはエラー処理を行うようになっており、
さらに、前記制御装置は、前記記憶制御装置を起動する場合には、前記管理テーブルの作成が完了した後で、前記管理テーブルを前記所定の規則に基づいてチェックし、または、新たな前記記憶ユニットを追加接続する場合には、前記所定データを前記各ユニット制御部から取得して前記管理テーブルに記憶させるたびに、前記管理テーブルを前記所定の規則に基づいてチェックするようになっており、
前記所定の規則には、少なくとも、（１）各記憶ユニットの各管理番号が最小値から連続していることと、（２）同一の前記記憶ユニット内の前記各サブ記憶ユニットは、連続する管理番号を有することと、（３）同一の前記記憶ユニット内の前記各サブ記憶ユニットは、所定の順番で接続されることと、が含まれている、記憶制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶制御装置に関する。
【背景技術】
【０００２】
記憶制御装置は、ホストコンピュータ（以下、「ホスト」）に、比較的大容量の記憶領域を提供する装置である。記憶制御装置は、例えば、複数のハードディスクドライブを用いて、RAID（Redundant Array of Independent Disks）に基づく記憶領域を構築する。各ハードディスクドライブが有する物理的な記憶領域上には、論理的な記憶領域である論理ボリュームが設定される。ホストは、論理ボリュームに対して、データの読み書きを行うことができる。
【０００３】
ところで、制御機能を担当する基本筐体と記憶機能を担当する増設筐体とをデイジーチェーン接続した、記憶制御装置が知られている（特許文献１）。基本筐体には、コントローラ及び複数のハードディスクドライブが搭載され、増設筐体には、複数のハードディスクドライブが搭載される。
【特許文献１】特開２００７−０１１６８２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来技術の記憶制御装置では、ユーザは、必要に応じて増設筐体を追加することにより、記憶制御装置の記憶容量を拡大させることができる。しかし、増設筐体を追加すればするほど、記憶制御装置のサイズは大型化する。
【０００５】
本発明は上記課題に鑑みてなされたもので、その目的は、設置サイズを大型化せずに、より多くの記憶容量を提供することができる記憶制御装置を提供することにある。本発明の他の目的は、後述する実施形態の記載から明らかになるであろう。
【課題を解決するための手段】
【０００６】
上記課題を解決すべく、本発明の第１観点に従う記憶制御装置は、制御装置と、該制御装置によって制御される複数の記憶ユニットとを備える記憶制御装置であって、制御装置は、各記憶ユニットと通信する通信部を複数備えており、各記憶ユニットのうち少なくとも一つ以上の記憶ユニットは、筐体と、該筐体内に設けられ、それぞれ独立して動作する複数のサブ記憶ユニットとを備えている、第１型の記憶ユニットとして構成されており、各サブ記憶ユニットは、複数の記憶装置と、該各記憶装置と通信部との通信を担当するユニット制御部と、各記憶装置及びユニット制御部に電力を供給する電源装置と、をそれぞれ備えている。
【０００７】
第２観点では、第１観点において、各サブ記憶ユニットには、筐体単位で設定され、筐体を管理するための筐体管理用データと、各サブ記憶ユニット単位で設定され、制御装置がユニット制御部と通信を行うためのアドレスデータと、筐体内の各サブ記憶ユニットを区別するための区別用データとが、それぞれ記憶されている。
【０００８】
第３観点では、第２観点において、制御装置は、同一の筐体管理用データを応答する複数のサブ記憶ユニットを、同一筐体に属するサブ記憶ユニットであると判定し、それらの各サブ記憶ユニットをグループ化して管理する。
【０００９】
第４観点では、第２または第３観点において、区別用データは、筐体管理用データに対応付けられて記憶されている。
【００１０】
第５観点では、第２〜第４観点のいずれかにおいて、第１型の記憶ユニットに設定されるユニークな筐体管理用データは、第１型の記憶ユニットに設定されるべき筐体管理用データとして予め用意されているデータの中から選択される。
【００１１】
第６観点では、第２〜第５観点のいずれかにおいて、第１型の記憶ユニットに設定されるユニークなアドレスデータは、第１型の記憶ユニットに設定されるべきアドレスデータとして予め用意されているデータの中から選択される。
【００１２】
第７観点では、第１〜第６観点のいずれかにおいて、各通信部は、各記憶ユニットとデイジーチェーン接続されており、制御装置は、デイジーチェーン接続上の位置が制御装置に近い記憶ユニットから順番に若い管理番号を設定して記憶ユニットを管理する。
【００１３】
第８観点では、第２〜第６観点のいずれかにおいて、制御装置は、サブ記憶ユニットから取得される、筐体管理用データとアドレスデータ及び区別用データを含む一式のデータに基づいて、サブ記憶ユニットを一意に特定し、さらに、一式のデータにより特定されるサブ記憶ユニットに管理番号を対応付けることにより、サブ記憶ユニットを管理する。
【００１４】
第９観点では、第８観点において、制御装置は、今回の起動時に、デイジーチェーン接続されている各サブ記憶ユニットから取得した一式のデータが、前回の起動時に取得された一式のデータと一致するか否かを判定し、今回の起動時に取得された一式のデータと前回の起動時に取得された一式のデータとが一致しない場合に警告を出力する。
【００１５】
第１０観点では、第８観点において、制御装置は、記憶ユニットが新たに接続された場合に、その新たな記憶ユニットのデイジーチェーン接続上の位置が最後尾であるか否かを判定し、その新たな記憶ユニットのデイジーチェーン接続上の位置が最後尾ではない場合に警告を出力し、さらに、その新たな記憶ユニットが、デイジーチェーン接続上の最後尾に位置するサブ記憶ユニットである場合に、そのサブ記憶ユニットから取得される一式のデータに、現在の管理番号から連続する新たな管理番号を加えて、管理及び記憶する。
【００１６】
第１１観点では、第２〜第６観点のいずれかにおいて、制御装置は、記憶ユニットが新たに接続された場合に、その新たな記憶ユニットから取得されるアドレスデータが他の記憶ユニットのアドレスデータと重複していないかを第１判定し、さらに、新たな記憶ユニットから取得される筐体管理用データ及び区別用データが、他の記憶ユニットの筐体管理用データ及び区別用データと重複していないかを第２判定し、さらに、その新たな記憶ユニットから取得した区別用データが、筐体内におけるサブ記憶ユニットの配置上、現在の記憶ユニットのうち、デイジーチェーン接続上の最後尾に接続されている記憶ユニットに対して連続性を有するか否かを第３判定し、第１判定または第２判定または第３判定のいずれかで肯定的な判定結果が得られない場合、警告を出力する。
【００１７】
第１２観点では、第２〜第１０観点のいずれかにおいて、筐体管理用データとアドレスデータと区別用データとは、それぞれ異なる複数の記憶領域に重複して記憶されており、ユニット制御部は、複数の記憶領域からそれぞれ読み出される複数の筐体管理用データが一致しない場合、多数決に従って筐体管理用データを決定する。
【００１８】
第１３観点では、第１〜第１２観点のいずれかにおいて、第１型の記憶ユニットの筐体には、各サブ記憶ユニットに対応する複数の表示部が設けられており、ユニット制御部は、各表示部のうち制御装置により指定されたサブ記憶ユニットに対応する表示部を作動させる。
【００１９】
第１４観点では、第１〜第１３観点のいずれかにおいて、複数の記憶ユニットには、第１型の記憶ユニットとは異なる第２型の記憶ユニットが少なくとも一つ以上含まれており、第２型の記憶ユニットは、筐体と、該筐体内に設けられる複数の記憶装置と、筐体内に設けられ、各記憶装置と通信部との通信を担当するユニット制御部と、各記憶装置及びユニット制御部に電力を供給する電源装置とを、備えている。
【００２０】
第１５観点に従う記憶制御装置は、制御装置と、該制御装置によって制御される複数の記憶ユニットとを備える記憶制御装置であって、制御装置は、各記憶ユニットと通信するための複数の通信部と、各記憶ユニットを管理するための管理テーブルを記憶する記憶部とを備え、制御装置には、各通信部に各記憶ユニットが均等に分散するようにしてデイジーチェーン接続されており、かつ、制御装置は、接続順序に応じて、各記憶ユニットに連続する管理番号を設定するようになっており、各記憶ユニットは、筐体と、該筐体内に設けられ、それぞれ独立して動作する複数のサブ記憶ユニットとを備えており、各サブ記憶ユニットは、複数の記憶装置と、該各記憶装置と通信部との通信を担当するユニット制御部と、各記憶装置及びユニット制御部に電力を供給する電源装置と、を備えており、ユニット制御部は、それぞれ異なる複数のメモリを備えており、各メモリには、筐体単位で設定され、筐体を管理するための筐体管理用データと、各サブ記憶ユニット単位で設定され、制御装置がユニット制御部と通信を行うためのアドレスデータと、筐体内の各サブ記憶ユニットを区別するための区別用データとが、所定データとしてそれぞれ記憶されており、各ユニット制御部は、各メモリからそれぞれ読み出される、所定データが一致しない場合、多数決に従って決定し、制御装置は、記憶制御装置を起動する場合、及び、新たに記憶ユニットを追加接続する場合、制御装置に接続上の位置が近い記憶ユニットのユニット制御部から順番に、所定データをそれぞれ取得して管理テーブルを作成し、作成された管理テーブルを所定の規則に基づいてチェックし、管理テーブルが所定の規則に反している場合にはエラー処理を行うようになっており、さらに、制御装置は、記憶制御装置を起動する場合には、管理テーブルの作成が完了した後で、管理テーブルを所定の規則に基づいてチェックし、または、新たな記憶ユニットを追加接続する場合には、所定データを各ユニット制御部から取得して管理テーブルに記憶させるたびに、管理テーブルを所定の規則に基づいてチェックするようになっており、所定の規則には、少なくとも、（１）各記憶ユニットの各管理番号が最小値から連続していることと、（２）同一の記憶ユニット内の各サブ記憶ユニットは、連続する管理番号を有することと、（３）同一の記憶ユニット内の各サブ記憶ユニットは、所定の順番で接続されることと、が含まれている。
【発明を実施するための最良の形態】
【００２１】
以下、図面に基づき、本発明の実施の形態を説明する。図１は、本実施形態の概要を示す説明図である。より詳細な構成は、後述の実施例で明らかになる。本実施形態では、一つの記憶ユニット３内に複数のサブ記憶ユニット４が設けられている。ラック３Ａへの取付け、及び、ラック３Ａからの取り外しは、記憶ユニット３単位で行われる。制御装置２との接続は、各サブ記憶ユニット４単位で行われる。つまり、各サブ記憶ユニット４は、それぞれ独立して使用することができる。
【００２２】
図１に示す記憶制御装置１は、制御装置２と、複数の記憶ユニット３とを備える。制御装置２は、記憶制御装置１の動作を制御するものであり、例えば、第１通信部２Ａと、第２通信部２Ｂと、制御部２Ｃと、を備える。第１通信部２Ａは、ホストＨと通信するための通信制御回路である。第１通信部２Ａは、例えば、ＦＣＰ（Fibre Channel Protocol）や、ｉＳＣＳＩ（internet Small Computer System Interface）等の通信プロトコルを介して、ホストＨと通信を行う。第２通信部２Ｂは、「制御装置の通信部」に該当し、各記憶ユニット３内の各ハードディスクドライブ５と通信するための通信制御回路である。第２通信部２Ｂは、光ファイバケーブル等のケーブル３Ｂを介して、記憶ユニット３内の各サブ記憶ユニット４に接続されている。
【００２３】
制御部２Ｃは、制御装置２の動作を制御する。制御部２Ｃは、記憶ユニット管理部２Ｄと、管理テーブル２Ｅと、記憶ユニット特定部２Ｆとを備える。記憶ユニット管理部２Ｄは、管理テーブル２Ｅを用いて記憶制御装置１の構成を管理する。記憶ユニット管理部２Ｄは、管理テーブル２Ｅを作成するためのテーブル作成部２Ｇと、作成された管理テーブル２Ｅをチェックするためのチェック部２Ｈとを備える。
【００２４】
管理テーブル２Ｅは、各記憶ユニット３毎に設定される製造番号Ｄ１と、各サブ記憶ユニット４を区別するための区分Ｄ２と、各サブ記憶ユニット４にアクセスするためのＳＡＳ（Serial Attached SCSI）アドレスＤ３とを、対応付けて管理するテーブルである。
【００２５】
テーブル作成部２Ｇは、記憶制御装置１を起動した場合、及び、記憶制御装置１に新たな記憶ユニット３を追加した場合に、記憶制御装置１の構成を確認して管理テーブル２Ｅを作成または更新する。チェック部２Ｈは、管理テーブル２Ｅの内容と所定の規則とを比較し、その管理テーブル２Ｅの内容が所定の規則に合致しているか否かを検査する。チェック部２Ｈは、管理テーブル２Ｅの内容が所定の規則に違反している場合、エラーメッセージを出力する。
【００２６】
記憶ユニット３は、ラック３Ａに着脱可能に取り付けられている。記憶ユニット３内には、複数の（例えば、２個の）サブ記憶ユニット４が設けられている。複数のサブ記憶ユニット４を備える記憶ユニット３は、高密度型記憶ユニットと呼ぶことができる。高密度型記憶ユニットは、「第１型の記憶ユニット」に該当する。これに対し、サブ記憶ユニット４を備えない記憶ユニットは、通常型記憶ユニットと呼ぶことができる。通常型記憶ユニットは、「第２型の記憶ユニット」に該当する。図１では省略しているが、後述の図１３に示すように、高密度型記憶ユニット３と通常型記憶ユニットとを混在させて使用することもできる。
【００２７】
各サブ記憶ユニット４は、例えば、ハードディスクドライブ５と、バスエクスパンダ（以下、エクスパンダ）５Ａと、サブユニット内コントローラ６と、メモリ７と、電源装置８と、表示部９とを備えている。
【００２８】
「記憶装置」としてのハードディスクドライブ５は、エクスパンダ５Ａ及びケーブル３Ｂを介して、第２通信部２Ｂに接続される。ハードディスクドライブ５としては、例えば、ＦＣ（Fibre Channel）ディスク、ＳＣＳＩ（Small Computer System Interface）ディスク、ＳＡＴＡディスク、ＡＴＡ（AT Attachment）ディスク、ＳＡＳ（Serial Attached SCSI）ディスク等を用いることができる。さらに、ハードディスクドライブに代えて、半導体メモリデバイス、光ディスクデバイス、光磁気ディスクデバイス、磁気テープデバイス等のデータを読み書き可能な装置を用いることもできる。半導体メモリデバイスとしては、例えば、フラッシュメモリ、ＦｅＲＡＭ（Ferroelectric Random Access Memory）、ＭＲＡＭ（MagnetoresistiveRandom Access Memory）、相変化メモリ（Ovonic Unified Memory）、ＲＲＡＭ（Resistance RAM）」等を挙げることができる。
【００２９】
サブユニット内コントローラ（以下、コントローラ）６は、サブ記憶ユニット４の動作を制御する。メモリ７は、例えば、コントローラ６により実行されるプログラムと、管理用のデータＤ１〜Ｄ３を記憶する。各データＤ１〜Ｄ３は、工場出荷時に設定される。
【００３０】
製造番号Ｄ１は、記憶ユニット３を特定するための識別情報であり、各記憶ユニット３毎にそれぞれ設定される。区分Ｄ２は、一つの記憶ユニット３内の複数のサブ記憶ユニット４を区別するための情報である。区分Ｄ２は、例えば前後または左右のように、各サブ記憶ユニット４が記憶ユニット３内のどこに位置するのかを示す。ＳＡＳアドレスＤ３は、第２通信部２Ｂがサブ記憶ユニット４にアクセスするためのアドレス情報である。
【００３１】
電源装置８は、各ハードディスクドライブ５，コントローラ６，メモリ７，表示部９に所定の電力を供給する装置である。表示部９は、例えば、ＬＥＤ（Light Emitting Diode）ランプのような発光素子を備えている。表示部９の点灯状態は、記憶ユニット３の外部から確認できるようになっている。
【００３２】
このように構成される記憶制御装置１では、一つの高密度型記憶ユニット３内に複数のサブ記憶ユニット４を設けるため、より多くのハードディスクドライブ５を搭載することができる。
【００３３】
各サブ記憶ユニット４は、それぞれ独自のハードディスクドライブ５，コントローラ６，メモリ７，電源装置８等を備えており、独立して動作する。制御装置２は、各サブ記憶ユニット４を、記憶ユニット３として取り扱うことができ、各サブ記憶ユニット４との間でデータを送受信できる。従って、制御装置２のコンピュータプログラムを大幅に変更することなく、高密度型記憶ユニット３を使用できる。以下、図２以下の図面を用いて、本実施形態を詳細に説明する。
【実施例１】
【００３４】
図２〜図２７に基づいて実施例を説明する。先に、図１との対応関係を述べると、記憶制御装置１０は図１の記憶制御装置１に、ラック１１は図１のラック３Ａに、制御ユニット２０は図１の制御装置２に、記憶ユニット４０は図１の記憶ユニット３に、サブ記憶ユニット５０は図１のサブ記憶ユニット４に、ハードディスクドライブ５１は図１のハードディスクドライブ５に、該当する。プロトコルチップ３１は図１の第１通信部２Ａに、ＳＡＳプロトコルチップ３２は図１の第２通信部２Ｂに、ＣＰＵ３５及びメモリ３６等は図１の制御部２Ｃに、該当する。エクスパンダ５２０は図１のエクスパンダ５Ａに、コントローラ５２は図１のコントローラ６に、フラッシュメモリ５２３は図１のメモリ７に、ランプ５７は図１の表示部９に、電源装置５５は図１の電源装置８に、ホスト６０は図１のホストＨに、通信ネットワークCN１０は図１の通信ネットワークCNに、該当する。
【００３５】
図２は、記憶制御装置１０の正面図である。例えば１９インチラックとして構成されるラック１１には、一つの制御ユニット２０と複数の記憶ユニット４０とが、着脱可能に取り付けられている。
【００３６】
制御ユニット２０は、記憶制御装置１０を制御する装置であり、例えば、ラック１１の下側に取り付けられる。制御ユニット２０の構成は、図７で後述する。図２に表示されている範囲で説明すると、制御ユニット２０は、後述のコントローラ３０に加えて、例えば、複数の冷却ファン２１と、複数のバッテリ装置２２と、メインスイッチ２３とを備えている。冷却ファン２１は、制御ユニット２０を冷却する。バッテリ装置２２は、停電時に、バッテリ電源を制御ユニット２０及び各記憶ユニット４０に供給する。メインスイッチ２３は、記憶制御装置１０を起動させるためのスイッチである。
【００３７】
制御ユニット２０の上側には、複数の記憶ユニット４０がラック１１に着脱可能に取り付けられている。記憶ユニット４０には、高密度型記憶ユニットと通常型記憶ユニットとがある。高密度型記憶ユニットとは、その内部に複数のサブ記憶ユニット５０を備えている記憶ユニットを意味し、符号４０Ｄが与えられる。通常型記憶ユニットとは、サブ記憶ユニットを備えない記憶ユニットを意味し、符号４０Ｎが与えられる。高密度型記憶ユニットと低密度型記憶ユニットとを特に区別する必要が無い場合、符号４０を用いる。
【００３８】
高密度型記憶ユニット４０Ｄは、例えば、左右に２４台ずつ合計４８台のハードディスクドライブ５１を搭載することができ、その高さ寸法UHは、例えば、４Ｕである。通常型記憶ユニット４０Ｎは、例えば１５台程度のハードディスクドライブを搭載可能であり、その高さ寸法は、例えば３Ｕである。１Ｕとは、44.45mm（1.77インチ）である。以下の説明では、本実施例に特徴的な構成である、高密度型記憶ユニット４０Ｄを中心に説明する。
【００３９】
図３は、高密度型記憶ユニット４０Ｄの斜視図である。高密度型記憶ユニット４０Ｄは、例えば、箱状のケース４１と、ケース４１内に着脱可能に設けられる複数のハードディスクドライブ５１及び複数のエンクロージャ５２と、ケース４１の前面４３に設けられる電源ランプ５６及び位置表示ランプ５７とを備える。エンクロージャ５２等については、後述する。
【００４０】
ケース４１の両側面にはレール４２が設けられている。高密度型記憶ユニット４０Ｄは、レール４２を介してラック１１に移動可能に取り付けられている。例えば、ハードディスクドライブ５１等を交換する場合、ユーザは、ケース４１を矢示Ｆ１方向に引き出し、ハードディスクドライブ５１等を矢示Ｆ３方向に引き抜く。ユーザは、ハードディスクドライブ５１等を矢示Ｆ４方向に向けて装着し、ケース４１を矢示Ｆ２方向に押してラック１１内に戻すこともできる。
【００４１】
図４は、ハードディスクドライブ５１の外観図である。ハードディスクドライブ５１は、ドライブ本体５１１と、ドライブ本体５１１を収容するキャニスタ５１２とから構成される。キャニスタ５１２は、ドライブ本体５１１の全面を覆うのではなく、ドライブ本体５１１の一部の面のみを覆うように形成されている。
【００４２】
図５は、高密度型記憶ユニット４０Ｄを背面側から見た斜視図である。高密度型記憶ユニット４０Ｄの後側には、複数の（例えば４個の）電源装置５５が着脱可能に設けられている。
【００４３】
さらに、各電源装置５５の下側には、ケーブルホルダ５４Ａ，５４Ｂ（以下、特に区別しない場合は、ケーブルホルダ５４と呼ぶ）が着脱可能に設けられている。ケーブルホルダ５４には、ケーブル７０（図７参照）が着脱可能に取り付けられる。一方のケーブルホルダ５４Ａには、信号入力側のケーブル７０が取り付けられる。他方のケーブルホルダ５４Ｂには、信号出力側のケーブル７０が取り付けられる。
【００４４】
各ケーブルホルダ５４にケーブル７０を取付け、そのケーブル７０の取り付けられたケーブルホルダ５４をケース４１内に挿入することにより、ケーブル７０をエンクロージャ５２のコネクタに取り付けることができる。
【００４５】
図６は、カバーを取り去った状態で、ケース４１を真上から見た図面である。高密度型記憶ユニット４０Ｄのケース４１内には、左右にサブ記憶ユニット５０Ｌ，５０Ｒが設けられている。
【００４６】
前面４３側から見て左側には、左側サブ記憶ユニット５０Ｌが設けられており、前面４３側から見て右側には、右側サブ記憶ユニット５０Ｒが設けられている。つまり、ケース４１の幅方向を左右に分割するようにして、各サブ記憶ユニット５０Ｌ，５０Ｒが左右対称に設けられている。なお、以下の説明では、左右の区別を必要としない場合、サブ記憶ユニット５０と呼ぶ。
【００４７】
図６の右側は高密度型記憶ユニット４０Ｄの前側であり、複数のハードディスクドライブ５１が示されている。図６の左側は高密度型記憶ユニット４０Ｄの後側であり、複数の電源装置５５が設けられている。
【００４８】
左側のサブ記憶ユニット５０Ｌに注目して説明する。サブ記憶ユニット５０Ｌの有する各ハードディスクドライブ５１には、それぞれ識別番号が設定される。識別番号は、サブ記憶ユニット５０Ｌに向かって左側から順番に値が大きくなるように設定される。
【００４９】
サブ記憶ユニット５０Ｌには、その前側から後側にかけて合計４つの列で、ハードディスクドライブ５１が設けられている。第１列目は、L＃０〜L＃６の合計７台のハードディスクドライブ５１から構成されており、第２列目は、L＃７〜L＃１３の合計７台のハードディスクドライブ５１から構成されている。第３列目は、L＃１4〜L＃１８の５台のハードディスクドライブ５１から構成されており、第４列目は、L＃１９〜L＃２３の合計５台のハードディスクドライブ５１から構成されている。
【００５０】
第３列目と第４列目には、ハードディスクドライブ５１間に、エンクロージャ５２（L＃０），５２（L＃１）が設けられている。具体的には、ハードディスクドライブ５１（L＃１５）とハードディスクドライブ５１（L＃１６）との間と、ハードディスクドライブ５１（L＃２０）とハードディスクドライブ５１（L＃２１）との間とに、エンクロージャ５２（L＃１）が設けられている。同様に、ハードディスクドライブ５１（L＃１６）とハードディスクドライブ５１（L＃１７）との間と、ハードディスクドライブ５１（L＃２１）とハードディスクドライブ５１（L＃２２）との間とに、エンクロージャ５２（Ｌ#０）が設けられている。
【００５１】
このように、第３列目と第４列目とには、エンクロージャ５２が設けられているため、第３列目及び第４列目のドライブ数は、第１列目及び第２列目のドライブ数よりも２台少ない。
【００５２】
もしも、各エンクロージャ５２を第１列目及び第２列目に設けることができるのであれば、第１列目及び第２列目のドライブ数は、第３列目及び第４列目のドライブ数よりも２台少なくなる。しかし、そのように構成すると、ケース４１の背面からエンクロージャ５２までの距離が長くなり過ぎる。図５で述べたように、ケーブル７０は、ケーブルホルダ５４に取り付けられた状態で、ケース４１の後側の下部からケース４１内に挿入され、エンクロージャ５２に接続される。従って、エンクロージャ５２は、できるだけケース４１の後側に設置するのが好ましい。
【００５３】
一方、電源装置５５は、図５に示すように、ケース４１の後側から引き抜くことができるように、ケース４１の最も後側に設けられる。従って、エンクロージャ５２は、電源装置５５よりも前側に位置して、ケース４１の略中央部に設けられている。ハードディスクドライブ５１の群との関係に着目するならば、エンクロージャ５２は、後列の（第３列及び第４列の）ハードディスクドライブ５１群の中に設けられている。
【００５４】
以上が左側のサブ記憶ユニット５０Ｌの構成である。右側のサブ記憶ユニット５０Ｒは、左側のサブ記憶ユニット５０Ｌと同様に構成されるため、その説明を省略する。上記の説明中、「L#」を「R#」に置き換えるだけで、右側のサブ記憶ユニット５０Ｒの構成を説明できる。
【００５５】
図７は、記憶制御装置１０を含む情報処理システムの全体構成を示す説明図である。ホスト６０は、例えば、サーバコンピュータ、メインフレームコンピュータ、ワークステーション、パーソナルコンピュータ等のようなコンピュータ装置である。
【００５６】
記憶制御装置１０は、通信ネットワークCN１０を介して、複数のホスト６０に接続可能である。複数のホスト６０のうちのいずれか一つ以上のホスト６０には、記憶制御装置１０を管理するための管理プログラム６１を設けることができる。後述のように、ユーザは、その管理プログラム６１を用いて、記憶制御装置１０に指示を与えたり、または、記憶制御装置１０からの報告を受け取ったりする。通信ネットワークCN１０は、FC_SAN（Fibre Channel_Storage Area Network）やIP_SAN（Internet Protocol_SAN）のように構成される。
【００５７】
制御ユニット２０は、複数のコントローラ３０を備えている。各コントローラ３０は、同一の構成を備えており、それぞれ別々に動作する。各コントローラ３０は、それぞれ異なる経路で、各記憶ユニット４０に接続されている。従って、一方のコントローラ３０に障害が生じて停止した場合でも、他方のコントローラ３０から所望のハードディスクドライブ５１にアクセスしてデータを読み書きすることができる。
【００５８】
各コントローラ３０は、例えば、プロトコルチップ３１と、ＳＡＳプロトコルチップ３２と、データ転送制御回路３３と、キャッシュメモリ３４と、ＣＰＵ（Central Processing Unit）３５と、メモリ３６と、ブリッジ３７とを備えている。
【００５９】
プロトコルチップ３１は、ホスト６０と通信するための通信制御回路である。ＳＡＳプロトコルチップ３２は、通常型記憶ユニット４０Ｎ及びサブ記憶ユニット５０（高密度型記憶ユニット４０Ｄの場合）と通信するための通信制御回路である。ＳＡＳプロトコルチップ３２は、複数設けることができる。本実施例では、４個のＳＡＳプロトコルチップ３２が設けられている場合を説明する。
【００６０】
データ転送制御回路３３は、データ転送を制御するための回路である。データ転送制御回路３３は、プロトコルチップ３１と、ＳＡＳプロトコルチップ３２と、キャッシュメモリ３４と、ＣＰＵ３５と、メモリ３６とに接続されている。
【００６１】
データ転送制御回路３３は、例えば、ホスト６０からプロトコルチップ３１を介して受信したデータをキャッシュメモリ３４に転送したり、キャッシュメモリ３４に記憶されたデータをＳＡＳプロトコルチップ３２に転送したりする。さらに、データ転送制御回路３３は、ハードディスクドライブ５１からＳＡＳプロトコルチップ３２を介して受信したデータをキャッシュメモリ３４に転送したり、キャッシュメモリ３４に記憶されたデータをプロトコルチップ３１に転送したりする。
【００６２】
ＣＰＵ３５は、コントローラ３０の動作を制御するものである。メモリ３６は、コンピュータプログラムや管理用データ等を記憶する。ＣＰＵ３５とメモリ３６とは、ブリッジ３７を介してデータ転送制御回路３３等に接続される。
【００６３】
図８は、高密度型記憶ユニット４０Ｄの構成を示すブロック図である。上述の通り、高密度型記憶ユニット４０Ｄは、複数のサブ記憶ユニット５０Ｌ，５０Ｒを備える。各サブ記憶ユニット５０Ｌ，５０Ｒは、同一の構成を備えており、それぞれ独立して動作することができる。
【００６４】
左側のサブ記憶ユニット５０Ｌについて説明すると、サブ記憶ユニット５０Ｌは、例えば、２４個のハードディスクドライブ５１と、２個のエンクロージャ５２と、一つのバックボード５３と、２個の信号入力用ケーブルホルダ５４Ａと、２個の信号出力用ケーブルホルダ５４Ｂと、２個の電源装置５５と、一つの電源ランプ５６と、一つの位置表示ランプ５７と、を備える。
【００６５】
エンクロージャ５２は、各ハードディスクドライブ５１との通信を制御する。エンクロージャ５２は、例えば、エクスパンダ５２０と、環境コントローラ５２１と、メモリ５２２と、フラッシュメモリ５２３とを備える。一方のエンクロージャ５２（#L0）及び他方のエンクロージャ５２（#L1）は、それぞれハードディスクドライブ５１にアクセス可能である。
【００６６】
エクスパンダ５２０は、２４個のハードディスクドライブ５１とそれぞれ接続するための回路である。エクスパンダ５２０には、信号入力用のケーブルホルダ５４Ａと、信号出力用のケーブルホルダ５４Ｂとが、接続されている。そして、各ハードディスクドライブ５１は、バックボード５３を介して、各エンクロージャ５２のエクスパンダ５２０に接続されている。コントローラ３０から発行されたコマンドは、ケーブル７０等を介して、所望のハードディスクドライブ５１が接続されているエンクロージャ５２に伝達され、処理される。
【００６７】
図中「ECTL」と示す環境コントローラ５２１は、環境を管理するためのコントローラである。図中「SRAM」として示すメモリ５２２は、データを一時的に記憶するためのメモリである。図中「Flash」として示すフラッシュメモリ５２３は、後述の製造番号Ｄ１０，サブ記憶ユニットタイプＤ２０，ＳＡＳアドレスＤ３０を予め記憶するためのメモリである。
【００６８】
各電源装置５５は、各エンクロージャ５２及び各ランプ５６，５７等にそれぞれ電力を供給する。いずれか一方の電源装置５５が障害によって停止した場合でも、他方の電源装置５５から電力を供給することができる。
【００６９】
電源ランプ５６及び位置表示ランプ５７は、各サブ記憶ユニット５０Ｌ，５０Ｒに対応して、高密度型記憶ユニット４０Ｄの前面４３（図３参照）に設けられる。電源ランプ５６は、サブ記憶ユニット５０への電力供給状態を示す。電力が供給されている場合、電源ランプ５６は点灯する。位置表示ランプ５７は、サブ記憶ユニット５０の位置をユーザに知らせるためのランプである。ユーザが、ホスト６０の管理プログラム６１を用いて、いずれかのサブ記憶ユニット５０を指定すると、その指定されたサブ記憶ユニット５０に対応する位置表示ランプ５７が点灯する。
【００７０】
右側のサブ記憶ユニット５０Ｒは、左側のサブ記憶ユニット５０Ｌと同様に構成されるため、その説明を省略する。なお、通常型記憶ユニット４０Ｎの場合は、サブ記憶ユニット５０を備えないため、電源ランプ５６及び位置表示ランプ５７は、それぞれ１つずつ設けられる。また、通常型記憶ユニット４０Ｎには、例えば、１５台や２４台のように、高密度型記憶ユニット４０Ｄに搭載されているドライブ数（４８台）よりも少ないハードディスクドライブ５１を搭載することができる。
【００７１】
図９は、フラッシュメモリ５２３の記憶構造を模式的に示す説明図である。サブ記憶ユニット５０内には、複数の（例えば３個の）フラッシュメモリ５２３が設けられており、それら各フラッシュメモリ５２３には、それぞれ同一の管理用データＤ１０〜Ｄ３０が記憶されている。
【００７２】
後述のように、いずれか一つのフラッシュメモリ５２３から管理用データを読み出せなかった場合でも、残りのフラッシュメモリ５２３から管理用データＤ１０〜Ｄ３０を読み出すことができるように、管理用データＤ１０〜Ｄ３０は３カ所に記憶されている。なお、通常型記憶ユニット４０Ｎの場合、必ずしも製造番号は必須ではなく、ＳＡＳアドレスのみを確実に読み出すことができればよい。従って、通常型記憶ユニット４０Ｎでは、ＳＡＳアドレスのみを複数の記憶領域に記憶させればよい。
【００７３】
製造番号Ｄ１０は、各記憶ユニット４０を特定するための識別情報である。サブ記憶ユニットタイプＤ２０は、各サブ記憶ユニット５０の位置が左側（Ｌ）なのか右側（Ｒ）なのかを区分けするための情報である。ＳＡＳアドレスＤ３０は、コントローラ３０がサブ記憶ユニット５０にアクセスするためのアドレス情報である。
【００７４】
図１０は、各管理用データＤ１０〜Ｄ３０と記憶ユニット４０Ｄ及びサブ記憶ユニット５０との関係を示す説明図である。上述のように、製造番号Ｄ１０は、各記憶ユニット４０に固有の番号であり、通常型記憶ユニット４０Ｎであるか高密度型記憶ユニット４０Ｄであるかを問わずに、各記憶ユニット４０毎にそれぞれ１つずつ設定される。
【００７５】
但し、製造番号Ｄ１０は、記憶ユニット４０の種類に応じて予め設定されている範囲内で、選択される。通常型記憶ユニット４０Ｎには、通常型記憶ユニット用に用意されている製造番号群Ｄ１１の中から選択される、一つの製造番号が設定される。高密度型記憶ユニット４０Ｄには、高密度型記憶ユニット用に用意されている製造番号群Ｄ１２の中から選択される、一つの製造番号が設定される。
【００７６】
サブ記憶ユニットタイプＤ２０には、正面から見て左側に配置されたサブ記憶ユニット５０Ｌであることを示すデータＤ２１か、あるいは、正面から見て右側に配置されたサブ記憶ユニット５０Ｒであることを示すデータＤ２２のいずれか一つが設定される。サブ記憶ユニットタイプＤ２０は、製造番号Ｄ１０に対応付けて設定することができる。例えば、製造番号Ｄ１０の最後尾に、１ビットのサブ記憶ユニットタイプＤ２０を加えておき、製造番号Ｄ１０及びサブ記憶ユニットタイプＤ２０を同時に読み出す構成とすることにより、製造番号Ｄ１０とサブ記憶ユニットタイプＤ２０とを対応付けることができる。
【００７７】
ＳＡＳアドレスＤ３０は、記憶ユニット４０の種類に応じて予め用意されている範囲内で、設定される。通常型記憶ユニット４０Ｎには、通常型記憶ユニット用に用意されているＳＡＳアドレス群Ｄ３１の中から選択される、一つのＳＡＳアドレスが設定される。高密度型記憶ユニット４０Ｄには、高密度型記憶ユニット用に用意されているＳＡＳアドレス群Ｄ３２の中から選択される、一つのＳＡＳアドレスが設定される。
【００７８】
図１１は、記憶ユニット４０を管理するための記憶ユニット管理テーブルＴ１０を示す説明図である。この管理テーブルＴ１０は、例えば、コントローラ３０の有するメモリ３６内に記憶させることができる。
【００７９】
管理テーブルＴ１０は、例えば、ユニット番号欄Ｃ１０と、ＳＡＳアドレス欄Ｃ１１と、製造番号欄Ｃ１２と、ペア番号欄Ｃ１３と、サブ記憶ユニットタイプ欄Ｃ１４と、有効フラグ欄Ｃ１５とを備えている。
【００８０】
ユニット番号欄Ｃ１０は、テーブルＴ１０内で各記憶ユニットを区別するための連続番号が格納される。ＳＡＳアドレス欄Ｃ１１には、記憶ユニット４０に設定されているＳＡＳアドレスＤ３０が格納される。製造番号欄Ｃ１２には、記憶ユニット４０に設定されている製造番号Ｄ１０が格納される。
【００８１】
ペア番号欄Ｃ１３には、検出されたペアを区別するためのペア番号が格納される。ペアとは、同一の記憶ユニット４０Ｄに属するサブ記憶ユニット５０Ｌ，５０Ｒのペアを意味する。制御ユニット２０のコントローラ３０は、各記憶ユニット４０（サブ記憶ユニット５０を含む）から製造番号Ｄ１０を取得し、同一の製造番号が設定されているユニット同士をペアとして判定し、管理する。
【００８２】
上述のように、サブ記憶ユニット５０Ｌ，５０Ｒには、それぞれ同一の製造番号が設定されている。従って、同一の製造番号をコントローラ３０に返信する複数のユニットは、同一の高密度型記憶ユニット４０Ｄに設けられているサブ記憶ユニット５０Ｌ，５０Ｒのペアであると判定することができる。コントローラ３０は、発見された順番で、連続したペア番号を各サブ記憶ユニット５０Ｌ，５０Ｒのペアに設定する。
【００８３】
有効フラグ欄Ｃ１５には、管理テーブルＴ１０に登録された内容が所定の規則に照らして正しいか否かを示す値が格納される。所定の規則の例は、図１７で後述する。その行の内容が正しい場合には、その内容が有効であることを示すデータ（例えばOK）が格納される。その行の内容が規則に違反している場合、その内容が有効ではないことを示すデータ（例えばNG）が格納される。
【００８４】
図１２は、高密度型記憶ユニット４０Ｄの接続形態を示す説明図である。本実施例の各コントローラ３０は、それぞれ４個のＳＡＳプロトコルチップ３２を備える。図１２では、各ＳＡＳプロトコルチップ３２の通信ポートにP0〜P3の符号を付して区別する。
【００８５】
図１２に示すように、高密度型記憶ユニット４０Ｄの有する各サブ記憶ユニット５０は、デイジーチェーン接続されており、各サブ記憶ユニット５０は、それぞれ２つのアクセス経路を有する。一つのアクセス経路は０系の経路（＃０系）であり、他の一つのアクセス経路は１系の経路（＃１）である。０系の経路は、一方のコントローラ３０（＃０）によりアクセスされ、１系の経路は、他方のコントローラ３０（＃１）によってアクセスされる。
【００８６】
各ＳＡＳプロトコルチップ３２の負荷が均等となるように、即ち、合計４個の各通信パスが略均等に使用されるように、各ＳＡＳプロトコルチップ３２にサブ記憶ユニット５０が接続されている。
【００８７】
コントローラ３０に接続された順番で、各サブ記憶ユニット５０のユニット番号（＃０〜＃７）が決定される。各サブ記憶ユニット５０は、ユニット番号の若い順番で使用される頻度が大きい。従って、各ＳＡＳプロトコルチップ３２が略均等に使用されるように、P0〜P3の順番に従ってサブ記憶ユニット５０がコントローラ３０に接続される。
【００８８】
具体的には、最初に、通信ポートP0にサブ記憶ユニット５０（＃０）を接続し、次に通信ポートP1にサブ記憶ユニット５０（＃１）を接続し、次に通信ポートP2にサブ記憶ユニット５０（＃２）を接続し、さらに次の通信ポートP3にサブ記憶ユニット５０（＃３）を接続する。これで各通信ポート（通信パス）には、それぞれ１つずつサブ記憶ユニット５０が接続されたことになる。以下同様にして、各通信ポートに順番にサブ記憶ユニット５０を接続していく。これにより、各通信ポートの使用頻度を略均等にして、負荷を分散させることができる。
【００８９】
図１３は、通常型記憶ユニット４０Ｎと高密度型記憶ユニット４０Ｄとを混在させて使用する様子を示す説明図である。主として高密度型記憶ユニット４０Ｄについて説明してきたが、本実施例では、高密度型記憶ユニット４０Ｄと通常型記憶ユニット４０Ｎの両方を同時に使用できる。図１３では、負荷分散の観点を省略して、種類の異なる記憶ユニット４０Ｄ，４０Ｎを混在させる様子を模式的に示す。
【００９０】
図１３に示すように、例えば、サブ記憶ユニット５０Ｌ（＃０）及びサブ記憶ユニット５０Ｒ（＃１）を有する高密度型記憶ユニット４０Ｄの隣には、通常型記憶ユニット４０Ｎ（＃２）が設けられている。その通常型記憶ユニット４０Ｎ（＃２）の隣には、サブ記憶ユニット５０Ｌ（＃３）及びサブ記憶ユニット５０Ｒ（＃４）を有する高密度型記憶ユニット４０Ｄが設けられている。さらに隣には、サブ記憶ユニット５０Ｌ（＃５）及びサブ記憶ユニット５０Ｒ（＃６）を有する高密度型記憶ユニット４０Ｄが設けられている。
【００９１】
図１４は、ライト処理を示すフローチャートである。ライト処理の実行に先立って、ＣＰＵ３５は、ディスカバープロセスを起動させる（Ｓ１０）。ディスカバープロセスとは、コントローラ３０に接続されている各記憶ユニット４０（サブ記憶ユニット５０を含む）を検出して管理テーブルＴ１０に登録する処理である。この処理の詳細は、図１６で後述する。
【００９２】
ここでは、ディスカバープロセスを簡単に説明する。ＳＡＳプロトコルチップ３２は、ＣＰＵ３５からの指示に応じて、エンクロージャ５２にSMP（Simple Message Protocol）リクエストを発行する（Ｓ１１）。エンクロージャ５２は、そのSMPリクエストに応答する（Ｓ１２）。ＳＡＳプロトコルチップ３２は、接続されている各エンクロージャ５２からSMPレスポンスを受領して、各記憶ユニット４０Ｎ及び各サブ記憶ユニット５０の存在を確認すると、ディスカバープロセスが完了した旨をＣＰＵ３５に報告する（Ｓ１３）。ＣＰＵ３５は、検出された各記憶ユニット４０Ｎ及び各サブ記憶ユニット５０を、検出された順番で、管理テーブルＴ１０に登録する。
【００９３】
次に、ライトコマンドの処理を説明する。コントローラ３０のＣＰＵ３５は、ホスト６０からライトコマンドを受信すると、ライトデータの受け入れ準備を行う。そして、ＣＰＵ３５は、ホスト６０から受信したライトデータをキャッシュメモリ３４に記憶させる。
【００９４】
所定のタイミングで、ＣＰＵ３５は、デステージ処理を開始する。デステージ処理とは、キャッシュメモリ３４に記憶されているライトデータをハードディスクドライブ５１に書き込む処理である。同期式の場合、デステージ処理を完了させた後で、ＣＰＵ３５は、ライトコマンドの処理が完了した旨をホスト６０に通知する。非同期式の場合、ＣＰＵ３５は、ホスト６０からのライトデータをキャッシュメモリ３４に記憶させた後で、ライトコマンドの処理が完了した旨をホスト６０に通知する。
【００９５】
デステージ処理が開始されると、ＣＰＵ３５は、ＳＡＳプロトコルチップ３２にライト要求を発行する（Ｓ２０）。ＣＰＵ３５からの要求を受けたＳＡＳプロトコルチップ３２は、所定のハードディスクドライブ５１に向けて、ライトコマンドを発行する（Ｓ２１）。このライトコマンドは、エクスパンダ５２０等を介して、所定のハードディスクドライブ５１に伝達される。所定のハードディスクドライブ５１とは、ライトデータを書き込むべき記憶領域を有するハードディスクドライブである。
【００９６】
ＣＰＵ３５からのライトコマンドを受信したハードディスクドライブ５１は、ＳＡＳプロトコルチップ３２にライトデータの転送を要求する（Ｓ２２）。ＳＡＳプロトコルチップ３２は、キャッシュメモリ３４からライトデータを読み出して（Ｓ２３）、ハードディスクドライブ５１に転送する（Ｓ２４）。
【００９７】
ハードディスクドライブ５１は、ＳＡＳプロトコルチップ３２から受信したライトデータを磁気ディスクに書込み、書込みを完了した旨をＳＡＳプロトコルチップ３２に報告する（Ｓ２５）。この報告を受信したＳＡＳプロトコルチップ３２は、ハードディスクドライブ５１への書込みが完了した旨をＣＰＵ３５に報告する（Ｓ２６）。以上のＳ２０〜Ｓ２６により、デステージ処理（ハードディスクドライブへのライト処理）が完了する。
【００９８】
図１５は、リード処理を示すフローチャートである。ホスト６０は、コントローラ３０に向けてリードコマンドを発行する。リードコマンドには、読出し先の論理アドレスとデータサイズとが含まれている。
【００９９】
リードコマンドを受信したＣＰＵ３５は、ＳＡＳプロトコルチップ３２に、データの読み出しを要求する（Ｓ３０）。ＳＡＳプロトコルチップ３２は、読み出すべきデータを記憶しているハードディスクドライブ５１に向けてリードコマンドを発行する（Ｓ３１）。そのリードコマンドは、エクスパンダ５２０等を介して、そのハードディスクドライブ５１に送られる。
【０１００】
リードコマンドを受信したハードディスクドライブ５１は、要求されたデータをＳＡＳプロトコルチップ３２に転送する（Ｓ３２）。ＳＡＳプロトコルチップ３２は、ハードディスクドライブ５１から受信したデータを、キャッシュメモリ３４に転送して記憶させる（Ｓ３３）。そして、ＳＡＳプロトコルチップ３２は、ハードディスクドライブ５１からリードコマンドの処理が完了した旨の報告を受け取ると、データの読み出しが完了した旨をＣＰＵ３５に報告する（Ｓ３５）。
【０１０１】
図１６は、記憶制御装置１０を起動する場合の処理を示すフローチャートである。この処理では、記憶制御装置１０の有する各記憶ユニット（サブ記憶ユニットを含む）が調査されて、管理テーブルＴ１０に記録される。本処理は、コントローラ３０内のＣＰＵ３５によって実行される。
【０１０２】
まず最初に、ＣＰＵ３５は、ユニット番号に”０”をセットする（Ｓ４０）。続いて、ＣＰＵ３５は、次の記憶ユニットが存在するか否かを判定する（Ｓ４１）。ここでは、処理が開始されたばかりなので、Ｓ４１ではYESと判定される（S41:YES）。
【０１０３】
ＣＰＵ３５は、製造番号Ｄ１０と、サブ記憶ユニットタイプＤ２０（もしも有れば）と、ＳＡＳアドレスＤ３０とを、記憶ユニットから取得する（Ｓ４２）。ＣＰＵ３５は、その記憶ユニットがサブ記憶ユニットであると、ＳＡＳアドレス等から判明した場合に、その記憶ユニットからサブ記憶ユニットタイプＤ２０を取得する。記憶ユニット内のエンクロージャ５２は、フラッシュメモリ５２３から各データＤ１０〜Ｄ３０を読み出して、ＣＰＵ３５に向けて送信する（Ｓ１００）。なお、Ｓ１００の詳細は、図２３及び図２４で後述する。
【０１０４】
ＣＰＵ３５は、同一の製造番号が取得された場合に、同一の製造番号を有する記憶ユニット（サブ記憶ユニット）をペアであると判定し、ペア番号を設定する（Ｓ４３）。Ｓ４２と同様に、ＣＰＵ３５は、その記憶ユニットがサブ記憶ユニットであると、ＳＡＳアドレス等から判明した場合に、サブ記憶ユニットのペアを判定する。そして、ＣＰＵ３５は、取得した各管理用データＤ１０〜Ｄ３０とペア番号とを、管理テーブルＴ１０に記憶させる（Ｓ４４）。ＣＰＵ３５は、ユニット番号を１つ増加させて（Ｓ４５）、Ｓ４１に戻る。
【０１０５】
このように、ＣＰＵ３５は、コントローラ３０に近い記憶ユニットから順番に、各管理用データＤ１０〜Ｄ３０を取得して、管理テーブルＴ１０を作成する。そして、接続の最終端に位置する記憶ユニットから各管理用データＤ１０〜Ｄ３０を取得した後（S41:NO）、ＣＰＵ３５は、管理テーブルＴ１０の内容をチェックする（Ｓ４６）。
【０１０６】
ＣＰＵ３５は、予め設定されている所定の規則に基づいて、管理テーブルＴ１０に記憶された内容をチェックし（Ｓ４６）、その内容が正しいか否かを判定する（Ｓ４７）。管理テーブルＴ１０の内容が正しいとは、その内容が所定の規則に違反していないことを意味する。管理テーブルＴ１０に記憶された内容が全て正しい場合（S47:YES）、本処理は終了する。これに対し、管理テーブルＴ１０に記憶された内容が一部でも誤っている場合（S47:NO）、ＣＰＵ３５は、エラー処理を実行する（Ｓ４８）。エラー処理では、例えば、管理テーブルＴ１０の作成に誤りがあった旨を、ユーザに通知する。そのエラー通知は、例えば、電子メール等を用いて行うことができる。
【０１０７】
図１７は、管理テーブルＴ１０の内容が正しいか否かを判定するための規則を示す説明図である。本実施例では、一つの高密度型記憶ユニット４０Ｄに属する各サブ記憶ユニット５０Ｌ，５０Ｒは連続するユニット番号を得る必要があり、かつ、左側のサブ記憶ユニット５０Ｌの方が、右側のサブ記憶ユニット５０Ｒよりも、接続する上での優先度が高くなっている。従って、最初にコントローラ３０に接続されるユニットが左側のサブ記憶ユニット５０Ｌの場合（ＳＴ１）、その次に接続されるべきユニットは、右側のサブ記憶ユニット５０Ｒでなければならず（ＳＴ２）、それ以外のユニットを接続するとエラーとして判定される。これにより、左側のサブ記憶ユニット５０Ｌのユニット番号は、右側のサブ記憶ユニット５０Ｒのユニット番号よりも１つだけ小さくなる。
【０１０８】
右側のサブ記憶ユニット５０Ｒを接続した後で、図１７中に白丸で示す、判断基準点に戻る（ＳＴ３）。判断基準点は、接続規則を説明するために使用される概念である。次に接続されるユニットが通常型記憶ユニット４０Ｎの場合（ＳＴ４）、それは許可され、再び判断基準点に戻る。
【０１０９】
このように、最初のユニットは通常型記憶ユニット４０Ｎまたは高密度型記憶ユニット４０Ｄのいずれでも良いが、高密度型記憶ユニット４０Ｄの場合は、左側のサブ記憶ユニット５０Ｌから先に接続する必要があり、かつ、各サブ記憶ユニット５０Ｌ，５０Ｒのユニット番号は連続している必要がある。
【０１１０】
図１７に示すように、所定の規則としては、第１に、高密度型記憶ユニット４０Ｄの場合は、各サブ記憶ユニット５０Ｌ，５０Ｒから製造番号Ｄ１０をそれぞれ取得できること（図２３，図２４で後述する）、第２に、ユニット番号が連続していること、第３に、同一の高密度型記憶ユニット４０Ｄ内の各サブ記憶ユニット５０Ｌ，５０Ｒのユニット番号は連続していること、第４に、左側のサブ記憶ユニット５０Ｌが最後尾の記憶ユニットではない場合において、左側のサブ記憶ユニット５０Ｌの次に、右側のサブ記憶ユニット５０Ｒが接続されること（高密度型記憶ユニット４０Ｄを接続する場合、まず最初に、左側のサブ記憶ユニット５０Ｌから接続すること）、を挙げることができる。
【０１１１】
図１８は、規則に違反する部分を含む管理テーブルＴ１０の例を示す。管理テーブルＴ１０の最終行に示すように、ユニット番号（＃５）のサブ記憶ユニットタイプには、右側のサブ記憶ユニット５０Ｒであることを示す「Ｒ」が格納されている。上述のように、高密度型記憶ユニット４０Ｄを接続する場合は、左側のサブ記憶ユニット５０Ｌから先に接続する必要があり、右側のサブ記憶ユニット５０Ｒを最初に接続してはならない、という規則が設定されている。従って、図１８に示す管理テーブルＴ１０の最終行は、エラーとなり、有効フラグの欄には「ＮＧ」が格納される。検出されたエラーは、ユーザに通知される。
【０１１２】
図１９は、別のエラーを含む管理テーブルＴ１０を示す説明図である。図２０は、図１９に示すエラー状態を模式的に示す説明図である。図１９，図２０に示す例では、ユニット番号（＃３）に示す左側のサブ記憶ユニット５０Ｌとユニット番号（＃５）に示す右側のサブ記憶ユニット５０Ｒとの間に、ユニット番号（＃４）に示す通常型記憶ユニット４０Ｎが割り込んでいる。従って、ユニット番号（＃４）の通常型記憶ユニット４０Ｎ及びユニット番号（＃５）の右側サブ記憶ユニット５０Ｒの、有効フラグには、それぞれ「ＮＧ」が設定される。
【０１１３】
同一筐体内の各サブ記憶ユニットが連続して接続されなかった場合に、図１９に示すエラーを生じる。もしも、そのエラーを許容する構成とした場合の不都合を説明する。保守交換や減設のために、その最後尾のサブ記憶ユニット（＃５）を記憶制御装置から取り外す場合、同一筐体内の他のサブ記憶ユニット（＃３）も記憶制御装置から取り外す必要がある。
【０１１４】
各記憶ユニットの接続構成の管理上、管理番号（管理番号は、筐体管理用データと区別用データ及びアドレスデータとセットで管理される）は、連続している必要がある。サブ記憶ユニット（＃３）及びサブ記憶ユニット（＃５）を取り外すと、記憶ユニット（＃２）の管理番号と記憶ユニット（＃４）の管理番号とが連続しなくなり、管理上の問題を生じる。従って、同一筐体内の各サブ記憶ユニットは、デイジーチェーン接続上、連続するように接続させる。
【０１１５】
図２１は、さらに別のエラー状態を示す説明図である。この例では、同一の高密度型記憶ユニット４０Ｄに属する各サブ記憶ユニット５０Ｌ，５０Ｒのユニット番号が連続しておらず、左側のサブ記憶ユニット５０Ｌ（ユニット番号＃０）と右側のサブ記憶ユニット５０Ｒ（ユニット番号＃４）との間に、ユニット番号＃１，＃２，＃３の各ユニットが存在する。図２１に示す例も、図１９，図２０に示す例と同様の理由で、エラーとなる。
【０１１６】
同一の高密度型記憶ユニット４０Ｄに属する各サブ記憶ユニット５０Ｌ，５０Ｒのユニット番号が連続しておらず、左側のサブ記憶ユニット５０Ｌと右側のサブ記憶ユニット５０Ｒとの間に別の記憶ユニットが割り込んでいる場合、保守等のために高密度型記憶ユニット４０Ｄを取り外すと、ユニット番号の連続性が失われる。ユニット番号が連続していない場合はエラーとなり、記憶制御装置１０を正常に起動させることができなくなる。
【０１１７】
例えば、図２０では、ユニット番号（＃３）の左側サブ記憶ユニット５０Ｌとユニット番号（＃５）の右側サブ記憶ユニット５０Ｒとは、同一のケース４１内に設けられているため、記憶制御装置１０から同時に取り外される。その場合、ユニット番号（＃４）、ユニット番号（＃６）、ユニット番号（＃７）は、ユニット番号が＃０から連続しなくなるため、エラー状態となる。
【０１１８】
図２１の例では、ユニット番号＃０とユニット番号＃４とを含む高密度型記憶ユニット４０Ｄを記憶制御装置１０から取り外すと、ユニット番号の連続性が失われて、＃１，＃２，＃３，＃５，＃６，＃７の各ユニットもエラーとなる。
【０１１９】
図２２は、サブ記憶ユニット５０から製造番号のみを取得できなかった場合を示す。図９で述べたように、複数のフラッシュメモリ５２３内に製造番号Ｄ１０，サブ記憶ユニットタイプＤ２０，ＳＡＳアドレスＤ３０をそれぞれ記憶させる構成の場合、製造番号Ｄ１０だけを読み出せないという事態を抑制できる。しかし、フラッシュメモリ５２３からの読み出しエラー等によって、製造番号だけを読み出せないことも考えられる。
【０１２０】
ＳＡＳアドレスによると、ユニット番号＃０とユニット番号＃１とは、高密度型記憶ユニット４０Ｄに属するユニットである。各サブ記憶ユニット５０には、高密度型記憶ユニット用として予め用意されているＳＡＳアドレスが設定されるため、ＳＡＳアドレスのみで高密度型記憶ユニット４０Ｄなのか通常型記憶ユニット４０Ｎなのかを判別することができる。但し、ＳＡＳアドレスは、各サブ記憶ユニット５０毎に設定される。従って、ＳＡＳアドレスのみでは、どのサブ記憶ユニットとどのサブ記憶ユニットとがペアを構成するのか判定できない。
【０１２１】
サブ記憶ユニットのペアを検出するためには、製造番号を取得する必要がある。従って、高密度型記憶ユニット４０Ｄに属するサブ記憶ユニット５０であると判定されるにもかかわらず、製造番号を取得できない場合は、有効フラグに「ＮＧ」が設定される。通常型記憶ユニット４０Ｎの場合は、製造番号が取得できなくても支障はない。通常型記憶ユニット４０Ｎは、全体として一つの記憶ユニットであり、製造番号を用いてペアを検出する必要がないためである。
【０１２２】
図２３，図２４は、図１６中のＳ１００の詳細を示すフローチャートである。図２３，図２４に示す処理では、主に製造番号Ｄ１０の読み出しについて説明する。エンクロージャ５２は、起動時に以下のステップを実行する。エンクロージャ５２は、変数ＦＭと変数ＮＲとに、それぞれ”０”を設定する（Ｓ１０１）。ＦＭは、フラッシュメモリ５２３を指定するためのフラッシュメモリ番号である。ＮＲは、製造番号を読み出すことのできた回数である。
【０１２３】
エンクロージャ５２は、最初のフラッシュメモリ５２３（ＦＭ＝＃０）から製造番号を読み出す（Ｓ１０２）。エンクロージャ５２は、製造番号を正常に読み出すことができたか否かを判定する（Ｓ１０３）。製造番号の読み出しに失敗した場合（S103:NO）、エンクロージャ５２は、製造番号の読み出しに再挑戦し（Ｓ１０４）、製造番号を正常に読み出すことができたか否かを再度判定する（Ｓ１０５）。
【０１２４】
２回目の製造番号の読み出しが成功した場合（S105:YES）、または、１回目の製造番号の読み出しが成功した場合（S103:YES）、エンクロージャ５２は、読み出した製造番号をメモリ５２２に記憶させる（Ｓ１０６）。エンクロージャ５２は、読み出し成功回数ＮＲを１つ増加させ（Ｓ１０７）、フラッシュメモリ番号ＦＭが最大値ＴｈＦＭを上回ったか否かを判定する（Ｓ１０８）。
【０１２５】
本実施例では、３個のフラッシュメモリ５２３のそれぞれに製造番号Ｄ１０等を記憶させている。従って、最大値ＴｈＦＭは”３”である。エンクロージャ５２は、３個のフラッシュメモリ５２３から製造番号を読み出すまで（S108:NO）、フラッシュメモリ番号ＦＭを切り替えながら（Ｓ１０９）、Ｓ１０２〜Ｓ１０８のステップを繰り返す。
【０１２６】
各フラッシュメモリ５２３からの製造番号の読み出し処理が終了すると（S108:YES）、図２４に示すように、エンクロージャ５２は、読み出し成功回数ＮＲの値が幾つであるかを判定する（Ｓ１１０）。
【０１２７】
どのフラッシュメモリ５２３からも製造番号を読み出すことができなかった場合（ＮＲ＝０）、エンクロージャ５２は、記憶ユニットの認識が不可能であると判定し、エラー処理を行う（Ｓ１１１）。
【０１２８】
一つのフラッシュメモリ５２３のみから製造番号を読み出すことができた場合（ＮＲ＝１）、エンクロージャ５２は、唯一読み出せた製造番号をメモリ５２２に記憶させる（Ｓ１１２）。
【０１２９】
２つのフラッシュメモリ５２３から製造番号を読み出せた場合（ＮＲ＝２）、エンクロージャ５２は、それら２個の製造番号が一致するか否かを判定する（Ｓ１１３）。両方の製造番号が一致する場合（S113:YES）、エンクロージャ５２は、その一致した製造番号をメモリ５２２に記憶させる（Ｓ１１２）。これに対し、両方の製造番号が不一致の場合（S113:NO）、いずれの製造番号が正しいのか判断し難いため、エンクロージャ５２は、エラー処理を行う（Ｓ１１４）。エラー処理では、製造番号を特定できなかった旨を、ホスト６０や電子メールを介して、ユーザに通知する。
【０１３０】
３個のフラッシュメモリ５２３の全てから製造番号を読み出すことができた場合（ＮＲ＝３）、エンクロージャ５２は、それら３つの製造番号のうち２つ以上一致する製造番号が有るか否かを判定する（Ｓ１１５）。
【０１３１】
３つの製造番号の中に、一致する製造番号が２つ以上有る場合（S115:YES）、エンクロージャ５２は、その一致する製造番号をメモリ５２２に記憶させる（Ｓ１１６）。３個の製造番号がそれぞれ異なる場合（S115:NO）、いずれが正しい製造番号であるかを判定できないため、エンクロージャ５２は、エラー処理を行う（Ｓ１１４）。
【０１３２】
エンクロージャ５２は、ＣＰＵ３５からの要求に応じて、メモリ５２２に記憶された製造番号等をＣＰＵ３５に転送する。
【０１３３】
図２５は、記憶制御装置１０に新たな記憶ユニットを増設する場合の処理を示すフローチャートである。増設時の処理は、図１６に示す起動時の処理と同様のステップを備えている。増設時の処理と起動時の処理との違いは、起動時の処理では最後に管理テーブルＴ１０をチェックするのに対し、増設時の処理では記憶ユニットを追加するたびに管理テーブルＴ１０をチェックする点である。
【０１３４】
ユーザは、ホスト６０の管理プログラム６１を用いて、記憶ユニット４０（４０Ｎまたは４０Ｄ）の追加を、記憶制御装置１０に通知する。コントローラ３０のＣＰＵ３５は、ユニット番号に”０”をセットし（Ｓ５０）、ホスト６０の管理プログラム６１から増設指示を受領したか否かを判定する（Ｓ５１）。
【０１３５】
増設指示を受領した場合（S51:YES）、ＣＰＵ３５は、次の記憶ユニットが存在するか否かを判定する（Ｓ５２）。次の記憶ユニットが無い場合（S52:NO）、本処理は正常に終了する。
【０１３６】
次の記憶ユニットが有る場合（S52:YES）、ＣＰＵ３５は、記憶ユニットから、製造番号Ｄ１０とサブ記憶ユニットタイプＤ２０及びＳＡＳアドレスＤ３０を取得し（Ｓ５３）、製造番号に基づいてサブ記憶ユニット５０のペアを検出し、検出されたペアにペア番号を設定する（Ｓ５４）。なお、ＣＰＵ３５は、ＳＡＳアドレス等からその記憶ユニットがサブ記憶ユニットであると認識した場合に、その記憶ユニットからサブ記憶ユニットタイプを取得する（Ｓ５３）。また、ＣＰＵ３５は、ＳＡＳアドレス等からその記憶ユニットがサブ記憶ユニットであると認識した場合に、サブ記憶ユニットのペアを検出してペア番号を設定する（Ｓ５４）。
【０１３７】
ＣＰＵ３５は、記憶ユニットから取得した製造番号等及びＳ５４で決定されたペア番号を管理テーブルＴ１０に記憶させ（Ｓ５５）、続いて、Ｓ５５で記憶された内容が所定の規則に照らして正しいか否かを判定する（Ｓ５６）。
【０１３８】
管理テーブルＴ１０の内容が正しい場合（S57:YES）、ＣＰＵ３５は、ユニット番号を１つ増加させて（Ｓ５８）、Ｓ５１に戻る。これにより、ＣＰＵ３５は、次の記憶ユニットから製造番号等を取得して管理テーブルＴ１０に記憶し（Ｓ５１〜Ｓ５５）、その記憶内容をチェックする（Ｓ５６）。
【０１３９】
管理テーブルＴ１０の内容が規則に違反している場合（S57:NO）、ＣＰＵ３５は、エラー処理を行う（Ｓ５９）。エラー処理では、管理テーブルＴ１０の内容が誤っている旨をユーザに通知する。
【０１４０】
このように、記憶ユニットを１台ずつ記憶制御装置１０に追加する増設処理では、記憶ユニットを追加するたびに、管理テーブルＴ１０の内容を検査する。従って、ユーザが記憶ユニットの接続順序を間違った場合に、直ちに、その誤りをユーザに通知することができ、使い勝手が向上する。
【０１４１】
なお、記憶制御装置１０に取り付けられている記憶ユニットを取り外す処理は、減設処理と呼ばれる。本実施例では、記憶制御装置１０への電力供給を停止させた状態で、所望の記憶ユニットをラック１１から取り外す。ユニット番号の連続性を維持するために、接続上の終端に位置する記憶ユニットから順番に取り外す。そして、記憶ユニットの取り外しが完了した後で、記憶制御装置１０に電力を供給して起動させる。これにより、図１６に示す起動時の処理が実行される。
【０１４２】
図２６は、記憶ユニットの位置を確認するための管理画面Ｇ１０を示す。管理画面Ｇ１０は、管理プログラム６１によって提供される。管理画面Ｇ１０には、例えば、ユニット番号欄Ｇ１１と、状態欄Ｇ１２と、指定欄Ｇ１３と、位置特定ボタンＢ１０と、キャンセルボタンＢ１１とが表示される。
【０１４３】
ユニット番号欄Ｇ１１には、記憶制御装置１０の有する各記憶ユニットの番号が表示される。上述のように、高密度型記憶ユニット４０Ｄの場合は、その内部に２つのサブ記憶ユニット５０Ｌ，５０Ｒを備えており、各サブ記憶ユニット５０Ｌ，５０Ｒ毎に、それぞれユニット番号が設定される。
【０１４４】
状態欄Ｇ１２には、各記憶ユニットの状態が表示される。状態としては、例えば、「正常」、「故障」を挙げることができる。故障状態の場合、どの箇所が故障したかを示す情報を含めることもできる。指定欄Ｇ１３は、記憶ユニットを一つまたは複数指定するための欄である。ユーザは、位置を確認したい記憶ユニットに対応する指定欄Ｇ１３を操作して、指定する。
【０１４５】
位置特定ボタンＢ１０は、記憶ユニットの位置を特定させるためのボタンである。キャンセルボタンＢ１１は、位置特定を取り消すためのボタンである。なお、図２６に示すようなグラフィカルユーザインターフェースに代えて、あるいは、グラフィカルユーザインターフェースと共に、音声認識等を使用するユーザインターフェースを採用することもできる。
【０１４６】
図２７は、記憶ユニットの搭載位置を特定するための処理を示す。管理プログラム６１は、ユーザの指示に応じて、図２６に示す管理画面Ｇ１０を表示させる（Ｓ６０）。管理プログラム６１は、ユーザによって位置特定ボタンＢ１０が操作されたか否かを判定する（Ｓ６１）。ユーザが位置特定ボタンＢ１０を操作した場合（S61:YES）、管理プログラム６１は、コントローラ３０に、記憶ユニットの位置の特定を要求する（Ｓ６２）。その位置特定要求には、例えば、指定された記憶ユニットのＳＡＳアドレスが含まれる。
【０１４７】
コントローラ３０のＣＰＵ３５は、管理プログラム６１からの位置特定要求を受信すると（Ｓ６３）、指定された記憶ユニットに、位置表示ランプ５７を点灯させるように指示する（Ｓ６４）。
【０１４８】
これにより、ユーザは、所望の記憶ユニットがラック１１のどこに搭載されているかを容易に確認することができる。例えば、減設や増設のために、接続上の終端に位置する記憶ユニットを確認する必要がある場合、終端の記憶ユニットの位置表示ランプ５７を点灯させることにより、ユーザは容易に確認できる。さらに、本実施例では、各サブ記憶ユニット５０Ｌ，５０Ｒにも、それぞれ個別に位置表示ランプ５７を設けているため、サブ記憶ユニット単位で搭載位置を確認することができる。
【０１４９】
このように構成される本実施例では、高密度型記憶ユニット４０Ｄ内に、それぞれ独立して動作する複数のサブ記憶ユニット５０Ｌ，５０Ｒを収容する。従って、記憶制御装置１０の設置体積を小さくできる。
【０１５０】
図２８は、本実施例の効果を示す説明図である。図２８では、例えば、１台のコントローラの有する合計４つの通信パス（ＳＡＳプロトコルチップ３２）を全て使用して、９６台のハードディスクドライブ５１を使用する場合を例に挙げる。４つの通信パスを全て使用するのは、アクセス性能を高めるためである。
【０１５１】
本実施例の高密度型記憶ユニット４０Ｄは、２つのサブ記憶ユニット５０Ｌ，５０Ｒを備えており、各サブ記憶ユニットはそれぞれ２４台のハードディスクドライブ５１を備えている。従って、９６台のハードディスクドライブ５１を使用するためには、図２８の上側に示すように、２台の高密度型記憶ユニット４０Ｄを用いればよい。仮に、高密度型記憶ユニット４０Ｄの高さ寸法を４Ｕとすると、２つの高密度型記憶ユニット４０Ｄをラック１１に収容する場合の合計高さ寸法は、８Ｕとなる。
【０１５２】
単純に、記憶ユニット内のドライブ数を４８台にする場合も考えられる。図２８の下側には、単純に容量が増大された記憶ユニットを使用する場合が示されている。図２８の下側に示す大容量型記憶ユニットは、従来技術として示されているのではなく、比較のために示されている。
【０１５３】
４８台のハードディスクドライブを収容している大容量型記憶ユニットを２台使用することにより、合計９６台のハードディスクドライブが使用可能となる。しかし、各大容量型記憶ユニットは、それ全体として一つの記憶ユニットであり、ドライブ数の大小を無視するならば、通常型記憶ユニット４０Ｎと変わりない。そのため、２台の大容量型記憶ユニットでは、４つの通信パスを有効に使用することができず、２つの通信パスのみが使用される。従って、アクセス性能が大幅に低下してしまう。
【０１５４】
そこで、アクセス性能の低下を防止すべく、図２８の下側では、ハードディスクドライブを４８台収容可能な大容量型記憶ユニットに、２４台のハードディスクドライブのみを搭載する。そして、最大搭載数の半分だけハードディスクドライブを収容した大容量型記憶ユニットを、４台用いることにより、１つのコントローラが有する４つの通信パスを全て使用する。
【０１５５】
ハードディスクドライブを最大搭載数の半分だけ搭載する記憶ユニットを、４台ラックに取り付ける場合、１台の記憶ユニットの高さ寸法が４Ｕならば、合計高さ寸法は１６Ｕとなる。
【０１５６】
以上のように、本実施例の高密度型記憶ユニット４０Ｄは、それぞれ独立して動作するサブ記憶ユニット５０Ｌ，５０Ｒを備えるため、記憶制御装置１０の設置サイズを小さくできると共に、記憶制御装置１０の記憶容量を大きくすることができ、運用コスト等を低減することができる。
【０１５７】
本実施例では、各サブ記憶ユニット５０Ｌ，５０Ｒに、製造番号Ｄ１０とサブ記憶ユニットタイプＤ２０及びＳＡＳアドレスＤ３０とを記憶させる。従って、同一の製造番号を応答するサブ記憶ユニットは、ペアであると判定することができる。どのサブ記憶ユニットとどのサブ記憶ユニットとがペアであるかを示す特別なデータを用いることなく、通常型記憶ユニット４０Ｎでも使用されている製造番号だけでペアを検出できる。
【０１５８】
本実施例では、製造番号Ｄ１０及びＳＡＳアドレスＤ３０は、高密度型記憶ユニット４０Ｄ用のデータまたは通常型記憶ユニット４０Ｎ用のデータの中から選択される。従って、コントローラ３０は、製造番号Ｄ１０またはＳＡＳアドレスＤ３０に基づいて、その記憶ユニットが高密度型記憶ユニット４０Ｄなのか通常型記憶ユニット４０Ｎなのかを容易に判別できる。
【０１５９】
本実施例では、記憶ユニットを増設するたびに管理テーブルＴ１０の内容をチェックし、エラーが検出された場合にはユーザに通知する。従って、ユーザは、記憶ユニットの接続上のミス等を速やかに知ることができ、使い勝手や保守性が向上する。
【０１６０】
本実施例では、製造番号Ｄ１０等を複数のフラッシュメモリ５２３内に記憶させる。従って、製造番号を全く読み出すことができないという、読み出しエラーの可能性を低減することができる。
【０１６１】
本実施例では、複数のフラッシュメモリ５２３から読み出された製造番号が全て一致しない場合でも、多数決に従って製造番号を決定する。このため、製造番号を決定できる機会が向上し、記憶制御装置１０の信頼性を高めることができる。
【０１６２】
本実施例では、各サブ記憶ユニット５０Ｌ，５０Ｒに対応するようにして、高密度型記憶ユニット４０Ｄに位置表示ランプ５７を設け、管理プログラム６１からの指示に基づいて位置表示ランプ５７を点灯させる。従って、ユーザは、所望のサブ記憶ユニットの位置を容易に確認することができ、使い勝手が向上する。
【０１６３】
なお、本発明は、上述した実施の形態に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。
【図面の簡単な説明】
【０１６４】
【図１】本発明の実施形態の概要を示す説明図である。
【図２】記憶制御装置を正面から見た正面図である。
【図３】記憶ユニットを拡大して示す斜視図である。
【図４】ハードディスクドライブを拡大して示す斜視図である。
【図５】記憶ユニットを背面から見た斜視図である。
【図６】記憶ユニット内のハードディスクドライブ及びエンクロージャの収容状態を示す説明図である。
【図７】記憶制御装置を含むシステムの構成を示すブロック図である。
【図８】記憶ユニットのブロック図である。
【図９】複数のフラッシュメモリ内に同一の管理用データが記憶されている様子を示す説明図である。
【図１０】管理用データとサブ記憶ユニットまたは記憶ユニットの関係を示す説明図である。
【図１１】記憶ユニットを管理するためのテーブルを示す説明図である。
【図１２】記憶ユニットの接続形態を示す説明図である。
【図１３】通常型の記憶ユニットと本発明の記憶ユニットとが混在して使用されている様子を示す説明図である。
【図１４】コントローラからハードディスクドライブにデータを書き込む処理を示すフローチャートである。
【図１５】コントローラがハードディスクドライブからデータを読み出す処理を示すフローチャートである。
【図１６】記憶制御装置の起動時に実行されるテーブル作成処理のフローチャートである。
【図１７】管理テーブルの内容の正否を判定するために使用される規則を示す説明図である。
【図１８】誤った内容を含む管理テーブルの説明図である。
【図１９】別の誤りを含む管理テーブルの説明図である。
【図２０】図１９の誤り内容を模式的に示す説明図である。
【図２１】別の接続上の誤りを模式的に示す説明図である。
【図２２】製造番号を取得できなかった場合の管理テーブルを示す説明図である。
【図２３】図１６中のＳ１００の詳細を示すフローチャートである。
【図２４】図２３に続くフローチャートである。
【図２５】記憶ユニットの増設時に実行されるテーブル作成処理のフローチャートである。
【図２６】記憶ユニットの位置を調べるための管理画面を示す説明図である。
【図２７】記憶ユニットの位置を調べるための処理を示すフローチャートである。
【図２８】本実施例の効果を説明するための図面である。
【符号の説明】
【０１６５】
１：記憶制御装置、２：制御装置、２Ａ：第１通信部、２Ｂ：第２通信部、２Ｃ：制御部、２Ｄ：記憶ユニット管理部、２Ｅ：管理テーブル、２Ｆ：記憶ユニット特定部、２Ｇ：テーブル作成部、２Ｈ：チェック部、３：記憶ユニット、３Ａ：ラック、３Ｂ：ケーブル、４：サブ記憶ユニット、５：ハードディスクドライブ、５Ａ：エクスパンダ、６：サブユニット内コントローラ、７：メモリ、Ｄ１：製造番号、Ｄ２：区分、Ｄ３：ＳＡＳアドレス、８：電源装置、９：表示部、１０：記憶制御装置、１１：ラック、２０：制御ユニット、２１：冷却ファン、２２：バッテリ装置、２３：メインスイッチ、３０：コントローラ、３１：ホスト用プロトコルチップ、３２：ＳＡＳプロトコルチップ、３３：データ転送制御回路、３４：キャッシュメモリ、３６：メモリ、３７：ブリッジ、４０：記憶ユニット、４０Ｄ：高密度型記憶ユニット、４０Ｎ：通常型記憶ユニット、４１：ケース、４２：レール、４３：前面、５０Ｌ：左側サブ記憶ユニット、５０Ｒ：右側サブ記憶ユニット、５１：ハードディスクドライブ、５２：エンクロージャ、５３：バックボード、５４Ａ：信号入力用ケーブルホルダ、５４Ｂ：信号出力用ケーブルホルダ、５５：電源装置、５６：電源ランプ、５７：位置表示ランプ、６０：ホストコンピュータ、６１：管理プログラム、７０： ケーブル、５１１：ドライブ本体、５１２：キャニスタ、５２０：エクスパンダ、５２１：サブユニット内コントローラ、５２２：メモリ、５２３：フラッシュメモリ、Ｄ１０：製造番号、Ｄ２０：サブ記憶ユニットタイプ、Ｄ３０：ＳＡＳアドレス、Ｔ１０：管理テーブル
【図１】
2010117850.tif 000003
【図２】
2010117850.tif 000004
【図３】
2010117850.tif 000005
【図４】
2010117850.tif 000006
【図５】
2010117850.tif 000007
【図６】
2010117850.tif 000008
【図７】
2010117850.tif 000009
【図８】
2010117850.tif 000010
【図９】
2010117850.tif 000011
【図１０】
2010117850.tif 000012
【図１１】
2010117850.tif 000013
【図１２】
2010117850.tif 000014
【図１３】
2010117850.tif 000015
【図１４】
2010117850.tif 000016
【図１５】
2010117850.tif 000017
【図１６】
2010117850.tif 000018
【図１７】
2010117850.tif 000019
【図１８】
2010117850.tif 000020
【図１９】
2010117850.tif 000021
【図２０】
2010117850.tif 000022
【図２１】
2010117850.tif 000023
【図２２】
2010117850.tif 000024
【図２３】
2010117850.tif 000025
【図２４】
2010117850.tif 000026
【図２５】
2010117850.tif 000027
【図２６】
2010117850.tif 000028
【図２７】
2010117850.tif 000029
【図２８】
2010117850.tif 000030