(57)【要約】ストレージシステム、及びストレージシステムの稼働モードを切り替えるための方法が提供される。ストレージシステムは、Ｍ個の制御デバイス、Ｎ個の第１のコネクタ、Ｎ個の第２のコネクタ、及びＫ個のドライブを含み、Ｍ個の制御デバイスはＮ個の第１のコネクタに取り外し可能に接続されてよく、Ｋ個のドライブはＮ個の第２のコネクタに取り外し可能に接続されてよく、そうすることによって、ユーザは、使用上の要件に基づいてドライブと制御デバイスとの間の接続関係をフレキシブルに構成して、異なるストレージアーキテクチャを構成することができる。加えて、Ｍ個の制御デバイスとＫ個のドライブは両方とも２つの稼働モードをサポートし、そうすることによって、ストレージアーキテクチャが変更される必要があるとき、制御デバイス及びドライブの稼働モードのみが切り替えられる必要があり、又はドライブが変更される必要があり、新しい制御デバイスと新しいドライブが購入される必要がない。これは、ストレージシステムのフレキシビリティを改善し、ストレージアーキテクチャの切り替えのコストを減らす。
2021529393.tif 000002
【特許請求の範囲】
【請求項１】
Ｍ個の制御デバイスと、Ｎ個の第１のコネクタと、Ｎ個の第２のコネクタと、Ｋ個のドライブとを備える、ストレージシステムであって、Ｍ、Ｎ、及びＫが正の整数であり、
前記Ｎ個の第１のコネクタが前記Ｍ個の制御デバイスに取り外し可能に接続するように構成され、前記Ｎ個の第２のコネクタが前記Ｋ個のドライブに取り外し可能に接続するように構成され、前記Ｋ個のドライブの各々がデータを記憶するように構成され、
前記Ｍ個の制御デバイスの各々が、前記Ｎ個の第１のコネクタの全て及び前記Ｎ個の第２のコネクタの全てを使用することによって、前記Ｋ個のドライブと通信するか、又は、前記Ｍ個の制御デバイスの各々が、前記Ｎ個の第１のコネクタのいくつか及び前記Ｎ個の第２のコネクタのいくつかを使用することによって、前記Ｋ個のドライブと通信し、
前記Ｍ個の制御デバイスの各々が第１の稼働モード及び第２の稼働モードをサポートし、前記Ｋ個のドライブの各々が前記第１の稼働モード及び前記第２の稼働モードをサポートし、前記Ｍ個の制御デバイスが前記第１の稼働モードから前記第２の稼働モードに切り替わるとき、前記Ｋ個のドライブが前記第１の稼働モードから前記第２の稼働モードに切り替わり、
前記第１の稼働モードが集中型ストレージアーキテクチャで動作するモードであるとき、前記第２の稼働モードが分散型ストレージアーキテクチャで動作するモードであり、又は、前記第１の稼働モードが分散型ストレージアーキテクチャで動作するモードであるとき、前記第２の稼働モードが集中型ストレージアーキテクチャで動作するモードである、
ストレージシステム。
【請求項２】
前記Ｍ個の制御デバイスの各々が前記Ｎ個の第１のコネクタの全て又はいくつかに接続されるか、又は、前記Ｍ個の制御デバイスの各々が前記Ｎ個の第１のコネクタの全て又はいくつかを備え、
前記Ｋ個のドライブのうちの１つがＸ個の第２のコネクタを有し、前記Ｍ個の制御デバイスの各々が、前記Ｎ個の第１のコネクタの全て又はいくつかを使用することによって前記Ｋ個のドライブの各々の１つの第２のコネクタに取り外し可能に接続され、前記Ｘ個の第２のコネクタに接続される第１のコネクタが異なる制御デバイスに接続され、又は、前記Ｘ個の第２のコネクタに接続される第１のコネクタが異なる制御デバイスに備えられ、Ｘが正の整数であり、ＸがＭ以下である
請求項１に記載のシステム。
【請求項３】
前記第１のコネクタ及び前記第２のコネクタが、相対応する垂直で直交するコネクタであり、又は、前記第１のコネクタ及び前記第２のコネクタが、予め設定された回転角を有し、かつ相対応するコネクタである
請求項１又は２に記載のシステム。
【請求項４】
前記Ｍ個の制御デバイスのうちの１つが、
前記Ｋ個のドライブの各々についての情報を取得し、
前記Ｋ個のドライブの各々についての前記情報に基づいて前記Ｋ個のドライブの稼働モードを決定し、
前記Ｋ個のドライブの前記稼働モードが前記制御デバイスの現在の稼働モードと適合すると決定するとき、前記Ｋ個の第１のコネクタに電力を供給する
ように構成される
請求項１〜３のいずれか１項に記載のシステム。
【請求項５】
前記制御デバイスが、
前記Ｋ個のドライブの各々についての前記情報に基づいて前記Ｋ個のドライブの前記稼働モードを決定した後で、前記Ｋ個のドライブの前記稼働モードが前記制御デバイスの前記現在の稼働モードと適合しないと決定するとき、前記Ｋ個の第１のコネクタに電力を供給することを停止する
ようにさらに構成される
請求項４に記載のシステム。
【請求項６】
前記制御デバイスが、
前記Ｋ個のドライブの各々の状態を取得し、
前記Ｋ個のドライブのうちのＳ個のドライブが切断状態又は欠陥状態にあると決定するとき、前記Ｓ個のドライブに接続されるＳ個の第１のコネクタに電力を供給することを停止する
ように構成される
請求項４に記載のシステム。
【請求項７】
前記Ｋ個のドライブの各々が、高速信号インターフェース及び低速信号インターフェースを備え、
前記高速信号インターフェースが、前記Ｘ個の第２のコネクタ、及び前記Ｘ個の第２のコネクタに接続される前記第１のコネクタを使用することによって、制御デバイスにサービスデータを送信するように構成され、
前記低速信号インターフェースが、前記Ｘ個の第２のコネクタから入力される第１の命令を受信するように構成され、前記第１の命令が前記ドライブについての情報を取得するために使用される
請求項１〜６のいずれか１項に記載のシステム。
【請求項８】
前記Ｋ個のドライブの各々が、内部ドライブ制御モジュールをさらに備え、前記Ｋ個のドライブの各々において、
前記低速信号インターフェースが、
前記Ｘ個の第２のコネクタに接続される前記第１のコネクタに対応する制御デバイスのうちの第１の制御デバイスによって送信される第２の命令を受信するようにさらに構成され、前記第２の命令が、前記第２の命令を受信するドライブの稼働モードを、前記分散型ストレージアーキテクチャで動作する前記モードに変更するように命令するために使用され、
前記内部ドライブ制御モジュールが、
前記第２の命令が前記低速信号インターフェースを通じて受信された後で、通信停止状態となるように前記Ｘ個の第２のコネクタのうちのＰ個の第２のコネクタを制御するように構成され、１つの第２のコネクタが通信停止状態にあるということが、前記ドライブが、前記第２のコネクタを使用することによって、前記第２のコネクタに接続される第１のコネクタに対応する制御デバイスと通信することを停止するように制御されるということを意味し、Ｐが正の整数であり、ＸとＰの差が１である
請求項７に記載のシステム。
【請求項９】
前記Ｋ個のドライブの各々が内部ドライブ制御モジュールをさらに備え、前記Ｋ個のドライブの各々において、
前記低速信号インターフェースが、
前記Ｘ個の第２のコネクタに接続される前記第１のコネクタに対応する制御デバイスのうちの第１の制御デバイスによって送信される第３の命令を受信するようにさらに構成され、前記第３の命令が、前記第３の命令を受信するドライブの稼働モードを前記集中型ストレージアーキテクチャで動作する前記モードに変更するように命令するために使用され、
前記内部ドライブ制御モジュールが、
前記第３の命令が前記低速信号インターフェースを通じて受信された後で、前記Ｘ個の第２のコネクタのうちのＰ個の第２のコネクタが通信停止状態にあるとき、前記Ｌ個の第２のコネクタを使用することによって、前記Ｌ個の第２のコネクタに接続されるＬ個の第１のコネクタに対応する制御デバイスと通信することを再開するように前記ドライブを制御するように構成され、Ｌが正の整数であり、ＬがＰ以下である
請求項７に記載のシステム。
【請求項１０】
ストレージシステムの稼働モードを切り替えるための方法であって、前記方法は、
前記ストレージシステムの中のＭ個の制御デバイスによって、第１の稼働モードで動作し、前記Ｍ個の制御デバイスによって、第２の稼働モードをサポートするステップであって、前記第１の稼働モードが集中型ストレージアーキテクチャで動作するモードであるとき、前記第２の稼働モードが分散型ストレージアーキテクチャで動作するモードであり、又は、前記第１の稼働モードが分散型ストレージアーキテクチャで動作するモードであるとき、前記第２の稼働モードが集中型ストレージアーキテクチャで動作するモードであり、Ｍが正の整数である、ステップと、
前記Ｍ個の制御デバイスのうちの少なくとも１つによって、前記ストレージシステムの中のＫ個のドライブの各々に第１の命令を送信するステップであって、前記第１の命令が、前記第１の命令を受信するドライブに前記第２の稼働モードで動作するように命令するために使用され、前記Ｍ個の制御デバイスの各々が、Ｎ個の第１のコネクタの全て及びＮ個の第２のコネクタの全てを使用することによって前記Ｋ個のドライブと通信し、又は、前記Ｍ個の制御デバイスの各々が、前記Ｎ個の第１のコネクタのいくつか及び前記Ｎ個の第２のコネクタのいくつかを使用することによって前記Ｋ個のドライブと通信し、前記Ｎ個の第１のコネクタが前記Ｍ個の制御デバイスに取り外し可能に接続するように構成され、前記Ｎ個の第２のコネクタが前記Ｋ個のドライブに取り外し可能に接続するように、又は前記Ｋ個のドライブに固定的に接続するように構成され、前記Ｋ個のドライブの各々がデータを記憶するように構成され、Ｎ及びＫが正の整数である、ステップと、
前記第１の命令に従って前記Ｋ個のドライブの各々によって、前記第２の稼働モードに適応した状態となるように各ドライブのＸ個の第２のコネクタのうちのＰ個の第２のコネクタを制御するステップであって、Ｘ及びＰが正の整数であり、ＸとＰの差が１である、ステップと
を備える、方法。
【請求項１１】
前記第２の稼働モードが前記分散型ストレージアーキテクチャで動作する前記モードであるとき、前記第２の稼働モードに適応した状態となるように前記Ｐ個の第２のコネクタのうちの１つを制御するステップが、前記第２のコネクタを使用することによって、前記第２のコネクタに接続される第１のコネクタに対応する制御デバイスと通信することを停止するように前記ドライブを制御するステップを備え、
前記第２の稼働モードが前記集中型ストレージアーキテクチャで動作する前記モードであるとき、前記第２の稼働モードに適応した状態となるように前記Ｐ個の第２のコネクタを制御する前記ステップが、前記Ｐ個の第２のコネクタのうちのＬ個の第２のコネクタを使用することによって、前記Ｌ個の第２のコネクタに接続されるＬ個の第１のコネクタに対応する制御デバイスと通信することを再開するように前記ドライブを制御するステップを備え、Ｌが正の整数であり、ＬがＰ以下である
請求項１０に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、ストレージ技術の分野に関し、詳細には、ストレージシステム、及びストレージシステムの稼働モードを切り替えるための方法に関する。
【背景技術】
【０００２】
ビッグデータ分析技術及びモノのインターネット技術などの技術の発展により、データは関連技術の進化を促進するための中核的な要素になった。従って、データストレージの信頼性を確保することがより重要になっている。
【０００３】
データストレージシステムは、ドライブコントローラ及びドライブを含む。ストレージシステムのストレージアーキテクチャは、ドライブコントローラがドライブにアクセスする方式に基づいて、集中型ストレージアーキテクチャ及び分散型ストレージアーキテクチャへと分類される。従来技術では、集中型ストレージアーキテクチャと分散型ストレージアーキテクチャの両方が固有の設計である。具体的には、２つのストレージアーキテクチャのうちのストレージアーキテクチャにかかわらず、ドライブコントローラ及びドライブは固定的に接続され、分離されることができない。一方のストレージアーキテクチャが他方のストレージアーキテクチャに切り替えられる必要がある場合、例えば、集中型ストレージアーキテクチャが分散型ストレージアーキテクチャに切り替えられるべきである場合、ストレージアーキテクチャ全体が購入される必要がある。具体的には、統合される分散型ストレージアーキテクチャのドライブコントローラ及び対応するドライブが購入される必要がある。明らかに、コストは相対的に高い。従来技術のストレージアーキテクチャはフレキシブルではなく、フレキシブルな展開に対して不便であることが、承知されることができる。
【発明の概要】
【０００４】
本出願の実施形態は、ストレージアーキテクチャのフレキシビリティを改善するための、ストレージシステムと、ストレージシステムの稼働モードを切り替えるための方法とを提供する。
【０００５】
第１の態様によれば、本出願の実施形態はストレージシステムを提供し、ストレージシステムは、Ｍ個の制御デバイスと、Ｎ個の第１のコネクタと、Ｎ個の第２のコネクタと、Ｋ個のドライブとを含み、Ｍ、Ｎ、及びＫが正の整数であり、
Ｎ個の第１のコネクタがＭ個の制御デバイスに取り外し可能に接続するように構成され、Ｎ個の第２のコネクタが、Ｋ個のドライブに取り外し可能に接続するように構成され、又はＫ個のドライブに固定的に接続するように構成され、Ｋ個のドライブの各々がデータを記憶するように構成され、
Ｍ個の制御デバイスの各々が、Ｎ個の第１のコネクタの全て及びＮ個の第２のコネクタの全てを使用することによってＫ個のドライブと通信し、又は、Ｍ個の制御デバイスの各々が、Ｎ個の第１のコネクタのいくつか及びＮ個の第２のコネクタのいくつかを使用することによってＫ個のドライブと通信し、
Ｍ個の制御デバイスの各々が第１の稼働モード及び第２の稼働モードをサポートし、Ｋ個のドライブの各々が第１の稼働モード及び第２の稼働モードをサポートし、Ｍ個の制御デバイスが第１の稼働モードから第２の稼働モードに切り替わるとき、Ｋ個のドライブが第１の稼働モードから第２の稼働モードに切り替わるように制御され、第１の稼働モードが集中型ストレージアーキテクチャで動作するモードであるとき、第２の稼働モードが分散型ストレージアーキテクチャで動作するモードであり、又は第１の稼働モードが分散型ストレージアーキテクチャで動作するモードであるとき、第２の稼働モードが集中型ストレージアーキテクチャで動作するモードである。
【０００６】
前述の技術的解決法において、制御デバイスは第１のコネクタに取り外し可能に接続されることがあり、ドライブは第２のコネクタに取り外し可能に又は固定的に接続されることがあるので、ユーザは、使用上の要件に基づいてドライブと制御デバイスとの間の接続関係をフレキシブルに構成して、異なるストレージアーキテクチャを構成し得る。加えて、制御デバイスとドライブの両方が２つの稼働モードをサポートするので、ストレージアーキテクチャが変更される必要があるとき、制御デバイスとドライブの稼働モードだけが切り替えられる必要があり、又は、ドライブだけが交換される必要があり、新しい制御デバイスと新しいドライブが購入される必要がない。これは、ストレージシステムのフレキシビリティを改善し、ストレージアーキテクチャの切り替えのコストを減らす。
【０００７】
ある可能な設計において、Ｍ個の制御デバイスの各々が、Ｎ個の第１のコネクタの全て又はいくつかに接続され、又は、Ｍ個の制御デバイスの各々が、Ｎ個の第１のコネクタの全て又はいくつかを含む。
【０００８】
前述の技術的解決法において、制御デバイスは、複数の方式で第１のコネクタに接続され得る。例えば、制御デバイスは、第１のコネクタに電気的に接続され得る。代替的に、制御デバイスは第１のコネクタを含み得る。例えば、第１のコネクタは制御デバイスに配置される。ストレージシステムのフレキシビリティが改善されることができる。
【０００９】
ある可能な設計において、Ｋ個のドライブのうちの１つがＸ個の第２のコネクタを有し、Ｍ個の制御デバイスの各々が、Ｎ個の第１のコネクタの全て又はいくつかを使用することによって、Ｋ個のドライブの各々の１つの第２のコネクタに取り外し可能に接続され、１つの第１のコネクタが１つの第２のコネクタに接続され、Ｘ個の第２のコネクタに接続された第１のコネクタが異なる制御デバイスに接続され、又は、Ｘ個の第２のコネクタに接続された第１のコネクタが異なる制御デバイスに含まれ、Ｘは正の整数であり、ＸはＭ以下である。
【００１０】
前述の技術的解決法において、各ドライブは複数の第２のコネクタを含んでもよく、ドライブの複数の第２のコネクタは、複数の第１のコネクタを使用することによって異なる制御デバイスに接続される。このようにして、ドライブに含まれる全ての複数の第２のコネクタが通信可能状態にあるとき、ドライブの複数の第２のコネクタに接続される異なる制御デバイスが全て、ドライブにアクセスすることがあり、集中型ストレージアーキテクチャを構成する。ドライブに含まれる複数の第２のコネクタのうちの１つだけが通信可能状態にあるとき、ドライブの複数の第２のコネクタに接続される異なる制御デバイスのうちの１つだけがドライブにアクセスすることができ、使用上の要件に基づく分散型ストレージアーキテクチャを構成する。ドライブの第２のコネクタの状態は、異なるストレージアーキテクチャを構成するためにフレキシブルに設定される。
【００１１】
ある可能な設計において、１つの第１のコネクタ及び１つの第２のコネクタは、相対応する垂直で直交するコネクタであり、又は、１つの第１のコネクタ及び１つの第２のコネクタは、予め設定された回転角を有する相対応するコネクタである。
【００１２】
前述の技術的解決法において、第１のコネクタ及び第２のコネクタは、空間座標系のＸ軸、Ｙ軸、及びＺ軸の方向における、制御デバイスとドライブとの間の相対的なシフトに打ち勝つために使用され得る。従って、複数の制御デバイスが複数のドライブに確実に接続されることができ、従来技術のバックプレーンが取り除かれることができ、ストレージシステムの設計の複雑さを下げ、バックプレーンの欠陥によりストレージシステム全体が使用されることができなくなる確率を下げ、そうすることによって、ストレージシステムの信頼性を改善する。
【００１３】
さらに、従来技術のバックプレーンが取り除かれ、そうすることによって、通信処理における制御デバイスとドライブとの間でのインピーダンス不整合点が減らされることができる。具体的には、制御デバイスとバックプレーンとの間のインピーダンス不整合、及びバックプレーンとドライブとの間のインピーダンス不整合が減らされる。このことは、信号送信レートを改善することができる。
【００１４】
さらに、従来技術のバックプレーンが取り除かれ、そうすることによって、ストレージシステムにおけるエアフロー欠陥点が減らされ、ストレージシステムの熱放散性能が改善されることができる。従って、ストレージシステムの特定空間において、ストレージシステムの特定熱放散性能により、ストレージシステム内に、より多くのデバイスが許容されることができ、ストレージシステムの密度が改善されることができる。
【００１５】
ある可能な設計において、Ｍ個の制御デバイスのうちの１つが、Ｋ個のドライブの各々についての情報を取得し、次いで、Ｋ個のドライブの各々についての情報に基づいてＫ個のドライブの稼働モードを決定し、Ｋ個のドライブの稼働モードが制御デバイスの現在の稼働モードと適合すると決定するとき、Ｋ個の第１のコネクタに電力を供給するように構成される。
【００１６】
前述の技術的解決法において、制御デバイスは、ドライブの稼働モードが制御デバイスの稼働モードと適合すると決定するときだけ、ドライブに電力を供給する。このようにして、ストレージシステムの電気エネルギーが適切に使用されることができる。
【００１７】
ある可能な設計において、制御デバイスは、Ｋ個のドライブの各々についての情報に基づいてＫ個のドライブの稼働モードを決定した後で、Ｋ個のドライブの稼働モードが制御デバイスの現在の稼働モードと適合しないと決定するとき、Ｋ個の第１のコネクタに電力を供給することを停止するようにさらに構成される。
【００１８】
ある可能な設計において、制御デバイスは、Ｋ個のドライブの各々の状態を取得し、Ｋ個のドライブのうちのＳ個のドライブが切断状態又は欠陥状態にあると決定するとき、Ｓ個のドライブに接続されるＳ個の第１のコネクタに電力を供給することを停止するように構成される。
【００１９】
前述の技術的解決法において、制御デバイスはまず、制御デバイスに接続されるドライブの稼働状態を決定してよく、ドライブの稼働状態が切断状態又は欠陥状態にあると決定するとき、制御デバイスはドライブに電力を供給しない。このようにして、ストレージシステムの電気エネルギーが適切に使用されることができ、欠陥状態にあるドライブが熱を放散することもなく、そうすることによって、ストレージシステムの熱放散が減らされることができる。
【００２０】
ある可能な設計において、Ｋ個のドライブのうちの１つが、高速信号インターフェース及び低速信号インターフェースを含む。高速信号インターフェースは、Ｘ個の第２のコネクタ、及びＸ個の第２のコネクタに接続される第１のコネクタを使用することによって、制御デバイスにサービスデータを送信するように構成され、低速信号インターフェースは、Ｘ個の第２のコネクタから入力され、かつドライブについての情報を取得するために使用される、第１の命令を受信するように構成される。
【００２１】
前述の技術的解決法において、ドライブは、異なるインターフェースを通じて制御デバイスと通信してもよく、そうすることによって、ドライブが制御デバイスによって送信される信号を管理する。
【００２２】
ある可能な設計において、Ｋ個のドライブの各々がさらに、内部ドライブ制御モジュールを含む。Ｋ個のドライブの各々に対して、低速信号インターフェースは、Ｘ個の第２のコネクタに接続される第１のコネクタに対応する制御デバイスのうちの第１の制御デバイスによって送信され、第２の命令を受信するドライブの稼働モードを分散型ストレージアーキテクチャで動作するモードに変更するように命令するために使用される、第２の命令を受信するようにさらに構成され、内部ドライブ制御モジュールは、第２の命令が低速信号インターフェースを通じて受信された後で、通信停止状態となるようにＸ個の第２のコネクタのうちのＰ個の第２のコネクタを制御するように構成され、１つの第２のコネクタが通信停止状態にあるということは、ドライブが、第２のコネクタを使用することによって、第２のコネクタに接続される第１のコネクタに対応する制御デバイスと通信することを停止するように制御されるということを意味し、Ｐは正の整数であり、ＸとＰの差は１である。
【００２３】
前述の技術的解決法において、ドライブは、制御デバイスによって送信される命令に基づいて、通信停止状態となるようにドライブの第２のコネクタを制御してもよく、そうすることによって、ドライブの稼働モードは、分散型ストレージアーキテクチャにおけるモードに切り替えられ、ハードウェア構造及び接続関係を変更することなく、ストレージシステムの稼働モードが切り替えられることができ、ストレージシステムの稼働モードを切り替えるステップが簡略化されることができる。
【００２４】
ある可能な設計において、Ｋ個のドライブの各々はさらに、内部ドライブ制御モジュールを含む。Ｋ個のドライブの各々に対して、低速信号インターフェースは、Ｘ個の第２のコネクタに接続される第１のコネクタに対応する制御デバイスのうちの第１の制御デバイスによって送信され、第３の命令を受信するドライブの稼働モードを集中型ストレージアーキテクチャで動作するモードに変更するように命令するために使用される、第３の命令を受信するようにさらに構成され、内部ドライブ制御モジュールは、第３の命令が低速信号インターフェースを通じて受信された後で、Ｘ個の第２のコネクタのうちのＰ個の第２のコネクタが通信停止状態にあるとき、Ｌ個の第２のコネクタを使用することによって、Ｌ個の第２のコネクタに接続されるＬ個の第１のコネクタに対応する制御デバイスと通信することを再開するようにドライブを制御するように構成され、Ｌは正の整数であり、ＬはＰ以下である。
【００２５】
第２の態様によれば、本出願は、ストレージシステムの稼働モードを切り替えるための方法を提供し、この方法は、次のステップを含む。ストレージシステムの中のＭ個の制御デバイスが第１の稼働モードで動作し、Ｍ個の制御デバイスが第２の稼働モードをサポートするとき、Ｍ個の制御デバイスのうちの少なくとも１つが、ストレージシステムの中のＫ個のドライブの各々に、第１の命令を受信するドライブに第２の稼働モードで動作するように命令するために使用される第１の命令を送信し、そうすることによって、第１の命令を受信するＫ個のドライブの各々は、第１の命令に従って、第２の稼働モードに適応した状態となるようにＸ個の第２のコネクタのうちのＰ個の第２のコネクタを制御し、第１の稼働モードが集中型ストレージアーキテクチャで動作するモードであるとき、第２の稼働モードが分散型ストレージアーキテクチャで動作するモードであり、又は、第１の稼働モードが分散型ストレージアーキテクチャで動作するモードであるとき、第２の稼働モードが集中型ストレージアーキテクチャで動作するモードである。Ｍ個の制御デバイスの各々は、Ｎ個の第１のコネクタの全て及びＮ個の第２のコネクタの全てを使用することによってＫ個のドライブと通信し、又は、Ｍ個の制御デバイスの各々は、Ｎ個の第１のコネクタのいくつか及びＮ個の第２のコネクタのいくつかを使用することによってＫ個のドライブと通信し、Ｎ個の第１のコネクタは、Ｍ個の制御デバイスに取り外し可能に接続するように構成され、Ｎ個の第２のコネクタは、Ｋ個のドライブに取り外し可能に接続するように構成され、又はＫ個のドライブに固定的に接続するように構成され、Ｋ個のドライブの各々がデータを記憶するように構成される。Ｍ、Ｎ、Ｋ、Ｘ、及びＰは正の整数であり、ＸとＰの差は１である。
【００２６】
前述の技術的解決法において、ストレージシステムが稼働モードを切り替える必要があるとき、制御デバイスの稼働モードが切り替えられ、制御デバイスが、稼働モード切り替え命令をドライブに送信し、ハードウェア構造及び接続関係を変更することなくストレージシステムの稼働モードを切り替える。ストレージシステムの稼働モードを切り替えるステップが簡略化されることができる。
【００２７】
ある可能な設計において、制御すること、第２の稼働モードが分散型ストレージアーキテクチャで動作するモードであるとき、第２の稼働モードに適応した状態となるようにＰ個の第２のコネクタのうちの１つを制御することは、第２のコネクタを使用することによって、第２のコネクタに接続される第１のコネクタに対応する制御デバイスと通信することを停止するようにドライブを制御することを含み、又は、第２の稼働モードが集中型ストレージアーキテクチャで動作するモードであるとき、第２の稼働モードに適応した状態となるようにＰ個の第２のコネクタのうちの１つを制御することは、Ｐ個の第２のコネクタのうちのＬ個の第２のコネクタを使用することによって、Ｌ個の第２のコネクタに接続されるＬ個の第１のコネクタに対応する制御デバイスと通信することを再開するようにドライブを制御することを含み、Ｌは正の整数であり、ＬはＰ以下である。
【００２８】
前述の技術的解決法において、ドライブは、制御デバイスによって送信される命令に従ってドライブの第２のコネクタの通信ステータスを制御することによって、ドライブの稼働モードを切り替え得る。例えば、分散型ストレージアーキテクチャで動作するモードが切り替えられる必要があるとき、Ｍ個の第２のコネクタのいくつかが、通信停止状態となるように制御され、集中型ストレージアーキテクチャで動作するモードが切り替えられる必要があるとき、通信停止状態にある第２のコネクタのいくつか又は全てが通信を再開する。従って、ドライブの稼働モードは集中型ストレージアーキテクチャにおけるモードに切り替えられ、ドライブの稼働モードはハードウェア構造及び接続関係を変更することなく切り替えられることができる。
【００２９】
第３の態様によれば、本出願の実施形態は、コンピュータ可読記憶媒体をさらに提供し、コンピュータ可読記憶媒体はコンピュータプログラムを含み、コンピュータプログラムが端末上で動作するとき、ストレージシステムは、第２の態様の方法又は第２の態様の可能な設計のうちの任意の１つを実行することが可能にされる。
【００３０】
第４の態様によれば、本出願の実施形態は、コンピュータプログラム製品をさらに提供し、コンピュータプログラム製品が端末上で動作するとき、ストレージシステムは、第１の態様の方法又は第２の態様の可能な設計のうちの任意の１つを実行することが可能にされる。
【００３１】
第３の態様及び第４の態様の有益な効果並びに第３の態様及び第４の態様の実装については、第２の態様の方法の有益な効果及び第２の態様の実装の説明を参照されたい。
【図面の簡単な説明】
【００３２】
【図１Ａ】本出願のある実施形態による適用シナリオの概略図である。
【図１Ｂ】本出願のある実施形態による適用シナリオの概略図である。
【図２Ａ】集中型ストレージシステムの例のアーキテクチャ図である。
【図２Ｂ】分散型ストレージシステムの例のアーキテクチャ図である。
【図３Ａ】本出願のある実施形態によるストレージシステム３００の概略構造図である。
【図３Ｂ】本出願のある実施形態によるストレージシステム３００の別の概略構造図である。
【図３Ｃ】本出願のある実施形態によるストレージシステム３００の別の概略構造図である。
【図３Ｄ】本出願のある実施形態によるストレージシステム３００の別の概略構造図である。
【図４】本出願のある実施形態によるストレージシステム３００の制御デバイス３０１に含まれるプロセッサ３０１１の概略構造図である。
【図５】本出願のある実施形態によるストレージシステム３００の制御デバイス３０１に含まれる複数の個別の構成要素の概略構造図である。
【図６】本出願のある実施形態によるストレージシステム３００にさらに含まれる検出回路３０２１の概略構造図である。
【図７】本出願のある実施形態によるストレージシステム３００にさらに含まれるＰＣＩＥスイッチの概略構造図である。
【図８Ａ】本出願のある実施形態による分散型ドライブの概略図である。
【図８Ｂ】本出願のある実施形態による分散型ドライブの別の概略図である。
【図９Ａ】本出願のある実施形態による集中型ドライブの概略図である。
【図９Ｂ】本出願のある実施形態による集中型ドライブの２つの第２のコネクタ間の離隔の概略図である。
【図９Ｃ】本出願のある実施形態による集中型ドライブの別の概略図である。
【図１０Ａ】本出願のある実施形態による汎用ドライブの概略図である。
【図１０Ｂ】本出願のある実施形態による汎用ドライブの別の概略図である。
【図１０Ｃ】本出願のある実施形態による、通信停止状態となるように汎用ドライブが第２のコネクタ１００２を制御する概略図である。
【図１０Ｄ】本出願のある実施形態による、汎用ドライブがデータストレージモジュール１００６を２つの独立したアクセス領域へと分割する概略図である。
【図１１】本出願のある実施形態による、分散型ストレージアーキテクチャにおける制御デバイスＡに欠陥がある場合の概略図である。
【図１２Ａ】本出願のある実施形態による集中型ストレージアーキテクチャのストレージシステムの概略図である。
【図１２Ｂ】本出願のある実施形態による集中型ストレージアーキテクチャのストレージシステムの側面図である。
【図１３Ａ】本出願のある実施形態によるドライブ３０３の概略図である。
【図１３Ｂ】本出願のある実施形態による１つの第１のコネクタ３０２を含む制御デバイス３０１の側面図である。
【図１３Ｃ】本出願のある実施形態による１つの第２のコネクタを含むドライブ３０３の側面図である。
【図１３Ｄ】本出願のある実施形態による制御デバイス３０１とドライブ３０３との間の接続関係の概略図である。
【図１４Ａ】本出願のある実施形態による１つの第１のコネクタ３０２を含む別の制御デバイス３０１の側面図である。
【図１４Ｂ】本出願のある実施形態による１つの第２のコネクタを含む別のドライブ３０３の側面図である。
【図１４Ｃ】本出願のある実施形態による制御デバイス３０１とドライブ３０３との間の別の接続関係の概略図である。
【図１５Ａ】本出願のある実施形態によるストレージシステム動作方法のフローチャートである。
【図１５Ｂ】本出願のある実施形態によるストレージシステム動作方法のフローチャートである。
【図１５Ｃ】本出願のある実施形態によるストレージシステム動作方法のフローチャートである。
【図１６】本出願のある実施形態によるストレージシステムの稼働モードを切り替えるための方法のフローチャートである。
【発明を実施するための形態】
【００３３】
本出願の実施形態の目的、技術的解決法、及び利点をより明確にするために、以下は、本明細書の添付の図面及び具体的な実装を参照して、本出願の実施形態の技術的解決法を詳しく説明する。
【００３４】
本明細書における「及び／又は」という用語は、関連付けられる物体を記述するための関連付けの関係のみを記述し、３つの関係が存在し得ることを表す。例えば、Ａ及び／又はＢは、Ａのみが存在する、ＡとＢの両方が存在する、及びＢのみが存在するという、３つの場合を表し得る。加えて、本明細書における文字「／」は全般に、別段規定されない限り、関連付けられる物体間の「又は」の関係を示す。
【００３５】
加えて、本出願の実施形態における「複数の」は「２つ以上の」を意味することが理解されるべきである。「第１の」及び「第２の」などの語は、区別及び説明のために使用されるだけであり、相対的な重要性のインジケーション又は示唆、或いは、順序のインジケーション又は示唆として理解されるべきではない。
【００３６】
本出願の実施形態はストレージシステムを提供する。ストレージシステムは、図１Ａ又は図１Ｂに示されるデータ読み取り／書き込みシナリオに適用される。図１Ａに示されるデータ読み取り／書き込みシナリオでは、クライアントは、ドライブコントローラを使用することによって、ドライブコントローラに接続されるドライブにアクセスする。例えば、クライアントがドライブの中のデータを取得する必要があるとき、クライアントは、データ読み取り命令をドライブコントローラに送信する。データ読み取り命令を受信した後で、ドライブコントローラは、データを記憶するドライブからデータを取得し、データをクライアントに送信する。クライアントがデータを記憶する必要があるとき、クライアントは、データ書き込み命令をドライブコントローラに送信する。データ書き込み命令は、記憶されるべきデータを搬送する。データ書き込み命令を受信した後で、ドライブコントローラは、記憶されるべきデータをデータ書き込み命令から取得し、対応するドライブに記憶されるべきデータを記憶する。
【００３７】
図１Ａとは異なり、図１Ｂに示されるデータ読み取り／書き込みシナリオでは、クライアントは、クラウドネットワークを使用することによって、データ読み取り命令又はデータ書き込み命令をドライブコントローラに送信する。クラウドネットワークを使用することによってデータ読み取り命令を受信し、データを対応するドライブから取得した後で、ドライブコントローラは、クラウドネットワークを使用することによってデータをクライアントに送信する。クラウドネットワークを使用することによってデータ書き込み命令を受信した後で、ドライブコントローラは、対応するドライブに、データ書き込み命令から取得された記憶されるべきデータを記憶する。
【００３８】
図１Ａ及び図１Ｂに示されるシナリオにおいて、１つのクライアント、１つのドライブコントローラ、及び１つのドライブの間の相互作用は、説明のための例として使用されるだけであり、本出願の実施形態の適用シナリオに対するいかなる制限も構成すべきではないことに留意されたい。実際のデータ読み取り／書き込みシナリオでは、複数のクライアント、複数のドライブコントローラ、及び複数のドライブがあり得る。例えば、複数のクライアントは、複数のドライブコントローラの任意の１つに接続されるドライブにアクセスしてよく、又は、複数のクライアントは、固有のドライブコントローラに接続されるドライブだけにアクセスしてよい。これは、本出願の実施形態では限定されない。
【００３９】
ドライブコントローラ及びドライブは、集中型ストレージアーキテクチャにあることがある。図２Ａに示されるように、集中型ストレージアーキテクチャは、ドライブコントローラＡ、ドライブコントローラＢ、複数のドライブ、及びバックプレーンを含む。集中型ストレージアーキテクチャでは、１つのデータが複数のドライブのうちの１つに記憶される。例えば、ユーザＡのビデオデータはドライブ１に記憶され、ユーザＡの音声データはドライブ２に記憶される。動作が、あるデータに対して実行される必要があるとき、ドライブコントローラＡ又はドライブコントローラＢは、命令を送信し、バックプレーンを使用することによって命令をドライブに出力して、対応するドライブからデータを取得し得る。集中型ストレージアーキテクチャでは、ドライブコントローラＡとドライブコントローラＢの両方が、ドライブに記憶されているデータにアクセスすることができ、ドライブコントローラＡ又はドライブコントローラＢのいずれかが欠陥のある状態となった後で、欠陥のあるドライブコントローラのサービスは、他方のドライブコントローラによって引き継がれてよく、他方のドライブコントローラは、欠陥のあるドライブコントローラのサービスを分担し続ける。
【００４０】
ドライブコントローラ及びドライブは、分散型ストレージアーキテクチャにあることがある。図２Ｂは、分散型ストレージアーキテクチャの例を示す。分散型ストレージアーキテクチャは、１つのドライブコントローラ、複数のドライブ、及びバックプレーンを含む。分散型ストレージアーキテクチャでは、データは複数のデータへと分割されてよく、各データに対応する確認コードが生成される。各データ及び対応する確認コードは、複数のドライブの各々に記憶される。例えば、ユーザＡのビデオデータはビデオデータ１からビデオデータ３へと分割され、ビデオデータ１からビデオデータ３にそれぞれ対応する確認コード、確認コード１から確認コード３が生成される。次いで、ビデオデータ１及び確認コード１がドライブ１に記憶され、ビデオデータ２及び確認コード２がドライブ２に記憶され、ビデオデータ３及び確認コード３がドライブ３に記憶される。ドライブコントローラがビデオデータを読み取る必要があるとき、ドライブコントローラは、データ読み取り命令を送信し、バックプレーンを使用することによって命令をドライブ１からドライブ３にファンアウトし、ビデオデータ１からビデオデータ３及び確認コード１から確認コード３を３つのドライブから取得し得る。そして、ドライブコントローラは、ビデオデータ１からビデオデータ３及び確認コード１から確認コード３を処理し、例えば、組み合わせて、ビデオデータを最終的に取得する。
【００４１】
以下は、添付の図面を参照して、本出願の実施形態において提供されるストレージシステムを詳しく説明する。
【００４２】
図３Ａは、本出願の一実施形態によるストレージシステム３００の概略構造図である。ストレージシステム３００は、少なくとも１つの制御デバイス３０１及び第１のコネクタ３０２を含む。第１のコネクタ３０２はドライブに取り外し可能に接続するように構成され、ドライブはデータを記憶するように構成される。少なくとも１つの制御デバイス３０１は、第１のコネクタ３０２を使用することによって、第１のコネクタ３０２に接続されるドライブと通信するように構成される。ドライブは、ソリッドステートディスク（ｓｏｌｉｄ  ｓｔａｔｅ  ｄｒｉｖｅｓ、ＳＳＤ）、例えば、シリアルアドバンストテクノロジーアタッチメント（ｓｅｒｉａｌ  ａｄｖａｎｃｅｄ  ｔｅｃｈｎｏｌｏｇｙ  ａｔｔａｃｈｍｅｎｔ、ＳＡＴＡ）インターフェースを伴うＳＳＤ、シリアルアタッチトスモールコンピュータシステムインターフェース（ｓｅｒｉａｌ  ａｔｔａｃｈｅｄ  ｓｍａｌｌ  ｃｏｍｐｕｔｅｒ  ｓｙｓｔｅｍ  ｉｎｔｅｒｆａｃｅ、ＳＡＳ）インターフェースを伴うＳＳＤ、又は不揮発性メモリエクスプレス（ｎｏｎ−ｖｏｌａｔｉｌｅ  ｍｅｍｏｒｙ  ｅｘｐｒｅｓｓ、ＮＶＭＥ）インターフェースを伴うＳＳＤであり得る。代替的に、ドライブは、ハードディスクドライブ（ｈａｒｄ  ｄｉｓｋ  ｄｒｉｖｅ、ＨＤＤ）、例えば、ＳＡＴＡインターフェースを伴うＨＤＤ又はＳＡＳインターフェースを伴うＨＤＤであり得る。これは本明細書では限定されない。
【００４３】
少なくとも１つの制御デバイス３０１が、第１のコネクタ３０２を使用することによって、第１のコネクタ３０２に接続されるドライブと通信することは、次のように理解され得ることに留意されたい。Ｋ個の第１のコネクタ３０２があり、Ｋ＞０であるとき、及びＫ個の第１のコネクタ３０２の各々がドライブに接続される場合、少なくとも１つの制御デバイス３０１は、Ｋ個の第１のコネクタ３０２を使用することによって、Ｋ個の第１のコネクタ３０２に接続されるドライブと通信する。Ｋ個の第１のコネクタ３０２のいくつかのみがドライブに接続される場合、少なくとも１つの制御デバイス３０１は、いくつかの第１のコネクタ３０２を使用することによって、いくつかの第１のコネクタ３０２に接続されるドライブと通信する。
【００４４】
前述の技術的解決法において、ドライブが第１のコネクタ３０２を使用することによって制御デバイス３０１に取り外し可能に接続され得るので、ユーザは、使用上の要件に基づいてドライブと制御デバイス３０１との間の接続関係をフレキシブルに構成して、異なるストレージアーキテクチャを構成し得る。例えば、１つの制御デバイス３０１が、第１のコネクタ３０２を使用することによって複数のドライブに接続されて、分散型ストレージアーキテクチャを構成する。代替的に、２つの制御デバイス３０１が、第１のコネクタ３０２を使用することによって１つのドライブに接続され、集中型ストレージアーキテクチャを構成する。このようにして、ストレージアーキテクチャが変更される必要があるとき、第１のコネクタ３０２とドライブとの間の接続関係が変更される必要があり、新しい制御デバイスと新しいドライブが購入される必要はない。これは、ストレージシステムのフレキシビリティを改善する。
【００４５】
以下は、制御デバイス３０１及び第１のコネクタ３０２を説明する。
【００４６】
ある例では、１つの制御デバイス３０１と１つの第１のコネクタ３０２がある。図３Ａに示されるように、制御デバイス３０１及び第１のコネクタ３０２は２つの独立した構成要素であり得る。制御デバイス３０１及び第１のコネクタ３０２は、通信バスを使用することによって接続され得る。例えば、通信バスは、ペリフェラルコンポーネントインターフェースエクスプレス（ｐｅｒｉｐｈｅｒａｌ  ｃｏｍｐｏｎｅｎｔ  ｉｎｔｅｒｆａｃｅ  ｅｘｐｒｅｓｓ、ＰＣＩＥ又はＰＣＩｅ）バスであり得る。代替的に、図３Ｂに示されるように、制御デバイス３０１は第１のコネクタ３０２を含み得る。この場合、第１のコネクタ３０２は制御デバイス３０１の一部である。例えば、第１のコネクタ３０２は制御デバイス３０１のファンアウトコネクタであり得る。ファンアウトコネクタは、１つのノード又は複数のノード上に集中される複数の信号をより広い空間範囲に広げるコネクタである。
【００４７】
別の例では、複数の第１のコネクタ３０２があり得る。例えば、第１のコネクタ３０２は制御デバイス３０１の一部である。図３Ｃに示されるように、制御デバイス３０１は３つの第１のコネクタ３０２を含み、各第１のコネクタ３０２はドライブに接続するように構成され得る。
【００４８】
ある例では、複数の制御デバイス３０１があり得る。図３Ｄを参照すると、ストレージシステム３００は、Ｍ個の制御デバイス３０１及びＮ個の第１のコネクタ３０２を含み、Ｎ個の第１のコネクタ３０２はドライブに接続するように構成され、Ｍは２以上の整数であり、ＮはＭ以上の整数であり、Ｋは正の整数である。
【００４９】
各制御デバイス３０１と第１のコネクタ３０２との間の構成関係が図３Ａから図３Ｃに示されており、詳細は再び説明されない。図３Ｄにおいて、例えば、第１のコネクタ３０２は制御デバイス３０１の一部である。全ての制御デバイス３０１に含まれる第１のコネクタ３０２の数量は同じであり得る。例えば、Ｍ個の制御デバイス３０１の各々はＳ個の第１のコネクタ３０２を含み得る。代替的に、全ての制御デバイス３０１に含まれる第１のコネクタ３０２の数量は異なり得る。例えば、Ｍ個の制御デバイス３０１のうちの第１の制御デバイス３０１は３つの第１のコネクタ３０２を含み、Ｍ個の制御デバイス３０１のうちの第２の制御デバイス３０１は２つの第１のコネクタ３０２を含む、などである。図３Ｄでは、例えば、Ｍは３であり、３つの制御デバイス３０１の各々が２つの第１のコネクタ３０２を含む。
【００５０】
以下は制御デバイス３０１を説明する。以下の説明では、例えば、第１のコネクタ３０２は制御デバイス３０１の一部である。
【００５１】
ある例では、図４を参照すると、制御デバイス３０１はプロセッサ３０１１を含み得る。プロセッサ３０１１は、第１のコネクタ３０２に電気的に接続される。プロセッサ３０１１は中央処理装置（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ、ＣＰＵ）、デジタルシグナルプロセッサ、特定用途向け集積回路、或いは、フィールドプログラマブルゲートアレイ（ｆｉｅｌｄ−ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ、ＦＰＧＡ）又は別のプログラマブルロジックデバイスであり得る。これは本明細書では限定されない。
【００５２】
ある例では、プロセッサ３０１１は、高速信号ユニット３０１１１及び制御ユニット３０１１２を含み得る。高速信号ユニット３０１１１は、プロセッサ３０１１とドライブとの間のサービスデータの送信のために構成される。例えば、プロセッサ３０１１は、高速信号ユニット３０１１１を使用することによって、ドライブに記憶されているデータを取得し、又は、プロセッサ３０１１は、高速信号ユニット３０１１１を使用することによって、クライアントから受信された記憶されるべきデータをドライブに記憶する。制御ユニット３０１１２は、ドライブの状態を検出し、例えば、ドライブが第１のコネクタ３０１に接続されているか、又は切断されているかを検出し、ドライブが欠陥状態にあるかどうかを検出し、ドライブについての情報を検出し、ドライブの電源オン状態又は電源オフ状態を制御し、サービスデータを送信するために使用されるドライブのポートのリセット状態又はリセットデアサート状態を制御するように構成される。以下は、高速信号ユニット３０１１１及び制御ユニット３０１１２を別々に説明する。
【００５３】
高速信号ユニット３０１１１は、第１のコネクタ３０２に接続されるドライブの稼働モードがプロセッサ３０１１の現在の稼働モードと適合すると決定すると、第１のコネクタ３０２に電力を供給するように構成されてよく、そうすることによって、第１のコネクタ３０２に接続されるドライブの電源が入れられる。
【００５４】
本出願のこの実施形態では、ドライブの稼働モードが高速信号ユニット３０１１１の現在の稼働モードと適合するかどうかを決定する前に、高速信号ユニット３０１１１はまず、第１のコネクタ３０２がドライブに接続されているか、又は切断されているかを決定し得る。例えば、さらに図４を参照すると、検出回路３０２１が第１のコネクタ３０２において配置されてよく、検出回路３０２１は、高速信号ユニット３０１１１に電気的に接続される。第１のコネクタ３０２がドライブから切断されるとき、検出回路３０２１は第１のレベル、例えば、ローレベルを高速信号ユニット３０１１１に出力する。第１のコネクタ３０２がドライブに接続されるとき、検出回路３０２１は、第２のレベル、例えば、ハイレベルを高速信号ユニット３０１１１に出力する。この場合、高速信号ユニット３０１１１において決定条件が予め設定されていてよく、決定条件は次の通りであり得る。検出回路３０２１によって出力された第２のレベルを受信する場合、高速信号ユニット３０１１１は、検出回路３０２１に対応する第１のコネクタ３０２がドライブに接続されると決定し、検出回路によって出力される第１のレベルを受信する場合、高速信号ユニット３０１１１は、検出回路３０２１に対応する第１のコネクタ３０２がドライブから切断されていると決定する。例えば、検出回路３０２１によって出力されるハイレベルを受信するとき、高速信号ユニット３０１１１は、検出回路３０２１に対応する第１のコネクタ３０２がドライブに接続されると決定する。
【００５５】
複数の第１のコネクタ３０２がある場合、検出回路３０２１は、各第１のコネクタ３０２において配置されてよく、各第１のコネクタ３０２の検出回路３０２１によって出力されるレベルに基づいて、第１のコネクタ３０２がドライブに接続されているかどうかが決定されることに留意されたい。
【００５６】
高速信号ユニット３０１１１はさらに、検出回路３０２１によって出力されるレベルの変化に基づいて、第１のコネクタ３０２とドライブとの間の接続が緩いかどうかを決定し得る。例えば、高速信号ユニット３０１１１が、０．５秒の間隔で、検出回路３０２１により出力されるレベルが第１のレベルから第２のレベルに変化すること、又は第２のレベルから第１のレベルに変化することを決定する場合、高速信号ユニット３０１１１は、第１のコネクタ３０２とドライブとの間の接続が緩いと決定する。
【００５７】
高速信号ユニット３０１１１が、第１のコネクタ３０２がドライブに接続されていると決定する場合、高速信号ユニット３０１１１はさらに、第１のコネクタ３０２を使用することによって、第１の情報を第１のコネクタ３０２に接続されるドライブに送信し得る。第１のコネクタ３０２に接続されるドライブに欠陥があるかどうかを検出するために、第１の情報が使用される。ドライブに欠陥がない場合、ドライブは、第１のコネクタ３０２を使用することによって、第１の情報に対応するフィードバック情報を高速信号ユニット３０１１１に送信する。ドライブに欠陥がある場合、ドライブは、フィードバック情報を高速信号ユニット３０１１１に送信することができない。第１の情報及びフィードバック情報は、ドライブと共に高速信号ユニット３０１１１により事前に合意されていてもよい。そして、高速信号ユニット３０１１１が、第１のコネクタ３０２に接続されるドライブに第１の情報を送信した後で第１のコネクタ３０２を使用することによって予め設定された時間内にフィードバック情報を受信しない場合、高速信号ユニット３０１１１は、第１のコネクタ３０２に接続されるドライブに欠陥があると決定する。
【００５８】
第１のコネクタ３０２がドライブに接続され、第１のコネクタ３０２に接続されるドライブに欠陥がないと、高速信号ユニット３０１１１が決定する場合、高速信号ユニット３０１１１は、第１のコネクタ３０２に接続されるドライブの稼働モードを取得し得る。
【００５９】
本出願のこの実施形態では、高速信号ユニット３０１１１の稼働モードは、第１の稼働モード及び第２の稼働モードを含む。第１の稼働モードは、プロセッサ集中型稼働モードとも呼ばれることがあり、図２Ａに示される集中型ストレージアーキテクチャにおけるドライブ制御ユニットと同じ処理モードで高速信号ユニット３０１１１が動作することを示すことがある。例えば、クライアントからデータ書き込み命令を受信した後で、高速信号ユニット３０１１１は、データ書き込み命令において搬送される記憶されるべきデータをドライブに送信する。第２の稼働モードは、プロセッサ分散型稼働モードとも呼ばれることがあり、図２Ｂに示される分散型ストレージアーキテクチャにおけるドライブ制御ユニットと同じ処理モードで高速信号ユニット３０１１１が動作することを示すことがある。例えば、クライアントからデータ書き込み命令を受信した後、制御デバイス３０１はまず、データ書き込み命令において搬送される記憶されるべきデータを複数のサブデータへと分割し、各サブデータに対応する確認コードを生成し、各サブデータ及びサブデータに対応する確認コードをドライブに送信する。
【００６０】
ドライブの稼働モードは、第３の稼働モード及び第４の稼働モードを含む。第３の稼働モードは、ドライブ集中型稼働モードとも呼ばれることがあり、図２Ａに示される集中型ストレージアーキテクチャにおけるドライブと同じ処理モード、例えば、ドライブ共有アクセスモードでドライブが動作することを示すことがある。具体的には、ドライブに接続される複数の制御デバイスが全て、ドライブに対して読み取り／書き込み動作を実行し得る。第４の稼働モードは、ドライブ分散型稼働モードとも呼ばれることがあり、図２Ｂに示される分散型ストレージアーキテクチャにおけるドライブと同じ処理モード、例えば、ドライブ独占稼働モードでドライブが動作することを示すことがある。具体的には、ドライブに接続される複数の制御デバイスのうちの１つだけが、ドライブに対して読み取り／書き込み動作を実行し得る。
【００６１】
ある特定の実装処理では、高速信号ユニット３０１１１の稼働モードが第１の稼働モードと第２の稼働モードのうちの１つだけを含むことが設定され得る。この場合、高速信号ユニット３０１１１は固定された稼働モードで動作する。高速信号ユニット３０１１１の稼働モードが第１の稼働モードに設定されるとき、高速信号ユニット３０１１１は第１の稼働モードだけで動作することができる。例えば、高速信号ユニット３０１１１は、ユーザの命令に従って、稼働モードのうちの１つで動作することを決定し得る。ある例では、少なくとも１つの稼働モードに対応するシステムコードが、高速信号ユニット３０１１１において設定され得る。例えば、第１の稼働モードに対応する第１のシステムコード及び第２の稼働モードに対応する第２のシステムコードのうちの少なくとも１つが設定され得る。プロセッサ３０１１の電源が入れられた後で、高速信号ユニット３０１１１は、制御ユニット３０１１２に記憶されている対応するシステムコードを読み取って実行し、そうすることによって、高速信号ユニット３０１１１は、システムコードに対応する稼働モードに入ることができる。システムコードは、異なる稼働モードにおける、ストレージシステムの高信頼性フォールトトレランスポリシー、ドライブの稼働モード、並びに、ドライブのタイプ、製造業者、及びモデルなどの情報を含む。
【００６２】
本出願のこの実施形態では、高速信号ユニット３０１１１は、第１のコネクタ３０２に接続されるドライブの稼働モードがプロセッサ３０１１の現在の稼働モードと適合するかどうかを決定する。決定の方式は、限定はされないが、以下の２つの方式を含む。
【００６３】
第１の方式では、高速信号ユニット３０１１１がまず、制御ユニット３０１１２を使用することによってドライブについての情報を取得してよく、ドライブについての情報は、ドライブのモデル、容量、及び製造業者などの、少なくとも１つのタイプの関連情報を含む。高速信号ユニット３０１１１は、ドライブについての情報とドライブの稼働モードとの間の対応付けを予め記憶する。この場合、高速信号ユニット３０１１１は、ドライブについての情報とドライブの稼働モードとの間の対応付けに基づいて、ドライブの稼働モードを決定することができる。例えば、ドライブについての情報とドライブの稼働モードとの間の対応付けは、製造業者Ａと第１の稼働モードとの間の第１の対応付け、及び製造業者Ｂと第２の稼働モードとの間の第２の対応付けを含む。制御ユニット３０１１２を使用することによって高速信号ユニット３０１１１により取得されるドライブについての情報が、ドライブの製造業者が製造業者Ａであることを示す場合、高速信号ユニット３０１１１は、ドライブの稼働モードが第１の稼働モードであると決定し得る。次いで、高速信号ユニット３０１１１は、ドライブの稼働モードが高速信号ユニット３０１１１の現在の稼働モードと適合するかどうかを決定し得る。
【００６４】
第２の方式では、高速信号ユニット３０１１１が高速信号ユニット３０１１１の現在の稼働モードを決定する場合、高速信号ユニット３０１１１は対応するドライブ決定条件を設定し得る。ドライブ決定条件は、ドライブの稼働モードが高速信号ユニット３０１１１の現在の稼働モードと適合するとき、ドライブについての情報を含む。ドライブについての情報は第１の方式における対応するコンテンツと同じであり、再び説明されない。例えば、高速信号ユニット３０１１１の現在の稼働モードが第１の稼働モードである場合、ドライブ決定条件は製造業者Ａに設定される。次いで、ドライブについての情報がドライブ決定条件と同じであるとき、高速信号ユニット３０１１１は、ドライブの稼働モードが高速信号ユニット３０１１１の現在の稼働モードと適合すると決定する。ドライブについての情報がドライブ決定条件と異なる場合、高速信号ユニット３０１１１は、ドライブの稼働モードが高速信号ユニット３０１１１の現在の稼働モードと適合しないと決定する。
【００６５】
高速信号ユニット３０１１１の稼働モードがドライブの稼働モードと適合するということは、高速信号ユニット３０１１１の稼働モードが第１の稼働モードであるとき、ドライブの稼働モードが第３の稼働モードであり、又は、高速信号ユニット３０１１１の稼働モードが第２の稼働モードであるとき、ドライブの稼働モードが第４の稼働モードであることを意味することに留意されたい。もちろん、高速信号ユニット３０１１１及びドライブの稼働モードがさらに別の稼働モードを含む場合、高速信号ユニット３０１１１の稼働モードがドライブの稼働モードと適合することは、別の対応付けをさらに含み得る。これは本明細書では限定されない。
【００６６】
加えて、高速信号ユニット３０１１１が制御ユニット３０１１２を使用することによってドライブについての情報を取得することは、次の通りであり得ることに留意されたい。ドライブについての情報がドライブの中の固定されたストレージ空間に予め記憶され、ドライブが第１のコネクタ３０２に接続されるとき、高速信号ユニット３０１１１が、制御ユニット３０１１２を使用することによって、ドライブの中の固定されたストレージ空間からドライブについての情報を読み取る。
【００６７】
稼働モードが高速信号ユニット３０１１１の現在の稼働モードと適合するドライブを決定した後で、高速信号ユニット３０１１１は、ドライブに接続される第１のコネクタ３０２に電力を供給する。図４に示されるように、３つの第１のコネクタ３０２のうちの１番目の第１のコネクタ３０２及び３番目の第１のコネクタ３０２がそれぞれドライブＡ及びドライブＢに接続されることと、１番目の第１のコネクタ３０２に接続されるドライブの稼働モードが高速信号ユニット３０１１１の現在の稼働モードと適合することとを、高速信号ユニット３０１１１が決定するとき、高速信号ユニット３０１１１は、１番目の第１のコネクタ３０２に電力を供給する。
【００６８】
稼働モードが高速信号ユニット３０１１１の現在の稼働モードと適合しないドライブを決定した後で、高速信号ユニット３０１１１は、ドライブに接続される第１のコネクタ３０２に電力を供給することを停止する。図４に示されるように、３つの第１のコネクタ３０２のうちの１番目の第１のコネクタ３０２及び３番目の第１のコネクタ３０２がそれぞれドライブＡ及びドライブＢに接続されることと、３番目の第１のコネクタ３０２に接続されるドライブの稼働モードが高速信号ユニット３０１１１の現在の稼働モードと適合しないこととを、高速信号ユニット３０１１１が決定するとき、高速信号ユニット３０１１１は、１番目の第１のコネクタ３０２に電力を供給することを停止する。
【００６９】
高速信号ユニット３０１１１が第１のコネクタ３０２に電力を供給することは、次のことを意味することに留意されたい。ドライブに接続される第１のコネクタ３０２の電源が現在入っている場合、高速信号ユニット３０１１１は、制御ユニット３０１１２の電力供給ステータスを維持することによって第１のコネクタ３０２に電力を供給し続ける。ドライブに接続される第１のコネクタ３０２の電源が現在入っていない場合、高速信号ユニット３０１１１は、制御ユニット３０１１２の電力供給ステータスを変更することによって第１のコネクタ３０２に電力を供給する。高速信号ユニット３０１１１が第１のコネクタ３０２に電力を供給することを停止することは、次のことを意味することに留意されたい。ドライブに接続される第１のコネクタ３０２の電源が現在入っている場合、高速信号ユニット３０１１１は、制御ユニット３０１１２の電力供給ステータスを変更することによって、第１のコネクタ３０２に電力を供給することを停止する。ドライブに接続される第１のコネクタ３０２が現在電源オフの場合、高速信号ユニット３０１１１は、制御ユニット３０１１２の電力供給ステータスを維持することによって、第１のコネクタ３０２を電源が入っていない状態に維持する。
【００７０】
高速信号ユニット３０１１１が電力を少なくとも１つの第１のコネクタ３０２に供給した後で、例えば、高速信号ユニット３０１１１がＭ個の第１のコネクタ３０２に電力を供給した後で、高速信号ユニット３０１１１は、Ｍ個の第１のコネクタ３０２のうちのＭ１個の第１のコネクタ３０２を使用することによって、Ｍ１個の第１のコネクタ３０２に接続されるドライブのうちの１つ又は複数にデータ読み取り命令を送信し、Ｍ１個の第１のコネクタ３０２を使用することによって、データ読み取り命令に対応するデータを取得してよく、Ｍ１は０より大きくＭ以下の整数である。代替的に、高速信号ユニット３０１１１は、Ｍ１個の第１のコネクタ３０２に接続されるドライブのうちの１つ又は複数にデータ書き込み命令を送信して、データ書き込み命令において搬送される記憶されるべきデータをドライブに記憶し得る。
【００７１】
高速信号ユニット３０１１１が、Ｍ個の第１のコネクタ３０２のうちのＭ１個の第１のコネクタ３０２を使用することによって、Ｍ１個の第１のコネクタ３０２に接続されるドライブのうちの１つ又は複数にデータ読み取り命令又はデータ書き込み命令を送信した後で、高速信号ユニット３０１１１はさらに、Ｍ個の第１のコネクタ３０２の各々がドライブに接続されるかどうかを検出し続け得る。第１のコネクタ３０２がドライブから切断されていることを高速信号ユニット３０１１１が決定する場合、高速信号ユニット３０１１１は、第１のコネクタ３０２に電力を供給することを停止し得る。
【００７２】
ある例では、制御デバイス３０１は、複数の個別の構成要素を含み得る。図５を参照すると、制御デバイス３０１は、プロセッサ、メモリ、クロック信号生成器、及び電力供給モジュールを含み得る。プロセッサは、例えば、中央処理装置（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ、ＣＰＵ）、ＦＰＧＡ、又は別のプログラマブルロジックデバイスである。これは本明細書では限定されない。プロセッサがＣＰＵである例が以下の説明において使用される。
【００７３】
制御デバイス３０１のＣＰＵは、第１のコネクタ３０２を使用することによって、第１のコネクタ３０２に接続されるドライブと通信するように構成される。例えば、ＣＰＵは、ドライブ送信プロトコルを使用することによってドライブと通信し得る。ドライブ送信プロトコルは、例えば、ＰＣＩＥプロトコル、シリアルＡＴＡインターフェースアタッチメント（ｓｅｒｉａｌ  ａｄｖａｎｃｅｄ  ｔｅｃｈｎｏｌｏｇｙ  ａｔｔａｃｈｍｅｎｔ、ＳＡＴＡ）プロトコル、又はシリアルアタッチトスモールコンピュータシステムインターフェース（ｓｅｒｉａｌ  ａｔｔａｃｈｅｄ  ｓｍａｌｌ  ｃｏｍｐｕｔｅｒ  ｓｙｓｔｅｍ  ｉｎｔｅｒｆａｃｅ、ＳＡＳ）プロトコルである。複数の第１のコネクタ３０２がある場合、ＣＰＵは、複数の第１のコネクタ３０２の全てを使用することによって、全ての第１のコネクタ３０２に接続されるドライブと通信する。代替的に、ＣＰＵは、複数の第１のコネクタ３０２のうちのいくつかを使用することによって、いくつかの第１のコネクタ３０２に接続されるドライブと通信し得る。ＣＰＵとドライブとの間の通信は、別のデバイス（例えば、クライアント）から記憶されるべきデータを受信した後で、ＣＰＵによって、対応するドライブに記憶されるべきデータを記憶すること、又は、別のデバイスからデータ読み取り命令を受信した後で、ドライブからＣＰＵによって、データ読み取り命令に対応するデータを取得することを含み得る。
【００７４】
制御デバイス３０１のメモリは、ＣＰＵに接続され、ＣＰＵとドライブとの間の通信の間にＣＰＵのためのキャッシュ機能を提供するように構成される。例えば、クライアントから記憶されるべきデータを受信した後で、ＣＰＵはまず、メモリに記憶されるべきデータを記憶し、次いで、対応するドライブに記憶されるべきデータを記憶するためにデータ書き込み命令をドライブに送信する。
【００７５】
制御デバイス３０１のクロック信号生成器は、ＣＰＵ及び第１のコネクタ３０２に別々に接続され、ＣＰＵ及び第１のコネクタ３０２に接続されるドライブのためのクロックを提供するように構成される。複数の第１のコネクタ３０２があるとき、クロック信号生成器は各第１のコネクタ３０２に接続されることに留意されたい。クロックは、ドライブ送信プロトコルを使用することによってＣＰＵとドライブとの間の通信に必要とされる第１のクロックを含み、及び／又は、ＣＰＵ及びドライブの動作クロックと、ローカルの位相ロックループクロックとを含む。第１のクロックは、代替的に、高速クロック、又はデータをサンプリングするためにドライブ３０３によって使用される位相ロックループクロックと呼ばれることもある。ドライブ３０３によって使用される送信プロトコルが、動作クロック又はローカルの位相ロックループクロックをサポートする場合、クロック信号生成器は、第１のクロックを提供する必要はないことがある。ドライブ送信プロトコルは、例えば、ＰＣＩＥプロトコル、シリアルＡＴＡインターフェースアタッチメント（ｓｅｒｉａｌ  ａｄｖａｎｃｅｄ  ｔｅｃｈｎｏｌｏｇｙ  ａｔｔａｃｈｍｅｎｔ、ＳＡＴＡ）プロトコル、又はシリアルアタッチトスモールコンピュータシステムインターフェース（ｓｅｒｉａｌ  ａｔｔａｃｈｅｄ  ｓｍａｌｌ  ｃｏｍｐｕｔｅｒ  ｓｙｓｔｅｍ  ｉｎｔｅｒｆａｃｅ、ＳＡＳ）プロトコルである。
【００７６】
制御デバイス３０１の電力供給モジュールは、ＣＰＵ及び第１のコネクタ３０２に別々に接続され、ＣＰＵ及び第１のコネクタ３０２に接続されるドライブの動作電圧を提供するように構成される。複数の第１のコネクタ３０２があるとき、電力供給モジュールは各第１のコネクタ３０２に接続されることに留意されたい。
【００７７】
ある例では、図５に示されるように、制御デバイス３０１はさらに、クライアントに接続するように構成される入力／出力インターフェースを含む。入力／出力インターフェースは、ＣＰＵに電気的に接続され、クライアントからデータ読み取り命令又はデータ書き込み命令を受信し、次いで、データ読み取り命令又はデータ書き込み命令をＣＰＵに送信するように構成される。入力／出力インターフェースがクライアントからデータ読み取り命令を取得する場合、入力／出力インターフェースはさらに、クライアントに、データ読み取り命令に対応しＣＰＵによって送信されるデータを送信するように構成される。入力／出力インターフェースは、ＳＡＳ、ＰＣＩＥインターフェース、ギガビットイーサネットインターフェース（ｇｉｇａｂｉｔ  ｅｔｈｅｒｎｅｔ、ＧＥ）、又は別のインターフェースであり得る。これは本明細書では限定されない。
【００７８】
ある例では、ＣＰＵは、第１のコネクタ３０２に接続されるドライブの稼働モードがＣＰＵの現在の稼働モードと適合すると決定するとき、第１のコネクタ３０２に電力を供給するように電力供給モジュールを制御するように構成されてよく、そうすることによって、第１のコネクタ３０２に接続されるドライブの電源が入れられる。
【００７９】
本出願のこの実施形態では、ドライブの稼働モードがＣＰＵの現在の稼働モードと適合するかどうかを決定する前に、ＣＰＵはまず、第１のコネクタ３０２がドライブに接続されているか、又は切断されているかを決定し得る。図６を参照すると、この場合、制御デバイス３０１はさらに検出構成要素を含み得る。検出構成要素は、ＣＰＵ、第１のコネクタ３０２、及び電力供給モジュールに別々に接続され、電力供給モジュールはさらに、検出構成要素の動作電圧を提供するように構成される。検出構成要素は、第１のコネクタ３０２がドライブに接続されているか、又は切断されているかを検出するように構成され得る。複数の第１のコネクタ３０２があるとき、検出構成要素は各第１のコネクタ３０２に接続されることに留意されたい。例えば、検出構成要素は、コンプレックスプログラマブルロジックデバイス（ｃｏｍｐｌｅｘ  ｐｒｏｇｒａｍｍａｂｌｅ  ｌｏｇｉｃ  ｄｅｖｉｃｅ、ＣＰＬＤ）又は特定用途向け集積回路（ａｐｐｌｉｃａｔｉｏｎ  ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ、ＡＳＩＣ）であり得る。図６では、検出構成要素がＣＰＬＤである例が使用される。
【００８０】
図６では、ＣＰＬＤはＣＰＵに直接接続されることに留意されたい。別の例では、ＣＰＬＤは、代替的に、ＣＰＵの周辺ポート拡張チップを使用することによってＣＰＬＤに接続され得る。図７において、ＣＰＵの周辺ポート拡張チップが集積サウスブリッジ（ｐｌａｔｆｏｒｍ  ｃｏｎｔｒｏｌｌｅｒ  ｈｕｂ、ＰＣＨ）である例が使用され、ＰＣＨとＣＰＬＤはローピンカウント（ｌｏｗ  ｐｉｎ  ｃｏｕｎｔ、ＬＰＣ）を使用することによって接続され得る。
【００８１】
さらに図６を参照すると、検出回路３０２１がさらに第１のコネクタ３０２に配置され得る。第１のコネクタ３０２がドライブから切断されているとき、検出回路３０２１は、第１のレベル、例えば、ローレベルをＣＰＬＤに出力する。第１のコネクタ３０２がドライブに接続されているとき、検出回路３０２１は、第２のレベル、例えば、ハイレベルをＣＰＬＤに出力する。検出回路３０２１によって出力される第２のレベルが受信される場合、ＣＰＬＤは、検出回路３０２１に対応する第１のコネクタ３０２がドライブに接続されると決定し、検出回路によって出力される第１のレベルが受信される場合、ＣＰＬＤは、検出回路３０２１に対応する第１のコネクタ３０２がドライブから切断されていると決定する。例えば、検出回路３０２１によって出力されるハイレベルを受信するとき、ＣＰＬＤは、検出回路３０２１に対応する第１のコネクタ３０２がドライブに接続されると決定する。
【００８２】
第１のコネクタ３０２がドライブに接続されているか、又は切断されているかをＣＰＬＤが決定した後で、ＣＰＵは、複数の方式でＣＰＬＤの決定結果を取得してよく、決定結果は、第１のコネクタ３０２がドライブに接続されているか、又は切断されているかを示すために使用される。例えば、ＣＰＵがＣＰＬＤの決定結果を取得する方式は、限定はされないが、以下の２つの方式を含む。
【００８３】
第１の取得方式では、ＣＰＬＤは決定結果をＣＰＵに送信し得る。複数の第１のコネクタ３０２がある場合、ＣＰＬＤが決定結果をＣＰＵに送信するとき、第１のコネクタ３０２の識別子が搬送され得る。例えば、複数の第１のコネクタ３０２に対して数字が設定されてよく、ＣＰＬＤは、第１のコネクタ３０２の数字を決定結果に追加する。
【００８４】
第２の取得方式では、ＣＰＬＤは、決定結果を記憶するように構成されるレジスタを設定してよく、例えば、レジスタは第１のレジスタと呼ばれる。ＣＰＬＤは、第１のレジスタに決定結果を記憶してよく、例えば、決定結果を表すために１ビットを使用してよい。１ビットの値が０である場合、それは、第１のコネクタ３０２がドライブに接続されていることを示し、１ビットの値が１である場合、それは、第１のコネクタ３０２がドライブから切断されていることを示す。ＣＰＵが決定結果を取得する必要がある場合、ＣＰＵは、第１のレジスタの値を直接読み取り、第１のレジスタの値と、第１のレジスタにおけるビットの値と接続ステータスとの間の予め設定された対応付けとに基づいて、第１のコネクタ３０２がドライブに接続されているか、又は切断されているかを決定する。第１のレジスタの値と接続ステータスとの間の対応付けは次の通りであり得る。第１のレジスタのビットの値が０である場合、それは、第１のコネクタ３０２がドライブに接続されていることを示し、第１のレジスタのビットの値が１である場合、それは、第１のコネクタ３０２がドライブから切断されていることを示す。
【００８５】
第２の方式において、複数の第１のコネクタ３０２があるとき、ＣＰＬＤは、各第１のコネクタ３０２に対する対応する第１のレジスタを設定し得ることに留意されたい。ＣＰＵは、各第１のコネクタ３０２に対応する第１のレジスタの値を読み取り、各第１のコネクタ３０２がドライブから切断されているか、又は接続されているかを決定し得る。代替的に、ＣＰＬＤは、１つだけの第１のレジスタを設定し、各第１のコネクタ３０２に対応する決定結果を第１のレジスタに記憶してよい。具体的には、第１のレジスタは複数のビットを含み、１ビットが、１つの第１のコネクタ３０２に対応する決定結果を示す。図６に示されるように、制御デバイス３０１は、３つの第１のコネクタ３０２を含む。ＣＰＬＤは１つの第１のレジスタを設定し、全ての第１のコネクタ３０２に対応する決定結果は、第１のレジスタの３ビットを使用することによって示され、第１のレジスタの１ビットは、１つの第１のコネクタ３０２に対応する決定結果を示すために使用される。例えば、レジスタのビットの値が「００１」である場合、それは、３番目の第１のコネクタ３０２がドライブから切断されており、残りの２つの第１のコネクタ３０２がドライブに別々に接続されていることを示す。レジスタのビットの値が「０００」である場合、それは、３番目の第１のコネクタ３０２の各々がドライブから切断されていることを示す。
【００８６】
ＣＰＬＤはさらに、第１のコネクタ３０２を使用することによって、第１のコネクタ３０２に接続されるドライブに第１の情報を送信し得る。第１の情報は、第１のコネクタ３０２に接続されるドライブに欠陥があるかどうかを検出するために使用される。ドライブに欠陥がない場合、ドライブは、第１のコネクタ３０２を使用することによって、第１の情報に対応するフィードバック情報をＣＰＬＤに送信する。ドライブに欠陥がある場合、ドライブは、フィードバック情報をＣＰＬＤに送信することができない。第１の情報及びフィードバック情報は、ＣＰＬＤとドライブにより事前に合意され得る。そして、ＣＰＬＤが第１のコネクタ３０２に接続されるドライブに第１の情報を送信した後で第１のコネクタ３０２を使用することによって予め設定された時間内にフィードバック情報を受信しない場合、ＣＰＬＤは、第１のコネクタ３０２に接続されるドライブに欠陥があると決定する。それに対応して、ＣＰＬＤは、検出されるドライブに欠陥があるかどうかについての検出結果も、対応するレジスタ、例えば、第２のレジスタに記憶し得る。
【００８７】
ＣＰＵが、ＣＰＬＤの対応するレジスタのビットの値に基づいて、第１のコネクタ３０２がドライブに接続されており、第１のコネクタ３０２に接続されるドライブに欠陥がないと決定する場合、ＣＰＵは、第１のコネクタ３０２に接続されるドライブの稼働モードを取得し得る。
【００８８】
本出願のこの実施形態では、ドライブの稼働モード及びＣＰＵの稼働モードは上で説明されており、詳細は本明細書では再び説明されない。ＣＰＵは、第１のコネクタ３０２に接続されるドライブについての情報を取得し、ドライブの稼働モードがＣＰＵの稼働モードと適合するかどうかを決定する。具体的な決定方式は既に前に説明されており、本明細書では再び説明されない。
【００８９】
本出願のこの実施形態では、ＣＰＵがドライブについての情報を取得する方式は、限定はされないが、以下の２つの方式を含む。
【００９０】
ドライブについての情報を取得するための第１の方式では、ＣＰＵは、第１のコネクタ３０２に接続されるバスを使用することによって、第１のコネクタ３０２に接続されるドライブに、ドライブについての情報を取得するために使用される命令を送信し得る。命令を受信した後で、ドライブは、ドライブについての情報をＣＰＵに送信する。この場合、ＣＰＵと第１のコネクタ３０２を接続するバスは、カスタマイズされたバス、又はＰＣＩＥバスなどの高速信号を送信するように構成されるバスであり得る。高速信号は、ＣＰＵがドライブ送信プロトコルを使用することによってドライブと通信するときに使用される対応する信号である。これは本明細書では限定されない。
【００９１】
ドライブについての情報を取得するための第２の方式では、図７に示されるように、制御デバイス３０１はさらにＰＣＩＥスイッチ（ｓｗｉｔｃｈ）を含む。ＰＣＩＥスイッチは、ＰＣＩＥバスを使用することによってＣＰＵに接続され、ＰＣＩＥスイッチは、Ｉ２Ｃバスを使用することによって第１のコネクタ３０２に接続される。ＣＰＵは、ＰＣＩＥスイッチを使用することによって、第１のコネクタ３０２に接続されるドライブに、ドライブについての情報を取得するために使用される命令を送信する。命令を受信した後で、ドライブはドライブについての情報をＣＰＵに送信する。
【００９２】
稼働モードがＣＰＵの現在の稼働モードと適合するドライブを決定した後で、ＣＰＵは、ＣＰＬＤに、ドライブに接続される第１のコネクタ３０２に電力を供給するための命令を送信し、そうすることによって、ＣＰＬＤは、第１のコネクタ３０２に電力を供給するように電力供給モジュールを制御する。稼働モードがＣＰＵの現在の稼働モードと適合しないドライブを決定した後で、ＣＰＵは、ＣＰＬＤに、ドライブに接続される第１のコネクタ３０２に電力を供給することを停止するための命令を送信し、そうすることによって、ＣＰＬＤは、第１のコネクタ３０２に電力を供給することを停止するように電力供給モジュールを制御する。
【００９３】
ＣＰＬＤが第１のコネクタ３０２に電力を供給するように電力供給モジュールを制御し、ＣＰＬＤが第１のコネクタ３０２に電力を供給することを停止するように電力供給モジュールを制御し、これらは上で既に説明されており、本明細書では再び説明されないことに留意されたい。
【００９４】
ＣＰＵが少なくとも１つの第１のコネクタ３０２に電力を供給した後で、ＣＰＵは、少なくとも１つの第１のコネクタ３０２を使用することによってドライブと通信し得る。加えて、ＣＰＵはまた、ＣＰＬＤを使用することによってドライブにリセット命令又はリセットデアサート命令を送信して、リセット状態又はリセットデアサート状態となるように、サービスデータを送信するために使用されるドライブのポートを制御し得る。
【００９５】
ＣＰＬＤはさらに、第１のコネクタ３０２に接続されるドライブにＣＰＵによって送信される検出されたデータ読み取り命令又は検出されたデータ書き込み命令に基づいて、第１のコネクタ３０２に接続されるドライブの稼働状態を決定し得る。例えば、ＣＰＬＤが、第１のコネクタ３０２に接続されるドライブにＣＰＵによって送信されるデータ読み取り命令を検出する場合、ＣＰＬＤは、ドライブが読み取り稼働状態にあると決定する。ＣＰＬＤが、第１のコネクタ３０２に接続されるドライブにＣＰＵによって送信されるデータ書き込み命令を検出する場合、ＣＰＬＤは、ドライブが書き込み稼働状態にあると決定する。もちろん、ＣＰＬＤは、ドライブの稼働状態を記憶するように構成されるレジスタも設定し得る。具体的な方式は、検出されるドライブに欠陥があるかどうかについての検出結果を対応するレジスタに記憶する前述の方式と同じであり、本明細書では再び説明されない。
【００９６】
ＣＰＬＤはさらに、第１のコネクタ３０２とドライブとの間の接続が接続状態から切断状態に変化したと決定した後で、又は、第１のコネクタ３０２に接続されるドライブの稼働状態などの情報が変化した後で、ＰＣＩＥスイッチに割り込み信号を送信してよく、ＰＣＩＥスイッチは割り込み信号をＣＰＵに送信する。割り込み信号を受信した後で、ＣＰＵ処理が変化する。
【００９７】
さらに図４を参照すると、本出願のこの実施形態において提供されるストレージシステム３００は、ドライブ３０３をさらに含み得る。
【００９８】
本出願のこの実施形態では、ドライブ３０３は、限定はされないが、次の３つのタイプを含み得る。第１のドライブタイプは、集中型ストレージアーキテクチャのみにおいて使用されることができるドライブであり、集中型ドライブと呼ばれ得る。第２のドライブタイプは、分散型ストレージアーキテクチャのみにおいて使用されることができるドライブであり、分散型ドライブと呼ばれ得る。第３のドライブタイプは、集中型ストレージアーキテクチャと分散型ストレージアーキテクチャの両方において使用されることができるドライブであり、汎用ドライブと呼ばれ得る。３つのタイプのドライブが、以下で別々に説明される。
【００９９】
第１のドライブ／分散型ドライブ：
図８Ａを参照すると、ドライブ３０３は、第２のコネクタ８０１、存在信号出力モジュール８０２、電源変換モジュール８０３、内部ドライブ制御モジュール８０４、及びデータストレージモジュール８０５を含む。
【０１００】
第２のコネクタ８０１は、制御デバイス３０１に接続し、制御デバイス３０１とドライブ３０３との間のデータ通信のためのチャネルを提供するように構成される。例えば、第１のコネクタ３０２に接続された後で、ドライブ３０３は、第２のコネクタ８０１を使用することによって制御デバイス３０１からデータ読み取り命令を取得し、次いで、第２のコネクタ８０１を使用することによって、データ読み取り命令に対応するデータを制御デバイス３０１に送信する。
【０１０１】
存在信号出力モジュール８０２は、ドライブ３０３の存在信号を生成するように構成され、存在信号は、ドライブ３０３が第１のコネクタ３０２に接続されているか、又は切断されているかを示すために使用される。ある例では、制御デバイス３０１は、周辺回路及び論理決定モジュールを含み得る。ドライブ３０３が第２のコネクタ８０１を使用することによって第１のコネクタ３０２に接続されるとき、存在信号出力モジュール８０２は、第２のコネクタ８０１を使用することによって制御デバイス３０１の電力供給モジュールのグラウンドケーブルに接続され、そうすることによって、制御デバイス３０１の周辺回路はローレベル信号を生成し、制御デバイス３０１の論理決定モジュールは、ローレベル信号に基づいて、ドライブ３０３が第１のコネクタ３０２に接続されることを決定する。ドライブ３０３の第２のコネクタ８０１が第１のコネクタ３０２から切断された後で、制御デバイス３０１がハイレベル信号を生成し、制御デバイス３０１の周辺回路がハイレベル信号を生成し、そうすることによって、各制御デバイス３０１の論理決定モジュールは、ハイレベル信号に基づいて、ドライブ３０３が第１のコネクタ３０２から切断されていると決定する。
【０１０２】
電源変換モジュール８０３は、電力をドライブ３０３に供給し、第２のコネクタ８０１が第１のコネクタ３０２に接続されるとき、第２のコネクタ８０１からの電源電圧入力を内部ドライブ制御モジュール８０４及びデータストレージモジュール８０５の電力供給電圧へと変換し、変換された電圧を内部ドライブ制御モジュール８０４及びデータストレージモジュール８０５に出力するように構成される。例えば、電力変換モジュール８０３は、バック回路（Ｂｕｃｋ  ｃｉｒｃｕｉｔ）などであり得る。
【０１０３】
ドライブ３０３はさらに、制御デバイス３０１が短絡されることにより、又は制御デバイス３０１によって出力される電圧がドライブ３０３の普通の動作電圧より低いことにより引き起こされる、ドライブ３０３への異常な電力供給を避けるために、第２のコネクタ８０１と電力変換モジュール８０３との間に配置される逆流防止モジュールを含み得る。
【０１０４】
内部ドライブ制御モジュール８０４は、制御デバイス３０１の信号を処理してドライブ３０３を管理するという機能を実装するように、例えば、ドライブ３０３に対する制御デバイス３０１の制御信号を受信し、データストレージモジュール８０５上のデータに対する読み取り動作又は書き込み動作を実行するという機能を提供するように構成される。例えば、制御信号は、ドライブ３０３のモデル、容量、及び製造業者などの関連情報を読み取るために使用される信号、リセット状態にとどまるように第２のコネクタ８０１を制御するために使用される信号、及びリセット状態をデアサートするように第２のコネクタ８０１を制御するために使用される信号である。
【０１０５】
ある例では、図８Ｂに示されるように、ドライブ３０３はさらに第１のストレージモジュール８０６を含んでもよく、第１のストレージモジュール８０６は、ドライブ３０３のモデル、容量、及び製造業者などの関連情報を記憶するように構成される。制御デバイス３０１は、ドライブ３０３のモデル、容量、及び製造業者などの関連情報を第１のストレージモジュール８０６から直接読み取り得る。例えば、第１のストレージモジュール８０６は、電気的消去可能プログラム可能読み取り専用メモリ（ｅｌｅｃｔｒｉｃａｌｌｙ  ｅｒａｓａｂｌｅ  ｐｒｏｇｒａｍｍａｂｌｅ  ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ、ＥＥＰＲＯＭ）チップ及びＩ２Ｃ回路を含み得る。
【０１０６】
ドライブの稼働状態を表示するために使用されるインジケータがドライブ３０３に配置される場合、内部ドライブ制御モジュール８０４はさらに、ドライブ３０３のインジケータを制御するように構成され得る。例えば、ドライブ３０３がデータ読み取り状態にあるとき、入力信号インジケータは、第１の周波数のインジケーション信号を出力するように制御されてよく、ドライブ３０３がデータ書き込み状態にあるとき、入力信号インジケータは、第２の周波数のインジケーション信号を出力するように制御されてよい、などである。
【０１０７】
加えて、高速信号インターフェース及び低速信号インターフェースが内部ドライブ制御モジュール８０４において設定され、内部ドライブ制御モジュール８０４は、異なるインターフェースを通じて制御デバイス３０１と通信し得る。高速信号の定義は上で説明されている。内部ドライブ制御モジュール８０４と制御デバイス３０１との間で送信される通信信号において、高速信号以外の信号は低速信号である。
【０１０８】
もちろん、内部ドライブ制御モジュール８０４はさらに他の機能を有することがあり、本明細書では１つずつ例は挙げられない。当業者は使用上の要件に基づいて内部ドライブ制御モジュール８０４の機能を設定し得ることに、留意されたい。これは本明細書では限定されない。
【０１０９】
ある例では、内部ドライブ制御モジュール８０４は、１つの個別のデバイス又は複数の個別のデバイスの組合せを使用することによって実装されてよく、例えば、中央処理装置（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ、ＣＰＵ）、デジタルシグナルプロセッサ、特定用途向け集積回路、フィールドプログラマブルゲートアレイ（ｆｉｅｌｄ−ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ、ＦＰＧＡ）、又は別のプログラマブルロジックデバイスであってよい。これは本明細書では限定されない。
【０１１０】
データストレージモジュール８０５は、内部ドライブ制御モジュール８０４の制御下でユーザデータを記憶し、又は読み取るように構成される。ある例では、データストレージモジュールはドライブ媒体であり得る。
【０１１１】
第２のドライブ／集中型ドライブ:
図９Ａを参照すると、ドライブ３０３は、２つの第２のコネクタ（これらは第２のコネクタ９０１及び第２のコネクタ９０２である）、存在信号出力モジュール９０３、電源変換モジュール９０４、内部ドライブ制御モジュール９０５、及びデータストレージモジュール９０６を含む。
【０１１２】
第２のコネクタ９０１及び第２のコネクタ９０２の機能はアクセスポート８０１の機能と同じであり、詳細は本明細書では再び説明されない。第２のコネクタ９０１及び第２のコネクタ９０２は、２つの独立したアクセスポートであり、２つの制御デバイス３０１にそれぞれ接続され得る。このようにして、２つの制御デバイス３０１が第２のコネクタ９０１及び第２のコネクタ９０２にそれぞれ接続された後で、２つの制御デバイス３０１は、両方ともドライブ３０３と通信し、例えば、ドライブ３０３のデータストレージモジュール９０６の中のデータを読み取り得る。
【０１１３】
図９Ａにおいて、ドライブ３０３は、第２のコネクタ９０１及び第２のコネクタ９０２という２つのアクセスポートを含むことに留意されたい。ドライブ３０３のアクセスポートの数量はまた２より多くてもよい。例えば、ドライブ３０３は、第２のコネクタ、第２のコネクタ、及び第３のアクセスポートを含む。この場合、ドライブ３０３は、３つの制御デバイス３０１に同時に接続され得る。アクセスポートの数量は本出願のこの実施形態では限定されない。
【０１１４】
第２のコネクタ９０１及び第２のコネクタ９０２が２つの制御デバイス３０１に同時に接続される必要がある場合、第２のコネクタ９０１と第２のコネクタ９０２との間で十分な離隔が確保される必要があり、この離隔は２つの制御デバイス３０１間の間隔に関係することに留意されたい。例えば、図９Ｂに示されるように、２つの制御デバイス３０１は両方とも水平に配置され、一方の制御デバイス３０１が他方の制御デバイス３０１の右上にある。２つの制御デバイス３０１間の間隔がｘであり、第１のコネクタ３０２の幅がｈである場合、第２のコネクタ９０１と第２のコネクタ９０２との間の離隔は（ｘ−ｈ）以上である。
【０１１５】
存在信号出力モジュール９０３は、ドライブ３０３の存在信号を生成するように構成され、存在信号は、ドライブ３０３が第１のコネクタ３０２に接続されているか、又は切断されているかを示すために使用される。ある例では、制御デバイス３０１は、周辺回路及び論理決定モジュールを含み得る。ドライブ３０３が第２のコネクタ９０１及び第２のコネクタ９０２を使用することによってそれぞれ２つの第１のコネクタ３０２に接続されるとき、存在信号出力モジュール９０３が第２のコネクタ９０１及び第２のコネクタ９０２を使用することによってそれぞれ２つの制御デバイス３０１の電力供給モジュールのグラウンドケーブルに接続され、そうすることによって、制御デバイス３０１の周辺回路はローレベル信号を生成し、各制御デバイス３０１の論理決定モジュールは、ローレベル信号に基づいて、ドライブ３０３が第１のコネクタ３０２に接続されることを決定する。ドライブ３０３の第２のコネクタ９０１及び第２のコネクタ９０２がそれぞれ２つの制御デバイス３０１の第１のコネクタ３０２から切断された後で、各制御デバイス３０１の周辺回路はハイレベル信号を生成し、そうすることによって、各制御デバイス３０１の論理決定モジュールは、ハイレベル信号に基づいて、ドライブ３０３が第１のコネクタ３０２から切断されていると決定する。
【０１１６】
電源変換モジュール９０４は、電力をドライブ３０３に供給し、第２のコネクタ９０１及び第２のコネクタ９０２が２つの第１のコネクタ３０２にそれぞれ接続されるとき、第２のコネクタ９０１及び第２のコネクタ９０２から入力される電源電圧を内部ドライブ制御モジュール９０５及びデータストレージモジュール９０６の電力供給電圧へと変換し、変換された電圧を内部ドライブ制御モジュール９０５及びデータストレージモジュール９０６に出力するように構成される。例えば、電力変換モジュールはバック回路（Ｂｕｃｋ  ｃｉｒｃｕｉｔ）などであり得る。
【０１１７】
ドライブ３０３はさらに逆流防止モジュールを含む。逆流防止モジュールは、逆流防止モジュールＡ及び逆流防止モジュールＢを含み、それぞれ、第２のコネクタ９０１と電源変換モジュール９０４との間に、及び第２のコネクタ９０２と電源変換モジュール９０４との間に配置される。
【０１１８】
内部ドライブ制御モジュール９０５は、制御デバイス３０１の信号を処理してドライブ３０３を管理するという機能を実装するように、例えば、ドライブ３０３に対する制御デバイス３０１の制御信号を受信し、データストレージモジュール９０６の中のデータに対して読み取り動作又は書き込み動作を実行するという機能を提供するように構成される。例えば、制御信号は、ドライブ３０３のモデル、容量、及び製造業者などの関連情報を読み取るために使用される信号、リセット状態にとどまるように第２のコネクタ９０１及び第２のコネクタ９０２を制御するために使用される信号、並びに、リセット状態をデアサートするように第２のコネクタ９０１及び第２のコネクタ９０２を制御するために使用される信号である。
【０１１９】
ある例では、図９Ｃに示されるように、ドライブ３０３はさらに第１のストレージモジュール９０７を含み得る。第１のストレージモジュール９０７は図８Ｂに示される第１のストレージモジュール８０６と同じであり、詳細は本明細書では再び説明されない。
【０１２０】
ドライブの稼働状態を表示するために使用されるインジケータがドライブ３０３において配置される場合、内部ドライブ制御モジュール８０４はさらに、ドライブ３０３のインジケータを制御するように構成され得る。例えば、ドライブ３０３がデータ読み取り状態にあるとき、入力信号インジケータは、第１の周波数のインジケーション信号を出力するように制御されてよく、ドライブ３０３がデータ書き込み状態にあるとき、入力信号インジケータは、第２の周波数のインジケーション信号を出力するように制御されてよい、などである。
【０１２１】
加えて、第２のコネクタ９０１のための高速信号インターフェース及び低速信号インターフェース、並びに第２のコネクタ９０２のための高速信号インターフェース及び低速信号インターフェースは、内部ドライブ制御モジュール９０５において別々に設定される。内部ドライブ制御モジュール９０５は、第２のコネクタ９０１のための高速信号インターフェース及び／又は低速信号インターフェースを使用することによって、第２のコネクタ９０１に接続される制御デバイス３０１と通信し得る。内部ドライブ制御モジュール９０５は、第２のコネクタ９０２のための高速信号インターフェース及び／又は低速信号インターフェースを使用することによって、第２のコネクタ９０８に接続される制御デバイス３０１と通信し得る。高速信号の定義は上で説明される。内部ドライブ制御モジュール９０５と制御デバイス３０１との間で送信される通信信号において、高速信号以外の信号は低速信号である。
【０１２２】
もちろん、内部ドライブ制御モジュール９０５はさらに他の機能を有してよく、本明細書では１つずつ例は挙げられない。当業者は使用上の要件に基づいて内部ドライブ制御モジュール９０５の機能を設定し得ることに、留意されたい。これは本明細書では限定されない。
【０１２３】
ある例では、内部ドライブ制御モジュール９０５は、１つの個別のデバイス又は複数の個別のデバイスの組合せを使用することによって実装されてよく、例えば、中央処理装置（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ、ＣＰＵ）、デジタルシグナルプロセッサ、特定用途向け集積回路、フィールドプログラマブルゲートアレイ（ｆｉｅｌｄ−ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ、ＦＰＧＡ）、又は別のプログラマブルロジックデバイスであってよい。これは本明細書では限定されない。
【０１２４】
データストレージモジュール９０６は、内部ドライブ制御モジュール９０５の制御下でユーザデータを記憶し、又は読み取るように構成される。ある例では、データストレージモジュール９０６はドライブ媒体であり得る。
【０１２５】
第３のドライブ／汎用ドライブ：
図１０Ａを参照すると、ドライブ３０３は、２つの第２のコネクタ（これらは第２のコネクタ１００１及び第２のコネクタ１００２である）、存在信号出力モジュール１００３、逆流防止モジュールＡ、逆流防止モジュールＢ、電源変換モジュール１００４、内部ドライブ制御モジュール１００５、及びデータストレージモジュール１００６を含む。ある例では、図１０Ｂを参照すると、ドライブ３０３はさらに第１のストレージモジュール１００７を含み得る。
【０１２６】
第２のコネクタ１００１、第２のコネクタ１００２、存在信号出力モジュール１００３、電源変換モジュール１００４、データストレージモジュール１００６、及び第１のストレージモジュール１００７はそれぞれ、図９Ａの第２のコネクタ９０１、第２のコネクタ９０２、存在信号出力モジュール９０３、電源変換モジュール９０４、データストレージモジュール９０６、及び第１のストレージモジュール９０７と同じであり、詳細は本明細書では再び説明されない。
【０１２７】
以下で、内部ドライブ制御モジュール１００５を説明する。
【０１２８】
内部ドライブ制御モジュール１００５はさらに、内部ドライブ制御モジュール９０５の機能に加えて、ドライブの稼働モードを調整するように構成される。汎用ドライブは、分散型ドライブの稼働モード及び集中型ドライブの稼働モードという２つの稼働モードを有する。以下では、内部ドライブ制御モジュール１００５が汎用ドライブの稼働モードを調整する方式を説明する。
【０１２９】
第１の調整方式：
汎用デバイスが集中型ドライブの稼働モードにある場合、内部ドライブ制御モジュール１００５が、分散型ドライブの稼働モードに切り替えるようにドライブ３０３に命令するための、ドライブ３０３により送信される命令を受信するとき、内部ドライブ制御モジュール１００５は、通信停止状態となるように第２のコネクタ１００１及び第２のコネクタ１００２の１つのアクセスポートを制御し得る。具体的には、内部ドライブ制御モジュール１００５は、アクセスポートの機能を論理的に無効にし、内部ドライブ制御モジュール１００５は、アクセスポートを通じて入力されるいずれの信号も受信又は処理せず、アクセスポートを通じてどのような信号も出力しない。命令は、高速信号を使用することによって帯域内で制御デバイス３０１によって送信されてよく、又は、図４に示される制御ユニット３０１１２の信号を送信するために使用される制御信号ケーブルのハイレベル又はローレベルを制御することによって制御デバイス３０１によって示されてよい。これは本明細書では限定されない。
【０１３０】
図１０Ｃにおいて、例えば、第２のコネクタ１００２は通信停止状態となるように制御される。通信停止状態は次のように理解され得る。ドライブは、通信停止状態のコネクタを使用することによって、コネクタに接続される制御デバイス３０１と通信することができない。従って、ドライブの稼働モードは、集中型ドライブの稼働モードから分散型ドライブの稼働モードに切り替えられる。
【０１３１】
第２の調整方式：
汎用ドライブが集中型ドライブの稼働モードにある場合、内部ドライブ制御モジュール１００５が、分散型ドライブの稼働モードに切り替えるようにドライブ３０３に命令するための、ドライブ３０３により送信される命令を受信するとき、内部ドライブ制御モジュール１００５は、図１０Ｄに示されるように、ドライブ３０３のデータストレージモジュール１００６を２つの独立したアクセスエリアへと分割し得る。例えば、データストレージモジュール１００６はドライブ媒体であり、データストレージモジュール１００６は合計で１２個のドライブ媒体を含み、それぞれドライブ媒体０からドライブ媒体１１として標識される。内部ドライブ制御モジュール１００５は、ドライブ媒体０からドライブ媒体５を独立したアクセス領域へとグループ化することであって、アクセス領域は、第２のコネクタ１００１を使用することによってのみアクセスされることができる、ことを行い、ドライブ媒体６からドライブ媒体１１を別の独立したアクセス領域へとグループ化することであって、アクセス領域は、第２のコネクタ１００２を使用することによってのみアクセスされることができる、ことを行って、集中型ドライブの稼働モードから分散型ドライブの稼働モードにドライブの稼働モードを切り替え得る。
【０１３２】
第３の調整方式：
汎用ドライブが集中型ドライブの稼働モードにある場合、内部ドライブ制御モジュール１００５が、分散型ドライブの稼働モードに切り替えるようにドライブ３０３に命令するための、ドライブ３０３により送信される命令を受信するとき、内部ドライブ制御モジュール１００５は、通信停止状態にあるアクセスポートの通信機能を回復させ得る。具体的には、内部ドライブ制御モジュール１００５はアクセスポートの機能を論理的に有効にし、内部ドライブ制御モジュール１００５は、アクセスポートを通じて入力される任意の信号を受信又は処理し、アクセスポートを通じて信号を出力する。命令は、高速信号を使用することによって帯域内で制御デバイス３０１によって送信されてよく、又は、図４に示される制御ユニット３０１１２の信号を送信するために使用される制御信号ケーブルのハイレベル又はローレベルを制御することによって制御デバイス３０１により示されてよい。これは本明細書では限定されない。従って、ドライブの稼働モードは、分散型ドライブの稼働モードから集中型ドライブの稼働モードに切り替えられる。
【０１３３】
第４の調整方式：
汎用ドライブが分散型ドライブの稼働モードにある場合、内部ドライブ制御モジュール１００５が、集中型ドライブの稼働モードに切り替えるようにドライブ３０３に命令するための、ドライブ３０３により送信される命令を受信するとき、内部ドライブ制御モジュール１００５は、データストレージモジュール１００６を２つの独立したアクセス領域へと分割するという設定を取り消してよく、そうすることによって、ドライブ３０３は１つだけの独立したアクセス領域を含み、第２のコネクタ１００１及び第２のコネクタ１００２に接続される２つの制御デバイス３０１は、データストレージモジュール１００６のいずれのドライブ媒体にもアクセスすることができる。従って、ドライブの稼働モードは、分散型ドライブの稼働モードから集中型ドライブの稼働モードに切り替えられる。
【０１３４】
本出願のこの実施形態では、各ドライブ３０３のタイプは、ドライブ３０３のモデル、容量、及び製造業者などの関連情報に従って決定される。具体的な決定方法は上で説明されており、詳細は本明細書では再び説明されない。
【０１３５】
このようにして、制御デバイス３０１は、分散型ストレージアーキテクチャにおけるストレージシステム及び集中型ストレージアーキテクチャにおけるストレージシステムを別々に構成するために、異なるタイプのドライブ３０３に接続される。
【０１３６】
第２のコネクタがドライブ３０３に固定的に接続され得ること、又はドライブ３０３に取り外し可能に接続され得ることに留意されたい。これは本明細書では限定されない。
【０１３７】
制御デバイス３０１が分散型ドライブに接続されるとき、分散型ストレージアーキテクチャにおけるストレージシステムが形成され得る。ある例では、分散型ストレージアーキテクチャにおけるストレージシステムの構造図は、図３Ｄ及び図４に示されるストレージシステムの構造と同じであり得る。図３Ｄ及び図４において第１のコネクタ３０２に接続されるドライブ３０３が分散型ドライブであるとき、分散型ストレージアーキテクチャにおけるストレージシステムが形成される。
【０１３８】
図３Ｄに示される分散型ストレージアーキテクチャにおけるストレージシステムでは、制御デバイスＡ、制御デバイスＢ、及び制御デバイスＣは、互いに独立した分散型アクセスノードであり、各制御デバイスが、制御デバイスに接続されるドライブに独立にアクセスする。制御デバイスの１つに欠陥があるとき、ストレージシステムの別のノードが、欠陥のある制御デバイスに対応するサービスを引き継ぎ、欠陥のある制御デバイスに接続されるドライブの中のデータは、別のドライブの中のデータに基づいて別のノードによって復元され得る。図１１に示されるように、制御デバイスＡに欠陥がある場合、制御デバイスＢ又は制御デバイスＣが制御デバイスＡのサービスを引き継いでよく、制御デバイスＡに接続されるドライブの中のデータは、制御デバイスＢに接続されるドライブにおいてデータを復元して制御デバイスＣに接続されるドライブにおいてデータを復元することを通じて、制御デバイスＢに接続されるドライブ及び制御デバイスＣに接続されるドライブに復元され得る。
【０１３９】
制御デバイス３０１が集中型ドライブに接続されるとき、集中型ストレージアーキテクチャのストレージシステムが形成され得る。図１２Ａ及び図１２Ｂは、集中型ストレージアーキテクチャにおけるストレージシステムの例である。ストレージシステム３００は２つの制御デバイス３０１及び２つの集中型ドライブ３０３を含み、各制御デバイス３０１は２つの第１のコネクタ３０２を含む。第１の制御デバイス３０１の２つの第１のコネクタ３０２はそれぞれ、２つの集中型ドライブの第２のコネクタ９０１に接続され、第２の制御デバイス３０１の２つの第１のコネクタ３０２はそれぞれ、２つの集中型ドライブの第２のコネクタ９０２に接続される。説明を簡単にするために、図１２Ａでは、矢印付きの破線が、第１のコネクタ３０２と第２のコネクタ９０１との間の接続ステータスと、第１のコネクタ３０２と第２のコネクタ９０２との間の接続ステータスとを示すために使用される。図１２Ｂはストレージシステム３００の側面図である。
【０１４０】
図１２Ｂに示される集中型ストレージアーキテクチャにおけるストレージシステムでは、ドライブが２つの制御デバイスと別々に通信し得るので、制御デバイスの１つに欠陥があるか、又は取り除かれるとき、他方の制御デバイスが欠陥のある制御デバイスのサービスを引き継ぎ得る。
【０１４１】
制御デバイス３０１は、分散型ドライブ又は集中型ドライブに取り外し可能に接続され、そうすることによって、使用上の要件に基づいて異なるストレージアーキテクチャが形成されることができる。例えば、分散型ストレージアーキテクチャが形成される必要があるとき、制御デバイス３０１は分散型稼働モードにあることが可能にされ、分散型ドライブは第１のコネクタ３０２へと挿入される。集中型ストレージアーキテクチャに切り替えることが必要とされるとき、制御デバイス３０１は、集中型稼働モードにあることが可能にされ、分散型ドライブが取り除かれ、集中型ドライブが挿入される。
【０１４２】
ストレージアーキテクチャの切り替え処理を簡単にするために、制御デバイス３０１は汎用ドライブに直接接続され得る。ストレージシステム３００が集中型ストレージアーキテクチャから分散型ストレージアーキテクチャに切り替わる必要があるとき、制御デバイス３０１は、分散型ストレージアーキテクチャに対応するシステムコードを実行し、ドライブ３０３に、分散型ドライブに切り替えるようにドライブ３０３に命令するために使用される命令を送信する。命令を受信した後で、ドライブ３０３は、上で説明された第１の調整方式又は第２の調整方式でドライブ３０３を分散型ドライブに合わせて、ストレージシステム３００のストレージアーキテクチャを集中型ストレージアーキテクチャから分散型ストレージアーキテクチャに切り替え得る。ストレージシステム３００が分散型ストレージアーキテクチャから集中型ストレージアーキテクチャに切り替わる必要があるとき、制御デバイス３０１は、集中型ストレージアーキテクチャに対応するシステムコードを実行し、ドライブ３０３に、集中型ドライブに切り替えるようにドライブ３０３に命令するために使用される命令を送信する。命令を受信した後で、ドライブ３０３は、上で説明された第３の調整方式又は第４の調整方式でドライブ３０３を集中型ドライブに合わせて、ストレージシステム３００のストレージアーキテクチャを分散型ストレージアーキテクチャから集中型ストレージアーキテクチャに切り替え得る。この場合、制御デバイス３０１とドライブ３０３との間の接続関係は、集中型ストレージアーキテクチャにおける制御デバイス３０１とドライブ３０３との間の接続関係と同じである。詳しくは、図１２Ａ及び図１２Ｂを参照されたい。詳細は本明細書では再び説明されない。
【０１４３】
第２のコネクタは第１のコネクタ３０２に直接接続され得ることに留意されたい。例えば、第２のコネクタが第１のコネクタへと挿入され、又は別の方式では第２のコネクタが第１のコネクタ３０２に接続され得る。例えば、第２のコネクタは、通信バスを使用することによって第１のコネクタ３０２に接続されてよく、通信バスは、ＰＣＩＥバス、Ｉ2Ｃバスなどであってよい。これは本明細書では限定されない。
【０１４４】
以下は、第１のコネクタ３０２及び第２のコネクタを説明する。
【０１４５】
本出願のこの実施形態では、第１のコネクタ３０２及び第２のコネクタは、相対応する垂直で直交するコネクタであり、又は、第１のコネクタ３０１及び第２のコネクタは、予め設定された回転角を有し、かつ相対応するコネクタである。
【０１４６】
例えば、制御デバイス３０１は１つの第１のコネクタ３０２を含み、ドライブ３０３は１つの第２のコネクタを含み、第１のコネクタ３０１はジャックを有するソケットであり、第２のコネクタはピンを有するプラグである。
【０１４７】
本出願のこの実施形態では、例えば、制御デバイス３０１は回路基板であってよく、ドライブ３０３の形状は直方体であってよい。図１３Ａを参照すると、ドライブ３０３は、それぞれ面Ａから面Ｆである６つの面を含む。図１３Ａに示されるように、ドライブの面Ｃと面Ｄの両方が水平面に平行であり、水平面上への面Ｃ及び面Ｄの投影は長方形である。長方形の２つの長い辺の長さはドライブ３０３に対応する直方体の長さと同じであり、直方体の２つの短い辺の長さはドライブ３０３に対応する直方体の高さと同じである。ドライブの面Ａ、面Ｆ、面Ｂ、及び面Ｅは、水平面に垂直である。水平面上への面Ａ及び面Ｆの投影は線分であり、線分の長さはドライブ３０３に対応する直方体の長さと同じである。水平面上への面Ｂ及び面Ｅの投影も線分であり、線分の長さはドライブ３０３に対応する直方体の高さと同じである。第２のコネクタはドライブ３０３の面Ｅに設定される。
【０１４８】
図１３Ｂは、１つの第１のコネクタ３０２を含む制御デバイス３０１の側面図である。図１３Ｂにおいて、第１のコネクタ３０１のジャックは２行×３列に並べられ、各行の２つの隣接するジャックは同じ間隔を空けられ、第１の行の３つのジャックは第２の行の３つのジャックと揃えられる。図１３Ｃは、１つの第２のコネクタを含むドライブ３０３の側面図である。図１３Ｃにおいて、第２のコネクタのピンは３行×２列に並べられ、各行の２つの隣接するジャックは同じ間隔を空けられ、加えて、２行ごとの２つのジャックは互いに揃えられる。第２のコネクタが第１のコネクタ３０２へと挿入されるとき、制御デバイス３０１及びドライブ３０３は、図１３Ｄに示される位置関係にある。図１３Ｄは、制御デバイス３０１及びドライブ３０３の側面図である。図１３Ｄにおいて、制御デバイス３０１は水平に設定され、ドライブ３０３の面Ｃは水平面に平行であり、ドライブ３０３の面Ａは水平面に垂直である。
【０１４９】
直方体の高さは通常は直方体の長さ又は幅より短く、そうすることによって、１つの制御デバイス３０１はより多くのドライブ３０３と通信してよく、ストレージシステムの容量拡張要件が満たされる。
【０１５０】
図１４Ａは、１つの第１のコネクタ３０２を含む制御デバイス３０１の側面図である。図１４Ａでは、第１のコネクタ３０１のジャックが２行に並べられ、各行の２つの隣接するジャックは同じ間隔を空けられ、第１の行の第１のジャックと第２の行の第１のジャックとの間には特定の距離がある。図１４Ｂは、１つの第２のコネクタを含むドライブ３０３の側面図である。図１４Ｂでは、第２のコネクタのピンが２つの行に並べられ、各行の２つの隣接するジャックが同じ間隔を空けられ、第１の行の第１のジャックと第２の行の第１のジャックとの間には特定の距離がある。第２のコネクタが第１のコネクタ３０２へと挿入されるとき、制御デバイス３０１及びドライブ３０３は、図１４Ｃに示される位置関係にある。図１４Ｃは、制御デバイス３０１及びドライブ３０３の側面図である。図１４Ｃでは、制御デバイス３０１は水平に設定され、ドライブ３０３の面Ａと水平面との間には、予め設定された挟角がある。図１４Ｃでは、例えば、ドライブ３０３の面Ａと水平面との間の挟角は８０度である。もちろん、ドライブ３０３の面Ａと水平面は、代替的に、別の角度で配置されてよく、ドライブ３０３の面Ａと水平面との間の角度は、ドライブ３０３におけるピンの配置位置に関係し、本明細書では限定されない。
【０１５１】
前述の技術的解決法において、第１のコネクタ３０２及び第２のコネクタは、垂直で直交するコネクタ、又は予め設定された回転角を有するコネクタであり、そうすることによって、第１のコネクタ３０２及び第２のコネクタは、空間座標系のＸ軸、Ｙ軸、及びＺ軸の方向における制御デバイス３０１とドライブ３０３との間の相対的なシフトに打ち勝つことができる。従って、複数の制御デバイス３０１は複数のドライブ３０３に確実に接続されることができる。従来技術のバックプレーンが取り除かれて、ストレージシステムの設計の複雑さを下げ、バックプレーンの欠陥によってストレージシステム全体が使用されることができなくなる確率を下げ、そうすることによって、ストレージシステムの信頼性を改善する。
【０１５２】
さらに、従来技術のバックプレーンが取り除かれ、そうすることによって、通信処理における制御デバイス３０１とドライブ３０３との間でのインピーダンス不整合点が減らされることができる。具体的には、制御デバイス３０１とバックプレーンとの間のインピーダンス不整合、及びバックプレーンとドライブとの間のインピーダンス不整合が減らされる。これは、信号送信レートを改善できる。
【０１５３】
さらに、従来技術のバックプレーンが取り除かれ、そうすることによって、ストレージシステムにおけるエアフロー欠陥点が減らされ、ストレージシステムの熱放散性能が改善されることができる。従って、ストレージシステムの特定空間において、ストレージシステムの特定熱放散性能で、ストレージシステム内に、より多くのデバイスが許容されることでき、ストレージシステムの密度が改善されることができる。
【０１５４】
当業者は、制御デバイス３０１とドライブ３０３の相対的な位置を設定するために、実際の使用上の要件に基づいて異なる第１のコネクタ３０２及び第２のコネクタを選択し得る。
【０１５５】
加えて、制御デバイス３０１が複数の第１のコネクタ３０２を含むとき、複数の第１のコネクタ３０２の間に特定の間隔が設定される必要があることに留意されたい。例えば、制御デバイス３０１及びドライブ３０３が図１４Ｂに示される第２の接続方式で接続されるとき、制御デバイス３０１における２つ毎の第１のコネクタ３０２の間の間隔は、ドライブ３０３の高さ以上である。ドライブ３０３の高さの定義については、図１３Ａを参照されたい。詳細は本明細書では再び説明されない。
【０１５６】
前述の技術的解決法において、使用上の要件に基づいて、集中型ストレージアーキテクチャにおけるストレージシステム又は分散型ストレージアーキテクチャのストレージシステムは、制御デバイス３０１を異なる構成を持つドライブ３０３に接続することによって、フレキシブルに構築され得る。加えて、ストレージアーキテクチャが切り替えられる必要があるとき、制御デバイス３０１とドライブ３０３の稼働モードだけが切り替えられる必要があり、又はドライブ３０３が交換され、制御デバイス３０１とドライブ３０３が再び購入される必要がない。これは、ストレージシステムのフレキシビリティを改善し、ストレージアーキテクチャの切り替えのコストを減らす。
【０１５７】
同じ発明概念に基づいて、本出願のある実施形態は、ストレージシステム動作方法を提供する。方法は、図３Ｄ、図４、又は図１２Ａに示されるストレージシステムに適用される。
【０１５８】
図１５Ａから図１５Ｃは、本出願のある実施形態によるストレージシステム動作方法のフローチャートである。フローチャートは次のように説明される。
【０１５９】
Ｓ１：制御デバイスがシステム構成を実行する。
【０１６０】
ある例では、制御デバイスはクライアントに接続され得る。クライアントにおいて、ユーザは、使用上の要件に基づいてストレージシステムのタイプを設定し得る。例えば、ユーザは、集中型ストレージアーキテクチャ又は分散型ストレージアーキテクチャにストレージシステムを設定し得る。クライアントから命令を受信した後で、制御デバイスは、命令に従ってシステム構成を実行し得る。システム構成は、制御デバイスのシステムコード構成を含む。例えば、制御デバイスのメモリは、集中型ストレージアーキテクチャに対応するシステムコード及び分散型ストレージアーキテクチャに対応するシステムコードを記憶し、対応するシステムコードがクライアントの命令に従ってストレージシステムのために構成される。
【０１６１】
システム構成はさらにドライブ構成を含み得る。制御デバイスに接続されるドライブが図１０Ａに示される汎用ドライブであるとき、制御デバイスは、分散型ドライブ又は集中型ドライブにドライブを設定するために命令をドライブに送信し得る。例えば、クライアントからの命令がストレージシステムを集中型ストレージアーキテクチャに設定するように命令するとき、ドライブのアクセスポートの数量を２に設定するために、命令がドライブに送信され得る。クライアントからの命令が集中型ストレージアーキテクチャにストレージシステムを設定するように命令するとき、ドライブのアクセスポートの数量を１に設定するために、命令がドライブに送信され得る。もちろん、代替的に、ドライブにおけるアクセス領域の数量が設定されてよく、詳細は本明細書では説明されない。
【０１６２】
ステップＳ１は任意選択のステップであり、言い換えると、ステップＳ１は実行される必要がないことに留意されたい。例えば、ユーザは、使用上の要件に基づいて、使用されるべきストレージアーキテクチャに対応する制御デバイス及びドライブを直接選択し得る。例えば、ユーザが集中型ストレージアーキテクチャを使用する必要がある場合、ユーザは、集中型ストレージアーキテクチャを実装できる制御デバイスを集中型ドライブに直接接続し得る。この場合、ステップＳ１は実行される必要はない。
【０１６３】
Ｓ２：制御デバイスがスタートされ初期化される。
【０１６４】
Ｓ３：制御デバイスが、システム構成のタイプに基づいてドライブ決定条件を設定する。
【０１６５】
本出願のこの実施形態では、ドライブ決定条件は、制御デバイスに接続されるドライブが制御デバイスと適合するかどうかを決定するために使用される。例えば、集中型ストレージアーキテクチャにあるとき、制御デバイスは、ドライブ決定条件に基づいて、制御デバイスに接続されるドライブが集中型ドライブであるかどうかを決定する。ある例では、ストレージシステムのために構成されるシステムコードが集中型ストレージアーキテクチャに対応するシステムコードであると、制御デバイスが決定する場合、制御デバイスは、集中型ドライブ決定条件としてドライブ決定条件を構成する。集中型ドライブ決定条件は、集中型ドライブの製造業者及びモデルなどの情報を含み得る。例えば、集中型決定条件は、製造業者Ａ又はモデルＡであり得る。ストレージシステムのために構成されるシステムコードが分散型ストレージアーキテクチャに対応するシステムコードであると、制御デバイスが決定する場合、制御デバイスは、分散型ドライブ決定条件としてドライブ決定条件を構成する。それに対応して、分散型ドライブ決定条件は、分散型ドライブの製造業者及びモデルなどの情報を含み得る。例えば、分散型決定条件は、製造業者Ｂ又はモデルＢであり得る。もちろん、集中型ドライブ決定条件及び分散型ドライブ決定条件は、代替的に、他のパラメータであってよく、これは本明細書では限定されない。
【０１６６】
Ｓ４：制御デバイスが、各第１のコネクタがドライブに接続されているか、又は切断されているかを検出する。
【０１６７】
ある例では、制御デバイスのＣＰＵが、ＣＰＬＤを使用することによってドライブの存在信号を検出し、各第１のコネクタがドライブに接続されているか、又は切断されているかを決定し、決定結果をＣＰＬＤの対応するレジスタに記憶し得る。ＣＰＵは、各第１のコネクタがドライブに接続されているか、又は切断されているかを決定するために、レジスタに記憶されているビットの値を読み取る。第１のコネクタがドライブから切断されているとき、制御デバイスは、クライアントのディスプレイを使用することによって警告を出力し得る。例えば、制御デバイスはクライアントにプロンプト情報を出力し、プロンプト情報は第１のコネクタのインデックス番号を搬送する。もちろん、代替的に、別の警告モードが使用されてよく、本明細書では限定されない。
【０１６８】
Ｓ５：制御デバイスが、接続状態にあるドライブの数量を決定する。
【０１６９】
制御デバイスは、接続状態にあるドライブの数量を決定するために、各第１のコネクタがドライブに接続されているか、又は切断されているかを検出する。接続状態にあるドライブの数量が０に等しい場合、Ｓ１３が実行されることになる。接続状態にあるドライブの数量が１以上である場合、Ｓ６が実行されることになる。
【０１７０】
Ｓ６：制御デバイスが、接続状態にあるドライブについての情報を取得する。
【０１７１】
ある例では、制御デバイスのＣＰＵは、ＰＣＩＥスイッチを使用することによって接続状態にある各ドライブについての情報を取得してよく、又は、接続状態にある各ドライブについての情報を取得するために、ＰＣＩＥバスを使用することによって接続状態にあるドライブに命令を送信してよい。情報は、ドライブのモデル、容量、及び製造業者などの関連情報を含む。
【０１７２】
Ｓ７：制御デバイスが、適合するドライブの数量を決定する。
【０１７３】
具体的には、接続状態にあるドライブについての情報を取得した後で、制御デバイスのＣＰＵは、Ｓ３において設定された決定条件に基づいて、接続状態にある各ドライブのタイプを決定する。例えば、Ｓ３において設定された決定条件が集中型ドライブ決定条件であり、集中型ドライブ決定条件が製造業者Ａである場合、ＣＰＵは、接続状態にあるドライブの製造業者が製造業者Ａであるかどうかを決定する。接続状態にあるドライブの製造業者が製造業者Ａである場合、ＣＰＵは、ドライブが、適合するドライブであると決定し。接続状態にあるドライブの製造業者が製造業者Ａではない場合、ＣＰＵは、ドライブが、適合しないドライブであると決定する。ＣＰＵは、接続状態にあるドライブの決定結果を、ＣＰＬＤの対応するレジスタ、例えば、第２のレジスタに記憶し得る。ドライブが、適合するドライブであると決定するとき、ＣＰＵは、ＣＰＬＤのドライブに対応する第２のレジスタにおけるビットの値を１に設定し、ドライブが、適合しないドライブであると決定するとき、ＣＰＵは値を０に設定する。加えて、ドライブが、適合しないドライブであると決定した後で、ＣＰＵはさらに、警告情報をクライアントに出力し得る。
【０１７４】
次いで、制御デバイスのＣＰＵは、ＣＰＬＤの接続状態にある各ドライブに対応する、第２のレジスタのビットの値を使用することによって、適合するドライブの数量を計算し得る。適合するドライブの数量が０に等しい場合、Ｓ１３が実行されることになり、適合するドライブの数量が１に等しい場合、Ｓ８が実行されることになり、適合するドライブの数量が１より大きい場合、Ｓ１０が実行されることになる。
【０１７５】
本出願のこの実施形態では、ステップＳ４とＳ５、ステップＳ６とＳ７の実行順序は限定されないことに留意されたい。具体的には、制御デバイスは、最初にステップＳ４とＳ５を実行し、次いでステップＳ６とＳ７を実行してよく、又は、最初にステップＳ６とＳ７を実行し、次いでステップＳ４とＳ５を実行してよく、又は、ステップＳ４とＳ５、及びステップＳ６とＳ７を同時に実行してもよい。当業者は、使用法に基づいて順序を設定し得る。
【０１７６】
Ｓ８：制御デバイスが、単一ドライブの電源オンスタートアッププロセスを実行する。
【０１７７】
ステップＳ６を実行するとき、制御デバイスのＣＰＵは、ステップＳ６においてＰＣＩＥスイッチを使用することによって情報を取得してよく、又は、ステップＳ６においてＰＣＩＥバスを使用することによって情報を取得してよく、従って、ステップＳ８の実行順序は２つの異なる実装について説明されることに留意されたい。
【０１７８】
情報がステップＳ６においてＰＣＩＥスイッチを使用することによって取得される場合、ステップＳ８はステップＳ６の後で実行される。情報がステップＳ６においてＰＣＩＥバスを使用することによって取得される場合、制御デバイスは、まずステップＳ８を実行してドライブの電源をオンにし、次いでステップＳ６を実行する必要がある。
【０１７９】
Ｓ９：制御デバイスが、稼働状態となるように対応する適合するドライブを制御する。
【０１８０】
具体的には、制御デバイスのＣＰＵは、動作クロック及び／又は高速信号を送信するために使用されるクロックを適合するドライブに提供するようにクロック信号生成器を制御し、そうすることによって、適合するドライブは稼働状態になる。
【０１８１】
Ｓ１０：制御デバイスが、インバッチ電源オンスタートアップ進入のプロセスを実行する。
【０１８２】
具体的には、適合するドライブの数量が１より多いと決定するとき、制御デバイスのＣＰＵはまず、予め設定された信頼性ポリシー又はフォールトトレラントポリシーに基づいて複数の適合するドライブのうちの１つ又はいくつかの電源をオンにし、次いで残りのドライブの電源をオンにし得る。具体的なポリシーの内容は本明細書では限定されない。
【０１８３】
Ｓ１１：制御デバイスが、稼働状態となるように、数回に分けて、対応する適合するドライブを制御する。
【０１８４】
ステップＳ１１はステップＳ９と同じであり、詳細は再び説明されない。
【０１８５】
Ｓ１２：対応するアーキテクチャのストレージシステムをスタートする。
【０１８６】
Ｓ１３：制御デバイスが、ドライブと第１のコネクタとの間の接続状態又は切断状態が変化するかどうかを検出する。
【０１８７】
具体的には、制御デバイスのＰＣＩＥスイッチは、ＣＰＬＤの割り込み信号を使用することによって、ドライブと第１のコネクタの接続状態又は切断状態が変化するかどうかを監視する。ＰＣＩＥスイッチが検出を通じてＣＰＬＤの割り込み信号を取得する場合、ＰＣＩＥスイッチは、変化が発生すると決定し、Ｓ１４が実行されることになる。ＰＣＩＥスイッチが検出を通じてＣＰＬＤの割り込み信号を取得しない場合、ＰＣＩＥスイッチは、変化が発生しないことを決定し、Ｓ１８が実行されることになる。
【０１８８】
Ｓ１４：制御デバイスが、接続状態にあるドライブの数量が変化するかどうかを決定する。
【０１８９】
具体的には、制御デバイスのＣＰＵは、ＣＰＬＤの第１のレジスタのビットの値に基づいて、接続状態にあるドライブの数量が変化するかどうかを決定する。ＣＰＵが、第１のレジスタのビットの値に基づいて、接続状態にあるドライブの数量が増加すると決定する場合、ＣＰＵは、ドライブが挿入されると決定し、ステップＳ５が実行されることになる。ＣＰＵが、第１のレジスタの値に基づいて、接続状態にあるドライブの数量が減少すると決定する場合、ＣＰＵは、ドライブが取り除かれると決定し、ステップＳ１５が実行されることになる。
【０１９０】
Ｓ１５：制御デバイスが、取り除かれるドライブが欠陥のあるドライブであるかどうかを決定する。
【０１９１】
具体的には、制御デバイスのＣＰＬＤは、接続状態にある各ドライブの稼働状態をリアルタイムで監視し、ＣＰＬＤのドライブの欠陥状態を記憶するように構成されるレジスタに監視結果を記憶する。ドライブが取り除かれると決定するとき、ＣＰＵは、ドライブの欠陥状態を記憶するように構成され、かつＣＰＬＤのドライブに対応する、レジスタのビットの値を読み取り、ドライブが欠陥のあるドライブであるかどうかを決定する。ドライブが欠陥のあるドライブである場合、ステップＳ１７が実行されることになる。ドライブが欠陥のないドライブではない場合、ステップＳ１６が実行されることになる。
【０１９２】
Ｓ１６：制御デバイスが、電源オフ状態となるようにドライブを制御し、ドライブのためのクロック信号を提供することを停止し、ＣＰＬＤの第１のレジスタのビットの値を接続状態に対応する値に設定する。
【０１９３】
Ｓ１７：制御デバイスが、ドライブの欠陥状態のレコードをクリアし、ＣＰＬＤの第１のレジスタのビットの値を切断状態に対応する値に設定する。
【０１９４】
ドライブは既に取り除かれているので、制御デバイスが、ドライブの欠陥状態の記録をクリアする必要がある。言い換えると、ドライブが欠陥状態にあるかどうかを示すために使用される、ＣＰＬＤのドライブの欠陥状態を記憶するように構成されるレジスタのビットの値は、初期値に設定される。ある例では、ＣＰＬＤのドライブの欠陥状態を記憶するように構成されるレジスタのビットの初期値は０であり、そうすることによって、ビットの値は０に設定される。
【０１９５】
Ｓ１８：制御デバイスがドライブの欠陥状態を検出する。
【０１９６】
ＣＰＵは、ＣＰＬＤのドライブの欠陥状態を記憶するように構成されドライブに対応する、レジスタのビットの値を読み取り、ドライブが欠陥のあるドライブであるかどうかを決定する。ドライブが欠陥のあるドライブである場合、ステップＳ１９が実行されることになる。ドライブが欠陥のあるドライブではない場合、ステップＳ２０が実行されることになる。
【０１９７】
Ｓ１９：制御デバイスが、電源オフ状態となるようにドライブを制御し、ドライブのためのクロック信号を提供することを停止し、ＣＰＬＤの第１のレジスタのビットの値を切断状態に対応する値に設定する。
【０１９８】
Ｓ２０：制御デバイスが、遮断コマンドが受信されるかどうかを検出する。
【０１９９】
制御デバイスのＣＰＵは、クライアントから遮断コマンドが受信されるかどうかを監視する。遮断コマンドが受信される場合、ステップＳ２１が実行されることになり、遮断命令が受信されない場合、ステップＳ１３が実行されることになる。
【０２００】
Ｓ２１：停止する。
【０２０１】
図１５Ａから図１５Ｃに示されるストレージシステム動作方法において、スタートアップの前に、ストレージシステムの制御デバイスは、制御デバイスの稼働モード、具体的には、集中型ストレージアーキテクチャで動作するモード又は分散型ストレージアーキテクチャで動作するモードを決定しており、次いで、ストレージシステムは稼働モードで動作する。
【０２０２】
本出願のある実施形態のストレージシステムでは、稼働モード切り替えはさらに、動作中に実行され得る。図１６は、本出願のある実施形態による、ストレージシステムの稼働モードを切り替えるための方法のフローチャートである。フローチャートは次のように説明される。
【０２０３】
ステップＳ１６０１：ストレージシステムの中のＭ個の制御デバイスが第１の稼働モードで動作する。
【０２０４】
本出願のこの実施形態では、Ｍ個の制御デバイスは第１の稼働モード及び第２の稼働モードをサポートし、第１の稼働モード及び第２の稼働モードは以下の２つの定義を有する。
【０２０５】
第１の定義：
第１の稼働モードが集中型ストレージアーキテクチャで動作するモードであるとき、第２の稼働モードは分散型ストレージアーキテクチャで動作するモードである。
【０２０６】
第２の定義：
第１の稼働モードが分散型ストレージアーキテクチャで動作するモードであるとき、第２の稼働モードは集中型ストレージアーキテクチャで動作するモードである。
【０２０７】
Ｍは正の整数であることに留意されたい。第１の稼働モード及び第２の稼働モードの具体的な内容は既に上で説明されており、詳細は本明細書では再び説明されない。
【０２０８】
ステップＳ１６０２：Ｍ個の制御デバイスのうちの少なくとも１つの制御デバイスが、ストレージシステムの中のＫ個のドライブの各々に第１の命令を送信し、Ｋ個のドライブの各々が第１の命令を受信する。
【０２０９】
本出願のこの実施形態では、第１の命令は、第２の稼働モードで動作するように、第１の命令を受信するドライブに命令するために使用される。
【０２１０】
ある例では、Ｍ個の制御デバイスはクライアントに別々に接続されてよく、Ｍ個の制御デバイスは、第１の稼働モードから第２の稼働モードに切り替えるための、クライアントにより送信される命令を受信して、第１の命令をＫ個のドライブに送信する。Ｍ個の制御デバイスはまた、予め記憶された動作ポリシー、例えば、ユーザ設定を使用することによって、第１の時間期間において第１の稼働モードで動作し、第２の時間期間において第２の稼働モードで動作してよく、ストレージシステムは、切り替え条件が満たされると決定するとき、第１の命令をＫ個のドライブに送信する。代替的に、プライマリ制御デバイスとセカンダリ制御デバイスが、Ｍ個の制御デバイスにおいて設定され得る。プライマリ制御デバイスは、クライアントから、又は予め記憶された動作ポリシーを使用することによって、ドライブが第１の稼働モードから第２の稼働モードに切り替えられる必要があると決定し、第１の命令をＫ個のドライブの各々に送信する。もちろん、Ｍ個の制御デバイスは、Ｋ個のドライブの各ドライブに第１の命令を送信するための別の方式でトリガされてもよく、これは本明細書では限定されない。
【０２１１】
第１の命令は、Ｍ個の制御デバイスの各々によって送信されてよく、又はＭ個の制御デバイスの１つ又はいくつかによって送信されてよいことに留意されたい。これは本明細書では限定されない。
【０２１２】
ストレージシステムにおいて、Ｍ個の制御デバイスの各々が、Ｎ個の第１のコネクタの全て及びＮ個の第２のコネクタの全てを使用することによってＫ個のドライブと通信してよく、又は、Ｍ個の制御デバイスの各々が、Ｎ個の第１のコネクタのいくつか及びＮ個の第２のコネクタのいくつかを使用することによってＫ個のドライブと通信してよい。Ｎ個の第１のコネクタはＭ個の制御デバイスに取り外し可能に接続するように構成され、Ｎ個の第２のコネクタはＫ個のドライブに取り外し可能に接続するように構成される。Ｋ個のドライブの各々がデータを記憶するように構成され、Ｎ及びＫは正の整数である。
【０２１３】
第１のコネクタの構造、第２のコネクタの構造、第１のコネクタを制御デバイスに接続する方式、第２のコネクタをドライブに接続する方式、並びに制御デバイスとドライブの構造及び機能は、既に上で説明されており、本明細書では再び説明されないことに留意されたい。
【０２１４】
加えて、ステップＳ１６０１及びステップＳ１６０２の実行順序は本出願のこの実施形態では限定されないことに留意されたい。具体的には、ステップＳ１６０１が最初に実行されてよく、次いでステップＳ１６０２が実行される、又は、ステップＳ１６０２が最初に実行され、次いでステップＳ１６０１が実行される、又は、ステップＳ１６０１とステップ１６０２が同時に実行される。
【０２１５】
ステップＳ１６０３：Ｋ個のドライブの各々が、第１の命令に従って、第２の稼働モードに適応した状態となるように、各ドライブのＸ個の第２のコネクタのうちのＰ個の第２のコネクタを制御する。
【０２１６】
本出願のこの実施形態では、第２の稼働モードは、分散型ストレージアーキテクチャで動作するモードであってよく、又は、集中型ストレージアーキテクチャで動作するモードであってよい。従って、第２の稼働モードに適応した状態となるように各ドライブのＸ個の第２のコネクタのうちのＰ個の第２のコネクタを制御することの定義も異なり、具体的には次の通りである。
【０２１７】
第２の稼働モードが分散型ストレージアーキテクチャで動作するモードであるとき、第２の稼働モードに適応した状態となるようにＰ個の第２のコネクタのうちの１つを制御することは、
第２のコネクタを使用することによって、第２のコネクタに接続される第１のコネクタに対応する制御デバイスと通信することを停止するようにドライブを制御することを含み、Ｘ及びＰは正の整数であり、ＸとＰの差は１である。
【０２１８】
第２の稼働モードが集中型ストレージアーキテクチャで動作するモードであるとき、第２の稼働モードに適応した状態となるようにＰ個の第２のコネクタを制御することは、
Ｐ個の第２のコネクタのうちのＬ個の第２のコネクタを使用することによって、Ｌ個の第２のコネクタに接続されるＬ個の第１のコネクタに対応する制御デバイスと通信することを再開するようにドライブを制御することを含み、Ｌは正の整数であり、ＬはＰ以下である。
【０２１９】
第２のコネクタを使用することによって、第２のコネクタに接続される第１のコネクタに対応する制御デバイスと通信することを停止するようにドライブを制御する方式、及び、Ｌ個の第２のコネクタを使用することによって、Ｌ個の第２のコネクタに接続されるＬ個の第１のコネクタに対応する制御デバイスと通信することを再開するようにドライブを制御する方式は、上で説明されており、詳細は本明細書では再び説明されないことに留意されたい。
【０２２０】
ドライブが稼働モードを切り替えることを完了した後で、ストレージシステム全体が、第１の稼働モードに対応するストレージアーキテクチャから第２の稼働モードに対応するストレージアーキテクチャに切り替えられ、ストレージアーキテクチャ切り替え処理を完了する。
【０２２１】
前述の技術的解決法において、ストレージシステムが稼働モードを切り替える必要があるとき、制御デバイスの稼働モードが切り替えられ、制御デバイスは、稼働モード切り替え命令をドライブに送信して、ハードウェア構造と接続関係を変更することなくストレージシステムの稼働モードを切り替える。ストレージシステムの稼働モードを切り替えるステップが簡略化されることができる。
【０２２２】
前述の実装の説明により、本出願の実施形態は、ハードウェア、ファームウェア、又はそれらの組合せによって実装され得ることを、当業者は明確に理解し得る。本出願の実施形態がソフトウェアによって実装されるとき、前述の機能は、コンピュータ可読媒体に記憶され、又は、コンピュータ可読媒体において１つ又は複数の命令又はコードとして送られ得る。コンピュータ可読媒体は、コンピュータ記憶媒体又は通信媒体を含む。通信媒体は、ある場所から別の場所へのコンピュータプログラムの送信を容易にする任意の媒体を含む。記憶媒体はコンピュータによってアクセス可能な任意の使用可能な媒体であり得る。これは、例として使用されるが、次のことに限定はされない。コンピュータ可読媒体は、ＲＡＭ、ＲＯＭ、電気的消去可能プログラマブル読み取り専用メモリ（ｅｌｅｃｔｒｉｃａｌｌｙ  ｅｒａｓａｂｌｅ  ｐｒｏｇｒａｍｍａｂｌｅ  ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ、ＥＥＰＲＯＭ）、読み取り専用ディスク（ｃｏｍｐａｃｔ  ｄｉｓｃ  ｒｅａｄ−Ｏｎｌｙ  ｍｅｍｏｒｙ、ＣＤ−ＲＯＭ）又は別の光学ディスクストレージ、磁気ディスク記憶媒体又は別の磁気記憶デバイス、又は、命令又はデータ構造の形で所望のプログラムコードを搬送又は記憶するように構成されることができ、かつコンピュータによってアクセスされることができる、任意の他の媒体を含み得る。加えて、任意の接続が、コンピュータ可読媒体として適切に定義され得る。例えば、ソフトウェアが、ウェブサイト、サーバ、又は別のリモートソースから、同軸ケーブル、光ファイバ／ケーブル、ツイストペア、デジタル加入者線（Ｄｉｇｉｔａｌ  Ｓｕｂｓｃｒｉｂｅｒ  Ｌｉｎｅ、ＤＳＬ）、又は赤外線、無線、及びマイクロ波などのワイヤレス技術を使用することによって送信される場合、同軸ケーブル、光ファイバ／ケーブル、ツイストペア、ＤＳＬ、又は、赤外線、無線、及びマイクロ波などのワイヤレス技術は、それらが属する媒体の固定に含まれる。例えば、本発明の実施形態において使用されるディスク（ｄｉｓｋ）及びディスク（ｄｉｓｃ）は、コンパクトディスク（ｃｏｍｐａｃｔ  ｄｉｓｃ、ＣＤ）、レーザーディスク、光学ディスク、デジタル多用途ディスク（ｄｉｇｉｔａｌ  ｖｉｄｅｏ  ｄｉｓｃ、ＤＶＤ）、フロッピーディスク、Ｂｌｕ−ｒａｙディスクを含む。ディスクは一般に磁気手段によってデータを複製し、ディスクはレーザー手段によって光学的にデータを複製する。前述の組合せも、コンピュータ可読媒体の保護範囲に含まれるべきである。
【０２２３】
要約すると、上で説明されたことは本出願の実施形態にすぎず、本出願の保護範囲を限定することは意図されていない。本出願の開示に従ってなされる任意の修正、等価な置換、又は改善が、本出願の保護範囲内に入るものとする。
【図１Ａ】
2021529393.tif 000003
【図１Ｂ】
2021529393.tif 000004
【図２Ａ】
2021529393.tif 000005
【図２Ｂ】
2021529393.tif 000006
【図３Ａ】
2021529393.tif 000007
【図３Ｂ】
2021529393.tif 000008
【図３Ｃ】
2021529393.tif 000009
【図３Ｄ】
2021529393.tif 000010
【図４】
2021529393.tif 000011
【図５】
2021529393.tif 000012
【図６】
2021529393.tif 000013
【図７】
2021529393.tif 000014
【図８Ａ】
2021529393.tif 000015
【図８Ｂ】
2021529393.tif 000016
【図９Ａ】
2021529393.tif 000017
【図９Ｂ】
2021529393.tif 000018
【図９Ｃ】
2021529393.tif 000019
【図１０Ａ】
2021529393.tif 000020
【図１０Ｂ】
2021529393.tif 000021
【図１０Ｃ】
2021529393.tif 000022
【図１０Ｄ】
2021529393.tif 000023
【図１１】
2021529393.tif 000024
【図１２Ａ】
2021529393.tif 000025
【図１２Ｂ】
2021529393.tif 000026
【図１３Ａ】
2021529393.tif 000027
【図１３Ｂ】
2021529393.tif 000028
【図１３Ｃ】
2021529393.tif 000029
【図１３Ｄ】
2021529393.tif 000030
【図１４Ａ】
2021529393.tif 000031
【図１４Ｂ】
2021529393.tif 000032
【図１４Ｃ】
2021529393.tif 000033
【図１５Ａ】
2021529393.tif 000034
【図１５Ｂ】
2021529393.tif 000035
【図１５Ｃ】
2021529393.tif 000036
【図１６】
2021529393.tif 000037
【手続補正書】
【提出日】令和3年1月29日(2021.1.29)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
Ｍ個の制御デバイスと、Ｎ個の第１のコネクタと、Ｎ個の第２のコネクタと、Ｋ個のドライブとを備える、ストレージシステムであって、Ｍ、Ｎ、及びＫが正の整数であり、
前記Ｎ個の第１のコネクタが前記Ｍ個の制御デバイスに取り外し可能に接続するように構成され、前記Ｎ個の第２のコネクタが前記Ｋ個のドライブに取り外し可能に接続するように構成され、前記Ｋ個のドライブの各々がデータを記憶するように構成され、
前記Ｍ個の制御デバイスの各々が、前記Ｎ個の第１のコネクタの全て及び前記Ｎ個の第２のコネクタの全てを使用することによって、前記Ｋ個のドライブと通信するか、又は、前記Ｍ個の制御デバイスの各々が、前記Ｎ個の第１のコネクタのいくつか及び前記Ｎ個の第２のコネクタのいくつかを使用することによって、前記Ｋ個のドライブと通信し、
前記Ｍ個の制御デバイスの各々が第１の稼働モード及び第２の稼働モードをサポートし、前記Ｋ個のドライブの各々が前記第１の稼働モード及び前記第２の稼働モードをサポートし、前記Ｍ個の制御デバイスが前記第１の稼働モードから前記第２の稼働モードに切り替わるとき、前記Ｋ個のドライブが前記第１の稼働モードから前記第２の稼働モードに切り替わり、
前記第１の稼働モードが集中型ストレージアーキテクチャで動作するモードであるとき、前記第２の稼働モードが分散型ストレージアーキテクチャで動作するモードであり、又は、前記第１の稼働モードが分散型ストレージアーキテクチャで動作するモードであるとき、前記第２の稼働モードが集中型ストレージアーキテクチャで動作するモードである、
ストレージシステム。
【請求項２】
前記Ｍ個の制御デバイスの各々が前記Ｎ個の第１のコネクタの全て又はいくつかに接続されるか、又は、前記Ｍ個の制御デバイスの各々が前記Ｎ個の第１のコネクタの全て又はいくつかを備え、
前記Ｋ個のドライブのうちの１つがＸ個の第２のコネクタを有し、前記Ｍ個の制御デバイスの各々が、前記Ｎ個の第１のコネクタの全て又はいくつかを使用することによって前記Ｋ個のドライブの各々の１つの第２のコネクタに取り外し可能に接続され、前記Ｘ個の第２のコネクタに接続される第１のコネクタが異なる制御デバイスに接続され、又は、前記Ｘ個の第２のコネクタに接続される第１のコネクタが異なる制御デバイスに備えられ、Ｘが正の整数であり、ＸがＭ以下である
請求項１に記載のシステム。
【請求項３】
前記第１のコネクタ及び前記第２のコネクタが、相対応する垂直で直交するコネクタであり、又は、前記第１のコネクタ及び前記第２のコネクタが、予め設定された回転角を有し、かつ相対応するコネクタである
請求項１又は２に記載のシステム。
【請求項４】
前記Ｍ個の制御デバイスのうちの１つが、
前記Ｋ個のドライブの各々についての情報を取得し、
前記Ｋ個のドライブの各々についての前記情報に基づいて前記Ｋ個のドライブの稼働モードを決定し、
前記Ｋ個のドライブの前記稼働モードが前記制御デバイスの現在の稼働モードと適合すると決定するとき、Ｋ個の第１のコネクタに電力を供給する
ように構成される
請求項１〜３のいずれか１項に記載のシステム。
【請求項５】
前記制御デバイスが、
前記Ｋ個のドライブの各々についての前記情報に基づいて前記Ｋ個のドライブの前記稼働モードを決定した後で、前記Ｋ個のドライブの前記稼働モードが前記制御デバイスの前記現在の稼働モードと適合しないと決定するとき、前記Ｋ個の第１のコネクタに電力を供給することを停止する
ようにさらに構成される
請求項４に記載のシステム。
【請求項６】
前記制御デバイスが、
前記Ｋ個のドライブの各々の状態を取得し、
前記Ｋ個のドライブのうちのＳ個のドライブが切断状態又は欠陥状態にあると決定するとき、前記Ｓ個のドライブに接続されるＳ個の第１のコネクタに電力を供給することを停止する
ように構成される
請求項４に記載のシステム。
【請求項７】
前記Ｋ個のドライブの各々が、高速信号インターフェース及び低速信号インターフェースを備え、
前記高速信号インターフェースが、Ｘ個の第２のコネクタ、及び前記Ｘ個の第２のコネクタに接続される前記第１のコネクタを使用することによって、制御デバイスにサービスデータを送信するように構成され、
前記低速信号インターフェースが、前記Ｘ個の第２のコネクタから入力される第１の命令を受信するように構成され、前記第１の命令が前記ドライブについての情報を取得するために使用される
請求項１〜６のいずれか１項に記載のシステム。
【請求項８】
前記Ｋ個のドライブの各々が、内部ドライブ制御モジュールをさらに備え、前記Ｋ個のドライブの各々において、
前記低速信号インターフェースが、
前記Ｘ個の第２のコネクタに接続される前記第１のコネクタに対応する制御デバイスのうちの第１の制御デバイスによって送信される第２の命令を受信するようにさらに構成され、前記第２の命令が、前記第２の命令を受信するドライブの稼働モードを、前記分散型ストレージアーキテクチャで動作する前記モードに変更するように命令するために使用され、
前記内部ドライブ制御モジュールが、
前記第２の命令が前記低速信号インターフェースを通じて受信された後で、通信停止状態となるように前記Ｘ個の第２のコネクタのうちのＰ個の第２のコネクタを制御するように構成され、１つの第２のコネクタが通信停止状態にあるということが、前記ドライブが、前記第２のコネクタを使用することによって、前記第２のコネクタに接続される第１のコネクタに対応する制御デバイスと通信することを停止するように制御されるということを意味し、Ｐが正の整数であり、ＸとＰの差が１である
請求項７に記載のシステム。
【請求項９】
前記Ｋ個のドライブの各々が内部ドライブ制御モジュールをさらに備え、前記Ｋ個のドライブの各々において、
前記低速信号インターフェースが、
前記Ｘ個の第２のコネクタに接続される前記第１のコネクタに対応する制御デバイスのうちの第１の制御デバイスによって送信される第３の命令を受信するようにさらに構成され、前記第３の命令が、前記第３の命令を受信するドライブの稼働モードを前記集中型ストレージアーキテクチャで動作する前記モードに変更するように命令するために使用され、
前記内部ドライブ制御モジュールが、
前記第３の命令が前記低速信号インターフェースを通じて受信された後で、前記Ｘ個の第２のコネクタのうちのＰ個の第２のコネクタが通信停止状態にあるとき、Ｌ個の第２のコネクタを使用することによって、前記Ｌ個の第２のコネクタに接続されるＬ個の第１のコネクタに対応する制御デバイスと通信することを再開するように前記ドライブを制御するように構成され、Ｌが正の整数であり、ＬがＰ以下である
請求項７に記載のシステム。
【請求項１０】
ストレージシステムの稼働モードを切り替えるための方法であって、前記方法は、
前記ストレージシステムの中のＭ個の制御デバイスによって、第１の稼働モードで動作し、前記Ｍ個の制御デバイスによって、第２の稼働モードをサポートするステップであって、前記第１の稼働モードが集中型ストレージアーキテクチャで動作するモードであるとき、前記第２の稼働モードが分散型ストレージアーキテクチャで動作するモードであり、又は、前記第１の稼働モードが分散型ストレージアーキテクチャで動作するモードであるとき、前記第２の稼働モードが集中型ストレージアーキテクチャで動作するモードであり、Ｍが正の整数である、ステップと、
前記Ｍ個の制御デバイスのうちの少なくとも１つによって、前記ストレージシステムの中のＫ個のドライブの各々に第１の命令を送信するステップであって、前記第１の命令が、前記第１の命令を受信するドライブに前記第２の稼働モードで動作するように命令するために使用され、前記Ｍ個の制御デバイスの各々が、Ｎ個の第１のコネクタの全て及びＮ個の第２のコネクタの全てを使用することによって前記Ｋ個のドライブと通信し、又は、前記Ｍ個の制御デバイスの各々が、Ｎ個の第１のコネクタのいくつか及びＮ個の第２のコネクタのいくつかを使用することによって前記Ｋ個のドライブと通信し、前記Ｎ個の第１のコネクタが前記Ｍ個の制御デバイスに取り外し可能に接続するように構成され、前記Ｎ個の第２のコネクタが前記Ｋ個のドライブに取り外し可能に接続するように、又は前記Ｋ個のドライブに固定的に接続するように構成され、前記Ｋ個のドライブの各々がデータを記憶するように構成され、Ｎ及びＫが正の整数である、ステップと、
前記第１の命令に従って前記Ｋ個のドライブの各々によって、前記第２の稼働モードに適応した状態となるように各ドライブのＸ個の第２のコネクタのうちのＰ個の第２のコネクタを制御するステップであって、Ｘ及びＰが正の整数であり、ＸとＰの差が１である、ステップと
を備える、方法。
【請求項１１】
前記第２の稼働モードが前記分散型ストレージアーキテクチャで動作する前記モードであるとき、前記第２の稼働モードに適応した状態となるように前記Ｐ個の第２のコネクタのうちの１つを制御するステップが、前記第２のコネクタを使用することによって、前記第２のコネクタに接続される第１のコネクタに対応する制御デバイスと通信することを停止するように前記ドライブを制御するステップを備え、
前記第２の稼働モードが前記集中型ストレージアーキテクチャで動作する前記モードであるとき、前記第２の稼働モードに適応した状態となるようにＰ個の第２のコネクタを制御する前記ステップが、前記Ｐ個の第２のコネクタのうちのＬ個の第２のコネクタを使用することによって、前記Ｌ個の第２のコネクタに接続されるＬ個の第１のコネクタに対応する制御デバイスと通信することを再開するように前記ドライブを制御するステップを備え、Ｌが正の整数であり、ＬがＰ以下である
請求項１０に記載の方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、ストレージ技術の分野に関し、詳細には、ストレージシステム、及びストレージシステムの稼働モードを切り替えるための方法に関する。
【背景技術】
【０００２】
ビッグデータ分析技術及びモノのインターネット技術などの技術の発展により、データは関連技術の進化を促進するための中核的な要素になった。従って、データストレージの信頼性を確保することがより重要になっている。
【０００３】
データストレージシステムは、ドライブコントローラ及びドライブを含む。ストレージシステムのストレージアーキテクチャは、ドライブコントローラがドライブにアクセスする方式に基づいて、集中型ストレージアーキテクチャ及び分散型ストレージアーキテクチャへと分類される。従来技術では、集中型ストレージアーキテクチャと分散型ストレージアーキテクチャの両方が固有の設計である。具体的には、２つのストレージアーキテクチャのうちのストレージアーキテクチャにかかわらず、ドライブコントローラ及びドライブは固定的に接続され、分離されることができない。一方のストレージアーキテクチャが他方のストレージアーキテクチャに切り替えられる必要がある場合、例えば、集中型ストレージアーキテクチャが分散型ストレージアーキテクチャに切り替えられるべきである場合、ストレージアーキテクチャ全体が購入される必要がある。具体的には、統合される分散型ストレージアーキテクチャのドライブコントローラ及び対応するドライブが購入される必要がある。明らかに、コストは相対的に高い。従来技術のストレージアーキテクチャはフレキシブルではなく、フレキシブルな展開に対して不便であることが、承知されることができる。
【発明の概要】
【０００４】
本出願の実施形態は、ストレージアーキテクチャのフレキシビリティを改善するための、ストレージシステムと、ストレージシステムの稼働モードを切り替えるための方法とを提供する。
【０００５】
第１の態様によれば、本出願の実施形態はストレージシステムを提供し、ストレージシステムは、Ｍ個の制御デバイスと、Ｎ個の第１のコネクタと、Ｎ個の第２のコネクタと、Ｋ個のドライブとを含み、Ｍ、Ｎ、及びＫが正の整数であり、
Ｎ個の第１のコネクタがＭ個の制御デバイスに取り外し可能に接続するように構成され、Ｎ個の第２のコネクタが、Ｋ個のドライブに取り外し可能に接続するように構成され、又はＫ個のドライブに固定的に接続するように構成され、Ｋ個のドライブの各々がデータを記憶するように構成され、
Ｍ個の制御デバイスの各々が、Ｎ個の第１のコネクタの全て及びＮ個の第２のコネクタの全てを使用することによってＫ個のドライブと通信し、又は、Ｍ個の制御デバイスの各々が、Ｎ個の第１のコネクタのいくつか及びＮ個の第２のコネクタのいくつかを使用することによってＫ個のドライブと通信し、
Ｍ個の制御デバイスの各々が第１の稼働モード及び第２の稼働モードをサポートし、Ｋ個のドライブの各々が第１の稼働モード及び第２の稼働モードをサポートし、Ｍ個の制御デバイスが第１の稼働モードから第２の稼働モードに切り替わるとき、Ｋ個のドライブが第１の稼働モードから第２の稼働モードに切り替わるように制御され、第１の稼働モードが集中型ストレージアーキテクチャで動作するモードであるとき、第２の稼働モードが分散型ストレージアーキテクチャで動作するモードであり、又は第１の稼働モードが分散型ストレージアーキテクチャで動作するモードであるとき、第２の稼働モードが集中型ストレージアーキテクチャで動作するモードである。
【０００６】
前述の技術的解決法において、制御デバイスは第１のコネクタに取り外し可能に接続されることがあり、ドライブは第２のコネクタに取り外し可能に又は固定的に接続されることがあるので、ユーザは、使用上の要件に基づいてドライブと制御デバイスとの間の接続関係をフレキシブルに構成して、異なるストレージアーキテクチャを構成し得る。加えて、制御デバイスとドライブの両方が２つの稼働モードをサポートするので、ストレージアーキテクチャが変更される必要があるとき、制御デバイスとドライブの稼働モードだけが切り替えられる必要があり、又は、ドライブだけが交換される必要があり、新しい制御デバイスと新しいドライブが購入される必要がない。これは、ストレージシステムのフレキシビリティを改善し、ストレージアーキテクチャの切り替えのコストを減らす。
【０００７】
ある可能な設計において、Ｍ個の制御デバイスの各々が、Ｎ個の第１のコネクタの全て又はいくつかに接続され、又は、Ｍ個の制御デバイスの各々が、Ｎ個の第１のコネクタの全て又はいくつかを含む。
【０００８】
前述の技術的解決法において、制御デバイスは、複数の方式で第１のコネクタに接続され得る。例えば、制御デバイスは、第１のコネクタに電気的に接続され得る。代替的に、制御デバイスは第１のコネクタを含み得る。例えば、第１のコネクタは制御デバイスに配置される。ストレージシステムのフレキシビリティが改善されることができる。
【０００９】
ある可能な設計において、Ｋ個のドライブのうちの１つがＸ個の第２のコネクタを有し、Ｍ個の制御デバイスの各々が、Ｎ個の第１のコネクタの全て又はいくつかを使用することによって、Ｋ個のドライブの各々の１つの第２のコネクタに取り外し可能に接続され、１つの第１のコネクタが１つの第２のコネクタに接続され、Ｘ個の第２のコネクタに接続された第１のコネクタが異なる制御デバイスに接続され、又は、Ｘ個の第２のコネクタに接続された第１のコネクタが異なる制御デバイスに含まれ、Ｘは正の整数であり、ＸはＭ以下である。
【００１０】
前述の技術的解決法において、各ドライブは複数の第２のコネクタを含んでもよく、ドライブの複数の第２のコネクタは、複数の第１のコネクタを使用することによって異なる制御デバイスに接続される。このようにして、ドライブに含まれる全ての複数の第２のコネクタが通信可能状態にあるとき、ドライブの複数の第２のコネクタに接続される異なる制御デバイスが全て、ドライブにアクセスすることがあり、集中型ストレージアーキテクチャを構成する。ドライブに含まれる複数の第２のコネクタのうちの１つだけが通信可能状態にあるとき、ドライブの複数の第２のコネクタに接続される異なる制御デバイスのうちの１つだけがドライブにアクセスすることができ、使用上の要件に基づく分散型ストレージアーキテクチャを構成する。ドライブの第２のコネクタの状態は、異なるストレージアーキテクチャを構成するためにフレキシブルに設定される。
【００１１】
ある可能な設計において、１つの第１のコネクタ及び１つの第２のコネクタは、相対応する垂直で直交するコネクタであり、又は、１つの第１のコネクタ及び１つの第２のコネクタは、予め設定された回転角を有する相対応するコネクタである。
【００１２】
前述の技術的解決法において、第１のコネクタ及び第２のコネクタは、空間座標系のＸ軸、Ｙ軸、及びＺ軸の方向における、制御デバイスとドライブとの間の相対的なシフトに打ち勝つために使用され得る。従って、複数の制御デバイスが複数のドライブに確実に接続されることができ、従来技術のバックプレーンが取り除かれることができ、ストレージシステムの設計の複雑さを下げ、バックプレーンの欠陥によりストレージシステム全体が使用されることができなくなる確率を下げ、そうすることによって、ストレージシステムの信頼性を改善する。
【００１３】
さらに、従来技術のバックプレーンが取り除かれ、そうすることによって、通信処理における制御デバイスとドライブとの間でのインピーダンス不整合点が減らされることができる。具体的には、制御デバイスとバックプレーンとの間のインピーダンス不整合、及びバックプレーンとドライブとの間のインピーダンス不整合が減らされる。このことは、信号送信レートを改善することができる。
【００１４】
さらに、従来技術のバックプレーンが取り除かれ、そうすることによって、ストレージシステムにおけるエアフロー欠陥点が減らされ、ストレージシステムの熱放散性能が改善されることができる。従って、ストレージシステムの特定空間において、ストレージシステムの特定熱放散性能により、ストレージシステム内に、より多くのデバイスが許容されることができ、ストレージシステムの密度が改善されることができる。
【００１５】
ある可能な設計において、Ｍ個の制御デバイスのうちの１つが、Ｋ個のドライブの各々についての情報を取得し、次いで、Ｋ個のドライブの各々についての情報に基づいてＫ個のドライブの稼働モードを決定し、Ｋ個のドライブの稼働モードが制御デバイスの現在の稼働モードと適合すると決定するとき、Ｋ個の第１のコネクタに電力を供給するように構成される。
【００１６】
前述の技術的解決法において、制御デバイスは、ドライブの稼働モードが制御デバイスの稼働モードと適合すると決定するときだけ、ドライブに電力を供給する。このようにして、ストレージシステムの電気エネルギーが適切に使用されることができる。
【００１７】
ある可能な設計において、制御デバイスは、Ｋ個のドライブの各々についての情報に基づいてＫ個のドライブの稼働モードを決定した後で、Ｋ個のドライブの稼働モードが制御デバイスの現在の稼働モードと適合しないと決定するとき、Ｋ個の第１のコネクタに電力を供給することを停止するようにさらに構成される。
【００１８】
ある可能な設計において、制御デバイスは、Ｋ個のドライブの各々の状態を取得し、Ｋ個のドライブのうちのＳ個のドライブが切断状態又は欠陥状態にあると決定するとき、Ｓ個のドライブに接続されるＳ個の第１のコネクタに電力を供給することを停止するように構成される。
【００１９】
前述の技術的解決法において、制御デバイスはまず、制御デバイスに接続されるドライブの稼働状態を決定してよく、ドライブの稼働状態が切断状態又は欠陥状態にあると決定するとき、制御デバイスはドライブに電力を供給しない。このようにして、ストレージシステムの電気エネルギーが適切に使用されることができ、欠陥状態にあるドライブが熱を放散することもなく、そうすることによって、ストレージシステムの熱放散が減らされることができる。
【００２０】
ある可能な設計において、Ｋ個のドライブのうちの１つが、高速信号インターフェース及び低速信号インターフェースを含む。高速信号インターフェースは、Ｘ個の第２のコネクタ、及びＸ個の第２のコネクタに接続される第１のコネクタを使用することによって、制御デバイスにサービスデータを送信するように構成され、低速信号インターフェースは、Ｘ個の第２のコネクタから入力され、かつドライブについての情報を取得するために使用される、第１の命令を受信するように構成される。
【００２１】
前述の技術的解決法において、ドライブは、異なるインターフェースを通じて制御デバイスと通信してもよく、そうすることによって、ドライブが制御デバイスによって送信される信号を管理する。
【００２２】
ある可能な設計において、Ｋ個のドライブの各々がさらに、内部ドライブ制御モジュールを含む。Ｋ個のドライブの各々に対して、低速信号インターフェースは、Ｘ個の第２のコネクタに接続される第１のコネクタに対応する制御デバイスのうちの第１の制御デバイスによって送信され、第２の命令を受信するドライブの稼働モードを分散型ストレージアーキテクチャで動作するモードに変更するように命令するために使用される、第２の命令を受信するようにさらに構成され、内部ドライブ制御モジュールは、第２の命令が低速信号インターフェースを通じて受信された後で、通信停止状態となるようにＸ個の第２のコネクタのうちのＰ個の第２のコネクタを制御するように構成され、１つの第２のコネクタが通信停止状態にあるということは、ドライブが、第２のコネクタを使用することによって、第２のコネクタに接続される第１のコネクタに対応する制御デバイスと通信することを停止するように制御されるということを意味し、Ｐは正の整数であり、ＸとＰの差は１である。
【００２３】
前述の技術的解決法において、ドライブは、制御デバイスによって送信される命令に基づいて、通信停止状態となるようにドライブの第２のコネクタを制御してもよく、そうすることによって、ドライブの稼働モードは、分散型ストレージアーキテクチャにおけるモードに切り替えられ、ハードウェア構造及び接続関係を変更することなく、ストレージシステムの稼働モードが切り替えられることができ、ストレージシステムの稼働モードを切り替えるステップが簡略化されることができる。
【００２４】
ある可能な設計において、Ｋ個のドライブの各々はさらに、内部ドライブ制御モジュールを含む。Ｋ個のドライブの各々に対して、低速信号インターフェースは、Ｘ個の第２のコネクタに接続される第１のコネクタに対応する制御デバイスのうちの第１の制御デバイスによって送信され、第３の命令を受信するドライブの稼働モードを集中型ストレージアーキテクチャで動作するモードに変更するように命令するために使用される、第３の命令を受信するようにさらに構成され、内部ドライブ制御モジュールは、第３の命令が低速信号インターフェースを通じて受信された後で、Ｘ個の第２のコネクタのうちのＰ個の第２のコネクタが通信停止状態にあるとき、Ｌ個の第２のコネクタを使用することによって、Ｌ個の第２のコネクタに接続されるＬ個の第１のコネクタに対応する制御デバイスと通信することを再開するようにドライブを制御するように構成され、Ｌは正の整数であり、ＬはＰ以下である。
【００２５】
第２の態様によれば、本出願は、ストレージシステムの稼働モードを切り替えるための方法を提供し、この方法は、次のステップを含む。ストレージシステムの中のＭ個の制御デバイスが第１の稼働モードで動作し、Ｍ個の制御デバイスが第２の稼働モードをサポートするとき、Ｍ個の制御デバイスのうちの少なくとも１つが、ストレージシステムの中のＫ個のドライブの各々に、第１の命令を受信するドライブに第２の稼働モードで動作するように命令するために使用される第１の命令を送信し、そうすることによって、第１の命令を受信するＫ個のドライブの各々は、第１の命令に従って、第２の稼働モードに適応した状態となるようにＸ個の第２のコネクタのうちのＰ個の第２のコネクタを制御し、第１の稼働モードが集中型ストレージアーキテクチャで動作するモードであるとき、第２の稼働モードが分散型ストレージアーキテクチャで動作するモードであり、又は、第１の稼働モードが分散型ストレージアーキテクチャで動作するモードであるとき、第２の稼働モードが集中型ストレージアーキテクチャで動作するモードである。Ｍ個の制御デバイスの各々は、Ｎ個の第１のコネクタの全て及びＮ個の第２のコネクタの全てを使用することによってＫ個のドライブと通信し、又は、Ｍ個の制御デバイスの各々は、Ｎ個の第１のコネクタのいくつか及びＮ個の第２のコネクタのいくつかを使用することによってＫ個のドライブと通信し、Ｎ個の第１のコネクタは、Ｍ個の制御デバイスに取り外し可能に接続するように構成され、Ｎ個の第２のコネクタは、Ｋ個のドライブに取り外し可能に接続するように構成され、又はＫ個のドライブに固定的に接続するように構成され、Ｋ個のドライブの各々がデータを記憶するように構成される。Ｍ、Ｎ、Ｋ、Ｘ、及びＰは正の整数であり、ＸとＰの差は１である。
【００２６】
前述の技術的解決法において、ストレージシステムが稼働モードを切り替える必要があるとき、制御デバイスの稼働モードが切り替えられ、制御デバイスが、稼働モード切り替え命令をドライブに送信し、ハードウェア構造及び接続関係を変更することなくストレージシステムの稼働モードを切り替える。ストレージシステムの稼働モードを切り替えるステップが簡略化されることができる。
【００２７】
ある可能な設計において、制御すること、第２の稼働モードが分散型ストレージアーキテクチャで動作するモードであるとき、第２の稼働モードに適応した状態となるようにＰ個の第２のコネクタのうちの１つを制御することは、第２のコネクタを使用することによって、第２のコネクタに接続される第１のコネクタに対応する制御デバイスと通信することを停止するようにドライブを制御することを含み、又は、第２の稼働モードが集中型ストレージアーキテクチャで動作するモードであるとき、第２の稼働モードに適応した状態となるようにＰ個の第２のコネクタのうちの１つを制御することは、Ｐ個の第２のコネクタのうちのＬ個の第２のコネクタを使用することによって、Ｌ個の第２のコネクタに接続されるＬ個の第１のコネクタに対応する制御デバイスと通信することを再開するようにドライブを制御することを含み、Ｌは正の整数であり、ＬはＰ以下である。
【００２８】
前述の技術的解決法において、ドライブは、制御デバイスによって送信される命令に従ってドライブの第２のコネクタの通信ステータスを制御することによって、ドライブの稼働モードを切り替え得る。例えば、分散型ストレージアーキテクチャで動作するモードが切り替えられる必要があるとき、Ｍ個の第２のコネクタのいくつかが、通信停止状態となるように制御され、集中型ストレージアーキテクチャで動作するモードが切り替えられる必要があるとき、通信停止状態にある第２のコネクタのいくつか又は全てが通信を再開する。従って、ドライブの稼働モードは集中型ストレージアーキテクチャにおけるモードに切り替えられ、ドライブの稼働モードはハードウェア構造及び接続関係を変更することなく切り替えられることができる。
【００２９】
第３の態様によれば、本出願の実施形態は、コンピュータ可読記憶媒体をさらに提供し、コンピュータ可読記憶媒体はコンピュータプログラムを含み、コンピュータプログラムが端末上で動作するとき、ストレージシステムは、第２の態様の方法又は第２の態様の可能な設計のうちの任意の１つを実行することが可能にされる。
【００３０】
第４の態様によれば、本出願の実施形態は、コンピュータプログラム製品をさらに提供し、コンピュータプログラム製品が端末上で動作するとき、ストレージシステムは、第２の態様の方法又は第２の態様の可能な設計のうちの任意の１つを実行することが可能にされる。
【００３１】
第３の態様及び第４の態様の有益な効果並びに第３の態様及び第４の態様の実装については、第２の態様の方法の有益な効果及び第２の態様の実装の説明を参照されたい。
【図面の簡単な説明】
【００３２】
【図１Ａ】本出願のある実施形態による適用シナリオの概略図である。
【図１Ｂ】本出願のある実施形態による適用シナリオの概略図である。
【図２Ａ】集中型ストレージシステムの例のアーキテクチャ図である。
【図２Ｂ】分散型ストレージシステムの例のアーキテクチャ図である。
【図３Ａ】本出願のある実施形態によるストレージシステム３００の概略構造図である。
【図３Ｂ】本出願のある実施形態によるストレージシステム３００の別の概略構造図である。
【図３Ｃ】本出願のある実施形態によるストレージシステム３００の別の概略構造図である。
【図３Ｄ】本出願のある実施形態によるストレージシステム３００の別の概略構造図である。
【図４】本出願のある実施形態によるストレージシステム３００の制御デバイス３０１に含まれるプロセッサ３０１１の概略構造図である。
【図５】本出願のある実施形態によるストレージシステム３００の制御デバイス３０１に含まれる複数の個別の構成要素の概略構造図である。
【図６】本出願のある実施形態によるストレージシステム３００にさらに含まれる検出回路３０２１の概略構造図である。
【図７】本出願のある実施形態によるストレージシステム３００にさらに含まれるＰＣＩＥスイッチの概略構造図である。
【図８Ａ】本出願のある実施形態による分散型ドライブの概略図である。
【図８Ｂ】本出願のある実施形態による分散型ドライブの別の概略図である。
【図９Ａ】本出願のある実施形態による集中型ドライブの概略図である。
【図９Ｂ】本出願のある実施形態による集中型ドライブの２つの第２のコネクタ間の離隔の概略図である。
【図９Ｃ】本出願のある実施形態による集中型ドライブの別の概略図である。
【図１０Ａ】本出願のある実施形態による汎用ドライブの概略図である。
【図１０Ｂ】本出願のある実施形態による汎用ドライブの別の概略図である。
【図１０Ｃ】本出願のある実施形態による、通信停止状態となるように汎用ドライブが第２のコネクタ１００２を制御する概略図である。
【図１０Ｄ】本出願のある実施形態による、汎用ドライブがデータストレージモジュール１００６を２つの独立したアクセス領域へと分割する概略図である。
【図１１】本出願のある実施形態による、分散型ストレージアーキテクチャにおける制御デバイスＡに欠陥がある場合の概略図である。
【図１２Ａ】本出願のある実施形態による集中型ストレージアーキテクチャのストレージシステムの概略図である。
【図１２Ｂ】本出願のある実施形態による集中型ストレージアーキテクチャのストレージシステムの側面図である。
【図１３Ａ】本出願のある実施形態によるドライブ３０３の概略図である。
【図１３Ｂ】本出願のある実施形態による１つの第１のコネクタ３０２を含む制御デバイス３０１の側面図である。
【図１３Ｃ】本出願のある実施形態による１つの第２のコネクタを含むドライブ３０３の側面図である。
【図１３Ｄ】本出願のある実施形態による制御デバイス３０１とドライブ３０３との間の接続関係の概略図である。
【図１４Ａ】本出願のある実施形態による１つの第１のコネクタ３０２を含む別の制御デバイス３０１の側面図である。
【図１４Ｂ】本出願のある実施形態による１つの第２のコネクタを含む別のドライブ３０３の側面図である。
【図１４Ｃ】本出願のある実施形態による制御デバイス３０１とドライブ３０３との間の別の接続関係の概略図である。
【図１５Ａ】本出願のある実施形態によるストレージシステム動作方法のフローチャートである。
【図１５Ｂ】本出願のある実施形態によるストレージシステム動作方法のフローチャートである。
【図１５Ｃ】本出願のある実施形態によるストレージシステム動作方法のフローチャートである。
【図１６】本出願のある実施形態によるストレージシステムの稼働モードを切り替えるための方法のフローチャートである。
【発明を実施するための形態】
【００３３】
本出願の実施形態の目的、技術的解決法、及び利点をより明確にするために、以下は、本明細書の添付の図面及び具体的な実装を参照して、本出願の実施形態の技術的解決法を詳しく説明する。
【００３４】
本明細書における「及び／又は」という用語は、関連付けられる物体を記述するための関連付けの関係のみを記述し、３つの関係が存在し得ることを表す。例えば、Ａ及び／又はＢは、Ａのみが存在する、ＡとＢの両方が存在する、及びＢのみが存在するという、３つの場合を表し得る。加えて、本明細書における文字「／」は全般に、別段規定されない限り、関連付けられる物体間の「又は」の関係を示す。
【００３５】
加えて、本出願の実施形態における「複数の」は「２つ以上の」を意味することが理解されるべきである。「第１の」及び「第２の」などの語は、区別及び説明のために使用されるだけであり、相対的な重要性のインジケーション又は示唆、或いは、順序のインジケーション又は示唆として理解されるべきではない。
【００３６】
本出願の実施形態はストレージシステムを提供する。ストレージシステムは、図１Ａ又は図１Ｂに示されるデータ読み取り／書き込みシナリオに適用される。図１Ａに示されるデータ読み取り／書き込みシナリオでは、クライアントは、ドライブコントローラを使用することによって、ドライブコントローラに接続されるドライブにアクセスする。例えば、クライアントがドライブの中のデータを取得する必要があるとき、クライアントは、データ読み取り命令をドライブコントローラに送信する。データ読み取り命令を受信した後で、ドライブコントローラは、データを記憶するドライブからデータを取得し、データをクライアントに送信する。クライアントがデータを記憶する必要があるとき、クライアントは、データ書き込み命令をドライブコントローラに送信する。データ書き込み命令は、記憶されるべきデータを搬送する。データ書き込み命令を受信した後で、ドライブコントローラは、記憶されるべきデータをデータ書き込み命令から取得し、対応するドライブに記憶されるべきデータを記憶する。
【００３７】
図１Ａとは異なり、図１Ｂに示されるデータ読み取り／書き込みシナリオでは、クライアントは、クラウドネットワークを使用することによって、データ読み取り命令又はデータ書き込み命令をドライブコントローラに送信する。クラウドネットワークを使用することによってデータ読み取り命令を受信し、データを対応するドライブから取得した後で、ドライブコントローラは、クラウドネットワークを使用することによってデータをクライアントに送信する。クラウドネットワークを使用することによってデータ書き込み命令を受信した後で、ドライブコントローラは、対応するドライブに、データ書き込み命令から取得された記憶されるべきデータを記憶する。
【００３８】
図１Ａ及び図１Ｂに示されるシナリオにおいて、１つのクライアント、１つのドライブコントローラ、及び１つのドライブの間の相互作用は、説明のための例として使用されるだけであり、本出願の実施形態の適用シナリオに対するいかなる制限も構成すべきではないことに留意されたい。実際のデータ読み取り／書き込みシナリオでは、複数のクライアント、複数のドライブコントローラ、及び複数のドライブがあり得る。例えば、複数のクライアントは、複数のドライブコントローラの任意の１つに接続されるドライブにアクセスしてよく、又は、複数のクライアントは、固有のドライブコントローラに接続されるドライブだけにアクセスしてよい。これは、本出願の実施形態では限定されない。
【００３９】
ドライブコントローラ及びドライブは、集中型ストレージアーキテクチャにあることがある。図２Ａに示されるように、集中型ストレージアーキテクチャは、ドライブコントローラＡ、ドライブコントローラＢ、複数のドライブ、及びバックプレーンを含む。集中型ストレージアーキテクチャでは、１つのデータが複数のドライブのうちの１つに記憶される。例えば、ユーザＡのビデオデータはドライブ１に記憶され、ユーザＡの音声データはドライブ２に記憶される。動作が、あるデータに対して実行される必要があるとき、ドライブコントローラＡ又はドライブコントローラＢは、命令を送信し、バックプレーンを使用することによって命令をドライブに出力して、対応するドライブからデータを取得し得る。集中型ストレージアーキテクチャでは、ドライブコントローラＡとドライブコントローラＢの両方が、ドライブに記憶されているデータにアクセスすることができ、ドライブコントローラＡ又はドライブコントローラＢのいずれかが欠陥のある状態となった後で、欠陥のあるドライブコントローラのサービスは、他方のドライブコントローラによって引き継がれてよく、他方のドライブコントローラは、欠陥のあるドライブコントローラのサービスを分担し続ける。
【００４０】
ドライブコントローラ及びドライブは、分散型ストレージアーキテクチャにあることがある。図２Ｂは、分散型ストレージアーキテクチャの例を示す。分散型ストレージアーキテクチャは、１つのドライブコントローラ、複数のドライブ、及びバックプレーンを含む。分散型ストレージアーキテクチャでは、データは複数のデータへと分割されてよく、各データに対応する確認コードが生成される。各データ及び対応する確認コードは、複数のドライブの各々に記憶される。例えば、ユーザＡのビデオデータはビデオデータ１からビデオデータ３へと分割され、ビデオデータ１からビデオデータ３にそれぞれ対応する確認コード、確認コード１から確認コード３が生成される。次いで、ビデオデータ１及び確認コード１がドライブ１に記憶され、ビデオデータ２及び確認コード２がドライブ２に記憶され、ビデオデータ３及び確認コード３がドライブ３に記憶される。ドライブコントローラがビデオデータを読み取る必要があるとき、ドライブコントローラは、データ読み取り命令を送信し、バックプレーンを使用することによって命令をドライブ１からドライブ３にファンアウトし、ビデオデータ１からビデオデータ３及び確認コード１から確認コード３を３つのドライブから取得し得る。そして、ドライブコントローラは、ビデオデータ１からビデオデータ３及び確認コード１から確認コード３を処理し、例えば、組み合わせて、ビデオデータを最終的に取得する。
【００４１】
以下は、添付の図面を参照して、本出願の実施形態において提供されるストレージシステムを詳しく説明する。
【００４２】
図３Ａは、本出願の一実施形態によるストレージシステム３００の概略構造図である。ストレージシステム３００は、少なくとも１つの制御デバイス３０１及び第１のコネクタ３０２を含む。第１のコネクタ３０２はドライブに取り外し可能に接続するように構成され、ドライブはデータを記憶するように構成される。少なくとも１つの制御デバイス３０１は、第１のコネクタ３０２を使用することによって、第１のコネクタ３０２に接続されるドライブと通信するように構成される。ドライブは、ソリッドステートディスク（ｓｏｌｉｄ  ｓｔａｔｅ  ｄｒｉｖｅｓ、ＳＳＤ）、例えば、シリアルアドバンストテクノロジーアタッチメント（ｓｅｒｉａｌ  ａｄｖａｎｃｅｄ  ｔｅｃｈｎｏｌｏｇｙ  ａｔｔａｃｈｍｅｎｔ、ＳＡＴＡ）インターフェースを伴うＳＳＤ、シリアルアタッチトスモールコンピュータシステムインターフェース（ｓｅｒｉａｌ  ａｔｔａｃｈｅｄ  ｓｍａｌｌ  ｃｏｍｐｕｔｅｒ  ｓｙｓｔｅｍ  ｉｎｔｅｒｆａｃｅ、ＳＡＳ）インターフェースを伴うＳＳＤ、又は不揮発性メモリエクスプレス（ｎｏｎ−ｖｏｌａｔｉｌｅ  ｍｅｍｏｒｙ  ｅｘｐｒｅｓｓ、ＮＶＭＥ）インターフェースを伴うＳＳＤであり得る。代替的に、ドライブは、ハードディスクドライブ（ｈａｒｄ  ｄｉｓｋ  ｄｒｉｖｅ、ＨＤＤ）、例えば、ＳＡＴＡインターフェースを伴うＨＤＤ又はＳＡＳインターフェースを伴うＨＤＤであり得る。これは本明細書では限定されない。
【００４３】
少なくとも１つの制御デバイス３０１が、第１のコネクタ３０２を使用することによって、第１のコネクタ３０２に接続されるドライブと通信することは、次のように理解され得ることに留意されたい。Ｋ個の第１のコネクタ３０２があり、Ｋ＞０であるとき、及びＫ個の第１のコネクタ３０２の各々がドライブに接続される場合、少なくとも１つの制御デバイス３０１は、Ｋ個の第１のコネクタ３０２を使用することによって、Ｋ個の第１のコネクタ３０２に接続されるドライブと通信する。Ｋ個の第１のコネクタ３０２のいくつかのみがドライブに接続される場合、少なくとも１つの制御デバイス３０１は、いくつかの第１のコネクタ３０２を使用することによって、いくつかの第１のコネクタ３０２に接続されるドライブと通信する。
【００４４】
前述の技術的解決法において、ドライブが第１のコネクタ３０２を使用することによって制御デバイス３０１に取り外し可能に接続され得るので、ユーザは、使用上の要件に基づいてドライブと制御デバイス３０１との間の接続関係をフレキシブルに構成して、異なるストレージアーキテクチャを構成し得る。例えば、１つの制御デバイス３０１が、第１のコネクタ３０２を使用することによって複数のドライブに接続されて、分散型ストレージアーキテクチャを構成する。代替的に、２つの制御デバイス３０１が、第１のコネクタ３０２を使用することによって１つのドライブに接続され、集中型ストレージアーキテクチャを構成する。このようにして、ストレージアーキテクチャが変更される必要があるとき、第１のコネクタ３０２とドライブとの間の接続関係が変更される必要があり、新しい制御デバイスと新しいドライブが購入される必要はない。これは、ストレージシステムのフレキシビリティを改善する。
【００４５】
以下は、制御デバイス３０１及び第１のコネクタ３０２を説明する。
【００４６】
ある例では、１つの制御デバイス３０１と１つの第１のコネクタ３０２がある。図３Ａに示されるように、制御デバイス３０１及び第１のコネクタ３０２は２つの独立した構成要素であり得る。制御デバイス３０１及び第１のコネクタ３０２は、通信バスを使用することによって接続され得る。例えば、通信バスは、ペリフェラルコンポーネントインターフェースエクスプレス（ｐｅｒｉｐｈｅｒａｌ  ｃｏｍｐｏｎｅｎｔ  ｉｎｔｅｒｆａｃｅ  ｅｘｐｒｅｓｓ、ＰＣＩＥ又はＰＣＩｅ）バスであり得る。代替的に、図３Ｂに示されるように、制御デバイス３０１は第１のコネクタ３０２を含み得る。この場合、第１のコネクタ３０２は制御デバイス３０１の一部である。例えば、第１のコネクタ３０２は制御デバイス３０１のファンアウトコネクタであり得る。ファンアウトコネクタは、１つのノード又は複数のノード上の複数の信号をより広い空間範囲に広げるコネクタである。
【００４７】
別の例では、複数の第１のコネクタ３０２があり得る。例えば、第１のコネクタ３０２は制御デバイス３０１の一部である。図３Ｃに示されるように、制御デバイス３０１は３つの第１のコネクタ３０２を含み、各第１のコネクタ３０２はドライブに接続するように構成され得る。
【００４８】
ある例では、複数の制御デバイス３０１があり得る。図３Ｄを参照すると、ストレージシステム３００は、Ｍ個の制御デバイス３０１及びＮ個の第１のコネクタ３０２を含み、Ｎ個の第１のコネクタ３０２はドライブに接続するように構成され、Ｍは２以上の整数であり、ＮはＭ以上の整数であり、Ｋは正の整数である。
【００４９】
各制御デバイス３０１と第１のコネクタ３０２との間の構成関係が図３Ａから図３Ｃに示されており、詳細は再び説明されない。図３Ｄにおいて、例えば、第１のコネクタ３０２は制御デバイス３０１の一部である。全ての制御デバイス３０１に含まれる第１のコネクタ３０２の数量は同じであり得る。例えば、Ｍ個の制御デバイス３０１の各々はＳ個の第１のコネクタ３０２を含み得る。代替的に、全ての制御デバイス３０１に含まれる第１のコネクタ３０２の数量は異なり得る。例えば、Ｍ個の制御デバイス３０１のうちの第１の制御デバイス３０１は３つの第１のコネクタ３０２を含み、Ｍ個の制御デバイス３０１のうちの第２の制御デバイス３０１は２つの第１のコネクタ３０２を含む、などである。図３Ｄでは、例えば、Ｍは３であり、３つの制御デバイス３０１の各々が２つの第１のコネクタ３０２を含む。
【００５０】
以下は制御デバイス３０１を説明する。以下の説明では、例えば、第１のコネクタ３０２は制御デバイス３０１の一部である。
【００５１】
ある例では、図４を参照すると、制御デバイス３０１はプロセッサ３０１１を含み得る。プロセッサ３０１１は、第１のコネクタ３０２に電気的に接続される。プロセッサ３０１１は中央処理装置（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ、ＣＰＵ）、デジタルシグナルプロセッサ、特定用途向け集積回路、或いは、フィールドプログラマブルゲートアレイ（ｆｉｅｌｄ−ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ、ＦＰＧＡ）又は別のプログラマブルロジックデバイスであり得る。これは本明細書では限定されない。
【００５２】
ある例では、プロセッサ３０１１は、高速信号ユニット３０１１１及び制御ユニット３０１１２を含み得る。高速信号ユニット３０１１１は、プロセッサ３０１１とドライブとの間のサービスデータの送信のために構成される。例えば、プロセッサ３０１１は、高速信号ユニット３０１１１を使用することによって、ドライブに記憶されているデータを取得し、又は、プロセッサ３０１１は、高速信号ユニット３０１１１を使用することによって、クライアントから受信された記憶されるべきデータをドライブに記憶する。制御ユニット３０１１２は、ドライブの状態を検出し、例えば、ドライブが第１のコネクタ３０２に接続されているか、又は切断されているかを検出し、ドライブが欠陥状態にあるかどうかを検出し、ドライブについての情報を検出し、ドライブの電源オン状態又は電源オフ状態を制御し、サービスデータを送信するために使用されるドライブのポートのリセット状態又はリセットデアサート状態を制御するように構成される。以下は、高速信号ユニット３０１１１及び制御ユニット３０１１２を別々に説明する。
【００５３】
高速信号ユニット３０１１１は、第１のコネクタ３０２に接続されるドライブの稼働モードがプロセッサ３０１１の現在の稼働モードと適合すると決定すると、第１のコネクタ３０２に電力を供給するように構成されてよく、そうすることによって、第１のコネクタ３０２に接続されるドライブの電源が入れられる。
【００５４】
本出願のこの実施形態では、ドライブの稼働モードが高速信号ユニット３０１１１の現在の稼働モードと適合するかどうかを決定する前に、高速信号ユニット３０１１１はまず、第１のコネクタ３０２がドライブに接続されているか、又は切断されているかを決定し得る。例えば、さらに図４を参照すると、検出回路３０２１が第１のコネクタ３０２において配置されてよく、検出回路３０２１は、高速信号ユニット３０１１１に電気的に接続される。第１のコネクタ３０２がドライブから切断されるとき、検出回路３０２１は第１のレベル、例えば、ローレベルを高速信号ユニット３０１１１に出力する。第１のコネクタ３０２がドライブに接続されるとき、検出回路３０２１は、第２のレベル、例えば、ハイレベルを高速信号ユニット３０１１１に出力する。この場合、高速信号ユニット３０１１１において決定条件が予め設定されていてよく、決定条件は次の通りであり得る。検出回路３０２１によって出力された第２のレベルを受信する場合、高速信号ユニット３０１１１は、検出回路３０２１に対応する第１のコネクタ３０２がドライブに接続されると決定し、検出回路によって出力される第１のレベルを受信する場合、高速信号ユニット３０１１１は、検出回路３０２１に対応する第１のコネクタ３０２がドライブから切断されていると決定する。例えば、検出回路３０２１によって出力されるハイレベルを受信するとき、高速信号ユニット３０１１１は、検出回路３０２１に対応する第１のコネクタ３０２がドライブに接続されると決定する。
【００５５】
複数の第１のコネクタ３０２がある場合、検出回路３０２１は、各第１のコネクタ３０２において配置されてよく、各第１のコネクタ３０２の検出回路３０２１によって出力されるレベルに基づいて、第１のコネクタ３０２がドライブに接続されているかどうかが決定されることに留意されたい。
【００５６】
高速信号ユニット３０１１１はさらに、検出回路３０２１によって出力されるレベルの変化に基づいて、第１のコネクタ３０２とドライブとの間の接続が緩いかどうかを決定し得る。例えば、高速信号ユニット３０１１１が、０．５秒の間隔で、検出回路３０２１により出力されるレベルが第１のレベルから第２のレベルに変化すること、又は第２のレベルから第１のレベルに変化することを決定する場合、高速信号ユニット３０１１１は、第１のコネクタ３０２とドライブとの間の接続が緩いと決定する。
【００５７】
高速信号ユニット３０１１１が、第１のコネクタ３０２がドライブに接続されていると決定する場合、高速信号ユニット３０１１１はさらに、第１のコネクタ３０２を使用することによって、第１の情報を第１のコネクタ３０２に接続されるドライブに送信し得る。第１のコネクタ３０２に接続されるドライブに欠陥があるかどうかを検出するために、第１の情報が使用される。ドライブに欠陥がない場合、ドライブは、第１のコネクタ３０２を使用することによって、第１の情報に対応するフィードバック情報を高速信号ユニット３０１１１に送信する。ドライブに欠陥がある場合、ドライブは、フィードバック情報を高速信号ユニット３０１１１に送信することができない。第１の情報及びフィードバック情報は、ドライブと共に高速信号ユニット３０１１１により事前に合意されていてもよい。そして、高速信号ユニット３０１１１が、第１のコネクタ３０２に接続されるドライブに第１の情報を送信した後で第１のコネクタ３０２を使用することによって予め設定された時間内にフィードバック情報を受信しない場合、高速信号ユニット３０１１１は、第１のコネクタ３０２に接続されるドライブに欠陥があると決定する。
【００５８】
第１のコネクタ３０２がドライブに接続され、第１のコネクタ３０２に接続されるドライブに欠陥がないと、高速信号ユニット３０１１１が決定する場合、高速信号ユニット３０１１１は、第１のコネクタ３０２に接続されるドライブの稼働モードを取得し得る。
【００５９】
本出願のこの実施形態では、高速信号ユニット３０１１１の稼働モードは、第１の稼働モード及び第２の稼働モードを含む。第１の稼働モードは、プロセッサ集中型稼働モードとも呼ばれることがあり、図２Ａに示される集中型ストレージアーキテクチャにおけるドライブコントローラと同じ処理モードで高速信号ユニット３０１１１が動作することを示すことがある。例えば、クライアントからデータ書き込み命令を受信した後で、高速信号ユニット３０１１１は、データ書き込み命令において搬送される記憶されるべきデータをドライブに送信する。第２の稼働モードは、プロセッサ分散型稼働モードとも呼ばれることがあり、図２Ｂに示される分散型ストレージアーキテクチャにおけるドライブコントローラと同じ処理モードで高速信号ユニット３０１１１が動作することを示すことがある。例えば、クライアントからデータ書き込み命令を受信した後、制御デバイス３０１はまず、データ書き込み命令において搬送される記憶されるべきデータを複数のサブデータへと分割し、各サブデータに対応する確認コードを生成し、各サブデータ及びサブデータに対応する確認コードをドライブに送信する。
【００６０】
ドライブの稼働モードは、第３の稼働モード及び第４の稼働モードを含む。第３の稼働モードは、ドライブ集中型稼働モードとも呼ばれることがあり、図２Ａに示される集中型ストレージアーキテクチャにおけるドライブと同じ処理モード、例えば、ドライブ共有アクセスモードでドライブが動作することを示すことがある。具体的には、ドライブに接続される複数の制御デバイスが全て、ドライブに対して読み取り／書き込み動作を実行し得る。第４の稼働モードは、ドライブ分散型稼働モードとも呼ばれることがあり、図２Ｂに示される分散型ストレージアーキテクチャにおけるドライブと同じ処理モード、例えば、ドライブ独占稼働モードでドライブが動作することを示すことがある。具体的には、ドライブに接続される複数の制御デバイスのうちの１つだけが、ドライブに対して読み取り／書き込み動作を実行し得る。
【００６１】
ある特定の実装処理では、高速信号ユニット３０１１１の稼働モードが第１の稼働モードと第２の稼働モードのうちの１つだけを含むことが設定され得る。この場合、高速信号ユニット３０１１１は固定された稼働モードで動作する。高速信号ユニット３０１１１の稼働モードが第１の稼働モードに設定されるとき、高速信号ユニット３０１１１は第１の稼働モードだけで動作することができる。例えば、高速信号ユニット３０１１１は、ユーザの命令に従って、稼働モードのうちの１つで動作することを決定し得る。ある例では、少なくとも１つの稼働モードに対応するシステムコードが、高速信号ユニット３０１１１において設定され得る。例えば、第１の稼働モードに対応する第１のシステムコード及び第２の稼働モードに対応する第２のシステムコードのうちの少なくとも１つが設定され得る。プロセッサ３０１１の電源が入れられた後で、高速信号ユニット３０１１１は、制御ユニット３０１１２に記憶されている対応するシステムコードを読み取って実行し、そうすることによって、高速信号ユニット３０１１１は、システムコードに対応する稼働モードに入ることができる。システムコードは、異なる稼働モードにおける、ストレージシステムの高信頼性フォールトトレランスポリシー、ドライブの稼働モード、並びに、ドライブのタイプ、製造業者、及びモデルなどの情報を含む。
【００６２】
本出願のこの実施形態では、高速信号ユニット３０１１１は、第１のコネクタ３０２に接続されるドライブの稼働モードがプロセッサ３０１１の現在の稼働モードと適合するかどうかを決定する。決定の方式は、限定はされないが、以下の２つの方式を含む。
【００６３】
第１の方式では、高速信号ユニット３０１１１がまず、制御ユニット３０１１２を使用することによってドライブについての情報を取得してよく、ドライブについての情報は、ドライブのモデル、容量、及び製造業者などの、少なくとも１つのタイプの関連情報を含む。高速信号ユニット３０１１１は、ドライブについての情報とドライブの稼働モードとの間の対応付けを予め記憶する。この場合、高速信号ユニット３０１１１は、ドライブについての情報とドライブの稼働モードとの間の対応付けに基づいて、ドライブの稼働モードを決定することができる。例えば、ドライブについての情報とドライブの稼働モードとの間の対応付けは、製造業者Ａと第３の稼働モードとの間の第１の対応付け、及び製造業者Ｂと第４の稼働モードとの間の第２の対応付けを含む。制御ユニット３０１１２を使用することによって高速信号ユニット３０１１１により取得されるドライブについての情報が、ドライブの製造業者が製造業者Ａであることを示す場合、高速信号ユニット３０１１１は、ドライブの稼働モードが第３の稼働モードであると決定し得る。次いで、高速信号ユニット３０１１１は、ドライブの稼働モードが高速信号ユニット３０１１１の現在の稼働モードと適合するかどうかを決定し得る。
【００６４】
第２の方式では、高速信号ユニット３０１１１が高速信号ユニット３０１１１の現在の稼働モードを決定する場合、高速信号ユニット３０１１１は対応するドライブ決定条件を設定し得る。ドライブ決定条件は、ドライブの稼働モードが高速信号ユニット３０１１１の現在の稼働モードと適合するとき、ドライブについての情報を含む。ドライブについての情報は第１の方式における対応するコンテンツと同じであり、再び説明されない。例えば、高速信号ユニット３０１１１の現在の稼働モードが第１の稼働モードである場合、ドライブ決定条件は製造業者Ａに設定される。次いで、ドライブについての情報がドライブ決定条件と同じであるとき、高速信号ユニット３０１１１は、ドライブの稼働モードが高速信号ユニット３０１１１の現在の稼働モードと適合すると決定する。ドライブについての情報がドライブ決定条件と異なる場合、高速信号ユニット３０１１１は、ドライブの稼働モードが高速信号ユニット３０１１１の現在の稼働モードと適合しないと決定する。
【００６５】
高速信号ユニット３０１１１の稼働モードがドライブの稼働モードと適合するということは、高速信号ユニット３０１１１の稼働モードが第１の稼働モードであるとき、ドライブの稼働モードが第３の稼働モードであり、又は、高速信号ユニット３０１１１の稼働モードが第２の稼働モードであるとき、ドライブの稼働モードが第４の稼働モードであることを意味することに留意されたい。もちろん、高速信号ユニット３０１１１及びドライブの稼働モードがさらに別の稼働モードを含む場合、高速信号ユニット３０１１１の稼働モードがドライブの稼働モードと適合することは、別の対応付けをさらに含み得る。これは本明細書では限定されない。
【００６６】
加えて、高速信号ユニット３０１１１が制御ユニット３０１１２を使用することによってドライブについての情報を取得することは、次の通りであり得ることに留意されたい。ドライブについての情報がドライブの中の固定されたストレージ空間に予め記憶され、ドライブが第１のコネクタ３０２に接続されるとき、高速信号ユニット３０１１１が、制御ユニット３０１１２を使用することによって、ドライブの中の固定されたストレージ空間からドライブについての情報を読み取る。
【００６７】
稼働モードが高速信号ユニット３０１１１の現在の稼働モードと適合するドライブを決定した後で、高速信号ユニット３０１１１は、ドライブに接続される第１のコネクタ３０２に電力を供給する。図４に示されるように、３つの第１のコネクタ３０２のうちの１番目の第１のコネクタ３０２及び３番目の第１のコネクタ３０２がそれぞれドライブＡ及びドライブＢに接続されることと、１番目の第１のコネクタ３０２に接続されるドライブの稼働モードが高速信号ユニット３０１１１の現在の稼働モードと適合することとを、高速信号ユニット３０１１１が決定するとき、高速信号ユニット３０１１１は、１番目の第１のコネクタ３０２に電力を供給する。
【００６８】
稼働モードが高速信号ユニット３０１１１の現在の稼働モードと適合しないドライブを決定した後で、高速信号ユニット３０１１１は、ドライブに接続される第１のコネクタ３０２に電力を供給することを停止する。図４に示されるように、３つの第１のコネクタ３０２のうちの１番目の第１のコネクタ３０２及び３番目の第１のコネクタ３０２がそれぞれドライブＡ及びドライブＢに接続されることと、３番目の第１のコネクタ３０２に接続されるドライブの稼働モードが高速信号ユニット３０１１１の現在の稼働モードと適合しないこととを、高速信号ユニット３０１１１が決定するとき、高速信号ユニット３０１１１は、３番目の第１のコネクタ３０２に電力を供給することを停止する。
【００６９】
高速信号ユニット３０１１１が第１のコネクタ３０２に電力を供給することは、次のことを意味することに留意されたい。ドライブに接続される第１のコネクタ３０２の電源が現在入っている場合、高速信号ユニット３０１１１は、制御ユニット３０１１２の電力供給ステータスを維持することによって第１のコネクタ３０２に電力を供給し続ける。ドライブに接続される第１のコネクタ３０２の電源が現在入っていない場合、高速信号ユニット３０１１１は、制御ユニット３０１１２の電力供給ステータスを変更することによって第１のコネクタ３０２に電力を供給する。高速信号ユニット３０１１１が第１のコネクタ３０２に電力を供給することを停止することは、次のことを意味することに留意されたい。ドライブに接続される第１のコネクタ３０２の電源が現在入っている場合、高速信号ユニット３０１１１は、制御ユニット３０１１２の電力供給ステータスを変更することによって、第１のコネクタ３０２に電力を供給することを停止する。ドライブに接続される第１のコネクタ３０２が現在電源オフの場合、高速信号ユニット３０１１１は、制御ユニット３０１１２の電力供給ステータスを維持することによって、第１のコネクタ３０２を電源が入っていない状態に維持する。
【００７０】
高速信号ユニット３０１１１が電力を少なくとも１つの第１のコネクタ３０２に供給した後で、例えば、高速信号ユニット３０１１１がＭ個の第１のコネクタ３０２に電力を供給した後で、高速信号ユニット３０１１１は、Ｍ個の第１のコネクタ３０２のうちのＭ１個の第１のコネクタ３０２を使用することによって、Ｍ１個の第１のコネクタ３０２に接続されるドライブのうちの１つ又は複数にデータ読み取り命令を送信し、Ｍ１個の第１のコネクタ３０２を使用することによって、データ読み取り命令に対応するデータを取得してよく、Ｍ１は０より大きくＭ以下の整数である。代替的に、高速信号ユニット３０１１１は、Ｍ１個の第１のコネクタ３０２に接続されるドライブのうちの１つ又は複数にデータ書き込み命令を送信して、データ書き込み命令において搬送される記憶されるべきデータをドライブに記憶し得る。
【００７１】
高速信号ユニット３０１１１が、Ｍ個の第１のコネクタ３０２のうちのＭ１個の第１のコネクタ３０２を使用することによって、Ｍ１個の第１のコネクタ３０２に接続されるドライブのうちの１つ又は複数にデータ読み取り命令又はデータ書き込み命令を送信した後で、高速信号ユニット３０１１１はさらに、Ｍ個の第１のコネクタ３０２の各々がドライブに接続されるかどうかを検出し続け得る。第１のコネクタ３０２がドライブから切断されていることを高速信号ユニット３０１１１が決定する場合、高速信号ユニット３０１１１は、第１のコネクタ３０２に電力を供給することを停止し得る。
【００７２】
ある例では、制御デバイス３０１は、複数の個別の構成要素を含み得る。図５を参照すると、制御デバイス３０１は、プロセッサ、メモリ、クロック信号生成器、及び電力供給モジュールを含み得る。プロセッサは、例えば、中央処理装置（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ、ＣＰＵ）、ＦＰＧＡ、又は別のプログラマブルロジックデバイスである。これは本明細書では限定されない。プロセッサがＣＰＵである例が以下の説明において使用される。
【００７３】
制御デバイス３０１のＣＰＵは、第１のコネクタ３０２を使用することによって、第１のコネクタ３０２に接続されるドライブと通信するように構成される。例えば、ＣＰＵは、ドライブ送信プロトコルを使用することによってドライブと通信し得る。ドライブ送信プロトコルは、例えば、ＰＣＩＥプロトコル、シリアルＡＴＡインターフェースアタッチメント（ｓｅｒｉａｌ  ａｄｖａｎｃｅｄ  ｔｅｃｈｎｏｌｏｇｙ  ａｔｔａｃｈｍｅｎｔ、ＳＡＴＡ）プロトコル、又はシリアルアタッチトスモールコンピュータシステムインターフェース（ｓｅｒｉａｌ  ａｔｔａｃｈｅｄ  ｓｍａｌｌ  ｃｏｍｐｕｔｅｒ  ｓｙｓｔｅｍ  ｉｎｔｅｒｆａｃｅ、ＳＡＳ）プロトコルである。複数の第１のコネクタ３０２がある場合、ＣＰＵは、複数の第１のコネクタ３０２の全てを使用することによって、全ての第１のコネクタ３０２に接続されるドライブと通信する。代替的に、ＣＰＵは、複数の第１のコネクタ３０２のうちのいくつかを使用することによって、いくつかの第１のコネクタ３０２に接続されるドライブと通信し得る。ＣＰＵとドライブとの間の通信は、別のデバイス（例えば、クライアント）から記憶されるべきデータを受信した後で、ＣＰＵによって、対応するドライブに記憶されるべきデータを記憶すること、又は、別のデバイスからデータ読み取り命令を受信した後で、ドライブからＣＰＵによって、データ読み取り命令に対応するデータを取得することを含み得る。
【００７４】
制御デバイス３０１のメモリは、ＣＰＵに接続され、ＣＰＵとドライブとの間の通信の間にＣＰＵのためのキャッシュ機能を提供するように構成される。例えば、クライアントから記憶されるべきデータを受信した後で、ＣＰＵはまず、メモリに記憶されるべきデータを記憶し、次いで、対応するドライブに記憶されるべきデータを記憶するためにデータ書き込み命令をドライブに送信する。
【００７５】
制御デバイス３０１のクロック信号生成器は、ＣＰＵ及び第１のコネクタ３０２に別々に接続され、ＣＰＵ及び第１のコネクタ３０２に接続されるドライブのためのクロックを提供するように構成される。複数の第１のコネクタ３０２があるとき、クロック信号生成器は各第１のコネクタ３０２に接続されることに留意されたい。クロックは、ドライブ送信プロトコルを使用することによってＣＰＵとドライブとの間の通信に必要とされる第１のクロックを含み、及び／又は、ＣＰＵ及びドライブの動作クロックと、ローカルの位相ロックループクロックとを含む。第１のクロックは、代替的に、高速クロック、又はデータをサンプリングするためにドライブ３０３によって使用される位相ロックループクロックと呼ばれることもある。ドライブ３０３によって使用される送信プロトコルが、動作クロック又はローカルの位相ロックループクロックをサポートする場合、クロック信号生成器は、第１のクロックを提供する必要はないことがある。ドライブ送信プロトコルは、例えば、ＰＣＩＥプロトコル、シリアルＡＴＡインターフェースアタッチメント（ｓｅｒｉａｌ  ａｄｖａｎｃｅｄ  ｔｅｃｈｎｏｌｏｇｙ  ａｔｔａｃｈｍｅｎｔ、ＳＡＴＡ）プロトコル、又はシリアルアタッチトスモールコンピュータシステムインターフェース（ｓｅｒｉａｌ  ａｔｔａｃｈｅｄ  ｓｍａｌｌ  ｃｏｍｐｕｔｅｒ  ｓｙｓｔｅｍ  ｉｎｔｅｒｆａｃｅ、ＳＡＳ）プロトコルである。
【００７６】
制御デバイス３０１の電力供給モジュールは、ＣＰＵ及び第１のコネクタ３０２に別々に接続され、ＣＰＵ及び第１のコネクタ３０２に接続されるドライブの動作電圧を提供するように構成される。複数の第１のコネクタ３０２があるとき、電力供給モジュールは各第１のコネクタ３０２に接続されることに留意されたい。
【００７７】
ある例では、図５に示されるように、制御デバイス３０１はさらに、クライアントに接続するように構成される入力／出力インターフェースを含む。入力／出力インターフェースは、ＣＰＵに電気的に接続され、クライアントからデータ読み取り命令又はデータ書き込み命令を受信し、次いで、データ読み取り命令又はデータ書き込み命令をＣＰＵに送信するように構成される。入力／出力インターフェースがクライアントからデータ読み取り命令を取得する場合、入力／出力インターフェースはさらに、クライアントに、データ読み取り命令に対応しＣＰＵによって送信されるデータを送信するように構成される。入力／出力インターフェースは、ＳＡＳ、ＰＣＩＥインターフェース、ギガビットイーサネットインターフェース（ｇｉｇａｂｉｔ  Ｅｔｈｅｒｎｅｔ、ＧＥ）、又は別のインターフェースであり得る。これは本明細書では限定されない。
【００７８】
ある例では、ＣＰＵは、第１のコネクタ３０２に接続されるドライブの稼働モードがＣＰＵの現在の稼働モードと適合すると決定するとき、第１のコネクタ３０２に電力を供給するように電力供給モジュールを制御するように構成されてよく、そうすることによって、第１のコネクタ３０２に接続されるドライブの電源が入れられる。
【００７９】
本出願のこの実施形態では、ドライブの稼働モードがＣＰＵの現在の稼働モードと適合するかどうかを決定する前に、ＣＰＵはまず、第１のコネクタ３０２がドライブに接続されているか、又は切断されているかを決定し得る。図６を参照すると、この場合、制御デバイス３０１はさらに検出構成要素を含み得る。検出構成要素は、ＣＰＵ、第１のコネクタ３０２、及び電力供給モジュールに別々に接続され、電力供給モジュールはさらに、検出構成要素の動作電圧を提供するように構成される。検出構成要素は、第１のコネクタ３０２がドライブに接続されているか、又は切断されているかを検出するように構成され得る。複数の第１のコネクタ３０２があるとき、検出構成要素は各第１のコネクタ３０２に接続されることに留意されたい。例えば、検出構成要素は、コンプレックスプログラマブルロジックデバイス（ｃｏｍｐｌｅｘ  ｐｒｏｇｒａｍｍａｂｌｅ  ｌｏｇｉｃ  ｄｅｖｉｃｅ、ＣＰＬＤ）又は特定用途向け集積回路（ａｐｐｌｉｃａｔｉｏｎ  ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ、ＡＳＩＣ）であり得る。図６では、検出構成要素がＣＰＬＤである例が使用される。
【００８０】
図６では、ＣＰＬＤはＣＰＵに直接接続されることに留意されたい。別の例では、ＣＰＬＤは、代替的に、ＣＰＵの周辺ポート拡張チップを使用することによってＣＰＵに接続され得る。図７において、ＣＰＵの周辺ポート拡張チップが集積サウスブリッジ（ｐｌａｔｆｏｒｍ  ｃｏｎｔｒｏｌｌｅｒ  ｈｕｂ、ＰＣＨ）である例が使用され、ＰＣＨとＣＰＬＤはローピンカウント（ｌｏｗ  ｐｉｎ  ｃｏｕｎｔ、ＬＰＣ）を使用することによって接続され得る。
【００８１】
さらに図６を参照すると、検出回路３０２１がさらに第１のコネクタ３０２に配置され得る。第１のコネクタ３０２がドライブから切断されているとき、検出回路３０２１は、第１のレベル、例えば、ローレベルをＣＰＬＤに出力する。第１のコネクタ３０２がドライブに接続されているとき、検出回路３０２１は、第２のレベル、例えば、ハイレベルをＣＰＬＤに出力する。検出回路３０２１によって出力される第２のレベルが受信される場合、ＣＰＬＤは、検出回路３０２１に対応する第１のコネクタ３０２がドライブに接続されると決定し、検出回路によって出力される第１のレベルが受信される場合、ＣＰＬＤは、検出回路３０２１に対応する第１のコネクタ３０２がドライブから切断されていると決定する。例えば、検出回路３０２１によって出力されるハイレベルを受信するとき、ＣＰＬＤは、検出回路３０２１に対応する第１のコネクタ３０２がドライブに接続されると決定する。
【００８２】
第１のコネクタ３０２がドライブに接続されているか、又は切断されているかをＣＰＬＤが決定した後で、ＣＰＵは、複数の方式でＣＰＬＤの決定結果を取得してよく、決定結果は、第１のコネクタ３０２がドライブに接続されているか、又は切断されているかを示すために使用される。例えば、ＣＰＵがＣＰＬＤの決定結果を取得する方式は、限定はされないが、以下の２つの方式を含む。
【００８３】
第１の取得方式では、ＣＰＬＤは決定結果をＣＰＵに送信し得る。複数の第１のコネクタ３０２がある場合、ＣＰＬＤが決定結果をＣＰＵに送信するとき、第１のコネクタ３０２の識別子が搬送され得る。例えば、複数の第１のコネクタ３０２に対して数字が設定されてよく、ＣＰＬＤは、第１のコネクタ３０２の数字を決定結果に追加する。
【００８４】
第２の取得方式では、ＣＰＬＤは、決定結果を記憶するように構成されるレジスタを設定してよく、例えば、レジスタは第１のレジスタと呼ばれる。ＣＰＬＤは、第１のレジスタに決定結果を記憶してよく、例えば、決定結果を表すために１ビットを使用してよい。１ビットの値が０である場合、それは、第１のコネクタ３０２がドライブに接続されていることを示し、１ビットの値が１である場合、それは、第１のコネクタ３０２がドライブから切断されていることを示す。ＣＰＵが決定結果を取得する必要がある場合、ＣＰＵは、第１のレジスタの値を直接読み取り、第１のレジスタの値と、第１のレジスタにおけるビットの値と接続ステータスとの間の予め設定された対応付けとに基づいて、第１のコネクタ３０２がドライブに接続されているか、又は切断されているかを決定する。第１のレジスタの値と接続ステータスとの間の対応付けは次の通りであり得る。第１のレジスタのビットの値が０である場合、それは、第１のコネクタ３０２がドライブに接続されていることを示し、第１のレジスタのビットの値が１である場合、それは、第１のコネクタ３０２がドライブから切断されていることを示す。
【００８５】
第２の方式において、複数の第１のコネクタ３０２があるとき、ＣＰＬＤは、各第１のコネクタ３０２に対する対応する第１のレジスタを設定し得ることに留意されたい。ＣＰＵは、各第１のコネクタ３０２に対応する第１のレジスタの値を読み取り、各第１のコネクタ３０２がドライブから切断されているか、又は接続されているかを決定し得る。代替的に、ＣＰＬＤは、１つだけの第１のレジスタを設定し、各第１のコネクタ３０２に対応する決定結果を第１のレジスタに記憶してよい。具体的には、第１のレジスタは複数のビットを含み、１ビットが、１つの第１のコネクタ３０２に対応する決定結果を示す。図６に示されるように、制御デバイス３０１は、３つの第１のコネクタ３０２を含む。ＣＰＬＤは１つの第１のレジスタを設定し、全ての第１のコネクタ３０２に対応する決定結果は、第１のレジスタの３ビットを使用することによって示され、第１のレジスタの１ビットは、１つの第１のコネクタ３０２に対応する決定結果を示すために使用される。例えば、レジスタのビットの値が「００１」である場合、それは、３番目の第１のコネクタ３０２がドライブから切断されており、残りの２つの第１のコネクタ３０２がドライブに別々に接続されていることを示す。レジスタのビットの値が「０００」である場合、それは、３番目の第１のコネクタ３０２の各々がドライブから切断されていることを示す。
【００８６】
ＣＰＬＤはさらに、第１のコネクタ３０２を使用することによって、第１のコネクタ３０２に接続されるドライブに第１の情報を送信し得る。第１の情報は、第１のコネクタ３０２に接続されるドライブに欠陥があるかどうかを検出するために使用される。ドライブに欠陥がない場合、ドライブは、第１のコネクタ３０２を使用することによって、第１の情報に対応するフィードバック情報をＣＰＬＤに送信する。ドライブに欠陥がある場合、ドライブは、フィードバック情報をＣＰＬＤに送信することができない。第１の情報及びフィードバック情報は、ＣＰＬＤとドライブにより事前に合意され得る。そして、ＣＰＬＤが第１のコネクタ３０２に接続されるドライブに第１の情報を送信した後で第１のコネクタ３０２を使用することによって予め設定された時間内にフィードバック情報を受信しない場合、ＣＰＬＤは、第１のコネクタ３０２に接続されるドライブに欠陥があると決定する。それに対応して、ＣＰＬＤは、検出されるドライブに欠陥があるかどうかについての検出結果も、対応するレジスタ、例えば、第２のレジスタに記憶し得る。
【００８７】
ＣＰＵが、ＣＰＬＤの対応するレジスタのビットの値に基づいて、第１のコネクタ３０２がドライブに接続されており、第１のコネクタ３０２に接続されるドライブに欠陥がないと決定する場合、ＣＰＵは、第１のコネクタ３０２に接続されるドライブの稼働モードを取得し得る。
【００８８】
本出願のこの実施形態では、ドライブの稼働モード及びＣＰＵの稼働モードは上で説明されており、詳細は本明細書では再び説明されない。ＣＰＵは、第１のコネクタ３０２に接続されるドライブについての情報を取得し、ドライブの稼働モードがＣＰＵの稼働モードと適合するかどうかを決定する。具体的な決定方式は既に前に説明されており、本明細書では再び説明されない。
【００８９】
本出願のこの実施形態では、ＣＰＵがドライブについての情報を取得する方式は、限定はされないが、以下の２つの方式を含む。
【００９０】
ドライブについての情報を取得するための第１の方式では、ＣＰＵは、第１のコネクタ３０２に接続されるバスを使用することによって、第１のコネクタ３０２に接続されるドライブに、ドライブについての情報を取得するために使用される命令を送信し得る。命令を受信した後で、ドライブは、ドライブについての情報をＣＰＵに送信する。この場合、ＣＰＵと第１のコネクタ３０２を接続するバスは、カスタマイズされたバス、又はＰＣＩＥバスなどの高速信号を送信するように構成されるバスであり得る。高速信号は、ＣＰＵがドライブ送信プロトコルを使用することによってドライブと通信するときに使用される対応する信号である。これは本明細書では限定されない。
【００９１】
ドライブについての情報を取得するための第２の方式では、図７に示されるように、制御デバイス３０１はさらにＰＣＩＥスイッチ（ｓｗｉｔｃｈ）を含む。ＰＣＩＥスイッチは、ＰＣＩＥバスを使用することによってＣＰＵに接続され、ＰＣＩＥスイッチは、Ｉ２Ｃバスを使用することによって第１のコネクタ３０２に接続される。ＣＰＵは、ＰＣＩＥスイッチを使用することによって、第１のコネクタ３０２に接続されるドライブに、ドライブについての情報を取得するために使用される命令を送信する。命令を受信した後で、ドライブはドライブについての情報をＣＰＵに送信する。
【００９２】
稼働モードがＣＰＵの現在の稼働モードと適合するドライブを決定した後で、ＣＰＵは、ＣＰＬＤに、ドライブに接続される第１のコネクタ３０２に電力を供給するための命令を送信し、そうすることによって、ＣＰＬＤは、第１のコネクタ３０２に電力を供給するように電力供給モジュールを制御する。稼働モードがＣＰＵの現在の稼働モードと適合しないドライブを決定した後で、ＣＰＵは、ＣＰＬＤに、ドライブに接続される第１のコネクタ３０２に電力を供給することを停止するための命令を送信し、そうすることによって、ＣＰＬＤは、第１のコネクタ３０２に電力を供給することを停止するように電力供給モジュールを制御する。
【００９３】
ＣＰＬＤが第１のコネクタ３０２に電力を供給するように電力供給モジュールを制御し、ＣＰＬＤが第１のコネクタ３０２に電力を供給することを停止するように電力供給モジュールを制御し、これらは上で既に説明されており、本明細書では再び説明されないことに留意されたい。
【００９４】
ＣＰＵが少なくとも１つの第１のコネクタ３０２に電力を供給した後で、ＣＰＵは、少なくとも１つの第１のコネクタ３０２を使用することによってドライブと通信し得る。加えて、ＣＰＵはまた、ＣＰＬＤを使用することによってドライブにリセット命令又はリセットデアサート命令を送信して、リセット状態又はリセットデアサート状態となるように、サービスデータを送信するために使用されるドライブのポートを制御し得る。
【００９５】
ＣＰＬＤはさらに、第１のコネクタ３０２に接続されるドライブにＣＰＵによって送信される検出されたデータ読み取り命令又は検出されたデータ書き込み命令に基づいて、第１のコネクタ３０２に接続されるドライブの稼働状態を決定し得る。例えば、ＣＰＬＤが、第１のコネクタ３０２に接続されるドライブにＣＰＵによって送信されるデータ読み取り命令を検出する場合、ＣＰＬＤは、ドライブが読み取り稼働状態にあると決定する。ＣＰＬＤが、第１のコネクタ３０２に接続されるドライブにＣＰＵによって送信されるデータ書き込み命令を検出する場合、ＣＰＬＤは、ドライブが書き込み稼働状態にあると決定する。もちろん、ＣＰＬＤは、ドライブの稼働状態を記憶するように構成されるレジスタも設定し得る。具体的な方式は、検出されるドライブに欠陥があるかどうかについての検出結果を対応するレジスタに記憶する前述の方式と同じであり、本明細書では再び説明されない。
【００９６】
ＣＰＬＤはさらに、第１のコネクタ３０２とドライブとの間の接続が接続状態から切断状態に変化したと決定した後で、又は、第１のコネクタ３０２に接続されるドライブの稼働状態などの情報が変化した後で、ＰＣＩＥスイッチに割り込み信号を送信してよく、ＰＣＩＥスイッチは割り込み信号をＣＰＵに送信する。割り込み信号を受信した後で、ＣＰＵ処理が変化する。
【００９７】
さらに図４を参照すると、本出願のこの実施形態において提供されるストレージシステム３００は、ドライブ３０３をさらに含み得る。
【００９８】
本出願のこの実施形態では、ドライブ３０３は、限定はされないが、次の３つのタイプを含み得る。第１のドライブタイプは、集中型ストレージアーキテクチャのみにおいて使用されることができるドライブであり、集中型ドライブと呼ばれ得る。第２のドライブタイプは、分散型ストレージアーキテクチャのみにおいて使用されることができるドライブであり、分散型ドライブと呼ばれ得る。第３のドライブタイプは、集中型ストレージアーキテクチャと分散型ストレージアーキテクチャの両方において使用されることができるドライブであり、汎用ドライブと呼ばれ得る。３つのタイプのドライブが、以下で別々に説明される。
【００９９】
第１のドライブ／分散型ドライブ：
図８Ａを参照すると、ドライブ３０３は、第２のコネクタ８０１、存在信号出力モジュール８０２、電源変換モジュール８０３、内部ドライブ制御モジュール８０４、及びデータストレージモジュール８０５を含む。
【０１００】
第２のコネクタ８０１は、制御デバイス３０１に接続し、制御デバイス３０１とドライブ３０３との間のデータ通信のためのチャネルを提供するように構成される。例えば、第１のコネクタ３０２に接続された後で、ドライブ３０３は、第２のコネクタ８０１を使用することによって制御デバイス３０１からデータ読み取り命令を取得し、次いで、第２のコネクタ８０１を使用することによって、データ読み取り命令に対応するデータを制御デバイス３０１に送信する。
【０１０１】
存在信号出力モジュール８０２は、ドライブ３０３の存在信号を生成するように構成され、存在信号は、ドライブ３０３が第１のコネクタ３０２に接続されているか、又は切断されているかを示すために使用される。ある例では、制御デバイス３０１は、周辺回路及び論理決定モジュールを含み得る。ドライブ３０３が第２のコネクタ８０１を使用することによって第１のコネクタ３０２に接続されるとき、存在信号出力モジュール８０２は、第２のコネクタ８０１を使用することによって制御デバイス３０１の電力供給モジュールのグラウンドケーブルに接続され、そうすることによって、制御デバイス３０１の周辺回路はローレベル信号を生成し、制御デバイス３０１の論理決定モジュールは、ローレベル信号に基づいて、ドライブ３０３が第１のコネクタ３０２に接続されることを決定する。ドライブ３０３の第２のコネクタ８０１が第１のコネクタ３０２から切断された後で、制御デバイス３０１の周辺回路がハイレベル信号を生成し、そうすることによって、各制御デバイス３０１の論理決定モジュールは、ハイレベル信号に基づいて、ドライブ３０３が第１のコネクタ３０２から切断されていると決定する。
【０１０２】
電源変換モジュール８０３は、電力をドライブ３０３に供給し、第２のコネクタ８０１が第１のコネクタ３０２に接続されるとき、第２のコネクタ８０１からの電源電圧入力を内部ドライブ制御モジュール８０４及びデータストレージモジュール８０５の電力供給電圧へと変換し、変換された電圧を内部ドライブ制御モジュール８０４及びデータストレージモジュール８０５に出力するように構成される。例えば、電力変換モジュール８０３は、バック回路（Ｂｕｃｋ  ｃｉｒｃｕｉｔ）などであり得る。
【０１０３】
ドライブ３０３はさらに、制御デバイス３０１が短絡されることにより、又は制御デバイス３０１によって出力される電圧がドライブ３０３の普通の動作電圧より低いことにより引き起こされる、ドライブ３０３への異常な電力供給を避けるために、第２のコネクタ８０１と電力変換モジュール８０３との間に配置される逆流防止モジュールを含み得る。
【０１０４】
内部ドライブ制御モジュール８０４は、制御デバイス３０１の信号を処理してドライブ３０３を管理するという機能を実装するように、例えば、ドライブ３０３に対する制御デバイス３０１の制御信号を受信し、データストレージモジュール８０５上のデータに対する読み取り動作又は書き込み動作を実行するという機能を提供するように構成される。例えば、制御信号は、ドライブ３０３のモデル、容量、及び製造業者などの関連情報を読み取るために使用される信号、リセット状態にとどまるように第２のコネクタ８０１を制御するために使用される信号、及びリセット状態をデアサートするように第２のコネクタ８０１を制御するために使用される信号である。
【０１０５】
ある例では、図８Ｂに示されるように、ドライブ３０３はさらに第１のストレージモジュール８０６を含んでもよく、第１のストレージモジュール８０６は、ドライブ３０３のモデル、容量、及び製造業者などの関連情報を記憶するように構成される。制御デバイス３０１は、ドライブ３０３のモデル、容量、及び製造業者などの関連情報を第１のストレージモジュール８０６から直接読み取り得る。例えば、第１のストレージモジュール８０６は、電気的消去可能プログラム可能読み取り専用メモリ（ｅｌｅｃｔｒｉｃａｌｌｙ  ｅｒａｓａｂｌｅ  ｐｒｏｇｒａｍｍａｂｌｅ  ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ、ＥＥＰＲＯＭ）チップ及びＩ２Ｃ回路を含み得る。
【０１０６】
ドライブの稼働状態を表示するために使用されるインジケータがドライブ３０３に配置される場合、内部ドライブ制御モジュール８０４はさらに、ドライブ３０３のインジケータを制御するように構成され得る。例えば、ドライブ３０３がデータ読み取り状態にあるとき、入力信号インジケータは、第１の周波数のインジケーション信号を出力するように制御されてよく、ドライブ３０３がデータ書き込み状態にあるとき、入力信号インジケータは、第２の周波数のインジケーション信号を出力するように制御されてよい、などである。
【０１０７】
加えて、高速信号インターフェース及び低速信号インターフェースが内部ドライブ制御モジュール８０４において設定され、内部ドライブ制御モジュール８０４は、異なるインターフェースを通じて制御デバイス３０１と通信し得る。高速信号の定義は上で説明されている。内部ドライブ制御モジュール８０４と制御デバイス３０１との間で送信される通信信号において、高速信号以外の信号は低速信号である。
【０１０８】
もちろん、内部ドライブ制御モジュール８０４はさらに他の機能を有することがあり、本明細書では１つずつ例は挙げられない。当業者は使用上の要件に基づいて内部ドライブ制御モジュール８０４の機能を設定し得ることに、留意されたい。これは本明細書では限定されない。
【０１０９】
ある例では、内部ドライブ制御モジュール８０４は、１つの個別のデバイス又は複数の個別のデバイスの組合せを使用することによって実装されてよく、例えば、中央処理装置（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ、ＣＰＵ）、デジタルシグナルプロセッサ、特定用途向け集積回路、フィールドプログラマブルゲートアレイ（ｆｉｅｌｄ−ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ、ＦＰＧＡ）、又は別のプログラマブルロジックデバイスであってよい。これは本明細書では限定されない。
【０１１０】
データストレージモジュール８０５は、内部ドライブ制御モジュール８０４の制御下でユーザデータを記憶し、又は読み取るように構成される。ある例では、データストレージモジュールはドライブ媒体であり得る。
【０１１１】
第２のドライブ／集中型ドライブ:
図９Ａを参照すると、ドライブ３０３は、２つの第２のコネクタ（これらは第２のコネクタ９０１及び第２のコネクタ９０２である）、存在信号出力モジュール９０３、電源変換モジュール９０４、内部ドライブ制御モジュール９０５、及びデータストレージモジュール９０６を含む。
【０１１２】
第２のコネクタ９０１及び第２のコネクタ９０２の機能はアクセスポート８０１の機能と同じであり、詳細は本明細書では再び説明されない。第２のコネクタ９０１及び第２のコネクタ９０２は、２つの独立したアクセスポートであり、２つの制御デバイス３０１にそれぞれ接続され得る。このようにして、２つの制御デバイス３０１が第２のコネクタ９０１及び第２のコネクタ９０２にそれぞれ接続された後で、２つの制御デバイス３０１は、両方ともドライブ３０３と通信し、例えば、ドライブ３０３のデータストレージモジュール９０６の中のデータを読み取り得る。
【０１１３】
図９Ａにおいて、ドライブ３０３は、第２のコネクタ９０１及び第２のコネクタ９０２という２つのアクセスポートを含むことに留意されたい。ドライブ３０３のアクセスポートの数量はまた２より多くてもよい。例えば、ドライブ３０３は、第２のコネクタ、第２のコネクタ、及び第３のアクセスポートを含む。この場合、ドライブ３０３は、３つの制御デバイス３０１に同時に接続され得る。アクセスポートの数量は本出願のこの実施形態では限定されない。
【０１１４】
第２のコネクタ９０１及び第２のコネクタ９０２が２つの制御デバイス３０１に同時に接続される必要がある場合、第２のコネクタ９０１と第２のコネクタ９０２との間で十分な離隔が確保される必要があり、この離隔は２つの制御デバイス３０１間の間隔に関係することに留意されたい。例えば、図９Ｂに示されるように、２つの制御デバイス３０１は両方とも水平に配置され、一方の制御デバイス３０１が他方の制御デバイス３０１の右上にある。２つの制御デバイス３０１間の間隔がｘであり、第１のコネクタ３０２の幅がｈである場合、第２のコネクタ９０１と第２のコネクタ９０２との間の離隔は（ｘ−ｈ）以上である。
【０１１５】
存在信号出力モジュール９０３は、ドライブ３０３の存在信号を生成するように構成され、存在信号は、ドライブ３０３が第１のコネクタ３０２に接続されているか、又は切断されているかを示すために使用される。ある例では、制御デバイス３０１は、周辺回路及び論理決定モジュールを含み得る。ドライブ３０３が第２のコネクタ９０１及び第２のコネクタ９０２を使用することによってそれぞれ２つの第１のコネクタ３０２に接続されるとき、存在信号出力モジュール９０３が第２のコネクタ９０１及び第２のコネクタ９０２を使用することによってそれぞれ２つの制御デバイス３０１の電力供給モジュールのグラウンドケーブルに接続され、そうすることによって、制御デバイス３０１の周辺回路はローレベル信号を生成し、各制御デバイス３０１の論理決定モジュールは、ローレベル信号に基づいて、ドライブ３０３が第１のコネクタ３０２に接続されることを決定する。ドライブ３０３の第２のコネクタ９０１及び第２のコネクタ９０２がそれぞれ２つの制御デバイス３０１の第１のコネクタ３０２から切断された後で、各制御デバイス３０１の周辺回路はハイレベル信号を生成し、そうすることによって、各制御デバイス３０１の論理決定モジュールは、ハイレベル信号に基づいて、ドライブ３０３が第１のコネクタ３０２から切断されていると決定する。
【０１１６】
電源変換モジュール９０４は、電力をドライブ３０３に供給し、第２のコネクタ９０１及び第２のコネクタ９０２が２つの第１のコネクタ３０２にそれぞれ接続されるとき、第２のコネクタ９０１及び第２のコネクタ９０２から入力される電源電圧を内部ドライブ制御モジュール９０５及びデータストレージモジュール９０６の電力供給電圧へと変換し、変換された電圧を内部ドライブ制御モジュール９０５及びデータストレージモジュール９０６に出力するように構成される。例えば、電力変換モジュールはバック回路（Ｂｕｃｋ  ｃｉｒｃｕｉｔ）などであり得る。
【０１１７】
ドライブ３０３はさらに逆流防止モジュールを含む。逆流防止モジュールは、逆流防止モジュールＡ及び逆流防止モジュールＢを含み、それぞれ、第２のコネクタ９０１と電源変換モジュール９０４との間に、及び第２のコネクタ９０２と電源変換モジュール９０４との間に配置される。
【０１１８】
内部ドライブ制御モジュール９０５は、制御デバイス３０１の信号を処理してドライブ３０３を管理するという機能を実装するように、例えば、ドライブ３０３に対する制御デバイス３０１の制御信号を受信し、データストレージモジュール９０６の中のデータに対して読み取り動作又は書き込み動作を実行するという機能を提供するように構成される。例えば、制御信号は、ドライブ３０３のモデル、容量、及び製造業者などの関連情報を読み取るために使用される信号、リセット状態にとどまるように第２のコネクタ９０１及び第２のコネクタ９０２を制御するために使用される信号、並びに、リセット状態をデアサートするように第２のコネクタ９０１及び第２のコネクタ９０２を制御するために使用される信号である。
【０１１９】
ある例では、図９Ｃに示されるように、ドライブ３０３はさらに第１のストレージモジュール９０７を含み得る。第１のストレージモジュール９０７は図８Ｂに示される第１のストレージモジュール８０６と同じであり、詳細は本明細書では再び説明されない。
【０１２０】
ドライブの稼働状態を表示するために使用されるインジケータがドライブ３０３において配置される場合、内部ドライブ制御モジュール８０４はさらに、ドライブ３０３のインジケータを制御するように構成され得る。例えば、ドライブ３０３がデータ読み取り状態にあるとき、入力信号インジケータは、第１の周波数のインジケーション信号を出力するように制御されてよく、ドライブ３０３がデータ書き込み状態にあるとき、入力信号インジケータは、第２の周波数のインジケーション信号を出力するように制御されてよい、などである。
【０１２１】
加えて、第２のコネクタ９０１のための高速信号インターフェース及び低速信号インターフェース、並びに第２のコネクタ９０２のための高速信号インターフェース及び低速信号インターフェースは、内部ドライブ制御モジュール９０５において別々に設定される。内部ドライブ制御モジュール９０５は、第２のコネクタ９０１のための高速信号インターフェース及び／又は低速信号インターフェースを使用することによって、第２のコネクタ９０１に接続される制御デバイス３０１と通信し得る。内部ドライブ制御モジュール９０５は、第２のコネクタ９０２のための高速信号インターフェース及び／又は低速信号インターフェースを使用することによって、第２のコネクタ９０１に接続される制御デバイス３０１と通信し得る。高速信号の定義は上で説明される。内部ドライブ制御モジュール９０５と制御デバイス３０１との間で送信される通信信号において、高速信号以外の信号は低速信号である。
【０１２２】
もちろん、内部ドライブ制御モジュール９０５はさらに他の機能を有してよく、本明細書では１つずつ例は挙げられない。当業者は使用上の要件に基づいて内部ドライブ制御モジュール９０５の機能を設定し得ることに、留意されたい。これは本明細書では限定されない。
【０１２３】
ある例では、内部ドライブ制御モジュール９０５は、１つの個別のデバイス又は複数の個別のデバイスの組合せを使用することによって実装されてよく、例えば、中央処理装置（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ、ＣＰＵ）、デジタルシグナルプロセッサ、特定用途向け集積回路、フィールドプログラマブルゲートアレイ（ｆｉｅｌｄ−ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ、ＦＰＧＡ）、又は別のプログラマブルロジックデバイスであってよい。これは本明細書では限定されない。
【０１２４】
データストレージモジュール９０６は、内部ドライブ制御モジュール９０５の制御下でユーザデータを記憶し、又は読み取るように構成される。ある例では、データストレージモジュール９０６はドライブ媒体であり得る。
【０１２５】
第３のドライブ／汎用ドライブ：
図１０Ａを参照すると、ドライブ３０３は、２つの第２のコネクタ（これらは第２のコネクタ１００１及び第２のコネクタ１００２である）、存在信号出力モジュール１００３、逆流防止モジュールＡ、逆流防止モジュールＢ、電源変換モジュール１００４、内部ドライブ制御モジュール１００５、及びデータストレージモジュール１００６を含む。ある例では、図１０Ｂを参照すると、ドライブ３０３はさらに第１のストレージモジュール１００７を含み得る。
【０１２６】
第２のコネクタ１００１、第２のコネクタ１００２、存在信号出力モジュール１００３、電源変換モジュール１００４、データストレージモジュール１００６、及び第１のストレージモジュール１００７はそれぞれ、図９Ａの第２のコネクタ９０１、第２のコネクタ９０２、存在信号出力モジュール９０３、電源変換モジュール９０４、データストレージモジュール９０６、及び第１のストレージモジュール９０７と同じであり、詳細は本明細書では再び説明されない。
【０１２７】
以下で、内部ドライブ制御モジュール１００５を説明する。
【０１２８】
内部ドライブ制御モジュール１００５はさらに、内部ドライブ制御モジュール９０５の機能に加えて、ドライブの稼働モードを調整するように構成される。汎用ドライブは、分散型ドライブの稼働モード及び集中型ドライブの稼働モードという２つの稼働モードを有する。以下では、内部ドライブ制御モジュール１００５が汎用ドライブの稼働モードを調整する方式を説明する。
【０１２９】
第１の調整方式：
汎用デバイスが集中型ドライブの稼働モードにある場合、内部ドライブ制御モジュール１００５が、分散型ドライブの稼働モードに切り替えるようにドライブ３０３に命令するための、ドライブ３０３により送信される命令を受信するとき、内部ドライブ制御モジュール１００５は、通信停止状態となるように第２のコネクタ１００１及び第２のコネクタ１００２の１つのアクセスポートを制御し得る。具体的には、内部ドライブ制御モジュール１００５は、アクセスポートの機能を論理的に無効にし、内部ドライブ制御モジュール１００５は、アクセスポートを通じて入力されるいずれの信号も受信又は処理せず、アクセスポートを通じてどのような信号も出力しない。命令は、高速信号を使用することによって帯域内で制御デバイス３０１によって送信されてよく、又は、図４に示される制御ユニット３０１１２の信号を送信するために使用される制御信号ケーブルのハイレベル又はローレベルを制御することによって制御デバイス３０１によって示されてよい。これは本明細書では限定されない。
【０１３０】
図１０Ｃにおいて、例えば、第２のコネクタ１００２は通信停止状態となるように制御される。通信停止状態は次のように理解され得る。ドライブは、通信停止状態のコネクタを使用することによって、コネクタに接続される制御デバイス３０１と通信することができない。従って、ドライブの稼働モードは、集中型ドライブの稼働モードから分散型ドライブの稼働モードに切り替えられる。
【０１３１】
第２の調整方式：
汎用ドライブが集中型ドライブの稼働モードにある場合、内部ドライブ制御モジュール１００５が、分散型ドライブの稼働モードに切り替えるようにドライブ３０３に命令するための、ドライブ３０３により送信される命令を受信するとき、内部ドライブ制御モジュール１００５は、図１０Ｄに示されるように、ドライブ３０３のデータストレージモジュール１００６を２つの独立したアクセスエリアへと分割し得る。例えば、データストレージモジュール１００６はドライブ媒体であり、データストレージモジュール１００６は合計で１２個のドライブ媒体を含み、それぞれドライブ媒体０からドライブ媒体１１として標識される。内部ドライブ制御モジュール１００５は、ドライブ媒体０からドライブ媒体５を独立したアクセス領域へとグループ化することであって、アクセス領域は、第２のコネクタ１００１を使用することによってのみアクセスされることができる、ことを行い、ドライブ媒体６からドライブ媒体１１を別の独立したアクセス領域へとグループ化することであって、アクセス領域は、第２のコネクタ１００２を使用することによってのみアクセスされることができる、ことを行って、集中型ドライブの稼働モードから分散型ドライブの稼働モードにドライブの稼働モードを切り替え得る。
【０１３２】
第３の調整方式：
汎用ドライブが集中型ドライブの稼働モードにある場合、内部ドライブ制御モジュール１００５が、分散型ドライブの稼働モードに切り替えるようにドライブ３０３に命令するための、ドライブ３０３により送信される命令を受信するとき、内部ドライブ制御モジュール１００５は、通信停止状態にあるアクセスポートの通信機能を回復させ得る。具体的には、内部ドライブ制御モジュール１００５はアクセスポートの機能を論理的に有効にし、内部ドライブ制御モジュール１００５は、アクセスポートを通じて入力される任意の信号を受信又は処理し、アクセスポートを通じて信号を出力する。命令は、高速信号を使用することによって帯域内で制御デバイス３０１によって送信されてよく、又は、図４に示される制御ユニット３０１１２の信号を送信するために使用される制御信号ケーブルのハイレベル又はローレベルを制御することによって制御デバイス３０１により示されてよい。これは本明細書では限定されない。従って、ドライブの稼働モードは、分散型ドライブの稼働モードから集中型ドライブの稼働モードに切り替えられる。
【０１３３】
第４の調整方式：
汎用ドライブが分散型ドライブの稼働モードにある場合、内部ドライブ制御モジュール１００５が、集中型ドライブの稼働モードに切り替えるようにドライブ３０３に命令するための、ドライブ３０３により送信される命令を受信するとき、内部ドライブ制御モジュール１００５は、データストレージモジュール１００６を２つの独立したアクセス領域へと分割するという設定を取り消してよく、そうすることによって、ドライブ３０３は１つだけの独立したアクセス領域を含み、第２のコネクタ１００１及び第２のコネクタ１００２に接続される２つの制御デバイス３０１は、データストレージモジュール１００６のいずれのドライブ媒体にもアクセスすることができる。従って、ドライブの稼働モードは、分散型ドライブの稼働モードから集中型ドライブの稼働モードに切り替えられる。
【０１３４】
本出願のこの実施形態では、各ドライブ３０３のタイプは、ドライブ３０３のモデル、容量、及び製造業者などの関連情報に従って決定される。具体的な決定方法は上で説明されており、詳細は本明細書では再び説明されない。
【０１３５】
このようにして、制御デバイス３０１は、分散型ストレージアーキテクチャにおけるストレージシステム及び集中型ストレージアーキテクチャにおけるストレージシステムを別々に構成するために、異なるタイプのドライブ３０３に接続される。
【０１３６】
第２のコネクタがドライブ３０３に固定的に接続され得ること、又はドライブ３０３に取り外し可能に接続され得ることに留意されたい。これは本明細書では限定されない。
【０１３７】
制御デバイス３０１が分散型ドライブに接続されるとき、分散型ストレージアーキテクチャにおけるストレージシステムが形成され得る。ある例では、分散型ストレージアーキテクチャにおけるストレージシステムの構造図は、図３Ｄ及び図４に示されるストレージシステムの構造と同じであり得る。図３Ｄ及び図４において第１のコネクタ３０２に接続されるドライブ３０３が分散型ドライブであるとき、分散型ストレージアーキテクチャにおけるストレージシステムが形成される。
【０１３８】
図３Ｄに示される分散型ストレージアーキテクチャにおけるストレージシステムでは、制御デバイスＡ、制御デバイスＢ、及び制御デバイスＣは、互いに独立した分散型アクセスノードであり、各制御デバイスが、制御デバイスに接続されるドライブに独立にアクセスする。制御デバイスの１つに欠陥があるとき、ストレージシステムの別のノードが、欠陥のある制御デバイスに対応するサービスを引き継ぎ、欠陥のある制御デバイスに接続されるドライブの中のデータは、別のドライブの中のデータに基づいて別のノードによって復元され得る。図１１に示されるように、制御デバイスＡに欠陥がある場合、制御デバイスＢ又は制御デバイスＣが制御デバイスＡのサービスを引き継いでよく、制御デバイスＡに接続されるドライブの中のデータは、制御デバイスＢに接続されるドライブにおいてデータを復元して制御デバイスＣに接続されるドライブにおいてデータを復元することを通じて、制御デバイスＢに接続されるドライブ及び制御デバイスＣに接続されるドライブに復元され得る。
【０１３９】
制御デバイス３０１が集中型ドライブに接続されるとき、集中型ストレージアーキテクチャのストレージシステムが形成され得る。図１２Ａ及び図１２Ｂは、集中型ストレージアーキテクチャにおけるストレージシステムの例である。ストレージシステム３００は２つの制御デバイス３０１及び２つの集中型ドライブ３０３を含み、各制御デバイス３０１は２つの第１のコネクタ３０２を含む。第１の制御デバイス３０１の２つの第１のコネクタ３０２はそれぞれ、２つの集中型ドライブの第２のコネクタ９０１に接続され、第２の制御デバイス３０１の２つの第１のコネクタ３０２はそれぞれ、２つの集中型ドライブの第２のコネクタ９０２に接続される。説明を簡単にするために、図１２Ａでは、矢印付きの破線が、第１のコネクタ３０２と第２のコネクタ９０１との間の接続ステータスと、第１のコネクタ３０２と第２のコネクタ９０２との間の接続ステータスとを示すために使用される。図１２Ｂはストレージシステム３００の側面図である。
【０１４０】
図１２Ｂに示される集中型ストレージアーキテクチャにおけるストレージシステムでは、ドライブが２つの制御デバイスと別々に通信し得るので、制御デバイスの１つに欠陥があるか、又は取り除かれるとき、他方の制御デバイスが欠陥のある制御デバイスのサービスを引き継ぎ得る。
【０１４１】
制御デバイス３０１は、分散型ドライブ又は集中型ドライブに取り外し可能に接続され、そうすることによって、使用上の要件に基づいて異なるストレージアーキテクチャが形成されることができる。例えば、分散型ストレージアーキテクチャが形成される必要があるとき、制御デバイス３０１は分散型稼働モードにあることが可能にされ、分散型ドライブは第１のコネクタ３０２へと挿入される。集中型ストレージアーキテクチャに切り替えることが必要とされるとき、制御デバイス３０１は、集中型稼働モードにあることが可能にされ、分散型ドライブが取り除かれ、集中型ドライブが挿入される。
【０１４２】
ストレージアーキテクチャの切り替え処理を簡単にするために、制御デバイス３０１は汎用ドライブに直接接続され得る。ストレージシステム３００が集中型ストレージアーキテクチャから分散型ストレージアーキテクチャに切り替わる必要があるとき、制御デバイス３０１は、分散型ストレージアーキテクチャに対応するシステムコードを実行し、ドライブ３０３に、分散型ドライブに切り替えるようにドライブ３０３に命令するために使用される命令を送信する。命令を受信した後で、ドライブ３０３は、上で説明された第１の調整方式又は第２の調整方式でドライブ３０３を分散型ドライブに合わせて、ストレージシステム３００のストレージアーキテクチャを集中型ストレージアーキテクチャから分散型ストレージアーキテクチャに切り替え得る。ストレージシステム３００が分散型ストレージアーキテクチャから集中型ストレージアーキテクチャに切り替わる必要があるとき、制御デバイス３０１は、集中型ストレージアーキテクチャに対応するシステムコードを実行し、ドライブ３０３に、集中型ドライブに切り替えるようにドライブ３０３に命令するために使用される命令を送信する。命令を受信した後で、ドライブ３０３は、上で説明された第３の調整方式又は第４の調整方式でドライブ３０３を集中型ドライブに合わせて、ストレージシステム３００のストレージアーキテクチャを分散型ストレージアーキテクチャから集中型ストレージアーキテクチャに切り替え得る。この場合、制御デバイス３０１とドライブ３０３との間の接続関係は、集中型ストレージアーキテクチャにおける制御デバイス３０１とドライブ３０３との間の接続関係と同じである。詳しくは、図１２Ａ及び図１２Ｂを参照されたい。詳細は本明細書では再び説明されない。
【０１４３】
第２のコネクタは第１のコネクタ３０２に直接接続され得ることに留意されたい。例えば、第２のコネクタが第１のコネクタへと挿入され、又は別の方式では第２のコネクタが第１のコネクタ３０２に接続され得る。例えば、第２のコネクタは、通信バスを使用することによって第１のコネクタ３０２に接続されてよく、通信バスは、ＰＣＩＥバス、Ｉ2Ｃバスなどであってよい。これは本明細書では限定されない。
【０１４４】
以下は、第１のコネクタ３０２及び第２のコネクタを説明する。
【０１４５】
本出願のこの実施形態では、第１のコネクタ３０２及び第２のコネクタは、相対応する垂直で直交するコネクタであり、又は、第１のコネクタ３０２及び第２のコネクタは、予め設定された回転角を有し、かつ相対応するコネクタである。
【０１４６】
例えば、制御デバイス３０１は１つの第１のコネクタ３０２を含み、ドライブ３０３は１つの第２のコネクタを含み、第１のコネクタ３０２はジャックを有するソケットであり、第２のコネクタはピンを有するプラグである。
【０１４７】
本出願のこの実施形態では、例えば、制御デバイス３０１は回路基板であってよく、ドライブ３０３の形状は直方体であってよい。図１３Ａを参照すると、ドライブ３０３は、それぞれ面Ａから面Ｆである６つの面を含む。図１３Ａに示されるように、ドライブの面Ｃと面Ｄの両方が水平面に平行であり、水平面上への面Ｃ及び面Ｄの投影は長方形である。長方形の２つの長い辺の長さはドライブ３０３に対応する直方体の長さと同じであり、直方体の２つの短い辺の長さはドライブ３０３に対応する直方体の高さと同じである。ドライブの面Ａ、面Ｆ、面Ｂ、及び面Ｅは、水平面に垂直である。水平面上への面Ａ及び面Ｆの投影は線分であり、線分の長さはドライブ３０３に対応する直方体の長さと同じである。水平面上への面Ｂ及び面Ｅの投影も線分であり、線分の長さはドライブ３０３に対応する直方体の高さと同じである。第２のコネクタはドライブ３０３の面Ｅに設定される。
【０１４８】
図１３Ｂは、１つの第１のコネクタ３０２を含む制御デバイス３０１の側面図である。図１３Ｂにおいて、第１のコネクタ３０２のジャックは２行×３列に並べられ、各行の２つの隣接するジャックは同じ間隔を空けられ、第１の行の３つのジャックは第２の行の３つのジャックと揃えられる。図１３Ｃは、１つの第２のコネクタを含むドライブ３０３の側面図である。図１３Ｃにおいて、第２のコネクタのピンは３行×２列に並べられ、各行の２つの隣接するピンは同じ間隔を空けられ、加えて、２行ごとの２つのピンは互いに揃えられる。第２のコネクタが第１のコネクタ３０２へと挿入されるとき、制御デバイス３０１及びドライブ３０３は、図１３Ｄに示される位置関係にある。図１３Ｄは、制御デバイス３０１及びドライブ３０３の側面図である。図１３Ｄにおいて、制御デバイス３０１は水平に設定され、ドライブ３０３の面Ｃは水平面に平行であり、ドライブ３０３の面Ａは水平面に垂直である。
【０１４９】
直方体の高さは通常は直方体の長さ又は幅より短く、そうすることによって、１つの制御デバイス３０１はより多くのドライブ３０３と通信してよく、ストレージシステムの容量拡張要件が満たされる。
【０１５０】
図１４Ａは、１つの第１のコネクタ３０２を含む制御デバイス３０１の側面図である。図１４Ａでは、第１のコネクタ３０２のジャックが２行に並べられ、各行の２つの隣接するジャックは同じ間隔を空けられ、第１の行の第１のジャックと第２の行の第１のジャックとの間には特定の距離がある。図１４Ｂは、１つの第２のコネクタを含むドライブ３０３の側面図である。図１４Ｂでは、第２のコネクタのピンが２つの行に並べられ、各行の２つの隣接するジャックが同じ間隔を空けられ、第１の行の第１のジャックと第２の行の第１のジャックとの間には特定の距離がある。第２のコネクタが第１のコネクタ３０２へと挿入されるとき、制御デバイス３０１及びドライブ３０３は、図１４Ｃに示される位置関係にある。図１４Ｃは、制御デバイス３０１及びドライブ３０３の側面図である。図１４Ｃでは、制御デバイス３０１は水平に設定され、ドライブ３０３の面Ａと水平面との間には、予め設定された挟角がある。図１４Ｃでは、例えば、ドライブ３０３の面Ａと水平面との間の挟角は８０度である。もちろん、ドライブ３０３の面Ａと水平面は、代替的に、別の角度で配置されてよく、ドライブ３０３の面Ａと水平面との間の角度は、ドライブ３０３におけるピンの配置位置に関係し、本明細書では限定されない。
【０１５１】
前述の技術的解決法において、第１のコネクタ３０２及び第２のコネクタは、垂直で直交するコネクタ、又は予め設定された回転角を有するコネクタであり、そうすることによって、第１のコネクタ３０２及び第２のコネクタは、空間座標系のＸ軸、Ｙ軸、及びＺ軸の方向における制御デバイス３０１とドライブ３０３との間の相対的なシフトに打ち勝つことができる。従って、複数の制御デバイス３０１は複数のドライブ３０３に確実に接続されることができる。従来技術のバックプレーンが取り除かれて、ストレージシステムの設計の複雑さを下げ、バックプレーンの欠陥によってストレージシステム全体が使用されることができなくなる確率を下げ、そうすることによって、ストレージシステムの信頼性を改善する。
【０１５２】
さらに、従来技術のバックプレーンが取り除かれ、そうすることによって、通信処理における制御デバイス３０１とドライブ３０３との間でのインピーダンス不整合点が減らされることができる。具体的には、制御デバイス３０１とバックプレーンとの間のインピーダンス不整合、及びバックプレーンとドライブとの間のインピーダンス不整合が減らされる。これは、信号送信レートを改善できる。
【０１５３】
さらに、従来技術のバックプレーンが取り除かれ、そうすることによって、ストレージシステムにおけるエアフロー欠陥点が減らされ、ストレージシステムの熱放散性能が改善されることができる。従って、ストレージシステムの特定空間において、ストレージシステムの特定熱放散性能で、ストレージシステム内に、より多くのデバイスが許容されることでき、ストレージシステムの密度が改善されることができる。
【０１５４】
当業者は、制御デバイス３０１とドライブ３０３の相対的な位置を設定するために、実際の使用上の要件に基づいて異なる第１のコネクタ３０２及び第２のコネクタを選択し得る。
【０１５５】
加えて、制御デバイス３０１が複数の第１のコネクタ３０２を含むとき、複数の第１のコネクタ３０２の間に特定の間隔が設定される必要があることに留意されたい。例えば、制御デバイス３０１及びドライブ３０３が図１４Ｃに示される第２の接続方式で接続されるとき、制御デバイス３０１における２つ毎の第１のコネクタ３０２の間の間隔は、ドライブ３０３の高さ以上である。ドライブ３０３の高さの定義については、図１３Ａを参照されたい。詳細は本明細書では再び説明されない。
【０１５６】
前述の技術的解決法において、使用上の要件に基づいて、集中型ストレージアーキテクチャにおけるストレージシステム又は分散型ストレージアーキテクチャのストレージシステムは、制御デバイス３０１を異なる構成を持つドライブ３０３に接続することによって、フレキシブルに構築され得る。加えて、ストレージアーキテクチャが切り替えられる必要があるとき、制御デバイス３０１とドライブ３０３の稼働モードだけが切り替えられる必要があり、又はドライブ３０３が交換され、制御デバイス３０１とドライブ３０３が再び購入される必要がない。これは、ストレージシステムのフレキシビリティを改善し、ストレージアーキテクチャの切り替えのコストを減らす。
【０１５７】
同じ発明概念に基づいて、本出願のある実施形態は、ストレージシステム動作方法を提供する。方法は、図３Ｄ、図４、又は図１２Ａに示されるストレージシステムに適用される。
【０１５８】
図１５Ａから図１５Ｃは、本出願のある実施形態によるストレージシステム動作方法のフローチャートである。フローチャートは次のように説明される。
【０１５９】
Ｓ１：制御デバイスがシステム構成を実行する。
【０１６０】
ある例では、制御デバイスはクライアントに接続され得る。クライアントにおいて、ユーザは、使用上の要件に基づいてストレージシステムのタイプを設定し得る。例えば、ユーザは、集中型ストレージアーキテクチャ又は分散型ストレージアーキテクチャにストレージシステムを設定し得る。クライアントから命令を受信した後で、制御デバイスは、命令に従ってシステム構成を実行し得る。システム構成は、制御デバイスのシステムコード構成を含む。例えば、制御デバイスのメモリは、集中型ストレージアーキテクチャに対応するシステムコード及び分散型ストレージアーキテクチャに対応するシステムコードを記憶し、対応するシステムコードがクライアントの命令に従ってストレージシステムのために構成される。
【０１６１】
システム構成はさらにドライブ構成を含み得る。制御デバイスに接続されるドライブが図１０Ａに示される汎用ドライブであるとき、制御デバイスは、分散型ドライブ又は集中型ドライブにドライブを設定するために命令をドライブに送信し得る。例えば、クライアントからの命令がストレージシステムを集中型ストレージアーキテクチャに設定するように命令するとき、ドライブのアクセスポートの数量を２に設定するために、命令がドライブに送信され得る。クライアントからの命令が分散型ストレージアーキテクチャにストレージシステムを設定するように命令するとき、ドライブのアクセスポートの数量を１に設定するために、命令がドライブに送信され得る。もちろん、代替的に、ドライブにおけるアクセス領域の数量が設定されてよく、詳細は本明細書では説明されない。
【０１６２】
ステップＳ１は任意選択のステップであり、言い換えると、ステップＳ１は実行される必要がないことに留意されたい。例えば、ユーザは、使用上の要件に基づいて、使用されるべきストレージアーキテクチャに対応する制御デバイス及びドライブを直接選択し得る。例えば、ユーザが集中型ストレージアーキテクチャを使用する必要がある場合、ユーザは、集中型ストレージアーキテクチャを実装できる制御デバイスを集中型ドライブに直接接続し得る。この場合、ステップＳ１は実行される必要はない。
【０１６３】
Ｓ２：制御デバイスがスタートされ初期化される。
【０１６４】
Ｓ３：制御デバイスが、システム構成のタイプに基づいてドライブ決定条件を設定する。
【０１６５】
本出願のこの実施形態では、ドライブ決定条件は、制御デバイスに接続されるドライブが制御デバイスと適合するかどうかを決定するために使用される。例えば、集中型ストレージアーキテクチャにあるとき、制御デバイスは、ドライブ決定条件に基づいて、制御デバイスに接続されるドライブが集中型ドライブであるかどうかを決定する。ある例では、ストレージシステムのために構成されるシステムコードが集中型ストレージアーキテクチャに対応するシステムコードであると、制御デバイスが決定する場合、制御デバイスは、集中型ドライブ決定条件としてドライブ決定条件を構成する。集中型ドライブ決定条件は、集中型ドライブの製造業者及びモデルなどの情報を含み得る。例えば、集中型決定条件は、製造業者Ａ又はモデルＡであり得る。ストレージシステムのために構成されるシステムコードが分散型ストレージアーキテクチャに対応するシステムコードであると、制御デバイスが決定する場合、制御デバイスは、分散型ドライブ決定条件としてドライブ決定条件を構成する。それに対応して、分散型ドライブ決定条件は、分散型ドライブの製造業者及びモデルなどの情報を含み得る。例えば、分散型決定条件は、製造業者Ｂ又はモデルＢであり得る。もちろん、集中型ドライブ決定条件及び分散型ドライブ決定条件は、代替的に、他のパラメータであってよく、これは本明細書では限定されない。
【０１６６】
Ｓ４：制御デバイスが、各第１のコネクタがドライブに接続されているか、又は切断されているかを検出する。
【０１６７】
ある例では、制御デバイスのＣＰＵが、ＣＰＬＤを使用することによってドライブの存在信号を検出し、各第１のコネクタがドライブに接続されているか、又は切断されているかを決定し、決定結果をＣＰＬＤの対応するレジスタに記憶し得る。ＣＰＵは、各第１のコネクタがドライブに接続されているか、又は切断されているかを決定するために、レジスタに記憶されているビットの値を読み取る。第１のコネクタがドライブから切断されているとき、制御デバイスは、クライアントのディスプレイを使用することによって警告を出力し得る。例えば、制御デバイスはクライアントにプロンプト情報を出力し、プロンプト情報は第１のコネクタのインデックス番号を搬送する。もちろん、代替的に、別の警告モードが使用されてよく、本明細書では限定されない。
【０１６８】
Ｓ５：制御デバイスが、接続状態にあるドライブの数量を決定する。
【０１６９】
制御デバイスは、接続状態にあるドライブの数量を決定するために、各第１のコネクタがドライブに接続されているか、又は切断されているかを検出する。接続状態にあるドライブの数量が０に等しい場合、Ｓ１３が実行されることになる。接続状態にあるドライブの数量が１以上である場合、Ｓ６が実行されることになる。
【０１７０】
Ｓ６：制御デバイスが、接続状態にあるドライブについての情報を取得する。
【０１７１】
ある例では、制御デバイスのＣＰＵは、ＰＣＩＥスイッチを使用することによって接続状態にある各ドライブについての情報を取得してよく、又は、接続状態にある各ドライブについての情報を取得するために、ＰＣＩＥバスを使用することによって接続状態にあるドライブに命令を送信してよい。情報は、ドライブのモデル、容量、及び製造業者などの関連情報を含む。
【０１７２】
Ｓ７：制御デバイスが、適合するドライブの数量を決定する。
【０１７３】
具体的には、接続状態にあるドライブについての情報を取得した後で、制御デバイスのＣＰＵは、Ｓ３において設定された決定条件に基づいて、接続状態にある各ドライブのタイプを決定する。例えば、Ｓ３において設定された決定条件が集中型ドライブ決定条件であり、集中型ドライブ決定条件が製造業者Ａである場合、ＣＰＵは、接続状態にあるドライブの製造業者が製造業者Ａであるかどうかを決定する。接続状態にあるドライブの製造業者が製造業者Ａである場合、ＣＰＵは、ドライブが、適合するドライブであると決定し。接続状態にあるドライブの製造業者が製造業者Ａではない場合、ＣＰＵは、ドライブが、適合しないドライブであると決定する。ＣＰＵは、接続状態にあるドライブの決定結果を、ＣＰＬＤの対応するレジスタ、例えば、第２のレジスタに記憶し得る。ドライブが、適合するドライブであると決定するとき、ＣＰＵは、ＣＰＬＤのドライブに対応する第２のレジスタにおけるビットの値を１に設定し、ドライブが、適合しないドライブであると決定するとき、ＣＰＵは値を０に設定する。加えて、ドライブが、適合しないドライブであると決定した後で、ＣＰＵはさらに、警告情報をクライアントに出力し得る。
【０１７４】
次いで、制御デバイスのＣＰＵは、ＣＰＬＤの接続状態にある各ドライブに対応する、第２のレジスタのビットの値を使用することによって、適合するドライブの数量を計算し得る。適合するドライブの数量が０に等しい場合、Ｓ１３が実行されることになり、適合するドライブの数量が１に等しい場合、Ｓ８が実行されることになり、適合するドライブの数量が１より大きい場合、Ｓ１０が実行されることになる。
【０１７５】
本出願のこの実施形態では、ステップＳ４とＳ５、ステップＳ６とＳ７の実行順序は限定されないことに留意されたい。具体的には、制御デバイスは、最初にステップＳ４とＳ５を実行し、次いでステップＳ６とＳ７を実行してよく、又は、最初にステップＳ６とＳ７を実行し、次いでステップＳ４とＳ５を実行してよく、又は、ステップＳ４とＳ５、及びステップＳ６とＳ７を同時に実行してもよい。当業者は、使用法に基づいて順序を設定し得る。
【０１７６】
Ｓ８：制御デバイスが、単一ドライブの電源オンスタートアッププロセスを実行する。
【０１７７】
ステップＳ６を実行するとき、制御デバイスのＣＰＵは、ステップＳ６においてＰＣＩＥスイッチを使用することによって情報を取得してよく、又は、ステップＳ６においてＰＣＩＥバスを使用することによって情報を取得してよく、従って、ステップＳ８の実行順序は２つの異なる実装について説明されることに留意されたい。
【０１７８】
情報がステップＳ６においてＰＣＩＥスイッチを使用することによって取得される場合、ステップＳ８はステップＳ６の後で実行される。情報がステップＳ６においてＰＣＩＥバスを使用することによって取得される場合、制御デバイスは、まずステップＳ８を実行してドライブの電源をオンにし、次いでステップＳ６を実行する必要がある。
【０１７９】
Ｓ９：制御デバイスが、稼働状態となるように対応する適合するドライブを制御する。
【０１８０】
具体的には、制御デバイスのＣＰＵは、動作クロック及び／又は高速信号を送信するために使用されるクロックを適合するドライブに提供するようにクロック信号生成器を制御し、そうすることによって、適合するドライブは稼働状態になる。
【０１８１】
Ｓ１０：制御デバイスが、インバッチ電源オンのプロセスを実行する。
【０１８２】
具体的には、適合するドライブの数量が１より多いと決定するとき、制御デバイスのＣＰＵはまず、予め設定された信頼性ポリシー又はフォールトトレラントポリシーに基づいて複数の適合するドライブのうちの１つ又はいくつかの電源をオンにし、次いで残りのドライブの電源をオンにし得る。具体的なポリシーの内容は本明細書では限定されない。
【０１８３】
Ｓ１１：制御デバイスが、稼働状態となるように、数回に分けて、対応する適合するドライブを制御する。
【０１８４】
ステップＳ１１はステップＳ９と同じであり、詳細は再び説明されない。
【０１８５】
Ｓ１２：対応するアーキテクチャのストレージシステムをスタートする。
【０１８６】
Ｓ１３：制御デバイスが、ドライブと第１のコネクタとの間の接続状態又は切断状態が変化するかどうかを検出する。
【０１８７】
具体的には、制御デバイスのＰＣＩＥスイッチは、ＣＰＬＤの割り込み信号を使用することによって、ドライブと第１のコネクタの接続状態又は切断状態が変化するかどうかを監視する。ＰＣＩＥスイッチが検出を通じてＣＰＬＤの割り込み信号を取得する場合、ＰＣＩＥスイッチは、変化が発生すると決定し、Ｓ１４が実行されることになる。ＰＣＩＥスイッチが検出を通じてＣＰＬＤの割り込み信号を取得しない場合、ＰＣＩＥスイッチは、変化が発生しないことを決定し、Ｓ１８が実行されることになる。
【０１８８】
Ｓ１４：制御デバイスが、接続状態にあるドライブの数量が変化するかどうかを決定する。
【０１８９】
具体的には、制御デバイスのＣＰＵは、ＣＰＬＤの第１のレジスタのビットの値に基づいて、接続状態にあるドライブの数量が変化するかどうかを決定する。ＣＰＵが、第１のレジスタのビットの値に基づいて、接続状態にあるドライブの数量が増加すると決定する場合、ＣＰＵは、ドライブが挿入されると決定し、ステップＳ５が実行されることになる。ＣＰＵが、第１のレジスタの値に基づいて、接続状態にあるドライブの数量が減少すると決定する場合、ＣＰＵは、ドライブが取り除かれると決定し、ステップＳ１５が実行されることになる。
【０１９０】
Ｓ１５：制御デバイスが、取り除かれるドライブが欠陥のあるドライブであるかどうかを決定する。
【０１９１】
具体的には、制御デバイスのＣＰＬＤは、接続状態にある各ドライブの稼働状態をリアルタイムで監視し、ＣＰＬＤのドライブの欠陥状態を記憶するように構成されるレジスタに監視結果を記憶する。ドライブが取り除かれると決定するとき、ＣＰＵは、ドライブの欠陥状態を記憶するように構成され、かつＣＰＬＤのドライブに対応する、レジスタのビットの値を読み取り、ドライブが欠陥のあるドライブであるかどうかを決定する。ドライブが欠陥のあるドライブである場合、ステップＳ１７が実行されることになる。ドライブが欠陥のないドライブではない場合、ステップＳ１６が実行されることになる。
【０１９２】
Ｓ１６：制御デバイスが、電源オフ状態となるようにドライブを制御し、ドライブのためのクロック信号を提供することを停止し、ＣＰＬＤの第１のレジスタのビットの値を接続状態に対応する値に設定する。
【０１９３】
Ｓ１７：制御デバイスが、ドライブの欠陥状態のレコードをクリアし、ＣＰＬＤの第１のレジスタのビットの値を切断状態に対応する値に設定する。
【０１９４】
ドライブは既に取り除かれているので、制御デバイスが、ドライブの欠陥状態の記録をクリアする必要がある。言い換えると、ドライブが欠陥状態にあるかどうかを示すために使用される、ＣＰＬＤのドライブの欠陥状態を記憶するように構成されるレジスタのビットの値は、初期値に設定される。ある例では、ＣＰＬＤのドライブの欠陥状態を記憶するように構成されるレジスタのビットの初期値は０であり、そうすることによって、ビットの値は０に設定される。
【０１９５】
Ｓ１８：制御デバイスがドライブの欠陥状態を検出する。
【０１９６】
ＣＰＵは、ＣＰＬＤのドライブの欠陥状態を記憶するように構成されドライブに対応する、レジスタのビットの値を読み取り、ドライブが欠陥のあるドライブであるかどうかを決定する。ドライブが欠陥のあるドライブである場合、ステップＳ１９が実行されることになる。ドライブが欠陥のあるドライブではない場合、ステップＳ２０が実行されることになる。
【０１９７】
Ｓ１９：制御デバイスが、電源オフ状態となるようにドライブを制御し、ドライブのためのクロック信号を提供することを停止し、ＣＰＬＤの第１のレジスタのビットの値を切断状態に対応する値に設定する。
【０１９８】
Ｓ２０：制御デバイスが、遮断コマンドが受信されるかどうかを検出する。
【０１９９】
制御デバイスのＣＰＵは、クライアントから遮断コマンドが受信されるかどうかを監視する。遮断コマンドが受信される場合、ステップＳ２１が実行されることになり、遮断命令が受信されない場合、ステップＳ１３が実行されることになる。
【０２００】
Ｓ２１：停止する。
【０２０１】
図１５Ａから図１５Ｃに示されるストレージシステム動作方法において、スタートアップの前に、ストレージシステムの制御デバイスは、制御デバイスの稼働モード、具体的には、集中型ストレージアーキテクチャで動作するモード又は分散型ストレージアーキテクチャで動作するモードを決定しており、次いで、ストレージシステムは稼働モードで動作する。
【０２０２】
本出願のある実施形態のストレージシステムでは、稼働モード切り替えはさらに、動作中に実行され得る。図１６は、本出願のある実施形態による、ストレージシステムの稼働モードを切り替えるための方法のフローチャートである。フローチャートは次のように説明される。
【０２０３】
ステップＳ１６０１：ストレージシステムの中のＭ個の制御デバイスが第１の稼働モードで動作する。
【０２０４】
本出願のこの実施形態では、Ｍ個の制御デバイスは第１の稼働モード及び第２の稼働モードをサポートし、第１の稼働モード及び第２の稼働モードは以下の２つの定義を有する。
【０２０５】
第１の定義：
第１の稼働モードが集中型ストレージアーキテクチャで動作するモードであるとき、第２の稼働モードは分散型ストレージアーキテクチャで動作するモードである。
【０２０６】
第２の定義：
第１の稼働モードが分散型ストレージアーキテクチャで動作するモードであるとき、第２の稼働モードは集中型ストレージアーキテクチャで動作するモードである。
【０２０７】
Ｍは正の整数であることに留意されたい。第１の稼働モード及び第２の稼働モードの具体的な内容は既に上で説明されており、詳細は本明細書では再び説明されない。
【０２０８】
ステップＳ１６０２：Ｍ個の制御デバイスのうちの少なくとも１つの制御デバイスが、ストレージシステムの中のＫ個のドライブの各々に第１の命令を送信し、Ｋ個のドライブの各々が第１の命令を受信する。
【０２０９】
本出願のこの実施形態では、第１の命令は、第２の稼働モードで動作するように、第１の命令を受信するドライブに命令するために使用される。
【０２１０】
ある例では、Ｍ個の制御デバイスはクライアントに別々に接続されてよく、Ｍ個の制御デバイスは、第１の稼働モードから第２の稼働モードに切り替えるための、クライアントにより送信される命令を受信して、第１の命令をＫ個のドライブに送信する。Ｍ個の制御デバイスはまた、予め記憶された動作ポリシー、例えば、ユーザ設定を使用することによって、第１の時間期間において第１の稼働モードで動作し、第２の時間期間において第２の稼働モードで動作してよく、ストレージシステムは、切り替え条件が満たされると決定するとき、第１の命令をＫ個のドライブに送信する。代替的に、プライマリ制御デバイスとセカンダリ制御デバイスが、Ｍ個の制御デバイスにおいて設定され得る。プライマリ制御デバイスは、クライアントから、又は予め記憶された動作ポリシーを使用することによって、ドライブが第１の稼働モードから第２の稼働モードに切り替えられる必要があると決定し、第１の命令をＫ個のドライブの各々に送信する。もちろん、Ｍ個の制御デバイスは、Ｋ個のドライブの各ドライブに第１の命令を送信するための別の方式でトリガされてもよく、これは本明細書では限定されない。
【０２１１】
第１の命令は、Ｍ個の制御デバイスの各々によって送信されてよく、又はＭ個の制御デバイスの１つ又はいくつかによって送信されてよいことに留意されたい。これは本明細書では限定されない。
【０２１２】
ストレージシステムにおいて、Ｍ個の制御デバイスの各々が、Ｎ個の第１のコネクタの全て及びＮ個の第２のコネクタの全てを使用することによってＫ個のドライブと通信してよく、又は、Ｍ個の制御デバイスの各々が、Ｎ個の第１のコネクタのいくつか及びＮ個の第２のコネクタのいくつかを使用することによってＫ個のドライブと通信してよい。Ｎ個の第１のコネクタはＭ個の制御デバイスに取り外し可能に接続するように構成され、Ｎ個の第２のコネクタはＫ個のドライブに取り外し可能に接続するように構成される。Ｋ個のドライブの各々がデータを記憶するように構成され、Ｎ及びＫは正の整数である。
【０２１３】
第１のコネクタの構造、第２のコネクタの構造、第１のコネクタを制御デバイスに接続する方式、第２のコネクタをドライブに接続する方式、並びに制御デバイスとドライブの構造及び機能は、既に上で説明されており、本明細書では再び説明されないことに留意されたい。
【０２１４】
加えて、ステップＳ１６０１及びステップＳ１６０２の実行順序は本出願のこの実施形態では限定されないことに留意されたい。具体的には、ステップＳ１６０１が最初に実行されてよく、次いでステップＳ１６０２が実行される、又は、ステップＳ１６０２が最初に実行され、次いでステップＳ１６０１が実行される、又は、ステップＳ１６０１とステップ１６０２が同時に実行される。
【０２１５】
ステップＳ１６０３：Ｋ個のドライブの各々が、第１の命令に従って、第２の稼働モードに適応した状態となるように、各ドライブのＸ個の第２のコネクタのうちのＰ個の第２のコネクタを制御する。
【０２１６】
本出願のこの実施形態では、第２の稼働モードは、分散型ストレージアーキテクチャで動作するモードであってよく、又は、集中型ストレージアーキテクチャで動作するモードであってよい。従って、第２の稼働モードに適応した状態となるように各ドライブのＸ個の第２のコネクタのうちのＰ個の第２のコネクタを制御することの定義も異なり、具体的には次の通りである。
【０２１７】
第２の稼働モードが分散型ストレージアーキテクチャで動作するモードであるとき、第２の稼働モードに適応した状態となるようにＰ個の第２のコネクタのうちの１つを制御することは、
第２のコネクタを使用することによって、第２のコネクタに接続される第１のコネクタに対応する制御デバイスと通信することを停止するようにドライブを制御することを含み、Ｘ及びＰは正の整数であり、ＸとＰの差は１である。
【０２１８】
第２の稼働モードが集中型ストレージアーキテクチャで動作するモードであるとき、第２の稼働モードに適応した状態となるようにＰ個の第２のコネクタを制御することは、
Ｐ個の第２のコネクタのうちのＬ個の第２のコネクタを使用することによって、Ｌ個の第２のコネクタに接続されるＬ個の第１のコネクタに対応する制御デバイスと通信することを再開するようにドライブを制御することを含み、Ｌは正の整数であり、ＬはＰ以下である。
【０２１９】
第２のコネクタを使用することによって、第２のコネクタに接続される第１のコネクタに対応する制御デバイスと通信することを停止するようにドライブを制御する方式、及び、Ｌ個の第２のコネクタを使用することによって、Ｌ個の第２のコネクタに接続されるＬ個の第１のコネクタに対応する制御デバイスと通信することを再開するようにドライブを制御する方式は、上で説明されており、詳細は本明細書では再び説明されないことに留意されたい。
【０２２０】
ドライブが稼働モードを切り替えることを完了した後で、ストレージシステム全体が、第１の稼働モードに対応するストレージアーキテクチャから第２の稼働モードに対応するストレージアーキテクチャに切り替えられ、ストレージアーキテクチャ切り替え処理を完了する。
【０２２１】
前述の技術的解決法において、ストレージシステムが稼働モードを切り替える必要があるとき、制御デバイスの稼働モードが切り替えられ、制御デバイスは、稼働モード切り替え命令をドライブに送信して、ハードウェア構造と接続関係を変更することなくストレージシステムの稼働モードを切り替える。ストレージシステムの稼働モードを切り替えるステップが簡略化されることができる。
【０２２２】
前述の実装の説明により、本出願の実施形態は、ハードウェア、ファームウェア、又はそれらの組合せによって実装され得ることを、当業者は明確に理解し得る。本出願の実施形態がソフトウェアによって実装されるとき、前述の機能は、コンピュータ可読媒体に記憶され、又は、コンピュータ可読媒体において１つ又は複数の命令又はコードとして送られ得る。コンピュータ可読媒体は、コンピュータ記憶媒体又は通信媒体を含む。通信媒体は、ある場所から別の場所へのコンピュータプログラムの送信を容易にする任意の媒体を含む。記憶媒体はコンピュータによってアクセス可能な任意の使用可能な媒体であり得る。これは、例として使用されるが、次のことに限定はされない。コンピュータ可読媒体は、ＲＡＭ、ＲＯＭ、電気的消去可能プログラマブル読み取り専用メモリ（ｅｌｅｃｔｒｉｃａｌｌｙ  ｅｒａｓａｂｌｅ  ｐｒｏｇｒａｍｍａｂｌｅ  ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ、ＥＥＰＲＯＭ）、読み取り専用ディスク（ｃｏｍｐａｃｔ  ｄｉｓｃ  ｒｅａｄ−Ｏｎｌｙ  ｍｅｍｏｒｙ、ＣＤ−ＲＯＭ）又は別の光学ディスクストレージ、磁気ディスク記憶媒体又は別の磁気記憶デバイス、又は、命令又はデータ構造の形で所望のプログラムコードを搬送又は記憶するように構成されることができ、かつコンピュータによってアクセスされることができる、任意の他の媒体を含み得る。加えて、任意の接続が、コンピュータ可読媒体として適切に定義され得る。例えば、ソフトウェアが、ウェブサイト、サーバ、又は別のリモートソースから、同軸ケーブル、光ファイバ／ケーブル、ツイストペア、デジタル加入者線（Ｄｉｇｉｔａｌ  Ｓｕｂｓｃｒｉｂｅｒ  Ｌｉｎｅ、ＤＳＬ）、又は赤外線、無線、及びマイクロ波などのワイヤレス技術を使用することによって送信される場合、同軸ケーブル、光ファイバ／ケーブル、ツイストペア、ＤＳＬ、又は、赤外線、無線、及びマイクロ波などのワイヤレス技術は、それらが属する媒体の固定に含まれる。例えば、本発明の実施形態において使用されるディスク（ｄｉｓｋ）及びディスク（ｄｉｓｃ）は、コンパクトディスク（ｃｏｍｐａｃｔ  ｄｉｓｃ、ＣＤ）、レーザーディスク、光学ディスク、デジタル多用途ディスク（ｄｉｇｉｔａｌ  ｖｉｄｅｏ  ｄｉｓｃ、ＤＶＤ）、フロッピーディスク、Ｂｌｕ−ｒａｙディスクを含む。ディスクは一般に磁気手段によってデータを複製し、ディスクはレーザー手段によって光学的にデータを複製する。前述の組合せも、コンピュータ可読媒体の保護範囲に含まれるべきである。
【０２２３】
要約すると、上で説明されたことは本出願の実施形態にすぎず、本出願の保護範囲を限定することは意図されていない。本出願の開示に従ってなされる任意の修正、等価な置換、又は改善が、本出願の保護範囲内に入るものとする。
【国際調査報告】
2021529393.tif 000038
2021529393.tif 000039
2021529393.tif 000040
2021529393.tif 000041