(57)【要約】【課題】  一つのプロトコルを使用する従来のコントローラは、異なる種類のコミュニケーションプロトコルを使用する複数の種類のディスクドライブを有するストレージシステムを管理できない。【解決手段】  どんな種類のディスクドライブがディスクコントローラに接続されているかを要求するユーザインタフェースプログラムから要求を受け取ると、ディスク管理プログラムは、どんな種類のディスクドライブがディスクコントローラに接続されているかを決定するために各ディスクコントローラとコミュニケーションを行い、結果をベースにディスクドライブに対して適切なプロトコルを選択し、選択されたプロトコルを使用してディスクドライブの詳細情報を回収するためにディスクコントローラに要求を送り、および管理コンソールのモニタ上の表示のためにディスクコントローラから受け取った詳細情報をユーザインタフェースプログラムに送り戻す。【選択図】図１
2006195975.tif 000002
【特許請求の範囲】
【請求項１】
ディスク管理プログラムをそこに保存しているメモリユニットと、
シリアルアタッチドスモールコンピュータシステムインタフェース（ＳＡＳ）ディスクドライブまたはシリアルアドバンスドテクノロジアタッチメント（ＳＡＴＡ）ディスクドライブのいずれかに接続されることができるＳＡＳポートをそれぞれが有する複数のディスクコントローラと、
ネットワークを経由して管理コンソールのユーザインタフェースプログラムとコミュニケーションを行うローカルエリアネットワーク（ＬＡＮ）ポートと
を備え、
前記のディスク管理プログラムが、どんな種類のディスクドライブが前記のディスクコントローラに接続されているかに関しての情報を要求する前記のユーザインタフェースプログラムから要求を受け取る時に、前記のディスク管理プログラムは、どんな種類のディスクドライブが前記のディスクコントローラに接続されているかを決定するために各ディスクコントローラとコミュニケーションを行い、どんな種類のディスクドライブが前記のディスクコントローラに接続されているかの指摘をベースに、前記のディスクドライブに対する適切なプロトコルを選択し、選択された前記のプロトコルを使用して、前記のディスクコントローラに接続されている前記のディスクドライブの詳細情報を回収するために前記のディスクコントローラに要求を送り、前記の管理コンソールのモニタ上の表示のために前記のユーザインタフェースプログラムに前記のディスクコントローラから受け取った前記の詳細情報を送り戻すことを特徴とする、ストレージシステム。
【請求項２】
前記のユーザインタフェースプログラムが前記のディスクコントローラに接続されている前記のディスクドライブの前記の詳細情報を前記のディスク管理プログラムから受け取る時に、前記のユーザインタフェースプログラムはユーザによる参照のために他のディスクコントローラに接続されている他のＳＡＳおよびＳＡＴＡディスクドライブに対して前記の管理コンソールの前記のモニタ上に別々にディスクドライブおよび／または統計値の前記の詳細情報を表示することを特徴とする、請求項１に記載のストレージシステム。
【請求項３】
前記のユーザインタフェースプログラムは、ユーザが前記のディスクドライブの前記の種類をベースに複数の種類のディスクドライブを前記の表示された詳細情報を使用して管理することを助けることを特徴とする、請求項１に記載のストレージシステム。
【請求項４】
前記の詳細情報は前記のメモリユニットに保存されているディスク管理テーブルから回収され、
前記のディスク管理テーブルは、各ディスクコントローラの識別（ＩＤ）番号、ディスクドライブが接続されている前記のディスクコントローラの中のポートのステータス、セクタサイズ、セクタの数、前記のディスクドライブのシリアル番号、およびデータが前記のディスクドライブから読み出されるかまたは前記のディスクドライブへ書き込まれるときに起きたかも知れないエラーの数をそれぞれが有する複数のエントリを含むことを特徴とする、請求項１に記載のストレージシステム。
【請求項５】
前記の管理コンソールは、前記のストレージシステムのＩＤ番号、前記のストレージシステムのインタネットプロトコル（ＩＰ）アドレス、前記のストレージシステムの前記のポートに接続されているディスクドライブの種類を示す情報、前記のストレージシステムの前記のポートに接続されている各種類のディスクドライブの数、各種類のディスクドライブの合計容量、および各種類のディスクドライブに対するエラーの数をそれぞれが有する複数のエントリを有するシステム管理テーブルを含むことを特徴とする、請求項１に記載のストレージシステム。
【請求項６】
前記のユーザインタフェースプログラムは、前記の要求を送る前に、前記のストレージシステムのＩＤ番号とＩＰアドレスを決定するために前記のシステム管理テーブルを参照し、前記の詳細情報を受け取ると、各ディスクコントローラに接続されているディスクドライブの種類に関する前記の詳細情報に含まれる情報を前記のシステム管理テーブルに保存することを特徴とする、請求項５に記載のストレージシステム。
【請求項７】
前記のユーザインタフェースプログラムは、前記のストレージシステムの前記のポートに接続されている各種類のディスクドライブの数、各種類のディスクドライブの合計容量、および各種類のディスクドライブに対するエラーの数を含む前記の詳細情報をベースに統計情報を計算して、前記の統計情報を前記のシステム管理テーブルに保存することを特徴とする、請求項６に記載のストレージシステム。
【請求項８】
各ディスクコントローラはＳＡＳディスクドライブまたはＳＡＴＡディスクドライブのいずれかに接続されることができるＳＡＳポートを含むことを特徴とする、請求項１に記載のストレージシステム。
【請求項９】
前記のＳＡＳポートはＳＡＴＡディスクドライブへの接続を可能にするＳＴＰ−ＳＡＴＡブリッジを含むことを特徴とする、請求項８に記載のストレージシステム。
【請求項１０】
前記のディスク管理プログラムは周期的に前記のディスク管理テーブルを更新することを特徴とする、請求項１に記載のストレージシステム。
【請求項１１】
前記のメモリユニットは、アクセスされるディスクボリュームのポートアドレス、アクセスされるディスクボリュームの論理ユニット番号、およびディスクコントローラの識別（ＩＤ）番号をそれぞれが有する複数のエントリを有するボリューム管理テーブルをそこに保存していることを特徴とする、請求項４に記載のストレージシステム。
【請求項１２】
前記のディスク管理プログラムが入力／出力（Ｉ／Ｏ）コマンドを受け取る時に、前記のディスク管理プログラムは、前記のＩ／Ｏコマンドの発行先となるターゲットのディスクドライブを前記のボリューム管理テーブルをベースに決定し、前記のターゲットのディスクドライブのステータスを決定するために前記のターゲットのディスクドライブの情報を使用し、もしもディスクドライブがディスクコントローラに接続されているならば前記のターゲットのディスクドライブに対応するフォーマットで前記のディスクコントローラを経由して前記のターゲットのディスクドライブに前記のＩ／Ｏコマンドを送ることを特徴とする、請求項１１に記載のストレージシステム。
【請求項１３】
ディスク管理プログラムをそこに保存しているメモリユニットと、
シリアルアタッチドスモールコンピュータシステムインタフェース（ＳＡＳ）ディスクドライブまたはシリアルアドバンスドテクノロジアタッチメント（ＳＡＴＡ）ディスクドライブのいずれかに接続されることができるＳＡＳポートをそれぞれが有する複数のディスクコントローラと、
それぞれが前記のディスクコントローラの一つのＳＡＳポートに接続され、複数のディスクドライブが一つのＳＡＳポートに接続されることを可能にする複数のエクスパンダと、
ネットワークを経由して管理コンソールの中のユーザインタフェースプログラムとコミュニケーションを行うローカルエリアネットワーク（ＬＡＮ）ポートと
を備え、
前記のディスク管理プログラムが、どんな種類のディスクドライブが前記のディスクコントローラに接続されているかに関しての情報を要求する前記のユーザインタフェースプログラムから要求を受け取る時に、前記のディスク管理プログラムは、どんな種類のディスクドライブが前記のディスクコントローラに接続されているかを決定するために各ディスクコントローラとコミュニケーションを行い、前記のディスクコントローラに接続されている前記のディスクドライブに対する適切なプロトコルを選択し、前記のディスクコントローラに接続されている前記のディスクドライブの詳細情報を回収するために前記の選択されたプロトコルを使用して前記のディスクコントローラに要求を送り、前記の管理コンソールのモニタ上の表示のために前記のディスクコントローラから受け取った前記の詳細情報を前記のユーザインタフェースプログラムに送り戻すことを特徴とする、ストレージシステム。
【請求項１４】
前記のユーザインタフェースプログラムが前記のディスクコントローラに接続されている前記のディスクドライブの前記の詳細情報を前記のディスク管理プログラムから受け取る時に、前記のユーザインタフェースプログラムはユーザによる参照のために他のディスクコントローラに接続されている他のＳＡＳおよびＳＡＴＡディスクドライブに対して前記の管理コンソールの前記のモニタ上に別々にディスクドライブおよび／または統計値の前記の詳細情報を表示することを特徴とする、請求項１３に記載のストレージシステム。
【請求項１５】
前記のユーザインタフェースプログラムは、ユーザが前記のディスクドライブの前記の種類をベースに複数の種類のディスクドライブを前記の表示された詳細情報を使用して管理することを助けることを特徴とする、請求項１３に記載のストレージシステム。
【請求項１６】
前記の詳細情報は前記のメモリユニットに保存されている第一のディスク管理テーブルおよび前記のディスクコントローラのそれぞれに保存されている第二のディスク管理テーブルから回収され、
前記の第一のディスク管理テーブルは、各ディスクコントローラの識別（ＩＤ）番号、エクスパンダのポート番号、ディスクドライブが接続されている前記のディスクコントローラの中のポートのステータス、セクタサイズ、セクタの数、前記のディスクドライブのシリアル番号、およびデータが前記のディスクドライブから読み出されるかまたは前記のディスクドライブへ書き込まれるときに起きたかも知れないエラーの数をそれぞれが有する複数のエントリを含み、
前記の第二のディスク管理テーブルは、エクスパンダのポート番号、ディスクドライブが接続されている前記のディスクコントローラの中のポートのステータス、セクタサイズ、セクタの数、前記のディスクドライブのシリアル番号、およびデータが前記のディスクドライブから読み出されるかまたは前記のディスクドライブへ書き込まれるときに起きたかも知れないエラーの数をそれぞれが有する複数のエントリを含むことを特徴とする、請求項１３に記載のストレージシステム。
【請求項１７】
前記の管理コンソールは、前記のストレージシステムのＩＤ番号、前記のストレージシステムのインタネットプロトコル（ＩＰ）アドレス、前記のストレージシステムの前記のポートに接続されているディスクドライブの種類を示す情報、前記のストレージシステムの前記のポートに接続されている各種類のディスクドライブの数、各種類のディスクドライブの合計容量、および各種類のディスクドライブに対するエラーの数をそれぞれが有する複数のエントリを有するシステム管理テーブルを含むことを特徴とする、請求項１３に記載のストレージシステム。
【請求項１８】
前記のユーザインタフェースプログラムは、前記の要求を送る前に、前記のストレージシステムのＩＤ番号とＩＰアドレスを決定するために前記のシステム管理テーブルを参照し、前記の詳細情報を受け取ると、各ディスクコントローラに接続されているディスクドライブの種類に関する前記の詳細情報に含まれる情報を前記のシステム管理テーブルに保存することを特徴とする、請求項１７に記載のストレージシステム。
【請求項１９】
前記のユーザインタフェースプログラムは、前記のストレージシステムの前記のポートに接続されている各種類のディスクドライブの数、各種類のディスクドライブの合計容量、および各種類のディスクドライブに対するエラーの数を含む前記の詳細情報をベースに統計情報を計算して、前記の統計情報を前記のシステム管理テーブルに保存することを特徴とする、請求項１８に記載のストレージシステム。
【請求項２０】
各ディスクコントローラはＳＡＳディスクドライブまたはＳＡＴＡディスクドライブのいずれかに接続されることができるＳＡＳポートを含むことを特徴とする、請求項１３に記載のストレージシステム。
【請求項２１】
前記のＳＡＳポートはＳＡＴＡディスクドライブへの接続を可能にするＳＴＰ−ＳＡＴＡブリッジを含むことを特徴とする、請求項２０に記載のストレージシステム。
【請求項２２】
前記のディスク管理プログラムは周期的に前記の第二のディスク管理テーブルを更新し、前記の第一のディスク管理テーブルを更新するために更新された前記の第二のディスク管理テーブルを使用することを特徴とする、請求項１６に記載のストレージシステム。
【請求項２３】
前記のメモリユニットは、アクセスされるディスクボリュームのポートアドレス、アクセスされるディスクボリュームの論理ユニット番号、前記のディスクボリュームを形成するディスクドライブの数とディスクコントローラの識別（ＩＤ）番号、および前記のディスクドライブが接続される前記のエクスパンダのポート番号をそれぞれが有する複数のエントリを有するボリューム管理テーブルをそこに保存していることを特徴とする、請求項１６に記載のストレージシステム。
【請求項２４】
前記のディスク管理プログラムが入力／出力（Ｉ／Ｏ）コマンドを受け取る時に、前記のディスク管理プログラムは、前記のＩ／Ｏコマンドの発行先となるターゲットのディスクドライブを前記のボリューム管理テーブルをベースに決定し、前記のターゲットのディスクドライブのステータスを決定するために前記のターゲットのディスクドライブの情報を使用し、もしもディスクドライブがディスクコントローラに接続されているならば前記のターゲットのディスクドライブに対応するフォーマットで前記のディスクコントローラを経由して前記のターゲットのディスクドライブに前記のＩ／Ｏコマンドを送ることを特徴とする、請求項２３に記載のストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般的にコンピュータストレージシステムを管理することに関する。より具体的には、本発明は、同じコネクタに接続されて異なるコミュニケーションプロトコルを使用することが可能な複数の異なった種類のディスクドライブを有するコンピュータストレージシステムを管理するための方法、装置およびコンピュータプログラムに関する。
【背景技術】
【０００２】
近年、コンピュータストレージシステムのいくつかの新しいコミュニケーションプロトコルが開発されて産業標準として設定された。例えば、シリアルアドバンスドテクノロジアタッチメント（ＳＡＴＡ）は高度にスケーラブルなアーキテクチャを安価な大容量ディスクドライブに提供するために開発された。他の例では、シリアルアタッチドスモールコンピュータシステムインタフェース（ＳＡＳ）は高性能で高信頼度のスモールコンピュータシステムインタフェース（ＳＣＳＩ）装置にシリアルポイントツーポイントインタフェースとデータルーチング機能を提供するために開発された。
【０００３】
ＳＡＳは、従来のＳＣＳＩと比較して、例えば、ＳＡＴＡドライブがＳＡＳコネクタに直接接続されることを可能にする物理的設計およびプロトコルの仕様を含む多くの改良を有する。この仕様は、ディスクドライブが接続されているコネクタが、どんな種類のディスクドライブが接続されているかを認識する方法を定義する。ひとたび接続されているディスクドライブが認識されると、アプリケーションプログラムは特定のプロトコルに従ってディスクドライブから／へデータを読み出し／書き込みすることができる。ＳＡＳドライブとＳＡＴＡドライブを一つのコンピュータストレージシステムに一緒に設置することによって、システムは状況に必要とされるのに応じて安価な大容量ディスクドライブと同じく高信頼度で高速なドライブも提供することができる。さらに、ＳＡＳコネクタはＳＡＳまたはＳＡＴＡディスクドライブに使用できるので、ＳＡＳとＳＡＴＡディスクドライブの数は柔軟に変更できる。ＳＡＳアーキテクチャを用いるコンピュータストレージシステムを使用して（これはＳＡＳコネクタに接続されるＳＡＳとＳＡＴＡディスクドライブを含むコンピュータストレージシステムであるが）、ユーザは必要な性能および／または可用性に応じてデータを保存するための適切なストレージ領域を選択することができる。
【０００４】
米国規格協会（ＡＮＳＩ）“Ｐｒｏｊｅｃｔ  Ｔ１０／１６０１−Ｄ：Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳＩ−１．１（ＳＡＳ−１．１）（Ｗｏｒｋｉｎｇ  Ｄｒａｆｔ）”、Ｒｅｖ．５、ｐｐ２５−４２、２６  Ｊｕｌｙ  ２００４は、ＳＡＳディスクドライブの一般的なアーキテクチャを開示している。
【０００５】
ＡＮＳＩ、“Ｔ１３  Ｐｒｏｊｅｃｔ  １５３２Ｄ：ＡＴ  Ａｔｔａｃｈｍｅｎｔ  ｗｉｔｈ  Ｐａｃｋｅｔ  Ｉｎｔｅｒｆａｃｅ−７  Ｖｏｌ．１−Ｒｅｇｉｓｔｅｒ  Ｄｅｌｉｖｅｒｅｄ  Ｃｏｍｍａｎｄ  Ｓｅｔ、Ｌｏｇｉｃａｌ  Ｒｅｇｉｓｔｅｒ  Ｓｅｔ（ＡＴＡ／ＡＴＡＰＩ−７Ｖ１）（Ｗｏｒｋｉｎｇ  Ｄｒａｆｔ）”、Ｒｅｖ．４ｂ、２１  Ａｐｒｉｌ  ２００４、およびＡＰＴ  Ｔｅｃｈｎｏｌｏｇｉｅｓ社、Ｄｅｌｌ  Ｃｏｍｐｕｔｅｒ社、Ｉｎｔｅｌ社、Ｍａｘｔｏｒ社、Ｓｅａｇａｔｅ  Ｔｅｃｈｎｏｌｏｇｙ社、“Ｓｅｒｉａｌ  ＡＴＡ：Ｈｉｇｈ  Ｓｐｅｅｄ  Ｓｅｒｉａｌｉｚｅｄ  ＡＴ  Ａｔｔａｃｈｍｅｎｔ”、Ｒｅｖ．１．０ａ、７  Ｊａｎｕａｒｙ  ２００３は、ＡＴＡディスクドライブの一般的なアーキテクチャを開示している。
【０００６】
【非特許文献１】米国規格協会（ＡＮＳＩ）“Ｐｒｏｊｅｃｔ  Ｔ１０／１６０１−Ｄ：Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳＩ−１．１（ＳＡＳ−１．１）（Ｗｏｒｋｉｎｇ  Ｄｒａｆｔ）”、Ｒｅｖ．５、ｐｐ２５−４２、２６  Ｊｕｌｙ  ２００４
【非特許文献２】ＡＮＳＩ、“Ｔ１３  Ｐｒｏｊｅｃｔ  １５３２Ｄ：ＡＴ  Ａｔｔａｃｈｍｅｎｔ  ｗｉｔｈ  Ｐａｃｋｅｔ  Ｉｎｔｅｒｆａｃｅ−７  Ｖｏｌ．１−Ｒｅｇｉｓｔｅｒ  Ｄｅｌｉｖｅｒｅｄ  Ｃｏｍｍａｎｄ  Ｓｅｔ、Ｌｏｇｉｃａｌ  Ｒｅｇｉｓｔｅｒ  Ｓｅｔ（ＡＴＡ／ＡＴＡＰＩ−７Ｖ１）（Ｗｏｒｋｉｎｇ  Ｄｒａｆｔ）”、Ｒｅｖ．４ｂ、２１  Ａｐｒｉｌ  ２００４
【非特許文献３】ＡＰＴ  Ｔｅｃｈｎｏｌｏｇｉｅｓ社、Ｄｅｌｌ  Ｃｏｍｐｕｔｅｒ社、Ｉｎｔｅｌ社、Ｍａｘｔｏｒ社、Ｓｅａｇａｔｅ  Ｔｅｃｈｎｏｌｏｇｙ社、“Ｓｅｒｉａｌ  ＡＴＡ：Ｈｉｇｈ  Ｓｐｅｅｄ  Ｓｅｒｉａｌｉｚｅｄ  ＡＴ  Ａｔｔａｃｈｍｅｎｔ”、Ｒｅｖ．１．０ａ、７  Ｊａｎｕａｒｙ  ２００３
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ストレージシステムを管理し、保持し、およびうまく利用するために、管理者は種類（ＳＡＳ、ＳＡＴＡ等）、ベンダ、シリアル番号、容量、接続ポート等のディスクドライブの情報を含むシステムの構成を理解する必要がある。さらに、もしもストレージシステムがＳＡＳとＳＡＴＡ両方のディスクドライブを有するならば、ユーザがＳＡＳとＳＡＴＡディスクドライブに対して別々に統計数値（合計および使用済容量、エラーの数、性能値等）を計算できることは便利である。一般的に、ディスクドライブの情報は、そのディスクドライブが使用するコミュニケーションプロトコルに特定な方法でコントローラからディスクドライブにコマンドを送り、応答を受け取ることによって、回収される。例えば、ＳＡＳディスクドライブの情報は、ＳＣＳＩプロトコルで定義されるＩＮＱＵＩＲＹとＲＥＡＤ  ＣＡＰＡＣＩＴＹコマンドを送ることによって回収される。一方で、ＳＡＴＡディスクドライブの情報は、ＡＴＡプロトコルで定義されるＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥコマンドを送ることによって回収される。従って、一つのプロトコルを使用してディスクドライブとコミュニケーションを行う従来のコントローラは異なる種類のコミュニケーションプロトコルを使用する複数の種類のディスクドライブを有するストレージシステムを管理できない。
【課題を解決するための手段】
【０００８】
本発明は、同じコネクタに接続して異なったコミュニケーションプロトコルを使用することのできる複数の異なる種類のディスクドライブを有するストレージシステムを管理するための方法、装置およびコンピュータプログラムを提供する。
【０００９】
本発明によるストレージシステムは、中央処理装置（ＣＰＵ）とディスク管理プログラムをそこに保存したメモリユニットを有するシステムコントローラ、ＳＡＳまたはＳＡＴＡディスクドライブが接続できるＳＡＳポートをそれぞれが有する複数のディスクコントローラ、およびネットワークを経由して管理コンソールの中のユーザインタフェースプログラムとコミュニケーションを行うローカルエリアネットワーク（ＬＡＮ）を含む。ディスク管理プログラムが、どんな種類のディスクドライブがディスクコントローラに接続されているかについての情報を要求するユーザインタフェースプログラムから要求を受け取るときに、ディスク管理プログラムは、どんな種類のディスクドライブがディスクコントローラに接続されているかを決定するために、各ディスクコントローラとコミュニケーションを行い、ディスクコントローラに接続されているディスクドライブに対して適切なプロトコルを選択し、選択されたプロトコルを使用してディスクコントローラに接続されているディスクドライブの詳細な情報を回収するためにディスクコントローラに要求を送り、ディスクコントローラから回収した情報をユーザインタフェースプログラムに送り戻す。
【００１０】
ユーザインタフェースプログラムがディスクコントローラに接続されているディスクドライブの情報をディスク管理プログラムから受け取るときに、ユーザインタフェースプログラムは、他のディスクコントローラに接続されている他のＳＡＳとＳＡＴＡディスクドライブに対して別々にディスクドライブおよび／または統計値の情報を管理コンソールのモニタ上にユーザの参照のために表示する。ユーザインタフェースプログラムは、ユーザが表示された情報を使用してディスクドライブの種類をベースに適切に複数の種類のディスクドライブを管理することを助ける。
【発明の効果】
【００１１】
本発明は、同じコネクタに接続して異なったコミュニケーションプロトコルを使用することのできる複数の異なる種類のディスクドライブを有するストレージシステムを管理するための方法、装置およびコンピュータプログラムを提供する。
【発明を実施するための最良の形態】
【００１２】
すべてが本発明の開示内容の一部分を形成する添付の図面に関連して読むときに、前述の内容と本発明のより良い理解は実施例の後述の詳細な記述と請求項から明白になるであろう。前述のおよび後述の記述されたおよび図示された開示内容は本発明の実施例を開示することに集中しているが、これは図示と例示だけのためであり、本発明は後述の図面の簡単な説明に限定されるものではないことを明確に理解されるべきである。
【００１３】
以下においてより詳細に記述される本発明は、装置、方法、およびコンピュータプログラム、具体的には、例えば、同じコネクタに接続されて異なるコミュニケーションプロトコルを使用することのできる複数の異なる種類のディスクドライブを有するストレージシステムを管理するための方法、装置、およびコンピュータプログラムを提供する。本発明は以下に述べられる第一および第二の実施例を含むいろいろな実施例を提供する。しかし本発明はここで述べられる実施例に限定されることはなく、この技術に精通した人達に知られているまたは知られることになるだろう他の実施例に拡張することができることを注意すべきである。
【００１４】
１．第一の実施例
第一の実施例において、ストレージシステムの中のＳＡＳとＳＡＴＡ両方のディスクドライブの情報は回収されて管理コンソールのＧＵＩの上に表示される。ストレージシステムの中の構成情報を頻繁に更新する方法も述べられる。ホストコンピュータは、ディスクドライブと論理ブロックアドレス（ＬＢＡ）を特定することによって、ホストコンピュータに対してＳＣＳＩのＬＵ（論理ユニット）として提供されるＳＡＳとＳＡＴＡディスクドライブの中のデータを読み出しおよび書き込みをする。
【００１５】
Ａ．  システムアーキテクチャ
図１は本発明の方法と装置が適用されるコンピュータストレージシステムと管理コンソールを示す。
【００１６】
ストレージシステム１１０００は中央処理装置（ＣＰＵ）１１００４、一つ以上のファイバチャネル（ＦＣ）ポート１１００１と１１００２、ローカルエリアネットワーク（ＬＡＮ）ポート１１００３、メモリ１１００５、一つ以上のディスクコントローラ１１００８と１１００９、および一つ以上のディスクドライブ１１０１２と１１０１３を含む。ストレージシステム１１０００はＦＣポート１１００１と１１００２およびＦＣネットワーク１０００２と１０００３を経由してホストコンピュータ１００００と１０００１に接続される。ストレージシステムはまたＬＡＮポート１１００３とＬＡＮケーブル１０００４を経由して管理コンソール１２０００に接続される。ＦＣネットワークはＦＣケーブルに加えてＦＣスイッチを含む場合がある。
【００１７】
メモリ１１００５は、管理コンソールとコミュニケーションを行いストレージシステムを制御するディスク管理プログラム１１００６、ストレージシステムの中の全てのディスクドライブの情報を有するディスク管理テーブル１１００７、およびディスクドライブとＦＣポートアドレスと論理ユニット番号（ＬＵＮ）の間のマッピング情報を有するボリューム管理テーブル１１０１４を含む。
【００１８】
図２は複数のエントリすなわち行を有するディスク管理テーブル１１００７の構造を示す。ディスク管理テーブル１１００７の中の各行はストレージシステムの中の各ディスクドライブの情報を含む。ディスク管理テーブル１１００７の列２０００１、２０００２、２０００３、２０００４、２０００５、および２０００６はそれぞれストレージシステムの中の各ディスクコントローラの認識（ＩＤ）番号、ディスクドライブが接続されているディスクコントローラの中のポートのステータス、セクタサイズ、セクタの数、ディスクドライブのシリアル番号、およびデータがディスクドライブから読み出されるまたはディスクドライブへ書き込まれるときに発生したかも知れないエラーの数を含む。
【００１９】
ポートステータス２０００２は、ポートに接続されているドライブの種類、例えば、ＳＡＳドライブが接続されていることを示すＳＡＳ、ＳＡＴＡドライブが接続されていることを示すＳＡＴＡ、またはどんなドライブもディスクコントローラのポートに接続されていないことを示すＮＯＮＥを示す。列２０００１のＩＤはストレージシステムの構造に従って事前に定義される。列２０００６の情報は、ディスクドライブへの入力／出力（Ｉ／Ｏ）要求が失敗したときに、ディスク管理プログラム１１００６によって記録され更新される。列２０００３から２０００５の他の値は以下に記述される方法でディスク管理プログラムによって記録される。
【００２０】
図２１は複数のエントリすなわち行を有するボリューム管理テーブル１１０１４の構造を示す。ボリューム管理テーブル１１０１４の各行はＦＣポートアドレスとＬＵＮの間のマッピング情報、およびポートアドレスとＬＵＮが割り当てられるディスクドライブを制御するディスクコントローラの番号を含む。列１７０００１、１７０００２、および１７０００３はＦＣポートアドレス、ＬＵＮおよびディスクコントローラのＩＤ番号をそれぞれ含む。このマッピング情報はホストコンピュータがＦＣポートアドレスとＬＵＮを特定することによってディスクドライブを認識することを可能にする。
【００２１】
ディスクコントローラ１１００８と１１００９はディスク管理プログラム１１００６から要求を受け取りディスクドライブ１１０１２と１１０１３をそれぞれ制御する。ＳＡＳディスクドライブ１１０１２はディスクコントローラ１１００８のＳＡＳポート１１０１０に接続され、ＳＡＴＡディスクドライブ１１０１３はディスクコントローラ１１００９のＳＡＳポート１１０１１に接続される。ディスクコントローラ１１００８と１１００９のそれぞれはそれ自身のプロセッサとメモリを有するマイクロコンピュータとして実現できる。
【００２２】
図４はディスクコントローラ１１００８と１１００９の機能的な図を示す。インタフェース機能４０００１はストレージシステム１１０００の他のモジュール（ＣＰＵ、メモリ等）とコミュニケーションを行ってディスク管理プログラム１１００６から要求を受け取り、要求を処理し、ディスク管理プログラム１１００６に情報を送る。ＳＡＳポート１１０１０、１１０１１は３種類のＳＡＳプロトコル、すなわちシリアルＳＣＳＩプロトコル（ＳＳＰ）、シリアル管理プロトコル（ＳＭＰ）、およびシリアルＡＴＡトンネルプロトコル（ＳＴＰ）のイニシエータ機能４０００３−４０００５を有してＳＡＳとＳＡＴＡ両方のドライブとコミュニケーションを行う。ディスクコントローラ１１００８、１１００９もＳＴＰ−ＳＡＴＡブリッジ機能４０００６を有してＳＡＳポートに接続したＳＡＴＡドライブと直接コミュニケーションを行う。
【００２３】
ＳＡＳポート管理機能４０００２は、ＤＩＳＣＯＶＥＲとＲＥＰＯＲＴ  ＧＥＮＥＲＡＬ要求をＳＡＳポート１１０１０、１１０１１に送り接続したドライブがＳＡＳディスクドライブかＳＡＴＡディスクドライブかを決定するディスカバ処理のような、ＳＡＳ装置を動作させるために必要な管理機能を実行する。ディスクコントローラ１１００８、１１００９によって実行される機能４０００２−４０００６はＳＡＳとＳＡＴＡの仕様をベースにしており、詳細な実施内容は本発明の範囲を越えており、ここでは議論されない。しかし、このような詳細な実施内容はこの技術に通常程度に精通した人達には知られていることを注意するべきである。インタフェース４０００１はディスク管理プログラム１１００６によって使用されるアプリケーションプログラムインタフェース（ＡＰＩ）として実施されることができ、情報をアクセスし機能４０００２−４０００５を実行する。
【００２４】
管理コンソール１２０００において、メモリ１２００５はストレージシステム１１０００を制御するためのユーザインタフェースを提供するユーザインタフェースプログラム１２００６、およびシステム管理テーブル１２００７を有する。管理コンソール１２０００はキーボード、マウス、およびディスプレイのような一般的な周辺装置である入力装置１２００３と出力装置１２００４を含む。ユーザはこれらの装置を使用してユーザインタフェースプログラム１２００６と対話する。システム管理テーブル１２００７はストレージシステム１１０００の構成情報を有し、これはユーザインタフェースプログラム１２００６によって更新される。
【００２５】
図３は複数のストレージシステムに対応する複数のエントリすなわち行を有するシステム管理テーブル１２００７の構造を示す。しかし図１は単一のストレージシステム１１０００を示していることに注意すべきである。本発明は複数のストレージシステムを含んで実施できる。従って、図１は複数のストレージシステムが提供されている実施例の代表として考えるべきである。
【００２６】
システム管理テーブル１２００７の各行は、ユーザインタフェースプログラム１２００６によって管理されるストレージシステム１１０００または複数のストレージシステム（図示されていない）の予め定義されたＩＤ番号（列３０００１）とＩＰアドレス（列３０００２）を有する。各ストレージシステム１１０００に対して、各行は各ストレージシステム１１０００に関して、ストレージシステムのポートに接続されたディスクドライブの種類（列３０００３）、ディスクドライブの数（列３０００４）、合計容量（列３０００５）、およびディスクドライブの種類ごとのエラーの数（列３０００６）のような統計情報を有する。列３０００３に‘ＮＯＮＥ’を有する行において、列３０００４は空のＳＡＳポートの数を有し、列３０００５と３０００６は有効な情報を有しない。ストレージシステムのＩＰアドレスはユーザによって特定され、システム管理テーブル１２００７の列３０００２に保存される。他の情報はディスク管理プログラム１１００６とコミュニケーションを行うユーザインタフェースプログラム１２００６によってストレージシステム１１０００から取得される。
【００２７】
Ｂ．  ディスクドライブ情報を取得する方法
図５、８、９、および１０はそれぞれユーザインタフェースプログラム１２００６とディスク管理プログラム１１００６の実行の結果として実行されるいろいろな処理を示す。図５、８、９、および１０のそれぞれに示されたフローチャートは、例えば、ハードウェアおよび／またはソフトウェアによって実施されることができる。もしもソフトウェアによって実施されるならば、フローチャートのステップのそれぞれは、例えば、プロセッサによって実行されるコンピュータプログラムコードまたは命令に対応することができる。
【００２８】
図５に示されるように、処理のフローチャートは以下のように進む。最初に、ユーザインタフェースプログラムは入力装置を経由してユーザからストレージシステムの構成情報を得るための要求を受け取る（ステップ５００００）。ユーザインタフェースプログラムはシステム管理テーブル１２００７の中の特定のストレージシステムのＩＰアドレスを調べる（ステップ５０００１）。ユーザインタフェースプログラムはストレージシステムの構成情報を得るための要求をＩＰアドレスを使用してディスク管理プログラム１１００６に送り（ステップ５０００２）、ディスク管理プログラム１１００６からの応答を待つ（ステップ５０００３）。
【００２９】
図９に示されるように、処理のフローは以下のように進む。ディスク管理プログラム１１００６がユーザインタフェースプログラムから要求を受け取るときに（図９のステップ９０００１）、ディスク管理プログラム１１００６はディスク管理テーブルに保存されている情報を更新し（ステップ９０００２）、次にＬＡＮポート１１００３を経由してユーザインタフェースプログラム１２００６に情報を送り戻す（ステップ９０００３）。
【００３０】
図１０に示されるように、処理のフローチャートは以下のように進む。図１０は図９のステップ９０００２によってディスク管理テーブル１１００７を更新する処理の詳細を表わす。図１０において、最初に、ディスク管理プログラムはディスク管理テーブル１１００７から一つのディスクコントローラを選択する。もしも全てのディスクコントローラがドライブ情報を得るために処理されていると、処理は完了する（ステップ１００００１）。もしも全てのディスクコントローラが処理されているのではないならば、ディスク管理プログラム１１００６はディスクコントローラに接続されているディスクドライブの情報を得るために未処理のディスクコントローラを選択する（ステップ１００００２）。ディスク管理プログラム１１００６は次にディスクコントローラからＳＡＳポートのステータス情報を得て、それをディスク管理テーブルに保存する（ステップ１００００３）。
【００３１】
ステータス情報はＳＡＳポート１１０１０、１１０１１において生成されて、ディスクコントローラ１１００８、１１００９のＳＡＳポート管理機能４０００２によってディスク管理プログラム１１００６に対して提供される。もしもステータスが‘ＮＯＮＥ’であると、これはディスクドライブがディスクコントローラ１１００８、１１００９に接続されていないことを意味するが、ディスク管理プログラム１１００６は他のディスクコントローラ１１００８、１１００９を選択する（ステップ１００００４）。もしもステータスが‘ＳＡＳ’であると（ステップ１００００５）、ディスク管理プログラム１１００６はＳＡＳドライブ情報を得るための要求をディスクコントローラ１１００８、１１００９に送り、ディスク管理テーブル１１００７に情報を保存する（ステップ１００００６）。
【００３２】
さもなければ、ＳＡＴＡドライブ情報を得るための要求を送り、ディスク管理テーブル１１００７にそれを保存する（ステップ１００００７）。もしもディスクコントローラ１１００８、１１００９がＳＡＳドライブの情報を得るための要求を受け取ると、ＩＮＱＵＩＲＹとＲＥＡＤ  ＣＡＰＡＣＩＴＹのようなＳＣＳＩコマンドをディスクドライブに送る。一方で、もしもＳＡＴＡドライブの情報を得るための要求を受け取ると、ＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥのようなＡＴＡコマンドをディスクドライブに送る。上記に述べられた処理は各ディスクコントローラに対して繰り返される。
【００３３】
図５において、ユーザインタフェースプログラム１２００６がディスク管理プログラム１１００６からディスク管理テーブル１１００７を受け取るとき、プログラムはディスク管理テーブル１１００７をメモリ１２００５に保存する（ステップ５０００３）。ユーザインタフェースプログラム１２００６は次にディスクドライブの使用度、エラーの数等の統計値を計算する（ステップ５０００４）。ステップ５０００４の詳細は図８に示される。
【００３４】
図８は統計情報を計算する処理フローを示す。最初に、ユーザインタフェースプログラム１２００６はシステム管理テーブル１２００７の列３０００４、３０００５、および３０００６にゼロを保存する（ステップ８０００１）。ユーザインタフェースプログラム１２００６はメモリ１２００５に保存されているディスク管理テーブル１１００７の中の一つの行を選択する。もしもユーザインタフェースプログラム１２００６が全ての行の処理を完了していると、処理は終了する（ステップ８０００２）。そうでないと、ユーザインタフェースプログラム１２００６は一つの未処理行を選択する（ステップ８０００３）。
【００３５】
もしも選択された行がディスク管理テーブル１１００７の列２０００２に‘ＮＯＮＥ’を有するならば、ユーザインタフェースプログラム１２００６は列３０００３に‘ＮＯＮＥ’を有する行においてシステム管理テーブル１２００７の列３０００４の値を増やす（ステップ８０００４と８０００５）。もしもディスク管理テーブル１１００７の列２０００２が‘ＳＡＳ’を有するならば（ステップ８０００６）、ユーザインタフェースプログラム１２００６は列３０００３に‘ＳＡＳ’を有する行においてシステム管理テーブル１２００７の列３０００４の値を増やし（ステップ８０００７）、列２０００３と２０００４の値を掛けることによって生成されるドライブ容量を列３０００５の合計容量に加算し（ステップ８０００８）、列２０００６のエラーの数を列３０００６に加算する（ステップ８０００９）。
【００３６】
もしもディスク管理テーブル１１００７の列２０００２が‘ＳＡＴＡ’を有するならば、ユーザインタフェースプログラム１２００６は‘ＳＡＴＡ’を有する行に同じ処理を行う（ステップ８００１０−８００１２）。上記に述べられた処理はディスク管理テーブル１１００７の各行に対して繰り返される。
【００３７】
最後に、図５を続けて、ユーザインタフェースプログラム１２００６は出力装置１２００４の上に構成と統計情報を表示する（ステップ５０００５）。
【００３８】
図６はユーザインタフェースプログラム１２００６によって表示されるＧＵＩの例を示す。ここで６０００１は管理コンソール１２０００の出力装置１２００４のモニタスクリーンにおけるウインドウまたはウインドウの一部分である。ペイン（ｐａｎｅ）６０００２は、システム管理テーブル１２００７の列３０００５に保存されているＳＡＳとＳＡＴＡディスクドライブの容量、およびこれらの容量の合計を表示する。ペイン（ｐａｎｅ）６０００３はディスク管理テーブル１１００７の列２０００２に保存されるディスクドライブのポートステータスを表示する。
【００３９】
ディスクドライブのステータス（‘ＳＡＳ’、‘ＳＡＴＡ’、および‘ＮＯＮＥ’）は黒色、斜線、および白色のボックスでそれぞれ表示される。これらのボックスはストレージシステム１１０００のシャーシの中のディスクドライブの位置に合わせて配置される。ペイン（ｐａｎｅ）のビットマップのイメージを作成する方法は本発明の範囲外であるが、しかし、この技術に通常程度に精通する人達にはよく知られている。
【００４０】
本発明のこの実施例において、各ディスクドライブの詳細情報は管理コンソール１２０００の入力装置１２００３でボックスを特定することによって表示される。例えば、ユーザはディスクドライブの詳細情報を表示するために、ポインティング装置によってボックスをクリックすることができる。もしもディスクドライブが特定されると、ユーザインタフェースプログラム１２００６は他のペイン（ｐａｎｅ）またはウインドウの中にディスクドライブの詳細情報を表示する。
【００４１】
図７はユーザインタフェースプログラムを経由して特定されるディスクドライブの詳細情報の表示の例を示す。ペイン（ｐａｎｅ）７０００１はディスクドライブの位置（行およびスロット）および種類、容量、シリアル番号、エラーの数等を含むディスク管理テーブル１１００７に保存される他の情報を有する。
【００４２】
上記に記述された方法において、ディスク管理プログラム１１００６はユーザインタフェースプログラム１２００６から要求を受け取るときに、ディスク管理テーブル１１００７を更新する。しかし、以下に記述される方法において、ディスク管理テーブル１１００７を頻繁に更新し、ディスク管理プログラム１１００６が要求を受け取ると直ぐに更新されたディスク管理テーブル１１００７をユーザインタフェースプログラム１２００６に送り戻すことが可能である。
【００４３】
図１１と１２はテーブルを頻繁に更新するためのディスク管理プログラムの処理フローを示す。図１１と１２のそれぞれに示されるフローチャートは、例えば、ハードウェアおよび／またはソフトウェアによって実施されることができる。もしもソフトウェアによって実施されるならば、フローチャートのステップのそれぞれは、例えば、プロセッサによって実行されるコンピュータプログラムコードまたは命令に対応することができる。
【００４４】
図１１と１２に示される処理フローはディスク管理プログラム１１００６において二つの独立の方法として実施されることができる。図１１の処理フローは以下のように進む。ディスク管理プログラム１１００６は図１０について述べられた方法と同じ方法でディスク管理テーブル１１００７を更新する（ステップ１１０００１）。ディスク管理プログラム１１００６は次に特定の時間のインターバルで頻繁に同じ処理を繰り返す（ステップ１１０００２）。
【００４５】
図１２の処理フローは以下のように進む。図１２において、ディスク管理プログラム１１００６がユーザインタフェースプログラム１２００６からディスク管理テーブル１１００７を得るための要求を受け取る時に（ステップ１２０００１）、ディスク管理プログラム１１００６はディスク管理テーブル１１００７が更新されているかどうかをチェックする。もしもディスク管理テーブル１１００７が更新されているならば、ディスク管理プログラム１１００６は更新の完了を待つ（ステップ１２０００２）。そうでなければ、ディスク管理プログラム１１００６はディスク管理テーブル１１００７をユーザインタフェースプログラム１２００６に送り戻す（ステップ１２０００３）。ディスク管理テーブル１１００７を頻繁に更新することによって、ユーザインタフェースプログラム１２００６からの要求に対する応答時間は短くなる。何故ならば、ディスク管理テーブル１１００７の更新が完了する時間を待つ必要が常には無いからである。
【００４６】
Ｃ．  ディスクドライブのデータを読み出しおよび書き込みする方法
この実施例において、ホストコンピュータはＳＣＳＩに対するファイバチャネルプロトコル（ＦＣＰ）のＩ／Ｏコマンドを送りおよび受け取り、ストレージシステム１１０００の中のＳＡＳおよびＳＡＴＡディスクドライブに保存されているデータを読み出しおよび書き込む。コマンドはＦＣポートアドレス、ＬＵＮ、および論理ブロックアドレス（ＬＢＡ）を有する。
【００４７】
図２２はディスクドライブから／へデータを読み出し／書き込みするためのディスク管理プログラム１１００６の処理フローを示す。図２２に示されるフローチャートは、例えば、ハードウェアおよび／またはソフトウェアによって実施されることができる。もしもソフトウェアによって実施されるならば、フローチャートのステップのそれぞれは、例えば、プロセッサによって実行されるコンピュータプログラムコードまたは命令に対応することができる。
【００４８】
図２２に示されるように、ホストコンピュータがストレージシステム１１０００のＦＣポートにＳＣＳＩコマンドを送ると、ディスク管理プログラム１１００６はＳＣＳＩコマンドを受け取りＦＣポートアドレス、ＬＵＮ、およびＬＢＡを取り出す（ステップ１８０００１）。ディスク管理プログラム１１００６はターゲットのディスクドライブが接続されているポートのステータスを決定する。
【００４９】
図２３は図２２のステップ１８０００２を実施するためのステップの詳細を示す。最初に、ディスク管理プログラム１１００６はボリューム管理テーブル１１０１４の中を調べて、ボリューム管理テーブル１１０１４の列１７０００１と１７０００２にそれぞれ保存されている、受け取ったポートアドレスとＬＵＮに対応するディスクコントローラ１１００８、１１００９を識別する（ステップ１９０００１）。次に、ディスク管理プログラム１１００６はディスク管理テーブル１１００７の中を調べて、ディスク管理テーブル１１００７の列２０００１に保存されているディスクコントローラ１１００８、１１００９のＩＤ番号に対応するポートのステータスを決定する（ステップ１９０００２）。
【００５０】
図２２に示される処理フローを続けて、もしもステータスが‘ＮＯＮＥ’ならば（ステップ１８０００３）、ディスク管理プログラム１１００６はホストコンピュータ１００００にエラーステータスを返す（ステップ１８０００９）。そうでなければ、ディスク管理プログラム１１００６はポートに接続されているディスクドライブの種類を決定する（ステップ１８０００４）。もしもステータスが‘ＳＡＳ’であると、ディスク管理プログラム１１００６は、ターゲットのディスクドライブから／へデータを読み出し／書き込みするためのＲＥＡＤおよびＷＲＩＴＥのような一つ以上のＳＡＳコマンドを送ることを、識別されたディスクコントローラ１１００８に命令し（ステップ１８０００５）、ＳＡＳコマンドを実行するＳＡＳディスクドライブの結果を受け取る（ステップ１８０００６）。
【００５１】
そうでなければ、ディスク管理プログラム１１００６はＲＥＡＤ  ＤＭＡとＷＲＩＴＥ  ＤＭＡのようなＳＡＴＡコマンドを送ることを、識別されたディスクコントローラ１１００９に命令し（ステップ１８０００７）、ＳＡＴＡコマンドを実行するＳＡＴＡディスクドライブの結果を受け取る（ステップ１８０００８）。ステップ１８０００５と１８０００７はホストコンピュータから受け取ったパラメータ（コマンドコード、ＬＢＡ等）を変換しフォーマッティングする処理を含む場合がある。最後に、ディスク管理プログラム１１００６はＳＣＳＩコマンドのステータスをホストコンピュータに戻す（ステップ１８０００９）。
【００５２】
この実施例において、図４に示されるようなＳＴＰ−ＳＡＴＡブリッジ４０００６はディスクコントローラ１１００８、１１００９に存在する。しかし、他の実施方法がある。例えば、ＳＴＰ−ＳＡＴＡブリッジはディスクコントローラ１１００８、１１００９よりもディスクドライブのＳＡＳポートに存在することができる。このような場合に、ブリッジ機能は、ＳＡＳポート１１０１０、１１０１１を簡単化してそのコストを低減するためにディスクコントローラ１１００８、１１００９のＳＡＳポート１１０１０、１１０１１から取り除かれることが可能である。
【００５３】
２．  第二の実施例
第二の実施例においては、ストレージシステムの多くのディスクドライブがエクスパンダによって一つのディスクコントローラに接続される。エクスパンダの概念と機能はＳＡＳの仕様によって定義され、この技術に通常程度に精通した人達によく知られている。エクスパンダの詳細実施内容は本発明の範囲外である。構成が変更されるときにディスク管理テーブルを更新する方法も述べられる。さらに、ユーザインタフェースプログラムは、ユーザがディスクドライブの種類をベースにして適切に複数の種類のディスクドライブを利用することを助けるための機能を提供する。ホストコンピュータは一つ以上のディスクドライブを含むボリュームにおいてデータを読み出しおよび書き込みをする。ホストコンピュータから受け取ったデータはブロックに分割されて複数のディスクドライブに保存される。第一と第二の実施例の違いは以下に述べられる。
【００５４】
Ａ．  システムアーキテクチャ
図１３はこの実施例のストレージシステム１１０００を示す。ディスク管理テーブル１１１００は“ディスク管理テーブルＡ”と名前を付けられる。何故ならば、この実施例では、ディスク管理テーブルは複数のテーブルに分割されるからである。ディスクドライブ１１１０５−１１１０８はエクスパンダ１１１０３と１１１０４によってディスクコントローラ１１１０１と１１１０２に接続される。各ディスクコントローラ１１１０１、１１１０２は複数のディスクドライブを制御できる。
【００５５】
図１４はディスク管理テーブル１１１００の構造を示す。第一の実施例のディスク管理テーブル１１００７と第二の実施例のディスク管理テーブルとの違いはディスク管理テーブル１１１００の列１１１１１である。列１１１１１はディスクコントローラＩＤとエクスパンダのＳＡＳポートの番号が組み合わされた番号を有する。図１４の列２０００２はエクスパンダのＳＡＳポートのステータスを有し、これはエクスパンダのＳＡＳポートにＳＡＳディスクドライブ、ＳＡＴＡディスクドライブが接続されているか、または何のディスクドライブも接続されていないかを示すＳＡＳ、ＳＡＴＡ、またはＮＯＮＥである。
【００５６】
図２４は複数のエントリすなわち行を有するこの実施例のボリューム管理テーブル１１１０９の構造を示す。各行はディスクボリュームのマッピングと構成情報を有する。特に、ボリューム管理テーブル１１１０９の列２００００１と２００００２はディスクボリュームに割り当てられるＦＣポートアドレスとＬＵＮをそれぞれ有し、列２００００３はディスクボリュームを構成するディスクドライブの数を有し、列２００００４はディスクドライブが制御され接続されるディスクコントローラとエクスパンダポートの一対のＩＤ番号を有する。
【００５７】
図１５はこの実施例におけるディスクコントローラ１１１０１、１１１０２の機能図を示す。ディスクコントローラ１１１０１、１１１０２は図４に示される様なＳＴＰ−ＳＡＴＡブリッジ機能４０００６を有していない。何故ならばＳＡＴＡドライブと直接にはコミュニケーションを行わないからである。ブリッジ機能はエクスパンダ１１１０３、１１１０４またはディスクドライブ１１１０５−１１１０８のＳＡＳポートに存在する。ＳＡＳポート管理機能４０００２はエクスパンダ装置に接続されているディスクドライブを管理する付加的役割を有する。これは、いろいろな要求（Ｄｉｓｃｏｖｅｒｙ、Ｒｅｐｏｒｔ  Ｇｅｎｅｒａｌ等）を他のＳＡＳポートに発行するディスカバリ処理をＳＡＳ仕様をベースにＳＡＳドメインの管理アプリケーションとして実行する。
【００５８】
ディスカバリ処理とＳＡＳドメインの管理アプリケーションの実施内容は本発明の範囲外である。しかし、このような実施内容はこの技術に通常程度に精通している人達に良く知られている。ディスクドライブ管理機能４１００１はエクスパンダ１１１０３、１１１０４に接続されているディスクドライブの情報をディスク管理テーブルＢ４１００２に保持する。ディスク管理テーブルＢ４１００２はディスク管理テーブルＡ１１１００の部分を含む。
【００５９】
図１６は複数のエントリすなわち行を有するディスク管理テーブルＢ４１００２の構造を示す。各行は、ディスクコントローラ１１１０１、１１１０２が接続されているエクスパンダ１１１０３、１１１０４に接続されているディスクドライブ１１１０５−１１１０８の情報を保存する。ディスク管理テーブルＢ４１００２の列２０００２−２０００６は図１４に示されているディスク管理テーブルＡ１１１００と同じである。
【００６０】
Ｂ  ドライブ情報を取得する方法
この実施例において、ディスク管理テーブルＡ１１１００とＢ４１００２を更新する処理フローは、これは第一の実施例の図１０に対応するが、ディスクコントローラにおいて複数のディスクドライブを管理するために修正される。ディスク管理プログラム１１００６によって実行されるディスク管理テーブルＡ１１１００を更新する処理フローは図１７に示される。図１７に示されるフローチャートは、例えば、ハードウェアおよび／またはソフトウェアによって実施されることができる。もしもソフトウェアによって実施されるならば、フローチャートのステップのそれぞれは、例えば、プロセッサによって実行されるコンピュータプログラムコードまたは命令に対応することができる。
【００６１】
図１７に従って、最初に、ディスク管理プログラム１１００６はディスク管理テーブルＡ１１１００から一つのディスクコントローラ１１１０１、１１１０２を選択する。もしもディスク管理プログラム１１００６が全てのディスクコントローラ１１１０１、１１１０２からドライブ情報を取得することを完了すると、処理は終了する（ステップ１３０００１）。そうでないと、ディスク管理プログラム１１００６は、ディスクコントローラ１１１０１、１１１０２が接続されているエクスパンダ１１１０３、１１１０４に接続されているディスクドライブ１１１０５−１１１０８の情報を得るために一つの未処理のディスクコントローラを選択する（ステップ１３０００２）。
【００６２】
ディスク管理プログラム１１００６は選択されたディスクコントローラ１１１０１、１１１０２からディスク管理テーブルＢ４１００２を得て、その中の値をディスク管理テーブルＡ１１１００にコピーする（ステップ１３０００３）。ディスクコントローラ１１１０１、１１１０２のディスクドライブ管理機能４１００１はディスク管理プログラム１１００６に対してディスク管理テーブルＢ４１００２を提供する。上記に述べられた処理は各ディスクコントローラ１１１０１、１１１０２に対して繰り返される。
【００６３】
図１８と１９はディスク管理テーブルＢ４１００２を更新する処理フローを示す。これはディスクドライブ管理機能４１００１によって実行される。図１８と１９のそれぞれに示されるフローチャートは、例えば、ハードウェアおよび／またはソフトウェアによって実施されることができる。もしもソフトウェアによって実施されるならば、フローチャートのステップのそれぞれは、例えば、プロセッサによって実行されるコンピュータプログラムコードまたは命令に対応することができる。
【００６４】
図１８において、ディスク管理機能４１００１はＳＡＳポート管理機能４０００２からのステート変更通知を待つ（ステップ１４０００１）。通知はＳＡＳポート１１０１０、１１０１１でのＢＲＯＡＤＣＡＳＴ（ＣＨＡＮＧＥ）のプリミティブ（ｐｒｉｍｉｔｉｖｅ）の受領によって起こされる割り込みとして実施されることができ、これはエクスパンダのＳＡＳポートによって送られる。プリミティブ（ｐｒｉｍｉｔｉｖｅ）を送ることおよび受け取ることの詳細機能はＳＡＳの仕様で定義され、本発明の範囲外である。しかし、このような詳細機能はこの技術に通常程度に精通した人達には良く知られている。ディスクドライブ管理機能４１００１はＳＡＳポート管理機能４０００２からステート変更通知を受け取る時に、ディスク管理テーブルＢ４１００２を更新する（ステップ１４０００２）。
【００６５】
図１９はディスク管理テーブルＢ４１００２を更新する処理フローのステップ１４０００２を実施するための詳細ステップを示す。図１９に従って、最初に、ディスクドライブ管理機能４１００１はディスク管理テーブルＢ４１００２から一つのエクスパンダのＳＡＳポートを選択する。もしも全てのエクスパンダポートが全てのディスクドライブのディスクドライブ情報を得るために処理されていると、処理は終了する（ステップ１５０００１）。そうでないと、処理は選択されたポートに接続されたディスクドライブの情報を得るために一つの未処理のエクスパンダのＳＡＳポートを選択する（ステップ１５０００２）。次に、処理はＳＡＳポート管理機能４０００２を使用してポートのステータスを取得し、ディスク管理テーブルＢ４１００２の列２０００２にステータスを保存する（ステップ１５０００３）。
【００６６】
もしもステータスが‘ＮＯＮＥ’であると、処理はステップ１５０００１に戻る（ステップ１５０００４）。もしもＳＡＳドライブが接続されていると（ステップ１５０００５）、処理はディスクドライブの詳細情報を得るためにディスクドライブにＳＣＳＩコマンドを発行して、ディスク管理テーブルＢ４１００２に詳細情報を保存する（ステップ１５０００６）。そうでないと、処理はディスクドライブの情報を得るためにＡＴＡコマンドを発行する（ステップ１５０００７）。上記に述べられた処理は各ディスクドライブに対して繰り返される。処理フローはディスクコントローラ１１１０１、１１１０２において独立の方法として実施されることができる。
【００６７】
Ｃ．  ディスクドライブの中のデータを読み出しおよび書き込みする方法
この実施例において、ストレージシステム１１０００は一つ以上のディスクドライブを含むディスクボリュームをホストコンピュータに提供する。ホストコンピュータはディスクボリュームのＦＣポートアドレス、ＬＵＮ、およびＬＢＡを有するＳＣＳＩコマンドを送る。説明を簡単にするために、ホストコンピュータは一つのＩ／Ｏコマンドで一つのセクタを読み出すかまたは書き込むものとする。
【００６８】
ディスクドライブから／へデータを読み出す／書き込むためのディスク管理プログラム１１００６の処理フローは第一の実施例と同様である。図２２に示されるフローチャートのステップ１８０００２の詳細は、しかし、図２５に示されるステップによって実施される。図２５に示されるフローチャートは、例えば、ハードウェアおよび／またはソフトウェアによって実施されることができる。もしもソフトウェアによって実施されるならば、フローチャートのステップのそれぞれは、例えば、プロセッサによって実行されるコンピュータプログラムコードまたは命令に対応することができる。
【００６９】
最初に、図２５において、ディスク管理プログラム１１００６はボリューム管理テーブル１１１０９を調べて、列２００００１および２００００３にそれぞれ保存されている、受け取ったポートアドレスとＬＵＮに対応するディスクボリュームを特定する（ステップ２１０００１）。次にディスク管理プログラム１１００６は次の式によって得られるディスクインデックス番号Ｎを計算する。Ｎ＝（ＬＢＡ／ＳＴＲＩＰＥ＿ＳＩＺＥ）  ｍｏｄ  Ｄ、ここでＳＴＲＩＰＥ＿ＳＩＺＥは分割の予め定義されたブロックサイズであり、Ｄは列２００００３に保存されているディスクドライブの数である（ステップ２１０００２）。分割されたディスクボリューム内の特定されたＬＢＡに対応するディスクドライブ内のＬＢＡも、ここに示されていないが、この技術に通常程度に精通した人達に良く知られている簡単な式で計算される。
【００７０】
ディスク管理プログラム１１００６はボリューム管理テーブル１１１０９を調べて、列２００００４に保存されているＮ番目のディスクコントローラ番号とエクスパンダポート番号を特定する（ステップ２１０００３）。最後に、ディスク管理プログラム１１００６はディスク管理テーブルＡ１１１００を調べて、列１１１１１に保存されているディスクコントローラ番号とエクスパンダポート番号に対応するポートのステータスを決定する（ステップ２１０００４）。
【００７１】
Ｄ．  ユーザが複数の種類のディスクドライブを利用することを助ける方法
この実施例において、ユーザインタフェースプログラム１２００６はユーザがディスクドライブの種類をベースにして複数の種類のディスクドライブを利用することを助ける機能を提供する。
【００７２】
図２０はＳＡＳまたはＳＡＴＡディスクドライブのＲＡＩＤグループを構築する処理フローを示す。図２０に示されるフローチャートは、例えば、ハードウェアおよび／またはソフトウェアによって実施されることができる。もしもソフトウェアによって実施されるならば、フローチャートのステップのそれぞれは、例えば、プロセッサによって実行されるコンピュータプログラムコードまたは命令に対応することができる。
【００７３】
図２０に従って、最初に、ユーザインタフェースプログラム１２００６はＲＡＩＤグループを構築する要求をユーザから受け取り（ステップ１６０００１）、選択されたディスクドライブのリストをクリアし（ステップ１６０００２）、どの存在するＲＡＩＤグループに対しても使用されていないディスクドライブのリストを表示する（ステップ１６０００３）。ユーザインタフェースプログラムは次にユーザの入力を受け取り、一つ以上のディスクドライブを特定する（ステップ１６０００４）。ステップ１６０００４は繰り返され、特定されたディスクドライブはユーザが選択を停止することを指示するまでドライブリストに追加される（ステップ１６０００５および１６０００６）。
【００７４】
もしもユーザが処理をキャンセルすることを指示すると、処理は終了する（ステップ１６０００７）。そうでないと、処理は、ディスクドライブリストがＳＡＳとＳＡＴＡドライブの両方を有するかをチェックする（ステップ１６０００８）。もしもディスクドライブリストがＳＡＳドライブだけまたはＳＡＴＡドライブだけを有するならば、ＲＡＩＤグループを構築するためにディスクドライブリストを含む要求をストレージシステム１１０００に送る（ステップ１６０００９）。そうでないと、処理は、ＳＡＳとＳＡＴＡ両方のドライブが選択されていることを示す警告メッセージをモニタに表示し、ユーザにそれを確認させる（ステップ１６００１０）。もしもユーザがディスクドライブリストを確認して処理を続行することを選択するならば（ステップ１６００１１）、処理はステップ１６０００９に進む。そうでないと、処理は再びステップ１６０００２に進む。
【００７５】
上記に述べられた方法で、ユーザインタフェースプログラムは、ユーザが一様の特性を有するディスクドライブを有するＲＡＩＤグループを作成することを助けることができる。
【００７６】
この実施例においては、ディスクコントローラはエクスパンダ装置から離れて実施される。しかし他の実施例においては、ストレージシステムのユニットを有効に配置してスペースを低減し小さいシャーシを利用するために、ディスクコントローラとエクスパンダを一つの装置に一緒に入れることができる。
【００７７】
このようにして、本発明は、同じコネクタに接続され異なったコミュニケーションプロトコルを使用できる複数の異なった種類のディスクドライブを有するストレージシステムを管理するための方法、装置、およびコンピュータプログラムを提供する。
【００７８】
本発明は好適な実施例において述べられたが、本発明の精神と範囲から離れることなく、多くの修正を行うことができることを理解すべきである。全てのその様な修正が添付の特許請求の範囲内であることが意図されている。
【図面の簡単な説明】
【００７９】
【図１】図１は本発明の実施例による複数の異なる種類のディスクドライブを有するストレージシステムを管理するための方法、装置およびコンピュータプログラムを有するストレージシステムの例を説明するための図である。
【図２】図２は本発明の実施例によるディスク管理テーブル１１００７を説明するための図である。
【図３】図３は本発明の実施例によるシステム管理テーブル１２００７を説明するための図である。
【図４】図４は本発明の実施例によるディスクコントローラ１１００８、１１００９の機能的概念を説明するための図である。
【図５】図５は本発明の実施例によるユーザインタフェースプログラム１２００６によって実行されるステップのフローチャートである。
【図６】図６は本発明の実施例によるユーザインタフェースプログラム１２００６のグラフィカルユーザインタフェース（ＧＵＩ）６０００１の例を示す図である。
【図７】図７は本発明の実施例によるペイン（ｐａｎｅ）７０００１におけるディスクドライブの詳細情報の表示の例を説明するための図である。
【図８】図８は本発明の実施例によるユーザインタフェースプログラム１２００６のステップ５０００４を実施するために実行されるステップを詳細化するフローチャートである。
【図９】図９は本発明の実施例によるディスク管理プログラム１１００６によって実行されるステップのフローチャートである。
【図１０】図１０は本発明の実施例によるディスク管理プログラム１１００６のステップ９０００２を実施するために実行されるステップを詳細化するフローチャートである。
【図１１】図１１は本発明の実施例によるディスク管理プログラム１１００６によって実行されるさらなるステップのフローチャートである。
【図１２】図１２は本発明の実施例によるディスク管理プログラム１１００６によって実行されるよりさらなるステップのフローチャートである。
【図１３】図１３は本発明の他の実施例による複数の異なる種類のディスクドライブを有するストレージシステムを管理するための方法、装置およびコンピュータプログラムを有するストレージシステムの例を説明するための図である。
【図１４】図１４は本発明の他の実施例によるディスク管理テーブルＡ１１１００を説明するための図である。
【図１５】図１５は本発明の他の実施例によるディスクコントローラ１１１０１、１１１０２の機能的概念を説明するための図である。
【図１６】図１６は本発明の他の実施例によるディスク管理テーブルＢ４１００２を説明するための図である。
【図１７】図１７は本発明の他の実施例によるディスク管理プログラム１１００６によって実行されるステップのフローチャート図である。
【図１８】図１８は本発明の他の実施例によるディスク管理プログラム１１００６によって実行されるさらなるステップのフローチャート図である。
【図１９】図１９は本発明の他の実施例によるディスク管理プログラム１１００６のステップ１４０００２を実施するために実行されるステップを詳細化するフローチャートである。
【図２０】図２０は本発明の実施例によるＳＡＳまたはＳＡＴＡディスクドライブのＲＡＩＤグループを構成するために実行されるステップのフローチャートである。
【図２１】図２１は本発明の他の実施例によるボリューム管理テーブル１１０１４を説明するための図である。
【図２２】図２２は本発明の実施例によるディスクドライブから／へデータを読み出し／書き込みするためにディスク管理プログラム１１００６によって実行されるステップのフローチャートである。
【図２３】図２３は本発明の実施例によるディスク管理プログラム１１００６のステップ１８０００２を実施するために実行されるステップを詳細化するフローチャートである。
【図２４】図２４は本発明の他の実施例によるボリューム管理テーブル１１１０９を説明するための図である。
【図２５】図２５は本発明の他の実施例によるディスク管理プログラム１１００６のステップ１８０００２を実施するために実行されるステップのフローチャートである。
【符号の説明】
【００８０】
１００００  ホストコンピュータ
１０００１  ホストコンピュータ
１１００１  ＦＣポート
１１００２  ＦＣポート
１１００３  ＬＡＮポート
１１００４  ＣＰＵ
１１００５  メモリ
１１００６  ディスク管理プログラム
１１００７  ディスク管理テーブル
１１００８  ディスクコントローラ
１１００９  ディスクコントローラ
１１０１０  ＳＡＳポート
１１０１１  ＳＡＳポート
１１０１２  ＳＡＳディスクドライブ
１１０１３  ＳＡＴＡディスクドライブ
１１０１４  ボリューム管理テーブル
１２００１  ＬＡＮポート
１２００２  ＣＰＵ
１２００３  入力装置
１２００４  出力装置
１２００５  メモリ
１２００６  ユーザインタフェースプログラム
１２００７  システム管理テーブル
【図１】
2006195975.tif 000003
【図２】
2006195975.tif 000004
【図３】
2006195975.tif 000005
【図４】
2006195975.tif 000006
【図５】
2006195975.tif 000007
【図６】
2006195975.tif 000008
【図７】
2006195975.tif 000009
【図８】
2006195975.tif 000010
【図９】
2006195975.tif 000011
【図１０】
2006195975.tif 000012
【図１１】
2006195975.tif 000013
【図１２】
2006195975.tif 000014
【図１３】
2006195975.tif 000015
【図１４】
2006195975.tif 000016
【図１５】
2006195975.tif 000017
【図１６】
2006195975.tif 000018
【図１７】
2006195975.tif 000019
【図１８】
2006195975.tif 000020
【図１９】
2006195975.tif 000021
【図２０】
2006195975.tif 000022
【図２１】
2006195975.tif 000023
【図２２】
2006195975.tif 000024
【図２３】
2006195975.tif 000025
【図２４】
2006195975.tif 000026
【図２５】
2006195975.tif 000027
【外国語明細書】
2006195975000001.pdf