JP6336813B2 - ストレージ仮想化装置、ストレージ仮想化装置の制御方法及び制御プログラム - Google Patents

ストレージ仮想化装置、ストレージ仮想化装置の制御方法及び制御プログラム Download PDF

Info

Publication number
JP6336813B2
JP6336813B2 JP2014084787A JP2014084787A JP6336813B2 JP 6336813 B2 JP6336813 B2 JP 6336813B2 JP 2014084787 A JP2014084787 A JP 2014084787A JP 2014084787 A JP2014084787 A JP 2014084787A JP 6336813 B2 JP6336813 B2 JP 6336813B2
Authority
JP
Japan
Prior art keywords
storage virtualization
virtualization apparatus
storage
usage rate
write command
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.)
Active
Application number
JP2014084787A
Other languages
English (en)
Other versions
JP2015204078A (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
Fujitsu Broad Solution and Consulting Inc
Original Assignee
Fujitsu Ltd
Fujitsu Broad Solution and Consulting Inc
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, Fujitsu Broad Solution and Consulting Inc filed Critical Fujitsu Ltd
Priority to JP2014084787A priority Critical patent/JP6336813B2/ja
Priority to US14/656,316 priority patent/US9600186B2/en
Publication of JP2015204078A publication Critical patent/JP2015204078A/ja
Application granted granted Critical
Publication of JP6336813B2 publication Critical patent/JP6336813B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

この発明は、ストレージシステムに関する。
ストレージシステムは、ホストコンピュータ、ファイバチャネルスイッチ(FCスイッチ)、物理ストレージ装置、ストレージ仮想化装置などを複数台備える。ホストコンピュータは、ストレージ仮想化装置へのデータの書き込み命令を出力する。ホストコンピュータとファイバチャネルスイッチは接続されており、ホストコンピュータから出力された命令は、ファイバチャネルスイッチに通知される。ファイバチャネルスイッチは、複数のストレージ仮想化装置に接続されている。ファイバチャネルスイッチは、複数のストレージ仮想化装置中の1つのストレージ仮想化装置に、受信した命令を送る。各ストレージ仮想化装置は、複数の物理ストレージ装置の記憶領域の一部または全部を組み合わせて、仮想的なストレージ装置として動作する。各ストレージ仮想化装置は、仮想的なストレージ装置をホストコンピュータにアクセス可能に提供する。ホストコンピュータからストレージ仮想化装置にアクセスが行われた際、ストレージ仮想化装置は、ストレージ仮想化装置のアクセス領域に対応する物理的なストレージ装置の記憶領域にアクセスする。
ストレージシステムにおいて、1つのストレージ仮想化装置にアクセスが集中することは、処理の遅延を招くため、好ましくない。そのため、ファイバチャネルスイッチは、例えば、ラウンドロビンで、ホストコンピュータからのアクセスを、複数のストレージ仮想化装置に振り分ける。ラウンドロビンにより、1台のストレージ仮想化装置にアクセスが集中しない。
ファイバチャネルスイッチの技術として、ファイバチャネルスイッチ内で、仮想ポートと複数の物理ポートを関連づけ、転送する仮想ポート先をコントロールする技術が知られている(例えば、特許文献1参照)。
負荷分散に関する技術として、物理ストレージ装置の各種パフォーマンスデータを収集し、総合メトリックスを算出し、物理ストレージ装置間でロードバランシングをする技術が知られている(例えば、特許文献2参照)。
特開2011−76582号公報 特表2008−521140号公報
上述した背景技術では以下のような問題がある。
ストレージシステムに設置される物理ストレージ装置の性能は、一律に同様ではない。処理速度の遅い物理ストレージ装置と通信するストレージ仮想化装置は、他のストレージ仮想化装置に比べて処理速度が遅くなるという問題がある。
1つの側面において、本発明の目的は、ストレージ仮想化装置の間での処理速度の差を小さくすることである。
第1のストレージ仮想化装置は、ホストコンピュータから要求された命令が、複数のストレージ仮想化装置に割り振られるシステム中で動作する。第1のストレージ仮想化装置は、受信部、負荷計算部、選択部、処理部を備える。受信部は、第1のストレージ仮想化装置に割り振られた書き込み命令、書き込み命令で書き込むデータ、及び、システム中の他のストレージ仮想化装置の稼動状況を受信する。負荷計算部は、第1のストレージ仮想化装置が書き込み命令を処理するときの負荷を表す指標値を計算する。選択部は、指標値が閾値を超えると、書き込み命令の実行を依頼する第2のストレージ仮想化装置を、稼動状況を用いて選択する。処理部は、第2のストレージ仮想化装置に、書き込み命令とデータの送信処理を行う。
ストレージ仮想化装置の間での処理速度の差が、小さくなる。
本実施形態に係るストレージシステムの例を説明する図である。 ストレージ仮想化装置の構成の例を説明する図である。 書き込み命令を受信したストレージ仮想化装置の処理の例を説明するフローチャートである。 選択部から選択されたストレージ仮想化装置の処理の例を説明するフローチャートである。 選択部から選択されたストレージ仮想化装置が書き込み中のデータの共有先となる場合の処理の例を説明するフローチャートである。 ストレージ仮想化装置の負荷情報収集処理の例を説明するフローチャートである。
以下、本実施形態について、図面を参照しながら詳細に説明する。
図1は、本実施形態に係るストレージシステムの例を説明する図である。ストレージシステム100は、ホストコンピュータ110、ファイバチャネルスイッチ120(120aと120b)、物理ストレージ装置130、ストレージ仮想化装置140を有する。図1の例では、ストレージシステム100は、複数のホストコンピュータ110−1〜110−nを有する。図1の例では、物理ストレージ装置130(130−1〜130−I)と、ストレージ仮想化装置140(140−1〜140―R)も複数、システム100中に含まれている。なお、ホストコンピュータ、ストレージ仮想化装置、物理ストレージ装置の数は限定されない。
ホストコンピュータ110は、ファイバチャネルスイッチ120に接続されている。ホストコンピュータ110は、ファイバチャネルスイッチ120に、ストレージ仮想化装置140へのデータの書き込み命令と、ストレージ仮想化装置140に書き込むデータを出力する。ファイバチャネルスイッチ120は、ストレージ仮想化装置140と接続されている。ファイバチャネルスイッチ120は、ホストコンピュータ110から出力された命令を受信する。ファイバチャネルスイッチ120は、ラウンドロビンでストレージ仮想化装置140を選択し、受信した命令を選択したストレージ仮想化装置140に送る。すなわち、ファイバチャネルスイッチ120は、ストレージシステム中の複数のストレージ仮想化装置140の間でホストコンピュータ110から出された命令の処理回数が等しくなるように調整する調整装置である。
ストレージ仮想化装置140は、各々で、CPU(Central Processing Unit)、メモリ、ビットマップ、インターフェイスを備える。ビットマップは、ストレージ仮想化装置140のキャッシュ領域を複数の領域に分割し、分割された領域毎にビットを対応づけた管理情報である。ビットマップは、例えば、ビットのONとOFFによってデータが既に書き込み済みか、書き込み未実施かを管理する。ビットがONの状態は、ストレージ仮想化装置140に格納されたデータが、物理ストレージ装置に書き込まれていない状態である。一方、ビットがOFFの状態は、ストレージ仮想化装置140に格納されたデータが、物理ストレージ装置に書き込まれた状態である。
次に、ストレージ仮想化装置の詳細な説明をする。図2は、ストレージ仮想化装置の構成の例を説明する図である。ストレージ仮想化装置140は、負荷計算部210、選択部220、ビットマップ管理部230、仮想化部240、処理部250、受信部290を備える。更に、ストレージ仮想化装置140は、キャッシュ260、ビットマップ270、記憶部280を有する。負荷計算部210、選択部220、ビットマップ管理部230、仮想化部240、処理部250で実行される各処理は、CPUで行われる。受信部290は、インターフェイスである。仮想化部240は、複数の物理ストレージ装置の記憶領域の一部または全部を組み合わせて、ストレージ仮想化装置を、仮想的なストレージ装置として動作させる。受信部290は、ホストコンピュータ110で生成された1つ以上のストレージ仮想化装置140への書き込み命令と、書き込み命令による書き込み対象のデータとを受信する。
負荷計算部210は、CPU使用率監視部211、ネットワーク監視部212、キャッシュ使用率監視部213を有する。CPU使用率監視部211は、ストレージ仮想化装置のCPU使用率を監視する。ネットワーク監視部212は、ストレージ仮想化装置と物理ストレージ装置の間のネットワークの負荷を監視する。ネットワーク監視部212が監視するネットワークの負荷は、例えば、ストレージ仮想化装置が物理ストレージ装置へ書き込むデータの量である。キャッシュ使用率監視部213は、ストレージ仮想化装置のキャッシュ使用率を監視する。負荷計算部210は、ストレージ仮想化装置の負荷を表す指標値を計算する。ストレージ仮想化装置の負荷を表す指標値は、例えば、CPU使用率、ネットワークの負荷情報、キャッシュ使用率などのデータである。負荷計算部210は、更に、ストレージ仮想化装置の負荷を表す指標値を全ストレージ仮想化装置140間で、定期的に共有する。全ストレージ仮想化装置140間でストレージ仮想化装置の負荷を表す指標値を共有することで、他のストレージ仮想化装置の稼動状況を共有できる。負荷計算部210は、ネットワークの負荷情報を、ストレージ仮想化装置140と物理ストレージ装置130間に接続されているファイバチャネルスイッチ120から収集してもよい。
記憶部280は、全ストレージ仮想化装置140間で共有した各ストレージ仮想化装置の負荷を表す指標値を、共有元ストレージ仮想化装置140の識別子と対応付けて記憶する。選択部220は、書き込み命令を受信した際のCPU使用率又はネットワークの負荷を示す値が、所定の閾値を超えている場合、CPU使用率とネットワークの負荷を示す値とが低いストレージ仮想化装置を選択する。一方、選択部220は、書き込み命令を受信した際のCPU使用率及びネットワークの負荷を示す値が、所定の閾値を超えていない場合、キャッシュ使用率の低いストレージ仮想化装置を選択する。ビットマップ管理部230は、ビットマップ270の各ビットのON、OFFを管理する。処理部250は、書き込み命令を受信し、物理ストレージ装置への書き込み処理行う。記憶部280、ビットマップ270、キャッシュ260は、メモリで実現される。
以下に、本実施形態に係るストレージ仮想化装置140の処理の例を説明する。図1のストレージシステム100では、ストレージ仮想化装置140−1がファイバチャネルスイッチ120から命令を受信している。
(1)ストレージ仮想化装置140−1の受信部290は、ホストコンピュータ110からの書き込み命令を、ファイバチャネルスイッチ120から受け取る。
(2)ストレージ仮想化装置140−1の処理部250は、物理ストレージ装置130への書き込みデータを、キャッシュに格納する。ストレージ仮想化装置140−1のビットマップ管理部230は、ストレージ仮想化装置140−1中のビットマップの書き込み対象の物理ストレージ装置領域に対応したビットをONにする。
(3)ストレージ仮想化装置140−1の負荷計算部210は、全ストレージ仮想化装置140(140−1〜140−R)のCPU使用率と、ネットワークの負荷情報を収集する。ネットワークの負荷を示す値は、例えば、ストレージ仮想化装置が書き込みをするデータ量である。ストレージ仮想化装置140(140−1〜140−R)は、各々で、CPU使用率と、キャッシュ使用率とを測定している。また、ストレージ仮想化装置140(140−1〜140−R)は、各々で、接続されている物理ストレージ装置130とのネットワークの負荷を監視している。更に、ストレージ仮想化装置140−1の負荷計算部210は、ストレージ仮想化装置の負荷を表す指標値を計算する。ストレージ仮想化装置の負荷を表す指標値は、例えば、CPU使用率、ネットワークの負荷情報、キャッシュ使用率などのデータである、
ファイバチャネルスイッチ120は、ストレージシステム中の複数のストレージ仮想化装置140の間でホストコンピュータ110から出された命令の処理回数が等しくなるように調整する。しかしながら、ファイバチャネルスイッチ120は、ホストコンピュータ110から出された書き込み命令による処理量を考慮していない。また、ファイバチャネルスイッチ120では、物理ストレージ装置間の応答時間の差も考慮されていない。そのため、本実施形態に係るストレージ仮想化装置は、ホストコンピュータ110から出された書き込み命令による処理量や、物理ストレージ装置間の性能の差を考慮するために、(4)、(5)の処理をする。
(4)ストレージ仮想化装置140−1の選択部220は、自身のCPU使用率が、第1の閾値よりも大きいか判定する。第1の閾値は、ストレージ仮想化装置140−1が物理ストレージ装置への書き込み処理速度に影響が出るCPU使用率を使用すればよい。
(5)ストレージ仮想化装置140−1の選択部220は、ネットワークの負荷を示す値が、第2の閾値よりも大きいか判定する。第2の閾値は、ストレージ仮想化装置140−1が物理ストレージ装置への書き込み処理速度に影響が出るネットワークの負荷を示す値を使用すればよい。なお、(4)(5)の処理は、逆の順番で処理されてもよく、並列に処理されてもよい。
(4)、(5)の判定の結果、CPU使用率又はネットワークの負荷を示す値が、所定の閾値を超えている場合、ストレージ仮想化装置140は、(A6)〜(A13)に示す処理を行う。
(A6)ストレージ仮想化装置140−1中の選択部220は、ストレージ仮想化装置140−1自身が受けた書き込み命令を、ストレージ仮想化装置140−1の代わりに実行するストレージ仮想化装置140を選択する。このとき、選択部220は、実行を要求する先のストレージ仮想化装置として、CPU使用率とネットワークの負荷を示す値とが低いストレージ仮想化装置を選択する。つまり、選択部220が選択するストレージ仮想化装置は、CPU使用率とネットワークの負荷を示す値とが低いストレージ仮想化装置ほど、選択される可能性が高いものとする。一例として、CPU使用率とネットワークの負荷を示す値とが低いストレージ仮想化装置140−2が選択されたとする。
(A7)ストレージ仮想化装置140−1の処理部250は、ストレージ仮想化装置140−2に、物理ストレージ装置130への書き込みデータを送信する。ストレージ仮想化装置140−2は、キャッシュに受信した書き込みデータを格納する。
(A8)ストレージ仮想化装置140−2のビットマップ管理部230は、ストレージ仮想化装置140−2中のビットマップ中の書き込み対象の物理ストレージ装置に対応したビットをONにする。ビットマップのビットがONになることで、ストレージ仮想化装置140−2は、書き込み処理の待機状態となる。
(A9)ストレージ仮想化装置140−2の処理部250は、書き込み命令を出したホストコンピュータ110に、書き込み処理が完了したことを通知する。
(A10)ストレージ仮想化装置140−1の処理部250は、ストレージ仮想化装置140−2に、ホストコンピュータ110からの書き込み命令を転送する。
(A11)ストレージ仮想化装置140−2の処理部250は、書き込み命令を受信すると、物理ストレージ装置130への書き込み処理を行う。
(A12)ストレージ仮想化装置140−2のビットマップ管理部230は、ビットマップ中の書き込み対象の物理ストレージ装置に対応したビットをOFFにする。ストレージ仮想化装置140−2の処理部250は、書き込み処理が完了したことをストレージ仮想化装置140−1に通知する。
(A13)ストレージ仮想化装置140−1のビットマップ管理部230は、ビットマップ中の書き込み対象の物理ストレージ装置に対応したビットをOFFにする。
(A6)〜(A13)の処理では、ストレージ仮想化装置140−1は、ファイバチャネルスイッチ120から受信した物理ストレージ装置への書き込み処理を、ストレージ仮想化装置140−1自身で処理をしない。そのため、ストレージ仮想化装置140−1の負荷は上がらない。このように、負荷が比較的低いストレージ仮想化装置140−2が、ストレージ仮想化装置140−1の代わりに書き込み処理を行うことで、処理量や物理ストレージ装置の処理速度の差に起因するストレージ仮想化装置140間での負荷の差を小さくする。
次に、(4)、(5)の判定の結果、CPU使用率及びネットワークの負荷を示す値が、所定の閾値を超えていない場合、ストレージ仮想化装置140は、(B6)〜(B13)に示す処理を行う。この場合、ホストコンピュータ110からの命令を受けたストレージ仮想化装置140自身が、ファイバチャネルスイッチ120から受信した物理ストレージ装置への書き込み処理を行う。
(B6)ストレージ仮想化装置140−1の負荷計算部210は、全ストレージ仮想化装置140(140−1〜140−R)のキャッシュ使用率情報を収集する。
(B7)ストレージ仮想化装置140−1の選択部220は、書き込み対象のデータの共有先として、キャッシュ使用率の低いストレージ仮想化装置を選択する。なお、キャッシュ使用率が低いストレージ仮想化装置ほど、選択される可能性が高い。(B7)の処理では、一例として、キャッシュ使用率の低いストレージ仮想化装置140−3が選択される。
(B8)ストレージ仮想化装置140−1の処理部250は、ストレージ仮想化装置140−3に、物理ストレージ装置130への書き込みデータを送信する。ストレージ仮想化装置140−3の処理部250は、受信したデータを、キャッシュに格納する。
(B9)ストレージ仮想化装置140−3のビットマップ管理部230は、ストレージ仮想化装置140−3中のビットマップ中の書き込み対象の物理ストレージ装置に対応したビットをONにする。
(B10)ストレージ仮想化装置140−1の処理部250は、書き込み命令を出したホストコンピュータ110に、書き込み処理が完了したことを通知する。
(B11)ストレージ仮想化装置140−1の処理部250は、物理ストレージ装置130への書き込み処理を行う。
(B12)ストレージ仮想化装置140−1のビットマップ管理部230は、ビットマップ中の書き込み対象の物理ストレージ装置に対応したビットをOFFにする。ストレージ仮想化装置140−1の処理部250は、書き込み処理が完了したことをストレージ仮想化装置140−3に通知する。
(B13)ストレージ仮想化装置140−3のビットマップ管理部230は、ビットマップ中の書き込み対象の物理ストレージ装置に対応したビットをOFFにする。
以上、述べたように、CPU使用率又はネットワークの負荷を示す値が、所定の閾値を超えた場合、(A6)〜(A12)の処理を行うことで、処理速度が遅くなっているストレージ仮想化装置の処理を、処理速度が速いストレージ仮想化装置に渡すことができる。
図3は、書き込み命令を受信したストレージ仮想化装置の処理の例を説明するフローチャートである。受信部290は、ホストコンピュータ110からの書き込み命令を、ファイバチャネルスイッチ120を経由して受け取る(ステップS101)。処理部250は、物理ストレージ装置130への書き込みデータを、キャッシュに格納する(ステップS102)。ビットマップ管理部230は、ビットマップ中の書き込み対象の物理ストレージ装置に対応したビットをONにする(ステップS103)。負荷計算部210は、全ストレージ仮想化装置140(140−1〜140−R)のCPU使用率と、ネットワークの負荷情報を収集する。更に、負荷計算部210は、ストレージ仮想化装置の負荷を表す指標値を計算する(ステップS104)。負荷計算部210は、CPU使用率が、第1の閾値よりも大きいか判定する。又、負荷計算部210は、ネットワークの負荷を示す値が、第2の閾値よりも大きいか判定する(ステップS105)。
CPU使用率又はネットワークの負荷を示す値の少なくとも一方が、所定の閾値を超えている場合、選択部220は、書き込み処理が可能なストレージ仮想化装置があるかを判定する(ステップS106、ステップS105でYES)。選択部220は、CPU使用率とネットワークの負荷を示す値とが低いストレージ仮想化装置を選択する(ステップ107、ステップS106でYES)。処理部250は、選択部220が選択したストレージ仮想化装置に書き込みデータ及び書き込み命令を送信する(ステップS108)。選択部220が選択したストレージ仮想化装置が、物理ストレージ装置への書き込み処理を行い、物理ストレージ装置への書き込み処理が完了した通知を受信すると、ビットマップ管理部230は、ビットマップ中の書き込み対象の物理ストレージ装置に対応したビットをOFFにする(ステップS109)。
一方、CPU使用率とネットワーク負荷情報のいずれも閾値以下である場合、負荷計算部210は、全ストレージ仮想化装置140のキャッシュ使用率の情報を収集する。選択部220は、全ストレージ仮想化装置140から、キャッシュ使用率が低いストレージ仮想化装置を選択する(ステップ110、ステップS105でNO、ステップS106でNO)。処理部250は、選択部220が選択したストレージ仮想化装置に書き込みデータを送信する(ステップS111)。処理部250は、書き込み命令を出したホストコンピュータ110に、書き込み処理が完了したことを通知する(ステップS112)。処理部250は、物理ストレージ装置130への書き込み処理を行う(ステップS113)。処理部250は、書き込み処理が完了したことを書き込み対象のデータの共有先となっているストレージ仮想化装置140に通知する(ステップS114)。ビットマップ管理部230は、ビットマップ中の書き込み対象の物理ストレージ装置に対応したビットをOFFにする(ステップS115)。ステップS109又はステップS115の処理が終了すると、書き込み命令を受信したストレージ仮想化装置は、書き込み処理を終了する。
図4Aは、選択部から選択されたストレージ仮想化装置の処理の例を説明するフローチャートである。図4Aは、CPU使用率とネットワークの負荷を示す値とが低いストレージ仮想化装置として選択されたことにより、他のストレージ仮想化装置140の処理を代理で行うストレージ仮想化装置内の処理の例である。処理部250は、書き込み処理が可能かどうかの確認の問い合わせを受信する(ステップS201)。なお、S201で受信した問い合わせは、書き込み処理の代理処理を要求する側のストレージ仮想化装置140のS106の処理で出された問い合わせに相当する。選択部220は、CPU使用率と第1の閾値の比較結果及びネットワークの負荷と第2の閾値の比較結果を用いて、書き込み処理に対応が可能かを判定する(ステップS202)。処理部250は、書き込み処理が可能であることを、書き込み処理の代理処理で要求する側のストレージ仮想化装置140に通知する(ステップS203、ステップS202でYES)。受信部290は、書き込みデータを、書き込み命令を受信したストレージ仮想化装置から受信する(ステップS204)。なお、S204で受信した書き込みデータは、書き込み処理の代理処理で要求する側のストレージ仮想化装置140のS108の処理で送信された書き込みデータに相当する。処理部250は、キャッシュに受信したデータを格納する(ステップS205)。ビットマップ管理部230は、ビットマップ中の書き込み対象の物理ストレージ装置に対応したビットをONにする(ステップS206)。処理部250は、書き込み命令を出したホストコンピュータ110に、書き込み処理が完了したことを通知する(ステップS207)。
処理部250は、物理ストレージ装置130への書き込み処理を行う(ステップS208)。処理部250は、書き込み処理が完了したことを、書き込み命令を受信したストレージ仮想化装置に通知する(ステップS209)。ビットマップ管理部230は、ビットマップ中の書き込み対象の物理ストレージ装置に対応したビットをOFFにする(ステップS210)。処理部250は、書き込み処理ができないことを、書き込み処理の代理処理で要求する側のストレージ仮想化装置140に通知する(ステップS211、ステップS202でNO)。ステップS211又はステップS210処理が終了すると、ストレージ仮想化装置は書き込み処理を終了する。
図4Bは、選択部から選択されたストレージ仮想化装置が書き込み中のデータの共有先となる場合の処理の例を説明するフローチャートである。受信部290は、書き込みデータを、ホストコンピュータから書き込み命令を受信したストレージ仮想化装置から受信する(ステップS301、ステップS111に対応)。処理部250は、キャッシュに受信したデータを格納する(ステップS302)。ビットマップ管理部230は、ビットマップ中の書き込み対象の物理ストレージ装置に対応したビットをONにする(ステップS303)。受信部290は、書き込み命令を受信したストレージ仮想化装置から、書き込み完了の通知を受信する(ステップS304、ステップS114に対応)。ビットマップ管理部230は、ビットマップ中の書き込み対象の物理ストレージ装置に対応したビットをOFFにする(ステップS305)。ステップS305の処理が終了すると、ストレージ仮想化装置は、処理を終了する。
図5は、ストレージ仮想化装置の負荷情報収集処理の例を説明するフローチャートである。負荷情報収集処理は、システム内の全てのストレージ仮想化装置で行われる。CPU使用率監視部211は、CPU使用率情報を収集する(ステップS401)。ネットワーク監視部212は、ストレージ仮想化装置が物理ストレージ装置への書き込みをするデータ量を収集する(ステップS402)。キャッシュ使用率監視部213は、キャッシュ使用率情報を収集する(ステップS403)。負荷計算部210は、CPU使用率、ネットワークの負荷情報、キャッシュ使用率などのデータである、ストレージ仮想化装置の負荷を表す指標値を計算し、全ストレージ仮想化装置に送信する(ステップS404)。処理部250は、一定時間待機し、処理をS401に戻す。
以上、説明したように、実施形態にかかる方法では、CPU使用率又はネットワークの負荷を示す値が、所定の閾値を超えており、処理速度が遅くなっているストレージ仮想化装置の処理を、処理速度が速いストレージ仮想化装置に渡すことができる。
<その他>
本実施形態のストレージシステムは、全ストレージ仮想化装置140のCPU使用率と、ネットワークの負荷情報を用いて、ストレージシステムを拡張したほうがよいかを判定することもできる。ストレージ仮想化装置は、何れのストレージ仮想化装置においても、CPU使用率が第1の閾値を上回る状態とネットワーク負荷が第2の閾値を超えている状態のうちの1つ以上を満たす場合、システムの拡張要求を管理端末に通知する。この場合、ストレージシステム全体が過負荷な状態であり、その状態が継続している。すなわち、ストレージ仮想化装置がボトルネックとなり、ストレージシステム全体の機能を低下させている場合である。管理端末は、ストレージ仮想化装置140のいずれかに接続され、ストレージ仮想化装置140全体を管理する端末である。ストレージシステムは、システム中に調整装置を備えなくともよい。
負荷計算部210は、全ストレージ仮想化装置のCPU使用率の平均値及びネットワークの負荷情報を表す値の平均値を、定期的に計算する。負荷計算部210は、例えば、1時間毎に、平均値を計算する。負荷計算部210は、計算された平均値が、一定回数連続で所定の閾値を超えた場合、ストレージシステム全体が過負荷な状態と判断する。
110 ホストコンピュータ
120 ファイバチャネルスイッチ
130 物理ストレージ装置
140 ストレージ仮想化装置
210 負荷計算部
211 CPU使用率監視部
212 ネットワーク監視部
213 キャッシュ使用率監視部
220 選択部
230 ビットマップ管理部
240 仮想化部
250 処理部
260 キャッシュ
270 ビットマップ

Claims (12)

  1. ホストコンピュータから要求された命令が、複数のストレージ仮想化装置に割り振られるシステム中の第1のストレージ仮想化装置として動作するストレージ仮想化装置であって、
    前記第1のストレージ仮想化装置に割り振られた書き込み命令、前記書き込み命令で書き込むデータ、前記システム中の他のストレージ仮想化装置のプロセッサの使用率を表す値、前記他のストレージ仮想化装置のネットワークの負荷を表す値、前記他のストレージ仮想化装置のキャッシュ使用率を表す値を受信する受信部と、
    前記第1のストレージ仮想化装置が前記書き込み命令を処理するときの、前記第1のストレージ仮想化装置のプロセッサの使用率又はネットワークの負荷を表す指標値を計算する負荷計算部と、
    前記指標値が閾値を超えると、前記他のストレージ仮想化装置のプロセッサの使用率を表す値、又は、前記他のストレージ仮想化装置のネットワークの負荷を表す値に基づいて、前記他のストレージ仮想化装置のうちから前記書き込み命令を実行するストレージ仮想化装置を選択し、前記指標値が閾値を超えていないときは、前記第1のストレージ仮想化装置を含む前記複数のストレージ仮想化装置それぞれのキャッシュ使用率を表す値に基づいて、前記第1のストレージ仮想化装置を含む前記複数のストレージ仮想化装置のうちから前記書き込み命令を実行するストレージ仮想化装置を選択する選択部と、
    前記選択部により他のストレージ仮想化装置が選択されたときには、前記選択されたストレージ仮想化装置に、前記書き込み命令と前記データの送信処理を行う処理部と、
    を備えることを特徴とするストレージ仮想化装置。
  2. 前記選択部は、前記システム中の他のストレージ仮想化装置の稼動状況が低いストレージ仮想化装置ほど選択されやすくなるように選択する
    ことを特徴とする請求項1に記載のストレージ仮想化装置。
  3. 前記処理部は、前記選択部により前記第1のストレージ仮想化装置が選択された場合には、前記データを、前記第1のストレージ仮想化装置のアクセス先の物理ストレージ装置に格納することにより、前記書き込み命令を処理する
    ことを特徴とする請求項1または2に記載のストレージ仮想化装置。
  4. 前記指標値は、前記処理部で実行中の命令の処理にかかる処理量と、前記第1のストレージ仮想化装置と前記第1のストレージ仮想化装置のアクセス先の物理ストレージ装置の間で送受信されるデータの量である
    ことを特徴とする請求項1〜3の何れかに記載のストレージ仮想化装置。
  5. ホストコンピュータから要求された命令が、複数のストレージ仮想化装置に割り振られるシステム中の第1のストレージ仮想化装置として動作するストレージ仮想化装置が、
    前記第1のストレージ仮想化装置に割り振られた書き込み命令、前記書き込み命令で書き込むデータ、前記システム中の他のストレージ仮想化装置のプロセッサの使用率を表す値、前記他のストレージ仮想化装置のネットワークの負荷を表す値、前記他のストレージ仮想化装置のキャッシュ使用率を表す値を受信し、
    前記第1のストレージ仮想化装置が前記書き込み命令を処理するときの、前記第1のストレージ仮想化装置のプロセッサの使用率又はネットワークの負荷を表す指標値を計算し、
    前記指標値が閾値を超えると、前記他のストレージ仮想化装置のプロセッサの使用率を表す値、又は、前記他のストレージ仮想化装置のネットワークの負荷を表す値に基づいて、前記他のストレージ仮想化装置のうちから前記書き込み命令を実行するストレージ仮想化装置を選択し、前記指標値が閾値を超えていないときは、前記第1のストレージ仮想化装置を含む前記複数のストレージ仮想化装置それぞれのキャッシュ使用率を表す値に基づいて、前記第1のストレージ仮想化装置を含む前記複数のストレージ仮想化装置のうちから前記書き込み命令を実行するストレージ仮想化装置を選択し、
    他のストレージ仮想化装置が選択されたときには、選択されたストレージ仮想化装置に、前記書き込み命令と前記データの送信処理を行う
    ことを特徴とするストレージ仮想化装置の制御方法。
  6. 前記システム中の他のストレージ仮想化装置の稼動状況が低いストレージ仮想化装置ほど選択されやすくなるように選択する
    ことを特徴とする請求項5に記載のストレージ仮想化装置の制御方法。
  7. 前記第1のストレージ仮想化装置が選択された場合には、前記第1のストレージ仮想化装置が、前記データを、前記第1のストレージ仮想化装置のアクセス先の物理ストレージ装置に格納することにより、前記書き込み命令を処理する
    ことを特徴とする請求項5または6に記載のストレージ仮想化装置の制御方法。
  8. 前記指標値は、前記第1のストレージ仮想化装置で実行中の命令の処理にかかる処理量と、前記第1のストレージ仮想化装置と前記第1のストレージ仮想化装置のアクセス先の物理ストレージ装置の間で送受信されるデータの量である
    ことを特徴とする請求項5〜7の何れかに記載のストレージ仮想化装置の制御方法。
  9. ホストコンピュータから要求された命令が、複数のストレージ仮想化装置に割り振られるシステム中の第1のストレージ仮想化装置として動作するストレージ仮想化装置に、
    前記第1のストレージ仮想化装置に割り振られた書き込み命令、前記書き込み命令で書き込むデータ、前記システム中の他のストレージ仮想化装置のプロセッサの使用率を表す値、前記他のストレージ仮想化装置のネットワークの負荷を表す値、前記他のストレージ仮想化装置のキャッシュ使用率を表す値を受信し、
    前記第1のストレージ仮想化装置が前記書き込み命令を処理するときの、前記第1のストレージ仮想化装置のプロセッサの使用率又はネットワークの負荷を表す指標値を計算し、
    前記指標値が閾値を超えると、前記他のストレージ仮想化装置のプロセッサの使用率を表す値、又は、前記他のストレージ仮想化装置のネットワークの負荷を表す値に基づいて、前記他のストレージ仮想化装置のうちから前記書き込み命令を実行するストレージ仮想化装置を選択し、前記指標値が閾値を超えていないときは、前記第1のストレージ仮想化装置を含む前記複数のストレージ仮想化装置それぞれのキャッシュ使用率を表す値に基づいて、前記第1のストレージ仮想化装置を含む前記複数のストレージ仮想化装置のうちから前記書き込み命令を実行するストレージ仮想化装置を選択し、
    他のストレージ仮想化装置が選択されたときには、選択されたストレージ仮想化装置に、前記書き込み命令と前記データの送信処理を行う
    処理を行わせることを特徴とする制御プログラム。
  10. 前記第1のストレージ仮想化装置に、
    前記システム中の他のストレージ仮想化装置の稼動状況が低いストレージ仮想化装置ほど選択されやすくなるように選択する
    処理を行わせることを特徴とする請求項9に記載の制御プログラム。
  11. 前記第1のストレージ仮想化装置に、
    前記第1のストレージ仮想化装置が選択された場合には、前記データを、前記第1のストレージ仮想化装置のアクセス先の物理ストレージ装置に格納することにより、前記書き込み命令を処理する
    処理を行わせることを特徴とする請求項9または10に記載の制御プログラム。
  12. 前記指標値は、前記第1のストレージ仮想化装置で実行中の命令の処理にかかる処理量と、前記第1のストレージ仮想化装置と前記第1のストレージ仮想化装置のアクセス先の物理ストレージ装置の間で送受信されるデータの量である
    ことを特徴とする請求項9〜11の何れかに記載の制御プログラム。
JP2014084787A 2014-04-16 2014-04-16 ストレージ仮想化装置、ストレージ仮想化装置の制御方法及び制御プログラム Active JP6336813B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014084787A JP6336813B2 (ja) 2014-04-16 2014-04-16 ストレージ仮想化装置、ストレージ仮想化装置の制御方法及び制御プログラム
US14/656,316 US9600186B2 (en) 2014-04-16 2015-03-12 Device and method for causing another device to execute write instruction according to index value representing load

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014084787A JP6336813B2 (ja) 2014-04-16 2014-04-16 ストレージ仮想化装置、ストレージ仮想化装置の制御方法及び制御プログラム

Publications (2)

Publication Number Publication Date
JP2015204078A JP2015204078A (ja) 2015-11-16
JP6336813B2 true JP6336813B2 (ja) 2018-06-06

Family

ID=54322069

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014084787A Active JP6336813B2 (ja) 2014-04-16 2014-04-16 ストレージ仮想化装置、ストレージ仮想化装置の制御方法及び制御プログラム

Country Status (2)

Country Link
US (1) US9600186B2 (ja)
JP (1) JP6336813B2 (ja)

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4633387A (en) * 1983-02-25 1986-12-30 International Business Machines Corporation Load balancing in a multiunit system
JP3772369B2 (ja) * 1995-11-20 2006-05-10 株式会社日立製作所 記憶サブシステム
US6108684A (en) * 1996-12-23 2000-08-22 Lsi Logic Corporation Methods and apparatus for balancing loads on a storage subsystem among a plurality of controllers
US6067545A (en) * 1997-08-01 2000-05-23 Hewlett-Packard Company Resource rebalancing in networked computer systems
JP4188602B2 (ja) * 2002-01-10 2008-11-26 株式会社日立製作所 クラスタ型ディスク制御装置及びその制御方法
JP4410661B2 (ja) * 2004-11-09 2010-02-03 株式会社日立製作所 分散制御システム
US7523286B2 (en) 2004-11-19 2009-04-21 Network Appliance, Inc. System and method for real-time balancing of user workload across multiple storage systems with shared back end storage
JP5057656B2 (ja) * 2005-05-24 2012-10-24 株式会社日立製作所 ストレージシステム及びストレージシステムの運用方法
JP2009230484A (ja) * 2008-03-24 2009-10-08 Nec Corp ストレージサブシステム、ストレージシステム、ファームウェア置換方法、及びプログラム
US8260986B2 (en) 2009-09-29 2012-09-04 Hitachi, Ltd. Methods and apparatus for managing virtual ports and logical units on storage systems
US8621178B1 (en) * 2011-09-22 2013-12-31 Emc Corporation Techniques for data storage array virtualization

Also Published As

Publication number Publication date
US20150301753A1 (en) 2015-10-22
JP2015204078A (ja) 2015-11-16
US9600186B2 (en) 2017-03-21

Similar Documents

Publication Publication Date Title
US10728175B2 (en) Adaptive service chain management
US9916275B2 (en) Preventing input/output (I/O) traffic overloading of an interconnect channel in a distributed data storage system
US20170155560A1 (en) Management systems for managing resources of servers and management methods thereof
JP6224244B2 (ja) 作業密度を増加させ、エネルギー効率を向上させるための電力バランシング
KR102428091B1 (ko) 키 밸류 장치를 위한 애플리케이션 인식 입출력 완료 모드 변환기의 방법
US11489735B2 (en) Dynamic network allocation apparatus, dynamic network allocation method and non-transitory computer-readable medium
JP2008257572A (ja) 論理区画に動的に資源割り当てを行うストレージシステム及びストレージシステムの論理分割方法
Deshpande et al. Scatter-gather live migration of virtual machines
Yildirim et al. End-to-end data-flow parallelism for throughput optimization in high-speed networks
JP2013127758A (ja) ストレージ装置、ストレージ装置の制御方法及びストレージ装置制御プログラム
JP2009087175A (ja) ストレージ装置、処理制御装置、及び記憶システム
JP2019095971A (ja) ストレージシステム、ストレージ制御装置およびプログラム
CN116057507A (zh) 存储级负载平衡
KR20150007698A (ko) 가상 데스크탑 서비스를 위한 부하 분산 시스템
CN113268329B (zh) 一种请求调度方法、装置及存储介质
JP5515810B2 (ja) 負荷制御装置
KR102309764B1 (ko) 복수의 gpu에 대한 분산처리를 수행하는 fpga 장치 및 이를 이용한 분산처리 수행 방법
JP2010108300A (ja) 情報処理システム、及び情報処理システムにおけるi/oのパスへの割り当て方法
JP6336813B2 (ja) ストレージ仮想化装置、ストレージ仮想化装置の制御方法及び制御プログラム
JP6186287B2 (ja) システムの管理サーバ及び制御方法
JP2007179246A (ja) 計算機管理方法、計算機管理プログラム、および、計算機管理サーバ
JP6848278B2 (ja) ストレージ管理装置、性能調整方法及び性能調整プログラム
KR20160061726A (ko) 인터럽트 핸들링 방법
JP5526748B2 (ja) パケット処理装置、パケット振り分け装置、制御プログラム及びパケット分散方法
US20210191623A1 (en) Storage system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161229

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171030

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171114

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180110

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180306

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180330

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180507

R150 Certificate of patent or registration of utility model

Ref document number: 6336813

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313115

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350