JP6229347B2 - ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法 - Google Patents

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

Info

Publication number
JP6229347B2
JP6229347B2 JP2013154585A JP2013154585A JP6229347B2 JP 6229347 B2 JP6229347 B2 JP 6229347B2 JP 2013154585 A JP2013154585 A JP 2013154585A JP 2013154585 A JP2013154585 A JP 2013154585A JP 6229347 B2 JP6229347 B2 JP 6229347B2
Authority
JP
Japan
Prior art keywords
raid
unit
logical volume
request
performance
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.)
Expired - Fee Related
Application number
JP2013154585A
Other languages
English (en)
Other versions
JP2015026183A (ja
Inventor
友憲 鈴木
友憲 鈴木
篤 遠藤
篤 遠藤
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 JP2013154585A priority Critical patent/JP6229347B2/ja
Priority to US14/333,624 priority patent/US9727279B2/en
Publication of JP2015026183A publication Critical patent/JP2015026183A/ja
Application granted granted Critical
Publication of JP6229347B2 publication Critical patent/JP6229347B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法に関する。
複数のHDD(Hard Disk Drive)を1つの論理ボリュームとして扱うストレージ制御装置としてRAID(Redundant Array of Inexpensive Disks)装置が知られている。RAID装置は、複数のHDDを搭載したドライブエンクロージャ(以下、DE(Drive Enclosure))を備え、DE内のHDDからRAIDを構成する。また、RAID装置は、DE内のHDDの交換や追加、あるいはDEの交換や追加によりHDD構成を更新可能にする。
RAID装置は、HDD構成に変更が生じても安定した性能値(たとえば、スループット、IOPS(Input/Output Per Second))を提供することが求められる。そのため、RAID装置は、所定の性能を有することを検証されたHDDを搭載している。HDDに求められる所定の性能は、その下限だけでなく上限も規定した基準の範囲内に適合することが求められる。
RAID装置ベンダとHDDベンダは、HDDに求められる性能の上限がHDD内部の処理に委ねられることから、ファームウェアの変更と検証を繰り返してファームウェアの最適化を図っている。
特開平8−69359号公報 特開平8−63298号公報
しかしながら、市場や生産拠点のグローバル化に伴うサプライチェーンの最適化を図る上で、HDDのマルチベンダ化が進展している。このようなマルチベンダ化の流れは、自然災害や政情不安などの不安定要因に対抗するため一層進展する傾向にある。
また、ユーザのニーズにより細やかに対応するため、HDDの多機種化(サイズ、回転数など)に伴い様々な性能特性を有するHDDが存在する。
RAID装置ベンダとHDDベンダによるファームウェアの最適化を図るための作業負担は、ますます増大する傾向にある。
1つの側面では、本発明は、ストレージ装置の性能最適化に伴う作業負担を軽減可能なストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法を提供することを目的とする。
上記目的を達成するために、以下に示すような、ストレージ制御装置が提供される。ストレージ制御装置は、設定部と、発行制御部を備える。設定部は、論理ボリュームにおけるストレージ装置の構成、およびストレージ装置の性能にもとづいて論理ボリュームに対して単位時間当たりに発行可能なI/O発行可能数を可変設定する。発行制御部は、論理ボリュームに対して受け付けたI/O要求を要求蓄積部に蓄積し、要求蓄積部が蓄積するI/O要求のうちから、単位時間当たりのI/O発行数を設定されたI/O発行可能数の範囲に制限して論理ボリュームにI/O要求の発行をおこなう。
また、上記目的を達成するために、以下に示すような、ストレージ制御プログラム、およびストレージ制御方法が提供される。ストレージ制御プログラムは、以下に示すような処理をコンピュータに実行させ、ストレージ制御方法は、以下に示すような処理をコンピュータが実行する。コンピュータは、論理ボリュームにおけるストレージ装置の構成、およびストレージ装置の性能にもとづいて論理ボリュームに対して単位時間当たりに発行可能なI/O発行可能数を可変設定し、論理ボリュームに対して受け付けたI/O要求を要求蓄積部に蓄積し要求蓄積部が蓄積するI/O要求のうちから、単位時間当たりのI/O発行数を設定されたI/O発行可能数の範囲に制限して論理ボリュームにI/O要求の発行をおこなう処理を実行する。
1態様によれば、ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法において、ストレージ装置の性能最適化に伴う作業負担を軽減する。
第1の実施形態のストレージ制御装置の構成例を示す図である。 第2の実施形態のストレージシステムの構成例を示す図である。 異なるHDD種別におけるRAID性能の測定例を示す図である。 第2の実施形態のコントローラモジュールの構成例を示す図である。 第2の実施形態のRAID装置のハードウェア構成例を示す図である。 第2の実施形態のRAIDグループ追加処理のフローチャートを示す図である。 第2の実施形態の性能情報テーブルの一例を示す図である。 第2の実施形態のI/O発行数管理テーブルの一例を示す図である。 第2の実施形態のRAIDグループI/O受付処理のフローチャートを示す図である。 第2の実施形態の統計情報管理テーブルの一例を示す図である。 第2の実施形態のRAIDグループI/O発行数管理処理のフローチャートを示す図である。
以下、図面を参照して実施の形態を詳細に説明する。
[第1の実施形態]
まず、第1の実施形態のストレージ制御装置について図1を用いて説明する。図1は、第1の実施形態のストレージ制御装置の構成例を示す図である。
ストレージ制御装置1は、ホストコンピュータ9から論理ボリュームへのI/O要求7を受け付ける。ストレージ制御装置1は、複数のストレージ装置5(5a,5b,…,5n)の組合せから論理ボリュームを生成する。論理ボリュームは、たとえば、RAIDがある。
ストレージ装置5は、たとえば、HDDであるが、フラッシュメモリドライブなどのSSD(Solid State Drive)などであってもよい。また、ストレージ装置5は、ストレージ制御装置1が内蔵するものであってもよいし、ストレージ制御装置1に外付けされるものであってもよい。
ストレージ制御装置1は、設定部2と、発行制御部3と、要求蓄積部4を含む。設定部2は、論理ボリュームに対して単位時間当たりに発行可能なI/O発行可能数6を設定する。設定部2は、論理ボリュームにおけるストレージ装置5の構成、およびストレージ装置5の性能にもとづいて、I/O発行可能数を設定する。
これにより、ストレージ制御装置1は、論理ボリュームを構成するストレージ装置5の性能を反映したI/O発行可能数を設定することができる。
発行制御部3は、論理ボリュームに対して受け付けたI/O要求7を要求蓄積部4に蓄積する。発行制御部3は、要求蓄積部4が蓄積するI/O要求7から論理ボリュームにI/O要求の発行をおこなう。このとき、発行制御部3は、単位時間当たりのI/O発行数をI/O発行可能数6の範囲に制限する。
これにより、ストレージ制御装置1は、ストレージ装置5が過大な応答性能を有する場合があっても、論理ボリュームが過大な応答性能を有することを抑制する。このようなストレージ制御装置1は、論理ボリュームを構成するストレージ装置5の組合せに変更が生じても安定した性能値を発揮することができる。そのため、ストレージ制御装置1は、ストレージ装置5の性能最適化に伴う作業負担を軽減することができる。
[第2の実施形態]
次に、第2の実施形態のストレージ装置の接続例について図2を用いて説明する。図2は、第2の実施形態のストレージシステムの構成例を示す図である。
ストレージシステム10は、1以上のホストコンピュータ11と、ホストコンピュータ11と通信可能に接続する1以上のRAID装置12とを含んで構成される。RAID装置12は、複数のHDD19を1つの論理ボリュームとして扱うストレージ装置の1つである。RAID装置12は、RAIDへのI/O要求をホストコンピュータ11から受け付ける。RAID装置12は、コントローラモジュール(以下、CM(Controller Module))13と、ドライブエンクロージャ(DE)14とを含む。
DE14は、複数のHDD19を収容する筐体である。DE14は、複数のHDD19への電源供給を担うとともに、HDD19とCM13とを接続するインタフェースを有する。RAID装置12は、DE14が収容する複数のHDD19の組合せによりRAIDを構成する。なお、DE14は、RAID装置12が内蔵するものであってもよいし、RAID装置12に外付けされるものであってもよい。また、図示するRAID装置12は、1つのDE14を備えるが2以上のDE14を備えてもよい。
CM13は、ストレージ制御装置の一形態であり、ホストコンピュータ11からのI/O要求(たとえば、Write要求、Read要求など)を受け付けて、DE14が備える複数のHDD19へのアクセスを制御する。CM13は、ホストI/O制御部15と、RAID制御部16と、ディスクI/O制御部17を含む。なお、図示するRAID装置12は、1つのCM13を備えるが2以上のCM13を備える冗長構成としてもよい。
ホストI/O制御部15は、ホストコンピュータ11とCM13とのインタフェース制御をおこなう。CM13は、ホストI/O制御部15を介してホストコンピュータ11との間で所要のデータの送受信をおこなう。RAID制御部16は、RAIDグループごとのI/O発行数を管理する。ディスクI/O制御部17は、DE14とCM13とのインタフェース制御をおこなう。CM13は、ディスクI/O制御部17を介してDE14との間で所要のデータの送受信をおこなう。
ここで、異なるHDD種別におけるRAID性能の測定例について図3を用いて説明する。図3は、異なるHDD種別におけるRAID性能の測定例を示す図である。
HDD_AとHDD_Bとは、RAID装置12において相互に交換可能なHDDである。所定条件下でアクセス性能を測定したとき、HDD_AはP1(MB/s)、HDD_BはP2(MB/s)であり、HDD_AとHDD_Bの間にd1(MB/s)の性能差がある。
HDD_Aは、要求性能下限PLと要求性能上限PHを満足するが、HDD_Bは、要求性能下限PLを満足するものの要求性能上限PHを満足していない。たとえば、HDD_Bを含むHDDの組合せで、ユーザが要求する性能を満足するRAIDを構成していたときに、HDD_BをHDD_Aに交換するとユーザが要求する性能を満たさなくなってしまう場合がある。
このように、HDDごとのI/O発行数に上限値を設けたとしてもI/O要求の発行後の処理は、HDD側に任せられるため、RAID性能は、HDD内部の処理方法に委ねられる。そのため、従来であれば、HDD_AとHDD_Bが互換性を有して運用できるように、設計段階でHDDのファームウェア性能の最適化を図っている。
たとえば、RAID装置ベンダは、新規のHDDの性能測定を実施し、測定結果にもとづいて要求性能値を算出してHDDベンダに通知する。HDDベンダは、通知された要求性能値にもとづいてHDDのファームウェアを更新してRAID装置ベンダに提供する。RAID装置ベンダとHDDベンダは、要求性能値が満たされるまで上記作業を反復する。
このようなHDDの性能最適化に伴う作業負担を軽減するための処理を実行するRAID制御部について、図4を用いて説明する。図4は、第2の実施形態のコントローラモジュールの構成例を示す図である。
CM(コントローラモジュール)13は、前述した通り、ホストI/O制御部15と、RAID制御部16と、ディスクI/O制御部17を含む。ホストI/O制御部15は、I/O受付部20と、I/O完了受付部21を含む。I/O受付部20は、ホストコンピュータ11からI/O要求を受け付けてRAID制御部16にI/O要求を通知する。I/O完了受付部21は、RAID制御部16からI/O完了応答を受け付けてホストコンピュータ11にI/O完了応答を通知する。
RAID制御部16は、I/O受付部22と、I/O発行可能数算出部25と、I/O完了受付部28を含む。I/O受付部22は、ホストI/O制御部15からI/O要求を受け付けて、RAIDグループごとに時間当たりのI/O発行数を制限してディスクI/O制御部17にI/O要求を通知する。I/O受付部22は、I/O発行数管理部23と、管理時間監視部24を含む。
I/O発行数管理部23は、I/O受付部22が受け付けたI/O要求をI/O発行待ちキューに蓄積し、時間当たりのI/O発行数をI/O発行可能数27の範囲に制限しながらディスクI/O制御部17にI/O要求の発行(I/O発行)をおこなう。管理時間監視部24は、I/O発行数を制限する際の単位時間を管理時間として監視する。
I/O発行可能数算出部25は、あらかじめ設定される性能情報テーブル26を保持し、性能情報テーブル26にもとづいてRAIDグループごとにI/O発行可能数27を算出し、I/O発行可能数27を保持する。性能情報テーブル26は、RAIDの構成条件別の要求性能を示す。性能情報テーブル26の詳細は、後で図7を用いて説明する。I/O完了受付部28は、ディスクI/O制御部17からI/O完了応答を受け付けてホストI/O制御部15にI/O完了応答を通知する。
ディスクI/O制御部17は、I/O受付部29と、I/O完了受付部30を含む。I/O受付部29は、RAID制御部16からI/O要求を受け付けてRAIDを構成するHDD19にI/O要求を通知する。HDD19は、I/O要求を受け付け、I/O要求に対応するコマンド処理をおこなう。HDD19は、コマンド処理の実行後にI/O完了受付部30にI/O完了応答を通知する。I/O完了受付部30は、HDD19からI/O完了応答を受け付けてRAID制御部16にI/O完了応答を通知する。
次に、第2の実施形態のRAID装置のハードウェア構成について図5を用いて説明する。図5は、第2の実施形態のRAID装置のハードウェア構成例を示す図である。
RAID装置12は、チャネルアダプタ31と、コントローラモジュール13と、DE14を備える。RAID装置12は、チャネルアダプタ31を介してホストコンピュータ11と接続する。コントローラモジュール13は、チャネルアダプタ31を複数(たとえば、2つ)備え、複数のチャネルアダプタ31による冗長構成のもと複数系統でホストコンピュータ11と接続する。コントローラモジュール13は、ディスクアダプタ34を介して、DE14が収容するHDD19と接続する。
コントローラモジュール13は、プロセッサ32、メモリ33、ディスクアダプタ34を備え、図示しないバスを介して接続されている。プロセッサ32は、コントローラモジュール13全体を制御し、RAID制御を含むストレージ制御をおこなう。プロセッサ32は、マルチプロセッサであってもよい。プロセッサ32は、たとえばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、またはPLD(Programmable Logic Device)である。またプロセッサ32は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組合せであってもよい。
メモリ33は、たとえば、RAM(Random Access Memory)や不揮発性メモリを含む。メモリ33は、HDD19からデータを読み出したときにデータを保持するほか、I/O要求を一時的に蓄積するI/O発行待ちキューやHDD19にデータを書き込むときのバッファとなる。また、メモリ33は、ユーザデータや制御情報を格納する。ディスクアダプタ34は、HDD19とのインタフェース制御(アクセス制御)をおこなう。たとえば、RAMは、コントローラモジュール13の主記憶装置として使用される。RAMには、プロセッサ32に実行させるオペレーティングシステム(Operating System)のプログラムやファームウェア、アプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAMには、プロセッサ32による処理に必要な各種データが格納される。また、RAMは、各種データの格納に用いるメモリと別体にキャッシュメモリを含むものであってもよい。
不揮発性メモリは、RAID装置12の電源遮断時においても記憶内容を保持する。不揮発性メモリは、たとえば、EEPROM(Electrically Erasable and Programmable Read Only Memory)やフラッシュメモリなどの半導体記憶装置や、HDDなどである。不揮発性メモリには、オペレーティングシステムのプログラムやファームウェア、アプリケーションプログラム、および各種データが格納される。
以上のようなハードウェア構成によって、第2の実施形態のRAID装置12、コントローラモジュール13の処理機能を実現することができる。なお、第1の実施形態に示したストレージ制御装置1も、図示したRAID装置12、コントローラモジュール13と同様のハードウェアにより実現することができる。
次に、第2の実施形態のRAID制御部16が実行するRAIDグループ追加処理について図6を用いて説明する。図6は、第2の実施形態のRAIDグループ追加処理のフローチャートを示す図である。RAIDグループ追加処理は、新規のRAIDグループが追加されたときにRAID制御部16により、より詳しくはI/O発行可能数算出部25により実行される。RAIDグループ追加処理は、新規に追加されたRAIDグループについてI/O発行可能数を決定し、決定したI/O発行可能数のもとでI/O制御を開始する処理である。
[ステップS11]RAID制御部16は、新規に追加されたRAIDグループのRAIDレベルを取得する。RAIDレベルは、たとえば、RAID1、RAID5、RAID6、RAID1+0、RAID5+0などがあるが、その他のRAIDレベルであってもよい。
[ステップS12]RAID制御部16は、ディスク種別を取得する。ディスク種別は、HDDの回転数である。HDDの回転数は、たとえば、15krpm(revolution per minute)、10krpm、7.2krpmなどがある。なお、ディスク種別は、ディスクの性能を区別する指標であれば、HDDの回転数に限らず、HDDのサイズや記録容量、バッファ容量、最大読み出し速度や最大書き込み速度、MTBF(平均故障間隔)などであってもよい。また、ディスクの性能を区別する指標は、1つに限らず複数あってもよい。また、ディスクは、HDDに限らず、SSDなどであってもよい。
[ステップS13]RAID制御部16は、ディスク実構成数を取得する。ディスク実構成数は、新規に追加されたRAIDグループに割り当てられたディスクの数である。
[ステップS14]RAID制御部16は、性能情報テーブルを参照する。性能情報テーブルは、あらかじめRAIDレベル、ディスク種別に用意される。たとえば、性能情報テーブルは、メモリ33に保持されるが、ホストコンピュータ11など外部装置から取得されるものであってもよい。
ここで、性能情報テーブルについて図7を用いて説明する。図7は、第2の実施形態の性能情報テーブルの一例を示す図である。性能情報テーブル100は、あらかじめ用意されている性能情報テーブルの一例である。性能情報テーブル100は、RAIDレベル、ディスク種別(回転数)、基本構成ディスク数、転送単位(kbyte)、および要求性能(MB/s)を項目として有する。RAIDレベル、ディスク種別(回転数)は、あらかじめ用意されている性能情報テーブルのうちから対応する性能情報テーブルを参照するためのインデックスとなる項目である。性能情報テーブル100は、新規に追加されたRAIDグループが、RAIDレベル「RAID5」、ディスク種別「15krpm」であるときに参照される。基本構成ディスク数は、RAIDレベルに応じたディスク数であり、RAIDレベル「RAID5」の基本構成ディスク数は、「5」である。
転送単位は、RAIDグループに設定される転送単位である。たとえば、転送単位は、基本転送単位Nを基準にして7段階に分けられている。まず、第1段階が「N×8より大きい範囲」、第2段階が「N×8からN×4の範囲」、第3段階が「N×4からN+1の範囲」、第4段階が「N」、第5段階が「N−1からN/4の範囲」、第6段階が「N/4からN/8の範囲」、第7段階が「N/8より小さい範囲」である。なお、転送単位は、たとえば、5段階や10段階など任意の段階に設定してもよい。また、各段階の刻み幅も任意の刻み幅に設定してもよい。
なお、転送単位の初期値は、第4段階のN(たとえば、メインフレーム用途で「8」kbyte、バックアップ用途で「1000」kbyteなど)が設定される。転送単位は、RAIDグループの稼働状態に応じて所要のタイミングで更新される。要求性能は、転送単位ごとに要求される性能である。たとえば、転送単位Nのとき、要求性能は、「200」MB/sである。
[ステップS15]RAID制御部16は、RAIDグループにおける単位時間当たりのI/O処理数を算出する。RAID制御部16は、性能情報テーブル100の要求性能を転送単位で除することにより単位時間当たりのI/O処理数を算出する。たとえば、要求性能「200」MB/s、転送単位Nのとき、単位時間当たりのI/O処理数は、「200/N」である。
[ステップS16]RAID制御部16は、RAIDグループにおける構成ディスク比率を算出する。RAID制御部16は、ステップS13で取得したディスク実構成数を性能情報テーブル100の基本構成ディスク数で除することにより構成ディスク比率を算出する。たとえば、ディスク実構成数「5」、基本構成ディスク数「5」のとき、構成ディスク比率は、「1」であり、ディスク実構成数「6」、基本構成ディスク数「5」のとき、構成ディスク比率は、「1.2」である。構成ディスク比率は、「1」以上の値をとり、値が大きいほどI/O発行可能数を大きくすることができる。
[ステップS17]RAID制御部16は、管理時間当たりのI/O発行可能数を算出する。RAID制御部16は、ステップS15で算出した単位時間当たりのI/O処理数と、ステップS16で算出した構成ディスク比率と、管理時間の積により管理時間当たりのI/O発行可能数を算出する。たとえば、単位時間当たりのI/O処理数「200/N」、構成ディスク比率「1」、管理時間「1(秒)」のとき、管理時間当たりのI/O発行可能数は、「200/N(=(200/N)×1×1)」である。なお、管理時間は、あらかじめ設定される値である。
[ステップS18]RAID制御部16は、I/O発行数管理テーブルを生成する。I/O発行数管理テーブルは、RAIDグループごとに生成される。
ここで、I/O発行数管理テーブルについて図8を用いて説明する。図8は、第2の実施形態のI/O発行数管理テーブルの一例を示す図である。I/O発行数管理テーブル110は、RAID制御部16がRAIDグループごとに生成するI/O発行数管理テーブルの一例である。I/O発行数管理テーブル110は、RAIDグループ識別情報、転送単位(kbyte)、およびI/O発行可能数を項目として有する。RAIDグループ識別情報は、RAIDグループを一意に特定可能な識別情報である。I/O発行数管理テーブル110は、RAIDグループ「#1」のI/O発行数管理テーブルである。転送単位(kbyte)は、所定の転送単位を示す。I/O発行数管理テーブル110の転送単位は、性能情報テーブル100の転送単位と同じである。I/O発行可能数は、ステップS17で算出した値を、転送単位「N」に対応するI/O発行可能数「M」に設定する。その他の転送単位のI/O発行可能数は、転送単位「N」に対応するI/O発行可能数「M」に所定の計数を乗じた値が設定される。たとえば、転送単位「N×4からN+1の範囲」に対応するI/O発行可能数は、「k3×M」である。所定の計数「k1」,「k2」,「k3」,「k4」,「k5」,「k6」は、転送単位ごとにあらかじめ設定される。
RAID制御部16は、生成したI/O発行数管理テーブルをメモリ33に保持する。したがって、RAID制御部16は、RAIDグループごとにI/O発行数管理テーブルをメモリ33に保持する。
[ステップS19]RAID制御部16は、I/O発行数管理テーブルを参照して、設定されている転送単位に対応するI/O発行可能数を取得して設定する。たとえば、RAID制御部16は、I/O発行数管理テーブル110を参照して、初期値として設定されている転送単位「N」に対応するI/O発行可能数「M」を取得し、RAIDグループ「#1」のI/O発行可能数に「M」を設定する。
[ステップS20]RAID制御部16は、新規に追加されたRAIDグループのI/O制御を開始し、RAIDグループ追加処理を終了する。
次に、第2の実施形態のRAID制御部16が実行するRAIDグループI/O受付処理について図9を用いて説明する。図9は、第2の実施形態のRAIDグループI/O受付処理のフローチャートを示す図である。RAIDグループI/O受付処理は、RAID制御部16がホストI/O制御部15からI/O要求を受け付けることにより実行される。RAIDグループI/O受付処理は、ホストI/O制御部15から受け付けたI/O要求をI/O発行待ちキューにキューイングするとともに、RAIDグループ追加処理で設定したI/O発行可能数を更新する処理である。
[ステップS21]RAID制御部16(より詳しくはI/O発行可能数算出部25)は、I/O受付部22がホストI/O制御部15から受け付けたI/O要求を、I/O要求に対応するRAIDグループごとのI/O発行待ちキューにキューイングする。
[ステップS22]RAID制御部16は、RAIDグループごとのI/O要求の統計情報を更新する。統計情報は、所定の監視時間当たりの転送単位使用頻度を含み、統計情報管理テーブルに記録される。統計情報管理テーブルは、メモリ33に保持される。ここで、統計情報管理テーブルについて図10を用いて説明する。図10は、第2の実施形態の統計情報管理テーブルの一例を示す図である。
統計情報管理テーブル120は、RAID制御部16がRAIDグループごとに管理する統計情報管理テーブルの一例である。統計情報管理テーブル120は、RAIDグループ識別情報、転送単位(kbyte)、および受付I/O数を項目として有する。RAIDグループ識別情報は、RAIDグループを一意に特定可能な識別情報である。
統計情報管理テーブル120は、RAIDグループ「#1」のI/O発行数管理テーブルである。転送単位(kbyte)は、所定の転送単位を示す。統計情報管理テーブル120の転送単位は、性能情報テーブル100の転送単位、およびI/O発行数管理テーブル110の転送単位と同じである。受付I/O数は、所定の監視時間当たりの転送単位使用頻度である。より詳しくは、受付I/O数は、I/O受付部22が受け付けたI/O要求のデータサイズに対応する転送単位ごとのI/O要求の受付数である。たとえば、転送単位「N」の受付I/O数「30」は、所定の監視時間の間に、データサイズ「N」のI/O要求を30回受け付けたことを示す。
なお、所定の監視時間は、たとえば、60分など統計的に有意な情報を収集できる時間を任意に設定することができる。監視時間は、RAIDグループで共通の値としてもよいし、RAIDグループごとに異なる値としてもよい。また、監視時間は、あらかじめ設定する固定値としてもよいし、時間帯や時間当たりのI/O要求数に応じた可変値としてもよい。
[ステップS23]RAID制御部16は、I/O発行可能数の更新タイミングであるか否かを判定する。更新タイミングは、あらかじめ設定した更新周期(たとえば、1分など)であってもよいし、所定のトリガ検出(たとえば、統計情報管理テーブル120の受付I/O数のいずれかが所定値を超えたなど)であってもよい。RAID制御部16は、I/O発行可能数の更新タイミングである場合にステップS24にすすみ、I/O発行可能数の更新タイミングでない場合にRAIDグループI/O受付処理を終了する。
[ステップS24]RAID制御部16は、統計情報管理テーブルを参照して受付I/O数のボリュームゾーンを選択する。たとえば、RAID制御部16は、統計情報管理テーブル120を参照して、受付I/O数のボリュームゾーンとして受付I/O数が最大の「1000」となる転送単位「N/4からN/8の範囲」を選択する。なお、ボリュームゾーンとして選択する転送単位は、受付I/O数が最大となる場合に限らず、平均値や中央値など所定の選択基準に従い選択されるものであってもよい。
[ステップS25]RAID制御部16は、I/O発行数管理テーブルを参照して、選択した転送単位に対応するI/O発行可能数を取得して設定する。たとえば、RAID制御部16は、転送単位「N/4からN/8の範囲」を選択した場合、I/O発行数管理テーブル110を参照して、転送単位「N/4からN/8の範囲」に対応するI/O発行可能数「k5×M」を取得し、RAIDグループ「#1」のI/O発行可能数に「k5×M」を設定する。RAID制御部16は、I/O発行可能数を設定した後、RAIDグループI/O受付処理を終了する。
このように、I/O発行可能数は、受け付けたI/O要求に応じて適宜更新される。
次に、第2の実施形態のRAID制御部16が実行するRAIDグループI/O発行数管理処理について図11を用いて説明する。図11は、第2の実施形態のRAIDグループI/O発行数管理処理のフローチャートを示す図である。RAIDグループI/O発行数管理処理は、RAIDグループのI/O制御の開始を受けて実行される。RAIDグループI/O受付処理は、I/O発行待ちキューにキューイングされているI/O要求をI/O発行可能数の範囲に制限しながらRAIDグループにI/O要求を発行する処理である。
[ステップS31]RAID制御部16(より詳しくはI/O発行数管理部23)は、I/O発行待ちキューにキューイングされているI/O要求の数(受付I/O発行数)が「0」より大きいか否かを判定する。すなわち、RAID制御部16は、I/O発行待ちキューにキューイングされているI/O要求があるか否かを判定する。RAID制御部16は、I/O発行待ちキューにキューイングされているI/O要求がある場合にステップS32にすすみ、I/O要求がない場合にI/O発行待ちキューへのキューイングを待ち受ける。
[ステップS32]RAID制御部16は、受付I/O発行数がRAIDグループに設定されているI/O発行可能数を超えているか否かを判定する。RAID制御部16は、受付I/O発行数がI/O発行可能数を超えている場合にステップS33にすすみ、受付I/O発行数がI/O発行可能数を超えていない場合にステップS34にすすむ。
[ステップS33]RAID制御部16は、I/O発行待ちキューにキューイングされているI/O要求のうちからI/O発行可能数だけI/O要求をディスクI/O制御部17に向けて発行する。
[ステップS34]RAID制御部16は、I/O発行待ちキューにキューイングされているI/O要求をディスクI/O制御部17に向けて発行する。
[ステップS35]RAID制御部16は、I/O要求の発行後の管理時間の経過を待つ。管理時間は、RAIDグループ追加処理のステップS17でI/O発行可能数を算出した際に用いた管理時間である。RAID制御部16は、I/O要求の発行後の管理時間を経過している場合にステップS31にすすみ、I/O要求の発行後の管理時間を経過していない場合に管理時間の経過を待つ。
このようにして、RAID制御部16は、RAIDグループに向けて発行するI/O要求の数を、管理時間当たりI/O発行可能数の範囲に制限することができる。したがって、RAIDグループを構成する一部のHDD19の処理性能が過大であっても、RAIDグループのI/O処理数が過大になることがない。
したがって、RAID装置12は、性能の上限が多様なHDD19を搭載しても、RAIDグループを構成したときに所定の性能値を得ることができる。このようなRAID装置12は、搭載するHDD19のマルチベンダ化の推進の障害となることがない。また、このようなRAID装置12は、搭載するHDD19の性能最適化に伴う、RAID装置ベンダおよびHDDベンダの作業負担を軽減することができる。
また、このようなRAID装置12は、RAIDグループを構成するHDD19を故障などにより交換したような場合に、RAIDグループの応答性能が著しく変化することがない。したがって、RAID装置12は、メンテナンスの前後においてユーザに対して安定した性能を発揮するRAIDグループを提供することができる。
また、RAID装置12は、新規にRAIDグループを構成したときに、新規に構成したRAIDグループとすでにあるRAIDグループとの間で性能差が過大になることがない。したがって、RAID装置12は、ユーザに対して安定した性能を発揮するRAIDグループを提供することができる。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、ストレージ制御装置1、RAID装置12、コントローラモジュール13などが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD、DVD−RAM、CD−ROM/RWなどがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
また、上記の処理機能の少なくとも一部を、DSP、ASIC、PLDなどの電子回路で実現することもできる。
1 ストレージ制御装置
2 設定部
3 発行制御部
4 要求蓄積部
5 ストレージ装置
6 I/O発行可能数
7 I/O要求
9 ホストコンピュータ
10 ストレージシステム
11 ホストコンピュータ
12 RAID装置
13 コントローラモジュール(CM)
14 ドライブエンクロージャ(DE)
15 ホストI/O制御部
16 RAID制御部
17 ディスクI/O制御部
19 HDD
20,22,29 I/O受付部
21,28,30 I/O完了受付部
23 I/O発行数管理部
24 管理時間監視部
25 I/O発行可能数算出部
26 性能情報テーブル
27 I/O発行可能数
31 チャネルアダプタ
32 プロセッサ
33 メモリ
34 ディスクアダプタ
100 性能情報テーブル
110 I/O発行数管理テーブル
120 統計情報管理テーブル

Claims (7)

  1. 論理ボリュームにおけるストレージ装置の構成、および前記ストレージ装置の性能にもとづいて前記論理ボリュームに対して単位時間当たりに発行可能なI/O発行可能数を可変設定する設定部と、
    前記論理ボリュームに対して受け付けたI/O要求を要求蓄積部に蓄積し、前記要求蓄積部が蓄積する前記I/O要求のうちから、単位時間当たりのI/O発行数を設定された前記I/O発行可能数の範囲に制限して前記論理ボリュームに前記I/O要求の発行をおこなう発行制御部と、
    を備えることを特徴とするストレージ制御装置。
  2. 前記設定部は、前記ストレージ装置の構成、および前記ストレージ装置の性能ごとに要求される性能情報にもとづいて、前記論理ボリュームごとに前記性能情報から導出されるI/O発行可能数を前記I/O発行可能数として設定することを特徴とする請求項1記載のストレージ制御装置。
  3. 前記設定部は、前記発行制御部が所定時間の間に発行した前記I/O要求の転送単位に応じて前記I/O発行可能数を変更することを特徴とする請求項1または請求項2記載のストレージ制御装置。
  4. 前記発行制御部は、前記所定時間の間に発行した前記I/O要求の転送単位を統計情報として保持し、前記統計情報にもとづいて前記転送単位を選択することを特徴とする請求項3記載のストレージ制御装置。
  5. 前記設定部は、前記論理ボリュームの生成時に前記性能情報にもとづいて転送単位ごとに対応するI/O発行可能数を算出することを特徴とする請求項記載のストレージ制御装置。
  6. コンピュータに、
    論理ボリュームにおけるストレージ装置の構成、および前記ストレージ装置の性能にもとづいて前記論理ボリュームに対して単位時間当たりに発行可能なI/O発行可能数を可変設定し、
    前記論理ボリュームに対して受け付けたI/O要求を要求蓄積部に蓄積し、前記要求蓄積部が蓄積する前記I/O要求のうちから、単位時間当たりのI/O発行数を設定された前記I/O発行可能数の範囲に制限して前記論理ボリュームに前記I/O要求の発行をおこなう、
    処理を実行させることを特徴とするストレージ制御プログラム。
  7. コンピュータが、
    論理ボリュームにおけるストレージ装置の構成、および前記ストレージ装置の性能にもとづいて前記論理ボリュームに対して単位時間当たりに発行可能なI/O発行可能数を可変設定し、
    前記論理ボリュームに対して受け付けたI/O要求を要求蓄積部に蓄積し、前記要求蓄積部が蓄積する前記I/O要求のうちから、単位時間当たりのI/O発行数を設定された前記I/O発行可能数の範囲に制限して前記論理ボリュームに前記I/O要求の発行をおこなう、
    処理を実行することを特徴とするストレージ制御方法。
JP2013154585A 2013-07-25 2013-07-25 ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法 Expired - Fee Related JP6229347B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013154585A JP6229347B2 (ja) 2013-07-25 2013-07-25 ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法
US14/333,624 US9727279B2 (en) 2013-07-25 2014-07-17 Storage control apparatus controlling issuable number of requests and storage control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013154585A JP6229347B2 (ja) 2013-07-25 2013-07-25 ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法

Publications (2)

Publication Number Publication Date
JP2015026183A JP2015026183A (ja) 2015-02-05
JP6229347B2 true JP6229347B2 (ja) 2017-11-15

Family

ID=52391481

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013154585A Expired - Fee Related JP6229347B2 (ja) 2013-07-25 2013-07-25 ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法

Country Status (2)

Country Link
US (1) US9727279B2 (ja)
JP (1) JP6229347B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5949801B2 (ja) * 2014-01-29 2016-07-13 日本電気株式会社 ディスクアレイ装置、制御方法、および、プログラム
KR102776518B1 (ko) * 2016-12-01 2025-03-07 삼성전자주식회사 호스트와 양방향 통신을 수행하도록 구성된 스토리지 장치 및 그것의 동작 방법
JP6859684B2 (ja) * 2016-12-05 2021-04-14 富士通株式会社 ストレージ制御装置、ストレージ装置、及び制御プログラム
US12423025B1 (en) * 2024-05-24 2025-09-23 Amazon Technologies, Inc. Shuffle-based request buffer for managing large request volumes

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0863298A (ja) 1994-08-18 1996-03-08 Hitachi Ltd ディスクアレイ装置
JPH0869359A (ja) 1994-08-29 1996-03-12 Hitachi Ltd ディスクアレイ装置
JP2914367B2 (ja) * 1997-12-05 1999-06-28 日本電気株式会社 ディスクアレイ装置
JP2005332236A (ja) * 2004-05-20 2005-12-02 Fujitsu Ltd I/oコマンド投入数の動的変換システム
JP4903409B2 (ja) * 2005-09-13 2012-03-28 株式会社日立製作所 管理装置及び管理方法並びにストレージシステム
US7552280B1 (en) * 2006-06-28 2009-06-23 Emc Corporation Asymmetrically interleaving access to redundant storage devices
JP2008186211A (ja) * 2007-01-30 2008-08-14 Hitachi Ltd 計算機システム
US8554983B2 (en) * 2008-05-27 2013-10-08 Micron Technology, Inc. Devices and methods for operating a solid state drive
JP2009294949A (ja) * 2008-06-05 2009-12-17 Hitachi Ltd ストレージ装置及びその性能測定方法
US8762671B2 (en) * 2011-06-28 2014-06-24 Hitachi, Ltd. Storage apparatus and its control method
JP2013164822A (ja) * 2012-02-13 2013-08-22 Fujitsu Ltd 負荷閾値算出プログラム、負荷閾値算出装置および負荷閾値算出方法
US9760294B2 (en) * 2012-11-07 2017-09-12 Hitachi, Ltd. Computer system, storage management computer, and storage management method

Also Published As

Publication number Publication date
US20150032955A1 (en) 2015-01-29
JP2015026183A (ja) 2015-02-05
US9727279B2 (en) 2017-08-08

Similar Documents

Publication Publication Date Title
US8321646B2 (en) Method and apparatus for rebalancing storage components within a storage tier
US9542125B1 (en) Managing data relocation in storage systems
JP5270801B2 (ja) デバイス・アダプタを介して、データをキャッシュから複数のストレージ・デバイスの各々にデステージするための方法、システム及びコンピュータ・プログラム
CN103970688B (zh) 缩短数据存储系统中写入等待时间的方法和系统
US9003150B2 (en) Tiered storage system configured to implement data relocation without degrading response performance and method
CN105190567B (zh) 用于管理存储系统快照的系统和方法
JP5706531B2 (ja) 計算機システム、及び情報管理方法
US9015373B2 (en) Storage apparatus and method of controlling storage apparatus
US8984190B2 (en) Methods and devices for booting a network attached storage with two logical units
US8516289B2 (en) Storage management apparatus for controlling power supply to storages, storage system including the same, and method for controlling power supply to storages
CN102171649A (zh) 用于用单个命令对多个不连续地址范围的传送进行排队的方法和系统
US10761738B2 (en) Raid performance by offloading tasks to expanders
CN106250051B (zh) 磁盘驱动器速度管理方法与系统
CN110770691B (zh) 混合数据存储阵列
JP6229347B2 (ja) ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法
GB2537713A (en) Performance tempered data storage device
US20090276647A1 (en) Storage device power consumption state
US9626997B1 (en) Variable spinning rates for hard disk drives
TW201608469A (zh) 有效率釋出序列輸入輸出串流的方法及裝置
JP6554990B2 (ja) ストレージ制御装置およびストレージ制御プログラム
JP2014048834A (ja) 情報処理装置、コピー制御プログラム、およびコピー制御方法
US12443437B2 (en) Informed optimization of thread group scheduling
US20200073569A1 (en) Storage control system and storage control method
CN111427512A (zh) 一种流量控制方法及装置
US10209888B2 (en) Computer and optimization method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160405

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170410

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170919

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171002

R150 Certificate of patent or registration of utility model

Ref document number: 6229347

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees