JP4804175B2 - I/oコマンドをキューイングするストレージシステム及びその制御方法 - Google Patents

I/oコマンドをキューイングするストレージシステム及びその制御方法 Download PDF

Info

Publication number
JP4804175B2
JP4804175B2 JP2006056358A JP2006056358A JP4804175B2 JP 4804175 B2 JP4804175 B2 JP 4804175B2 JP 2006056358 A JP2006056358 A JP 2006056358A JP 2006056358 A JP2006056358 A JP 2006056358A JP 4804175 B2 JP4804175 B2 JP 4804175B2
Authority
JP
Japan
Prior art keywords
command
queuing
commands
received
predetermined condition
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
JP2006056358A
Other languages
English (en)
Other versions
JP2007233834A5 (ja
JP2007233834A (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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2006056358A priority Critical patent/JP4804175B2/ja
Priority to US11/403,846 priority patent/US7363391B2/en
Publication of JP2007233834A publication Critical patent/JP2007233834A/ja
Publication of JP2007233834A5 publication Critical patent/JP2007233834A5/ja
Application granted granted Critical
Publication of JP4804175B2 publication Critical patent/JP4804175B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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; 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
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本願明細書で開示される技術は、ストレージシステムの性能向上に関し、特に、I/Oコマンドのキューイングを制御することによって最適な性能を実現する技術に関する。
ストレージシステムは、ホスト計算機からI/Oコマンドを受け付けると、そのI/Oコマンドに従って、ディスクドライブに対するデータの書き込み又は読み出しを実行する。一つのI/Oコマンドの実行が終了する前に、ストレージシステムが次のI/Oコマンドを受け付けた場合、受け付けたI/Oコマンドは、FIFO型のメモリに一時的に格納され、実行されるのを待つ。このように、一つ以上のI/Oコマンドをメモリに蓄積し、実行を待たせることは、I/Oコマンドのキューイングと呼ばれる。複数のI/Oコマンドが実行を待っている場合、それらのI/Oコマンドを並べ替えて、受け付けた順序と異なる順序で実行することによって、実行に要する時間を短縮することができる場合がある。例えば、ディスクドライブのヘッドシーク時間又は回転待ち時間が最短となるようにI/Oコマンドを並べ替えることによってI/Oコマンドの実行時間を短縮する技術が開示されている(特許文献1参照)。
特開平6−259198号公報
上記の従来のストレージシステムは、レスポンスタイムの短縮を優先するため、ホスト計算機からI/Oコマンドを受け付けると、それを直ちに実行する。一方、短時間に大量のI/Oコマンドを受け付けた場合等、I/Oコマンドの実行待ちが発生した場合にのみ、上記のようなI/Oコマンドの並べ替えが実行される。
しかし、近年、計算機が管理するデータ量が爆発的に増加したため、プログラムがアクセスするストレージシステム内のデータ量も増大している。大量のデータにアクセスするプログラムの性能は、レスポンスタイムよりもスループットに強く依存する。スループット向上のためには、I/Oコマンドを直ちに実行できる場合であっても、積極的にキューイングを実行することによって大量のI/Oコマンドを蓄積し、順序を並べ替えて実行することが望ましい。その一方で、プログラムの種類又はそれが実行される状況等によっては、レスポンスタイムの短縮が要求される場合もある。そのような場合には、受け付けた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の実施の形態によれば、I/Oコマンドによって指定された領域(すなわち、データの書き込み又は読み出しの対象の領域)に基づいて、受け付けたI/Oコマンドがキューイングの対象であるか否かが判定される。具体的には、システム管理者が、データが格納される領域のうち所定の範囲(例えば、所定の論理ユニットの一部又は全部)に予めI/Oキューイング属性を付与する。ホスト計算機は、データの書き込み又は読み出しの対象として所定の領域を指定したI/Oコマンドを発行する。I/Oコマンドを受け付けたストレージシステムは、そのI/Oコマンドによって指定されている領域にI/Oキューイング属性が付与されている場合、そのI/Oコマンドがキューイングの対象であると判定する。ストレージシステムは、キューイングの対象と判定されたI/Oコマンドをキューイングする。すなわち、ストレージシステムは、キューイングの対象と判定された複数のI/Oコマンドをメモリに蓄積して、実行を待たせる。さらに、ストレージシステムは、蓄積されたI/Oコマンドの実行時間の総和が短くなるように並べ替えた後、指定された領域に対する書き込み又は読み出しを実行する。
本発明の第2の実施の形態によれば、I/Oコマンドを発行したホスト計算機に基づいて、受け付けたI/Oコマンドがキューイングの対象であるか否かが判定される。具体的には、I/Oコマンドを発行したホスト計算機が予め定められたホスト計算機である場合に、そのI/Oコマンドがキューイングの対象であると判定される。
本発明の第3の実施の形態によれば、I/Oコマンドに付与された優先度に基づいて、受け付けたI/Oコマンドがキューイングの対象であるか否かが判定される。
本発明の第4の実施の形態によれば、キューイングコマンド及びリリースコマンドによってキューイングを実行するか否かが制御される。具体的には、ストレージシステムは、キューイングコマンドを受け付けてからリリースコマンドを受け付けるまでの間に受け付けたI/Oコマンドをキューイングの対象であると判定する。
本発明の第5の実施の形態によれば、ホスト計算機によって指定された論理ユニット(LU)に基づいて、受け付けたI/Oコマンドがキューイングの対象であるか否かが判定される。具体的には、一つのLUが、キューイング対象のLU(すなわちキューイングLU)及びキューイング対象でないLU(すなわち即時実行LU)の二つのLUとしてホスト計算機に提供される。ホスト計算機がキューイングLUを指定したI/Oコマンドを発行した場合、そのI/Oコマンドはキューイングの対象であると判定される。
次に、各実施の形態を詳細に説明する。
図1は、本発明の第1の実施の形態の計算機システムの構成を示すブロック図である。
本実施の形態の計算機システムは、ホスト101、ストレージシステム103及びストレージ管理装置104を備える。ホスト101及びストレージシステム103は、ネットワーク102を介して接続される。一方、ストレージ管理装置104及びストレージシステム103は、管理ネットワーク105を介して接続される。
ホスト101は、ストレージシステム103を使用する計算機である。具体的には、ホスト101は、アプリケーションプログラムを格納するメモリ(図示省略)と、そのアプリケーションプログラムを実行するプロセッサ(図示省略)と、ホスト101をネットワーク102に接続するためのインターフェース(図示省略)と、を備える。ネットワーク102がストレージエリアネットワーク(SAN)である場合、インターフェースはいわゆるホストバスアダプタ(HBA)であってもよい。アプリケーションプログラムは、必要に応じて、ストレージシステム103に対してデータI/Oコマンドを発行する。
ネットワーク102は、例えば、ファイバーチャネル(FC)プロトコルが適用されるストレージエリアネットワーク(SAN)であるが、その他の任意の形態のネットワークであってもよい。例えば、ネットワーク102がインターネットプロトコル(IP)ネットワークであり、ホスト101及びストレージシステム103がiSCSIプロトコルによって通信してもよい。
ストレージシステム103は、ホスト101から受け付けたI/Oコマンドに従って、データの書き込み又は読み出しを実行する。本実施の形態のストレージシステム103は、コマンド受付部111、キャッシュ管理部112、キューイング判定部113、キューイング処理部114、キューイング制御部115、アドレス変換部116、ドライブ制御部117、キューイング可否判定テーブル131、キューイング管理テーブル132、及び、記憶装置121から123を備える。
なお、後で図20を参照して説明するように、コマンド受付部111、キャッシュ管理部112、キューイング判定部113、キューイング処理部114、キューイング制御部115、アドレス変換部116及びドライブ制御部117は、メモリ142に格納され、プロセッサ141によって実行されるプログラムである。したがって、以下の説明において上記の各部が実行する処理は、実際にはプロセッサ141によって実行される。また、キューイング可否判定テーブル131及びキューイング管理テーブル132は、メモリ142に格納され、上記のプログラムによって参照される。
コマンド受付部111は、ホスト101からネットワーク102を介してI/Oコマンドを受け付ける。
キャッシュ管理部112は、ストレージシステム103内のキャッシュメモリ143(図20参照)を管理する。具体的には、キャッシュ管理部112は、I/Oコマンドのキャッシュヒット判定を実行する(図19参照)。なお、キャッシュメモリ143を備えないストレージシステム103は、キャッシュ管理部112も備えない。このようなストレージシステム103においても、本発明を実施することができる。
キューイング判定部113は、キューイング可否判定テーブル131を参照して、I/Oコマンドをキューイングするか否かを判定する。
キューイング処理部114は、キューイング管理テーブル132の内容に従ってI/Oコマンドをキューイングし、実行に要する時間が最小になるようにI/Oコマンドを並べ替える。この並べ替えは、後述するように、従来と同じ方法によって実行されてもよい。
キューイング制御部115は、ストレージ管理装置104から受け付けた指示に従って、キューイング可否判定テーブル131及びキューイング管理テーブル132を設定する。
アドレス変換部116は、I/Oコマンドによって指定されたアドレスを、実際の記憶装置121等のアドレスに変換する。I/Oコマンドは、データの書き込み又は読み出しの対象を、仮想的なアドレス(例えば、論理ユニット番号(LUN))によって指定する。アドレス変換部116は、そのLUN等を、物理的なアドレスに変換する。なお、I/Oコマンドが物理的なアドレスを直接指定する場合、アドレス変換部116はなくてもよい。
ドライブ制御部117は、I/Oコマンドに従って、記憶装置121等に対してデータの書き込み又は読み出しを実行する。
記憶装置121から123は、I/Oコマンドによって書き込まれたデータを格納する装置である。記憶装置121等は、ハードディスクドライブ(HDD)、光ディスクドライブ、半導体記憶装置又はその他の記憶装置であってもよい。図1には三つの記憶装置121等を示すが、ストレージ103は、任意の数の記憶装置121等を備えることができる。複数の記憶装置121等は、ディスクアレイを構成してもよい。
記憶装置121等の記憶領域は、仮想的な記憶領域としてホスト101に認識される。仮想的な記憶領域とは、例えば、ボリュームグループ(VG)又は論理ユニット(LU)である。VGとは、ディスクアレイの構成単位である。通常、一つのVGは複数の記憶装置121等を含む。論理ユニットとは、ホスト101が仮想的に一つの記憶装置として認識する領域である。一つの論理ユニットは、一つの記憶装置121等に対応してもよいし、記憶装置121等の一部又は複数の記憶装置121等と対応してもよい。あるいは、ホスト101は各記憶装置121等を直接認識してもよい。
ストレージ管理装置104は、管理ネットワーク105を介してストレージシステム103を制御する計算機である。具体的には、ストレージ管理装置104は、キューイング可否判定テーブル131及びキューイング管理テーブル132を設定する指示をキューイング制御部115に送信する。
ストレージ管理装置104は、システム管理者に対して管理画面を表示するための出力装置(図示省略)と、システム管理者が種々の指示を入力するための入力装置(図示省略)とを備える。出力装置に表示される画面については、後で詳細に説明する(図4等参照)。入力装置は、キーボード及びポインティングデバイス(例えば、マウス)を含んでもよい。
管理ネットワーク105は、例えばローカルエリアネットワーク(LAN)であるが、他の種類のネットワークであってもよい。
図20は、本発明の第1の実施の形態のストレージシステム103のハードウエア構成を示すブロック図である。
ストレージシステム103は、ホスト101及びストレージ管理装置104と通信して、記憶装置121等に対するデータのI/Oを制御するコントローラ140を備える。
コントローラ140は、相互に接続されたプロセッサ141、メモリ142、キャッシュメモリ143、ホストインターフェース(I/F)144、管理I/F145及びドライブI/F146を備える。
プロセッサ141は、メモリ142に格納されたプログラムを実行する。
メモリ142は、例えば半導体メモリであり、プロセッサ141によって実行されるプログラム及びそれらのプログラムが参照するデータを格納する。本実施の形態のメモリ142は、コマンド受付部111、キャッシュ管理部112、キューイング判定部113、キューイング処理部114、キューイング制御部115、アドレス変換部116、ドライブ制御部117、キューイング可否判定テーブル131及びキューイング管理テーブル132を格納する。
メモリ142は、さらに、キューイングの対象と判定されたI/Oコマンドを格納してもよい。
キャッシュメモリ143は、データI/O処理を高速化するために、記憶装置121等に書き込まれるデータ又は記憶装置121等から読み出されたデータを一時的に格納する半導体メモリである。高速な処理が要求されない場合、ストレージシステム103はキャッシュメモリ143を備えなくてもよい。その場合にも、本実施の形態を実現することができる。
ホストI/F144は、ネットワーク102を介してホスト101と通信するインターフェースである。
管理I/F145は、管理ネットワーク105を介してストレージ管理装置104と通信するインターフェースである。
ドライブI/F146は、ドライブ制御部117からの指示に従って、記憶装置121等に対するデータの書き込み又は読み出しを実行するインターフェースである。
本実施の形態において、コマンド受付部111、キャッシュ管理部112、キューイング判定部113、キューイング処理部114、キューイング制御部115、アドレス変換部116及びドライブ制御部117は、プロセッサ141によって実行されるプログラムであるが、これらを専用ハードウエアとして構成しても本実施の形態を実現することができる。
図19は、本発明の第1の実施の形態のキャッシュ管理部112が実行する処理を示すフローチャートである。
コマンド受付部111がホスト101からI/Oコマンドを受け付けると、キャッシュ管理部112は、キャッシュヒットをしたか否かを判定する(1901)。言い換えると、キャッシュ管理部112は、受け付けたI/Oコマンドに対応するキャッシュがキャッシュメモリ143内に存在するか否かを判定する。
ステップ1901においてキャッシュヒットしたと判定された場合、キャッシュ管理部112は、キャッシュを参照して、ホスト101にデータを返す(1902)。この場合、キューイング判定部113は、図2において説明する処理を実行しない。
一方、ステップ1901においてキャッシュミスしたと判定された場合、キャッシュ管理部112は、受け付けたI/Oコマンドをキューイング判定部113に送る(1903)。そのI/Oコマンドを受け付けたキューイング判定部は、図2に示す処理を実行する。
なお、ストレージシステム103がキャッシュメモリ143を備えない場合、図19の処理が実行されることはなく、全てのI/Oコマンドについて図2の処理が実行される。
図2は、本発明の第1の実施の形態のキューイング判定部113が実行する処理を示すフローチャートである。
キューイング判定部113は、最初に、キューイング可否判定テーブル131を参照して、受け付けたI/Oコマンドがキューイング可否判定テーブル131に設定された条件を満たすか否かを調査する(201)。このときに参照されるキューイング可否判定テーブル131については、後で詳細に説明する(図3参照)。
次に、キューイング判定部113は、ステップ201の調査の結果、I/Oコマンドが条件満たすか否かを判定する(202)。
本実施の形態のキューイング判定部113がステップ201及び202において実行する処理については、後で詳細に説明する(図5参照)。
ステップ202において条件を満たさないと判定された場合、受け付けたI/Oコマンドは、キューイングの対象でない。この場合、キューイング判定部113は、I/Oコマンドをアドレス変換部116に送る(204)。
アドレス変換部116は、I/Oコマンドが指定するLUN等を物理的なアドレスに変換して、そのアドレスをドライブ制御部117に送る。ドライブ制御部117は、物理的なアドレスに対して、I/Oコマンド(データの書き込み又は読み出し)を、受け付けた順に実行する。なお、I/Oコマンドが物理的なアドレスを直接指定している場合、アドレス変換部116の処理は省略される。この場合、ステップ204においてI/Oコマンドがドライブ制御部117に送られる。
一方、ステップ202において条件を満たすと判定された場合、受け付けたI/Oコマンドは、キューイングの対象である。この場合、キューイング判定部113は、キューイングを実行させるために、I/Oコマンドをキューイング処理部114に送る(203)。
キューイング処理部114は、キューイング管理テーブル132を参照して、所定の時間又は所定の数のI/Oコマンドをキューイングする。本実施の形態のキューイング処理部114は、キューイングの対象と判定されたI/Oコマンドを、メモリ142に格納することによって蓄積する。しかし、これらのI/Oコマンドは、他のメモリ又は記憶装置に格納されてもよい。キューイング管理テーブル132については、後で詳細に説明する(図6参照)。そして、キューイング処理部114は、キューイングによって蓄積されたI/Oコマンドを、実行時間の総和が短くなるように並べ替えた後、並べ替えられた順序で実行する。具体的には、蓄積されたI/Oコマンドを、並べ替えられた順にアドレス変換部116に送る。アドレス変換部116及びドライブ制御部117が実行する処理は、ステップ204において説明した通りである。
なお、ドライブ制御部117は、並べ替えられたI/Oコマンドを、並べ替えられた順に、連続して実行することが望ましい。言い換えると、ドライブ制御部117は、並べ替えられた複数のI/Oコマンドのうち最初のI/Oコマンドを実行してから最後のI/Oコマンドを実行するまでの間に、その並べ替えの対象となっていないI/Oコマンドを実行しないことが望ましい。
結局、ステップ202において条件を満たさないと判定されたI/Oコマンドは、受け付けた順に実行される(204)。一方、ステップ202において条件を満たさないと判定されたI/Oコマンドは、蓄積され、並べ替えられた順に実行される(203)。以上で、処理が終了する。
キューイング処理部114は、従来と同様の方法でI/Oコマンドを並べ替えることができる。ここで、キューイング処理部114が実行するI/Oコマンドの並べ替えについて説明する。
例えば、キューイング処理部114は、受け付けたI/Oコマンドを、それらのI/Oコマンドが指定するアドレス(例えば、LBA)が昇順となるように並べ替えてもよい。例えば、簡単な具体例として、コマンド受付部111が、アドレス「1」、「4」、「2」及び「3」を指定しているI/Oコマンドを順次受け付け、これらの四つのI/Oコマンドがキューイングされている場合を説明する。キューイング処理部114は、これらのI/Oコマンドを「1」、「2」、「3」及び「4」の順に並べ替える。アドレスが「1」、「2」、「3」及び「4」である記憶装置121等の領域は、そのアドレスの順に物理的に連続して配置されている。このため、並べ替えられた順でコマンドを実行することによって、記憶装置121等の回転待ち時間及びシーク時間が最小となり、四つのコマンドの実行時間の総和が短縮される。
キューイング処理部114は、さらに、複数の記憶装置121等に対する処理が並列に実行されるようにI/Oコマンドを並べ替えてもよい。例えば、一つのLUが記憶装置121及び122に跨って設定されており、アドレス「1」及び「2」に対応する領域が記憶装置121に属し、アドレス「3」及び「4」に対応する領域が記憶装置122に属している場合、キューイング処理部114は、上記の四つのI/Oコマンドを「1」、「3」、「2」及び「4」の順に並べ替える。この場合、記憶装置121ではアドレス「1」及び「2」に対する処理が順次実行され、それらの処理と並列に、記憶装置122ではアドレス「3」及び「4」に対する処理が順次実行される。その結果、四つのコマンドの実行時間の総和が短縮される。
図3は、本発明の第1の実施の形態のキューイング可否判定テーブルの説明図である。
図3に示すキューイング可否判定テーブル301は、図1に示すキューイング可否判定テーブル131に相当する。
キューイング可否判定テーブル301は、項番311、ホストLU番号312、LBA313及びサイズ314からなる。
項番311は、キューイング可否判定テーブル301の各エントリ(行)を一意に識別する通し番号である。
ホストLU番号312、LBA313及びサイズ314は、I/Oキューイング属性が付与された領域を指定するフィールドである。I/Oキューイング属性とは、記憶装置121等の中のデータが格納される領域のうち、任意の範囲に、システム管理者によって付与される属性である。後述するように、キューイング属性が付与された領域を指定して発行されたI/Oコマンドは、キューイングの対象であると判定される。
ホストLU番号312は、I/Oキューイング属性が付与された領域を含むLUをホスト101に提供するために、そのLUに付与された番号(LUN)である。
LBA313は、I/Oキューイング属性が付与された領域の始点の論理ブロックのアドレス(LBA)である。
サイズ314は、I/Oキューイング属性が付与された領域の大きさである。
なお、LBA313及びサイズ314の欄に「*」が表示されている場合、LBA313及びサイズ314の値が設定されていないことを意味する。この場合、ホストLU番号312に設定されたLU全体にI/Oキューイング属性が付与されている。
図3の例において、項番311が「1」である行のホストLU番号312、LBA313及びサイズ314は、それぞれ、「1」、「*」及び「*」である。これは、LUNが「1」であるLU全体にI/Oキューイング属性が付与されていることを意味する。
一方、図3の例において、項番311が「2」である行のホストLU番号312、LBA313及びサイズ314は、それぞれ、「2」、「0」及び「128」である。これは、LUNが「2」であるLU内の、「0」から「127」までのLBAが付与された128個の論理ブロックにI/Oキューイング属性が付与されていることを意味する。
なお、図3は、LUN、LBA及びサイズによって領域を指定する例を示すが、別の方法によってI/Oキューイング属性が付与される領域を指定してもよい。例えば、I/Oキューイング属性が付与される領域の始点のLBAと終点のLBAが指定されてもよい。あるいは、I/Oキューイング属性が付与されるVG又は記憶装置121等が指定されてもよい。
図4は、本発明の第1の実施の形態のキューイング可否判定テーブル設定画面の説明図である。
図4に示すキューイング可否判定テーブル設定画面401は、図3に示すキューイング可否判定テーブル301を設定するためにストレージ管理装置104の出力装置に表示される画面である。キューイング可否判定テーブル設定画面401は、ホストLU番号入力フィールド411、LBA入力フィールド412、サイズ入力フィールド413、キューイング可否判定テーブル表示フィールド414、読み込みボタン415、保存ボタン416及び削除ボタン417を含む。
ホストLU番号入力フィールド411、LBA入力フィールド412及びサイズ入力フィールド413は、それぞれ、ホストLU番号312、LBA313及びサイズ314に設定される値を入力するためのフィールドである。
キューイング可否判定テーブル表示フィールド414には、キューイング可否判定テーブル301に既に設定されている値が表示される。システム管理者がいずれかの行を選択して読み込みボタン415を操作すると、その行に設定されている値がホストLU番号入力フィールド411、LBA入力フィールド412及びサイズ入力フィールド413に表示される。図4は、項番が「2」である行が選択された場合の例である。なお、行の選択及び各ボタンの操作は、例えば、マウスのクリックによって実行されてもよい(図7、図9、図12及び図17においても同様)。
システム管理者は、各入力フィールドに表示された値を変更することによって、キューイング可否判定テーブル301に設定される値を編集することができる。その後、システム管理者が保存ボタン416を操作すると、その時点で各入力フィールドに表示されている値がキューイング可否判定テーブル301に設定される。
システム管理者は、キューイング可否判定テーブル表示フィールド414に表示されている空欄の行を選択して、各入力フィールドに値を入力することによって、新たな値が設定された行を追加することができる。
一方、システム管理者は、既に設定されている行を選択して、削除ボタン417を操作することによって、その行を削除することができる。
図5は、本発明の第1の実施の形態のキューイング判定部113が実行する詳細な処理を示すフローチャートである。
図5に示す各ステップのうち、ステップ501から504は、図2のステップ201及び202を詳細に説明するものである。ステップ505及び506は、それぞれ、図2のステップ203及び204と同じであるため、説明を省略する。
最初に、キューイング判定部113は、キューイング可否判定テーブル301を参照して、受け付けたI/Oコマンドによって指定されたLUN(すなわち、そのI/Oコマンドによる書き込み又は読み出しの対象のLUN)がホストLU番号312として設定されているか否かを調査する(501)。
次に、キューイング判定部113は、ステップ501の調査の結果、受け付けたI/Oコマンドによって指定されたLUNが設定されているか否かを判定する(502)。
ステップ502において「設定されていない(すなわち、NO)」と判定された場合、受け付けたI/Oコマンドが指定する領域にはI/Oキューイング属性が付与されていない。すなわち、受け付けたI/Oコマンドは、キューイングの対象でない。この場合、処理はステップ506に進む。
一方、ステップ502において「設定されている(すなわち、YES)」と判定された場合、受け付けたI/Oコマンドが指定する領域にI/Oキューイング属性が付与されている可能性がある。この場合、キューイング判定部113は、キューイング可否判定テーブル301にLBA313及びサイズ314が設定されているか否かを判定する(503)。具体的には、キューイング判定部113は、受け付けたI/Oコマンドによって指定されたLUNと同一のホストLU番号312に対応するLBA313及びサイズ314に、「*」以外の値が設定されているか否かを判定する。
ステップ503において「設定されていない(すなわち、NO)」と判定された場合、受け付けたI/Oコマンドによって指定されたLU全体にI/Oキューイング属性が付与されている。すなわち、受け付けたI/Oコマンドは、キューイングの対象である。この場合、処理はステップ505に進む。
一方、ステップ503において「設定されている(すなわち、YES)」と判定された場合、受け付けたI/Oコマンドによって指定されたLUのうち、LBA313及びサイズ314によって示される領域にI/Oキューイング属性が付与されている。このため、キューイング判定部113は、I/Oコマンドによって指定された領域がLBA313及びサイズ314によって示される領域に含まれているか否かを判定する(504)。
ステップ504において「含まれる(すなわち、YES)」と判定された場合、I/Oコマンドによって指定された領域にI/Oキューイング属性が付与されている。すなわち、受け付けたI/Oコマンドは、キューイングの対象である。この場合、処理はステップ505に進む。
一方、ステップ504において「含まれない(すなわち、NO)」と判定された場合、I/Oコマンドによって指定された領域にI/Oキューイング属性が付与されていない。すなわち、受け付けたI/Oコマンドは、キューイングの対象でない。この場合、処理はステップ506に進む。
なお、ステップ503において「NO」と判定された場合及びステップ504において「YES」と判定された場合が、図2のステップ202において条件を満たすと判定された場合に相当する。一方、ステップ502において「NO」と判定された場合及びステップ504において「NO」と判定された場合が、図2のステップ202において条件を満たさないと判定された場合に相当する。
例えば、コマンド受付部111が、LUNが「1」であるLUのいずれかの論理ブロックを指定したI/Oコマンドを受け付けた場合、キューイング判定部113は、キューイング可否判定テーブル301を参照する(501)。ホストLU番号312に「1」が設定され、それに対応するLBA313及びサイズ314に値が設定されていないため、ステップ502及びステップ503では、それぞれ、「YES」及び「No」と判定され、ステップ505が実行される。
一方、例えば、コマンド受付部111が、LUNが「2」であるLU内の、LBAが「256」でありサイズが「16」である領域を指定したI/Oコマンドを受け付けた場合、キューイング判定部113は、キューイング可否判定テーブル301を参照する(501)。ホストLU番号312に「2」が設定され、それに対応するLBA313に「0」、サイズ314に「128」が設定されている。この場合、I/Oコマンドによって指定された、LBAが「256」でありサイズが「16」である領域が、「0」から「127」までの範囲にない。このため、ステップ502、503及び504において、それぞれ、「YES」、「YES」及び「NO」と判定され、ステップ506が実行される。
なお、I/Oコマンドが指定した領域が、キューイング可否判定テーブルが指定した領域に完全に含まれない(すなわちI/Oコマンドが指定した領域の一部が含まれる)場合、ステップ504では「NO」と判定される。例えば、LUNが「2」であるLU内の、LBAが「120」でありサイズが「16」である領域を指定したI/Oコマンドを受け付けた場合、ステップ502、503及び504において、それぞれ、「YES」、「YES」及び「NO」と判定され、ステップ506が実行される。
図6は、本発明の第1の実施の形態のキューイング管理テーブルの説明図である。
図6に示すキューイング管理テーブル601は、図1に示すキューイング管理テーブル132に相当する。キューイング管理テーブル601は、キューイング処理部114がどのようなキューイングを実行するかを設定するテーブルである。
キューイング管理テーブル601は、項番611、時間612及びコマンド数613からなる。
項番611は、キューイング可否判定テーブル301の項番311と対応する。例えば、項番611の値が「1」である行は、図3の項番311の値が「1」である行に対応する。一方、項番611の値が「*」である行は、キューイング可否判定テーブル301の行のうち、項番611の値が「*」である行以外の行と対応しない全ての行と対応する。図3及び図6の例では、図6の項番611の値が「*」である行は、図3の項番311の値が「1」でない行に対応する。
時間612は、キューイングが実行される時間である。言い換えると、時間612に設定された時間にわたってI/Oコマンドがキューイングされる。
コマンド数613は、キューイングが実行されるコマンド数である。言い換えると、コマンド数613に設定された数のI/Oコマンドがキューイングされる。
例えば、図6の第1行には、項番611及び時間612として、それぞれ、「1」及び「10ms」が設定されている。これは、受け付けたI/Oコマンドが図3の項番311の値「1」の行に設定された条件を満たす場合、I/Oコマンドが10ミリ秒(ms)にわたってキューイングされることを意味する。すなわち、キューイング処理部114は、10msの間に受け付けたI/Oコマンドをキューイングによって蓄積し、それらのI/Oコマンドを最適に並べ替えて実行する。
一方、図6の第2行には、項番611及びコマンド数613として、それぞれ、「*」及び「16」が設定されている。これは、受け付けたI/Oコマンドが図3の項番「1」以外の行に設定された条件を満たす場合、I/Oコマンドは、16個キューイングされることを意味する。すなわち、キューイング処理部114は、16個のI/Oコマンドをキューイングによって蓄積し、それらのI/Oコマンドを最適に並べ替えて実行する。
図7は、本発明の第1の実施の形態のキューイング管理テーブル設定画面の説明図である。
図7に示すキューイング管理テーブル設定画面701は、図6に示すキューイング管理テーブル601を設定するためにストレージ管理装置104の出力装置に表示される画面である。キューイング管理テーブル設定画面701は、項番入力フィールド711、時間入力フィールド712、コマンド数入力フィールド713、キューイング管理テーブル表示フィールド714、読み込みボタン715、保存ボタン716及び削除ボタン717を含む。
項番入力フィールド711、時間入力フィールド712及びコマンド数入力フィールド713は、それぞれ、項番611、時間612及びコマンド数613に設定される値を入力するためのフィールドである。
キューイング管理テーブル表示フィールド714には、キューイング管理テーブル601に既に設定されている値が表示される。
図7は、キューイング管理テーブル表示フィールド714において項番が「1」である行が選択された場合の例である。
読み込みボタン715、保存ボタン716及び削除ボタン717の使用方法は、図4の読み込みボタン415、保存ボタン416及び削除ボタン417の使用方法と同じである。また、これらのボタンを使用してキューイング可否判定テーブル設定画面601に値を設定する方法は、図4に示す通りである。このため、これらの方法については、説明を省略する。
以上の本発明の第1の実施の形態によれば、受け付けたI/Oコマンドによって指定された領域に応じて、そのI/Oコマンドをキューイングするか否かが判定される。
例えば、ホスト101が複数のアプリケーションを実行し、それらのうち一つのアプリケーションが実行される際にはレスポンスタイムの短縮が要求され、別のアプリケーションが実行される際にはスループットの向上が要求される場合がある。このような場合、システム管理者は、前者のアプリケーションによって使用される領域を、予め、キューイング可否判定テーブル301に設定しておく。
本実施の形態のキューイング判定部113は、受け付けたI/Oコマンドによって指定された領域が前者のアプリケーションによって使用される領域である場合、そのI/Oコマンドをキューイングの対象でないと判定する。一方、受け付けたI/Oコマンドによって指定された領域が後者のアプリケーションによって使用される領域である場合、本実施の形態のキューイング判定部113は、そのI/Oコマンドをキューイングの対象であると判定する。その結果、アプリケーションごとに望ましい性能を実現することができる。
次に、本発明の第2の実施の形態について説明する。
本発明の第2の実施の形態の計算機システムの構成は、キューイング可否判定テーブル131に設定される内容及びキューイング判定部113が実行する処理を除いて、第1の実施の形態と同様である。以下、第2の実施の形態が第1の実施の形態と相違する点のみについて説明する。
図8は、本発明の第2の実施の形態のキューイング可否判定テーブルの説明図である。
図8に示すキューイング可否判定テーブル801は、図1に示すキューイング可否判定テーブル131に相当する。
キューイング可否判定テーブル801は、項番811、WWN812及びホストLU番号813からなる。
項番811は、キューイング可否判定テーブル801の各エントリ(行)を一意に識別する通し番号である。
WWN812は、ホスト101を一意に識別するWorld Wide Nameである。ネットワーク102がSANである場合、ホスト101(より正確には、ホスト101をネットワーク102に接続するHBAのポート)はWWNによって一意に識別される。しかし、ネットワーク102がIPネットワークである場合、WWN812の代わりにIPアドレス又はMACアドレスが設定されてもよい。
ホストLU番号813は、キューイングの対象と判定されるI/Oコマンドによって指定されるLUNである。言い換えると、WWN812に設定されたWWNを持つホスト101からホストLU番号813に設定されたLUNを指定したI/Oコマンドが発行された場合、そのI/Oコマンドがキューイングの対象と判定される。ホストLU番号813は、ホストLU番号312と同様、ホスト101に提供されるLUNである。ホストLU番号813が「*」である場合、I/OコマンドがいずれのLUNを指定している場合であっても、そのI/Oコマンドがキューイングの対象と判定される。
図8の例では、項番811の値「1」に対応するWWN812及びホストLU番号813は、それぞれ、「01:02:03:04:05:06:07:08」及び「*」である。これは、WWNが「01:02:03:04:05:06:07:08」であるポートを備えるホスト101が発行したI/Oコマンドは、それが指定するLUNに関らず、キューイングの対象と判定されることを意味する。一方、項番811の値「2」に対応するWWN812及びホストLU番号813は、それぞれ、「01:02:03:04:05:06:07:09」及び「0」である。WWNが「01:02:03:04:05:06:07:08」であるポートを備えるホスト101がLUN「0」を指定して発行したI/Oコマンドは、キューイングの対象と判定されることを意味する。
図9は、本発明の第2の実施の形態のキューイング可否判定テーブル設定画面の説明図である。
図9に示すキューイング可否判定テーブル設定画面901は、図8に示すキューイング可否判定テーブル801を設定するためにストレージ管理装置104の出力装置に表示される画面である。キューイング可否判定テーブル設定画面901は、WWN入力フィールド911、ホストLU番号入力フィールド912、キューイング可否判定テーブル表示フィールド913、読み込みボタン914、保存ボタン915及び削除ボタン916を含む。
WWN入力フィールド911及びホストLU番号入力フィールド912は、それぞれ、WWN812及びホストLU番号813に設定される値を入力するためのフィールドである。
キューイング可否判定テーブル表示フィールド913には、キューイング可否判定テーブル801に既に設定されている値が表示される。
図9は、キューイング可否判定テーブル表示フィールド913において項番が「2」である行が選択された場合の例である。
読み込みボタン914、保存ボタン915及び削除ボタン916の使用方法は、図4の読み込みボタン415、保存ボタン416及び削除ボタン417の使用方法と同じである。また、これらのボタンを使用してキューイング可否判定テーブル設定画面901に値を設定する方法は、図4に示す通りである。このため、これらの方法については、説明を省略する。
図10は、本発明の第2の実施の形態のキューイング判定部113が実行する詳細な処理を示すフローチャートである。
本発明の第2の実施の形態のキューイング判定部113は、第1の実施の形態のキューイング判定部113と同様、図2に示す処理を実行する。ただし、第2の実施の形態のキューイング判定部113がステップ201及び202において実行する具体的な処理は、第1の実施の形態と異なる。
図10に示す各ステップのうち、ステップ1001から1004は、第2の実施の形態のキューイング判定部113が図2のステップ201及び202において実行する処理を詳細に説明するものである。ステップ1005及び1006は、それぞれ、図2のステップ203及び204と同じであるため、説明を省略する。
最初に、キューイング判定部113は、キューイング可否判定テーブル801を参照して、受け付けたI/Oコマンドの要求元のWWN(すなわち、そのI/Oコマンドを発行したホスト101のHBAのポートのWWN)が、WWN812として設定されているか否かを調査する(1001)。
次に、キューイング判定部113は、ステップ1001の調査の結果、要求元のWWNがWWN812として設定されているか否かを判定する(1002)。
ステップ1002において「設定されていない(すなわち、NO)」と判定された場合、受け付けたI/Oコマンドはキューイングの対象でない。この場合、処理はステップ1006に進む。
一方、ステップ1002において「設定されている(すなわち、YES)」と判定された場合、受け付けたI/Oコマンドがキューイングの対象である可能性がある。この場合、キューイング判定部113は、キューイング可否判定テーブル801にホストLU番号813が設定されているか否かを判定する(1003)。具体的には、キューイング判定部113は、受け付けたI/Oコマンドによって指定されたWWNと同一のWWN812に対応するホストLU番号813に「*」以外の値が設定されているか否かを判定する。
ステップ1003において「設定されていない(すなわち、NO)」と判定された場合、受け付けたI/Oコマンドは、それが指定するLUNに関らず、キューイングの対象である。この場合、処理はステップ1005に進む。
一方、ステップ1003において「設定されている(すなわち、YES)」と判定された場合、受け付けたI/Oコマンドが指定するLUNによって、そのI/Oコマンドがキューイングの対象であるか否かが判定される。このため、キューイング判定部113は、I/Oコマンドによって指定されたLUNがホストLU番号813として設定されている値と等しいか否かを判定する(1004)。
ステップ1004において「等しい(すなわち、YES)」と判定された場合、受け付けたI/Oコマンドはキューイングの対象である。この場合、処理はステップ1005に進む。
一方、ステップ1004において「等しくない(すなわち、NO)」と判定された場合、受け付けたI/Oコマンドはキューイングの対象でない。この場合、処理はステップ1006に進む。
なお、ステップ1003において「NO」と判定された場合及びステップ1004において「YES」と判定された場合が、図2のステップ202において条件を満たすと判定された場合に相当する。一方、ステップ1002において「NO」と判定された場合及びステップ1004において「NO」と判定された場合が、図2のステップ202において条件を満たさないと判定された場合に相当する。
例えば、コマンド受付部111が、WWN「01:02:03:04:05:06:07:08」によって識別されるホスト101から、LUNが「1」であるLUを指定したI/Oコマンドを受け付けた場合、キューイング判定部113は、キューイング可否判定テーブル801を参照する(1001)。WWN812に「01:02:03:04:05:06:07:08」が設定され、それに対応するホストLU番号813が「*」であるため、ステップ1002及びステップ1003では、それぞれ、「YES」及び「No」と判定され、ステップ1005が実行される。
一方、例えば、コマンド受付部111が、WWN「01:02:03:04:05:06:07:09」によって識別されるホスト101から、LUNが「1」であるLUを指定したI/Oコマンドを受け付けた場合、キューイング判定部113は、キューイング可否判定テーブル801を参照する(1001)。WWN812に「01:02:03:04:05:06:07:09」が設定され、それに対応するホストLU番号813として「0」が設定されているため、ステップ1002、1003及び1004において、それぞれ、「YES」、「YES」及び「NO」と判定される。この場合、ステップ1006が実行される。
以上の本発明の第2の実施の形態によれば、I/Oコマンドを発行したホスト101に応じて、そのI/Oコマンドをキューイングするか否かが判定される。
例えば、高いスループットが要求される処理を主に実行するホスト101と、速いレスポンスが要求される処理を主に実行するホスト101がストレージシステム103を使用する場合に、本実施の形態を適用することができる。この場合、前者のホストを識別するWWNをキューイング可否判定テーブル801のWWN812に設定することによって、前者のホスト101によって発行されたI/Oコマンドがキューイングされ、並べ替えられた後に実行される。一方、後者のホスト101によって発行されたI/Oコマンドは、レスポンスタイム短縮のため、キューイングされずに直ちに実行される。その結果、I/Oコマンドを発行するホスト101ごとに望ましい性能を実現することができる。
一方、一つのホスト101が、高いスループットが要求されるアプリケーションと、早いレスポンスが要求されるアプリケーションとを実行する場合にも、本実施の形態を適用することができる。この場合、ホストバスアダプタを複数設置したり、複数ポートをもつHBAを使うことで、そのホスト101に複数のネットワークインタフェースを持たせる。この複数のインターフェースの内の1つを識別するWWNをキューイング可否判定テーブル801のWWN812に設定し、さらに、前者のアプリケーションが使用するLUのLUNをホストLU番号813に登録する。前者のアプリケーションは、キューイング可否判定テーブル801に設定したWWNを持つインターフェースを使ってストレージシステム103にアクセスする。その結果、前者のアプリケーションが発行したI/Oコマンドのみがキューイングされ、並べ替えられた後に実行される。後者のアプリケーションは、キューイング可否判定テーブル801に設定したWWN以外のWWNを持つインターフェースを使ってストレージシステム103にアクセスする。その結果、後者のアプリケーションが発行したI/Oコマンドは、レスポンスタイム短縮のため、キューイングされずに直ちに実行される。その結果、I/Oコマンドを発行するアプリケーションごとに望ましい性能を実現することができる。
次に、本発明の第3の実施の形態について説明する。
本発明の第3の実施の形態の計算機システムの構成は、キューイング可否判定テーブル131に設定される内容及びキューイング判定部113が実行する処理を除いて、第1の実施の形態と同様である。以下、第3の実施の形態が第1の実施の形態と相違する点のみについて説明する。
図11は、本発明の第3の実施の形態のキューイング可否判定テーブルの説明図である。
図11に示すキューイング可否判定テーブル1101は、図1に示すキューイング可否判定テーブル131に相当する。
キューイング可否判定テーブル1101は、項番1111、ホストLU番号1112、プライオリティ1113及び範囲条件1114からなる。
項番1111は、キューイング可否判定テーブル1101の各エントリ(行)を一意に識別する通し番号である。
ホストLU番号1112、プライオリティ1113及び範囲条件1114には、受け付けたI/Oコマンドがキューイングの対象であるか否かを判定するための条件として使用される値が設定される。具体的には、受け付けたI/Oコマンドによって指定されたLUがホストLU番号1112に設定されており、かつ、そのI/Oコマンドに付与されているプライオリティがプライオリティ1113及び範囲条件1114によって定まる条件を満たしている場合、そのI/Oコマンドは、キューイングの対象であると判定される。
図11の例では、項番1111の値「1」に対応するホストLU番号1112、プライオリティ1113及び範囲条件1114として、それぞれ、「10」、「09」、「以下」が設定されている。これは、LUNが「10」であるLUを指定するI/Oコマンドに付与されているプライオリティが「09」以下の値である場合に、そのI/Oコマンドがキューイングの対象であると判定されることを意味する。
一方、項番1111の値「2」に対応するホストLU番号1112、プライオリティ1113及び範囲条件1114として、それぞれ、「*」、「15」、「等しい」が設定されている。これは、LUNが他の項番1111において設定されていない値(図11の例では、「10」以外の値)であるLUを指定するI/Oコマンドに付与されているプライオリティが「15」である場合に、そのI/Oコマンドがキューイングの対象であると判定されることを意味する。
なお、範囲条件1114に設定される値は、図11に例示したものの他、例えば、「以上」「より大きい」「より小さい」等であってもよい。
図12は、本発明の第3の実施の形態のキューイング可否判定テーブル設定画面の説明図である。
図12に示すキューイング可否判定テーブル設定画面1201は、図11に示すキューイング可否判定テーブル1101を設定するためにストレージ管理装置104の出力装置に表示される画面である。キューイング可否判定テーブル設定画面1201は、ホストLU番号入力フィールド1211、プライオリティ入力フィールド1212、範囲条件入力フィールド1213、キューイング可否判定テーブル表示フィールド1214、読み込みボタン1215、保存ボタン1216及び削除ボタン1217を含む。
ホストLU番号入力フィールド1211、プライオリティ入力フィールド1212及び範囲条件入力フィールド1213は、それぞれ、ホストLU番号1112、プライオリティ1113及び範囲条件1114に設定される値を入力するためのフィールドである。
なお、範囲条件入力フィールド1213の右端の三角形を操作することによって、範囲条件1114に設定することができる値(例えば、「以上」「以下」「等しい」等)がメニュー表示されてもよい。この場合、システム管理者は、表示されたもののいずれかを選択することによって、範囲条件1114に設定される値を選択することができる。
キューイング可否判定テーブル表示フィールド1214には、キューイング可否判定テーブル1101に既に設定されている値が表示される。
図12は、キューイング可否判定テーブル表示フィールド1214において項番が「1」である行が選択された場合の例である。
読み込みボタン1215、保存ボタン1216及び削除ボタン1217の使用方法は、図4の読み込みボタン415、保存ボタン416及び削除ボタン417の使用方法と同じである。また、これらのボタンを使用してキューイング可否判定テーブル設定画面1201に値を設定する方法は、図4に示す通りである。このため、これらの方法については、説明を省略する。
図13は、本発明の第3の実施の形態のキューイング判定部113が実行する詳細な処理を示すフローチャートである。
本発明の第3の実施の形態のキューイング判定部113は、第1の実施の形態のキューイング判定部113と同様、図2に示す処理を実行する。ただし、第3の実施の形態のキューイング判定部113がステップ201及び202において実行する具体的な処理は、第1の実施の形態と異なる。
図13に示す各ステップのうち、ステップ1301から1303は、第3の実施の形態のキューイング判定部113が図2のステップ201及び202において実行する処理を詳細に説明するものである。ステップ1304及び1305は、それぞれ、図2のステップ203及び204と同じであるため、説明を省略する。
最初に、キューイング判定部113は、キューイング可否判定テーブル1101を参照して、受け付けたI/Oコマンドによって指定されたLUNが、ホストLU番号1112として設定されているか否かを調査する(1301)。
次に、キューイング判定部113は、ステップ1301の調査の結果、指定されたLUNが、ホストLU番号1112として設定されているか否かを判定する(1302)。
なお、ホストLU番号1112に「*」が設定されている場合、ステップ1302において、必ず「設定されている」と判定される。
ステップ1302において「設定されていない(すなわち、NO)」と判定された場合、受け付けたI/Oコマンドはキューイングの対象でない。この場合、処理はステップ1305に進む。
一方、ステップ1302において「設定されている(すなわち、YES)」と判定された場合、受け付けたI/Oコマンドがキューイングの対象である可能性がある。この場合、キューイング判定部113は、受け付けたI/Oコマンドに付与されているプライオリティが、プライオリティ1113及び範囲条件1114に設定されている条件を満たすか否かを判定する(1303)。
ステップ1303において「条件を満たさない(すなわち、NO)」と判定された場合、受け付けたI/Oコマンドはキューイングの対象でない。この場合、処理はステップ1305に進む。
一方、ステップ1303において「条件を満たす(すなわち、YES)」と判定された場合、受け付けたI/Oコマンドはキューイングの対象である。この場合、処理はステップ1304に進む。
なお、ステップ1303において「YES」と判定された場合が、図2のステップ202において条件を満たすと判定された場合に相当する。一方、ステップ1302において「NO」と判定された場合及びステップ1303において「NO」と判定された場合が、図2のステップ202において条件を満たさないと判定された場合に相当する。
例えば、コマンド受付部111が、LUNが「10」であるLUを指定したI/Oコマンドを受け付け、そのI/Oコマンドに付与されているプライオリティの値が「05」であった場合、キューイング判定部113は、キューイング可否判定テーブル1101を参照する(1301)。ホストLU番号1112に「LUN10」が設定され、それに対応するプライオリティ1113及び範囲条件1114がそれぞれ「09」及び「以下」であるため、ステップ1302及びステップ1303では、それぞれ、「YES」及び「YES」と判定され、ステップ1304が実行される。
一方、例えば、コマンド受付部111が、LUNが「5」であるLUを指定したI/Oコマンドを受け付け、そのI/Oコマンドに付与されているプライオリティの値が「10」であった場合、キューイング判定部113は、キューイング可否判定テーブル1101を参照する(1301)。ホストLU番号1112に「*」が設定され、それに対応するプライオリティ1113及び範囲条件1114がそれぞれ「15」及び「等しい」であるため、ステップ1302及びステップ1303では、それぞれ、「YES」及び「NO」と判定され、ステップ1305が実行される。
以上の本発明の第3の実施の形態によれば、I/Oコマンドに付与されたプライオリティに応じて、そのI/Oコマンドをキューイングするか否かが判定される。
I/Oコマンドに付与されるプライオリティは、どのような形態のものであってもよい。例えば、本実施の形態のネットワーク102にSCSIプロトコルが適用される場合、本実施の形態のプライオリティは、SCSIコマンド中に設定されるプライオリティであってもよい。あるいは、本実施の形態のプライオリティは、アプリケーションによって設定される任意の値であってもよい。
次に、本発明の第4の実施の形態について説明する。
図14は、本発明の第4の実施の形態の計算機システムの構成を示すブロック図である。
本発明の第1から第3の実施の形態と異なり、第4の実施の形態の計算機システムにおいては、ストレージ管理装置104がホスト101に接続されている。このため、本実施の形態のストレージ管理装置104は、ホスト101及びネットワーク102を介してキューイング可否判定テーブル131及びキューイング管理テーブル132を設定する。ストレージシステム103は、ネットワーク102を介して、ホスト101によって発行されたI/Oコマンドだけでなく、ストレージ管理装置104によって発行されたキューイング制御コマンドも受け付ける。その他の点に関しては、第4の実施の形態は、第1から第3の実施の形態と同様である。
以下、第4の実施の形態が第1から第3の実施の形態と相違する点のみについて説明する。
図15は、本発明の第4の実施の形態のコマンド受付部111が実行する処理を示すフローチャートである。
コマンド受付部111は、最初に、受け付けたコマンドがキューイング制御コマンドであるかI/Oコマンドであるかを調査する(1501)。
次に、コマンド受付部111は、ステップ1501の調査の結果、受け付けたコマンドがキューイング制御コマンドであるか否かを判定する(1502)。
ステップ1502において、受け付けたコマンドがキューイング制御コマンドであると判定された場合、コマンド受付部111は、受け付けたキューイング制御コマンドをキューイング制御部115に送る(1503)。キューイング制御部115は、キューイング制御コマンドを実行して、キューイング可否判定テーブル131又はキューイング管理テーブル132を設定する。
一方、ステップ1502において、受け付けたコマンドがキューイング制御コマンドでない(すなわち、受け付けたコマンドがI/Oコマンドである)と判定された場合、コマンド受付部111は、受け付けたI/Oコマンドをキャッシュ管理部112に送る(1503)。キャッシュ管理部112が実行する処理は、図19を参照して説明した通りである。その後キューイング判定部113が実行する処理は、前述した第1から第3の実施の形態又は後述する第5の実施の形態と同様であってよい。
以上の本発明の第4の実施の形態によれば、ストレージ管理装置104は、任意のタイミングでキューイングの実行を開始し、又は、キューイングの実行を解除することができる。例えば、ある時点で、所定の条件を満たすI/Oコマンドをキューイングの対象とするためのキューイング制御コマンドが発行された場合、そのキューイング制御コマンドより後にコマンド受付部111が受け付けたI/Oコマンドは、設定された条件を満たす場合には、キューイングの対象となる。その後、その条件を満たすI/Oコマンドをキューイングの対象から外すためのキューイング制御コマンドが発行された場合、そのキューイング制御コマンドより後にコマンド受付部111が受け付けたI/Oコマンドは、同じ条件を満たしている場合であっても、キューイングの対象にならない。
なお、図14には、ホスト101にストレージ管理装置104が接続される形態を示したが、ホスト101とストレージ管理装置104が物理的に一つの計算機によって実現されてもよい。例えば、ホスト101のメモリ(図示省略)にストレージ管理プログラム(図示省略)が格納され、ホスト101のプロセッサ(図示省略)がそのストレージ管理プログラムを実行することによってストレージシステム103にキューイング制御コマンドを発行してもよい。あるいは、ホスト101のアプリケーションがキューイング制御コマンドを発行してもよい。
以上の本発明の第4の実施の形態は、時間によってキューイングを実行するか否かを切り替える場合に適用することができる。例えば、ホスト101のアプリケーションであるデータベース処理プログラム(図示省略)が、大量のI/Oコマンドを発行する処理を実行する前に、キューイング制御コマンドを発行して、それらのI/Oコマンドがキューイングされるようにキューイング可否判定テーブル131を設定してもよい。その後発行されたI/Oコマンドは、キューイング可否判定テーブル131等の設定に従ってキューイングされるため、スループットが向上する。その処理が終了すると、データベース処理プログラムは、その後に発行されるI/Oコマンドがキューイングされないようにキューイング可否判定テーブル131を設定してもよい。
あるいは、ホスト101が、昼間は短いレスポンスタイムが要求される処理を実行し、夜間は高いスループットが要求されるバッチ処理等を実行する場合に本実施の形態が適用されてもよい。この場合、夜間の処理が開始される前に、ホスト101がキューイング制御コマンドを発行してキューイングの実行を設定する。そして、夜間の処理が終了した後で、キューイング制御コマンドを発行してキューイングの実行を解除する。
このように、本発明の第4の実施の形態によれば、ストレージ管理装置104がなくても、ホスト101がキューイングを制御することができるため、利便性が向上する。
次に、本発明の第5の実施の形態について説明する。
本発明の第5の実施の形態の計算機システムの構成は、キューイング可否判定テーブル131に設定される内容及びキューイング判定部113が実行する処理を除いて、第1の実施の形態と同様である。以下、第5の実施の形態が第1の実施の形態と相違する点のみについて説明する。
図16は、本発明の第5の実施の形態のキューイング可否判定テーブルの説明図である。
図16に示すキューイング可否判定テーブル1601は、図1に示すキューイング可否判定テーブル131に相当する。
キューイング可否判定テーブル1601は、項番1611、ホストLU番号1612及びLU番号1613からなる。
項番1611は、キューイング可否判定テーブル1601の各エントリ(行)を一意に識別する通し番号である。
ホストLU番号1112は、ストレージシステム103がキューイングの対象となるI/Oコマンドを受け付けるためにホスト101に提供するLUNである。
LU番号1613は、ホストLU番号1112と対応する実際のLUNである。
図16の例では、項番1611の値「1」に対応するホストLU番号1612及びLU番号1613として、それぞれ、「11」及び「1」が設定されている。これは、LUNが「1」であるLUが、二つのLU(すなわち、LUNが「11」であるLU及びLUNが「1」であるLU)としてホスト101に提供されていることを意味する。ホスト101は、直ちに実行される必要があるI/Oコマンドを、LUN「1」を指定して発行する。そして、同じLUを対象とした高いスループットが要求されるI/Oコマンドを、LUN「10」を指定して発行する。
図16の例では、さらに、項番1611の値「2」に対応するホストLU番号1612及びLU番号1613として、それぞれ、「12」及び「2」が設定されている。これは、上記と同様に、ホスト101が、LUNが「2」であるLUに対してキューイングの対象となるI/Oコマンドを発行する場合、LUN「12」を指定することを意味する。
図17は、本発明の第5の実施の形態のキューイング可否判定テーブル設定画面の説明図である。
図17に示すキューイング可否判定テーブル設定画面1701は、図16に示すキューイング可否判定テーブル1601を設定するためにストレージ管理装置104の出力装置に表示される画面である。キューイング可否判定テーブル設定画面1701は、ホストLU番号入力フィールド1711、LU番号入力フィールド1712、キューイング可否判定テーブル表示フィールド1713、読み込みボタン1714、保存ボタン1715及び削除ボタン1716を含む。
ホストLU番号入力フィールド1711及びLU番号入力フィールド1712は、それぞれ、ホストLU番号1612及びLU番号1613に設定される値を入力するためのフィールドである。
キューイング可否判定テーブル表示フィールド1713には、キューイング可否判定テーブル1601に既に設定されている値が表示される。
図17は、キューイング可否判定テーブル表示フィールド1713において項番が「2」である行が選択された場合の例である。
読み込みボタン1714、保存ボタン1715及び削除ボタン1716の使用方法は、図4の読み込みボタン415、保存ボタン416及び削除ボタン417の使用方法と同じである。また、これらのボタンを使用してキューイング可否判定テーブル設定画面1701に値を設定する方法は、図4に示す通りである。このため、これらの方法については、説明を省略する。
図18は、本発明の第5の実施の形態のキューイング判定部113が実行する詳細な処理を示すフローチャートである。
本発明の第5の実施の形態のキューイング判定部113は、第1の実施の形態のキューイング判定部113と同様、図2に示す処理を実行する。図18は、本実施の形態のキューイング判定部113が実行する図2の処理を、より詳細に説明するものである。図18に示す各ステップのうち、ステップ1804及び1805は、それぞれ、図2のステップ203及び204と同じであるため、説明を省略する。
最初に、キューイング判定部113は、キューイング可否判定テーブル1601を参照して、受け付けたI/Oコマンドによって指定されたLUNが、ホストLU番号1612として設定されているか否かを調査する(1801)。
次に、キューイング判定部113は、ステップ1801の調査の結果、指定されたLUNが、ホストLU番号1612として設定されているか否かを判定する(1802)。
ステップ1802において「設定されていない(すなわち、NO)」と判定された場合、受け付けたI/Oコマンドはキューイングの対象でない。この場合、処理はステップ1805に進む。
一方、ステップ1802において「設定されている(すなわち、YES)」と判定された場合、受け付けたI/Oコマンドはキューイングの対象である。この場合、キューイング判定部113は、受け付けたI/Oコマンドによって指定されているホストLU番号1612を、そのLU番号1612に対応するLU番号1613の値に置き換える(1803)。その後、処理はステップ1804に進む。その結果、置き換えられたLU番号1613の値によって識別されるLUを対象として、ステップ1804の処理が実行される。
なお、ステップ1802において「YES」と判定された場合が、図2のステップ202において条件を満たすと判定された場合に相当する。一方、ステップ1802において「NO」と判定された場合が、図2のステップ202において条件を満たさないと判定された場合に相当する。
例えば、コマンド受付部111が、LUNが「10」であるLUを指定したI/Oコマンドを受け付けた場合、キューイング判定部113は、キューイング可否判定テーブル1601を参照する(1801)。ホストLU番号1612に「10」が設定されているため、ステップ1802において、「YES」と判定される。キューイング可否判定テーブル1601のホストLU番号1612の値「10」と対応して設定されているLU番号1613の値は、「1」である。このため、I/Oコマンドによって指定されたLUN「10」が、「1」に置き換えられる。その後、LUNが「1」であるLUを対象として、ステップ1804が実行される。
一方、例えば、コマンド受付部111が、LUNが「2」であるLUを指定したI/Oコマンドを受け付けた場合、キューイング判定部113は、キューイング可否判定テーブル1601を参照する(1801)。ホストLU番号1612に「2」が設定されていないため、ステップ1802において、「NO」と判定される。この場合、LUNが「2」であるLUを対象として、ステップ1805が実行される。
以上の本発明の第5の実施の形態によれば、一つのLUが、異なるLUNを持つ二つのLUとしてホスト101に提供される。その一方のLUNを指定して発行されたI/Oコマンドは、ストレージシステム103によってキューイングされる。このため、ホスト101は、同じLUにI/Oコマンドを発行する場合でも、高いスループットを要求する場合には、短いレスポンスタイムを要求する場合と異なるLUNを指定することによって、望ましい性能を実現することができる。第3の実施の形態でも同様の効果が期待できるが、第5の実施の形態は、複数のネットワークインタフェースを必要としない点で、第3の実施の形態と異なる。
本発明の第1の実施の形態の計算機システムの構成を示すブロック図である。 本発明の第1の実施の形態のキューイング判定部が実行する処理を示すフローチャートである。 本発明の第1の実施の形態のキューイング可否判定テーブルの説明図である。 本発明の第1の実施の形態のキューイング可否判定テーブル設定画面の説明図である。 本発明の第1の実施の形態のキューイング判定部が実行する詳細な処理を示すフローチャートである。 本発明の第1の実施の形態のキューイング管理テーブルの説明図である。 本発明の第1の実施の形態のキューイング管理テーブル設定画面の説明図である。 本発明の第2の実施の形態のキューイング可否判定テーブルの説明図である。 本発明の第2の実施の形態のキューイング可否判定テーブル設定画面の説明図である。 本発明の第2の実施の形態のキューイング判定部が実行する詳細な処理を示すフローチャートである。 本発明の第3の実施の形態のキューイング可否判定テーブルの説明図である。 本発明の第3の実施の形態のキューイング可否判定テーブル設定画面の説明図である。 本発明の第3の実施の形態のキューイング判定部が実行する詳細な処理を示すフローチャートである。 本発明の第4の実施の形態の計算機システムの構成を示すブロック図である。 本発明の第4の実施の形態のコマンド受付部が実行する処理を示すフローチャートである。 本発明の第5の実施の形態のキューイング可否判定テーブルの説明図である。 本発明の第5の実施の形態のキューイング可否判定テーブル設定画面の説明図である。 本発明の第5の実施の形態のキューイング判定部が実行する詳細な処理を示すフローチャートである。 本発明の第1の実施の形態のキャッシュ管理部が実行する処理を示すフローチャートである。 本発明の第1の実施の形態のストレージシステムのハードウエア構成を示すブロック図である。
符号の説明
101 ホスト
102 ネットワーク
103 ストレージシステム
104 ストレージ管理装置
105 管理ネットワーク
111 コマンド受付部
112 キャッシュ管理部
113 キューイング判定部
114 キューイング処理部
115 キューイング制御部
116 アドレス変換部
117 ドライブ制御部
121、122、123 記憶装置
131、301、801、1101、1601 キューイング可否判定テーブル
132、601 キューイング管理テーブル
140 コントローラ
141 プロセッサ
142 メモリ
143 キャッシュメモリ
144 ホストインターフェース(I/F)
145 管理インターフェース(I/F)
146 ドライブインターフェース(I/F)

Claims (9)

  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コマンドに付与された優先度が前記判定情報に設定された所定の範囲に含まれるか否かを判定し、
    前記受け付けたI/Oコマンドに付与された優先度が前記判定情報に設定された所定の範囲に含まれる場合、前記受け付けたI/Oコマンドが前記所定の条件を満たすと判定することを特徴とするストレージシステム。
  2. ネットワークに接続され、前記ネットワークを介して一つ以上のホスト計算機から受け付けたI/Oコマンドを実行するストレージシステムにおいて、
    前記ストレージシステムは、
    前記ネットワークに接続されるホストインターフェースと、前記ホストインターフェースと接続されるプロセッサと、前記プロセッサに接続されるメモリと、前記I/Oコマンドに従ってデータが読み書きされる記憶装置と、を備え、
    所定の条件が設定された判定情報を保持し、
    前記プロセッサは、前記I/Oコマンドを受け付けると、
    前記判定情報に基づいて、前記受け付けたI/Oコマンドが前記所定の条件を満たすか否かを判定し、
    前記所定の条件を満たす複数のI/Oコマンドを蓄積し、
    前記蓄積された複数のI/Oコマンドを並べ替え、
    前記並べ替えられた順に前記蓄積された複数のI/Oコマンドを実行し、
    前記所定の条件を満たさないI/Oコマンドを、受け付けた順に実行し、
    前記判定情報には、前記所定の条件として、データが格納される領域を識別する第1識別子と、前記第1識別子に対応する第2識別子と、が設定され、
    前記プロセッサは、
    前記受け付けたI/Oコマンドが前記第2識別子を指定しているか否かを判定し、
    前記受け付けたI/Oコマンドが前記第2識別子を指定している場合、前記受け付けたI/Oコマンドが前記所定の条件を満たすと判定し、
    前記第2識別子に対応する前記第1識別子によって識別される領域を対象として、前記蓄積された複数のI/Oコマンドを実行することを特徴とするストレージシステム。
  3. 前記プロセッサは、前記蓄積された複数のI/Oコマンドを、複数の記憶装置に対する処理が並列に実行されるように並べ替えることを特徴とする請求項1又は2に記載のストレージシステム。
  4. 前記ストレージシステムは、前記所定の条件を満たすI/Oコマンドを蓄積する数又は時間が設定された管理情報を保持し、
    前記プロセッサは、
    前記管理情報にI/Oコマンドを蓄積する数が設定されている場合、前記所定の条件を満たすI/Oコマンドを前記設定された数蓄積し、
    前記管理情報にI/Oコマンドを蓄積する時間が設定されている場合、前記所定の条件を満たすI/Oコマンドを前記設定された時間にわたって蓄積することを特徴とする請求項1又は2に記載のストレージシステム。
  5. 前記ストレージシステムは、
    管理ネットワークに接続される管理インターフェースを備え、
    前記管理インターフェースには、管理計算機が接続され、
    前記プロセッサは、前記管理計算機から受け付けた指示に従って、前記判定情報及び前記管理情報を設定することを特徴とする請求項4に記載のストレージシステム。
  6. 前記プロセッサは、前記ホスト計算機から受け付けた制御コマンドに従って、前記判定情報及び前記管理情報を設定することを特徴とする請求項4に記載のストレージシステム。
  7. ネットワークに接続され、前記ネットワークを介して一つ以上のホスト計算機から受け付けたI/Oコマンドを実行するストレージシステムの制御方法において、
    前記ストレージシステムは、
    前記ネットワークに接続されるホストインターフェースと、前記ホストインターフェースと接続されるプロセッサと、前記プロセッサに接続されるメモリと、前記I/Oコマンドに従ってデータが読み書きされる記憶装置と、を備え、
    所定の条件が設定された判定情報を保持し、
    前記方法は、前記プロセッサが、前記I/Oコマンドを受け付けると、
    前記判定情報に基づいて、前記受け付けたI/Oコマンドが前記所定の条件を満たすか否かを判定し、
    前記所定の条件を満たす複数のI/Oコマンドを蓄積し、
    前記蓄積された複数のI/Oコマンドを並べ替え、
    前記並べ替えられた順に前記蓄積された複数のI/Oコマンドを実行し、
    前記所定の条件を満たさないI/Oコマンドを、受け付けた順に実行し、
    前記I/Oコマンドには、アクセス先のアドレス情報とは別に、当該I/Oコマンドの蓄積及び並べ替えによる実行の優先度が付与され、
    前記判定情報には、前記所定の条件として、前記I/Oコマンドに付与された優先度の範囲が設定され、
    前記プロセッサが、
    前記受け付けたI/Oコマンドに付与された優先度が前記判定情報に設定された所定の範囲に含まれるか否かを判定し、
    前記受け付けたI/Oコマンドに付与された優先度が前記判定情報に設定された所定の範囲に含まれると判定された場合、前記受け付けたI/Oコマンドが前記所定の条件を満たすと判定することを特徴とする方法。
  8. 前記プロセッサは、前記蓄積された複数のI/Oコマンドを、複数の記憶装置に対する処理が並列に実行されるように並べ替えることを特徴とする請求項7に記載の方法。
  9. 前記ストレージシステムは、前記所定の条件を満たすI/Oコマンドを蓄積する数又は時間が設定された管理情報を保持し、
    前記方法は、前記プロセッサが、
    前記管理情報にI/Oコマンドを蓄積する数が設定されている場合、前記所定の条件を満たすI/Oコマンドを前記設定された数蓄積し、
    前記管理情報にI/Oコマンドを蓄積する時間が設定されている場合、前記所定の条件を満たすI/Oコマンドを前記設定された時間にわたって蓄積することをさらに含むことを特徴とする請求項7記載の方法。
JP2006056358A 2006-03-02 2006-03-02 I/oコマンドをキューイングするストレージシステム及びその制御方法 Expired - Fee Related JP4804175B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006056358A JP4804175B2 (ja) 2006-03-02 2006-03-02 I/oコマンドをキューイングするストレージシステム及びその制御方法
US11/403,846 US7363391B2 (en) 2006-03-02 2006-04-14 Storage system for queuing I/O commands and control method therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006056358A JP4804175B2 (ja) 2006-03-02 2006-03-02 I/oコマンドをキューイングするストレージシステム及びその制御方法

Publications (3)

Publication Number Publication Date
JP2007233834A JP2007233834A (ja) 2007-09-13
JP2007233834A5 JP2007233834A5 (ja) 2008-11-06
JP4804175B2 true JP4804175B2 (ja) 2011-11-02

Family

ID=38554351

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006056358A Expired - Fee Related JP4804175B2 (ja) 2006-03-02 2006-03-02 I/oコマンドをキューイングするストレージシステム及びその制御方法

Country Status (2)

Country Link
US (1) US7363391B2 (ja)
JP (1) JP4804175B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8880812B1 (en) * 2010-03-31 2014-11-04 Marvell International Ltd. WWN table management systems and methods
JP5147376B2 (ja) * 2007-12-11 2013-02-20 株式会社日立製作所 サーバ及びバックアップ方法並びにファイル読出し装置
JP5102917B2 (ja) * 2008-02-22 2012-12-19 株式会社日立製作所 ストレージ装置及びアクセス命令送信方法
WO2009141787A1 (en) * 2008-05-21 2009-11-26 Nxp B.V. A data handling system comprising a rearrangement network
JP5147584B2 (ja) 2008-07-23 2013-02-20 株式会社日立製作所 ストレージサブシステム及びコントローラによるコマンド実行方法
US8340810B2 (en) * 2008-10-31 2012-12-25 Spectra Logic Corp. Robotic storage library with queued move instructions and method of queuing such instructions
US8666537B2 (en) * 2008-10-31 2014-03-04 Spectra Logic, Corporation Robotic storage library with queued move instructions and method of queing such instructions
US9112749B2 (en) 2013-07-25 2015-08-18 Airwatch Llc Functionality management via application modification
US11907577B2 (en) 2021-12-06 2024-02-20 Western Digital Technologies, Inc. Command queuing for data storage devices

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3250861B2 (ja) 1993-03-09 2002-01-28 株式会社日立製作所 ディスク装置システム
US5548795A (en) * 1994-03-28 1996-08-20 Quantum Corporation Method for determining command execution dependencies within command queue reordering process
KR100219597B1 (ko) * 1996-03-30 1999-09-01 윤종용 씨디-롬 드라이브에서의 큐잉 제어 방법
US6112265A (en) * 1997-04-07 2000-08-29 Intel Corportion System for issuing a command to a memory having a reorder module for priority commands and an arbiter tracking address of recently issued command
US6272565B1 (en) * 1999-03-31 2001-08-07 International Business Machines Corporation Method, system, and program for reordering a queue of input/output (I/O) commands into buckets defining ranges of consecutive sector numbers in a storage medium and performing iterations of a selection routine to select and I/O command to execute
JP3712567B2 (ja) * 1999-07-23 2005-11-02 富士通株式会社 記憶装置
JP2001202199A (ja) * 2000-01-18 2001-07-27 Hitachi Ltd 記憶制御装置
US6490635B1 (en) * 2000-04-28 2002-12-03 Western Digital Technologies, Inc. Conflict detection for queued command handling in disk drive controller
US6851011B2 (en) * 2001-08-09 2005-02-01 Stmicroelectronics, Inc. Reordering hardware for mass storage command queue
JP4521206B2 (ja) * 2004-03-01 2010-08-11 株式会社日立製作所 ネットワークストレージシステム、コマンドコントローラ、及びネットワークストレージシステムにおけるコマンド制御方法
JP2006139548A (ja) * 2004-11-12 2006-06-01 Hitachi Global Storage Technologies Netherlands Bv メディア・ドライブ及びそのコマンド実行方法
US20060271739A1 (en) * 2005-05-24 2006-11-30 Shu-Fang Tsai Management of transfer of commands

Also Published As

Publication number Publication date
US7363391B2 (en) 2008-04-22
US20070239902A1 (en) 2007-10-11
JP2007233834A (ja) 2007-09-13

Similar Documents

Publication Publication Date Title
JP4804175B2 (ja) I/oコマンドをキューイングするストレージシステム及びその制御方法
EP1837751B1 (en) Storage system, storage extent release method and storage apparatus
US8918551B2 (en) Storage system
JP4814119B2 (ja) 計算機システム、ストレージ管理サーバ、及びデータ移行方法
US7613896B2 (en) Storage area dynamic assignment method
JP4235220B2 (ja) 計算機システムおよびデータ移行方法
US6170023B1 (en) System for accessing an input/output device using multiple addresses
US8700853B2 (en) Storage apparatus and data management method
JP4464378B2 (ja) 同一データを纏める事で格納領域を節約する計算機システム、ストレージシステム及びそれらの制御方法
US7380090B2 (en) Storage device and control method for the same
JP2008146536A (ja) ストレージ装置及びこれを用いたデータ管理方法
JP2005165852A (ja) ストレージシステム、ストレージ制御装置、ストレージシステムの制御方法
JP2009053921A (ja) ストレージシステム、計算機及び計算機システム
US9104317B2 (en) Computer system and method of controlling I/O with respect to storage apparatus
JP5130169B2 (ja) 仮想化ボリュームへの物理ボリューム領域割り当方法及びストレージ装置
US8732428B2 (en) Computer system and its control method
WO2015068208A1 (ja) システムおよびその制御方法
JP2001022614A5 (ja)
JP2001022614A (ja) 階層形記憶システム
JP5532980B2 (ja) スイッチ装置、スイッチ制御方法、及びストレージシステム
JP2005258744A (ja) ファイル制御装置,その制御方法およびファイル制御装置用プログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080922

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080922

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110303

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110329

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110530

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: 20110712

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110809

R150 Certificate of patent or registration of utility model

Ref document number: 4804175

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140819

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees