JP5825359B2 - 負荷分散システム - Google Patents

負荷分散システム Download PDF

Info

Publication number
JP5825359B2
JP5825359B2 JP2013549985A JP2013549985A JP5825359B2 JP 5825359 B2 JP5825359 B2 JP 5825359B2 JP 2013549985 A JP2013549985 A JP 2013549985A JP 2013549985 A JP2013549985 A JP 2013549985A JP 5825359 B2 JP5825359 B2 JP 5825359B2
Authority
JP
Japan
Prior art keywords
processing
server
request
access
threshold
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
JP2013549985A
Other languages
English (en)
Other versions
JPWO2013094007A1 (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
Publication of JPWO2013094007A1 publication Critical patent/JPWO2013094007A1/ja
Application granted granted Critical
Publication of JP5825359B2 publication Critical patent/JP5825359B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • 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/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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2206/00Indexing scheme related to dedicated interfaces for computers
    • G06F2206/10Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
    • G06F2206/1012Load balancing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computer And Data Communications (AREA)

Description

以下の実施形態は、負荷分散システムに関する。
近年、コンピュータとネットワークの発展により、従来、ローカルなハードディスクなどに格納されていたデータを、ネットワークで接続されたサーバシステムの記憶装置に格納する形態のサービスが実現されつつある。このようなサービスをクラウドサービスと呼ぶ。このようなクラウドサービスにおいては、多数のサーバが設けられ、ユーザからの処理要求を各サーバに割り振ることが行なわれる。その際には、1つのサーバに処理が集中しないように、負荷分散を行なう必要がある。サーバの負荷は、サーバから記憶装置にI/O処理要求を発行し、それが処理されるまでの記憶装置の処理速度によって大きく左右される。記憶装置が速く処理をすれば、そのI/O処理要求を送出したサーバの処理も早く済み、負荷が軽減されることになる。したがって、サーバの負荷は、記憶装置の応答時間により決定される。
図1は、負荷分散を行なう従来技術を説明する図である。
図1のシステムは、ユーザからの処理要求を受け付けるアクセスサーバ10−1、10−2、負荷分散装置12を備える。また、アクセスサーバ10−1、10−2からのアクセス要求を処理するI/O処理サーバ14−1〜14−3、データの書き込み、読み出しを行なうストレージ装置16−1〜16−4を備える。そして、これらは、ネットワーク11、13、15によって接続される。I/O処理サーバ14−1〜14−3とストレージ装置16−1〜16−4との間の接続は、ネットワーク15を介して、I/O処理サーバ1つに複数のストレージ装置が接続されたり、1つのストレージ装置に複数のI/O処理サーバが接続されたりする。アクセスサーバは、ストレージ装置にI/O処理要求を転送する場合、I/O処理サーバを介して所望のストレージ装置にI/O処理要求を転送するか決定する。どのI/O処理サーバもいずれのストレージ装置にI/O処理要求を転送できるように設定される。
負荷の平準化についての従来の方式では、負荷分散装置12を使用して実処理を行うI/O処理サーバ14−1〜14−3の負荷を平準化している。図1は、I/O処理要求(ストレージ装置16−1〜16−4に対する書き込み、読み出し要求)を行うアクセスサーバ10−1、10−2が複数あり、負荷分散装置12を使用してI/O処理サーバ14−1〜14−3の負荷を分散させる例を示している。
ある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処理サーバ14−1〜14−3のいずれかの負荷が高くなった場合には、負荷分散装置12が別のI/O処理サーバ14−1〜14−3に対して負荷を振り分ける。この構成では、以下の2点の問題がある。
・負荷分散装置12の高負荷
アクセスサーバ10−1、10−2の数が増えた際に、負荷分散装置12の負荷が高くなり、負荷分散装置12の処理でボトルネックが発生する可能性がある。
・負荷分散装置12の異常
負荷分散装置12に異常が発生し、負荷分散装置12がダウンした場合には、全てのI/O処理要求に対する処理が止まることになる。
異常が発生した際のI/O処理要求の処理の引き継ぎに関して、従来の方式では、マルチパス方式を使用している。
図2は、従来のマルチパス方式を使用した場合の構成図である。
アクセスサーバ10では、I/O処理サーバ14−1とI/O処理サーバ14−2への複数のパス(アクセスパス(1)、(2))を予め定義しておく。I/O処理サーバ14−1、14−2でI/O処理要求に対する処理を行っているときに、I/O処理サーバ14−1で異常が発生したとする。そのときには、アクセスサーバ10は、アクセスパスをアクセスパス(1)から(2)に切り替えることで処理を継続する。
この方式では次の問題がある。
アクセスサーバが複数あり、同じI/O処理サーバを使用している場合、いずれかのI/O処理サーバに異常が発生した状況を考える。このとき、個々のアクセスサーバがパスの切り替え処理を行うため、パス切り替え後に特定のI/O処理サーバの負荷が高くなる場合がある。
アクセスサーバ同士でI/O処理サーバの負荷を調整する仕組みを持たせることにより、特定のI/O処理サーバの負荷が高くなることへの対策とすることができる。しかし、この場合には、アクセスサーバ間になんらかの通信手段を持つ必要がある。一方、クラウドサービスなどを考慮すると、個々のアクセスサーバを管理するのは別会社となる可能性が高く、アクセスサーバ同士で通信を行うと会社の秘密が他社に漏れてしまう。したがって、図2の方式では、このようなセキュリティの問題や構成が複雑化すること、また、それに伴うシステムコストが高くなることが問題となる。
従来技術には、サーバ、サーバで動作しているアプリケーション、ストレージ装置、アクセス経路などの情報を管理するストレージ管理サーバを設け、負荷分散を行なうものがある。また、その他の従来技術には、ストレージサブシステムにあるコントローラが各接続ポートの負荷状況を監視し、この監視内容に基づいて負荷分散を行なうものがある。
特開2007−233783号公報 特開2008−9497号公報
多数のアクセスサーバと多数のI/O処理サーバがある環境において、I/O処理サーバの負荷分散を効率的に行なえる図1の構成では、負荷分散装置に異常が発生した際にサービスが停止してしまう。
I/O処理サーバで異常が発生した場合のI/O処理サーバの切り替え方式(図2)では、多数のI/O処理サーバの負荷を平準化するために、多数存在するアクセスサーバ間で負荷調整の情報をやりとりする必要がある。この場合には、システム構成が複雑になる、セキュリティ上の弱点が生じるなどの問題がある。
したがって、特定のI/O処理サーバへのI/O処理要求の発行が集中するのを防ぐ他の方策が望まれる。
1つの側面では、本発明は、複数のアクセスサーバと複数のI/O処理サーバを有するシステムにおける負荷分散を図ることを目的とする。
以下の実施形態の一側面における負荷分散システムは、入力処理要求又は出力処理要求を受け付け、処理結果を返送する複数のストレージ装置と、複数のアクセスサーバの1つから該入力処理要求又は出力処理要求を受信し、該複数のストレージ装置の1つに該入力処理要求又は出力処理要求を送信し、該処理結果を該複数のストレージ装置の1つから受信し、該処理結果を該複数のアクセスサーバの1つに送信し、該複数のアクセスサーバの1つからの該入力処理要求又は出力処理要求の受信から該処理結果を該複数のアクセスサーバの1つに送信するまでのレスポンス時間が閾値を超えた場合に、該入力処理要求又は出力処理要求に対する処理が過負荷状態にあることを示す過負荷応答を送出する複数のI/O処理サーバと、入力処理要求又は出力処理要求を、該I/O処理サーバからの該過負荷応答に基づいて、過負荷状態ではないI/O処理サーバへ送信する複数のアクセスサーバとを備える。
1実施形態によれば、複数のアクセスサーバと複数のI/O処理サーバを有するシステムにおける負荷分散を図ることができる。
負荷分散を行なう従来技術を説明する図である。 従来のマルチパス方式を使用した場合の構成図である。 本実施形態の負荷分散システムを含む全体のシステム構成図である。 アクセスサーバ及びI/O処理サーバのブロック図である。 アクセスサーバとI/O処理サーバの間で行われる通信の基本的な流れを示すシーケンス図である。 I/O処理サーバで異常が発生し、I/O処理サーバを切り替える場合の全体的な流れを示すシーケンス図である。 I/O処理サーバで異常が発生した場合のアクセスサーバの処理のフローチャートである。 アクセスサーバの処理を説明する図(その1)である。 アクセスサーバの処理を説明する図(その2)である。 アクセスサーバの処理を説明する図(その3)である。 アクセスサーバの処理を説明する図(その4)である。 ソート処理における管理テーブルのリストの遷移状態を説明する図である。 I/O処理サーバの処理を説明する図(その1)である。 I/O処理サーバの処理を説明する図(その2)である。 I/O処理サーバの処理を説明する図(その3)である。 アクセスサーバがI/O処理サーバを再選択する際の処理のフローチャートである。 アクセスサーバが管理するテーブルとその遷移の例を示す図である。 I/O処理サーバが管理するテーブルとその遷移の例を示す図である。 アクセスサーバおよびI/O処理サーバの管理テーブルの制御を行う仕組みを示す図である。 管理テーブル監視部の処理フローである。 I/O処理要求をSCSIコマンドで実現する場合のレスポンスデータフォーマットの一例を示す図である。 アクセスサーバによるI/O処理サーバへの負荷問い合わせ処理のシーケンス図である。 負荷情報の問い合わせコマンドであるInquiryに対する応答のフォーマットを示す図である。 負荷状態の問い合わせの際のアクセスサーバの処理を示すフローチャートである。 本実施形態の処理をプログラムで実現する場合の、アクセスサーバ及びI/O処理サーバのハードウェア構成を説明する図である。
以下の実施形態は、たとえば、クラウドシステムのようにサーバ台数もストレージ台数も多いシステムに適用される。そして、システム全体の負荷の平準化によるサービスの均一化と、負荷平準化の際に、いずれかの機器に故障が発生した場合にもサービスが継続できるような信頼性を備えたシステムを提供する。
このために、アクセスサーバがI/O処理サーバへ送るI/O処理要求の情報と、I/O処理サーバがアクセスサーバへ応答を返すレスポンス情報を拡張する。
I/O処理サーバが iSCSIのターゲットデバイスとして接続されている場合には、アクセスサーバからのリクエストは SCSIコマンドを拡張したコマンドとして送信される。I/O処理サーバからアクセスサーバへのレスポンスも SCSIコマンドのレスポンス情報を拡張することで実現する。(I/O処理サーバがFibreChannelのターゲットとして接続されている場合には、アクセスサーバからのリクエスト、I/O処理サーバからアクセスサーバへのレスポンスともファイバチャネルコマンドの拡張として実現する。実現手段は同じであるため、以下ではiSCSIの場合を例として記載する。)
ここで、負荷分散の対象は、アクセスサーバから見た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処理サーバへのアクセス集中を防止するためである。
このことにより、アクセスサーバが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処理要求の負荷分散を行えることで、システム全体の性能向上が行える。また、多数のサーバを使用することにより、I/O処理サーバのうちのいずれかのサーバが故障する可能性が高くなるが、その場合でもクラウドシステムが提供するサービスを継続できる。
なお、I/O処理サーバで異常が発生した場合には、アクセスサーバはI/O処理要求に対する無応答またはエラーとして異常を検知できる。このとき、アクセスサーバは別のI/O処理サーバに対してI/O処理要求を発行する。
図3は、本実施形態の負荷分散システムを含む全体のシステム構成図である。
全体システムは、複数のアクセスサーバ20−1〜20−n(クラウドサービスを提供するための物理サーバ。このアクセスサーバ上で多数の仮想マシンを動作させる)を備える。更に、複数のI/O処理サーバ21−1〜21−m(アクセスサーバが発行したI/O処理要求を処理するサーバ)、複数のストレージ装置22−1〜22−Nから構成される。そして、これらの装置は、ネットワーク23、24によって接続される。
アクセスサーバ20−1〜20−n同士はセキュリティ確保の観点から管理用の通信経路を持たず、I/O処理サーバの負荷調整のための通信は行わない。
I/O処理サーバ21−1〜21−m同士はセキュリティ確保の観点から管理用の通信経路を持たず、互いの負荷調整のための通信は行わない。
図4は、アクセスサーバ及びI/O処理サーバのブロック図である。
アクセスサーバ及びI/O処理サーバは、同じブロック図で表すことが出来る。I/O受付部30は、送信されてきたI/O処理要求(リクエスト)を受け付ける。図4の装置がアクセスサーバの場合、I/O受付部30は、ユーザアプリケーションから発行されたI/O処理要求を受け付ける。図4の装置がI/O処理サーバの場合には、I/O受付部30は、アクセスサーバから発行されたI/O処理要求を受け付ける。
I/O時間監視部32は、I/O処理要求の受け付けから、これに対するレスポンスを受信し、アクセスサーバにレスポンスを返すまでの時間を監視し、必要に応じて管理テーブル格納部33の管理テーブルを更新する。I/O時間監視部32は、I/O処理サーバの数L個だけのカウンタ35−1〜35−Lを備えており、レスポンスに対する過負荷応答を返さない場合にカウンタがカウントアップし、管理テーブルのカウンタの値保持部の値を更新する。このLは、図4の装置が、アクセスサーバの場合には、I/O処理サーバの数mであり、図4の装置が、I/O処理サーバの場合には、ストレージ装置の数Nである。
管理テーブルについては後述する。管理テーブル監視部34は、管理テーブル格納部33に格納された管理テーブルに登録される閾値レベルを監視する。I/O発行部31は、I/O受付部30で受け付けたI/O処理要求を、受付時間の登録をした後、転送するものである。図4の装置がアクセスサーバの場合、I/O発行部31は、I/O処理サーバにI/O処理要求を送信する。図4の装置がI/O処理サーバの場合には、I/O発行部31は、ストレージ装置にI/O処理要求を送信する。
図5は、アクセスサーバとI/O処理サーバの間で行われる通信の基本的な流れを示すシーケンス図である。
ユーザアプリケーションからI/O処理要求が発行され、アクセスサーバ、I/O処理サーバ(1)を介して、ストレージ装置にI/O処理要求が通知される。I/O処理サーバ(1)は、この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処理要求を振り分けることを図5では、再選択処理と呼んでいる。再選択処理については図16で後述する。アクセスサーバは、後述の図8、図9の管理テーブルを参照し、I/O処理要求のサイズ(または発行頻度)が閾値を超えている場合は、更なる振り分けが必要と判断し、更に後続のI/O処理要求は更に別のI/O処理サーバに対して実行される。ここで、I/O処理要求のサイズは、I/O処理要求によって指定される、ストレージ装置から読み出すデータの量、あるいは、ストレージ装置に書き込むデータの量のことである。
図6は、I/O処理サーバで異常が発生し、I/O処理サーバを切り替える場合の全体的な流れを示すシーケンス図である。
I/O処理サーバでエラーが発生した場合には、アクセスサーバが発行したI/O処理要求がエラーとなる。このとき、アクセスサーバはI/O処理サーバが異常となったことを検知できるものとする。アクセスサーバは、I/O処理サーバの異常を検知すると、再選択処理を実行して、別のI/O処理サーバに対してI/O処理要求を再実行する。このことで、I/O処理サーバで異常が発生した場合でもサービスの継続が可能になる。
図7は、I/O処理サーバで異常が発生した場合のアクセスサーバの処理のフローチャートである。
ステップS40における、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〜図11は、アクセスサーバの処理を説明する図である。
アクセスサーバは、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及び図9は、アクセスサーバが有する管理テーブルの例である。
図8は、管理テーブルである。管理テーブルは、複数の閾値定義テーブルがリストとして配列されたテーブルの集まりである。管理テーブルの閾値定義テーブルは、I/O処理サーバごとに設けられる。そして、各閾値定義テーブルは、閾値レベルとI/O処理要求のサイズの閾値、I/O処理要求頻度の閾値、閾値カウンタ定義値とを対応付けて保持する。また、I/O処理サーバごとの閾値定義テーブルは、それぞれ、カウンタの値保持部とレベル値設定部を有する。レベル値設定部とは、I/O処理サーバが現在、閾値定義テーブルにある閾値レベルのうちのどの閾値レベルにあるかを指定するものである。閾値カウンタ定義値は、カウンタの値保持部がその値になったとき、レベル値設定部に設定される閾値レベルを変更するものである。図4のカウンタ35は、過負荷応答が無かった場合にカウント値を1つ増加するものである。カウンタはI/O処理サーバの数だけ設けられる。カウントする値は、カウンタの値保持部が保持しており、カウンタがカウントアップするごとに、カウンタの値保持部の値が変更される。カウンタの値保持部は、過負荷状態が存在しない場合にカウンタがカウントアップする値を保持する。カウンタの値保持部の値が閾値カウンタ定義値になると、レベル値設定部の閾値レベルを変更し、カウンタ35をリセットすると共にカウンタの値保持部のカウンタの値を0に初期化する。
図9は、図8のm個のテーブルのうちで1つのI/O処理サーバについての閾値定義テーブルを詳細に示したものである。閾値レベルとしては、1〜kまでの各値を取るものとしている。I/Oサイズは、閾値レベル1の無制限から、閾値レベルが大きくなるにしたがって、小さくなる値となっている。このI/Oサイズは、I/O処理要求のサイズの閾値である。I/O頻度は、閾値レベル1の100回/secから、閾値レベルが大きくなるに従い、少なくなる値となっている。このI/O頻度は、I/O処理要求の頻度の閾値である。閾値カウンタ定義値は、カウンタの値がいくつになったら閾値レベルを変えるかを定義するものである。
図8及び図9の管理テーブルは、システム管理者が予め定義する。システム管理者は、閾値レベルという閾値の設定値のラベルについて、それぞれ、I/O処理サーバに与える負荷の大きさをI/O処理サーバのマシンパワーに照らし合わせて見積もって、閾値のレベルを設定する。過負荷応答があった場合には、閾値レベルを上下させることで各閾値を変える。I/O処理要求に対する応答が過負荷応答でなかった場合に、カウンタをカウントアップする。このカウンタが閾値カウンタ定義値を超えた場合に、閾値レベルを下げる。
図10は、アクセスサーバの処理を示すフローチャートである。
図10の処理は、新たにI/O処理要求が発生するごとに実行するものである。
図10に従うと、ステップS10において、アクセスサーバは、例えば運用開始時には、アクセスすべきストレージ装置に対して接続されているI/O処理サーバの管理テーブル(後述)を参照し、当該I/O処理サーバの閾値レベルを確認する。管理テーブルに含まれる各閾値定義テーブルには、当該I/O処理サーバの現在の閾値レベルを保持するレベル値設定部が存在し、この値を確認する。ステップS11において、I/O処理要求のサイズが該閾値レベルに対応する閾値未満であるか否かを判断する。ステップS11の判断がNoの場合には、ステップS13に進む。ステップS11の判断がYesの場合には、ステップS12に進む。ステップS12では、I/O処理要求の頻度が該閾値レベルに対応する閾値未満であるか否かを判断する。頻度は、例えば、1秒間に発行するI/O処理要求の数である。アクセスサーバは、自分が1秒間に当該I/O処理サーバに発行するI/O処理要求の数を計数することによって頻度を取得する。ステップS12の判断がNoの場合には、ステップS13に進む。ステップS12の判断がYesの場合には、ステップS14に進む。
ステップS13においては、I/O処理要求の発行先となるI/O処理サーバを、後述する図16に従って再選択して、ステップS14に進む。ステップS14においては、I/O処理要求を発行する。ステップS9において、発行したI/O処理要求に対するレスポンスを受信して、ユーザアプリケーションにレスポンスを返送し、I/O処理を完了する。ステップS15においては、発行したI/O処理要求に対するレスポンスの応答時間が過負荷を示しているか(I/O処理サーバから過負荷応答があったか)否かを判断する。ステップS15の判断がYesの場合には、ステップS16に進む。ステップS15の判断がNoの場合には、ステップS22に進む。
ステップS16においては、閾値レベルの値を1だけ大きくし、ステップS24で、カウンタ35と、管理テーブルのカウンタの値保持部を初期化し、ステップS17において、I/O処理サーバのソート(後述)を行なって、処理を終了する。ステップS22においては、現在処理中のI/O処理サーバの閾値定義テーブルのレベル値設定部に設定される閾値レベルが1か否かを判断する。この判断は、後のステップS20において、閾値レベルを1下げる処理があるが、閾値レベルが1の場合には、これ以上下げることができないので、カウンタもカウントアップしないようにするものである。ステップS22の判断がNo場合には、ステップS18に進み、ステップS22の判断がYesの場合には、ステップS19に進む。ステップS18においては、カウンタ35のカウントアップに従い、閾値定義テーブルのカウンタの値保持部の値を1だけ大きくし、ステップS19において、カウンタが定義値を超えたか否かを判断する。ステップS19の判断がNoの場合には、処理を終了する。ステップS19の判断がYesの場合には、ステップS20に進む。
ステップS20においては、閾値レベルを1だけ減少し、ステップS23において、カウンタ35をリセットし、管理テーブルのカウンタの値保持部を初期化し、ステップS21において、I/O処理サーバのソート(後述)を行なって、処理を終了する。
図10の処理が開始する前においては、システムの運用開始後において、I/O処理要求をどのI/O処理サーバに送信するかは、管理テーブルのリストの先頭にある閾値定義テーブルに対応するI/O処理サーバを設定する。さらにその後、当該I/O処理サーバが過負荷になると、別のI/O処理サーバにI/O処理要求が送信されるようになる。
I/O処理サーバのソートは、閾値定義テーブルを複数備える管理テーブル内の、閾値定義テーブルの配列の順序を変更することである。
図11は、I/O処理サーバのソート処理のフローチャートである。
I/O処理サーバのソートにおいては、各閾値定義テーブルのレベル値設定部に保持される閾値レベルの大きさの順に閾値定義テーブルを配列し、I/O処理サーバに対しリストを生成し、複数の閾値定義テーブルがリストされたテーブルの集まりを管理テーブルとする。
ステップS25においては、図10のステップS16またはS20で、変更した結果の閾値レベルを変数、例えば、Lに設定する。ステップS26において、閾値レベルを変更したI/O処理サーバの閾値定義テーブルを管理テーブルのリストから外す。ここで、リストから外すとは、後述のステップS29のリストへの挿入とで1つの処理となる。すなわち、閾値レベルを変更した閾値定義テーブルのデータをリストから読み取り、リスト内のそのテーブルのデータを削除し、閾値レベルの順序に合うリストの配列の場所にデータを挿入するものである。ステップS27のループは、I/O処理サーバの数だけループする。ステップS28において、閾値レベルがLより大きいか否かを判断する。ステップS28の判断がNoの場合にはループを続け、Yesの場合には、閾値定義テーブルを管理テーブルのリストに挿入して処理を終了する。
アクセスサーバが管理しているI/O処理サーバの管理テーブルを閾値レベルの小さな順にソートしておくことで、管理テーブルのリストの先頭は最も負荷の低いI/O処理サーバとなる。
図12は、ソート処理における管理テーブルのリストの遷移状態を説明する図である。
図12(1)は、図10のステップS17に相当する処理で、過負荷応答発生後の状態を示す。複数のI/O処理サーバの閾値定義テーブルが配列されている。I/O処理サーバ(1)の閾値定義テーブルは、レベル値設定部の値が1となっている。次に、I/O処理サーバ(4)の閾値定義テーブルが来ており、レベル値設定部の値(変更後)は、3となっている。その次は、I/O処理サーバ(2)の閾値定義テーブルが来ており、レベル値設定部の値は、2となっている。最後に、I/O処理サーバ(3)の閾値定義テーブルが来ており、レベル値設定部の値は、4となっている。
次に、ソート処理では、I/O処理サーバ(4)の閾値定義テーブルがI/O処理サーバ(2)の閾値定義テーブルの上に来てしまっているので、これを入れ替える必要がある。図12(2)の状態は、位置が間違っているI/O処理サーバ(4)の閾値定義テーブルをリストから取り外した状態を示している。そして、図12(3)のソート後の状態では、I/O処理サーバ(4)の閾値定義テーブルは、I/O処理サーバ(2)の次に挿入される。
なお、管理テーブルのリストのソート処理の方法としては、図11の方法の代わりに、各閾値定義テーブルに次のテーブルを指すポインタを設け、そのポインタの値を張り替えることも可能である。
図13〜15は、I/O処理サーバの処理を説明する図である。
I/O処理サーバは、I/O処理要求の受付からI/O処理の完了までの処理時間を管理している。処理時間が、I/O処理サーバが保持する管理テーブルの閾値を超えた場合には、I/O処理サーバはアクセスサーバへ過負荷応答を返す。すなわち、ストレージ装置の応答時間(自サーバでの処理時間を含む)が閾値を超えたときに、アクセスサーバに過負荷応答を返す。処理時間の閾値の初期値は、ストレージ装置の応答時間に合わせた応答時間を設定しておく。処理時間が閾値を超えた場合には、応答時間の閾値を徐々に長くする(閾値を超えない場合には徐々に短くする)。このことにより、頻繁に過負荷の応答を返すことを避ける。たとえば、I/O処理サーバ(1)が過負荷状態で、他のI/O処理サーバ(I/O処理サーバ(2))も過負荷状態である場合、I/O処理サーバ(2)に対するI/O処理要求が、I/O処理サーバ(1)に再び振り向けられる場合がある、このとき、I/O処理サーバ(1)が依然として過負荷であった場合は、2つしかない全てのI/O処理サーバが過負荷の応答をすることになる。このような状況が続いた場合には、I/O処理要求全てに過負荷の応答が行われることになり、アクセスサーバとI/O処理サーバのやりとりが多くなる。このような状況を避けるために閾値を徐々に変更する。
図13及び図14は、I/O処理サーバが保持する管理テーブルの例である。
図13に示されるように、I/O処理サーバは、アクセスするストレージ装置ごとに閾値定義テーブルを保持する。管理テーブルは、複数の閾値定義テーブルをリストとして配列したテーブルの集まりである。各閾値定義テーブルは、閾値レベルと、応答時間の閾値と、閾値カウンタ定義値とを対応付けて保持する。また、各ストレージ装置についての閾値定義テーブルは、それぞれ、カウンタの値保持部とレベル値設定部を有する。レベル値設定部とは、ストレージ装置が現在、閾値定義テーブルにある閾値レベルのうちのどの閾値レベルにあるかを指定するものである。カウンタの値保持部は、過負荷状態が存在しない場合に、カウンタがカウントする値を保持する。カウンタの値保持部の値が閾値カウンタ定義値になると、レベル値設定部の閾値レベルを変更し、カウンタ35をリセットすると共に、カウンタの値保持部のカウンタの値を0に初期化する。
図14は、図13のストレージ装置ごとの管理テーブルの内容の例を示した図である。閾値レベルとして、1〜jの値が設定されている。応答時間の閾値は、閾値レベル1が10msec/KBで、閾値レベルが大きくなるに従い、大きな値となっている。閾値カウンタ定義値は、閾値レベルを変えるときのカウンタの値を設定している。
図13及び図14の管理テーブルは、I/O処理サーバによって、アクセスサーバと同様に保持される。
図15は、I/O処理サーバの処理フローである。
I/O処理サーバは、ステップS30で、アクセスサーバからI/O処理要求を受け付けると、ステップS31において、ストレージ装置にI/O処理要求を発行する。ステップS32において、ストレージ装置からI/O処理要求が完了した旨の応答を受け取り、アクセスサーバにレスポンスを返して基本的なI/O処理を完了し、ステップS33において、I/O処理要求の受付時間と完了時間から応答時間を算出する。ステップS34において、管理テーブル(図13、図14)を参照し、閾値定義テーブルのレベル値設定部に設定されている閾値レベルを取得する。そして、取得した閾値レベルに相当する応答時間の閾値を取得する。ステップS35において、応答時間が取得した応答時間の閾値を超えているか否かを判断する。ステップS35の判断がYesの場合には、ステップS40に進む。ステップS35の判断がNoの場合には、ステップS41に進む。
ステップS40において、過負荷である旨の応答をアクセスサーバに対して行い、ステップS36においては、閾値レベルを1だけ増加し、ステップS43において、カウンタ35をリセットすると共に、管理テーブルのカウンタの値保持部の値を初期化し、処理を終了する。ステップS41においては、閾値定義テーブルのレベル値設定部の閾値レベルが1であるか否かを判断する。この判断は、後のステップS39において、閾値レベルを1下げる処理があるが、閾値レベルが1の場合には、これ以上下げることができないので、カウンタもカウントアップしないようにするものである。ステップS41の判断がNoの場合には、ステップS37に進み、Yesの場合には、ステップS38に進む。ステップS37では、カウンタ35をカウントアップし、管理テーブルのカウンタの値保持部の値を1だけ増加し、ステップS38において、カウンタが定義値を超えたか否かを判断する。ステップS38の判断がNoの場合には、処理を終了し、Yesの場合には、ステップS39に進む。ステップS39では、閾値レベルを1だけ減少し、ステップS42において、カウンタ35をリセットし、管理テーブルのカウンタの値保持部の値を初期化し、処理を終了する。
図16は、アクセスサーバがI/O処理サーバを再選択する際の処理(図7のステップS40、図10のステップS13)のフローチャートである。
アクセスサーバは、I/O処理サーバを再選択する際には、管理テーブルにある閾値の値を参照し、その中で最も閾値の大きな(負荷が低いと考えられる)I/O処理サーバをI/O処理要求の発行先として再選択する。
図16において、ステップS45では、振り分け先を、ソート処理で得られたリストの先頭にあるI/O処理サーバとする。ステップS46のループでは、アクセスサーバの管理テーブルを走査する。すなわち、管理テーブルのリストに格納される全てのI/O処理サーバの閾値定義テーブルがなくなるまで、処理を繰り返す。ステップS47において、閾値が振り分け先の値より大きいか否かを判断する。ステップS47の判断がNoの場合には、ステップS46のループを続け、Yesの場合には、ステップS48に進む。ステップS48では、振り分け先に、ステップS47で選択されたI/O処理サーバを割り当て、処理を終了する。
また、この他にアクセスサーバがI/O処理サーバを再選択する方法として、アクセスサーバがI/O処理サーバに対して負荷情報の確認コマンドを送信し、I/O処理サーバが自サーバで処理中のI/O処理要求数を応答する仕組みを持たせる。この応答をアクセスサーバが参照し、もっともI/O処理要求数の少ないI/O処理サーバを再選択の対象とすることもできる。
図17は、アクセスサーバが管理する管理テーブルとその遷移の例を示す図である。
図17は、図8及び図9の管理テーブルから、各I/O処理サーバについて設定された閾値レベルの値のみを見やすくするために抜き出したものである。
I/O処理サーバ(1)から過負荷応答があった場合には、図10のステップS16によって閾値レベルが変更されることによって、I/O処理サーバ(1)の閾値定義テーブルは、閾値レベルが1つ増加され、状態1から状態2のように遷移する。一方、I/O処理要求に対して、I/O処理サーバ(1)が過負荷の応答を返さない場合には、過負荷応答の無い回数をカウントアップする。そして、その計数値が閾値カウンタ定義値を超えた場合に、閾値レベルが1つ減少され、閾値定義テーブルは状態2から状態1へ遷移する。すなわち、一定回数のI/O処理要求の応答時間が過負荷状態を示していない場合に閾値を減少させるようにする。このことにより、負荷状態が安定していない状態で閾値を減少させることを防ぐ。
図18は、I/O処理サーバが管理するテーブルとその遷移の例を示す図である。
図18は、図13及び図14の管理テーブルから、各ストレージ装置について設定された閾値レベルの値のみを見やすくするために抜き出したものである。
ストレージ装置(2)へのI/O応答時間が閾値を超えた場合は、図15のステップS36によって閾値レベルが増加されるため、ストレージ装置(2)の閾値管理テーブルは状態1から状態2へ遷移する。I/O処理要求に対する応答が閾値を超えない場合には、超えない回数を計数する。そして、その計数値が閾値カウンタ定義値を超えた場合に、閾値レベルが1つ減少され、閾値定義テーブルは状態2から状態1へ遷移する。すなわち、一定回数のI/O処理要求に対する応答時間が過負荷状態でないことを示す場合に、閾値を減少させるようにする。このことにより、負荷状態が安定していない状態で閾値を減少させることを防ぐ。
I/O処理サーバの再選択を行う際に、アクセスサーバからI/O処理サーバに対して負荷情報の確認を行うことにより再選択を行う場合は、I/O処理サーバには図18のテーブルの他に、自サーバが処理中のI/O処理要求数を管理するカウンタを用意しておく。このことでアクセスサーバからの負荷情報の確認に対して、I/O処理要求数を応答できる。
図19は、アクセスサーバおよびI/O処理サーバの管理テーブルの制御を行う仕組みを示す図である。
アクセスサーバにおいて図19のI/O処理要求の要求元はアプリケーションであり、I/O処理要求の発行先はI/O処理サーバである。I/O処理サーバにおいて、図19のI/O処理要求の要求元はアクセスサーバであり、I/O処理要求の発行先はストレージ装置である。
図19の管理テーブル格納部33に格納される管理テーブルは、アクセスサーバでは、図8、図9と同じものであり、I/O処理サーバでは、図13、図14と同じものである。管理テーブルは、アクセスサーバでは図17(I/O処理サーバでは図18)において状態1から状態2へI/OサイズやI/O頻度(I/O処理サーバでは応答時間)の閾値が変化する場合に、どのような値に遷移するかを定義した表である。この表は予めシステム管理者が定義する。
図19の管理テーブル監視部34は、アクセスサーバやI/O処理サーバの管理テーブルをできるだけ最新の状態に保つようにするための機能である。たとえば、アクセスサーバがI/O処理サーバに対して発行したI/O処理要求に対する応答において、過負荷状態が通知された場合、アクセスサーバは管理テーブルの閾値を変更する。このとき、閾値が下限(閾値レベルの最大時)まで下がってしまった場合、それ以後、アクセスサーバはそのI/O処理サーバに対してI/O処理要求を発行しなくなる。この状態となったしばらく後、I/O処理サーバの処理量が減った場合を想定する。このとき、I/O処理サーバの負荷が低減しているにも関わらずアクセスサーバは要求を発行しないため、管理テーブルの閾値変更が行われず、I/O負荷分散が正常に行なわれない状態となる。このような状態を避けるため、管理テーブル監視部34が定期的に試験I/O処理要求(ダミーI/O処理要求)を発行し、I/O発行先の負荷状態の確認を行う。
図20は、管理テーブル監視部の処理フローである。
管理テーブル監視部は、一定時間I/O処理要求が発行されていないI/O発行先(アクセスサーバの場合はI/O処理サーバ、I/O処理サーバの場合はストレージ装置)に対し、試験I/O処理要求(ダミーI/O処理要求)を発行する。このI/O処理要求が正常に処理された場合(アクセスサーバの場合は、I/O処理要求に対して過負荷応答が無い場合、I/O処理サーバの場合は応答時間内にI/O処理要求に対する応答を受信した場合)には、管理テーブルの閾値を変更する。このときの閾値の変更は、アクセスサーバの場合は図10、I/O処理サーバの場合は図15に従った変更を行う。
ステップS50において、管理テーブル監視部は、過負荷となったI/O処理サーバに一定時間内にI/O処理要求が発行されているか否かを判断する。ステップS50の判断がYesの場合には、処理を終了する。ステップS50の判断がNoの場合には、ステップS51において、試験I/O処理要求を発行する。ステップS52において、試験I/O処理要求に対する応答が正常か否かを判断する。ステップS52の判断がNoの場合には、処理を終了する。ステップS52の判断がYesの場合には、閾値を変更して処理を終了する。
図21は、I/O処理要求をSCSIコマンドで実現する場合のレスポンスデータフォーマットの一例を示す図である。
図21のSCSIコマンドのレスポンスデータフォーマットは一般的なものであるが、過負荷状態を示すレスポンスとして、ユーザが自由に定義可能な値として定義されているコード番号のデータを設定するようにする。例えば、Sense Keyに「9」を、Additional sence codeには、「0x80」を設定する。このコード番号は、ベンダが自由に設定使用可能なものであるので、本実施形態の過負荷状態を示すレスポンスを示すものであると定義する。
なお、ファイバチャネルのコマンドを用いる場合、SCSIコマンドを伝送する経路として光ファイバを使用している以外は、SCSIと同様に、vender specificとして定義されているコード番号を過負荷状態を示すレスポンスとして使用する。
図22は、アクセスサーバによるI/O処理サーバへの負荷問い合わせ処理のシーケンス図である。
負荷状態の確認においては、アクセスサーバ(A)がI/O処理サーバ(1)、(2)に対してInquiryコマンドを発行する。I/O処理サーバ(1)、(2)ではInquiryの応答としてコマンドのvender specificの領域に負荷情報を入れて応答を返す。
図23は、負荷情報の問い合わせコマンドであるInquiryに対する応答のフォーマットを示す図である。
図23は、Inquiryコマンドに対する応答フォーマットの一般的なものであるが、このフォーマットの中に、vender specificと指定されているフィールドがある。I/O処理サーバは、vender specificと指定されている36〜55バイト目の領域に、Inquiryを受け付けた時に既に受付済みで、かつ、処理完了前であったI/O処理要求の数を設定し、アクセスサーバに返送する。
図24は、負荷状態の問い合わせの際のアクセスサーバの処理を示すフローチャートである。
ステップS55のループでは、I/O処理サーバの数だけ処理を繰り返す。ステップS56において、Inquiryを発行し、ステップS57において、Inquiryの応答を受け付ける。ステップS58において、変数、例えば、nに、応答によって受信した、I/O処理サーバが受け付けている、単位時間当たりのI/O処理要求の数を設定する。ステップS59では、アクセスサーバが保持する管理テーブル内の、現在処理中のI/O処理サーバの閾値定義テーブルを参照し、ステップS60で、nがI/O頻度の閾値を超えているか否かを判断する。閾値定義テーブルは、図8、図9と同じものであって、レベル値設定部が保持する閾値レベルで示される、図9のようなI/O頻度の値を閾値として用いる。
ステップS60の判断がNoの場合には、ステップS55のループを繰り返す。ステップS60の判断がYesの場合には、ステップS61において、閾値定義テーブルのレベル値設定部の閾値レベルの値を下げて、nの値がI/O頻度の閾値以下となるようにする。ステップS62でI/O処理サーバのソートを行い、その後、ステップS55のループを繰り返す。ステップS55のループが、全てのI/O処理サーバについて処理し終わったら、処理を終了する。
図25は、本実施形態の処理をプログラムで実現する場合の、アクセスサーバ及びI/O処理サーバのハードウェア構成を説明する図である。
アクセスサーバ及びI/O処理サーバは、CPU40を備えるコンピュータ39として実現される。
CPU40には、バス50を介して、ROM41、RAM42、通信インタフェース43、記憶装置46、媒体読み取り装置47、及び、入出力装置49が接続される。CPU40は、ROM41に格納されているBIOS等の基本プログラムを読み込んで実行し、コンピュータ39の基本動作を実現させる。
また、CPU40は、ハードディスクなどの記憶装置46に格納された、本実施形態の処理を行うプログラムをRAM42に展開して実行し、本実施形態の処理を実現する。本実施形態の処理を行うプログラムは、記憶装置46に格納されている必要は必ずしも無く、CD−ROM、DVD、Blu−ray、ICメモリ、フレキシブルディスクなどの可搬記録媒体48に格納されていても良い。この場合には、媒体読み取り装置47を用いて、可搬記録媒体48に格納されたプログラムを読み込み、RAM42に展開して、CPU40が実行する。
入出力装置49は、キーボード、タブレット、マウス、ディスプレイ、プリンタなどの、コンピュータ39を操作するユーザが入力を行なったり、処理結果の出力を行ったりするものである。
通信インタフェース43は、ネットワーク44を介して、情報提供者45の有するデータベース等にアクセスし、プログラム等をコンピュータ39にダウンロードするなどするものである。ダウンロードされたプログラムは、記憶装置46や可搬記録媒体48に格納したり、直接RAM42に展開してCPU40が実行したりする。また、プログラムの実行は、情報提供者45の有するコンピュータで行い、コンピュータ39は、入出力操作だけ行うようにしてもよい。
10、10−1、10−2、20−1〜20−n アクセスサーバ
11、13、15、23、24 ネットワーク
12 負荷分散装置
14−1〜14−3、21−1〜21−m I/O処理サーバ
16−1〜16−4、22−1〜22−N ストレージ装置
30 I/O受付部
31 I/O発行部
32 I/O時間監視部
33 管理テーブル格納部
34 管理テーブル監視部
40 CPU
41 ROM
42 RAM
43 通信インタフェース
44 ネットワーク
45 情報提供者
46 記憶装置
47 媒体読み取り装置
48 可搬記録媒体
49 入出力装置
50 バス

Claims (10)

  1. 入力処理要求又は出力処理要求を受け付け、処理結果を返送する複数のストレージ装置と、
    複数のアクセスサーバの1つから該入力処理要求又は出力処理要求を受信し、該複数のストレージ装置の1つに該入力処理要求又は出力処理要求を送信し、該処理結果を該複数のストレージ装置の1つから受信し、該処理結果を該複数のアクセスサーバの1つに送信し、該複数のアクセスサーバの1つからの該入力処理要求又は出力処理要求の受信から該処理結果を該複数のアクセスサーバの1つに送信するまでのレスポンス時間が閾値を超えた場合に、該入力処理要求又は出力処理要求に対する処理が過負荷状態にあることを示す過負荷応答を送出する複数のI/O処理サーバと、
    入力処理要求又は出力処理要求を、該I/O処理サーバからの該過負荷応答に基づいて、過負荷状態ではないI/O処理サーバへ送信する複数のアクセスサーバと、
    を備えることを特徴とする負荷分散システム。
  2. 前記アクセスサーバは、過負荷状態にある前記I/O処理サーバに対し、ダミーの入力処理要求又は出力処理要求を送信し、過負荷状態が解消したか否かを確認することを特徴とする請求項1に記載の負荷分散システム。
  3. 前記アクセスサーバは、前記I/O処理サーバごとに、負荷状態を判断する閾値に対応付けられた、レベルが増加するごとに該閾値が小さくなる閾値レベルを保持し、過負荷状態を示す場合には、対応する該I/O処理サーバの閾値レベルの値を増加することを特徴とする請求項1に記載の負荷分散システム。
  4. 前記閾値レベルは、過負荷状態が解消された場合には、値が減少されることを特徴とする請求項3に記載の負荷分散システム。
  5. 前記アクセスサーバは、前記閾値レベルに基づいて、負荷の軽い前記I/O処理サーバから順にリストにリストアップし、該リストの上に登録されている該I/O処理サーバから順に前記入力処理要求又は出力処理要求を割り振ることを特徴とする請求項4に記載の負荷分散システム。
  6. 前記I/O処理サーバは、前記ストレージ装置ごとに、負荷状態を判断する閾値に対応付けられた、レベルが増加するごとに該閾値が大きくなる閾値レベルを保持し、前記レスポンス時間が過負荷状態を示す場合には、対応する該ストレージ装置の閾値レベルの値を増加することを特徴とする請求項1に記載の負荷分散システム。
  7. 前記閾値レベルは、過負荷状態が解消された場合には、値が減少されることを特徴とする請求項6に記載の負荷分散システム。
  8. 前記I/O処理サーバは、前記レスポンス時間が前記閾値レベルに対応した、負荷状態を判断する閾値より大きい場合、過負荷状態であることを前記アクセスサーバに送信することを特徴とする請求項7に記載の負荷分散システム。
  9. 入力処理要求又は出力処理要求を受け付け、処理結果を返送する複数のストレージ装置と、複数のアクセスサーバの1つから該入力処理要求又は出力処理要求を受信し、該複数のストレージ装置の1つに該入力処理要求又は出力処理要求を送信し、該処理結果を該複数のストレージ装置の1つから受信し、該処理結果を該複数のアクセスサーバの1つに送信する複数のI/O処理サーバと、入力処理要求又は出力処理要求を、該I/O処理サーバに送信する複数のアクセスサーバとを備える負荷分散システムの負荷分散方法であって、
    該I/O処理サーバは、該複数のアクセスサーバの1つからの該入力処理要求又は出力処理要求の受信から該処理結果を該複数のアクセスサーバの1つに送信するまでのレスポンス時間が閾値を超えた場合に、該入力処理要求又は出力処理要求に対する処理が過負荷状態にあることを示す過負荷応答を送出し、
    該アクセスサーバは、該I/O処理サーバからの該過負荷応答に基づいて、過負荷状態ではないI/O処理サーバへ該入力処理要求又は出力処理要求を送信する
    ことを特徴とする負荷分散方法。
  10. 入力処理要求又は出力処理要求を受け付け、処理結果を返送する複数のストレージ装置と、複数のアクセスサーバの1つから該入力処理要求又は出力処理要求を受信し、該複数のストレージ装置の1つに該入力処理要求又は出力処理要求を送信し、該処理結果を該複数のストレージ装置の1つから受信し、該処理結果を該複数のアクセスサーバの1つに送信する複数のI/O処理サーバと、入力処理要求又は出力処理要求を、該I/O処理サーバからの過負荷応答に基づいて、過負荷状態ではないI/O処理サーバへ該入力処理要求又は出力処理要求を送信する複数のアクセスサーバとを備える負荷分散システムのプログラムであって、
    該I/O処理サーバに、
    該複数のアクセスサーバの1つからの該入力処理要求又は出力処理要求の受信から該処理結果を該複数のアクセスサーバの1つに送信するまでのレスポンス時間が閾値を超えた場合に、該入力処理要求又は出力処理要求に対する処理が過負荷状態にあることを示す該過負荷応答を該アクセスサーバに送出させる、
    ことを特徴とするプログラム。
JP2013549985A 2011-12-19 2011-12-19 負荷分散システム Active JP5825359B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/079425 WO2013094007A1 (ja) 2011-12-19 2011-12-19 負荷分散システム

Publications (2)

Publication Number Publication Date
JPWO2013094007A1 JPWO2013094007A1 (ja) 2015-04-27
JP5825359B2 true JP5825359B2 (ja) 2015-12-02

Family

ID=48667937

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013549985A Active JP5825359B2 (ja) 2011-12-19 2011-12-19 負荷分散システム

Country Status (4)

Country Link
US (1) US20140297728A1 (ja)
EP (1) EP2797005B1 (ja)
JP (1) JP5825359B2 (ja)
WO (1) WO2013094007A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013145222A1 (ja) * 2012-03-29 2013-10-03 富士通株式会社 情報処理装置およびデータ保存処理プログラム
US9323588B2 (en) * 2013-03-14 2016-04-26 Comcast Cable Communications, Llc Service platform architecture
JP5929946B2 (ja) * 2014-02-27 2016-06-08 コニカミノルタ株式会社 画像形成システム、中継サーバー、通信制御方法及びプログラム
US10355965B1 (en) * 2014-07-14 2019-07-16 Sprint Communications Company L.P. Leveraging a capacity indicator of a mobility management entity
JP2017162257A (ja) * 2016-03-10 2017-09-14 富士通株式会社 負荷監視プログラム、負荷監視方法、情報処理装置、および情報処理システム
US10423500B2 (en) 2016-06-01 2019-09-24 Seagate Technology Llc Technologies for limiting performance variation in a storage device
US10523744B2 (en) * 2017-10-09 2019-12-31 Level 3 Communications, Llc Predictive load mitigation and control in a content delivery network (CDN)
CN109842665B (zh) * 2017-11-29 2022-02-22 北京京东尚科信息技术有限公司 用于任务分配服务器的任务处理方法和装置
WO2019209707A1 (en) * 2018-04-23 2019-10-31 Micron Technology, Inc. Host logical-to-physical information refresh

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07244642A (ja) * 1994-03-04 1995-09-19 Sanyo Electric Co Ltd 並列処理計算機
US6871347B2 (en) * 2001-04-13 2005-03-22 Interland, Inc. Method and apparatus for facilitating load balancing across name servers
JP4232357B2 (ja) * 2001-06-14 2009-03-04 株式会社日立製作所 計算機システム
JP4318914B2 (ja) * 2002-12-26 2009-08-26 富士通株式会社 ストレージシステム及びその動的負荷管理方法
JP4512192B2 (ja) * 2005-02-09 2010-07-28 株式会社日立製作所 輻輳制御装置、および、ネットワークの輻輳制御方法
JP4857818B2 (ja) 2006-03-02 2012-01-18 株式会社日立製作所 ストレージ管理方法およびストレージ管理サーバ
US8539075B2 (en) * 2006-04-21 2013-09-17 International Business Machines Corporation On-demand global server load balancing system and method of use
US20100094965A1 (en) * 2008-10-15 2010-04-15 Patentvc Ltd. Erasure-coded content assembly and retransmission
JP2010218235A (ja) * 2009-03-17 2010-09-30 Fujitsu Ltd アーカイブ装置、分散管理装置および分散管理プログラム
JP2010218344A (ja) * 2009-03-18 2010-09-30 Hitachi Ltd サービス連携装置、プログラム、サービス連携方法及びサービス提供システム
JP2011003154A (ja) * 2009-06-22 2011-01-06 Nippon Telegr & Teleph Corp <Ntt> 情報データ収集管理装置とその送信周期推定方法及びプログラム
JP2011197804A (ja) * 2010-03-17 2011-10-06 Fujitsu Ltd 負荷解析プログラム、負荷解析方法、および負荷解析装置
US9058252B2 (en) * 2010-03-24 2015-06-16 Microsoft Technology Licensing, Llc Request-based server health modeling
JP5415338B2 (ja) * 2010-03-31 2014-02-12 株式会社日立製作所 ストレージシステム、その負荷分散管理方法及びプログラム
US8533337B2 (en) * 2010-05-06 2013-09-10 Citrix Systems, Inc. Continuous upgrading of computers in a load balanced environment

Also Published As

Publication number Publication date
EP2797005B1 (en) 2017-08-16
EP2797005A4 (en) 2015-01-28
EP2797005A1 (en) 2014-10-29
WO2013094007A1 (ja) 2013-06-27
JPWO2013094007A1 (ja) 2015-04-27
US20140297728A1 (en) 2014-10-02

Similar Documents

Publication Publication Date Title
JP5825359B2 (ja) 負荷分散システム
US8694749B2 (en) Control method of device in storage system for virtualization
JP5039951B2 (ja) ストレージ・デバイス・ポートの選択の最適化
JP5099128B2 (ja) ストレージ管理プログラム、ストレージ管理装置およびストレージ管理方法
JP4188602B2 (ja) クラスタ型ディスク制御装置及びその制御方法
JP6607783B2 (ja) 分散キャッシュクラスタ管理
WO2013072978A1 (ja) 計算機、仮想マシン配備方法及びプログラム
JP4855516B2 (ja) アクセス制御プログラム、アクセス制御装置およびアクセス制御方法
US20080059602A1 (en) Load balancing method for data I/O paths between groups in which multi-path management is employed
US7937481B1 (en) System and methods for enterprise path management
JP6040612B2 (ja) ストレージ装置、情報処理装置、情報処理システム、アクセス制御方法、およびアクセス制御プログラム
JP2013162200A (ja) 情報処理システム、情報処理装置およびプログラム
US20050262386A1 (en) Storage system and a method for dissolving fault of a storage system
JP2015510296A (ja) ホストエンティティによってアクセスされうる格納データを識別しデータ管理サービスを提供するシステム、装置、および方法
JP2014026529A (ja) ストレージシステムおよびその制御方法
US20150205531A1 (en) Adding Storage Capacity to an Object Storage System
US10019182B2 (en) Management system and management method of computer system
US11768744B2 (en) Alerting and managing data storage system port overload due to host path failures
US11507325B2 (en) Storage apparatus and method for management process
JP6961045B2 (ja) システム及びその制御方法並びにプログラム
JP6974706B2 (ja) 情報処理装置、ストレージシステムおよびプログラム
JP2017107300A (ja) データ管理プログラム及びデータ管理方法
JP2019003586A (ja) ストレージ制御装置およびパス切り替え制御プログラム
JP2016103185A (ja) 管理装置、クラウドシステム及び管理プログラム
CN114422575B (zh) 处理网络请求的方法和装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150630

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150824

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150928

R150 Certificate of patent or registration of utility model

Ref document number: 5825359

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150