JP2018018271A - ストレージ制御装置、ストレージシステムおよびストレージ制御プログラム - Google Patents

ストレージ制御装置、ストレージシステムおよびストレージ制御プログラム Download PDF

Info

Publication number
JP2018018271A
JP2018018271A JP2016147628A JP2016147628A JP2018018271A JP 2018018271 A JP2018018271 A JP 2018018271A JP 2016147628 A JP2016147628 A JP 2016147628A JP 2016147628 A JP2016147628 A JP 2016147628A JP 2018018271 A JP2018018271 A JP 2018018271A
Authority
JP
Japan
Prior art keywords
storage device
data
storage
access
block
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
JP2016147628A
Other languages
English (en)
Inventor
浩希 木村
Hiroki Kimura
浩希 木村
寿治 巻田
Toshiharu Makita
寿治 巻田
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2016147628A priority Critical patent/JP2018018271A/ja
Priority to US15/659,801 priority patent/US10747432B2/en
Publication of JP2018018271A publication Critical patent/JP2018018271A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/068Hybrid storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory

Abstract

【課題】アクセス要求に対する応答性能を改善する。【解決手段】配置制御部11は、第1の記憶装置1に記憶されたデータブロックD0〜D4のうちデータブロックD1,D2を、第1の記憶装置1よりアクセス速度の低い第2の記憶装置2に二重化する。アクセス制御部12は、データブロックD2の読み出し要求を受けると、第1の記憶装置1における単位時間の入出力処理量が、入出力処理量の限界値に基づく閾値に達しているかを判定する。アクセス制御部12は、入出力処理量が閾値に達していない場合、データブロックD2を第1の記憶装置1から読み出す。一方、アクセス制御部12は、入出力処理量が閾値に達している場合、データブロックD2を第2の記憶装置2から読み出す。【選択図】図1

Description

本発明は、ストレージ制御装置、ストレージシステムおよびストレージ制御プログラムに関する。
記憶装置においては、その種別によって、また同じ種別でも機種によって、アクセス性能や容量当たりのコストに差がある。一般的に、アクセス性能が高いほど容量当たりのコストも高い。そのため、必要なアクセス性能や容量、コストの上限のバランスを考慮して、記憶装置の種別や機種が選択される。
このような観点から、アクセス性能の異なる複数の記憶装置を有効利用することが考えられている。例えば、ストレージ装置内の記憶装置をアクセス性能に応じて階層化し、階層間でデータを再配置する技術が知られている。この技術では、アクセス頻度の高いデータは性能の高い記憶装置に配置され、アクセス頻度の低いデータは性能の低い記憶装置に配置される。
また、記憶装置の階層化に関して、次のような技術が提案されている。例えば、QoS(Quality of Service)ファクタ測定値が所定の閾値より小さい場合に、第2のストレージ階層のデータが第1のストレージ階層にミラーリングされ、読み取りコマンドが第2のストレージ階層に送られるようにしたストレージシステムが提案されている。
また、次のような計算機システムも提案されている。この計算機システムでは、クラスの異なる2つの記憶装置に同一のファイルが作成され、読み込み要求に応じて、高いクラスの記憶装置からデータが読み出される。また、アクセス時にファイルが破損した場合、他方のファイルが同一クラスの別の記憶装置にコピーされる。
特開2011−165164号公報 特開平4−107750号公報
ところで、ストレージ装置では、アクセス性能の高い記憶装置を備えていたとしても、その記憶装置に対するアクセスが集中し、アクセス回数や転送データ量が許容量を超えてしまうと、アクセス要求に対する応答速度が低下してしまうという問題がある。
1つの側面では、本発明は、アクセス要求に対する応答性能を改善可能なストレージ制御装置、ストレージシステムおよびストレージ制御プログラムを提供することを目的とする。
1つの案では、配置制御部と、アクセス制御部とを有するストレージ制御装置が提供される。配置制御部は、第1の記憶装置に記憶された複数のデータブロックのうち1または複数の第1のデータブロックを、第1の記憶装置よりアクセス速度の低い第2の記憶装置に二重化する。アクセス制御部は、1または複数の第1のデータブロックのうち第2のデータブロックの読み出し要求を受けると、第1の記憶装置における単位時間の入出力処理量が、入出力処理量の限界値に基づく閾値に達しているかを判定し、入出力処理量が閾値に達していない場合、第2のデータブロックを第1の記憶装置から読み出し、入出力処理量が閾値に達している場合、第2のデータブロックを第2の記憶装置から読み出す。
また、1つの案では、管理装置と、ストレージ制御装置とを有するストレージシステムが提供される。管理装置は、論理記憶領域に含まれる複数のデータブロックのうち、アクセス頻度が高い1または複数の第1のデータブロックが第1の記憶装置に格納され、アクセス頻度が低い1または複数の第2のデータブロックが第1の記憶装置よりアクセス性能の低い第2の記憶装置に格納され、1または複数の第1のデータブロックのうち、1または複数の第3のデータブロックが第2の記憶装置に二重化されるように指示する指示情報を送信する配置決定部を有する。また、ストレージ制御装置は、配置制御部と、アクセス制御部とを有する。配置制御部は、指示情報に基づいて、第1の記憶装置および第2の記憶装置における複数のデータブロックの格納位置を制御する。アクセス制御部は、1または複数の第3のデータブロックのうち第4のデータブロックの読み出し要求を受けると、第1の記憶装置における単位時間の入出力処理量が、入出力処理量の限界値に基づく閾値に達しているかを判定し、入出力処理量が閾値に達していない場合、第4のデータブロックを第1の記憶装置から読み出し、入出力処理量が閾値に達している場合、第4のデータブロックを第2の記憶装置から読み出す。
さらに、1つの案では、上記のストレージ制御装置と同様の処理をコンピュータに実行させるストレージ制御プログラムが提供される。
1つの側面では、アクセス要求に対する応答性能を改善できる。
第1の実施の形態に係るストレージ制御装置の構成例および処理例を示す図である。 第2の実施の形態に係るストレージシステムの構成例を示す図である。 ストレージ装置のハードウェア構成例を示す図である。 管理サーバのハードウェア構成例を示す図である。 記憶装置の階層制御を説明するための図である。 階層制御の問題点とその解決手段について示す図である。 ストレージシステムが備える処理機能の構成例を示すブロック図である。 論理ブロック管理テーブルの構成例を示す図である。 二重化ブロック管理テーブルの構成例を示す図である。 アクセス状況管理テーブルの構成例を示す図である。 デバイス性能管理テーブルの構成例を示す図である。 フラグ管理テーブルの構成例を示す図である。 構成管理テーブルの構成例を示す図である。 コマンド管理テーブルの構成例を示す図である。 データの二重化方法を説明するための図である。 ブロック管理部およびデータ配置制御部の処理手順の例を示すシーケンス図である。 二重化ブロックの選択処理手順の例を示すフローチャートである。 デバイス性能管理テーブルの作成方法の例を示す図である。 処理量の評価処理手順の例を示すフローチャートである。 二重化ブロックからのデータ読み出し処理について説明するための図である。 二重化ブロックに対するデータ更新処理について説明するための図である。 業務サーバからの要求に応じたアクセス処理手順の例を示すフローチャートである。
以下、本発明の実施の形態について図面を参照して説明する。
〔第1の実施の形態〕
図1は、第1の実施の形態に係るストレージ制御装置の構成例および処理例を示す図である。図1に示すストレージ制御装置10には、第1の記憶装置1と第2の記憶装置2とが接続されている。第2の記憶装置2のアクセス速度は、第1の記憶装置1のアクセス速度より低い。
ストレージ制御装置10は、配置制御部11とアクセス制御部12とを有する。配置制御部11とアクセス制御部12の処理は、例えば、ストレージ制御装置10が備えるプロセッサが所定のプログラムを実行することで実現される。
配置制御部11は、第1の記憶装置1に記憶された複数のデータブロックのうち、1または複数の第1のデータブロックを、第2の記憶装置2に二重化する(ステップS1)。図1の例では、第1の記憶装置1に記憶されたデータブロックD0〜D4のうち、データブロックD1,D2が第2の記憶装置2にも記憶されている。
アクセス制御部12は、第1の記憶装置1に記憶された、上記の1または複数の第1のデータブロックのうち、第2のデータブロックの読み出し要求を受ける。すると、アクセス制御部12は、第1の記憶装置1における単位時間の入出力処理量が、この入出力処理量の限界値に基づく閾値に達しているかを判定する。図1の例では、アクセス制御部12は、データブロックD2の読み出し要求を受け(ステップS2)、これに応じて、第1の記憶装置1における単位時間の入出力処理量が上記の閾値に達しているかを判定する(ステップS3)。なお、入出力処理量の限界値とは、第1の記憶装置1が有する性能に基づいて決定される値である。
ここで、図示しないが、入出力処理量が閾値に達していない場合には、アクセス制御部12は、データブロックD2を第1の記憶装置1から読み出す。これにより、読み出し要求から短時間でデータブロックD2の読み出しを完了できる。しかし、入出力処理量が閾値に達している場合には、アクセス制御部12は、データブロックD2を第1の記憶装置1ではなく、第2の記憶装置2から読み出す(ステップS4)。
仮に、第1の記憶装置1における単位時間の入出力処理量が閾値に達している場合に、第1の記憶装置1からデータブロックD2を読み出そうとすると、第1の記憶装置1の本来の応答性能が発揮されず、応答速度が低下する可能性が高い。これに対して、上記のように、第1の記憶装置1における単位時間の入出力処理量が閾値に達している場合には、第2の記憶装置2から同じデータブロックD2を読み出すことで、記憶装置間でアクセスが分散され、第1の記憶装置1の負荷を増大させずに済む。したがって、全体として、第1の記憶装置1に記憶されているデータブロックの読み出し性能の低下幅を抑制できる可能性が高まり、読み出し要求に対する応答性能を改善できる。
〔第2の実施の形態〕
図2は、第2の実施の形態に係るストレージシステムの構成例を示す図である。図2に示すストレージシステムは、ストレージ装置100、業務サーバ200および管理サーバ300を有する。また、ストレージ装置100は、CM(Controller Module)110とDE(Drive Enclosure)120とを有する。なお、ストレージ装置100は、2台以上のCMを有していてもよいし、2台以上のDEを有していてもよい。
DE120は、業務サーバ200からのアクセス対象のデータを記憶する複数の記憶装置を有する。後述するように、DE120には、アクセス性能の異なる記憶装置が搭載されている。
CM110は、業務サーバ200からのアクセス要求に応じてDE120内の記憶装置にアクセスするストレージ制御装置である。また、CM110の運用は、管理サーバ300によって管理される。例えば、CM110は、管理サーバ300からの指示に応じて、論理ボリュームのデータをDE120内の記憶装置から別の記憶装置に再配置する。なお、CM110は、図1に示したストレージ制御装置10の一例である。
業務サーバ200は、例えば、SAN(Storage Area Network)を介してCM110と接続されている。業務サーバ200は、各種の業務に関する処理を実行するサーバコンピュータである。業務サーバ200は、業務に関する処理に伴って、CM110から提供される論理ボリュームに対してアクセスする。
管理サーバ300は、例えば、LAN(Local Area Network)を介してCM110と接続されている。管理サーバ300は、ストレージ装置100の運用を管理するサーバコンピュータである。管理サーバ300は、例えば、ストレージ装置100における階層制御を行う。階層制御とは、ストレージ装置100に記憶されるデータが、それぞれ異なるアクセス性能を有する記憶装置によって実現される複数の記憶領域のうち、そのデータに対するアクセス頻度に応じた記憶領域に配置されるように制御する処理である。
図3は、ストレージ装置のハードウェア構成例を示す図である。
CM110は、プロセッサ111、RAM(Random Access Memory)112、SSD113、CA(Channel Adapter)114、通信インタフェース(I/F)115およびDI(Drive Interface)116を有する。
プロセッサ111は、CM110の処理を統括的に制御する。プロセッサ111は、例えば、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)である。また、プロセッサ111は、CPU、DSP、ASIC、FPGAなどの2以上の要素の組合せであってもよい。
RAM112は、CM110の主記憶装置として使用される。RAM112には、プロセッサ111に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に記憶される。また、RAM112には、プロセッサ111による処理に用いる各種データが一時的に記憶される。
SSD113は、CM110の補助記憶装置として使用される。SSD113には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、CM110は、補助記憶装置として、SSD113の代わりにHDD(Hard Disk Drive)を備えていてもよい。
CA114は、業務サーバ200と通信するためのインタフェース回路である。通信インタフェース115は、管理サーバ300と通信するためのインタフェース回路である。DI116は、DE120内の記憶装置と通信するためのインタフェース回路である。
DE120には、アクセス性能の異なる複数の記憶装置が搭載されている。本実施の形態では、DE120には、SSD、オンラインディスクと呼ばれるHDD、ニアラインディスクと呼ばれるHDDという3種類の記憶装置が、それぞれ複数搭載されている。なお、SSD、オンラインディスク、ニアラインディスクの順にアクセス性能が高い。
図4は、管理サーバのハードウェア構成例を示す図である。管理サーバ300は、プロセッサ301、RAM302、HDD303、グラフィックインタフェース(I/F)304、入力インタフェース(I/F)305、読み取り装置306および通信インタフェース(I/F)307を有する。
プロセッサ301は、管理サーバ300の処理を統括的に制御する。プロセッサ301は、例えば、CPU、DSP、ASIC、FPGAである。また、プロセッサ301は、CPU、DSP、ASIC、FPGAなどの2以上の要素の組合せであってもよい。
RAM302は、管理サーバ300の主記憶装置として使用される。RAM302には、プロセッサ301に実行させるOSのプログラムやアプリケーションプログラムの少なくとも一部が一時的に記憶される。また、RAM302には、プロセッサ301による処理に用いる各種データが一時的に記憶される。
HDD303は、管理サーバ300の補助記憶装置として使用される。HDD303には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、管理サーバ300は、補助記憶装置として、HDD303の代わりにSSDを備えていてもよい。
グラフィックインタフェース304には、表示装置304aが接続されている。グラフィックインタフェース304は、プロセッサ301からの命令にしたがって、画像を表示装置304aの画面に表示させる。表示装置304aとしては、液晶ディスプレイや有機EL(ElectroLuminescence)ディスプレイなどがある。
入力インタフェース305には、入力装置305aが接続されている。入力インタフェース305は、入力装置305aから出力される信号をプロセッサ301に送信する。入力装置305aとしては、キーボードやポインティングデバイスなどがある。ポインティングデバイスとしては、マウス、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
読み取り装置306には、可搬型記録媒体306aが脱着される。読み取り装置306は、可搬型記録媒体306aに記録されたデータを読み取ってプロセッサ301に送信する。可搬型記録媒体306aとしては、光ディスク、光磁気ディスク、半導体メモリなどがある。
通信インタフェース307は、ストレージ装置100のCM110との間でデータを送受信する。
なお、業務サーバ200も管理サーバ300と同様のハードウェアにより実現できる。
図5は、記憶装置の階層制御を説明するための図である。CM110は、業務サーバ200からのアクセス対象となる論理ボリューム151を生成する。また、CM110には、ストレージプール152が設定される。ストレージプール152は、論理ボリューム151に対して物理領域として割り当てられる記憶領域であり、DE120の記憶装置によって実現される。
なお、1つのストレージプールの物理領域を複数の論理ボリュームに割り当てることも可能である。ただし、以下の説明では、1つのストレージプール152の物理領域が1つの論理ボリューム151に割り当てられているものとする。
ストレージプール152は、第1のサブプール152a、第2のサブプール152bおよび第3のサブプール152cに分割されている。第1のサブプール152aは、1台以上のSSDによって実現される。第2のサブプール152bは、1台以上のオンラインディスクによって実現される。第3のサブプール152cは、1台以上のニアラインディスクによって実現される。なお、例えば、1つのサブプールは、同じアクセス性能の記憶装置によって構成される1つ以上のRAID(Redundant Arrays of Inexpensive Disks)グループとして定義される。
このような構成により、第1のサブプール152a、第2のサブプール152b、第3のサブプール152cの順にアクセス性能が高い。すなわち、ストレージプール152は、アクセス性能の異なる3つの記憶領域に階層化される。なお、以下の説明では、アクセス性能が相対的に高いサブプールを「上位階層のサブプール」、アクセス性能が相対的に低いサブプールを「下位階層のサブプール」と記載する場合がある。
論理ボリューム151の領域は、一定サイズの論理ブロックに分割されて管理される。各論理ブロックは、論理アドレスによって識別される。一方、第1のサブプール152a、第2のサブプール152b、第3のサブプール152cの各領域も、論理ブロックと同じサイズのブロックに分割されて管理される。以下、各サブプールのブロックを「物理ブロック」と記載する。各物理ブロックは、サブプールごとの物理アドレスによって識別される。
各論理ブロックには、第1のサブプール152a、第2のサブプール152b、第3のサブプール152cのいずれかの物理ブロックが割り当てられる。管理サーバ300は、論理ボリューム151の論理ブロックが、この論理ブロックに対する業務サーバ200からのアクセス頻度が高いほど、アクセス性能が高いサブプールに割り当てられるように制御する。例えば、管理サーバ300は、ある論理ブロックのアクセス頻度が低下した場合に、この論理ブロックに対する物理ブロックの割り当て先を、アクセス性能がより低いサブプールに変更する。この場合、CM110は、管理サーバ300からの指示に応じて、この論理ブロックに対応するデータを、割り当て変更前のサブプール上の物理ブロックから割り当て変更後のサブプール上の物理ブロックへ移動させる。
このような階層制御により、業務サーバ200からのアクセス頻度が高いデータほど、上位階層のサブプールに配置され、業務サーバ200からのアクセス要求に対する応答速度が高くなる。その結果、全体として業務サーバ200からのアクセス要求に対する応答性能が向上する。しかしながら、階層制御では、アクセス性能の高いサブプールにアクセスが集中し、その結果として応答速度が低下するという問題がある。
図6は、階層制御の問題点とその解決手段について示す図である。図6では例として、第1のサブプール152aと第2のサブプール152bとの間の階層制御について示している。
図6の上段に示すように、論理ボリューム151の一部の論理ブロックに対して、第1のサブプール152aの物理ブロックが割り当てられ、他の論理ブロックに対して、第2のサブプール152bの物理ブロックが割り当てられている。第1のサブプール152aには、第2のサブプール152bと比較して、業務サーバ200からのアクセス頻度の高いデータが格納される。また、第2のサブプール152bの物理ブロックが割り当てられた論理ブロックに対するアクセス頻度が高くなると、その割り当て先が第1のサブプール152aに変更され、対応するデータが第1のサブプール152aに移動される。
このように、上位階層のサブプールには、業務サーバ200からのアクセス頻度が高いデータばかりが格納されるので、このサブプールにアクセスが集中しやすい。そのため、論理ボリューム151内のデータ間でのアクセス頻度の偏りが大きくなった場合には、上位階層のサブプールへのアクセスが過度に集中する場合がある。そして、上位階層のサブプールに対するアクセス回数や転送データ量が許容能力を超えてしまうと、アクセス要求に対する応答速度が低下してしまい、階層制御によるメリットが損なわれるという問題がある。
このような問題は、例えば、特定のデータにアクセスが集中しやすいようなシステムで顕著に発生する。特に、読み込みアクセスが支配的なシステムで発生しやすい。このようなシステムの例として、動画などのコンテンツの配信サービスを提供するシステムが考えられる。例えば、配置されるコンテンツのうち、人気のあるコンテンツにはアクセスが集中しやすい。また、SNS(Social Networking Service)などを通じた情報の拡散により、突発的に特定のコンテンツにのみアクセスが集中する場合もある。
ところで、上記の問題の一方で、下位階層のサブプールでは、上位階層のサブプールへのアクセスが集中していても、アクセス回数や転送データ量が少なく、その能力に余裕がある場合があり得る。
そこで、図6の下段に示すように、本実施の形態のCM110は、上位階層のサブプールに格納されたデータの少なくとも一部を、下位階層のサブプールにも格納してデータを二重化しておく。そして、CM110は、上位階層のサブプールに格納されたデータの読み出しが要求された際に、上位階層のサブプールにおける現在のIO(In/Out)処理量が、サブプールを構成する記憶装置固有の性能に基づく限界値に達しているかを判定する。CM110は、現在のIO処理量が限界値に達していない場合には、従来通り上位階層のサブプールからデータを読み出すが、現在のIO処理量が限界値に達している場合には、上位階層のサブプールの代わりに下位階層のサブプールからデータを読み出す。
これにより、上位階層のサブプール内のデータに対するアクセス要求が集中した場合に、下位階層のサブプールでの能力の余裕分を利用して、それらのアクセスの一部を下位階層のサブプールに分散させることができる。その結果、全体として、アクセス要求に対する処理効率が向上し、アクセスの集中に起因する応答速度の低下幅を低減することができる。
なお、上記の説明では、CM110は現在のIO処理量が限界値に達しているかを判定するものとしたが、現在のIO処理量の測定誤差などを考慮して、現在のIO処理量が限界値に近づいているかを判定してもよい。
図7は、ストレージシステムが備える処理機能の構成例を示すブロック図である。
CM110は、記憶部130、ブロック管理部141、性能管理部142、ボリュームアクセス制御部143およびディスクアクセス制御部144を有する。記憶部130は、例えば、RAM112やSSD113など、CM110が備える記憶装置の記憶領域によって実現される。ブロック管理部141、性能管理部142、ボリュームアクセス制御部143およびディスクアクセス制御部144の処理は、例えば、プロセッサ111が所定のプログラムを実行することで実現される。なお、ブロック管理部141は、図1に示した配置制御部11の一例であり、性能管理部142およびボリュームアクセス制御部143は、図1に示したアクセス制御部12の一例である。
管理サーバ300は、データ配置制御部310を有する。データ配置制御部310の処理は、例えば、プロセッサ301が所定のプログラムを実行することで実現される。
CM110の記憶部130には、論理ブロック管理テーブル131、二重化ブロック管理テーブル132、アクセス状況管理テーブル133、デバイス性能管理テーブル134、フラグ管理テーブル135および構成管理テーブル136が記憶される。ここで、これらの各テーブルの構成について説明する。
図8は、論理ブロック管理テーブルの構成例を示す図である。論理ブロック管理テーブル131は、論理ボリュームの各論理ブロックと、それらに割り当てられているサブプールの物理ブロックとの対応関係を管理するためのテーブル情報である。論理ブロック管理テーブル131は、ボリューム番号、論理ブロック番号および物理位置の各項目を有する。
ボリューム番号の項目には、業務サーバ200からのアクセス対象となる論理ボリュームの識別番号が登録される。論理ブロック番号の項目には、論理ボリューム上の論理ブロックの識別番号(アドレス)が登録される。物理位置の項目には、「X−Y」という形式のデータが登録される。Xは、論理ブロックに割り当てられたサブプールの識別番号を示し、Yは、そのサブプール上の物理ブロックの識別番号(アドレス)を示す。例えば、「0−0」は、サブプール「0」の物理ブロック「0」を示す。また、論理ブロックに対応するデータが2つのサブプールに二重化されている場合には、物理位置の項目には「LB」と登録される。
なお、CM110は、例えば、論理ボリュームを新たに作成したとき、その論理ボリュームの全論理ブロックに対応するレコードを論理ブロック管理テーブル131に追加する。この場合、新たな論理ボリュームには、初期状態では物理ブロックが割り当てられていないことから、追加された各レコードの物理位置の項目には、例えば「NULL」と登録される。そして、CM110は、新たな論理ボリュームの論理ブロックに初めてデータの書き込みが要求されたとき、この論理ブロックに物理ブロックを割り当て、割り当てた物理ブロックの情報を物理位置の項目に登録する。
図9は、二重化ブロック管理テーブルの構成例を示す図である。二重化ブロック管理テーブル132は、二重化ブロックに対応するデータの格納位置を管理するためのテーブル情報である。「二重化ブロック」とは、論理ボリュームの論理ブロックのうち、対応するデータが2つのサブプールに二重化されている論理ブロックである。二重化ブロック管理テーブル132には、論理ブロック管理テーブル131と同様のボリューム番号および論理ブロック番号の各項目に対して、物理位置の項目が対応付けられている。
物理位置の項目には、物理ブロックの位置を示す「X−Y」という形式のデータが2つ登録される。論理ブロック管理テーブル131の物理ブロックの場合と同様に、Xは、論理ブロックに割り当てられたサブプールの識別番号を示し、Yは、そのサブプール上の物理ブロックの識別番号(アドレス)を示す。
なお、二重化ブロック管理テーブル132には、作成された各論理ボリュームの論理ブロックのうち、二重化ブロックについてのレコードのみが登録される。
図10は、アクセス状況管理テーブルの構成例を示す図である。アクセス状況管理テーブル133は、論理ボリュームの各論理ブロックに対する業務サーバ200からのアクセス頻度を管理するためのテーブル情報である。アクセス状況管理テーブル133には、論理ブロック管理テーブル131と同様のボリューム番号および論理ブロック番号の各項目に対して、アクセス回数の項目が対応付けられている。
アクセス回数の項目には、対応する論理ブロックに対して業務サーバ200から一定時間内にアクセスされた回数が登録される。本実施の形態では、アクセス回数の項目には、データの読み出し回数が登録されるものとする。実際の処理では、アクセス回数の項目に登録された数値は、対応する論理ブロックからデータが読み出されるたびにボリュームアクセス制御部143によってカウントアップされる。そして、アクセス回数の項目に登録された数値は、ブロック管理部141によって一定時間間隔で「0」にクリアされる。
なお、アクセス状況管理テーブル133には、アクセス回数として、読み出し回数だけでなく書き込み回数も登録されてもよい。
図11は、デバイス性能管理テーブルの構成例を示す図である。デバイス性能管理テーブル134は、サブプールを構成する記憶装置ごとの性能(最大性能)を管理するためのテーブル情報である。デバイス性能管理テーブル134には、SSD、オンラインディスク、ニアラインディスクのそれぞれについて、最大リードブロック数、最大ライトブロック数、最大リードコマンド数および最大ライトコマンド数が登録される。
最大リードブロック数は、各記憶装置に固有のリードレスポンス時間当たりに読み出しできる最大ブロック数を示す。最大ライトブロック数は、各記憶装置に固有のライトレスポンス時間当たりに書き込みできる最大ブロック数を示す。最大リードコマンド数は、リードレスポンス時間当たりに処理できる最大リードコマンド数を示す。最大ライトコマンド数は、ライトレスポンス時間当たりに処理できる最大ライトコマンド数を示す。
デバイス性能管理テーブル134に登録される情報は、各記憶装置の仕様情報としてあらかじめ与えられる情報であってもよいし、各記憶装置の仕様情報や実測値に基づいて計算されてもよい。そして、デバイス性能管理テーブル134の情報は、各サブプールにおける現在の処理量が限界値に達しているかを判定するための基準値として使用される。最大リードブロック数および最大ライトブロック数は、シーケンシャルアクセスに関する基準値として使用される。また、最大リードコマンド数および最大ライトコマンド数は、ランダムアクセスに関する基準値として使用される。
図12は、フラグ管理テーブルの構成例を示す図である。フラグ管理テーブル135は、各サブプールにおける現在の処理量に関する指標を管理するためのテーブル情報である。フラグ管理テーブル135は、サブプール番号と処理量フラグの各項目を有する。
サブプール番号の項目には、サブプールの識別番号が登録される。処理量フラグは、サブプールにおける現在の処理量が限界値に達しているか否かを示すフラグ情報である。処理量フラグは、現在の処理量が限界値に達していない場合、「0」に設定され、現在の処理量が限界値に達している場合、「1」に設定される。
図13は、構成管理テーブルの構成例を示す図である。構成管理テーブル136は、ディスク番号、ディスク種別、サブプール番号およびボリューム番号の各項目を有する。ディスク番号の項目には、DE120に搭載された記憶装置の識別番号が登録される。ディスク種別の項目には、記憶装置の種別が登録される。本実施の形態では、ディスク種別としては、SSD、オンラインディスク、ニアラインディスクがある。サブプール番号の項目には、サブプールの識別番号が登録される。ボリューム番号の項目には、論理ボリュームの識別番号が登録される。
構成管理テーブル136によれば、サブプールを構成する記憶装置の識別番号および種別と、論理ボリュームへの割り当て対象となるサブプールとが管理される。例えば図13では、サブプール番号「0」のサブプールは、ディスク番号「0」,「1」のSSDによって構成されている。また、ボリューム番号「0」の論理ボリュームには、サブプール番号「0」,「1」,「2」のサブプールのいずれかの物理ブロックが割り当てられる。
次に、DE120に記憶され、CM110から参照される情報について示す。DE120に搭載された各記憶装置には、コマンド管理テーブル125が記憶されている。コマンド管理テーブル125は、例えば、記憶装置の内部において、記録媒体にアクセスするためのコントローラに接続されたRAMに記憶される。
図14は、コマンド管理テーブルの構成例を示す図である。コマンド管理テーブル125は、コマンド、アドレスおよびブロックサイズの各項目を有する。
コマンド管理テーブル125は、対応する記憶装置において実行中のコマンドごとのレコードを有する。コマンドの項目には、実行中のコマンドがリードコマンドとライトコマンドのどちらであるかを示す情報が登録される。アドレスの項目には、コマンドに付加されている先頭ブロックのアドレスが登録され、ブロックサイズの項目には、コマンドに付加されているブロックサイズが登録される。先頭ブロックのアドレスは、書き込み先領域または読み出し元領域の先頭位置を示し、ブロックサイズは、先頭位置からの読み出しデータサイズまたは書き込みデータサイズを示す。
各記憶装置は、CM110からの情報取得コマンドに応じて、コマンド管理テーブル125に登録された情報を返信する機能を備えている。返信された情報は、各サブプールにおける現在の処理量を推計するために利用される。
次に、CM110のブロック管理部141および管理サーバ300のデータ配置制御部310の処理について説明する。
ブロック管理部141は、一定周期の情報送信タイミングにおいて、その時点での論理ブロック管理テーブル131、二重化ブロック管理テーブル132およびアクセス状況管理テーブル133の内容を管理サーバ300に送信する。管理サーバ300のデータ配置制御部310は、ブロック管理部141から送信された情報を基に、サブプール間でデータを移動させるべき物理ブロックやコピーさせるべき物理ブロックを特定する。
ブロック管理部141は、特定された物理ブロックについてのデータ移動やデータコピーの指示をデータ配置制御部310から受信し、指示に基づく処理を実行する。また、ブロック管理部141は、データ移動やデータコピーに応じて内容が更新された論理ブロック管理テーブル131および二重化ブロック管理テーブル132をデータ配置制御部310から受信し、受信した情報によって記憶部130の対応する情報を更新する。
図15は、データの二重化方法を説明するための図である。論理ボリューム151内の各論理ブロックのデータをストレージプール152内のどの物理ブロックに配置するかは、管理サーバ300のデータ配置制御部310によって決定される。
まず、データ配置制御部310は、アクセス頻度が高い論理ブロックのデータを第1のサブプール152aに配置する。また、データ配置制御部310は、アクセス頻度が中程度の論理ブロックのデータを第2のサブプール152bに配置する。また、データ配置制御部310は、アクセス頻度が低い論理ブロックのデータを第3のサブプール152cに配置する。本実施の形態では、例として、一定の比率で各サブプールにデータが割り振られるものとする。
アクセス頻度は定期的に計測され、計測されたアクセス頻度に基づいて、必要に応じてサブプール間でデータが移動される。なお、計測されるアクセス頻度は、読み出し頻度であってもよいし、読み出しと書き込みの両方のアクセスの頻度であってもよい。
データ配置制御部310は、上記のように各論理ブロックのデータの配置先を決定した上で、第1のサブプール152aのデータの少なくとも一部と、第2のサブプール152bのデータの少なくとも一部を二重化するように決定する。データ配置制御部310は、上位階層のサブプールに配置された論理ブロックのデータのうち、読み出し頻度が上位のデータを、1つ下位の階層のサブプールの空き領域にコピーするように決定する。すなわち、第1のサブプール152aに配置された論理ブロックのデータのうち、読み出し頻度が上位のデータが、第2のサブプール152bの空き領域にコピーされる。また、第2のサブプール152bに配置された論理ブロックのデータのうち、読み出し頻度が上位のデータが、第3のサブプール152cの空き領域にコピーされる。
なお、データの二重化の目的は読み出しアクセスを分散させることなので、二重化の対象とするデータは論理ブロックの読み出し頻度に基づいて決定されればよい。
このように、上位階層のサブプールの論理ブロックのうち、読み出し頻度が上位の論理ブロックが二重化ブロックとして選択される。これにより、上位階層のサブプール内のデータに対する読み出し要求が集中したときに、読み出し先を下位階層のサブプールに分散させることができる可能性を高くすることができる。
図16は、ブロック管理部およびデータ配置制御部の処理手順の例を示すシーケンス図である。図16の処理は、一定時間(例えば、0.5秒)間隔で繰り返し実行される。
[ステップS11]CM110のブロック管理部141は、論理ブロック管理テーブル131、二重化ブロック管理テーブル132およびアクセス状況管理テーブル133の内容を管理サーバ300に送信する。また、ブロック管理部141は、これらの送信後に、アクセス状況管理テーブル133のリード回数およびライト回数の値を「0」にリセットする。
なお、次のステップS12以降の処理は、論理ボリュームごとに実行される。また、例えば、複数のストレージプールが存在し、1つのストレージプールに1以上の論理ボリュームが割り当てられている場合には、ステップS12以降の処理はストレージプールごとに実行されてもよい。
[ステップS12]管理サーバ300のデータ配置制御部310は、論理ブロック管理テーブル131、二重化ブロック管理テーブル132およびアクセス状況管理テーブル133の内容を受信する。データ配置制御部310は、論理ブロック管理テーブル131のレコードを、アクセス状況管理テーブル133に登録された、対応する論理ブロックについてのアクセス回数の多い順にソートすることで、新たな論理ブロック管理テーブルを作成する。なお、作成された新たな論理ブロック管理テーブルでは、物理位置の項目は空欄となっている。
[ステップS13]データ配置制御部310は、新たな論理ブロック管理テーブルにおける各論理ブロックに対して、先頭側から所定の割合で、第1のサブプール152a、第2のサブプール152b、第3のサブプール152cを順に割り当てる。例えば、データ配置制御部310は、先頭から15%分の論理ブロックに第1のサブプール152aを割り当て、次の35%分の論理ブロックに第2のサブプール152bを割り当て、残りの論理ブロックに第3のサブプール152cを割り当てる。
そして、データ配置制御部310は、各論理ブロックについて次のような処理を実行することで、各論理ブロックに物理ブロックを割り当てる。
データ配置制御部310は、ステップS12で受信した論理ブロック管理テーブル131および二重化ブロック管理テーブル132における、該当論理ブロックについてのレコードを参照する。データ配置制御部310は、該当論理ブロックに現在割り当てられているサブプールが、ステップS13で割り当てたサブプールと同じであるかを判定する。なお、該当論理ブロックが二重化ブロックになっている場合には、割り当てられた2つのサブプールのうち上位階層側のサブプールの識別情報が判定に利用される。
データ配置制御部310は、サブプールが同じである場合、参照したレコードに登録されている物理位置の情報を、新たな論理ブロック管理テーブルにおける物理位置の項目にコピーする。一方、データ配置制御部310は、サブプールが異なる場合、ステップS13で割り当てたサブプールの空き物理ブロックを該当論理ブロックに割り当て、割り当てた論理ブロックを示す情報を、新たな論理ブロック管理テーブルにおける物理位置の項目に登録する。
[ステップS14]データ配置制御部310は、論理ブロックの中から二重化ブロックを選択する。
ここで、図17は、二重化ブロックの選択処理手順の例を示すフローチャートである。
[ステップS14a]データ配置制御部310は、処理対象として最上位階層のサブプール、すなわち第1のサブプール152aを選択する。
[ステップS14b]データ配置制御部310は、下位階層、すなわち第2のサブプール152bに空き領域があるかを判定する。データ配置制御部310は、空き領域がある場合、ステップS14cの処理を実行し、空き領域がない場合、ステップS14eの処理を実行する。
[ステップS14c]データ配置制御部310は、図16のステップS13で第1のサブプール152aを割り当てた論理ブロックを対象として、第2のサブプール152bの空き領域がなくなるまで、次のような処理を実行する。データ配置制御部310は、アクセス回数が多い論理ブロックから順に、二重化ブロックとして選択する。
[ステップS14d]データ配置制御部310は、新たな二重化ブロック管理テーブルを作成し、ステップS14cで二重化ブロックとして選択した各論理ブロックについて、次のような処理を実行する。
データ配置制御部310は、新たな二重化ブロック管理テーブルに、該当論理ブロックのレコードを追加する。データ配置制御部310は、図16のステップS12で作成された新たな論理ブロック管理テーブルのレコードのうち、該当論理ブロックのレコードに登録された物理位置の情報を、新たな二重化ブロック管理テーブルに追加したレコードにおける物理位置の項目に登録する。そして、データ配置制御部310は、新たな論理ブロック管理テーブルの該当論理ブロックのレコードにおいて、物理位置の項目を「LB」に更新する。
これにより、新たな論理ブロック管理テーブルの作成が完了するとともに、新たな二重化ブロック管理テーブルにおける物理位置の項目に、上位階層側のサブプールの物理ブロックを示す情報が登録される。
次いで、データ配置制御部310は、二重化ブロックとして選択した各論理ブロックについて、さらに次のような処理を実行する。
データ配置制御部310は、図16のステップS12で受信した論理ブロック管理テーブル131および二重化ブロック管理テーブル132における、該当論理ブロックについてのレコードを参照する。データ配置制御部310は、参照したレコードの内容に基づき、該当論理ブロックが、第1のサブプール152aと第2のサブプール152bとの間で二重化される二重化ブロックとして設定されているかを判定する。
該当論理ブロックが二重化ブロックとして設定されている場合、データ配置制御部310は、受信した二重化ブロック管理テーブル132の該当レコードに登録されていた物理位置の情報を、新たな二重化ブロック管理テーブルの該当レコードにおける物理位置の項目に追加登録する。一方、該当論理ブロックが二重化ブロックとして設定されていない場合、データ配置制御部310は、該当論理ブロックに第2のサブプール152bの空き物理ブロックを割り当てる。そして、データ配置制御部310は、新たな二重化ブロック管理テーブルの該当レコードにおける物理位置の項目に、割り当てた空き物理ブロックの識別番号を追加登録する。
[ステップS14e]データ配置制御部310は、次の階層のサブプール、すなわち第2のサブプール152bを処理対象として、ステップS14a〜S14dの処理を実行する。ここではこれらの処理内容の説明を省略するが、この処理により、第2のサブプール152bと第3のサブプール152cとの間で二重化される論理ブロックが決定される。なお、ステップS14dに相当する処理では、すでに新たな二重化ブロック管理テーブルが作成されている場合、この二重化ブロック管理テーブルが用いられる。
以上の図17の処理が終了した時点で、論理ブロックと物理ブロックとの対応関係が更新された新たな論理ブロック管理テーブルの作成が完了する。また、図17の処理で二重化ブロックが選択された場合には、新たな二重化ブロック管理テーブルの作成も完了する。
以下、図16に戻って説明する。
[ステップS15]データ配置制御部310は、図16のステップS12で受信した論理ブロック管理テーブル131および二重化ブロック管理テーブル132と、新たに作成された論理ブロック管理テーブルおよび二重化ブロック管理テーブルとを比較する。なお、図17で二重化ブロックが選択されなかった場合には、データ配置制御部310は、論理ブロックが登録されていない新たな二重化ブロック管理テーブルを作成して、比較に利用する。
データ配置制御部310は、これらの比較結果に基づいて、割り当てられた物理ブロックが変更されている論理ブロックを抽出する。
[ステップS16]データ配置制御部310は、ステップS15で抽出された論理ブロックについて、物理ブロック間でデータを移動するように指示する指示情報をCM110に送信する。
[ステップS17]CM110のブロック管理部141は、受信した指示情報に基づいて、物理ブロック間でデータを移動させる。
[ステップS18]管理サーバ300のデータ配置制御部310は、作成された新たな論理ブロック管理テーブルおよび二重化ブロック管理テーブルを、CM110に送信する。
[ステップS19]CM110のブロック管理部141は、受信した新たな論理ブロック管理テーブルおよび二重化ブロック管理テーブルによって、記憶部130内の新たな論理ブロック管理テーブル131および二重化ブロック管理テーブル132をそれぞれ更新する。
次に、CM110の性能管理部142の処理について説明する。ここではまず、性能管理部142によって参照されるデバイス性能管理テーブル134の作成方法について説明する。
図18は、デバイス性能管理テーブルの作成方法の例を示す図である。前述のように、デバイス性能管理テーブル134の情報は、各サブプールにおける現在の処理量が限界値に達しているかを判定するための基準値として利用される。デバイス性能管理テーブル134は、あらかじめ値が設定された状態で記憶部130に格納されてもよいが、例えば次のような方法で、設定値が計算されてもよい。なお、ここでは例として、性能管理部142によって設定値が計算されるものとする。
図18に示すデバイス仕様テーブル137は、サブプールを構成する記憶装置ごとの最大性能の仕様を保持する。デバイス仕様テーブル137の情報は、例えば、記憶装置のメーカからあらかじめ開示された情報であってもよいし、計測によって得られた情報であってもよい。
デバイス性能管理テーブル134には、SSD、オンラインディスクおよびニアラインディスクのそれぞれについて、シーケンシャルアクセス時の最大性能と、ランダムアクセス時の最大性能とが保持される。シーケンシャルアクセス時の最大性能としては、リードスループット、ライトスループット、リードレスポンス時間、ライトレスポンス時間が登録される。ランダムアクセス時の最大性能としては、リードIOPS(Input/Output Per Second)、ライトIOPS、リードレスポンス時間、ライトレスポンス時間が登録される。
以下、デバイス仕様テーブル137が記憶部130に記憶され、性能管理部142によって参照されるものとする。性能管理部142は、デバイス仕様テーブル137に基づいて、次の式(1−1)〜(1−4)にしたがってデバイス性能管理テーブル134の情報を計算することができる。
最大リードブロック数=1ミリ秒当たりのリードブロック数×シーケンシャルアクセス時のリードレスポンス時間 ・・・(1−1)
最大ライトブロック数=1ミリ秒当たりのライトブロック数×シーケンシャルアクセス時のライトレスポンス時間 ・・・(1−2)
最大リードコマンド数=1ミリ秒当たりのリードコマンド数×ランダムアクセス時のリードレスポンス時間 ・・・(1−3)
最大ライトコマンド数=1ミリ秒当たりのライトコマンド数×ランダムアクセス時のライトレスポンス時間 ・・・(1−4)
ここで、1ミリ秒当たりのリードブロック数とは、シーケンシャルアクセス時のリードスループットを、1ミリ秒当たりで読み出し可能なブロック数に換算した値である。また、1ミリ秒当たりのライトブロック数とは、シーケンシャルアクセス時のライトスループットを、1ミリ秒当たりで書き込み可能なブロック数に換算した値である。
さらに、1ミリ秒当たりのリードコマンド数とは、リードIOPSを、1ミリ秒当たりで実行可能なリードコマンド数に換算した値である。また、1ミリ秒当たりのライトコマンド数とは、リードIOPSを、1ミリ秒当たりで実行可能なライトコマンド数に換算した値である。
なお、図18に示すデバイス性能管理テーブル134は、1ブロックの大きさを500バイト、1キロバイトを1000バイトとして計算されたものである。
以上の方法により、デバイス性能管理テーブル134には、記憶装置ごとの処理量の限界値(最大処理性能)が登録される。
次に、性能管理部142によるサブプールごとの処理量の評価処理について説明する。
図19は、処理量の評価処理手順の例を示すフローチャートである。図19の処理は、一定時間間隔で繰り返し実行される。
[ステップS31]性能管理部142は、DE120内の各記憶装置のコマンド管理テーブル125から、実行中のすべてのコマンドと、コマンドに付加されたブロックサイズを取得する。
[ステップS32]性能管理部142は、まず、ステップS31で取得した情報を基に、記憶装置ごとの現在の処理量を示す指標を、読み出し処理と書き込み処理のそれぞれについて算出する。具体的には、読み出し処理量の指標としては、実行中のリードコマンド数と、リード実行中のブロック数(実行中の各リードコマンドに対応するブロックサイズの合計値)とが算出される。また、書き込み処理量の指標としては、実行中のライトコマンド数と、ライト実行中のブロック数(実行中の各ライトコマンドに対応するブロックサイズの合計値)とが算出される。
そして、性能管理部142は、算出された値を基に、処理量の限界値に対する現在の処理量の比率を、記憶装置ごとに算出する。以下、この比率を「使用率」と呼ぶ。使用率は、最大性能に対して現在どの程度の性能が発揮されているかを示す割合である。本実施の形態では、この使用率として、リードブロック数の使用率Rrb、ライトブロック数の使用率Rwb、リードコマンド数の使用率Rrc、ライドコマンド数の使用率Rwcが算出される。性能管理部142は、これらの値を次の式(2−1)〜(2−4)にしたがって算出する。
リードブロック数の使用率Rrb=リード実行中のブロック数/最大リードブロック数 ・・・(2−1)
ライトブロック数の使用率Rwb=ライト実行中のブロック数/最大ライトブロック数 ・・・(2−2)
リードコマンド数の使用率Rrc=実行中のリードコマンド数/最大リードコマンド数 ・・・(2−3)
ライドコマンド数の使用率Rwc=実行中のライトコマンド数/最大ライトコマンド数 ・・・(2−4)
なお、最大リードブロック数、最大ライトブロック数、最大リードコマンド数、最大ライトコマンド数は、デバイス性能管理テーブル134において、対応する記憶装置の種別に対して登録された値である。
上記の各使用率は、シーケンシャル/ランダムというアクセスパターンを区別せずに計算された値である。そこで、性能管理部142は、記憶装置から取得した情報を基に記憶装置で現在実行されているアクセスのパターンを解析し、その解析結果を反映させた総合的な使用率を示す「ディスク別使用率」を、記憶装置ごとに算出する。性能管理部142は、ディスク別使用率を次の式(3)にしたがって算出する。
ディスク別使用率=Rrb×シーケンシャルリードの割合+Rwb×シーケンシャルライトの割合+Rrc×ランダムリードの割合+Rwc×ランダムライトの割合 ・・・(3)
ここで、性能管理部142は、例えば、記憶装置から取得したコマンドのうち、データブロック数が128ブロック以上のものをシーケンシャルアクセスのコマンドと推定する。また、性能管理部142は、データブロック数が128ブロック未満のものをランダムアクセスのコマンドと推定する。性能管理部142は、この推定結果を利用して、式(3)におけるシーケンシャルリードの割合、シーケンシャルライトの割合、ランダムリードの割合、ランダムライトの割合を、それぞれ次の式(4−1)〜(4−4)を用いて算出する。
シーケンシャルリードの割合=シーケンシャルリード実行中のブロック数/(リード実行中のブロック数+ライト実行中のブロック数) ・・・(4−1)
シーケンシャルライトの割合=シーケンシャルライト実行中のブロック数/(リード実行中のブロック数+ライト実行中のブロック数) ・・・(4−2)
ランダムリードの割合=実行中のランダムリードコマンド数/(実行中のリードコマンド数+実行中のライトコマンド数) ・・・(4−3)
ランダムライトの割合=実行中のランダムライトコマンド数/(実行中のリードコマンド数+実行中のライトコマンド数) ・・・(4−4)
[ステップS33]性能管理部142は、ステップS32で算出したディスク別使用率を用いて、サブプールごとの使用率を示す「階層別使用率」を算出する。階層別使用率は、サブプールを構成する各記憶装置のディスク別使用率の平均値として算出される。
算出された階層別使用率は、対応するサブプールにおいて、最大性能に対して現在どの程度の性能が発揮されているかを示す割合である。階層別使用率の最大値は、100%である。階層別使用率が100%になっている場合には、サブプールでのIO処理量が限界値に達していることを示す。
[ステップS34]性能管理部142は、算出された階層別使用率が所定の閾値に達しているか否かによって、フラグ管理テーブル135における対応するサブプールの処理量フラグの値を更新する。本実施の形態では例として、閾値を100%とする。性能管理部142は、階層別使用率が100%に達している場合、処理量フラグを「1」に設定し、階層別使用率が100%に達していない場合、処理量フラグを「0」に設定する。
なお、閾値は、現在の処理量の算出誤差を考慮して、100%より低い値(ただし、0%より大きい値)に設定されてもよい。
以上の図19の処理では、サブプールで実行中のIO処理のうち、シーケンシャルアクセスによる処理とランダムアクセスによる処理との比率の推定値に基づいて、処理量フラグが設定される。これにより、サブプールにおける現状のIO処理量を正確に推測することができ、その結果、アクセス要求に対する応答性能が向上する可能性を高めることができる。
なお、現在の処理量およびその限界値を示す指標、あるいはそれらの比率を示す指標としては、上記の例に限らず、他の値を用いることができる。例えば、上記のディスク別使用率に代わる指標として、単位時間の中で記憶装置のアクセス処理が実行されていた時間がどれだけの割合かを示すディスクビジー率を用いることができる。
この場合、性能管理部142は、記憶装置ごとのディスクビジー率を取得し、取得した値に基づいて、サブプールごとのビジー率(アクセス処理が実行されていた時間の割合)を算出する。サブプールごとのビジー率は、例えば、サブプールを構成する各記憶装置のディスクビジー率の平均値として算出される。性能管理部142は、例えば、サブプールごとのビジー率が100%に達している場合、対応する処理量フラグを「1」に設定し、100%に達していない場合、処理量フラグを「0」に設定する。
次に、CM110のボリュームアクセス制御部143およびディスクアクセス制御部144の処理について説明する。
ボリュームアクセス制御部143は、業務サーバ200から論理ボリューム151に対するアクセスの要求を受け付け、要求に応じたアクセス処理を実行する。この処理では、ボリュームアクセス制御部143は、アクセスが要求された論理アドレスをサブプール上の物理アドレスに変換し、物理アドレスをディスクアクセス制御部144に通知してアクセス処理を依頼する。また、ボリュームアクセス制御部143は、二重化ブロックからの読み出しが要求された場合、対応する処理量フラグに基づいて、データを上位階層と下位階層のどちらのサブプールから読み出すかを判定する。
ディスクアクセス制御部144は、例えば、各サブプールを構成する記憶装置をRAIDによって管理する。ディスクアクセス制御部144は、ボリュームアクセス制御部143から指定された物理アドレスを、記憶装置ごとの物理アドレスに変換して、記憶装置に対してアクセスする。
ここで、図20、図21を用いて、ボリュームアクセス制御部143による二重化ブロックに対するアクセス処理について説明する。
まず、図20は、二重化ブロックからのデータ読み出し処理について説明するための図である。ボリュームアクセス制御部143は、業務サーバ200から、論理ボリューム151の論理ブロックからの読み出し要求を受信する。図20の例では、論理ブロック「0」からの読み出しが要求されたとする(ステップS51)。
ボリュームアクセス制御部143は、まず、論理ブロック管理テーブル131を参照し、指定された論理ブロック「0」に対応付けられた物理位置を取得する。図20の例では、物理位置の項目に「LB」と登録されており、ボリュームアクセス制御部143は、指定された論理ブロック「0」が二重化ブロックであると判定する。この場合、ボリュームアクセス制御部143は、二重化ブロック管理テーブル132を参照し、論理ブロック「0」に対応付けられた物理位置を取得する(ステップS52)。図20の例では、論理ブロック「0」に対して、サブプール「0」(第1のサブプール152a)の物理ブロック「0」と、サブプール「1」(第2のサブプール152b)の物理ブロック「3」とが割り当てられている。
読み出し先が二重化ブロックであった場合、ボリュームアクセス制御部143は、どちらのサブプールにアクセスするかを選択する(ステップS53)。ボリュームアクセス制御部143は、フラグ管理テーブル135を参照して、割り当てられた上位階層側のサブプール「0」に対応する処理量フラグを読み出す。図20の例では、処理量フラグが「1」となっており、サブプール「0」における現在の処理量が限界値に達している。この場合、ボリュームアクセス制御部143は、アクセス先として下位階層側のサブプール「1」を選択し、サブプール「1」の物理ブロック「3」からデータを読み出して業務サーバ200に送信する(ステップS54)。
このように、上位階層側のサブプール「0」における現在の処理量が限界値に達していると推定される場合には、下位階層側のサブプール「1」からデータが読み出される。これにより、アクセスがサブプール間で分散され、上位階層側のサブプール「0」での応答性能が過大なアクセス負荷によって低下する可能性を低減できる。その結果、ストレージ装置100全体での読み出し要求に対する応答性能を改善できる。
なお、図示しないが、処理量フラグが「0」であり、サブプール「0」における現在の処理量に余裕がある場合には、ボリュームアクセス制御部143は、サブプール「0」の物理ブロック「0」からデータを読み出して業務サーバ200に送信する。
次に、図21は、二重化ブロックに対するデータ更新処理について説明するための図である。ボリュームアクセス制御部143は、業務サーバ200から、論理ボリューム151の論理ブロックに対するデータの書き込み要求を受信する。図21の例では、論理ブロック「1」に対する書き込みが要求されたとする(ステップS61)。なお、論理ブロック「1」にはすでにデータが書き込まれており、図21の例では、論理ブロック「1」のデータの更新が要求されている。
ボリュームアクセス制御部143は、論理ブロック管理テーブル131を参照し、指定された論理ブロック「1」に対応付けられた物理位置を取得する。図21の例では、物理位置の項目に「LB」と登録されており、ボリュームアクセス制御部143は、指定された論理ブロック「1」が二重化ブロックであると判定する。この場合、ボリュームアクセス制御部143は、二重化ブロック管理テーブル132を参照し、論理ブロック「1」に対応付けられた物理位置を取得する(ステップS62)。図21の例では、論理ブロック「1」に対して、サブプール「0」(第1のサブプール152a)の物理ブロック「1」と、サブプール「1」(第2のサブプール152b)の物理ブロック「4」とが割り当てられている。
読み出し先が二重化ブロックであった場合、ボリュームアクセス制御部143は、割り当てられた両方のサブプールの物理ブロックにデータを書き込む。図21の例では、ボリュームアクセス制御部143は、サブプール「0」の物理ブロック「1」と、サブプール「1」の物理ブロック「4」の両方にデータを書き込む(ステップS63)。
以上の図21の例のように、二重化ブロックに対するデータ更新が要求された場合、割り当てられた2つの物理ブロックのデータが両方とも更新される。これにより、データ更新後もデータが二重化された状態を保つことができ、更新前と同様にアクセス分散効果を得ることができる。
図22は、業務サーバからの要求に応じたアクセス処理手順の例を示すフローチャートである。
[ステップS71]ボリュームアクセス制御部143は、業務サーバ200からIOコマンドを受信する。なお、IOコマンドが書き込みコマンドである場合、ボリュームアクセス制御部143は、書き込みデータも受信する。
[ステップS72]ボリュームアクセス制御部143は、論理ブロック管理テーブル131から、IOコマンドで指定された論理ブロックに対応付けられた物理位置の情報を取得する。
[ステップS73]ボリュームアクセス制御部143は、取得した情報が「LB」である場合、ステップS74の処理を実行し、「LB」でない場合、ステップS79の処理を実行する。
[ステップS74]ボリュームアクセス制御部143は、IOコマンドが読み出しコマンドである場合、ステップS76の処理を実行し、書き込みコマンドである場合、ステップS75の処理を実行する。
[ステップS75]ボリュームアクセス制御部143は、二重化ブロック管理テーブル132から、IOコマンドで指定された論理ブロックに対応付けられた物理位置の情報を取得する。ここでは、上位階層のサブプールにおける物理位置の情報と、下位階層のサブプールにおける物理位置の情報とが取得される。
[ステップS76]ボリュームアクセス制御部143は、二重化ブロック管理テーブル132から、IOコマンドで指定された論理ブロックに対応付けられた2つの物理位置の情報のうち、上位階層のサブプールにおける物理位置の情報を取得する。
[ステップS77]ボリュームアクセス制御部143は、フラグ管理テーブル135から、ステップS76で取得した物理位置が示すサブプールに対応する処理量フラグを読み出す。ボリュームアクセス制御部143は、処理量フラグが「1」である場合、ステップS78の処理を実行し、処理量フラグが「0」である場合、ステップS79の処理を実行する。
[ステップS78]ボリュームアクセス制御部143は、二重化ブロック管理テーブル132から、IOコマンドで指定された論理ブロックに対応付けられた2つの物理位置の情報のうち、下位階層のサブプールにおける物理位置の情報を取得する。
[ステップS79]ボリュームアクセス制御部143は、IOコマンドで指定された論理アドレスを、取得した物理位置に置き換える。この物理位置とは、ステップS74で「No」と判定された場合、ステップS75で取得された2つの物理位置である。また、ステップS77で「Yes」と判定された場合、ステップS78で取得された物理位置である。さらに、ステップS77で「No」と判定された場合、ステップS76で取得された物理位置である。
なお、IOコマンドが書き込みコマンドであり、その書き込み先の論理ブロックに物理ブロックが割り当てられていない場合には、ボリュームアクセス制御部143は、例えば、第1のサブプール152aの空きブロックを新たに割り当てる。この場合、ステップS79では、論理アドレスは新たに割り当てられた空きブロックを示す物理位置に置き換えられる。
[ステップS80]ボリュームアクセス制御部143は、アクセス状況管理テーブル133のレコードのうち、IOコマンドで指定された論理ブロックに対応するレコードのアクセス回数をインクリメントする。
[ステップS81]ボリュームアクセス制御部143は、ステップS79で論理アドレスが物理位置に置き換えられたIOコマンドをディスクアクセス制御部144に発行し、IO処理を依頼する。ディスクアクセス制御部144は、発行されたIOコマンドに基づいて、DE120内の記憶装置に対するIO処理を実行し、実行が完了するとその旨をボリュームアクセス制御部143に通知する。ボリュームアクセス制御部143は、実行完了の通知を受けると、業務サーバ200に応答する。
なお、上記の各実施の形態に示した装置(例えば、ストレージ制御装置10、CM110、業務サーバ200、管理サーバ300)の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc-Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
以上の各実施の形態に関し、さらに以下の付記を開示する。
(付記1) 第1の記憶装置に記憶された複数のデータブロックのうち1または複数の第1のデータブロックを、前記第1の記憶装置よりアクセス速度の低い第2の記憶装置に二重化する配置制御部と、
前記1または複数の第1のデータブロックのうち第2のデータブロックの読み出し要求を受けると、前記第1の記憶装置における単位時間の入出力処理量が、前記入出力処理量の限界値に基づく閾値に達しているかを判定し、前記入出力処理量が前記閾値に達していない場合、前記第2のデータブロックを前記第1の記憶装置から読み出し、前記入出力処理量が前記閾値に達している場合、前記第2のデータブロックを前記第2の記憶装置から読み出すアクセス制御部と、
を有するストレージ制御装置。
(付記2) 前記複数のデータブロックは、論理記憶領域に含まれる複数の第3のデータブロックのうち、アクセス頻度が高いデータブロックであり、
前記複数の第3のデータブロックのうち、アクセス頻度が低いデータブロックが前記第2の記憶装置に格納される、
付記1記載のストレージ制御装置。
(付記3) 前記複数のデータブロックのうち、読み出し頻度が高いデータブロックが優先的に前記第2の記憶装置に二重化される、
付記1または2記載のストレージ制御装置。
(付記4) 前記アクセス制御部は、前記1または複数の第1のデータブロックのうち第4のデータブロックの更新要求を受けると、前記第1の記憶装置と前記第2の記憶装置に格納された前記第4のデータブロックを両方とも新たなデータブロックによって更新する、
付記1乃至3のいずれか1つに記載のストレージ制御装置。
(付記5) 前記アクセス制御部は、前記第1の記憶装置において入出力処理中のシーケンシャルアクセスのためのデータ量と、前記データ量に関する第1の限界値とを比較した第1の比較結果と、前記第1の記憶装置において実行中であるランダムアクセスのためのコマンド数と、前記コマンド数に関する第2の限界値とを比較した第2の比較結果とに基づいて、前記入出力処理量が前記閾値に達しているかを判定する、
付記1乃至4のいずれか1つに記載のストレージ制御装置。
(付記6) 管理装置と、ストレージ制御装置とを有するストレージシステムであって、
前記管理装置は、論理記憶領域に含まれる複数のデータブロックのうち、アクセス頻度が高い1または複数の第1のデータブロックが第1の記憶装置に格納され、アクセス頻度が低い1または複数の第2のデータブロックが前記第1の記憶装置よりアクセス性能の低い第2の記憶装置に格納され、前記1または複数の第1のデータブロックのうち、1または複数の第3のデータブロックが前記第2の記憶装置に二重化されるように指示する指示情報を送信する配置決定部を有し、
前記ストレージ制御装置は、
前記指示情報に基づいて、前記第1の記憶装置および前記第2の記憶装置における前記複数のデータブロックの格納位置を制御する配置制御部と、
前記1または複数の第3のデータブロックのうち第4のデータブロックの読み出し要求を受けると、前記第1の記憶装置における単位時間の入出力処理量が、前記入出力処理量の限界値に基づく閾値に達しているかを判定し、前記入出力処理量が前記閾値に達していない場合、前記第4のデータブロックを前記第1の記憶装置から読み出し、前記入出力処理量が前記閾値に達している場合、前記第4のデータブロックを前記第2の記憶装置から読み出すアクセス制御部と、
を有するストレージシステム。
(付記7) 前記配置決定部は、1または複数の第1のデータブロックのうち、読み出し頻度が高いデータブロックが優先的に前記第2の記憶装置に二重化されるように、前記指示情報により指示する、
付記6記載のストレージシステム。
(付記8) 前記アクセス制御部は、前記論理記憶領域の複数の論理ブロックのうち、前記第4のデータブロックが格納された論理ブロックに対する第5のデータブロックの書き込み要求を受けると、前記第1の記憶装置と前記第2の記憶装置に格納された前記第4のデータブロックを両方とも前記第5のデータブロックによって更新する、
付記6または7記載のストレージシステム。
(付記9) 前記アクセス制御部は、前記第1の記憶装置において入出力処理中のシーケンシャルアクセスのためのデータ量と、前記データ量に関する第1の限界値とを比較した第1の比較結果と、前記第1の記憶装置において実行中であるランダムアクセスのためのコマンド数と、前記コマンド数に関する第2の限界値とを比較した第2の比較結果とに基づいて、前記入出力処理量が前記閾値に達しているかを判定する、
付記6乃至8のいずれか1つに記載のストレージシステム。
(付記10) コンピュータに、
第1の記憶装置に記憶された複数のデータブロックのうち1または複数の第1のデータブロックを、前記第1の記憶装置よりアクセス速度の低い第2の記憶装置に二重化し、
前記1または複数の第1のデータブロックのうち第2のデータブロックの読み出し要求を受けると、前記第1の記憶装置における単位時間の入出力処理量が、前記入出力処理量の限界値に基づく閾値に達しているかを判定し、
前記入出力処理量が前記閾値に達していない場合、前記第2のデータブロックを前記第1の記憶装置から読み出し、
前記入出力処理量が前記閾値に達している場合、前記第2のデータブロックを前記第2の記憶装置から読み出す、
処理を実行させるストレージ制御プログラム。
(付記11) 前記コンピュータに、
前記1または複数の第1のデータブロックのうち第4のデータブロックの更新要求を受けると、前記第1の記憶装置と前記第2の記憶装置に格納された前記第4のデータブロックを両方とも新たなデータブロックによって更新する、
処理をさらに実行させる付記10記載のストレージ制御プログラム。
(付記12) 前記判定では、前記第1の記憶装置において入出力処理中のシーケンシャルアクセスのためのデータ量と、前記データ量に関する第1の限界値とを比較した第1の比較結果と、前記第1の記憶装置において実行中であるランダムアクセスのためのコマンド数と、前記コマンド数に関する第2の限界値とを比較した第2の比較結果とに基づいて、前記入出力処理量が前記閾値に達しているかを判定する、
付記10または11記載のストレージ制御プログラム。
1 第1の記憶装置
2 第2の記憶装置
10 ストレージ制御装置
11 配置制御部
12 アクセス制御部
D0〜D4 データブロック

