JP2017162166A - ストレージシステムおよびストレージシステムの制御方法 - Google Patents
ストレージシステムおよびストレージシステムの制御方法 Download PDFInfo
- Publication number
- JP2017162166A JP2017162166A JP2016045731A JP2016045731A JP2017162166A JP 2017162166 A JP2017162166 A JP 2017162166A JP 2016045731 A JP2016045731 A JP 2016045731A JP 2016045731 A JP2016045731 A JP 2016045731A JP 2017162166 A JP2017162166 A JP 2017162166A
- Authority
- JP
- Japan
- Prior art keywords
- storage
- storage device
- data
- state
- storage devices
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】ストレージデバイスに対する、より効率的なアクセスを可能とするストレージシステムを提供することである。【解決手段】実施形態によれば、ストレージシステムは、複数のストレージデバイスと、ホスト装置とを具備する。前記ホスト装置は、同一のデータを前記複数のストレージデバイスの中の2以上のストレージデバイスに書き込む。前記複数のストレージデバイスそれぞれは、出力手段を具備する。前記出力手段は、各々のストレージデバイスの状態の遷移に関する情報を出力する。前記ホスト装置は、制御手段を具備する。前記制御手段は、前記出力手段により出力される情報に基づき、第1データが書き込まれた2以上のストレージデバイスの中から前記第1データを読み出す1以上の第1ストレージデバイスを選択するための前記2以上の第1ストレージデバイス間の優先度を制御する。【選択図】図6
Description
本発明の実施形態は、ストレージシステムおよびストレージシステムの制御方法に関する。
多くの企業や公的機関などにおいては、大量のデータを安全に格納しておくためのストレージシステムは欠かせないものとなっている。近年、様々な種類かつ任意長のデータをオブジェクトと称される一塊のデータとして取り扱うストレージシステムが注目を集めている。この種のストレージシステムは、オブジェクトストレージと称されている。このオブジェクトストレージ等のストレージシステムにおいては、データ(レプリカ)を複数の異なるロケーション(ストレージデバイス)に格納しておくことで、データの損失を免れる機構が主流となっている。
前述のオブジェクトストレージ等のストレージシステムにおいては、複数のストレージデバイスに格納されているデータを読み出す際、予め定められた優先度に従って、アクセス対象とするストレージデバイスが選択されており、適切なストレージデバイスが必ずしも選択されてはいない。
本発明が解決しようとする課題は、ストレージデバイスに対する、より効率的なアクセスを可能とするストレージシステムおよびストレージシステムの制御方法を提供することである。
実施形態によれば、ストレージシステムは、複数のストレージデバイスと、ホスト装置とを具備する。前記ホスト装置は、同一のデータを前記複数のストレージデバイスの中の2以上のストレージデバイスに書き込む。前記複数のストレージデバイスそれぞれは、出力手段を具備する。前記出力手段は、各々のストレージデバイスの状態の遷移に関する情報を出力する。前記ホスト装置は、制御手段を具備する。前記制御手段は、前記出力手段により出力される情報に基づき、第1データが書き込まれた2以上のストレージデバイスの中から前記第1データを読み出す1以上の第1ストレージデバイスを選択するための前記2以上の第1ストレージデバイス間の優先度を制御する。
以下、実施の形態について図面を参照して説明する。
(第1実施形態)
まず、第1実施形態について説明する。
図1は、本実施形態のストレージシステムの一構成例を示す図である。
図1に示されるように、本実施形態のストレージシステムは、ホスト1と、複数のストレージデバイス2とを有している。ホスト1とストレージデバイス2とは、ネットワークNおよびサーバ3を介して接続される。ここでは、ネットワークインタフェース機能を有するサーバ3の配下にストレージデバイス2が置かれている例、即ち、ストレージデバイス2が間接的にネットワークNへ接続される例を示すが、ネットワークインタフェース機能を有するストレージデバイス2を直接的にネットワークNへ接続してもよい。サーバ3の配下に置かれているストレージデバイス2、即ち、ネットワークNへ間接的に接続されるストレージデバイス2と、ネットワークNへ直接的に接続されるストレージデバイス2とが混在してもよい。
(第1実施形態)
まず、第1実施形態について説明する。
図1は、本実施形態のストレージシステムの一構成例を示す図である。
図1に示されるように、本実施形態のストレージシステムは、ホスト1と、複数のストレージデバイス2とを有している。ホスト1とストレージデバイス2とは、ネットワークNおよびサーバ3を介して接続される。ここでは、ネットワークインタフェース機能を有するサーバ3の配下にストレージデバイス2が置かれている例、即ち、ストレージデバイス2が間接的にネットワークNへ接続される例を示すが、ネットワークインタフェース機能を有するストレージデバイス2を直接的にネットワークNへ接続してもよい。サーバ3の配下に置かれているストレージデバイス2、即ち、ネットワークNへ間接的に接続されるストレージデバイス2と、ネットワークNへ直接的に接続されるストレージデバイス2とが混在してもよい。
ホスト1は、データの書き込み/読み出しのためのストレージデバイス2に対するアクセス処理を実行する処理装置である。ホスト1は、ユーザにより使用されるパーソナルコンピュータであってもよいし、ユーザにより使用されるパーソナルコンピュータ(クライアント)からデータの書き込み要求/読み出し要求を受け付けるサーバコンピュータであってもよい。後者の場合におけるパーソナルコンピュータ(クライアント)とサーバコンピュータ(ホスト1)との間の通信は、図1に示されるネットワークNを介して行われてもよいし、ネットワークNとは異なるネットワークを介して行われてもよい。
ここでは、本実施形態のストレージシステムがオブジェクトストレージであるものと想定する。なお、ここで説明するストレージシステムの制御手法は、オブジェクトストレージに限定されるものではない。データ(レプリカ)を複数の異なるロケーション(ストレージデバイス)に格納する機構を持つものであればよい。ここでいう、データを複数の異なるロケーションに格納するとは、データを分割して、複数のストレージデバイスに分散させて格納するストライピングではなく、同一のデータを、複数のストレージデバイスに格納することである。
ホスト1は、書き込み対象のデータの識別子を基に格納先のストレージデバイス2を特定する。データ(オブジェクト)の損失を免れるために、一般的に、データの格納先として、複数のストレージデバイス2が選ばれる。ホスト1は、複数のストレージデバイスそれぞれにデータを格納する際、そのデータがどのストレージデバイス2に格納されているのかを示す情報を管理テーブル1Aに記録する。また、その際、ホスト1は、どのストレージデバイス2からデータを読み出すべきかに関するストレージデバイス2間の優先度も併せて管理テーブル1Aに記録する。
たとえば、あるデータが、3つのストレージデバイス格納された場合を想定する。この場合、ホスト1は、この3つのストレージデバイス2間において予め設定されている優先度を管理テーブル1Aに記録してもよいし、このデータの書き込み要求に対する応答が早かった順に優先度を都度設定して管理テーブル1Aに記録してもよい。
データの読み出しが要求された場合、ホスト1は、管理テーブル1Aを参照して、そのデータが格納されているストレージデバイス2を認識し、かつ、アクセス対象とするストレージデバイス2を選択する。1つのストレージデバイス2が選択されてもよいし、2以上のストレージデバイス2が選択されてもよい。ホスト1は、選択したストレージデバイス2からのデータの読み出しを実行する。このデータの読み出しが失敗した場合、ホスト1は、次に優先度の高いストレージデバイス2を選択して、再度、データの読み出しを実行する。2以上のストレージデバイス2を選択する場合、ホスト1は、選択した2以上のストレージデバイス2からのデータの読み出しを並列的に実行する。ホスト1は、最も早く取得されたデータを用い、その他のデータは破棄すればよい。
ところで、ストレージデバイス2は、その状態が動的に変化し得るので、データを読み出す際、たとえば予め設定された優先度に従い、アクセス対象とするストレージデバイス2を選択すると、選択したストレージデバイス2の状態によっては、他のストレージデバイス2よりも応答性で劣る事態も発生し得る。本実施形態のストレージシステムは、ストレージデバイス2の状態に基づき、ストレージデバイス2間の優先度を制御する機構、即ち、ストレージデバイス2の状態が考慮されたストレージデバイス2の選択が行われる機構としたものである。
図2は、本実施形態のストレージシステムに適用されるストレージデバイス2のシステム構成の一例を概略的に示す図である。
図2に示されるように、ストレージデバイス2は、コントローラ21、データ記憶部22およびRAM(Random Access Memory)23を有している。
図2に示されるように、ストレージデバイス2は、コントローラ21、データ記憶部22およびRAM(Random Access Memory)23を有している。
コントローラ21は、外部デバイス(ここでは、サーバ3)との間のインタフェース機能と、データ記憶部22との間のインタフェース機能とを有し、RAM23を作業領域として用いながら、ホスト1が要求するデータの書き込み/読み出しを実行する。即ち、コントローラ21は、ストレージデバイス2の各コンポーネントの動作を制御する。前述したように、ストレージデバイス2は、ネットワークNへ直接的に接続することを可能とするネットワークインタフェース機能を有していてもよい。このネットワークインタフェース機能は、コントローラ21に設けられる。コントローラ21の機能は、たとえば、コントローラ21内に格納されるファームウェアによって実現される。
また、コントローラ21は、たとえば、省電力化、耐衝撃対策、データ再配置などのために、ホスト1が要求するデータの書き込み/読み出しとは別に、ストレージデバイス2の各コンポーネントの動作を制御する機能を有している。コントローラ21は、ストレージデバイス2の各コンポーネントの動作状況、即ち、ストレージデバイス2の状態を管理する。更に、コントローラ21は、ストレージデバイス2の状態、より具体的には、ストレージデバイス2の状態の遷移をホスト1に通知するための処理を実行する状態通知処理部211を有している。この状態通知処理部211の詳細については後述する。
データ記憶部22は、たとえばHD(Hard Disk)またはNAND型のフラッシュメモリ(NANDメモリ)等である。たとえばHDとNANDメモリとの組み合わせ等であってもよい。
一方、図3は、本実施形態のストレージシステムに適用されるホスト1のシステム構成の一例を概略的に示す図である。
一方、図3は、本実施形態のストレージシステムに適用されるホスト1のシステム構成の一例を概略的に示す図である。
図3に示されるように、ホスト1は、プロセッサ11、主メモリ12、外部記憶装置13、入力装置14、表示装置15および通信装置16を有している。
プロセッサ11は、ホスト1の各コンポーネントの動作を制御するデバイスであり、各種プログラムを外部記憶装置13から主メモリ12へロードして実行する。即ち、プロセッサ11は、各種プログラムの記述に従って、ホスト1の各コンポーネントの動作を制御する。各種プログラムには、後述するストレージ管理ユーティリティプログラム100が含まれている。なお、ストレージ管理ユーティリティプログラム100は、データ書き込み/読み出し処理部101、データ管理部102、ストレージ選択処理部103および優先度管理部104を有している。
プロセッサ11は、ホスト1の各コンポーネントの動作を制御するデバイスであり、各種プログラムを外部記憶装置13から主メモリ12へロードして実行する。即ち、プロセッサ11は、各種プログラムの記述に従って、ホスト1の各コンポーネントの動作を制御する。各種プログラムには、後述するストレージ管理ユーティリティプログラム100が含まれている。なお、ストレージ管理ユーティリティプログラム100は、データ書き込み/読み出し処理部101、データ管理部102、ストレージ選択処理部103および優先度管理部104を有している。
外部記憶装置13は、たとえばHDD(Hard Disk Drive)、SSD(Solid State Drive)またはフラッシュメモリを内蔵するハイブリッドHDD等である。図1に示される管理テーブル1Aは、外部記憶装置13に作成され、その一部または全部が主メモリ12に読み出されて使用される。入力装置14は、キーボード、ポインティングデバイス、操作スイッチ等である。表示装置15は、たとえばLCD(Liquid Crystal Display)等である。表示装置15としてタッチスクリーンディスプレイが適用される場合、ポインティングデバイスによる操作を、タッチスクリーンディスプレイ上でのタッチ操作で代行することができる。
通信装置16は、たとえばIEEE 802.3規格に準拠した通信を実行する。より具体的には、たとえばネットワークNを介したサーバ3との通信またはネットワークインタフェース機能を有するストレージデバイス2との通信を実行する。通信装置16は、前述したクライアントとしてのパーソナルコンピュータとの通信を実行することも可能である。
次に、本実施形態のストレージシステムにおけるストレージデバイス2とホスト1との協働について説明する。
まず、図4を参照して、本実施形態のストレージシステムのデータの書き込み時における動作の流れを説明する。
たとえばユーザにより使用されるパーソナルコンピュータ(クライアント)からデータの書き込みが要求された場合(図4の(1))、ホスト1は、このデータを複数のストレージデバイス2の中の2以上のストレージデバイス2に格納する(図4の(2))。そして、ホスト1は、ストレージデバイス2に格納される当該データに関する情報を管理テーブル1Aに記録する(図4の(3))。前述のストレージ管理ユーティリティプログラム100は、複数のストレージデバイス2へのデータの書き込みおよび複数のストレージデバイス2からのデータの読み出しを一元的に管理するプログラムである。
まず、図4を参照して、本実施形態のストレージシステムのデータの書き込み時における動作の流れを説明する。
たとえばユーザにより使用されるパーソナルコンピュータ(クライアント)からデータの書き込みが要求された場合(図4の(1))、ホスト1は、このデータを複数のストレージデバイス2の中の2以上のストレージデバイス2に格納する(図4の(2))。そして、ホスト1は、ストレージデバイス2に格納される当該データに関する情報を管理テーブル1Aに記録する(図4の(3))。前述のストレージ管理ユーティリティプログラム100は、複数のストレージデバイス2へのデータの書き込みおよび複数のストレージデバイス2からのデータの読み出しを一元的に管理するプログラムである。
データ書き込み/読み出し処理部101は、ストレージデバイス2へのデータの書き込み処理と、ストレージデバイス2からのデータの読み出し処理とを実行する。データ管理部102は、前述の管理テーブル1Aを管理する。データ管理部102は、データの書き込み時、たとえばデータ名(ファイル名)などのデータの識別子を検索鍵として検索可能な当該データ用のエントリを管理テーブル1A内に作成する。また、データ管理部102は、後述するストレージデバイス2からの通知に基づき、管理テーブル1Aを更新する処理も実行する。この更新のために、管理テーブル1Aには、ストレージデバイス2を基に当該ストレージデバイス2に格納されているデータ用のエントリを検索可能とする副索引が設けられる。
ストレージ選択処理部103は、データの書き込み時においては、データの格納先とするストレージデバイス2を選択する処理を実行する。ストレージ選択処理部103は、たとえば、データの識別子を引数とした関数計算により、2以上のストレージデバイス2を選択する。ストレージ選択処理部103により2以上のストレージデバイス2が選択されると、データ書き込み/読み出し処理部101は、当該選択された2以上のストレージデバイス2それぞれについてデータの書き込み処理を実行し、データ管理部102は、管理テーブル1A内に作成した当該データ用のエントリに、当該選択された2以上のストレージデバイス2それぞれを示す情報を記録する。
また、ストレージ選択処理部103は、データの読み出し時においては、管理テーブル1Aを参照して、読み出し対象のデータが格納される2以上のストレージデバイス2を認識し、かつ、当該2以上のストレージデバイス2の中からアクセス対象とする1以上のストレージデバイス2を選択する処理を実行する。
優先度管理部104は、たとえば、ストレージ選択処理部103がデータの書き込み時に選択し得る2以上のストレージデバイス2の全組み合わせについて予め設定されたストレージデバイス2間の優先度を管理する。データ管理部102は、データの書き込み時にストレージ選択処理部103が2以上のストレージデバイス2を選択した際、優先度管理部104が管理する当該2以上のストレージデバイス2間の優先度を管理テーブル1A内に作成した当該データ用のエントリに記録する。ストレージ選択処理部103は、データの読み出し時、基本的には、この管理テーブル1Aに記録される優先度に従い、アクセス対象とする1以上のストレージデバイス2を選択する。
図4に示されるように、データAの書き込みが要求された場合を想定すると、このデータAの格納先とする2以上のストレージデバイス2がストレージ選択処理部103により選択され、当該2以上のストレージデバイス2それぞれへのデータAの書き込み処理がデータ書き込み/読み出し処理部101により実行される。また、データA用のエントリがデータ管理部102により管理テーブル1A内に作成され、データAに関する情報(データA情報)が記録される。
本実施形態のストレージシステムにおいては、データ(レプリカ)が3箇所に格納されるものとし、データAの格納先として、ここでは、図4に示されるように、ストレージデバイス[11]2、ストレージデバイス[22]2およびストレージデバイス[MN]2が選択されたものと想定する。この場合、データAに関する情報として、3つのストレージデバイス2それぞれを示す情報と、(優先度管理部104により管理される)3つのストレージデバイス2間の優先度とが記録される。
図5は、本実施形態のストレージシステムにおいて使用される管理テーブル1Aの一例を示す図である。前述したように、データの書き込み時、そのデータ用のエントリが管理テーブル1A内に作成される。図5は、データAが、ストレージデバイス[11]2、ストレージデバイス[22]2およびストレージデバイス[MN]2に格納された時点において管理テーブル1A内のデータA用のエントリに記録されているデータAに関する情報を模式的に示している。
図5に示されるように、管理テーブル1Aには、優先順位、ストレージデバイスID、状態および処理段階が記録される。優先順位は、データの読み出し時におけるストレージデバイス2の選択順を示す情報である。ストレージデバイスIDは、データを格納するストレージデバイス2それぞれを示す情報である。状態は、データを格納するストレージデバイス2それぞれの状態を示す情報である。状態の初期値は、データの書き込み要求/読み出し要求を待機中の状態(Ready)である。処理段階は、後述するBusy状態のストレージデバイスが実行中の処理の段階(進捗状況)を示す情報である。
図5に例示した管理テーブル1A内のデータAに関する情報によれば、データAは、ストレージデバイス[11]2、ストレージデバイス[22]2およびストレージデバイス[MN]2に格納され、読み出し時には、アクセス対象として、ストレージデバイス[11]2→ストレージデバイス[22]2→ストレージデバイス[MN]2の順に選択すべきであることを認識できる。
なお、ここでは、ストレージ選択処理部103が、データの読み出し時、管理テーブル1Aを参照して、読み出し対象のデータが格納される2以上のストレージデバイス2を認識することとしている。そのため、データ管理部102が、データの書き込み時、そのデータ用のエントリを管理テーブル1Aに作成することとしている。即ち、管理テーブル1Aのエントリは、データ毎に作成されるものとしている。
一方、ストレージ選択処理部103は、データの読み出し時、管理テーブル1Aによらずに、読み出し対象のデータが格納される2以上のストレージデバイス2を認識することは可能である。より具体的には、データの書き込み時と同様、たとえばデータ名(ファイル名)などのデータの識別子を引数とした関数計算により、読み出し対象のデータが格納されている2以上のストレージデバイス2を特定できる。この場合、管理テーブル1Aのエントリは、データ毎ではなく、ストレージ選択処理部103がデータの書き込み時に選択し得る2以上のストレージデバイス2の組み合わせ毎に作成すればよい。この場合、管理テーブル1Aが、前述した優先度管理部104の機能を果たすこととなる。また、この場合のエントリの索引は、たとえばストレージデバイスIDを昇順に連結させた値などとすればよい。さらに、ストレージデバイス2を基に当該ストレージデバイス2を含む組み合わせに対応するエントリを検索可能とする副索引を設けてもよい。
次に、図6を参照して、本実施形態のストレージシステムのストレージデバイス2が状態を遷移させる場合における動作の流れを説明する。
前述したように、ストレージデバイス2のコントローラ21は、状態通知処理部211を有している(図2参照)。状態通知処理部211は、ストレージデバイス2が状態を変化させた場合、その状態の遷移をホスト1に通知するための処理を実行する。状態の変化としては、たとえば、以下のような事象が考えられる。
前述したように、ストレージデバイス2のコントローラ21は、状態通知処理部211を有している(図2参照)。状態通知処理部211は、ストレージデバイス2が状態を変化させた場合、その状態の遷移をホスト1に通知するための処理を実行する。状態の変化としては、たとえば、以下のような事象が考えられる。
(a)キャッシュデータの不揮発化(RAM23上のデータのデータ記憶部22への書き込み)、データ再配置(データ記憶部22内のデータの移動)等の内部的な処理を実行中の状態(Busy[1])への変化。
(b)データ記憶部22がHDである場合における磁気ヘッドを退避させた状態(Sleep[1])への変化。
(c)データ記憶部22がHDである場合における(磁気ヘッドの退避に加えて)さらにスピンドルの回転を退避させた状態(Sleep[2])への変化。
(d)データの書き込み要求/読み出し要求を待機中の状態(Ready)への変化。
(e)メンテナンス処理を実行中の状態(Busy[2])への変化。
(b)データ記憶部22がHDである場合における磁気ヘッドを退避させた状態(Sleep[1])への変化。
(c)データ記憶部22がHDである場合における(磁気ヘッドの退避に加えて)さらにスピンドルの回転を退避させた状態(Sleep[2])への変化。
(d)データの書き込み要求/読み出し要求を待機中の状態(Ready)への変化。
(e)メンテナンス処理を実行中の状態(Busy[2])への変化。
また、状態通知処理部211は、ストレージデバイス2がBusy状態にある場合、ストレージデバイス2が実行中の処理の段階(進捗状況)をホスト1に通知するための処理を実行する。
ここで、データAを格納する3つのストレージデバイス2、即ち、ストレージデバイス[11]2、ストレージデバイス[22]2およびストレージデバイス[MN]2が、ほぼ同じタイミングで、上記(a)のようなBusy状態へ変化した場合を想定する。ここでいう、ほぼ同じタイミングとは、データAを格納する3つのストレージデバイス2すべてがBusy状態である期間が発生する範囲内であればよい。ここでは、ストレージデバイス[MN]2が、他の2つのストレージデバイス2よりも先にBusy状態へ変化、即ち、内部的な処理の実行を開始したものと想定する。
この場合、各ストレージデバイス2の状態通知処理部211は、Busy状態への遷移および実行中の処理の段階(進捗状況)をホスト1へ通知するための処理を実行する(図6の(1),(1)´,(1)´´)。ストレージデバイス2がサーバ3の配下に置かれている場合、状態通知処理部211は、たとえば遷移後の状態を示す情報をサーバ3へ出力する。即ち、状態の遷移をサーバ3経由でホスト1へ通知する。ストレージデバイス2が直接的にネットワークNへ接続されている場合、状態通知処理部211は、たとえば遷移後の状態を示す情報をホスト1へ送信する。
一方、ストレージデバイス2の状態の遷移に関する通知を受けたホスト1は、データ管理部102が、そのストレージデバイス2に格納されているデータ用のエントリを管理テーブル1A内から検索して、検索されたエントリに記録されている情報を更新する(図6の(2))。
図7に、データAを格納する3つのストレージデバイス2からの通知により更新された管理テーブル1Aの一例を示す。図7は、図5と同様、データAに関する情報を模式的に示し、かつ、図5に示される状態からの更新後の状態を示している。
図7に示されるように、管理テーブル1A内のデータAに関する情報は、ストレージデバイス[11]2、ストレージデバイス[22]2およびストレージデバイス[MN]2のすべてがBusy状態へと更新されている。また、ストレージデバイス[11]2およびストレージデバイス[22]2は、処理段階がLev.1へ更新されており、ストレージデバイス[MN]2は、処理段階が(Lev.1よりも1段階進んだ)Lev.2へ更新されている。
ここでは、管理テーブル1A内のデータAに関する情報のみに言及しているが、ストレージデバイス[11]2、ストレージデバイス[22]2およびストレージデバイス[MN]2には、データA以外のデータが格納されているので、データ管理部102は、データA以外のデータについても、管理テーブル1Aの更新を実行する。
なお、管理テーブル1Aのエントリが、データ毎ではなく、ストレージデバイス2の組み合わせ毎に作成される場合、ストレージデバイス2からの状態の遷移に関する通知に伴う更新は、そのストレージデバイス2を含む組み合わせに対応するエントリについて実行されることになる。
続いて、図8を参照して、本実施形態のストレージシステムのデータの読み出し時における動作の流れを説明する。
たとえばデータAの読み出しが要求された場合を想定すると(図8の(1))、ストレージ選択処理部103は、データA用のエントリを管理テーブル1A内から検索し、アクセス対象とするストレージデバイス2を選択する(図8の(2))。この時、管理テーブル1A内のデータA用のエントリに記録されている情報は、図7に示されるものであったと想定する。
たとえばデータAの読み出しが要求された場合を想定すると(図8の(1))、ストレージ選択処理部103は、データA用のエントリを管理テーブル1A内から検索し、アクセス対象とするストレージデバイス2を選択する(図8の(2))。この時、管理テーブル1A内のデータA用のエントリに記録されている情報は、図7に示されるものであったと想定する。
前述したように、管理テーブル1A内のデータAに関する情報、より具体的には、優先順位に従えば、基本的には、まず、アクセス対象として、ストレージデバイス[11]2が選択され、たとえばストレージデバイス[11]2からのデータAの読み出しが失敗した場合、次に、ストレージデバイス[22]2が選択されることとなる。また、たとえばストレージデバイス[22]2からのデータAの読み出しも失敗した場合、最後に、ストレージデバイス[MN]2が選択されることとなる。
一方、図7に示されるように、データAを格納する3つのストレージデバイス2がすべてBusy状態である場合、処理段階が最も進んでいる、本来、最後に選択されるべきストレージデバイス[MN]2をアクセス対象として当初より選択した方が、アクセス速度を速くすることが期待される。データAを格納する3つのストレージデバイス2の中で、Ready状態へ復帰するまでの時間が最も短いと推測されるからである。
そこで、ストレージ選択処理部103は、データの読み出し時、単純に優先順位に従うのではなく、ストレージデバイス2の状態に基づき、(データが格納されている)ストレージデバイス2間の優先度を制御し、アクセス対象とするストレージデバイス2を選択する。即ち、ストレージ選択処理部103は、データAをストレージデバイス[MN]2から読み出すことを決定する。
このストレージ選択処理部103の決定を受けて、データ書き込み/読み出し処理部101は、ストレージデバイス[MN]2からのデータAの読み出し処理を実行する(図8の(3))。このように読み出されたデータAが、その読み出しを要求したパーソナルコンピュータ(クライアント)に返却される(図8の(4))。
ストレージ選択処理部103が、データの読み出し時、アクセス対象とするストレージデバイス2を選択する規則の一例を以下に列挙する。
(A)Ready状態が存在する場合、Ready状態の中で優先順位が最上位のストレージデバイス2を選択。
(B)すべてがSleep状態の場合
(B−1)Partialと称されるSleep状態と、Slumberと称されるSleep状態とが混在する場合、Wake時間が短いPartialの中で優先順位が最上位のストレージデバイス2を選択。たとえば、上記(b)のSleep[1]と上記(c)のSleep[2]とでは、Sleep[1]が優先される。複数のストレージデバイス2が候補に挙がり得るが、その場合は、それらの中から優先順位が最上位のストレージデバイス2を選択。
(B−2)すべてがPartialまたはSlumberのいずれかである場合、優先順位が最上位のストレージデバイス2を選択。
(C)すべてがBusy状態の場合、その時点での処理段階からReady状態へ復帰するまでの時間が最も短いと推測されるストレージデバイス2を選択。複数のストレージデバイス2が候補に挙がり得るが、その場合は、それらの中から優先順位が最上位のストレージデバイス2を選択。なお、上記(a)のBusy[1]と上記(e)のBusy[2]とが混在するような場合でも、各々の処理段階からReady状態へ復帰するまでの時間を推測することは可能である。
(D)Ready状態が存在せず、かつ、Sleep状態とBusy状態とが混在する場合
(D−1)Sleep状態のストレージデバイス2をWakeさせる時間よりも、Ready状態へ復帰するまでの時間が短いと推測されるBusy状態のストレージデバイス2が存在する場合、当該Busy状態のストレージデバイス2を選択。複数のストレージデバイス2が候補に挙がり得るが、その場合は、それらの中から優先順位が最上位のストレージデバイス2を選択。
(D−2)Sleep状態のストレージデバイス2をWakeさせる時間よりも、Ready状態へ復帰するまでの時間が短いと推測されるBusy状態のストレージデバイス2が存在しない場合、Wake時間が最短のSleep状態のストレージデバイス2の中で優先順位が最上位のストレージデバイス2を選択。
(A)Ready状態が存在する場合、Ready状態の中で優先順位が最上位のストレージデバイス2を選択。
(B)すべてがSleep状態の場合
(B−1)Partialと称されるSleep状態と、Slumberと称されるSleep状態とが混在する場合、Wake時間が短いPartialの中で優先順位が最上位のストレージデバイス2を選択。たとえば、上記(b)のSleep[1]と上記(c)のSleep[2]とでは、Sleep[1]が優先される。複数のストレージデバイス2が候補に挙がり得るが、その場合は、それらの中から優先順位が最上位のストレージデバイス2を選択。
(B−2)すべてがPartialまたはSlumberのいずれかである場合、優先順位が最上位のストレージデバイス2を選択。
(C)すべてがBusy状態の場合、その時点での処理段階からReady状態へ復帰するまでの時間が最も短いと推測されるストレージデバイス2を選択。複数のストレージデバイス2が候補に挙がり得るが、その場合は、それらの中から優先順位が最上位のストレージデバイス2を選択。なお、上記(a)のBusy[1]と上記(e)のBusy[2]とが混在するような場合でも、各々の処理段階からReady状態へ復帰するまでの時間を推測することは可能である。
(D)Ready状態が存在せず、かつ、Sleep状態とBusy状態とが混在する場合
(D−1)Sleep状態のストレージデバイス2をWakeさせる時間よりも、Ready状態へ復帰するまでの時間が短いと推測されるBusy状態のストレージデバイス2が存在する場合、当該Busy状態のストレージデバイス2を選択。複数のストレージデバイス2が候補に挙がり得るが、その場合は、それらの中から優先順位が最上位のストレージデバイス2を選択。
(D−2)Sleep状態のストレージデバイス2をWakeさせる時間よりも、Ready状態へ復帰するまでの時間が短いと推測されるBusy状態のストレージデバイス2が存在しない場合、Wake時間が最短のSleep状態のストレージデバイス2の中で優先順位が最上位のストレージデバイス2を選択。
このように、ストレージデバイス2が、状態の遷移をホスト1へ通知し、ホスト1が、ストレージデバイス2の状態に基づき、ストレージデバイス2間の優先度を制御することにより、本実施形態のストレージシステムは、ストレージデバイス2に対するアクセスの効率化を図ることを実現する。
なお、ストレージ選択処理部103は、データの読み出し時、アクセス対象として、2以上のストレージデバイス2を選択してもよい。この場合においても、アクセス速度が遅いと推測されるストレージデバイス2を除外する等、ストレージデバイス2の状態を考慮することは有効である。
図9は、本実施形態のストレージシステム(ホスト1)のデータの書き込み時における動作の流れを示すフローチャートである。
データの書き込み時、ホスト1は、まず、たとえばデータの識別子を基にデータの格納先とする2以上のストレージデバイス2を選択する(ステップA1)。ホスト1は、選択した2以上のストレージデバイス2に対するデータの書き込み処理を実行する(ステップA2)。ホスト1は、この2以上のストレージデバイス2に関する情報を含む、書き込みデータに関する情報を管理テーブル1Aに記録する(ステップA3)。
データの書き込み時、ホスト1は、まず、たとえばデータの識別子を基にデータの格納先とする2以上のストレージデバイス2を選択する(ステップA1)。ホスト1は、選択した2以上のストレージデバイス2に対するデータの書き込み処理を実行する(ステップA2)。ホスト1は、この2以上のストレージデバイス2に関する情報を含む、書き込みデータに関する情報を管理テーブル1Aに記録する(ステップA3)。
なお、管理テーブル1Aがストレージデバイス2の組み合わせ毎に作成される場合、管理テーブル1Aへの情報の記録は不要である。
図10は、本実施形態のストレージシステム(ストレージデバイス2,ホスト1)のストレージデバイスが状態を遷移させる場合における動作の流れを示すフローチャートである。
図10は、本実施形態のストレージシステム(ストレージデバイス2,ホスト1)のストレージデバイスが状態を遷移させる場合における動作の流れを示すフローチャートである。
ストレージデバイス2は、状態が変化した時、ホスト1に対して、状態遷移通知を送信する(ステップB11)、一方、状態遷移通知を受信したホスト1は、管理テーブル1A内の状態が遷移したストレージデバイス2に書き込まれているデータに関する情報を検索し(ステップB21)。検索された情報を更新する(ステップB22)。
なお、管理テーブル1Aがストレージデバイス2の組み合わせ毎に作成される場合、ホスト1は、管理テーブル1A内の状態が遷移したストレージデバイス2を含む組み合わせに関する情報を検索し、検索された情報を更新する。
図11は、本実施形態のストレージシステム(ホスト1)のデータの読み出し時における動作の流れを示すフローチャートである。
図11は、本実施形態のストレージシステム(ホスト1)のデータの読み出し時における動作の流れを示すフローチャートである。
データの読み出し時、ホスト1は、管理テーブル1A内の読み出しデータに関する情報を検索する(ステップC1)。検索された情報により、ホスト1は、データが格納されているストレージデバイス2を認識する。
ホスト1は、検索された情報、より具体的には、当該検索された情報で示されるストレージデバイス2の状態に基づき、(データが格納されている)ストレージデバイス2間の優先度を制御し、データを読み出すストレージデバイス2を選択する(ステップC2)。ホスト1は、選択した2以上のストレージデバイス2に対するデータの読み出し処理を実行する(ステップC3)。
ホスト1は、検索された情報、より具体的には、当該検索された情報で示されるストレージデバイス2の状態に基づき、(データが格納されている)ストレージデバイス2間の優先度を制御し、データを読み出すストレージデバイス2を選択する(ステップC2)。ホスト1は、選択した2以上のストレージデバイス2に対するデータの読み出し処理を実行する(ステップC3)。
なお、管理テーブル1Aがストレージデバイス2の組み合わせ毎に作成される場合、ホスト1は、たとえばデータの識別子を基にデータが格納されているストレージデバイス2を認識する。また、この場合、ホスト1は、管理テーブル1A内の認識したストレージデバイス2の組み合わせに関する情報を検索し、検索された情報、より具体的には、当該検出された情報で示されるストレージデバイス2の状態に基づき、(データが格納されている)ストレージデバイス2間の優先度を制御し、データを読み出すストレージデバイス2を選択する。
以上のように、本実施形態のストレージシステムは、ストレージデバイス2に対する、より効率的なアクセスを可能とする。
たとえば、ストレージデバイス2の状態をホスト1が予め知ることにより、アクセスの速いストレージデバイス2と、アクセスの遅いストレージデバイス2とをホスト1が判別できるようになり、データの使用方法に応じたストレージデバイス2の選択も行えるようになる。つまり、前述の説明では、データの読み出し時、アクセスの速いストレージデバイス2を選択するようにしたが、データの種類や優先度などに対応したアクセス速度のストレージデバイス2を選択するようにしてもよい。
たとえば、ストレージデバイス2の状態をホスト1が予め知ることにより、アクセスの速いストレージデバイス2と、アクセスの遅いストレージデバイス2とをホスト1が判別できるようになり、データの使用方法に応じたストレージデバイス2の選択も行えるようになる。つまり、前述の説明では、データの読み出し時、アクセスの速いストレージデバイス2を選択するようにしたが、データの種類や優先度などに対応したアクセス速度のストレージデバイス2を選択するようにしてもよい。
また、ストレージデバイス2は、ストレージシステム全体の性能を落とすことなく、必要な処理を行えるようになる。たとえば、あるデータに関して優先順位が最上位のストレージデバイス2が内部的な処理を実行したとしても、このデータの読み出し時、ホスト1側において、他のストレージデバイス2が選択されるようになるので、このストレージデバイス2がReady状態になるまでの遅延を発生させるようなことがない。
また、たとえばストレージデバイス2がSSDであると想定すると、SSDは、ガーベージコレクションを高速に実行するために、通常、オーバープロビジョニングと称される余分な容量を多く持つ必要がある。ガーベージコレクションを高速に実行する必要を無くすことにより、このような余分な容量を多く持つことを不要にできる。
更に、ストレージシステム全体の応答性を確保しつつ、ストレージデバイス2がSleep状態へ遷移することが可能となるので、ストレージシステム全体の消費電力を低減することができる。より具体的には、たとえば、あるデータに関して優先順位が最上位のストレージデバイス2がSleep状態へ遷移したとしても、このデータの読み出し時、ホスト1側において、他のストレージデバイス2が選択されるようになるので、このストレージデバイス2がReady状態になるまでの遅延を発生させるようなことがない。
(第2実施形態)
次に、第2実施形態について説明する。
第1実施形態では、ストレージデバイス2は、状態を変化させる時、状態の遷移をホスト1に通知した。本実施形態では、ストレージデバイス2は、状態を変化させる時、状態遷移の許可をホスト1に申請し、許可された場合、状態を変化させる。ホスト1が複数存在する場合、ストレージデバイス2は、すべてのホスト1へ申請を行い、すべてのホスト1から許可を得られた場合、状態を変化させる。
次に、第2実施形態について説明する。
第1実施形態では、ストレージデバイス2は、状態を変化させる時、状態の遷移をホスト1に通知した。本実施形態では、ストレージデバイス2は、状態を変化させる時、状態遷移の許可をホスト1に申請し、許可された場合、状態を変化させる。ホスト1が複数存在する場合、ストレージデバイス2は、すべてのホスト1へ申請を行い、すべてのホスト1から許可を得られた場合、状態を変化させる。
図12は、本実施形態のストレージシステムのストレージデバイス2が状態を遷移させる場合における動作の流れを説明するための図である。ここでは、複数のホスト1が存在しており、複数のホスト1それぞれが、ストレージデバイス2へのデータの書き込み/読み出しを行っていることを想定する。
たとえば、複数のホスト1の中のあるホスト1が、データBの読み出しの要求を受けている場合を想定する(図12の(1))。また、データBを格納するストレージデバイス2が、たとえばSleep状態へ遷移しようとしており、そのために、状態の遷移の許可を複数のホスト1へ申請した場合を想定する(図12の(2))。なお、データBを格納するストレージデバイス2には、データB以外のデータも格納されているが、データB以外のデータの読み出し要求は発生していないものと想定する。また、データBを格納するストレージデバイス2に対するデータの書き込み要求も発生していないものと想定する。
この場合、データBを含む当該ストレージデバイス2に格納されているデータの読み出し要求を受けていないホスト1からは、許可の回答を得られるが(図12の(3))、データBの読み出し要求を受けているホスト1からは、許可の回答を得られない(図12の(3)´)。換言すれば、ホスト1は、状態の遷移の許可をストレージデバイス2から申請された場合、その可否を判定して、判定結果をストレージデバイス2へ回答する。
一部のホスト1から許可が得られなかった場合、ストレージデバイス2は、状態を遷移させることを保留する。すべてのホスト1から許可が得られた場合、ストレージデバイス2は、状態を遷移させて、ストレージデバイス2の状態の遷移をすべてのホスト1へ通知する。
このように、ストレージデバイス2が、状態を遷移させる際、その許可をホスト1へ申請し、すべてのホスト1から許可された場合、状態を遷移させるようにし、また、ホスト1が、ストレージデバイス2からの申請に対して、その可否をストレージデバイス2へ回答することにより、本実施形態のストレージシステムは、さらに、ストレージデバイス2に対するアクセスの効率化を図ることを実現する。
図13は、本実施形態のストレージシステム(ストレージデバイス2)のストレージデバイス2が状態を遷移させる場合における動作の流れを示すフローチャートである。
ストレージデバイス2は、状態を遷移させる場合、すべてのホスト1に対して、状態の遷移の許可を申請する(ステップD1)。ストレージデバイス2は、すべてのホスト1から許可の回答が得られたか否かを調べ(ステップD2)、すべてのホスト1からの許可が得られなかった場合(ステップD2のNO)、状態を遷移させることを保留する(ステップD3)。
ストレージデバイス2は、状態を遷移させる場合、すべてのホスト1に対して、状態の遷移の許可を申請する(ステップD1)。ストレージデバイス2は、すべてのホスト1から許可の回答が得られたか否かを調べ(ステップD2)、すべてのホスト1からの許可が得られなかった場合(ステップD2のNO)、状態を遷移させることを保留する(ステップD3)。
すべてのホスト1から許可が得られた場合(ステップD2のYES)、ストレージデバイス2は、状態を遷移させて(ステップD4)、ストレージデバイス2の状態の遷移をすべてのホスト1へ通知する(ステップD5)。
以上のように、本実施形態のストレージシステムにおいても、ストレージデバイス2に対する、より効率的なアクセスを可能とする。
以上のように、本実施形態のストレージシステムにおいても、ストレージデバイス2に対する、より効率的なアクセスを可能とする。
ホスト1とストレージデバイス2とが多対多で接続される環境においては、ホスト1がストレージデバイス2の状態を指示することは適当でない。たとえば、あるホスト1があるストレージデバイス2に対してSleep状態への遷移を指示しようとした時、他のホスト1がそのストレージデバイス2に対してデータの書き込み/読み出しのためのアクセスを実行しようとしているかもしれない。そのため、ストレージデバイス2からすべてのホスト1に対して、状態を遷移させてもよいかを問い合わせる仕組みが有効となる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1…ホスト、1A…管理テーブル、2…ストレージデバイス、3…サーバ、N…ネットワーク、11…プロセッサ、100…ストレージ管理ユーティリティプログラム、101…データ書き込み/読み出し処理部、102…データ管理部、103…ストレージ選択処理部、104…優先度管理部、21…コントローラ、211…状態通知処理部。
Claims (10)
- 複数のストレージデバイスと、
同一のデータを前記複数のストレージデバイスの中の2以上のストレージデバイスに書き込むホスト装置と、
を具備し、
前記複数のストレージデバイスそれぞれは、各々のストレージデバイスの状態の遷移に関する情報を出力する出力手段を具備し、
前記ホスト装置は、前記出力手段により出力される情報に基づき、第1データが書き込まれた2以上の第1ストレージデバイスの中から前記第1データを読み出す1以上の第1ストレージデバイスを選択するための前記2以上の第1ストレージデバイス間の優先度を制御する制御手段を具備する
ストレージシステム。 - 前記出力手段により出力される情報は、ストレージデバイスが第1処理を実行中の状態であることを示す情報と、ストレージデバイスが実行中の前記第1処理の処理段階を示す情報とを含み、
前記制御手段は、前記2以上の第1ストレージデバイスすべてが前記第1処理を実行中の状態の場合、前記第1処理の処理段階に基づき、前記第1処理が終了するまでの時間が最短の第1ストレージデバイスを判定して、前記2以上の第1ストレージデバイス間の優先度を制御する、
請求項1に記載のストレージシステム。 - 前記出力手段により出力される情報は、ストレージデバイスが前記ホスト装置からの要求待ち状態であることを示す情報と、ストレージデバイスが省電力状態であることを示す情報とを含み、
前記制御手段は、前記2以上の第1ストレージデバイスの状態の中に、要求待ち状態が存在せず、かつ、前記第1処理を実行中の状態と、省電力状態とが混在する場合、前記第1処理の処理段階に基づき、前記第1処理が終了するまでの時間が、省電力状態から通常状態に復帰させるまでの時間よりも短い、前記第1処理を実行中の状態の第1ストレージデバイスが存在するか否かを判定して、前記2以上の第1ストレージデバイス間の優先度を制御する、
請求項2に記載のストレージシステム。 - 前記複数のストレージデバイスそれぞれは、各々のストレージデバイスの状態を変化させる場合、その許可を前記ホスト装置に申請し、前記ホスト装置から許可された場合、各々のストレージデバイスの状態を変化させる管理手段を具備する請求項1に記載のストレージシステム。
- 前記管理手段は、前記ホスト装置から許可されなかった場合、各々のストレージデバイスの状態を変化させることを保留する請求項4に記載のストレージシステム。
- 前記ホスト装置が複数存在し、
前記管理手段は、前記複数のホスト装置すべてから許可された場合、ストレージデバイスの状態を変化させる請求項4に記載のストレージシステム。 - 前記第1処理は、ストレージデバイスの保守または修復のための内部的な処理を含む請求項2または3に記載のストレージシステム。
- 前記複数のストレージデバイスの中の少なくとも1つのストレージデバイスは、ハードディスクドライブであり、
前記ハードディスクドライブであるストレージデバイスにおける前記省電力状態は、磁気ヘッドを退避させた状態を含む請求項3に記載のストレージシステム。 - 前記ハードディスクドライブであるストレージデバイスにおける前記省電力状態は、磁気ヘッドを退避させ、かつ、スピンドルの回転を停止させた状態を含む請求項8に記載のストレージシステム。
- 複数のストレージデバイスと、同一のデータを前記複数のストレージデバイスの中の2以上のストレージデバイスに書き込むホスト装置とを具備するストレージシステムの制御方法であって、
前記複数のストレージデバイスそれぞれが、各々のストレージデバイスの状態の遷移に関する情報を出力することと、
前記ホスト装置が、前記出力される情報に基づき、第1データが書込まれた2以上のストレージデバイスの中から前記第1データを読み出す1以上の第1ストレージデバイスを選択するための前記2以上の第1ストレージデバイス間の優先度を制御することと、
を具備する制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016045731A JP2017162166A (ja) | 2016-03-09 | 2016-03-09 | ストレージシステムおよびストレージシステムの制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016045731A JP2017162166A (ja) | 2016-03-09 | 2016-03-09 | ストレージシステムおよびストレージシステムの制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017162166A true JP2017162166A (ja) | 2017-09-14 |
Family
ID=59853122
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016045731A Pending JP2017162166A (ja) | 2016-03-09 | 2016-03-09 | ストレージシステムおよびストレージシステムの制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2017162166A (ja) |
-
2016
- 2016-03-09 JP JP2016045731A patent/JP2017162166A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5943096B2 (ja) | 複合不揮発性記憶装置のためのデータ移行 | |
US8769225B2 (en) | Optimization of data migration between storage mediums | |
US8375180B2 (en) | Storage application performance matching | |
JP5052278B2 (ja) | 記憶装置を制御する装置及び方法 | |
JP2009181314A (ja) | 情報記録装置およびその制御方法 | |
CN110968253B (zh) | 一种数据存储方法、装置及系统 | |
KR20120112965A (ko) | 비휘발성 메모리 장치, 이를 스왑 메모리로 이용하는 데이터 처리 장치, 및 이를 이용한 스왑 방법 | |
US11128535B2 (en) | Computer system and data management method | |
US10095442B2 (en) | Memory device that changes execution order of commands | |
KR20130112210A (ko) | 메모리 시스템 및 그것의 페이지 교체 방법 | |
KR20140032789A (ko) | 불휘발성 메모리 장치의 컨트롤러 및 그것의 커멘드 스케줄링 방법 | |
US20100306484A1 (en) | Heterogeneous storage array optimization through eviction | |
US9075606B2 (en) | Storage apparatus and method of determining device to be activated | |
US9465745B2 (en) | Managing access commands by multiple level caching | |
JP6019940B2 (ja) | 情報処理装置、コピー制御プログラム、およびコピー制御方法 | |
JP2017041040A (ja) | 制御装置、ストレージシステム、及び制御プログラム | |
US10671307B2 (en) | Storage system and operating method thereof | |
JP2021135538A (ja) | ストレージ制御装置及びストレージ制御プログラム | |
JP2007272721A (ja) | ストレージ装置及びその制御方法 | |
JP2017162166A (ja) | ストレージシステムおよびストレージシステムの制御方法 | |
JP5505195B2 (ja) | メモリの制御装置、及び制御方法 | |
WO2014147840A1 (ja) | アクセス制御プログラム、ディスク装置及びアクセス制御方法 | |
US20170308302A1 (en) | Storage management in hybrid drives | |
JPWO2016001959A1 (ja) | ストレージシステム | |
JP5382471B2 (ja) | 電力制御方法、計算機システム、及びプログラム |