JP2022016767A - コントローラ、ストレージ装置、制御方法、及び制御プログラム - Google Patents

コントローラ、ストレージ装置、制御方法、及び制御プログラム Download PDF

Info

Publication number
JP2022016767A
JP2022016767A JP2020119687A JP2020119687A JP2022016767A JP 2022016767 A JP2022016767 A JP 2022016767A JP 2020119687 A JP2020119687 A JP 2020119687A JP 2020119687 A JP2020119687 A JP 2020119687A JP 2022016767 A JP2022016767 A JP 2022016767A
Authority
JP
Japan
Prior art keywords
data
pool
disk
logical
controller
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
Application number
JP2020119687A
Other languages
English (en)
Inventor
宜史 山口
Yoshifumi Yamaguchi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2020119687A priority Critical patent/JP2022016767A/ja
Publication of JP2022016767A publication Critical patent/JP2022016767A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】 上位端末に影響を与えることなく各ストレージを効率よく使用することができる。【解決手段】 コントローラ100は、特定部110と、割当部111と、を有する。特定部110は、論理ディスクに記憶されたデータの属性に基づいて、複数の物理ディスクから割当先の物理ディスクを特定する。複数の物理ディスクは、HDDやSSDなどである。データの属性は、データの拡張子などを含む。そして、割当部111は、特定された割当先の物理ディスクに論理ディスクを割り当てる。【選択図】 図1

Description

本発明は、コントローラおよびストレージ装置などに関する。
ストレージシステムは、HDD(Hard Disk Drive)やSSD(Solid State Drive)などの複数の異なるストレージに基づいて構成される。また、ストレージシステムにおいて、1または複数のストレージに基づき1つの仮想的なストレージであるストレージプールを構築する技術がある。
特許文献1には、ストレージシステムにおいて、ストレージに記憶されたデータと同一内容のデータが書き込まれるなどの重複を排除する技術が開示されている。
また、特許文献2には、性能の異なる論理的な記憶領域に対して、それぞれ異なる実ファイルシステムを割り当て、それらの実ファイルシステムを仮想化して単一の仮想ファイルシステムを管理する技術が開示されている。そして、特許文献2には、仮想ファイルシステムにおいてファイル単位で各ファイルの再配置先をファイルの属性とファイルの利用状況に基づいて決定する技術が開示されている。
また、特許文献3には、アクセス頻度が高いデータを、性能の異なる複数のストレージのうち性能の高いストレージに再配置する技術が開示されている。
特開2015-170345号公報 国際公開第2013/098960 特開2014-241117号公報
しかしながら、特許文献2に開示の技術のように、ファイル単位で再配置を行う場合、ストレージ装置にアクセスする装置(「上位端末」と称する。)のオペレーティングシステムやファイルシステムに影響を与える場合があるという問題点がある。例えば、ファイル単位で再配置を行うと、論理記憶領域におけるファイルのアドレスに変更が生じる場合がある。また、特許文献3に開示の技術では、各データのアクセス頻度が均一であると、データの再配置が行われず、各ストレージの性能を生かしたデータの再配置が行われない場合があるという問題点がある。
本発明の目的の一例は、上記の課題を解決するため、上位端末に影響を与えることなく各ストレージを効率よく使用することができるコントローラ、ストレージ装置などを提供することにある。
一形態におけるコントローラは、論理記憶領域に記憶されたデータの属性に基づいて、複数の記憶装置から割当先の記憶装置を特定する特定手段と、特定された前記割当先の記憶装置に前記論理記憶領域を割り当てる割当手段と、を備える。
一形態におけるストレージ装置は、複数の記憶装置と、コントローラと、を備え、
前記コントローラは、論理記憶領域に記憶されたデータの属性に基づいて、前記複数の記憶装置から割当先の記憶装置を特定する特定手段と、特定された前記割当先の記憶装置に前記論理記憶領域を割り当てる割当手段と、を有する。
一形態における制御方法は、論理記憶領域に記憶されたデータの属性に基づいて、複数の記憶装置から割当先の記憶装置を特定し、特定された前記割当先の記憶装置に前記論理記憶領域を割り当てる。
一形態における制御プログラムは、コンピュータに、論理記憶領域に記憶されたデータの属性に基づいて、複数の記憶装置から割当先の記憶装置を特定し、特定された前記割当先の記憶装置に前記論理記憶領域を割り当てる処理を実行させる。
本発明によれば、上位端末に影響を与えることなく各ストレージを効率よく使用することができる。
図1は、実施の形態1にかかるコントローラの一構成例を示すブロック図である。 図2は、実施の形態1にかかるコントローラ100の一動作例を示すフローチャートである。 図3は、本実施の形態2にかかるストレージシステムの一構成例を示す説明図である。 図4は、各論理ディスクと各プールと各物理ディスク202との対応関係の一例を示す説明図である。 図5は、実施の形態2にかかるストレージ装置21の一構成例を示すブロック図である。 図6は、サーバ20からのアクセス例を示す説明図である。 図7は、解析結果データ231の一例を示す説明図である。 図8は、論理ディスク204の再割当例1を示す説明図である。 図9は、論理ディスク204の割り当て変更例2を示す説明図である。 図10は、実施の形態2にかかるコントローラ200の一動作例を示すフローチャートである。 図11は、解析処理の具体的な処理手順の一例を示すフローチャートである。 12は、ストレージ装置をコンピュータで実現した場合のハードウェア構成例を示す説明図である。
以下に図面を参照して、本発明にかかるコントローラ、ストレージ装置、制御方法、および制御プログラムの実施の形態を詳細に説明する。本実施の形態は、開示の技術を限定するものではない。
まず、本発明の実施の形態に係る説明で使用する用語について説明する。以下では、例えば、HDDやSSDなどの物理的な記憶装置であるストレージを「物理ディスク」と呼ぶ。また、例えば、1または複数の物理ディスクに基づき構築された1つの仮想的なストレージであるストレージプールを「プール」と呼ぶ。また、例えば、論理記憶領域は、上位端末が実行するオペレーティングシステム(以下「OS(Operating System)」とする)などによって提供される。そして、論理記憶領域は、OSからアクセス可能な論理的な記憶領域である。論理記憶領域は、仮想記憶とも呼ばれる。以下、論理記憶領域を「論理ディスク」と呼ぶ。
(実施の形態1)
図1は、実施の形態1にかかるコントローラの一構成例を示すブロック図である。図1を参照すると、コントローラ100は、特定部110と、割当部111と、を有する。
特定部110は、論理ディスクに記憶されたデータの属性に基づいて、複数の物理ディスクから割当先の物理ディスクを特定する。ここでのデータの属性とは、例えば、拡張子、サイズ、作成日付、更新日付、アクセス日付、作成者、格納場所などが挙げられるが、特に限定しない。各種日付は、例えば、各種日時であってもよい。作成日付は、データが作成された日付である。更新日付は、例えば、データが更新された日付である。アクセス日付は、例えば、データがアクセスされた日付である。また、格納場所とは、例えば、データが格納された物理ディスクまたは物理ディスク上の格納場所を示す。複数の物理ディスクは、それぞれHDDやSSDなどが挙げられる。複数の物理ディスクは、例えば、すべてが互いに異なる種類の物理ディスクであってもよいし、一部が互いに異なる種類の物理ディスクであってもよい。割当先の物理ディスクとは、処理の対象となっている論理ディスクの新たな割当先となる物理ディスクである。
ここで、例えば、2台の物理ディスクのうち、一方の台がHDDであって、他方の台がSSDである例を用いて説明する。また、データの属性が、拡張子を含む場合を例に挙げて詳細に説明する。
具体的には、特定部110は、例えば、論理ディスクに記憶されたデータの拡張子に基づいて、論理ディスクの新たな割当先の物理ディスクを特定する。具体的には、特定部110は、例えば、拡張子に基づき論理ディスクに記憶されたデータに対するアクセスの特徴とそのデータのサイズの傾向に基づいて、新たな割当先の物理ディスクを特定する。
まずは、データに対するアクセスの特徴について説明する。特定部110は、論理ディスクに記憶されたデータの拡張子に応じて、割当先の物理ディスクを特定することによって、実質的に、当該データに対するアクセスの特徴に基づいて、割当先の物理ディスクを特定してもよい。アクセスの特徴としては、順次アクセス(逐次アクセス、シーケンシャルアクセス)と、ランダムアクセスと、が挙げられる。例えば、データベースには、データベースに含まれるいずれのレコードにアクセスされなど、ランダムにアクセスされる場合があるという特徴がある。ランダムにアクセスされるようなファイルを含む論理ディスクについては、高速にアクセス可能なSSDが適している。一方、動画ファイルや音声ファイルは、一般的に、時系列の順に再生される。すなわち、動画ファイルや音声ファイルには、動画ファイルや音声ファイルの各部分データが順にアクセスされるという特徴がある。このため、順次アクセスされるようなデータを含む論理ディスクについては、アクセス速度においてSSDであってもよいし、HDDであってもよい。ただし、HDDには、先読み機能を有する場合がある。そこで、順次アクセスされるようなデータを含む論理ディスクについては、先読み機能を有するHDDが適している。
そこで、特定部110は、例えば、拡張子を検出し、それがデータベースを示す場合に、SSDを新たな割当先として特定する。また、特定部110は、例えば、データの拡張子を検出し、それがMPEG(Moving Picture Experts Group)やAVI(Audio Video Interleave)を示す場合に、HDDを新たな割当先の物理ディスクとして特定する。
つぎに、拡張子を用いて、論理ディスクに記憶されたデータのサイズに応じて、データの割当先を特定する例について説明する。一般的に、データが動画ファイル、音声ファイル、画像ファイルである場合、データのサイズは大きい。また、一般的に、例えば、データがテキストファイルや文書ファイルである場合、データのサイズは小さい。
そして、HDDは、容量がSSDよりも大きい傾向にある。そこで、特定部110は、サイズが大きいデータの拡張子を検出した場合に、HDDを新たな割当先の物理ディスクとして特定する。また、特定部110は、サイズが小さいデータの拡張子を検出した場合に、SSDを新たな割当先の物理ディスクとして特定する。
ここでは、拡張子を用いて、データのサイズの特徴に応じてデータの割当先を特定する例として、サイズが大きいデータの拡張子か、サイズが小さいデータの拡張子に基づいて、割当先を特定する例を説明した。特定部110は、サイズが大きいデータの拡張子、サイズが中であるデータの拡張子、サイズが小さいデータの拡張子のようにより詳細なサイズのデータの拡張子に基づいて、データの割当先を特定してもよい。
また、物理ディスクは、HDDとSSDとの2種類でなくてもよい。また、例えば、アクセスの速度や容量などの性能が異なるHDDが複数あってもよい。また、アクセスの速度や容量などの性能が異なるSSDが複数あってもよい。このため、特定部110は、データの属性と各種物理ディスクの性能とに基づいて新たな割当先を特定してもよい。また、特定部110は、拡張子と各種物理ディスクの性能とに基づいて新たな割当先を特定してもよい。また、物理ディスクの種類、アクセスの速度、容量などの各種物理ディスクの性能に関するデータについては、コントローラ100がアクセス可能な記憶部に予め記憶されていればよく、特に限定しない。この記憶部としては、RAM(Random Access Memory)、フラッシュメモリなどの半導体メモリや物理ディスクなどが挙げられる。また、同一性能の物理ディスクが複数ある場合、特定部110は、例えば、未使用の領域が多い方の物理ディスクを新たな割当先の物理ディスクとして特定してもよい。また、例えば最終アクセス日時が古いファイルが多い物理ディスクはアクセスが低頻度とみなされる。そこで、特定部110は、データの属性としてアクセス日時と格納場所とを用いて、最終アクセス日時が古いファイルが他の物理ディスクよりも多い物理ディスクを新たな割当先の物理ディスクとして特定してもよい。
また、ここで、データの属性としてデータのサイズを用いる例を説明する。例えば、特定部110は、論理ディスクに記憶されたデータのサイズに応じたアクセスの特徴に基づいて、論理ディスクの新たな割当先の物理ディスクを特定する。一般的に、サイズが大きいデータは、順次アクセスされる。このため、特定部110は、サイズが大きいデータを記憶する論理ディスクの割当先の物理ディスクとしてHDDを特定する。また、一般的には、サイズが小さいデータが沢山アクセスされると、そのデータを記憶する論理ディスクは、ランダムアクセスされることになる。そこで、特定部110は、サイズが小さいデータを記憶する論理ディスクの割当先の物理ディスクとしてSSDを特定する。また、論理ディスクに記憶されたデータのサイズが大きいか小さいかについては、閾値と比較するような絶対的な比較であってもよいし、複数の論理ディスク内のデータのサイズを比較するような相対的な比較であってもよく、特に限定しない。閾値との比較を例に挙げると、特定部110は、論理ディスクに記憶されたデータのサイズが閾値以上であれば、割当先の物理ディスクとしてHDDを特定する。また、具体的に、例えば、特定部110は、論理ディスクに記憶されたデータのサイズが閾値未満であれば、割当先の物理ディスクとしてSSDを特定する。また、ここでは、データの属性が、拡張子の場合やサイズの場合などのように分けて説明したが、特定部110は、拡張子、サイズ、アクセス日時等のデータの属性を複合的に用いて、新たな割当先の物理ディスクを特定してもよい。
つぎに、割当部111は、特定された割当先の物理ディスクに論理ディスクを割り当てる。具体的には、割当部111は、論理ディスクに対応する物理ディスクの記憶内容を、新たな割当先の物理ディスクに記憶させる。ここでの論理ディスクに対応する物理ディスクとは、特定部110による処理において論理ディスクが割り当てられている物理ディスクである。つぎに、割当部111は、論理ディスクに対応する物理ディスクの記憶内容を削除する。これにより、論理ディスクに対応する物理ディスクの記憶内容が、新たな割当先の物理ディスクに移動する。割当方法については特に限定しない。また、割当部111は、特定された割当先の物理ディスクが、論理ディスクに対応する物理ディスクと同じ場合、何もしなくてよい。
そして、割当部111は、論理ディスクの割り当てについて管理している情報などを更新する。ここで、論理ディスクの割り当てについて管理している情報などについては、例えば、物理ディスクへのアクセスなどの物理ディスクの制御のために使用される情報が用いられればよいため、特に限定しない。
図2は、実施の形態1にかかるコントローラ100の一動作例を示すフローチャートである。ここで、図2におけるコントローラ100による各ステップの処理結果は、メモリや物理ディスクなどのコントローラ100がアクセス可能な記憶部に記憶される。図2に示すように、まず、コントローラ100は、論理ディスクに記憶されたデータの属性に基づいて、新たな割当先の物理ディスクを特定する(ステップS101)。ここで、ステップS101を開始するタイミングについては、所定時間ごとであってもよいし、通信ネットワークなどを介した入力操作に基づき指定されたタイミングであってもよいし、特に限定しない。また、処理対象の論理ディスクについては、すべての論理ディスクが順番に処理の対象となってもよい。または、処理対象の論理ディスクは、通信ネットワークなどを介した入力操作に基づき指定された論理ディスクであってもよい。
ステップS101において、コントローラ100は、特定部110によって割当先の物理ディスクを特定する。例えば、データの属性が拡張子の場合、コントローラ100は、拡張子を検出する。そして、コントローラ100は、検出した拡張子に応じた論理ディスクに記憶されたデータへのアクセスの特徴やサイズの特徴を判別してもよい。そして、コントローラ100は、アクセスの特徴やサイズの特徴に基づいて、割当先の物理ディスクを特定してもよい。より詳細な特定方法については、特に限定しない。
つぎに、コントローラ100は、割当部111によって、ステップS101において特定された割当先の物理ディスクに論理ディスクを割り当てる(ステップS102)。より詳細な割当方法については、上述したとおりであり、特に限定しない。以上で、コントローラ100は、一連の動作を終了する。
つぎに、本実施の形態1の効果について説明する。上述した本実施の形態におけるコントローラ100は、論理ディスクに記憶されたデータの属性に基づいて、新たな割当先となる物理ディスクに論理ディスクを割り当てる。論理ディスクは、サーバ等の上位装置に割り当てられているため、上位装置の設定などの変更をしなくてよい。また、上位装置が利用するOSやファイルシステムへの影響もない。このように、論理ディスク単位で割当先が変更されるため、上位端末に影響を与えることなく物理ディスクを効率よく使用することができるという効果が得られる。また、物理ディスクを効率よく使用することにより、上位端末が論理ディスクへアクセスする際の待ち時間等の低減を図ることができる。したがって、上位端末から論理ディスクへのアクセスにかかる処理能力の改善を図ることができる。
また、例えば、コントローラ100は、データの属性として、拡張子、サイズ、作成日付、更新日付、アクセス日付、作成者、格納場所を用いる。これにより、コントローラ100は、論理ディスクの記憶内容から得られる情報などによって割当先の物理ディスクを特定することができる。したがって、論理ディスクにデータが記憶されていれば、コントローラ100が処理を行うタイミング等に制限がない。このため、いずれのタイミングであっても効率よく物理ディスクを使用できるように論理ディスクを再配置させることができる。
例えば、コントローラ100は、データの拡張子に応じた当該データに対するアクセスの特徴またはデータのサイズに応じた当該データに対するアクセスの特徴に基づいて、割当先の物理ディスクを決定する。これにより、実際にデータの書き込みや読み出し等の上位端末からのアクセス等がなくとも、論理ディスクの記憶内容へのアクセスの特徴に適した物理ディスクへ論理ディスクが割り当てられる。また、上位端末等のアクセスを監視するような構成がなくとも、効率よく物理ディスクを使用することができる。
複数の物理ディスクの各々の種類が異なる場合もあれば、複数の物理ディスクの各々の種類が同じ場合もある。同じ種類の物理ディスクであってもアクセス速度や容量などの性能が異なる場合がある。例えば、コントローラ100は、データの属性と複数の物理ディスクの各々の性能とに基づいて、割当先の物理ディスクを特定する。これにより、効率よく物理ディスクを使用することができる。
(実施の形態2)
つぎに、本発明の実施の形態2について図面を参照して詳細に説明する。以下、本実施の形態2の説明が不明確にならない範囲で、前述の説明と重複する内容については説明を省略する。
図3は、本実施の形態2にかかるストレージシステムの一構成例を示す説明図である。図3において、ストレージシステム2は、サーバ20と、ストレージ装置21と、を有する。サーバ20とストレージ装置21とは、例えば、LAN(Local Area Network)やWAN(Wide Area Network)などの通信ネットワークを介して接続される。または、サーバ20とストレージ装置21とは、有線のバスを介して接続されてもよい。
サーバ20は、ストレージ装置21にアクセスする上位端末である。上位端末としては、サーバ20に限らず、種々変更可能である。図3では上位端末が、1台の例を示したが、複数台であってもよい。
また、ストレージ装置21は、コントローラ200と、メモリ201と、複数の物理ディスク202-1~202-nと、を有する。コントローラ200とメモリ201と複数の物理ディスク202とは、例えば、バスなどを介して接続される。
コントローラ200は、物理ディスク202に基づき構成される各プールへの論理ディスクの割り当てを制御する。また、コントローラ200は、例えば、複数の物理ディスク202へのアクセスを制御する。
メモリ201は、コントローラ200が用いる各種情報を記憶する記憶部である。メモリ201としては、例えば、RAMやフラッシュメモリなどが挙げられる。また、ストレージ装置21は、メモリ201の代わりに、物理ディスク202の一部を記憶部として用いてもよい。
複数の物理ディスク202-1~202-nは、それぞれ記憶装置である。ストレージ装置21では、例えば、SSDやHDDなどのように異なる種類の物理ディスク202を用いることができる。nは、2以上の自然数である。
図4は、各論理ディスクと各プールと各物理ディスク202との対応関係の一例を示す説明図である。論理ディスク204は、上位端末であるサーバ20が用いる論理的な記憶領域である。図4の例では、サーバ20は、論理ディスク204-1と、論理ディスク204-2とを用いる。ただし、サーバ20が用いる論理ディスク204の数は、特に限定されない。また、上位端末が複数あって、各上位端末が論理ディスク204などを用いる例であってもよい。
上述したように、プール203は、1または複数の物理ディスク202を仮想的に統合することにより構成される。プール203は仮想的な記憶領域である。プール203は、例えば、RAID(Redudant Arrays оf Inexpensive Disks)などによって複数の物理ディスク202を束ねることによって構成される。これにより、プール203は、各物理ディスク202よりも大きな容量を持つ仮想的な記憶領域となる。また、RAIDを用いて冗長化されることにより、プール203の信頼性が向上する。
図4に示すように、プール203は、各物理ディスク202の一部を利用してもよい。または、プール203は、各物理ディスク202のすべてを利用してもよい。例えば、プール203-1は、物理ディスク202-1から物理ディスク202-3によって構築される。プール203-1は、物理ディスク202-2の全部を利用している。また、プール203-1は、物理ディスク202-1の一部と物理ディスク202-3の一部を利用する。例えば、プール203-2は、物理ディスク202-4から物理ディスク202-6によって構築される。プール203-2は、物理ディスク202-5の全部を利用する。また、プール203-2は、物理ディスク202-4の一部と物理ディスク202-6の一部を利用する。
また、1つのプール203を構築する複数の物理ディスク202の種類はすべて同一であってもよいし、異なっていてもよい。この種類については、特に限定しない。具体的には、例えば、物理ディスク202-1から物理ディスク202-3は、すべてHDDであってもよい。または、例えば、物理ディスク202-1と物理ディスク202-3とはHDDであり、物理ディスク202-2はSSDであってもよい。また、例えば、高速な物理ディスク202に基づき構築されたプール203はアクセスの速度に関する性能が高いプール203となる。上述したように、高速な物理ディスク202としてはSSDが挙げられる。また、大容量の物理ディスク202に基づき構築されたプール203は容量が大きいプール203となる。大容量の物理ディスク202としては、HDDが挙げられる。HDDは、大容量であるが、容量に対しての単価が安い。
図4の例では、論理ディスク204-1には、プール203-1が割り当てられている。論理ディスク204-1は、プール203-1を構築する複数の物理ディスク202を跨って利用する。図4において、論理ディスク204-1は、物理ディスク202-2の全部を利用する。一方、論理ディスク204-1は、物理ディスク202-1と物理ディスク202-3の一部を利用する。
また、論理ディスク204-2には、プール203-2が割り当てられている。論理ディスク204-2は、プール203-2を構築する複数の物理ディスク202を跨って利用する。図4において、論理ディスク204-2は、物理ディスク202-5の全部を利用する。一方、論理ディスク204-2は、物理ディスク202-4の一部と物理ディスク202-6の一部とを利用する。
また、図4において、各論理ディスク204は、プール203の一部を利用している。これに限らず、論理ディスク204は、プール203の全部を利用してもよい。また、図4の例では、各プール203に1つの論理ディスク204が割り当てられているが、これに限らず、各プール203に複数の論理ディスク204が割り当てられてもよい。
サーバ20に搭載されたOSまたはファイルシステムは、論理ディスク204を用いる。サーバ20は、論理ディスク204上のアドレスを指定することにより、論理ディスク204への読み出しアクセスや書き込みアクセスを行う。よって、ストレージ装置21は、論理ディスク204がいずれのプール203に割り当てられているかをサーバ20に通知していない。サーバ20は、いずれの物理ディスク202および物理ディスク202のいずれの領域、いずれのプール203にアクセスしているか判別できない。すなわち、サーバ20からは、プール203や物理ディスク202の存在が隠されている。サーバ20が論理ディスク204にアクセスする例については図6を用いて後述する。
図5は、実施の形態2にかかるストレージ装置21の一構成例を示すブロック図である。図5において、物理ディスク202の図示を省略する。まずは、メモリ201の記憶内容について説明する。メモリ201は、コントローラ200の各部の処理結果を記憶する記憶部である。また、メモリ201は、コントローラ200の各部の処理に用いるデータを記憶する記憶部である。図5におけるメモリ201の記憶内容は、一例であり、特に限定されない。図5において、メモリ201は、例えば、解析結果データ231と、論理ディスク管理データ232と、プール管理データ233と、プール属性データ234と、を記憶する。
解析結果データ231は、コントローラ200の解析部212によって得られるデータである。解析結果データ231の一例については、図6を用いて解析部212の説明において後述する。
論理ディスク管理データ232は、各論理ディスク204がいずれのプール203に割り当てられているかを管理するためのデータである。論理ディスク管理データ232は、例えば、論理ディスク204を示す識別情報と、論理ディスク204が割り当てられたプール203を示す識別情報と、を対応付けたデータである。
プール管理データ233は、各プール203がいずれの物理ディスク202を使用して構築されているかを管理するためのデータである。プール管理データ233は、例えば、プール203を示す識別情報と、プール203を構築する物理ディスク202の識別情報と、を対応付けたデータである。上述したように、プール203は、1または複数の物理ディスク202によって構築される。このため、ここでの物理ディスク202の識別情報は、複数であってもよい。
ここでは、理解の容易化と説明の容易化のために、論理ディスク管理データ232とプール管理データ233を示す。コントローラ200が用いる情報についてはこれに限らない。例えば、ストレージの制御のための既知の情報が用いられてもよい。
プール属性データ234は、プール203の属性を管理するためのデータである。プール属性データ234は、例えば、プール203を示す識別情報と、プール203の属性を示す情報と、が対応付けられたデータである。プール203の属性を示す情報としては、例えば、アクセス速度を示す情報と、容量を示す情報と、先読み機能の有無を示す情報と、などが挙げられる。
アクセス速度を示す情報は、例えば、プール203を構築する物理ディスク202のアクセス速度を示す情報である。例えば、アクセス速度を示す情報としては、「高」、「中」、「低」などを示す情報であってもよいし、各プール203のアクセス速度の順位などを示す情報であってもよい。または、アクセス速度を示す情報としては、プール203を構築する物理ディスク202の種類別の数であってもよく、特に限定しない。例えば、あるプール203が1つのSSDや複数のSSDのみで構築された場合、プール203のアクセス速度を示す情報は「高」とする。また、例えば、あるプール203が1つのHDDや複数のHDDのみで構築された場合、プール203のアクセス速度を示す情報は「低」とする。
また、容量を示す情報は、例えば、プール203を構築する物理ディスク202の容量を示す情報である。また、容量を示す情報としては、「大」、「中」、「小」などを示す情報であってもよい。または、容量を示す情報としては、各プール203を構築する物理ディスク202にHDDが含まれているか否かを示す情報であってもよいし、各プール203を構築する物理ディスク202の容量の順位などを示す情報であってもよい。または、アクセス速度を示す情報や容量を示す情報としては、プール203を構築する物理ディスク202の種類別の数であってもよく、特に限定しない。
また、先読み機能の有無を示す情報は、例えば、先読み機能があるHDDに基づき構築されたプール203であるか否かを示す情報である。プール203を構築する物理ディスク202にHDDが含まれていれば、「有」としてもよいし、プール203を構築する物理ディスク202にHDDが含まれていなければ、「無」としてもよい。また、プール203を構築する物理ディスク202が、複数台である場合には、HDDの数やHDDの使用率などに応じて「有」と「無」が設定されてもよい。
また、プール属性データ234は、プール管理データ233に含まれていてもよい。ここでは、理解の容易化と説明の容易化のために、プール属性データ234を示す。プール属性データ234に限らず、各プール203の特徴を判別するためのデータがあればよい。このため、物理ディスク202ごとに、物理ディスク202のアクセス速度や容量などの性能と物理ディスク202の種類などを管理するデータなどがメモリ201に記憶されていてもよい。そして、コントローラ200が、新たな割当先のプール203を特定する際に、そのデータなどを利用してプール属性データ234と同じ内容のデータなどを作成してもよい。
つぎに、コントローラ200の各機能部について説明する。コントローラ200は、特定部210と、割当部211と、解析部212と、ディスク制御部213と、を有する。図5を参照すると、本実施の形態2におけるコントローラ200は、実施の形態1のコントローラ200と比べて、解析部212と、ディスク制御部213とをさらに備える。
ディスク制御部213は、サーバ20などの上位端末からの読み出しアクセスや書き込みアクセスを制御する。上述したように、論理ディスク204は、サーバ20が実行するOS等のプログラムが提供する論理的な記憶領域である。このため、コントローラ200は、例えば、論理ディスク204上のアドレスと物理ディスク202上のアドレスとを対応付けて管理する。この管理方法については、既知の技術を用いればよく、特に限定しない。ディスク制御部213は、サーバ20からのアクセス要求に含まれる論理ディスク204上のアドレスを物理ディスク202上のアドレスに変換する。これにより、ディスク制御部213は、アクセス要求を制御する。ここで、図6を用いてディスク制御部213の一機能例を説明する。
図6は、サーバ20からのアクセス例を示す説明図である。例えば、サーバ20がOSまたはファイルシステムを使用してストレージ装置21にデータを書き込む場合、ディスク制御部213は、サーバ20からの書き込みのアクセス要求を受け付ける。ディスク制御部213は、論理ディスク204にデータを書き込む。ここで、上述したように、論理ディスク204の実態はプール203を構築する物理ディスク202である。このため、ディスク制御部213は、論理ディスク204に対応する物理ディスク202の領域にデータを書き込む。ここでの論理ディスク204に対応する物理ディスク202とは、論理ディスク204が割り当てられたプール203を構築する物理ディスク202であり、論理ディスク204が使用する領域である物理ディスク202である。より具体的には、例えば、ディスク制御部213は、論理ディスク204上のアドレスを物理ディスク202上のアドレスに変換する。そして、ディスク制御部213は、この物理ディスク202上のアドレスが示す物理ディスク202上の領域にデータを書き込む。なお、ディスク制御部213については既存の技術が利用されればよい。このため、ここでは、読み出しのアクセス要求の詳細な処理の説明を省略する。
図5の説明に戻って、解析部212は、所定の格納形式に基づいて、論理ディスク204に対応する物理ディスク202を解析する。これにより、解析部212は、論理ディスク204に記憶されたデータの属性を得る。ここで、解析部212による解析が行われるタイミングについては、特に限定しない。例えば、このタイミングは、所定の時間ごとなどのように周期的であってもよい。または、このタイミングは、通信ネットワークや入力装置等を介した指示であってもよい。また、解析対象となる論理ディスク204については、特に限定しない。例えば、全部の論理ディスク204が解析対象となってもよいし、一部の論理ディスク204が解析対象となってもよい。また、例えば、通信ネットワークや入力装置等を介して解析対象となる論理ディスク204が指定されてもよい。
ここで、所定の格納形式とは、所定のOSまたはファイルシステムの格納形式である。ここで、格納形式を「フォーマット」と呼ぶ。具体的には、解析部212は、論理ディスク204に対応する各物理ディスク202の記憶内容のフォーマットと所定のOSまたはファイルシステムのフォーマットとの一致を解析する。論理ディスク204に対応する各物理ディスク202とは、論理ディスク204が割り当てられたプール203を構築する各物理ディスク202である。また、論理ディスク204に対応する各物理ディスク202の記憶内容のフォーマットを省略して論理ディスク204のフォーマットとする。
所定のOSまたはファイルシステムについては、特に限定しない。ただし、近年、サーバ20などの上位端末で使用されるOSやファイルシステムは、限定的であり、いずれも汎用性が高い。汎用性の高いOSやファイルシステムの一例としては、WINDOWS(登録商標)、Linux(登録商標)、仮想化OSなどが挙げられる。そこで、複数種類のOSやファイルシステムのフォーマットを予めメモリ201や記憶装置などのコントローラ200がアクセス可能な記憶領域に記憶させておく。また、コントローラ200は、通信ネットワークを介してこれらのフォーマットを取得してもよい。
より具体的には、解析部212は、論理ディスク204のフォーマットがメモリ201に記憶された所定のフォーマットに該当するか否かを判定する。解析部212は、論理ディスク204のフォーマットが所定のフォーマットに該当する場合に、論理ディスク204に対応する物理ディスク202と所定のフォーマットに基づいて、各ディレクトリやファイルのメタ情報を解析する。メタ情報とは、あるデータが付随して持つそのデータ自体についての付加的なデータである。メタ情報としては、例えば、ファイル名、ファイルサイズ、ファイルの所有者、ファイルの拡張子などを示す情報が挙げられる。つぎに、解析部212は、各ファイルのメタ情報を得た場合、各ファイルのメタ情報を解析結果データ231としてメモリ201または物理ディスク202に記憶させる。
図7は、解析結果データ231の一例を示す説明図である。例えば、解析結果データ231は、Number(No.)、論理ディスク番号、OS、ファイル名、拡張子、サイズ、所有者のフィールドを有する。解析結果データ231には、ファイルごとに、各フィールドに情報が設定されることによりファイルに関する情報が一つのレコードとして記憶されている。
解析結果データ231において、Numberは、レコードを順に並べた際の順番を示す番号である。解析結果データ231において、論理ディスク番号は、論理ディスク204を示す識別情報である。例えば、論理ディスク番号「LUN1」は、論理ディスク204-1を示す。論理ディスク番号「LUN2」は、論理ディスク204-2を示す。例えば、論理ディスク番号が「LUN1」であるレコードは、論理ディスク204に記憶されたファイルに関する情報である。解析結果データ231において、OSは、論理ディスク204のフォーマットと一致したOSまたはファイルシステムである。
解析結果データ231において、ファイル名は、ファイルを示す識別情報の一例であるファイルの名称である。解析結果データ231において、拡張子は、ファイルの拡張子である。例えば、拡張子「DBF」は、データベースを示す。拡張子「TXT」であれば、テキストファイルを示す。拡張子「MPEG」は、動画ファイルを示す。なお、ここでは、理解の容易化のために、拡張子「MPEG」等の表記としているが、実際には、「mpg」などである。また、サイズは、ファイルのサイズであり、バイト単位などで表されるファイルの大きさである。所有者は、ファイルの所有者である。
解析結果データ231によれば、例えば、論理ディスク番号「LUN1」が示す論理ディスク204-1には、拡張子がDBFのファイルが多く記憶されている。また、例えば、論理ディスク番号「LUN2」が示す論理ディスク204-2には、拡張子がMPEGのファイルが多く記憶されている。また、図7に示していないが、データの属性として、ファイルの作成日時、更新日時、アクセス日時、データが記憶された物理ディスクまたはデータが記憶された物理ディスクにおける格納場所などの情報が解析によって得られてもよい。
図5の説明に戻って、特定部210は、論理ディスク204に記憶されたデータの属性に基づいて、複数のプール203から割当先のプール203を特定する。割当先のプール203とは、処理の対象となっている論理ディスク204の新たな割当先となるプール203である。実施の形態1で説明したようにデータの属性について限定しないが、例えば、データの属性は、拡張子を含む。
具体的に、特定部210は、解析結果データ231から論理ディスク204に記憶されたファイルの属性を取得する。特定部210は、取得した各ファイルの属性を記憶領域に記憶されたデータの属性として用いる。
ここでは、各ファイルの属性としてファイルの拡張子を用いる例について説明する。例えば、特定部210は、データの属性として取得した拡張子に基づいて、複数のプール203から新たな割当先のプール203を特定する。具体的には、特定部210は、ファイルの拡張子に応じた当該ファイルへのアクセスの特徴とファイルのサイズの特徴に基づいて、新たな割当先を特定する。
まずは、ファイルへのアクセスの特徴について説明する。特定部210は、ファイルの拡張子に応じたファイルに対するアクセスの特徴に基づいて、新たな割当先のプール203を特定する。
アクセスの特徴については、上述したように、順次アクセスとランダムアクセスとが挙げられる。順次アクセスとランダムアクセスの例とその拡張子の例については、実施の形態1で説明した例と同じであってよいため、詳細な説明を省略し、具体的な動作例について説明する。
より具体的には、特定部210は、ファイルの拡張子がデータベースを示すDBFである場合に、高速なプール203を新たな割当先のプールとして特定する。高速なプール203とは、SSDに基づき構築されたプール203である。また、特定部210は、ファイルの拡張子がMPEGやAVIである場合に、大容量のプール203をあらたな割当先のプール203として特定する。大容量のプール203とは、例えば、HDDに基づき構築されたプール203である。
また、特定部210は、いずれのプール203が高速なプール203であるか大容量のプール203であるかについては、上述したプール属性データ234を参照すればよい。また、特定部210は、プール管理データ233を参照して、各プール203を構築する物理ディスク202を特定することによりプール203の特性を特定してもよい。
そして、割当部211は、特定された割当先の物理ディスク202に論理ディスク204を割り当てる。具体的には、割当部211は、論理ディスク204に対応する物理ディスク202の記憶内容を、新たな割当先のプール203を構築する物理ディスク202に記憶させる。ここでの論理ディスク204に対応する物理ディスク202とは、論理ディスク204が特定部210による処理において割り当てられているプール203を構築する物理ディスク202である。そして、割当部211は、論理ディスク204に対応する物理ディスク202の記憶内容を削除する。これにより、論理ディスク204の記憶内容が移動する。また、割当部211は、論理ディスク管理データ232などの各種情報を更新する。
ここで、図8を用いて、データベースが記憶された論理ディスク204の割当先を変更する例を説明する。また、図9を用いて、動画ファイルが記憶された論理ディスク204の割当先を変更する例を説明する。
図8は、論理ディスク204の再割当例1を示す説明図である。特定部210は、図7に示した解析結果データ231を参照する。解析結果データ231によれば、論理ディスク204-1にデータベースが記憶されている。高性能なプール203であるプール203-2を新たな割当先のプール203として特定する。
そして、割当部211は、論理ディスク204-1に対応する物理ディスク202の記憶内容を、プール203-2を構築する物理ディスク202-4から物理ディスク202-6の空き領域に移動させる。これにより、論理ディスク204-1の割当先が変更される。また、割当部211は、論理ディスク管理データ232などの各種情報を更新する。
図9は、論理ディスク204の割り当て変更例2を示す説明図である。特定部210は、解析結果データ231によれば、論理ディスク204-2に動画ファイルが記憶されているため、大容量なプール203であるプール203-1を新たな割当先のプール203として特定する。
そして、割当部211は、論理ディスク204-2に対応する物理ディスク202の記憶内容を、プール203-1を構築する物理ディスク202-1から物理ディスク202-3の空き領域に移動させる。これにより、論理ディスク204-2の割当先が変更される。また、割当部211は、論理ディスク管理データ232などの各種情報を更新する。
ここまでは、ファイルへのアクセスの特徴に基づき新たな割当先のプール203が特定される例である。つぎに、ファイルの拡張子に応じたファイルのサイズの特徴に基づき新たな割当先のプール203が特定される例について説明する。
特定部210は、ファイルの拡張子に応じた論理ディスク204に記憶されたファイルのサイズの傾向に基づいて、割当先のプール203を特定する。上述したように、一般的に、データが動画ファイル、音声ファイル、画像ファイルである場合、データのサイズは大きい。また、一般的に、例えば、データがテキストファイルや文書ファイルである場合、データのサイズは小さい。
そして、HDDは、容量がSSDよりも大きい傾向にある。そこで、特定部210は、サイズが大きいデータの拡張子を検出した場合に、HDDに基づき構築されたプール203を割当先のプール203として特定する。また、特定部210は、サイズが小さいデータの拡張子を検出した場合に、SSDに基づき構築されたプール203を割当先のプール203として特定する。より具体的には、例えば、特定部210は、データの拡張子が動画ファイル、音声ファイル、画像ファイルを示す拡張子である場合に、HDDに基づき構築されたプール203を割当先のプール203として特定する。また、特定部210は、データの拡張子がテキストファイルや文書ファイルを示す拡張子である場合に、SSDに基づき構築されたプール203を割当先のプール203として特定する。
また、ここで、データの属性としてデータのサイズを用いる例を説明する。例えば、特定部110は、論理ディスク204に記憶されたデータのサイズに応じたアクセスの特徴に基づいて、論理ディスク204の新たな割当先のプール203を特定する。上述したように、一般的に、サイズが大きいデータは、順次アクセスされる。特定部110は、サイズが大きいデータを記憶する論理ディスク204の新たな割当先のプール203としてHDDに基づき構築されたプール203を特定する。また、上述したように、サイズが小さいデータが沢山アクセスされると、そのデータを記憶する論理ディスク204は、ランダムアクセスされる。そこで、特定部110は、サイズが小さいデータを記憶する論理ディスク204の新たな割当先のプール203としてSSDに基づき構築されたプール203を特定する。より具体的には、特定部110は、論理ディスク204に記憶されたデータのサイズが閾値以上であれば、割当先のプール203としてHDDに基づき構築されたプール203を特定する。また、例えば、特定部110は、論理ディスク204に記憶されたデータのサイズが閾値未満であれば、割当先プール203としてSSDに基づき構築されたプール203を特定する。
つぎに、割当部211は、特定された割当先のプール203に論理ディスク204を割り当てる。なお、割当部211による論理ディスク204を新たな割当先のプール203に割り当てる処理は、上述した場合とおなじであるため、詳細な説明を省略する。
図10は、実施の形態2にかかるコントローラ200の一動作例を示すフローチャートである。ここで、図10におけるコントローラ200による各ステップの処理結果は、メモリ201や物理ディスク202などのコントローラ200がアクセス可能な記憶部に記憶される。まず、図10において、コントローラ200は、解析部212によって、解析処理を行う(ステップS201)。解析処理を開始するタイミングについては、特に限定しない。例えば、このタイミングは、数時間に一回、一日一回、数か月に一回などのように所定周期ごとのタイミングであってもよい。また、このタイミングは、所定のタイミングであってもよい。所定のタイミングとは、例えば、通信ネットワークや入力装置等を介して指示されたタイミングである。また、所定のタイミングは、一回または所定回数であってもよい。
また、解析処理の詳細な例については、図11を用いて後述する。解析処理の処理結果については、上述したように解析結果データ231としてメモリ201や物理ディスク202などのコントローラ200がアクセス可能な記憶装置に記憶される。また、実施の形態1で説明したように、処理対象となる論理ディスク204については、いずれであってもよく、特に限定しない。ただし、ここでは1つの論理ディスク204に着目して各処理が行われる場合のフローについて説明する。
つぎに、コントローラ200は、特定部210によって、処理対象の論理ディスク204についての新たな割当先のプール203を特定する(ステップS202)。ステップS202において、コントローラ200は、例えば、解析結果データ231と、プール管理データ233と、プール属性データ234と、を参照して、割当先のプール203を特定する。
より具体的には、コントローラ200は、例えば、解析結果データ231から、処理対象の論理ディスク204に記憶されたファイルの属性を取得する。ここでは、ファイルの属性が拡張子である場合を例に挙げて説明する。コントローラ200は、ファイルの拡張子を用いて、ファイルへのアクセスの特徴とファイルのサイズの特徴に基づく割当先のプール203を特定する。コントローラ200は、ファイルの特性とファイルのサイズの両方を利用してもよい。または、コントローラ200は、ファイルの特性とファイルのサイズのいずれか一方を利用してもよい。アクセスの特徴やファイルのサイズの特徴の詳細例については、上述した通りである。
例えば、ファイルがデータベースの場合、アクセスの特徴がランダムアクセスである。ファイルが動画ファイルの場合、アクセスの特徴が順次アクセスである。動画ファイル、画像ファイル、音声ファイルなどのマルチメディアファイルである場合、ファイルのサイズは大きい。テキストファイルや文書ファイルなどの場合、ファイルのサイズは、小さい。
コントローラ200は、例えば、プール管理データ233とプール属性データ234とに基づいて、ファイルのアクセスの特徴とサイズの特徴に適した割当先のプール203を特定する。
したがって、解析結果データ231から、アクセスの特徴が順次アクセスであるデータの拡張子を検出した場合に、コントローラ200は、例えば、プール属性データ234に含まれる先読み機能を示す情報が「有」を示すプール203を割当先のプール203として特定する。解析結果データから、アクセスの特徴がランダムアクセスであるデータの拡張子を検出した場合に、コントローラ200は、例えば、プール属性データ234に含まれるアクセス速度を示す情報が「高」を示すプール203を割当先のプール203として特定する。
また、解析結果データ231から、ファイルのサイズが大きいデータの拡張子を検出した場合に、コントローラ200は、例えば、HDDに基づき構築されたプール203を割当先のプール203として特定する。また、解析結果データ231から、ファイルのサイズが小さいデータの拡張子を検出した場合に、コントローラ200は、例えば、SSDに基づき構築されたプール203を割当先のプール203として特定する。
また、コントローラ200は、各物理ディスク202の性能などを示す情報を参照して、アクセス速度、容量、先読み機能の有無などに基づき各プール203に割当先の候補としての順位をつけることにより、最適な割当先のプール203を特定してもよい。
また、コントローラ200は、ファイルの拡張子に応じたファイルへのアクセスの特徴やファイルのサイズの特徴に基づき、論理ディスク204を順位付けして割当先のプール204を特定してもよい。これにより、ストレージ装置21全体として最適な再配置を行うことができる。例えば、論理ディスク204-x(図示なし)に記憶されたファイルが画像ファイルであり、論理ディスク204-y(図示なし)に記憶されたファイルが動画ファイルである場合について説明する。なお、xは1以上の自然数であり、yはxと異なる1以上の自然数である。この例の場合、いずれの論理ディスク204に記憶されたファイルもアクセスの特徴は順次アクセスである。
このため、アクセスの特徴において、論理ディスク204-xと論理ディスク204-yとは同等である。一方、ファイルのサイズは、一般的に、動画ファイルの方が画像ファイルよりも大きい。このため、サイズの特徴において、論理ディスク204-yは、論理ディスク204-xよりも大きいファイルを有する。ここで、大容量のプール203と高速なプール203との2種類のプールがある場合について例を挙げる。大容量なプール203に対して論理ディスク204-xと論理ディスク204-yとの両方を割り当てることができる場合、コントローラ200は、両方の論理ディスク204を大容量のプール203に割り当てる。大容量なプール203に対して論理ディスク204-xと論理ディスク204-yとの両方を割り当てることができない場合、コントローラ200は、論理ディスク204-yについて、大容量なプール203を割当先のプールとして特定する。そして、コントローラ200は、論理ディスク204-xについて、高速なプール203を割当先プールとして特定する。
また、拡張子に応じたアクセスの特徴に基づいて、割当先のプール204を一意に特定できない場合、コントローラ200は、解析結果データ231からファイルのサイズを検出し、検出したファイルのサイズに基づいて、割当先のプール203を特定してもよい。このように、コントローラ200は、データの属性として拡張子とファイルのサイズなどのようにデータの異なる属性に基づいて、割当先のプール203を特定してもよい。
また、データの属性がファイルのサイズである場合に、ファイルのサイズに応じたアクセスの特徴に基づいて割当先のプール203が特定される例について説明する。上述したように、コントローラ200は、例えば、論理ディスク204に記憶されたデータのサイズが大きい場合、HDDに基づき構築されたプール203を新たな割当先のプール203として特定する。一方、上述したように、コントローラ200は、例えば、論理ディスク204に記憶されたデータのサイズが小さい場合SSDに基づき構築されたプール203を新たな割当先のプール203として特定する。
つぎに、コントローラ200は、割当部211によって、特定された割当先のプール203に、論理ディスク204を割り当てる(ステップS203)。なお、割当部211による論理ディスク204を新たな割当先のプール203に割り当てる処理は、上述した場合とおなじであるため、詳細な説明を省略する。
図11は、解析処理の具体的な処理手順の一例を示すフローチャートである。まず、図11において、コントローラ200は、例えば、処理の未対象のOSまたはファイルシステムがあるか否かを判断する(ステップS211)。コントローラ200は、処理の未対象のOSまたはファイルシステムがあると判断した場合(ステップS211:Yes)、処理の未対象のOSまたはファイルシステムから処理の対象のOSまたはファイルシステムを決定する(ステップS212)。ステップS211とステップS212において、上述したように、複数種類のOSやファイルシステムのフォーマットが予めメモリ201や記憶装置などのコントローラ200がアクセス可能な記憶領域に記憶される。そして、コントローラ200は、記憶された複数種類のフォーマットから未処理となっているフォーマットを順に処理の対象のフォーマットとして選択する。
コントローラ200は、対象のOSまたはファイルシステムのフォーマットに基づいて、処理対象の論理ディスク204の記憶内容を解析する(ステップS213)。そして、コントローラ200は、解析が成功したか否かを判断する(ステップS214)。より具体的には、ステップS214において、コントローラ200は、処理対象のOSまたはファイルシステムのフォーマットと、論理ディスク204のフォーマットが一致するか否かを判定する。コントローラ200は、一致する場合に、解析が成功したと判断する(ステップS214:Yes)。コントローラ200は、一致しない場合に、解析が成功していないと判断する(ステップS214:No)。
解析が成功していないと判断された場合(ステップS214:No)、コントローラ200は、ステップS211に戻る。そして、コントローラ200は、新たな処理対象のOSまたはファイルシステムについての解析を行う。一方、解析が成功したと判断された場合(ステップS214:Yes)、コントローラ200は、メタ情報を解析する(ステップS215)。解析結果については、メモリ201や物理ディスク202等のコントローラ200がアクセス可能な記憶部に記憶される。そして、コントローラ200は、ステップS215の後に、一連の解析処理を終了してリターンする。
ステップS211の説明に戻って、コントローラ200は、処理の未対象のOSまたはファイルシステムがないと判断した場合(ステップS211:No)、解析できないことを出力する(ステップS216)。ステップS216において、コントローラ200は、例えば、論理ディスク204を解析できないことを示す情報をメモリ201や記憶装置等の記憶部に記憶させてもよい。ストレージ装置21がディスプレイ等の出力装置を有する場合、コントローラ200は、その情報を出力装置に出力させてもよい。ステップS216の次に、コントローラ200は、エラー終了する。その情報は、例えば、新たに解析対象のOSやファイルシステムが追加される際の参照情報として利用される。
また、図10および図11において、ある一つの論理ディスク204を対象として処理が行われる例について説明したが、これに限らない。例えば、コントローラ200は、論理ディスク204が複数ある場合に、論理ディスク204を順に処理対象として選択してもよい。また、コントローラ200は、いずれの論理ディスク204を処理の対象とするかの指示を受け付けてもよい。
つぎに、本実施の形態2の効果について説明する。本実施の形態2におけるコントローラ200およびストレージ装置21は、論理ディスク204に記憶されたデータの属性に基づいて、新たな割当先のプール203に論理ディスク204を割り当てる。このように、論理ディスク204単位で割当先のプール203が変更されるため、上位端末に影響を与えることなく、物理ディスク202やプール203を効率よく使用することができるという効果が得られる。
物理ディスク202やプール203を効率よく使用することにより、上位端末が論理ディスク204へアクセス際の待ち時間等の低減を図ることができる。したがって、上位端末から論理ディスク204へのアクセスにかかる処理能力の改善を図ることができる。また、サーバ20からストレージ装置21へのアクセスが無い場合や少ない場合であっても論理ディスク204に対して事前に最適な性能のプール203に配置させることができ、ストレージ装置21全体として性能の最適化を図ることができる。
また、コントローラ200は、データの属性として拡張子、サイズ、作成日付、更新日付、アクセス日付、作成者、格納場所を用いる。これらの情報は、論理ディスク204のフォーマットなどを解析することによって得られる情報である。このため、コントローラ200は、上位端末からのアクセスを監視するような仕組みを有していなくても、物理ディスク202の性能を効率よく使用できる割当先のプール203に論理ディスク204を再配置させることができる。また、論理ディスク204にデータが記憶されていれば、コントローラ200が処理を行うタイミング等に制限がない。このため、いずれのタイミングであっても効率よく物理ディスク202を使用できるように論理ディスク204を再配置させることができる。
また、コントローラ200は、拡張子に応じたデータへのアクセスの特徴またはデータのサイズに応じたデータへのアクセス特徴に基づいて、割当先のプール203を特定する。これにより、上位端末等のアクセスを監視するような仕組みを設けなくとも、論理ディスク204へのアクセスの特徴に適したプール203へ論理ディスク204が再配置される。したがって、効率よくプール203を使用することができる。
また、コントローラ200は、拡張子に応じたデータのサイズに基づいて、割当先のプール203を特定する。ファイルの拡張子を示す情報が得られれば、ファイルのサイズを示す情報がなくとも、論理ディスク204に記憶されたファイルのサイズに適したプール203に論理ディスク204を再配置させることができる。また、複数の情報を用いるのではなく、拡張子を利用することによりコントローラ200による処理の複雑化を抑制することができる。
また、コントローラ200は、所定のフォーマットに基づいて、論理ディスク204に対応する物理ディスク202を解析することにより、論理ディスク204に記憶されたデータの属性を得る。これにより、上位端末からのアクセスに基づきデータの属性を得るような仕組みが設けられていなくとも、各データの属性が得られる。したがって、コントローラ200による処理の複雑化を抑制することができる。
また、以上説明した実施の形態1および2と、以下のような技術とが組み合わせられてもよい。例えば、コントローラ100,200は、上位端末からのアクセス頻度を監視する仕組みを有する。そして、コントローラ100,200は、アクセス頻度が高い論理ディスク204を処理の対象とする。コントローラ100,200は、処理の対象である論理ディスク204について実施の形態1または2における再配置を行う。また、例えば、コントローラ100,200は、各データや論理ディスク204のアクセス頻度に基づいて論理ディスク204の再配置を行う仕組みを有していてもよい。これにより、各物理ディスク202をより効率よく使用することができる。
また、以上説明した実施の形態1および2は、以下のように変形してもよい。特定部210は、論理ディスク204を割り当てる空き領域があるプール203から割当先のプール203を特定してもよい。または、特定部210は、複数の割当先のプール203を特定する。そして、割当部211は、複数の割当先のプール203のうち、論理ディスク204を割り当てる空き領域があるプール203に論理ディスクを割り当てる。
また、割当部211は、特定部210によって複数の論理ディスク204の割当先のプール203が特定された後に、各論理ディスク204を割当先のプール203に割り当ててもよい。
つぎに、実施の形態1にかかるコントローラを有するストレージ装置と実施の形態2にかかるストレージ装置21とがコンピュータで実現された場合について説明する。図12は、ストレージ装置をコンピュータで実現した場合のハードウェア構成例を示す説明図である。図12に示すように、ストレージ装置31は、CPU(Central Processing Unit)301と、ROM(Read Only Memory)302と、RAM303と、物理ディスク304と、通信インターフェース305と、を有する。各構成部は、バス306を介してそれぞれ接続される。
CPU301は、ストレージ装置31の全体を制御する。具体的には、例えば、CPU301は、OSを動作させてストレージ装置31の全体を制御してもよい。CPU301は、複数のコアを有していてもよい。
ストレージ装置31は、記憶部として、ROM302、RAM303および物理ディスク304などを有する。物理ディスク304は、実施の形態1または実施の形態2における物理ディスク202として利用される。物理ディスク304は、例えば、フラッシュメモリなどの半導体メモリ、HDD、SSDなどが挙げられる。具体的には、例えば、物理ディスク304はOSのプログラム、アプリケーションプログラム、本実施の形態1または2にかかる制御プログラムなどのプログラムを記憶する。または、ROM302は、アプリケーションプログラムを記憶する。また、ROM302は、本実施の形態1または2にかかる制御プログラムを記憶してもよい。そして、RAM303は、CPU301のワークエリアとして使用される。
また、CPU301は、物理ディスク304やROM302などに記憶されたプログラムをロードする。そして、CPU301は、プログラムにコーディングされている各処理を実行する。また、CPU301は、通信ネットワーク310を介して各種プログラムをダウンロードしてもよい。また、CPU301は、実施の形態1,2におけるコントローラ100,200の一部または全部として機能する。そして、CPU301は、プログラムに基づいて図2や図10に示すフローチャートにおける処理または命令を実行してもよい。
通信インターフェース305は、無線や有線の通信回線を通じてLANやWANなどの通信ネットワーク310に接続される。これにより、ストレージ装置31は、通信ネットワーク310を介して外部のコンピュータに接続される。通信インターフェース305は、通信ネットワーク310と自ストレージ装置31内部とのインターフェースを司る。そして、通信インターフェース305は、外部装置からのデータの入出力を制御する。
以上のように、本実施の形態1または2にかかるコントローラ100,200、ストレージ装置21は、図12に示されるコンピュータ・ハードウェアによって実現される。ただし、図12に示すハードウェア構成は一例であり、これら以外の構成要素が追加されてもよいし、一部の構成要素を含まなくてもよい。例えば、ストレージ装置31は、ドライブ装置などを有してもよい。そして、CPU301は、ドライブ装置などに装着された記録媒体からRAM303にプログラムやデータを読み出してもよい。記録媒体としては、光ディスク、フレキシブルディスク、磁気光ディスク、USB(Universal Serial Bus)メモリなどが挙げられる。また、例えば、ストレージ装置31は、キーボードやマウスなどの入力装置やディスプレイなどの出力装置を有していてもよい。
また、ストレージ装置31は、物理的に結合した一つの装置により実現される。または、ストレージ装置31は、物理的に分離された二つ以上の装置を有線または無線で接続されることにより実現されてもよい。
また、コントローラ100,200やストレージ装置21,31の実現方法には、様々な変形例がある。例えば、各装置は、構成要素毎にそれぞれ異なるコンピュータとプログラムとの任意の組み合わせにより実現されてもよい。また、各装置が備える複数の構成要素が、一つのコンピュータとプログラムとの任意の組み合わせにより実現されてもよい。
また、コントローラ100,200やストレージ装置21,31の各構成要素の一部または全部は、特定用途向けの回路で実現されてもよい。また、コントローラ100,200やストレージ装置21,31の一部または全部は、FPGA(Field Programmable Gate Array)のようなプロセッサなどを含む汎用の回路によって実現されてもよい。また、ストレージ装置21,31の一部または全部は、特定用途向けの回路や汎用の回路などの組み合わせによって実現されてもよい。また、これらの回路は、単一の集積回路であってもよい。または、これらの回路は、複数の集積回路に分割されてもよい。そして、複数の集積回路は、バスなどを介して接続されることにより構成されてもよい。
また、各装置の各構成要素の一部又は全部が複数のコンピュータや回路などにより実現される場合、複数のコンピュータや回路などは、集中配置されてもよいし、分散配置されてもよい。
各実施の形態で説明した制御方法は、コントローラ100,200が実行することにより実現される。また、制御方法は、予め用意されたプログラムをストレージ装置31などのコンピュータが実行することにより実現される。本制御プログラムは、HDD、フレキシブルディスク、光ディスク、フレキシブルディスク、磁気光ディスク、USBメモリなどのコンピュータで読み取り可能な記録媒体に記録される。そして、本制御プログラムは、コンピュータによって記録媒体から読み出されることによって実行される。また、制御プログラムは、通信ネットワーク310を介して配布されてもよい。
以上説明した、各実施の形態における各構成要素は、図12に示すコンピュータのストレージ装置31のように、その機能をハードウェア的に実現されてもよい。または、各構成要素は、プログラム制御に基づくコンピュータ装置、ファームウェアで実現されてもよい。
以上、各実施の形態を参照して本発明を説明したが、本発明は上記実施の形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が把握し得る様々な変更を適用した実施の形態を含み得る。本発明は、本明細書に記載された事項を必要に応じて適宜に組み合わせ、又は置換した実施の形態を含み得る。例えば、特定の実施の形態を用いて説明された事項は、矛盾を生じない範囲において、他の実施の形態に対しても適用され得る。例えば、複数の動作をフローチャートの形式で順番に記載してあるが、その記載の順番は複数の動作を実行する順番を限定するものではない。このため、各実施の形態を実施するときには、その複数の動作の順番を内容的に支障しない範囲で変更することができる。
2 ストレージシステム
20 サーバ
21,31 ストレージ装置
100,200 コントローラ
110,210 特定部
111,211 割当部
201 メモリ
202,304 物理ディスク
203 プール
204 論理ディスク
212 解析部
231 解析結果データ