Claims (8)

  1. 第1の記憶装置に記憶された複数のデータブロックのうち1または複数の第1のデータブロックを、前記第1の記憶装置よりアクセス速度の低い第2の記憶装置に二重化する配置制御部と、
    前記1または複数の第1のデータブロックのうち第2のデータブロックの読み出し要求を受けると、前記第1の記憶装置における単位時間の入出力処理量が、前記入出力処理量の限界値に基づく閾値に達しているかを判定し、前記入出力処理量が前記閾値に達していない場合、前記第2のデータブロックを前記第1の記憶装置から読み出し、前記入出力処理量が前記閾値に達している場合、前記第2のデータブロックを前記第2の記憶装置から読み出すアクセス制御部と、
    を有するストレージ制御装置。
  2. 前記複数のデータブロックは、論理記憶領域に含まれる複数の第3のデータブロックのうち、アクセス頻度が高いデータブロックであり、
    前記複数の第3のデータブロックのうち、アクセス頻度が低いデータブロックが前記第2の記憶装置に格納される、
    請求項1記載のストレージ制御装置。
  3. 前記複数のデータブロックのうち、読み出し頻度が高いデータブロックが優先的に前記第2の記憶装置に二重化される、
    請求項1または2記載のストレージ制御装置。
  4. 管理装置と、ストレージ制御装置とを有するストレージシステムであって、
    前記管理装置は、論理記憶領域に含まれる複数のデータブロックのうち、アクセス頻度が高い1または複数の第1のデータブロックが第1の記憶装置に格納され、アクセス頻度が低い1または複数の第2のデータブロックが前記第1の記憶装置よりアクセス性能の低い第2の記憶装置に格納され、前記1または複数の第1のデータブロックのうち、1または複数の第3のデータブロックが前記第2の記憶装置に二重化されるように指示する指示情報を送信する配置決定部を有し、
    前記ストレージ制御装置は、
    前記指示情報に基づいて、前記第1の記憶装置および前記第2の記憶装置における前記複数のデータブロックの格納位置を制御する配置制御部と、
    前記1または複数の第3のデータブロックのうち第4のデータブロックの読み出し要求を受けると、前記第1の記憶装置における単位時間の入出力処理量が、前記入出力処理量の限界値に基づく閾値に達しているかを判定し、前記入出力処理量が前記閾値に達していない場合、前記第4のデータブロックを前記第1の記憶装置から読み出し、前記入出力処理量が前記閾値に達している場合、前記第4のデータブロックを前記第2の記憶装置から読み出すアクセス制御部と、
    を有するストレージシステム。
  5. 前記配置決定部は、1または複数の第1のデータブロックのうち、読み出し頻度が高いデータブロックが優先的に前記第2の記憶装置に二重化されるように、前記指示情報により指示する、
    請求項4記載のストレージシステム。
  6. 前記アクセス制御部は、前記論理記憶領域の複数の論理ブロックのうち、前記第4のデータブロックが格納された論理ブロックに対する第5のデータブロックの書き込み要求を受けると、前記第1の記憶装置と前記第2の記憶装置に格納された前記第4のデータブロックを両方とも前記第5のデータブロックによって更新する、
    請求項4または5記載のストレージシステム。
  7. 前記アクセス制御部は、前記第1の記憶装置において入出力処理中のシーケンシャルアクセスのためのデータ量と、前記データ量に関する第1の限界値とを比較した第1の比較結果と、前記第1の記憶装置において実行中であるランダムアクセスのためのコマンド数と、前記コマンド数に関する第2の限界値とを比較した第2の比較結果とに基づいて、前記入出力処理量が前記閾値に達しているかを判定する、
    請求項4乃至6のいずれか1項に記載のストレージシステム。
  8. コンピュータに、
    第1の記憶装置に記憶された複数のデータブロックのうち1または複数の第1のデータブロックを、前記第1の記憶装置よりアクセス速度の低い第2の記憶装置に二重化し、
    前記1または複数の第1のデータブロックのうち第2のデータブロックの読み出し要求を受けると、前記第1の記憶装置における単位時間の入出力処理量が、前記入出力処理量の限界値に基づく閾値に達しているかを判定し、
    前記入出力処理量が前記閾値に達していない場合、前記第2のデータブロックを前記第1の記憶装置から読み出し、
    前記入出力処理量が前記閾値に達している場合、前記第2のデータブロックを前記第2の記憶装置から読み出す、
    処理を実行させるストレージ制御プログラム。
JP2016147628A 2016-07-27 2016-07-27 ストレージ制御装置、ストレージシステムおよびストレージ制御プログラム Pending JP2018018271A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016147628A JP2018018271A (ja) 2016-07-27 2016-07-27 ストレージ制御装置、ストレージシステムおよびストレージ制御プログラム
US15/659,801 US10747432B2 (en) 2016-07-27 2017-07-26 Storage device, storage system, and storage control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016147628A JP2018018271A (ja) 2016-07-27 2016-07-27 ストレージ制御装置、ストレージシステムおよびストレージ制御プログラム

Publications (1)

Publication Number Publication Date
JP2018018271A true JP2018018271A (ja) 2018-02-01

Family

ID=61009646

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016147628A Pending JP2018018271A (ja) 2016-07-27 2016-07-27 ストレージ制御装置、ストレージシステムおよびストレージ制御プログラム

Country Status (2)

Country Link
US (1) US10747432B2 (ja)
JP (1) JP2018018271A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190001417A (ko) * 2017-06-27 2019-01-04 에스케이하이닉스 주식회사 컨트롤러 및 그 동작 방법

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009251970A (ja) * 2008-04-07 2009-10-29 Hitachi Ltd 複数のストレージシステムモジュールを備えたストレージシステム
JP2009281970A (ja) * 2008-05-26 2009-12-03 Ihi Corp 膜厚計測装置及び方法
US7809884B1 (en) * 2006-09-29 2010-10-05 Emc Corporation Data storage system power management
JP2012168840A (ja) * 2011-02-16 2012-09-06 Nec Corp ストレージシステム、ストレージ方法、及びプログラム
JP2015052853A (ja) * 2013-09-05 2015-03-19 富士通株式会社 ストレージ制御装置、制御方法及びプログラム
JP2016051425A (ja) * 2014-09-02 2016-04-11 富士通株式会社 ストレージ制御装置およびストレージ制御プログラム
JP2016118821A (ja) * 2014-12-18 2016-06-30 富士通株式会社 ストレージ管理装置、ストレージ管理方法およびストレージ管理プログラム
JP2016119020A (ja) * 2014-12-24 2016-06-30 富士通株式会社 ストレージ装置、ストレージ装置の制御方法およびストレージ装置制御プログラム

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04107750A (ja) 1990-08-29 1992-04-09 Nec Corp ファイル管理方式
JP3135751B2 (ja) * 1993-07-16 2001-02-19 株式会社東芝 データ記憶装置
JPH07225706A (ja) 1994-02-09 1995-08-22 Fujitsu Ltd ミラーリング制御方法及びその装置
JPH0944381A (ja) * 1995-07-31 1997-02-14 Toshiba Corp データ格納方法およびデータ格納装置
JP2004030839A (ja) * 2002-06-27 2004-01-29 Toshiba Corp バースト転送メモリ
US7539709B1 (en) * 2005-06-15 2009-05-26 Sun Microsystems, Inc. Dynamic data migration in a multi-tier storage system
US7783826B2 (en) * 2006-09-28 2010-08-24 Qimonda Ag Data bus width converter
JP2008090876A (ja) * 2006-09-29 2008-04-17 Toshiba Corp 不揮発性半導体記憶装置
KR101077339B1 (ko) * 2007-12-28 2011-10-26 가부시끼가이샤 도시바 반도체 기억 장치
JP2010026873A (ja) * 2008-07-22 2010-02-04 Hitachi Ltd ストレージ装置及びその制御方法
KR101541442B1 (ko) * 2008-11-04 2015-08-03 삼성전자주식회사 메모리 및 프로세서를 포함하는 컴퓨팅 시스템
CN102053975A (zh) * 2009-10-30 2011-05-11 国际商业机器公司 数据库系统和跨数据库查询优化方法
US8230192B2 (en) 2010-02-05 2012-07-24 Lsi Corporation System and method for QoS-based storage tiering and migration technique
JP5070315B2 (ja) * 2010-04-28 2012-11-14 株式会社日立製作所 ストレージ装置及びストレージ装置におけるデータ階層管理方法
JP2011242862A (ja) 2010-05-14 2011-12-01 Hitachi Ltd ストレージサブシステム及びその制御方法
JP5520747B2 (ja) * 2010-08-25 2014-06-11 株式会社日立製作所 キャッシュを搭載した情報装置及びコンピュータ読み取り可能な記憶媒体
KR101596606B1 (ko) * 2011-08-19 2016-03-07 가부시끼가이샤 도시바 정보 프로세싱 장치, 정보 프로세싱 장치를 제어하는 방법, 제어 도구를 저장하는 비일시적 기록 매체, 호스트 디바이스, 성능 평가 도구를 저장하는 비일시적 기록 매체, 및 외부 메모리 디바이스를 위한 성능 평가 방법
JP6011153B2 (ja) * 2012-08-22 2016-10-19 富士通株式会社 ストレージシステム、ストレージ制御方法およびストレージ制御プログラム
JP5550741B1 (ja) * 2012-09-25 2014-07-16 株式会社東芝 ソリッドステートドライブにデータを再配置するストレージ装置、ストレージコントローラ及び方法
KR102218712B1 (ko) * 2014-02-11 2021-02-22 삼성전자주식회사 저장 장치의 어드레스 맵핑 방법 및 저장 장치의 데이터 독출 방법

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7809884B1 (en) * 2006-09-29 2010-10-05 Emc Corporation Data storage system power management
JP2009251970A (ja) * 2008-04-07 2009-10-29 Hitachi Ltd 複数のストレージシステムモジュールを備えたストレージシステム
JP2009281970A (ja) * 2008-05-26 2009-12-03 Ihi Corp 膜厚計測装置及び方法
JP2012168840A (ja) * 2011-02-16 2012-09-06 Nec Corp ストレージシステム、ストレージ方法、及びプログラム
JP2015052853A (ja) * 2013-09-05 2015-03-19 富士通株式会社 ストレージ制御装置、制御方法及びプログラム
JP2016051425A (ja) * 2014-09-02 2016-04-11 富士通株式会社 ストレージ制御装置およびストレージ制御プログラム
JP2016118821A (ja) * 2014-12-18 2016-06-30 富士通株式会社 ストレージ管理装置、ストレージ管理方法およびストレージ管理プログラム
JP2016119020A (ja) * 2014-12-24 2016-06-30 富士通株式会社 ストレージ装置、ストレージ装置の制御方法およびストレージ装置制御プログラム