Claims (9)

  1. 論理記憶領域に記憶されたデータの属性に基づいて、複数の記憶装置から割当先の記憶装置を特定する特定手段と、
    特定された前記割当先の記憶装置に前記論理記憶領域を割り当てる割当手段と、
    を備えることを特徴とするコントローラ。
  2. 前記データの属性は、当該データの拡張子を含むことを特徴とする請求項1に記載のコントローラ。
  3. 前記特定手段は、
    前記データの拡張子に応じた当該データに対するアクセスの特徴に基づいて、前記割当先の記憶装置を特定する、
    ことを特徴とする請求項2に記載のコントローラ。
  4. 前記データの属性は、当該データのサイズを含み、
    前記特定手段は、
    前記データのサイズに応じた当該データに対するアクセスの特徴に基づいて、前記割当先の記憶装置を特定する、
    ことを特徴とする請求項1に記載のコントローラ。
  5. 前記特定手段は、
    前記データの属性と前記複数の記憶装置の各々の性能とに基づいて、前記割当先の記憶装置を特定する、
    ことを特徴とする請求項1~4のいずれか一つに記載のコントローラ。
  6. 前記特定手段は、
    前記データの属性に基づいて、前記複数の記憶装置の少なくともいずれか一つに基づき各々が構築された複数のストレージプールから割当先のストレージプールを特定し、
    前記割当手段は、
    特定された前記割当先のストレージプールに前記論理記憶領域を割り当てる、
    ことを特徴とする請求項1~5のいずれか一つに記載のコントローラ。
  7. 複数の記憶装置と、
    コントローラと、
    を備え、
    前記コントローラは、
    論理記憶領域に記憶されたデータの属性に基づいて、前記複数の記憶装置から割当先の記憶装置を特定する特定手段と、
    特定された前記割当先の記憶装置に前記論理記憶領域を割り当てる割当手段と、
    を有することを特徴とするストレージ装置。
  8. 論理記憶領域に記憶されたデータの属性に基づいて、複数の記憶装置から割当先の記憶装置を特定し、
    特定された前記割当先の記憶装置に前記論理記憶領域を割り当てる、
    ことを特徴とする制御方法。
  9. コンピュータに、
    論理記憶領域に記憶されたデータの属性に基づいて、複数の記憶装置から割当先の記憶装置を特定し、
    特定された前記割当先の記憶装置に前記論理記憶領域を割り当てる、
    処理を実行させることを特徴とする制御プログラム。
JP2020119687A 2020-07-13 2020-07-13 コントローラ、ストレージ装置、制御方法、及び制御プログラム Pending JP2022016767A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020119687A JP2022016767A (ja) 2020-07-13 2020-07-13 コントローラ、ストレージ装置、制御方法、及び制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020119687A JP2022016767A (ja) 2020-07-13 2020-07-13 コントローラ、ストレージ装置、制御方法、及び制御プログラム

Publications (1)

Publication Number Publication Date
JP2022016767A true JP2022016767A (ja) 2022-01-25

Family

ID=80185593

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020119687A Pending JP2022016767A (ja) 2020-07-13 2020-07-13 コントローラ、ストレージ装置、制御方法、及び制御プログラム

Country Status (1)

Country Link
JP (1) JP2022016767A (ja)

Similar Documents

Publication Publication Date Title
JP7089830B2 (ja) 不揮発性メモリデータの書き込み管理のための装置、システム、及び、方法
JP6304406B2 (ja) ストレージ装置、プログラム、情報処理方法
US10031703B1 (en) Extent-based tiering for virtual storage using full LUNs
CN108459826B (zh) 一种处理io请求的方法及装置
US8954671B2 (en) Tiered storage device providing for migration of prioritized application specific data responsive to frequently referenced data
US8762674B2 (en) Storage in tiered environment for colder data segments
US9015413B2 (en) Management of data using inheritable attributes
US7933938B2 (en) File storage system, file storing method and file searching method therein
US9792073B2 (en) Method of LUN management in a solid state disk array
US8954658B1 (en) Method of LUN management in a solid state disk array
US11119912B2 (en) Ordering data updates for improving garbage collection being performed while performing the set of data updates
US20110225371A1 (en) Data prefetch for scsi referrals
US11093134B2 (en) Storage device, management method, and program in tiered storage system
WO2017141315A1 (ja) ストレージ装置
US20180341423A1 (en) Storage control device and information processing system
JP2012208916A (ja) 仮想ボリュームに領域を割り当てるための方法及び装置
CN113282234B (zh) 存储装置、存储系统、及其操作方法
US20170017507A1 (en) Storage, computer, and control method therefor
US20220197527A1 (en) Storage system and method of data amount reduction in storage system
JP2022016767A (ja) コントローラ、ストレージ装置、制御方法、及び制御プログラム
US9552292B2 (en) Apparatus and method for allocating virtual memory addresses to continuous physical addresses
JP6022116B1 (ja) 階層化ストレージシステム、ストレージコントローラ及びレプリケーション初期化方法
US11875051B2 (en) Contiguous data storage using group identifiers
US20230418798A1 (en) Information processing apparatus and information processing method
JP7310110B2 (ja) ストレージ及び情報処理システム。

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20211019