Also Published As

Publication number Publication date
US20180032256A1 (en) 2018-02-01
US10747432B2 (en) 2020-08-18

Similar Documents

Publication Publication Date Title
US9037829B2 (en) Storage system providing virtual volumes
JP5427630B2 (ja) 動的ページ再割当てストレージシステムにおけるアプリケーション及び階層構成の管理
JP4235220B2 (ja) 計算機システムおよびデータ移行方法
US8407417B2 (en) Storage system providing virtual volumes
JP5158074B2 (ja) ストレージ管理プログラム、ストレージ管理方法、ストレージ管理装置およびストレージシステム
JP5661921B2 (ja) 計算機システム及び管理システム
US8255625B2 (en) Method and system for placement of data on a storage device
JP5706531B2 (ja) 計算機システム、及び情報管理方法
JP4935331B2 (ja) ストレージシステムと記憶領域の選択方法並びにプログラム
US10664182B2 (en) Storage system
JP2007058637A (ja) ストレージシステム、管理計算機及びデータ移動方法
JPWO2013061382A1 (ja) 計算機システム及びストレージ管理方法
JP2015520876A (ja) 情報記憶システム及び情報記憶システムの制御方法
CN107247565A (zh) 存储控制装置以及虚拟卷的控制方法
JP2014516442A (ja) 計算機システム及びデータ管理方法
WO2010099992A1 (en) Method, system and computer program product for managing the placement of storage data in a multi tier virtualized storage infrastructure
JP5104855B2 (ja) 負荷分散プログラム、負荷分散方法、及びストレージ管理装置
JP2016118821A (ja) ストレージ管理装置、ストレージ管理方法およびストレージ管理プログラム
JP2005512232A (ja) データ・ネットワークに付属されたストレージ資源の管理
US11740823B2 (en) Storage system and storage control method
CN101997919B (zh) 一种存储资源的管理方法及管理装置
JP2018018271A (ja) ストレージ制御装置、ストレージシステムおよびストレージ制御プログラム
JP2013089225A (ja) 階層変更方法及び装置
US20170192696A1 (en) Systems and methods for zone page allocation for shingled media recording disks
US20130036250A1 (en) Method and apparatus to move page between tiers

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190409

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20190416

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20190416

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200310

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200311

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200508

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20200609