JP6773755B2 - ストレージ装置及びストレージ装置における構成管理リクエストの処理方法 - Google Patents

ストレージ装置及びストレージ装置における構成管理リクエストの処理方法 Download PDF

Info

Publication number
JP6773755B2
JP6773755B2 JP2018233920A JP2018233920A JP6773755B2 JP 6773755 B2 JP6773755 B2 JP 6773755B2 JP 2018233920 A JP2018233920 A JP 2018233920A JP 2018233920 A JP2018233920 A JP 2018233920A JP 6773755 B2 JP6773755 B2 JP 6773755B2
Authority
JP
Japan
Prior art keywords
request
processor
distributed
processing
storage device
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
JP2018233920A
Other languages
English (en)
Other versions
JP2020095550A (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 JP2018233920A priority Critical patent/JP6773755B2/ja
Priority to US16/568,633 priority patent/US10990305B2/en
Publication of JP2020095550A publication Critical patent/JP2020095550A/ja
Application granted granted Critical
Publication of JP6773755B2 publication Critical patent/JP6773755B2/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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/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/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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

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

Description

本発明は、ストレージ装置及びストレージ装置における構成管理リクエストの処理方法に関し、例えば、複数のプロセッサをそれぞれ有する複数のコントローラにリクエスト処理を分散処理させるストレージ装置に適用して好適なるものである。
従来、ストレージ装置では、ホストからのI/Oリクエストに応じてI/O処理を行うコントローラが、管理端末から入力された構成管理リクエストに応じてボリューム作成やボリューム削除等を行うことで、管理サーバ不要で構成管理処理を行い得るようになされている。また、コントローラが、複数のプロセッサを有し、1リクエスト毎に1プロセッサで分散並列処理を行うことで、複数のリクエストの処理を高速に行い得るようになされている。
例えば特許文献1には、コントローラが有する複数のプロセッサコアのうちの一部のプロセッサコアを優先処理専用として設定することで、複数のリクエストの分散処理を図り、I/O処理を遅延させず優先処理を達成するストレージシステムが開示されている。
特許第5909566号
近年、ストレージ装置がクラウド運用されるようになってきており、ストレージ装置の稼働中であっても、エンドユーザの要求に応じて構成管理処理が頻繁に行われることから、構成管理処理もレスポンス性能の向上が求められてきている。
しかしながら、特許文献1に記載の技術では、それぞれのプロセッサコアが処理する処理内容が予め決められており、状況に応じてプロセッサコアを適宜選択してリクエストの分散処理を行うものではない。このため、例えば、構成管理のリクエストデータやレスポンスデータが大きいといった状況や、構成管理処理よりも優先処理されるI/O処理の処理負荷が高いといった状況において、構成管理処理の遅延が発生し、構成管理処理のレスポンス性能が低下するという課題がある。
本発明は以上の点を考慮してなされたもので、構成管理処理のレスポンス性能を向上し得るストレージ装置及びストレージ装置における構成管理リクエストの処理方法を提案しようとするものである。
かかる課題を解決するため本発明においては、リクエストを処理する複数のプロセッサをそれぞれ有する複数のコントローラと、前記コントローラに接続された記憶装置とを有するストレージ装置であって、前記複数のコントローラを統括する統合部と、前記複数のコントローラの各プロセッサからアクセス可能であり、前記プロセッサ毎の負荷情報を含む前記ストレージ装置の構成情報を格納する共有メモリと、を有し、前記統合部は、管理装置から受付けた構成管理リクエストのリクエスト種別及び対象リソース種別から該構成管理リクエストの推定処理時間を算出し、前記共有メモリから取得した前記プロセッサ毎の負荷情報と前記推定処理時間とに基づいて、前記構成管理リクエストを複数の分散リクエストに分散し、該複数の分散リクエストのそれぞれを処理する分散先プロセッサを決定し、該分散先プロセッサを指定して該分散先プロセッサを有する前記コントローラに前記分散リクエストのそれぞれを送信し、前記コントローラは、前記分散リクエストを受信すると、指定されたプロセッサで前記分散リクエストを処理するようにした。
また本発明においては、リクエストを処理する複数のプロセッサをそれぞれ有する複数のコントローラと、前記コントローラに接続された記憶装置とを有するストレージ装置における構成管理リクエストの処理方法であって、前記ストレージ装置は、前記複数のコントローラを統括する統合部と、前記複数のコントローラの各プロセッサからアクセス可能であり、前記プロセッサ毎の負荷情報を含む前記ストレージ装置の構成情報を格納する共有メモリと、を有し、前記統合部が、管理装置から受付けた構成管理リクエストのリクエスト種別及び対象リソース種別から該構成管理リクエストの推定処理時間を算出し、前記共有メモリから取得した前記プロセッサ毎の負荷情報と前記推定処理時間とに基づいて、前記構成管理リクエストを複数の分散リクエストに分散し、該複数の分散リクエストのそれぞれを処理する分散先プロセッサを決定し、該分散先プロセッサを指定して該分散先プロセッサを有する前記コントローラに前記分散リクエストのそれぞれを送信し、前記コントローラが、前記分散リクエストを受信すると、指定されたプロセッサで前記分散リクエストを処理するようにした。
本ストレージ装置及びストレージ装置における構成管理リクエストの処理方法によれば、構成管理処理とI/O処理との性能干渉を軽減しつつ、構成管理処理の処理速度の低下を抑制できる。
本発明によれば、構成管理処理のレスポンス性能を向上し得るストレージ装置及びストレージ装置における構成管理リクエストの処理方法を実現できる。
第1の実施の形態のストレージ装置の構成例を示す図。 第1の実施の形態のストレージ装置の管理ソフトウェア統合部の構成例を示す図。 搭載ドライブテーブルの構成例を示す図。 コントローラテーブルの構成例を示す図。 レスポンス速度テーブルの構成例を示す図。 受付リクエストテーブルの構成例を示す図。 分散リクエストテーブルの構成例を示す図。 第1の実施の形態のストレージ装置のコントローラの構成例を示す図。 第1の実施の形態のストレージ装置の共有メモリに格納される情報例を示す図。 Volume構成情報テーブルの構成例を示す図。 Pool構成情報テーブルの構成例を示す図。 HostGroup構成情報テーブルの構成例を示す図。 CopyGroup構成情報テーブルの構成例を示す図。 世代情報テーブルの構成例を示す図。 リクエスト分散送受信プログラムの起動時処理を示すフローチャート。 リクエスト分散送受信プログラムのプロセッサ稼働率及びWritePending情報受信時処理を示すフローチャート。 リクエスト分散送受信プログラムのリクエスト受付時処理を示すフローチャート。 受付リクエスト及び分散リクエストの管理方法を説明するための図。 世代情報の不一致例を説明するための図。 世代情報の不一致例を説明するための図。 リクエスト処理プログラムのリクエスト処理を示すフローチャート。 プロセッサ稼働率及びWritePending情報送信処理を示すフローチャート。 第2の実施の形態のストレージ装置の構成例を示す図。 第3の実施の形態のリクエスト分散送受信プログラムのプロセッサ稼働率及びWritePending情報受信時処理を示すフローチャート。
以下、図面に基づいて本発明の実施の形態を詳述する。以下の実施の形態は、本発明を限定するものではなく、また実施の形態で説明されている要素及びその組合せの全てが本発明の解決手段に必須であるとは限らない。また以下の実施の形態を説明するための各図面において同一の符号は同一あるいは類似の機能を備えた構成要素又は処理を示し、後出の説明を省略する。また各実施の形態及び各変形例は、本発明の技術思想の範囲内かつ整合する範囲内で一部又は全部を組合せることができる。
以下の説明では、「aaaテーブル」の表現にて各種情報を説明することがあるが、各種情報は、テーブル以外のデータ構造で表現されていてもよい。データ構造に依存しないことを示すために「aaaテーブル」を「aaa情報」と呼ぶこともできる。「aaaテーブル」又は「aaa情報」は、記憶資源(例えばメモリ)に確保された記憶領域に格納される。
また、以下の説明では、「プログラム」を主語として処理フローを説明する場合がある。プログラムは、プロセッサ(例えばCPU(Central Processing Unit))によって実行されることで、予め定められた処理を、記憶資源(例えばメモリ)及び通信インターフェースのうちの少なくとも1つを適宜に使用しながら行う。例えば「xxxプログラム」のように説明又は図示される要素は、プロセッサが、記憶資源又は通信インターフェースを使用し、プログラムソースを解析実行することで、予め定められた処理を実行する処理部である。このため、プログラムによる処理の主語が、プロセッサ、もしくはそのプロセッサを有する装置とされてもよい。
また、プロセッサが実行する処理の一部又は全部は、ハードウェア回路により処理されてもよい。プロセッサが実行する処理を規定するプログラムは、例えば外部装置からネットワークを介して取得して、あるいは記憶メディアを介して取得して、プロセッサにより実行されるものとしてもよい。
また、以下の説明では、同種の要素を区別して説明する場合には、「xxx10a」、「xxx10n」、「xxx11Ba」、「xxx11Bn」、「xxx12−1」、「xxx12−n」のように枝番号を付加した参照符号を使用する。同種の要素を区別しないで説明する場合には、「xxx10」、「xxx11B」、「xxx12」のように参照符号のうちの共通部分のみを使用することがある。
(1)第1の実施の形態
(1−1)第1の実施の形態によるストレージ装置の構成
図1は、第1の実施の形態のストレージ装置の構成例を示す図である。第1の実施の形態のストレージ装置10は、接続装置1と、n個(2は2以上の整数)のコントローラ2−1,…,2−nと、n個の記憶装置3−1,…,3−nと、CHA(チャネルアダプタ)5とを有する。
接続装置1は、ストレージ装置10が管理端末20と接続するための通信インターフェースである。接続装置1は、管理ソフトウェア統合部11を有する。
コントローラ2は、管理ソフトウェア処理部21と、複数のプロセッサ22とを有する。また、ストレージコントローラであるコントローラ2−i(i=1,…,n)には、記憶装置3−iが接続されている。
管理ソフトウェア統合部11は、ストレージ装置10の構成情報、負荷情報、及び管理端末20から入力された構成管理リクエストの内容に基づいて、構成管理処理を分散処理する最適なコントローラ2のプロセッサ22を決定する。管理ソフトウェア統合部11は、決定したプロセッサ22のコントローラ2に、構成管理処理を実行するプロセッサ22を指定して、構成管理リクエストを分割した分散リクエストを送信する。
コントローラ2は、管理ソフトウェア統合部11から受信した分散リクエストを、指定されたプロセッサ22で、記憶装置3及び共有メモリ4にアクセスすることで実行し、その実行結果を管理ソフトウェア統合部11に返却する。複数のコントローラ2−1,…,2−nは、同一の構成であり、1つの管理ソフトウェア統合部11に対して同様の処理を行う。
記憶装置3のそれぞれは、1又は複数のドライブ装置から構成されている。記憶装置3のそれぞれは、ドライブインターフェース(不図示)を介してプロセッサ22からアクセスされる。ドライブ装置は、磁気ディスク等の記憶媒体を用いたHDD(Hard Disk Drive)やフラッシュメモリ等の記憶媒体を用いたSSD(Solid State Drive)等である。
共有メモリ4は、コントローラ2で共有されるメモリであり、何れのコントローラ2のプロセッサ22からもアクセス可能なRAM(Random Access Memory)である。プロセッサ22は、構成管理リクエスト及びI/Oリクエストのリクエスト処理に際して共有メモリ4にアクセスし、共有メモリ4内に保持される情報を取得又は更新する。
また、共有メモリ4は、図9〜図15を参照して後述するように、ストレージ装置10の各種構成情報テーブルと、各構成情報テーブルに登録されている構成情報の世代情報を保持している世代情報テーブルとを格納している。世代情報については後述する。また、共有メモリ4は、業務ホスト30からのI/Oリクエストに応じて、記憶装置3に書き込むライトデータや、記憶装置3から読み出したリードデータを一時的に格納するキャッシュ領域を含む。このキャッシュ領域は、プロセッサ22毎に確保されている。
CHA15は、ストレージ装置10が業務ホスト30と接続するための通信インターフェースである。業務ホスト30から入力されたI/Oリクエストは、指定されたプロセッサ22に送信される。指定されたプロセッサ22は、共有メモリ4のキャッシュ領域を使用しながら記憶装置3に対してI/O処理を実行し、そのI/O処理の実行結果を業務ホスト30に返却する。
(1−2)第1の実施の形態による管理ソフトウェア統合部の構成
図2は、第1の実施の形態のストレージ装置の管理ソフトウェア統合部の構成例を示す図である。管理ソフトウェア統合部11は、リクエスト分散送受信プログラム111と、搭載ドライブテーブル121と、コントローラテーブル122と、レスポンス速度テーブル123と、受付リクエストテーブル124と、分散リクエストテーブル125とを有する。
リクエスト分散送受信プログラム111は、構成管理リクエストの受付け、コントローラ2への構成管理リクエストの分散方法の決定、管理ソフトウェア処理部21への構成管理リクエストを分割した「分散リクエスト」の送信、及び管理ソフトウェア処理部21からの分散リクエストに応じた構成管理処理の実行結果の受信や結合を行う。
図3は、搭載ドライブテーブルの構成例を示す図である。搭載ドライブテーブル121は、記憶装置3のそれぞれを構成するドライブ装置を管理するためのテーブルである。搭載ドライブテーブル121のレコードは、フィールド値として、ドライブID1211と、ドライブ種別1212と、接続先コントローラID1213と、プロセッサ負荷重み1214とを含む。
図3の例では、ドライブID1211が“1−1”のドライブ装置のドライブ種別1212は“SAS”であり、当該ドライブが接続されているコントローラ2の接続先コントローラID1213は“コントローラA”である。また、例えば、ドライブID1211が“3−1”及び“3−2”のドライブ装置のドライブ種別1212は“NVMe”であり、当該ドライブが接続されているコントローラ2の接続先コントローラID1213は“コントローラC”である。ドライブID1211が“3−1”及び“3−2”のドライブは、同一のコントローラ2に接続されている記憶装置3を構成する複数のドライブである。
プロセッサ負荷重み1214は、ドライブ種別1212に応じて予め定められている。例えば、ドライブ種別1212が“SAS”である場合にはプロセッサ負荷重み1214が“1”であり、ドライブ種別1212が“NVMe”である場合には、書き込みを行う際の負荷がSASよりも高いため、プロセッサ負荷重み1214が“2”と、SASよりも大きい値である。
図4は、コントローラテーブルの構成例を示す図である。コントローラテーブル122は、コントローラ2の構成及びプロセッサ毎の負荷状況を管理するためのテーブルである。コントローラテーブル122のレコードは、フィールド値として、プロセッサID1221と、コントローラID1222と、プロセッサ状態1223と、プロセッサ稼働率1224と、WritePending情報1225と、分散処理重み1226と、優先度1227とを含む。
プロセッサID1221及びコントローラID1222は、コントローラ2を構成するプロセッサ22を示す情報である。図4の例では、コントローラID1222が“コントローラA”であるコントローラ2には、プロセッサID1221が“A−1”のプロセッサ22が搭載されおり、また、コントローラID1222が“コントローラC”であるコントローラ2には、プロセッサID1221が“C−1”及び“C−2”のプロセッサ22が搭載されていることを示す。
プロセッサ状態1223は、プロセッサID1221で識別されるプロセッサ22が、正常動作中である場合を“Normal”で示し、正常動作中でない場合を“Failed”で示す情報である。
プロセッサ稼働率1224、WritePending情報1225、分散処理重み1226、及び優先度1227は、リクエスト分散送受信プログラム111がコントローラ2から受信した各プロセッサ22のプロセッサ稼働率及びWritePending情報に基づく情報であり、後述のようにリクエスト分散送受信プログラム111により更新される情報である。
プロセッサ稼働率1224は、当該プロセッサ22の使用率である。WritePending情報1225は、当該プロセッサ22による記憶装置3への書き込み待ちで共有メモリ4内のキャッシュ領域に格納されているデータ量を示す情報である。分散処理重み1226は、後述の(1)式に基づき算出される情報である。優先度1227は、コントローラテーブル122内で分散処理重み1226の降順で各プロセッサに付けた優先順位を表す情報である。
なお、プロセッサ22のプロセッサ状態1223が“Failed”である場合、当該プロセッサ22は正常動作中ではないため、図16を参照して後述するリクエスト分散送受信プログラムのプロセッサ稼働率及びWritePending情報受信時処理において、プロセッサ稼働率1224、WritePending情報1225、分散処理重み1226、及び優先度1227に、“100%”、“0MB”、“0”、及び“0”がそれぞれ登録される。
図5は、レスポンス速度テーブルの構成例を示す図である。レスポンス速度テーブル123は、構成管理のリクエスト種別毎かつ対象のリソース種別毎のリクエスト処理の応答速度を管理するためのテーブルである。レスポンス速度テーブル123のレコードは、フィールド値として、レスポンス速度ID1231と、リクエスト種別1232と、リソース種別1233と、リソース1個あたりのレスポンス時間1234とを含む。構成管理リクエストのリクエスト種別1232には、図5に図示の“GET”(構成情報取得)の他、“POST”等がある。また、リソース種別1233には、図5に図示の“Volume”、“Pool”、“Drive”、“User”の他、“HostGroup”、“ParityGroup”等がある。
構成管理リクエスト毎に構成管理の処理内容が異なり、また、構成管理リクエストの対象リソース毎に定義されている構成情報や対象リソース数が異なることから、構成管理リクエストに対するレスポンス時間も異なる。このため、リクエスト種別毎かつリソース種別毎に、構成管理リクエストのリクエスト処理のリソース1個あたりのレスポンス時間を管理する。
図5の例では、レスポンス速度ID1231が“1”である、リクエスト種別1232が“GET(構成情報取得)”かつリソース種別1233が“Volume”のリソース1個あたりのレスポンス時間1234は、“2ミリ秒”であることを示す。
図6は、受付リクエストテーブルの構成例を示す図である。受付リクエストテーブル124は、リクエスト種別及び対象リソースを指定して管理端末20から受付けた構成管理リクエスト毎に、リクエスト分散送受信プログラム111で決定した分散数及び対象リソース数を管理するためのテーブルである。受付リクエストテーブル124のレコードは、フィールド値として、受付リクエストID1241と、分散数1242と、リクエスト種別1243と、対象リソース1244と、対象リソース数1245とを含む。
図7は、分散リクエストテーブルの構成例を示す図である。分散リクエストテーブル125は、受付リクエストテーブル124で管理される受付リクエストと、リクエスト分散送受信プログラム111で決定された分散方法で分散処理する際の分散リクエストとを対応付けて管理するためのテーブルである。さらに、分散リクエストテーブル125は、それぞれの分散リクエストの処理プロセッサ、分散リクエストの対象リソース数、及び分散リクエストの処理結果の世代情報を管理するためのテーブルである。
分散リクエストテーブル125のレコードは、フィールド値として、分散リクエストID1251と、受付リクエストID1252と、処理プロセッサ1253と、対象リソース数1254と、世代情報1255とを含む。
図6及び図7を参照して、受付リクエストテーブル124と分散リクエストテーブル125との関係について具体例を挙げて説明する。
受付リクエストテーブル124の受付リクエストID1241が“1”のリクエストは、分散数1242が“2”、リクエスト種別1243が“GET”、対象リソース1244が“Volume”、対象リソース数1245が“2500”の構成管理リクエストである。
受付リクエストID1241が“1”の構成管理リクエストは、分散リクエストID1251が“1”及び“2”の2つの分散リクエストに分散されて分散リクエストテーブル125に登録される。そして、分散リクエストテーブル125の受付リクエストID1252と、受付リクエストテーブル124の受付リクエストID1241とが対応付けられる。
また、分散リクエストID1251が“1”の分散リクエストは処理プロセッサ1253が“B−1”であり、分散リクエストID1251が“2”の分散リクエストは処理プロセッサ1253が“A−1”である。図4から、プロセッサID1221が“A−1”の処理プロセッサは“コントローラA”のプロセッサ22であり、プロセッサID1221が“B−1”の処理プロセッサは“コントローラB”のプロセッサ22である。
(1−3)第1の実施の形態によるコントローラの構成
図8は、第1の実施の形態のストレージ装置のコントローラの構成例を示す図である。以下、コントローラ2について説明するが、コントローラ2−1,…,2−nはすべて同様である。
コントローラ2は、管理ソフトウェア処理部21と、複数のプロセッサ22と、ストレージ構成管理プログラム23と、共有メモリ4とを有する。
管理ソフトウェア処理部21は、リクエスト処理プログラム211と、プロセッサ稼働率及びWritePending情報送信プログラム212とを有する。
リクエスト処理プログラム211は、管理ソフトウェア統合部11のリクエスト分散送受信プログラム111から受付けた分散リクエストの処理を実行する。
プロセッサ稼働率及びWritePending情報送信プログラム212は、当該コントローラ2が有する複数のプロセッサ22毎のプロセッサ稼働率、及び、当該コントローラ2に接続されている記憶装置3への書き込み待ちのデータ量(WritePending情報)を、リクエスト分散送受信プログラム111に定期的に送信する。プロセッサ稼働率及びWritePending情報は、共有メモリ4に保存されており、ストレージ構成管理プログラム23により定期的に最新の情報に更新される。
ストレージ構成管理プログラム23は、ストレージ装置10の構成情報及び負荷情報を管理する。ストレージ構成管理プログラム23は、ストレージ装置10の構成及び負荷の状況を監視し、定期的に最新の構成情報及び負荷情報を共有メモリ4内のストレージ構成情報テーブル(不図示)に保存する。
ストレージ装置10の構成情報には、ストレージ装置10が有するドライブ装置のドライブIDと、当該ドライブ装置のドライブ種別と、当該ドライブ装置の接続先のコントローラ2のコントローラIDとを対応付けた「ドライブ情報」が含まれる。
また、ストレージ装置10の構成情報には、ストレージ装置10が有するプロセッサ22のプロセッサIDと、当該プロセッサ22が接続されているコントローラ2のコントローラIDと、当該プロセッサ22のプロセッサ状態とを対応付けた「コントローラ情報」が含まれる。
また、ストレージ装置10の負荷情報には、プロセッサ22毎の「プロセッサ稼働率及びWritePending情報」が含まれる。
ストレージ構成管理プログラム23は、「ドライブ情報」、「コントローラ情報」、及び「プロセッサ稼働率及びWritePending情報」を共有メモリ4のストレージ構成情報テーブル(不図示)に保存し、定期的に更新する。
(1−4)第1の実施の形態による共有メモリに格納される情報
図9は、第1の実施の形態のストレージ装置の共有メモリに格納される情報例を示す図である。共有メモリ4には、例えばVolume構成情報テーブル41、Pool構成情報テーブル42、HostGroup構成情報テーブル43、及びCopyGroup構成情報テーブル44を含む各種構成情報テーブルと、世代情報テーブル45とが格納されている。
(1−5)Volume構成情報テーブルの構成
図10は、Volume構成情報テーブルの構成例を示す図である。Volume構成情報テーブル41は、Volume毎にその構成情報を管理するためのテーブルである。Volume構成情報テーブル41のレコードは、フィールド値として、VolumeID411と、ClprID412と、Status413と、ByteFormatCapacty414とを含む。
VolumeID411は、Volumeを識別するための番号である。ClprID412は、当該Volumeに割当てられているメモリのキャッシュ領域の論理的な分割数を示す。Status413は当該Volumeの状態を示す。Status413では、“NORMAL”で当該Volumeが正常な状態であることを示し、“BLOCKED”で当該Volumeがアクセス不可の状態であることを示し、“BUSY”で当該Volumeのアクセス負荷が所定以上の高い状態であることを示す。ByteFormatCapacty414は、当該Volumeの容量を示す。
(1−6)Pool構成情報テーブルの構成
図11は、Pool構成情報テーブルの構成例を示す図である。Pool構成情報テーブル42は、Pool毎にその構成情報を管理するためのテーブルである。Pool構成情報テーブル42のレコードは、フィールド値として、PoolID421と、VolumeCapacity422と、UsedCapacityRate423と、NumOfLdevs424とを含む。
PoolID421は、Poolを識別するための番号である。VolumeCapacity422は、当該Poolの容量を示す。UsedCapacityRate413は、当該Poolの容量の使用率を示す。NumOfLdevs424は、当該Pool内の論理デバイス(論理ドライブ)の数を示す。
(1−7)HostGroup構成情報テーブルの構成
図12は、HostGroup構成情報テーブルの構成例を示す図である。HostGroup構成情報テーブル43は、HostGroup毎にその構成情報を管理するためのテーブルである。HostGroup構成情報テーブル43のレコードは、フィールド値として、HostGroupID431と、HostGroupName432と、HostMode433と、iSCSIName424とを含む。
HostGroupID431は、HostGroupを識別するための番号である。HostGroupName432は、当該HostGroupを識別するための名称を示す。HostMode433は、当該HostGroupのOS(Operating System)の種別を示す。iSCSIName424は、当該HostGroupのiSCSIノードを識別するための名称を示す。
(1−8)CopyGroup構成情報テーブルの構成
図13は、CopyGroup構成情報テーブルの構成例を示す図である。CopyGroup構成情報テーブル44は、CopyGroup毎にその構成情報を管理するためのテーブルである。CopyGroup構成情報テーブル44のレコードは、フィールド値として、CopyGroupID441と、PvolDeviceGroupName442と、SvolDeviceGroupName443と、PvolMuNumber444とを含む。
CopyGroupID441は、CopyGroupを識別するための番号である。PvolDeviceGroupName442は、当該CopyGroupのコピー元デバイスグループを識別するための名称を示す。SvolDeviceGroupName443は、当該CopyGroupのコピー先デバイスグループを識別するための名称を示す。PvolMuNumber444は、当該CopyGroupに一意に割り当てられるCPU等の物理資源を識別するための情報を示す。
(1−9)世代情報テーブルの構成
図14は、世代情報テーブルの構成例を示す図である。世代情報テーブル45は、リソース種別毎に構成情報の世代情報を管理するためのテーブルである。世代情報テーブル45のレコードは、フィールド値として、リソース種別451と、世代情報452とを含む。世代情報452は、当該リソース種別のリソースに対する1回の構成変更につき1インクリメントされる数値であり、数値が大きいほど当該リソースの構成情報テーブルに格納されている構成情報が新しい世代の情報であることを示す。
(1−10)リクエスト分散送受信プログラムの起動時処理
図15は、リクエスト分散送受信プログラムの起動時処理を示すフローチャートである。リクエスト分散送受信プログラムの起動時処理は、ストレージ装置10の起動時に実行される処理である。
先ず、リクエスト分散送受信プログラム111は、何れか1つのコントローラ2のリクエスト処理プログラム211に、コントローラ情報取得リクエストを送信する(ステップS11)。コントローラ情報取得リクエストを受信したリクエスト処理プログラム211は、共有メモリ4から「コントローラ情報」を取得し、リクエスト分散送受信プログラム111に送信する。
次に、リクエスト分散送受信プログラム111は、ステップS11で送信したコントローラ情報取得リクエストに応じてリクエスト処理プログラム211から受信した「コントローラ情報」を、コントローラテーブル122に登録する(ステップS12)。
具体的には、リクエスト分散送受信プログラム111は、受信した「コントローラ情報」の1レコード毎に、プロセッサIDをコントローラテーブル122のプロセッサID1221に格納し、コントローラIDをコントローラID1222に格納し、プロセッサ状態をプロセッサ状態1223に格納して、コントローラテーブル122の各レコードを生成する。
次に、リクエスト分散送受信プログラム111は、何れか1つのコントローラ2のリクエスト処理プログラム211に、ドライブ情報取得リクエストを送信する(ステップS13)。ドライブ情報取得リクエストを受信したリクエスト処理プログラム211は、共有メモリ4から「ドライブ情報」を取得し、リクエスト分散送受信プログラム111に送信する。
次に、リクエスト分散送受信プログラム111は、ステップS13で送信したドライブ情報取得リクエストに応じてリクエスト処理プログラム211から受信した「ドライブ情報」を、搭載ドライブテーブル121に登録する(ステップS14)。
具体的には、リクエスト分散送受信プログラム111は、受信した「ドライブ情報」の1レコード毎に、ドライブIDを搭載ドライブテーブル121のドライブID1211に格納し、ドライブ種別をドライブ種別1212に格納し、接続先コントローラIDを接続先コントローラID1213に格納する。そして、リクエスト分散送受信プログラム111は、プロセッサ負荷重み1214にドライブ種別に応じてあらかじめ定められているプロセッサ負荷重みを格納して、搭載ドライブテーブル121の各レコードを生成する。
次に、リクエスト分散送受信プログラム111は、何れか1つのコントローラ2のリクエスト処理プログラム211に、リクエスト種別毎かつリソース種別毎の構成管理リクエストを送信する(ステップS15)。ステップS15の構成管理リクエストを受信したリクエスト処理プログラム211は、指定されたリクエスト種別毎かつリソース種別毎の構成管理処理を実行し、リクエスト種別毎かつリソース種別毎のリソース1個あたりのレスポンス時間を推定する。
例えば図5のレスポンス速度テーブル123のレスポンス速度ID1231のレコードに示すように、リクエスト種別1232が“GET”、リソース種別1233が“Volume”である場合に、リクエスト分散送受信プログラム111の起動時処理において、共有メモリ4上のVolume構成情報テーブル41から10000件のVolume構成情報を取得した際のレスポンス時間が20秒であったとする。
レスポンス時間は、構成情報のデータ量に比例することから、20秒/10000件=2ミリ秒の計算から、1件あたりのVolume構成情報取得のレスポンス時間の推定値を算出する。この算出された“2ミリ秒”が、レスポンス速度テーブル123のレスポンス速度ID1231のレコードのリソース1個あたりのレスポンス時間1234に格納される。
逆に、例えば、管理端末20から6000件のVolumeの構成情報取得(GET)のリクエストを受付けた場合には、レスポンス速度テーブル123のレスポンス速度ID1231が“1”のレコードから、受付リクエストの処理時間を、6000件×2ミリ秒=120秒と推定できる。
なお、リクエスト処理プログラム211は、リクエスト種別毎かつリソース種別毎のリクエストデータ又はレスポンスデータの所定のデータ量あたりのレスポンス時間に基づいて、構成管理リクエストのレスポンス時間を推定してもよい。
構成管理リクエストの受信に応じてリクエスト種別毎かつリソース種別毎の構成管理リクエストのレスポンス時間を推定したリクエスト処理プログラム211は、推定したリクエスト種別毎かつリソース種別毎のリソース1個あたりのレスポンス時間を、リクエスト分散送受信プログラム111に送信する。
次に、リクエスト分散送受信プログラム111は、リクエスト処理プログラム211から受信したリクエスト種別毎かつリソース種別毎のリソース1個あたりのレスポンス時間を、レスポンス速度テーブル123に登録する(ステップS16)。
具体的には、リクエスト分散送受信プログラム111は、受信したリクエスト種別をレスポンス速度テーブル123のリクエスト種別1232に格納し、リソース種別をリソース種別1233に格納し、レスポンス時間をリソース1個あたりのレスポンス時間1234に格納し、レスポンス速度IDを付与してレスポンス速度テーブル123の各レコードを生成する。
なお、ステップS15及びS16の処理は、ストレージ装置10の起動時に限らず、定期的に実行されてもよい。
(1−11)プロセッサ稼働率及びWritePending情報受信時処理
図16は、リクエスト分散送受信プログラムのプロセッサ稼働率及びWritePending情報受信時処理を示すフローチャートである。リクエスト分散送受信プログラム111のプロセッサ稼働率及びWritePending情報受信時処理は、リクエスト分散送受信プログラム111の起動後に、プロセッサ稼働率及びWritePending情報送信プログラム212からプロセッサ稼働率及びWritePending情報を受信する度に実行される処理である。
先ず、リクエスト分散送受信プログラム111は、コントローラ2の管理ソフトウェア処理部21のプロセッサ稼働率及びWritePending情報送信プログラム212から、各コントローラ2におけるプロセッサ稼働率及びWritePending情報を受信する(ステップS21)。
次に、リクエスト分散送受信プログラム111は、ステップS21で受信したプロセッサ稼働率及びWritePending情報と、搭載ドライブテーブル121の情報とから、分散処理重みと優先度を計算し、コントローラテーブル122を更新する(ステップS22)。
具体例を挙げて説明すると、リクエスト分散送受信プログラム111が、プロセッサ稼働率及びWritePending情報送信プログラム212から、「コントローラID」“コントローラA”のコントローラ2の「プロセッサID」“A−1”のプロセッサ22について、「プロセッサ稼働率」“70%”及び「WritePending情報」“30MB”を受信したとする。このとき、リクエスト分散送受信プログラム111は、搭載ドライブテーブル121の負荷重み1214と、下記(1)式とから、「分散処理重み」を算出する。なお、下記(1)式において「基準メモリ量」は予め定められた値であり、例えば“100MB”である。
Figure 0006773755
即ち、リクエスト分散送受信プログラム111は、“コントローラA”の「コントローラID」を元に搭載ドライブテーブル121を参照し、“コントローラA”に対応する「プロセッサ負荷重み」“1”を取得する。そして、リクエスト分散送受信プログラム111は、「プロセッサ稼働率」“70%”、「WritePending情報」“30MB”、「基準メモリ量」“100MB”、及び「プロセッサ負荷重み」“1”を上記(1)式に代入して、分散処理重み=0.21を算出する。
そして、リクエスト分散送受信プログラム111は、コントローラテーブル122の「プロセッサID」“A−1”のレコードのプロセッサ稼働率1224、WritePending情報1225、及び分散処理重み1226を、「プロセッサ稼働率」“70%”、「WritePending情報」“30MB”、及び「分散処理重み」“0.21”でそれぞれ更新する。他の「プロセッサID」についても同様である。
さらに、リクエスト分散送受信プログラム111は、コントローラテーブル122の全レコードについての分散処理重み1226の降順で優先度1227を更新する。
(1−12)リクエスト分散送受信プログラムのリクエスト受付時処理
図17は、リクエスト分散送受信プログラムのリクエスト受付時処理を示すフローチャートである。リクエスト分散送受信プログラム111のリクエスト受付時処理は、管理端末20から構成管理リクエストを受信する度に実行される処理である。
先ず、リクエスト分散送受信プログラム111は、管理端末20から受信した構成管理リクエストを解析し、リクエスト種別及び対象リソースを取得する(ステップS31)。例えば、リクエスト分散送受信プログラム111は、管理端末20から、リクエスト種別:GET、対象リソース:Volume、対象リソース数:2500件の構成管理リクエストを受信したとする。
次に、リクエスト分散送受信プログラム111は、ステップS31で取得した情報から、応答基準速度に基づき、構成管理リクエストの分散方法(分散リクエスト)計算する(ステップS32)。ここで、応答基準速度とは、構成管理リクエストに対する構成管理処理のレスポンス時間が満たすべき上限値であり、例えば3秒とする。
例えば、リクエスト分散送受信プログラム111は、レスポンス速度テーブル123を参照し、リクエスト種別:GET及びリソース種別:Volumeに対応するリソース1個あたりのレスポンス時間:2ミリ秒を取得する。そして、リクエスト種別:GET、対象リソース:Volume、対象リソース数:2500件の構成管理リクエストを1つのプロセッサでリクエスト処理した場合の「推定レスポンス時間」は、2500件×0.002秒=5秒と見積られる。応答基準速度:3秒であることから、推定レスポンス時間を応答基準速度以下にするためには、対象リソース数を2つのプロセッサ22に分散して処理させる必要がある。
よって、リクエスト分散送受信プログラム111は、コントローラテーブル122において、優先度1227が“1”のコントローラBのプロセッサB−1と、優先度が“2”のコントローラAのプロセッサA−1の2つのプロセッサに構成管理リクエスト(GET)の対象リソース数を分散処理させる。即ち対象リソース数の分散数を“2”と決定する。
そして、リクエスト分散送受信プログラム111は、2500件の構成管理リクエストの対象リソース数をプロセッサB−1とプロセッサA−1のそれぞれに分散処理させる際に、優先度:X位のプロセッサに振り分ける対象リソース数を「対象リソース振り分け数(X)」として、下記(2)式に基づいて計算する。リクエスト分散送受信プログラム111は、2500件の構成管理リクエストを2つの分散リクエストに分割することから、優先度がX=1位〜2位のプロセッサについて、下記(2)式に基づく計算を実行する。
Figure 0006773755
優先度:1位のプロセッサB−1への振り分け対象リソース数(X=1)は、分散数:2、応答基準速度:3秒、分散処理重み:0.71、リソース1個あたりのレスポンス時間:2ミリ秒として、上記(2)式から、“2160件”と計算される。また、優先度:2位のプロセッサA−1への振り分け対象リソース数(X=2)は、分散数:2、応答基準速度:3秒、分散処理重み:0.21、リソース1個あたりのレスポンス時間:2ミリ秒として、上記(2)式から、“630件”と計算される。
ただし、対象リソース数の総計が2500件であることから、優先度:2位のプロセッサA−1への振り分け対象リソース数は、2500件−2160件=340件で打ち切られる。
以上のように、ステップS32において、リクエスト分散送受信プログラム111は、例えば、リクエスト種別:GET(構成情報取得)、対象リソース:Volume、対象リソース数:2500件の構成管理リクエストの対象リソース数を、プロセッサB−1及びA−1の2つのプロセッサに振り分けると計算する。また、ステップS32において、リクエスト分散送受信プログラム111は、例えば、プロセッサB−1に構成管理リクエストの対象リソース数:2160件の取得を振り分け、プロセッサA−1に構成管理リクエストの対象リソース数:340件の取得を振り分けると計算する。
次に、リクエスト分散送受信プログラム111は、ステップS31で受信した構成管理リクエストを受付リクエストテーブル124に登録し、ステップS32で計算した構成管理リクエストの分散方法(分散リクエスト)を分散リクエストテーブル125に登録する(ステップS33)。
具体的には、リクエスト分散送受信プログラム111は、ステップS31で受信した構成管理リクエストに受付リクエストID及び分散数を対応付けて受付リクエストテーブル124に登録する。また、リクエスト分散送受信プログラム111は、ステップS32で計算した構成管理リクエストの分散方法(分散リクエスト)に分散リクエストID、受付リクエストID(ステップS31で受信した構成管理リクエストの受付リクエストID)、処理プロセッサ、及びリソース数を対応付けて分散リクエストテーブル125に登録する。
次に、リクエスト分散送受信プログラム111は、ステップS32で決定した分散先のプロセッサ22それぞれに分散リクエストを送信する(ステップS34)。
次に、リクエスト分散送受信プログラム111は、ステップS34で送信した分散先のプロセッサ22で動作するリクエスト処理プログラム211から分散リクエストの処理結果の受信を待つ(ステップS35)。ステップS35では、リクエスト分散送受信プログラム111は、リクエスト処理プログラム211から分散リクエストの処理結果を受信する毎に、分散リクエストの処理結果としてその世代情報を分散リクエストテーブルに格納する。
次に、リクエスト分散送受信プログラム111は、ステップS34で送信した全ての分散リクエストの処理結果が返ってきたか否かを判定する(ステップS36)。ステップS34で送信した全ての分散リクエストの処理結果が返ってきた場合(ステップS36:YES)、リクエスト分散送受信プログラム111はステップS37に処理を移す。一方、ステップS34で送信した全ての分散リクエストの処理結果が返ってきていない場合(ステップS36:NO)、リクエスト分散送受信プログラム111はステップS35に処理を戻す。
ステップS37では、リクエスト分散送受信プログラム111は、ステップS35で受け取った全ての分散リクエストの処理結果の世代情報が一致しているか否かを判定する(ステップS37)。ステップS35で受け取った全ての分散リクエストの処理結果の世代情報が一致している場合(ステップS37:YES)、リクエスト分散送受信プログラム111は、ステップS38に処理を移す。一方、ステップS35で受け取った分散リクエストの処理結果の世代情報が一致していない場合(ステップS37:NO)、リクエスト分散送受信プログラム111は、ステップS39に処理を移す。
ステップS38では、リクエスト分散送受信プログラム111は、受け取った分散リクエストの処理結果を結合して管理端末20に返却する。ステップS38が終了すると、リクエスト分散送受信プログラム111は、リクエスト分散送受信プログラムのリクエスト受付時処理を終了する。
一方、ステップS39では、リクエスト分散送受信プログラム111は、世代情報が最新(最大)でない分散リクエストを、ステップS32で決定した分散先のプロセッサ22それぞれに再送信する。ステップS39が終了すると、リクエスト分散送受信プログラム111は、ステップS35に処理を戻す。
(1−13)受付リクエスト及び分散リクエストの管理方法
図18は、受付リクエスト及び分散リクエストの管理方法を説明するための図である。図18を参照して、図17に示すリクエスト分散送受信プログラムのリクエスト受付時処理における、管理端末20から受け付けた構成管理リクエスト(受付リクエスト)及び構成管理リクエストを分割した分散リクエストの管理(ステップS33)について説明する。
管理ソフトウェア統合部11は、受付リクエストID:1の受付リクエストとして、管理端末20から、リクエスト種別:GET、対象リソース:Volume、対象リソース数:2500の構成管理リクエストを受け付ける。そして、管理ソフトウェア統合部11は、受付リクエストID:1の受付リクエストを、分散リクエストID:1と、分散リクエストID:2の2つ分散リクエストに分散すると決定する。そして、管理ソフトウェア統合部11は、図18に示すように、受付リクエストID:1、分散数:2、リクエスト種別:GET、対象リソース:Volume、対象リソース数:2500のレコードを、受付リクエストテーブル124に追加する。
さらに、管理ソフトウェア統合部11は、応答基準速度とプロセッサ22の分散処理重みの優先度とに基づいて、分散リクエストを処理させるプロセッサ22及びそれぞれのプロセッサ22に分散処理させる対象リソース数を決定する。例えば、管理ソフトウェア統合部11は、分散リクエストID:1の分散リクエストの対象リソース数:2160を、コントローラ2−2のプロセッサ22−2(処理プロセッサB−1)に分散処理させ、分散リクエストID:2の分散リクエストの対象リソース数:340を、コントローラ2−1のプロセッサ22−1(処理プロセッサA−1)に分散処理させると決定する。
そして、管理ソフトウェア統合部11は、受付リクエストIDと、分散リクエストIDとを紐付ける。管理ソフトウェア統合部11は、図18に示すように、分散リクエストID:1、受付リクエストID:1、処理プロセッサ:B−1、対象リソース数:2160のレコードと、分散リクエストID:2、受付リクエストID:1、処理プロセッサ:A−1、対象リソース数:340のレコードとを、分散リクエストテーブル125に追加する。
そして、管理ソフトウェア統合部11は、管理ソフトウェア処理部21−2を介してプロセッサ22−2に分散リクエストID:1の分散リクエストを処理させた結果の世代情報と、管理ソフトウェア処理部21−1を介してプロセッサ22−1に分散リクエストID:2の分散リクエストを処理させた結果の世代情報が返ってきたならば、世代情報を分散リクエストテーブル125に格納する。
管理ソフトウェア統合部11は、分散リクエストID:1及び2のそれぞれの分散リクエストの世代情報が一致していれば、分散リクエストの処理結果を結合して管理端末20に返却する。一方、管理ソフトウェア統合部11は、分散リクエストID:1及び2の分散リクエストの世代情報が不一致であれば、最新でない世代情報を返してきた分散リクエストを、分散先のプロセッサ22に再送信する。
(1−14)世代情報の不一致
図19及び図20は、世代情報の不一致例を説明するための図である。図19及び図20を参照して、図17に示すリクエスト分散送受信プログラムのリクエスト受付時処理における、世代情報の不一致(ステップS37)について説明する。
例えば、図19に示すように、管理ソフトウェア統合部11は、管理端末20から(1)CopyGroup構成情報取得リクエストを受信した後に、(2)CopyGroup作成及び削除リクエストを受信したとする。そして、管理ソフトウェア統合部11は、プロセッサ22の負荷状況に応じて、CopyGroup構成情報取得リクエストをコントローラ2−1,2−3のプロセッサ22に分散処理させ、CopyGroup作成及び削除リクエストをコントローラ2−2のプロセッサ22に処理させると決定したとする。
そして、コントローラ2−1,2−2,2−3の負荷状況から、(3)CopyGroup構成情報取得リクエスト(分散リクエストA)、(4)CopyGroup作成及び削除リクエスト、(5)CopyGroup構成情報取得リクエスト(分散リクエストB)の順序でリクエスト処理されたとする。
図20に示すように、コントローラ2−1による(3)CopyGroup情報取得リクエスト(分散リクエストA)の実行時には、CopyGroup構成情報テーブル44は、CopyGroupNmae:CG1、PvolDeviceGroupName:CG1P、SvolDeviceGroupName:CG1S、PvolMuNumber:0のレコードを含み、世代情報テーブル45は、リソース種別:CopyGroup、世代情報:11111のレコードを含むので、これらを含んだCopyGroup構成情報及び世代情報が取得される。
しかし、コントローラ2−2によりCopyGroupName:CG1を削除する(4)CopyGroup削除リクエストが実行されると、CopyGroup構成情報テーブル44からCopyGroupName:CG1のレコードが削除され、世代情報テーブル45のリソース種別:CopyGroupの世代情報が+1される。さらに、コントローラ2−2によりCopyGroupName:CG2を作成する(5)CopyGroup作成リクエストが実行されると、CopyGroup構成情報テーブル44にCopyGroupNmae:CG2、PvolDeviceGroupName:CG2P、SvolDeviceGroupName:CG2S、PvolMuNumber:0のレコードが追加され、世代情報テーブル45のリソース種別:CopyGroupの世代情報がさらに+1される。
その結果、コントローラ2−3による(5)CopyGroup情報取得リクエスト(分散リクエストB)の実行時には、CopyGroup構成情報テーブル44は、CopyGroupNmae:CG1のレコードを含まず、CopyGroupNmae:CG2、PvolDeviceGroupName:CG2P、SvolDeviceGroupName:CG2S、PvolMuNumber:0を含み、世代情報テーブル45は、リソース種別:CopyGroup、世代情報:11113を含むので、これらを含んだCopyGroup構成情報及び世代情報が取得される。
このように、1つのCopyGroup構成情報取得リクエストを分散した分散リクエストA及び分散リクエストBの実行の間に、CopyGroup作成及び削除リクエストが実行されてCopyGroupの構成が更新されると、世代情報が不一致となり、分散リクエストA及び分散リクエストBのそれぞれのリクエスト処理結果に不整合が生じている場合がある。あるいは不整合が生じていない場合でも、世代情報が不一致であれば、CopyGroup作成及び削除リクエストの処理の反映が遅延している可能性がある。
1つの構成情報取得リクエストを複数の分散リクエストにて処理した場合にそれぞれの世代情報に不一致が生じると、最新の構成情報を取得できていないことから、次の構成変更処理に影響が出る可能性が高くなる。一方、世代情報が一致していると、複数の分散リクエストで同一世代の構成情報を取得できているため、複数の分散リクエストの処理結果を結合した構成情報が矛盾や不整合を含まないものとなる。
(1−15)リクエスト処理プログラムのリクエスト処理
図21は、リクエスト処理プログラムのリクエスト処理を示すフローチャートである。リクエスト処理プログラム211のリクエスト処理は、リクエスト分散送受信プログラム111から構成管理リクエスト(分散リクエストを含む)を受信する度に実行される処理である。
先ず、リクエスト処理プログラム211は、リクエスト分散送受信プログラム111から構成管理リクエストを受信する(ステップS41)。次に、リクエスト処理プログラム211は、リクエスト分散送信プログラムから指定されたプロセッサを使用して構成管理処理を実行する(ステップS42)。
次に、リクエスト処理プログラム211は、ステップS41で受信した構成管理リクエストが対象とするリソース種別の世代情報を世代情報テーブル45から取得する(ステップS43)。次に、リクエスト処理プログラム211は、リクエスト分散送受信プログラム111にステップS42の構成管理処理の実行結果及び世代情報を返す(ステップS44)。ステップS44が終了すると、リクエスト処理プログラム211は、リクエスト処理を終了する。
(1−16)プロセッサ稼働率及びWritePending送信処理
図22は、プロセッサ稼働率及びWritePending送信処理を示すフローチャートである。プロセッサ稼働率及びWritePending送信処理は、プロセッサ稼働率及びWritePending情報送信プログラム212により、ストレージ装置10の稼働中に繰り返し実行される処理である。
先ず、プロセッサ稼働率及びWritePending情報送信プログラム212は、プロセッサ22毎のプロセッサ稼働率及びWritePending情報を、共有メモリ4に格納されているストレージ構成情報テーブル(不図示)から取得する(ステップS51)。ストレージ構成情報テーブルは、ストレージ構成管理プログラム23により管理及び更新される。
次に、プロセッサ稼働率及びWritePending情報送信プログラム212は、リクエスト分散送受信プログラム111に、ステップS51で取得したプロセッサ毎のプロセッサ稼働率及びWritePending情報を送信する(ステップS52)。プロセッサ稼働率及びWritePending情報送信プログラム212は、ステップS51及びS52を繰り返し実行する。
(1−17)第1の実施の形態の効果
第1の実施の形態では、構成管理リクエストのリクエスト内容や複数のコントローラ2のプロセッサ22毎の負荷状況に応じて、複数のプロセッサ22の中から決定したプロセッサ22に、構成管理リクエストを分散並列処理させる。よって、構成管理のリクエストデータやレスポンスデータが大きい場合や、構成管理処理よりも優先処理されるI/O処理の処理負荷が高い場合であっても、構成管理の処理負荷を平準化し、処理速度を向上させることができる。
また、プロセッサ稼働率及びWritePending情報に基づいて構成管理リクエストを分散並列処理させるプロセッサ22を決定するので、記憶装置3へのI/O処理との性能干渉を軽減しつつ、構成管理処理の処理速度の低下を抑制し、構成管理のレスポンス性能を向上させることができる。
また、構成情報の新旧の判断指標となる世代情報を構成情報毎に管理し、複数のプロセッサ22での分散リクエストの分散処理結果の世代情報の不一致が生じた場合に、最新でない世代情報の処理結果を返したプロセッサ22に分散リクエストを再実行させる。よって、1つの構成管理リクエストを分割した分散リクエストを、異なる世代の構成情報を基にリクエスト処理することで生じる処理結果の不整合の発生を防止できる。
(2)第2の実施の形態
第1の実施の形態では、ストレージ装置10が、1つの管理ソフトウェア統合部11と複数の管理ソフトウェア処理部21とを有する。そして、管理ソフトウェア統合部11は、プロセッサ22毎のプロセッサ稼働率及びWritePending情報に基づいて、負荷が低い複数のプロセッサ22で構成管理リクエストを並列処理できるように、複数の管理ソフトウェア処理部21に分散処理させる制御を行うとした。
これに対し、第2の実施の形態では、ストレージ装置10Bが、複数の管理ソフトウェア統合部11Bを有し、何れか1つの管理ソフトウェア統合部11Bが、複数の管理ソフトウェア処理部21に構成管理リクエストを分散処理させる制御を行う。
図23は、第2の実施の形態のストレージ装置の構成例を示す図である。図23に例示するように、第2の実施の形態のストレージ装置10Bは、全てのコントローラ2B(2B−1,2B−2,…,2B−n)に管理ソフトウェア統合部11B(11B−1,11B−2,…,11B−n)と管理ソフトウェア処理部21(21−1,21−1,…,21−n)とを有する。
そして、初期状態では、特定の1つのコントローラ2Bの管理ソフトウェア統合部11Bがマスタとなり、複数の管理ソフトウェア処理部21(21−1,21−1,…,21−n)とプロセッサ22(22−1,…,22−n)に構成管理リクエストを分散処理させる制御を行う。
例えば、初期状態で、コントローラ2B−1の管理ソフトウェア統合部11B−1がマスタとなり、コントローラ2B−2,…,2B−nの管理ソフトウェア統合部11B−2,…,11B−nが待機状態となる。そして、マスタである管理ソフトウェア統合部11B−1は、複数の管理ソフトウェア処理部21(21−1,21−2,…,21−n)とプロセッサ22(22−1,22−2,…,22−n)に構成管理リクエストを分散処理させる制御を行う。
具体的に説明すると、コントローラ2B−1で障害(例えば管理ソフトウェア統合部11B−1、管理ソフトウェア処理部21、プロセッサ22の障害等)が発生したことにより、管理ソフトウェア統合部11B−1による構成管理リクエストの分散処理の制御が継続不可となった場合には、コントローラ2B−1は、他の1つのコントローラ2B(例えばコントローラ2B−2)に分散処理の制御を移管する。
そして、コントローラ2B−2の管理ソフトウェア統合部11B−2は、コントローラ2B−1の管理ソフトウェア処理部21−1及びプロセッサ22−1を除いた複数の管理ソフトウェア処理部21(21−2,…,21−n)とプロセッサ22(22−2,…,22−n)に構成管理リクエストを分散処理させる制御を継続する。
なお、分散処理の制御が移管される他のコントローラ2Bは、多数決論理又は予め定められている順位に従って決められる。
また、構成管理リクエストを分散処理させる制御を行うコントローラ2Bの処理負荷が所定以上の高い状態となった場合や、当該コントローラ2Bの障害発生が予測される場合にも、他のコントローラ2Bに分散処理の制御を移管してもよい。
第2の実施の形態では、構成管理リクエストを分散させる機能を有する管理ソフトウェア統合部11Bを、複数のコントローラ2Bのそれぞれに設ける。よって、構成管理リクエストの分散を行う管理ソフトウェア統合部11Bに障害等が発生した場合に、他の管理ソフトウェア統合部11Bに、構成管理リクエストを分散させる制御を移管することで、管理ソフトウェア統合部11Bの障害耐性を高めることができる。
また、コントローラ2Bが有する管理ソフトウェア処理部21及びプロセッサ22の処理負荷や、障害発生及び障害発生予測も考慮して、他のコントローラ2Bに分散処理の制御を移管することで、不適切な管理ソフトウェア処理部21及びプロセッサ22を分散リクエストの分散先としてしまう不都合を排除し、分散リクエストを効率的に分散処理できる。
(3)第3の実施の形態
図24は、第3の実施の形態のリクエスト分散送受信プログラムのプロセッサ稼働率及びWritePending情報受信時処理を示すフローチャートである。図24は、図17のリクエスト分散送受信プログラムのリクエスト受付時処理を示すフローチャートのステップS31の前に、ステップS30aの判定処理を行う点が、第1の実施の形態と異なる。
先ず、リクエスト分散送受信プログラム111は、全てのプロセッサ22のプロセッサ稼働率又はWritePending情報が基準値を超えるか否かを判定する(ステップS30a)。例えば、リクエスト分散送受信プログラム111は、全てのプロセッサ22のプロセッサ稼働率が例えば90%を超える、又は、全てのプロセッサ22のWritePending情報が例えば100MBを超えるか否かを判定する。
全てのプロセッサ22のプロセッサ稼働率又はWritePending情報が基準値を超える場合(ステップS30a:YES)、リクエスト分散送受信プログラム111は、ステップS30bに処理を移す。
ステップS30bでは、リクエスト分散送受信プログラム111は、最も負荷が低いプロセッサ22(優先度1227が第1位のプロセッサ(図4参照))のみに構成管理リクエストを送信する。次に、リクエスト分散送受信プログラム111は、ステップS30bで送信した構成管理リクエストの処理結果を受信する(ステップS30c)。
次に、リクエスト分散送受信プログラム111は、ステップS30cで受信した構成管理リクエストの処理結果を管理端末20に返却する(ステップS30d)。ステップS30dが終了すると、リクエスト分散送受信プログラム111は、リクエスト分散送受信プログラムのリクエスト受付時処理を終了する。
一方、全てのプロセッサ22のプロセッサ稼働率及びWritePending情報が基準値を超えない場合(ステップS30a:NO)、リクエスト分散送受信プログラム111は、ステップS31に処理を移す。以降は、図17に示すリクエスト分散送受信プログラムのリクエスト受付時処理の処理フローと同様である。
第3の実施の形態では、全てのプロセッサ22でのI/O処理負荷が高い場合に、構成管理リクエストを複数のプロセッサ22で分散処理させずに、負荷が最も低い1つのプロセッサ22のみで処理させる。よって、構成管理リクエストによるI/O処理への影響を低減することができる。
(4)第4の実施の形態
第1の実施の形態では、上記(1)式に基づき分散処理重みを計算した。しかし、これに限られず、図17に示すステップS32で、目標時間(応答基準速度)内に構成管理リクエストを処理できないと判定される場合に、リクエスト分散送受信プログラム111は、例えば下記(3)式に基づきそれぞれのプロセッサ22の分散処理重みを再計算する。
Figure 0006773755
ただし、上記(3)式において、“A”はストレージ装置10の構成の規模あるいはユーザにより予め設定されたプロセスの優先度に応じて決定される加重係数であり、“B”は構成管理リクエストの「推定レスポンス時間」に応じて決定される加重係数である。なお、上記(3)式の右辺の分母“Σ分散処理重み”は、全てのプロセッサに亘る分散処理重みの和を表す。
そして、リクエスト分散送受信プログラム111は、上記(3)式に基づいて再計算した分散処理重みに応じた優先度で、構成管理リクエストを分散させるプロセッサ22を決定する。そして、リクエスト分散送受信プログラム111は、再計算した分散処理重みを上記(2)式に代入して、構成管理リクエストを分散処理させるプロセッサ22と、それぞれのプロセッサ22に振り分ける対象リソース数を決定する。
第4の実施の形態では、上記(1)式に代えて、上記(3)式で算出した分散処理重みを用いて構成管理リクエストの分散方法を計算する。よって、現在の負荷(プロセッサ稼働率)よりも将来の負荷(WritePending情報)を優先的に考慮し、将来の負荷の影響度を高くして、構成管理リクエストを分散させるプロセッサ22及び振り分ける対象リソース数を計算することで、構成管理リクエストの分散処理を最適化することができる。
本発明は、上述の各実施の形態及び各変形例に限定されるものではなく、本発明の趣旨を逸脱しない限り、本発明の技術思想の範囲内で考えられるその他の形態についても、本発明の範囲内に含まれる。また、本発明の趣旨を逸脱しない限り、様々な形態で実施することができる。例えば、上述の各実施の形態及び各変形例で例示した各構成及び各処理は、実装形態や処理効率に応じて適宜統合又は分離させてもよい。
2,2−1,…,2−n,2B,2B−1,…,2B−n・・・コントローラ、3,3−1,…,3−n・・・記憶装置、4・・・共有メモリ、10,10B・・・ストレージ装置、11,11B,11B−1,…,11B−n・・・管理ソフトウェア統合部、20・・・管理端末、21,21−1,…,21−n・・・管理ソフトウェア処理部、22,22−1,…,22−n・・・プロセッサ、23・・・ストレージ構成管理プログラム、30・・・業務ホスト、41・・・Volume構成情報テーブル、42・・・Pool構成情報テーブル、43・・・HostGroup構成情報テーブル、44・・・CopyGroup構成情報テーブル、45・・・世代情報テーブル、111・・・リクエスト分散送受信プログラム、121・・・搭載ドライブテーブル、122・・・コントローラテーブル、123・・・レスポンス速度テーブル、124・・・受付リクエストテーブル、125・・・分散リクエストテーブル、211・・・リクエスト処理プログラム、212・・・プロセッサ稼働率及びWritePending情報送信プログラム

Claims (10)

  1. リクエストを処理する複数のプロセッサをそれぞれ有する複数のコントローラと、前記コントローラに接続された記憶装置とを有するストレージ装置であって、
    前記複数のコントローラを統括する統合部と、
    前記複数のコントローラの各プロセッサからアクセス可能であり、前記プロセッサ毎の負荷情報を含む前記ストレージ装置の構成情報を格納する共有メモリと、を有し、
    前記統合部は、
    管理装置から受付けた構成管理リクエストのリクエスト種別及び対象リソース種別から該構成管理リクエストの推定処理時間を算出し、
    前記共有メモリから取得した前記プロセッサ毎の負荷情報と前記推定処理時間とに基づいて、前記構成管理リクエストを複数の分散リクエストに分散し、該複数の分散リクエストのそれぞれを処理する分散先プロセッサを決定し、該分散先プロセッサを指定して該分散先プロセッサを有する前記コントローラに前記分散リクエストのそれぞれを送信し、
    前記コントローラは、
    前記分散リクエストを受信すると、指定されたプロセッサで前記分散リクエストを処理する
    ことを特徴とするストレージ装置。
  2. 前記統合部は、
    リクエスト種別毎かつ対象リソース種別毎の単位データ数又は所定データ量あたりの構成管理リクエストの処理時間を予め測定しておき、前記管理装置から受付けた構成管理リクエストの要求データ数又はデータ量に、予め測定した該処理時間を乗じることで、前記推定処理時間を算出する
    ことを特徴とする請求項1に記載のストレージ装置。
  3. 前記統合部は、
    前記推定処理時間に基づいて、前記構成管理リクエストを分散する分散リクエストの数を決定する
    ことを特徴とする請求項1に記載のストレージ装置。
  4. 前記統合部は、
    前記プロセッサ毎の負荷情報から該プロセッサ毎の優先度を予め算出しておき、該優先度に応じて前記分散先プロセッサを決定する
    ことを特徴とする請求項1に記載のストレージ装置。
  5. 前記共有メモリは、前記対象リソース種別毎の構成情報及び該構成情報の世代情報を格納し、
    前記コントローラは、
    前記分散リクエストを処理した際、該分散リクエストの対象リソース種別の前記世代情報を前記共有メモリから取得して前記統合部に該分散リクエストの処理結果と共に送信し、
    前記統合部は、
    全ての前記分散リクエストの処理結果及び前記世代情報を受信すると、全ての該世代情報が一致する場合には全ての該分散リクエストの処理結果を統合して前記管理装置に送信し、該世代情報が一致しない場合には最新でない前記世代情報の分散リクエストを該分散リクエストの分散先プロセッサを有する前記コントローラに再送する
    ことを特徴とする請求項1に記載のストレージ装置。
  6. 前記負荷情報は、前記プロセッサ毎の稼働率、及び、キャッシュ領域に一時格納されている前記プロセッサ毎の前記記憶装置への書き込み待ちのデータ量である
    ことを特徴とする請求項1に記載のストレージ装置。
  7. 前記統合部は、
    前記推定処理時間と前記負荷情報とに基づいて前記構成管理リクエストを分散リクエストに分散して処理した場合の処理時間が目標処理時間を超えるか否かを判定し、処理時間が目標処理時間を超える場合に、前記共有メモリから取得した前記プロセッサ毎の負荷情報のうち、前記プロセッサ毎の稼働率よりも、前記プロセッサ毎の前記記憶装置への書き込み待ちのデータ量の影響度を高くして、該負荷情報と前記推定処理時間とに基づいて前記構成管理リクエストを複数の分散リクエストに分散し、該複数の分散リクエストのそれぞれを処理する分散先プロセッサを決定する
    ことを特徴とする請求項6に記載のストレージ装置。
  8. 前記複数のコントローラのそれぞれが前記統合部を有し、
    何れか1つの前記コントローラの前記統合部が前記複数のコントローラを統括し、他の前記コントローラの前記統合部が待機状態となり、
    前記複数のコントローラを統括する前記コントローラに障害が発生した場合に、待機状態の前記統合部のうちの何れか1つが前記複数のコントローラを統括するように切り替える
    ことを特徴とする請求項1に記載のストレージ装置。
  9. 前記統合部は、
    全ての前記プロセッサ毎の負荷情報が閾値を超える場合に、前記構成管理リクエストを分散リクエストに分散せず、全ての前記プロセッサのうち最も負荷が低いプロセッサを指定して該プロセッサを有する前記コントローラに前記構成管理リクエストを送信する
    ことを特徴とする請求項1に記載のストレージ装置。
  10. リクエストを処理する複数のプロセッサをそれぞれ有する複数のコントローラと、前記コントローラに接続された記憶装置とを有するストレージ装置における構成管理リクエストの処理方法であって、
    前記ストレージ装置は、
    前記複数のコントローラを統括する統合部と、
    前記複数のコントローラの各プロセッサからアクセス可能であり、前記プロセッサ毎の負荷情報を含む前記ストレージ装置の構成情報を格納する共有メモリと、を有し、
    前記統合部が、
    管理装置から受付けた構成管理リクエストのリクエスト種別及び対象リソース種別から該構成管理リクエストの推定処理時間を算出し、
    前記共有メモリから取得した前記プロセッサ毎の負荷情報と前記推定処理時間とに基づいて、前記構成管理リクエストを複数の分散リクエストに分散し、該複数の分散リクエストのそれぞれを処理する分散先プロセッサを決定し、該分散先プロセッサを指定して該分散先プロセッサを有する前記コントローラに前記分散リクエストのそれぞれを送信し、
    前記コントローラが、
    前記分散リクエストを受信すると、指定されたプロセッサで前記分散リクエストを処理する
    ことを特徴とするストレージ装置における構成管理リクエストの処理方法。
JP2018233920A 2018-12-13 2018-12-13 ストレージ装置及びストレージ装置における構成管理リクエストの処理方法 Active JP6773755B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018233920A JP6773755B2 (ja) 2018-12-13 2018-12-13 ストレージ装置及びストレージ装置における構成管理リクエストの処理方法
US16/568,633 US10990305B2 (en) 2018-12-13 2019-09-12 Storage apparatus and configuration management request processing method for storage apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018233920A JP6773755B2 (ja) 2018-12-13 2018-12-13 ストレージ装置及びストレージ装置における構成管理リクエストの処理方法

Publications (2)

Publication Number Publication Date
JP2020095550A JP2020095550A (ja) 2020-06-18
JP6773755B2 true JP6773755B2 (ja) 2020-10-21

Family

ID=71072579

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018233920A Active JP6773755B2 (ja) 2018-12-13 2018-12-13 ストレージ装置及びストレージ装置における構成管理リクエストの処理方法

Country Status (2)

Country Link
US (1) US10990305B2 (ja)
JP (1) JP6773755B2 (ja)

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS599566B2 (ja) 1976-05-14 1984-03-03 出光興産株式会社 光変色性ポリカ−ボネ−トの製造方法
JPH06295247A (ja) * 1993-04-08 1994-10-21 Mitsubishi Electric Corp リアルタイム処理実現方法
JP2001290608A (ja) * 2000-04-10 2001-10-19 Hitachi Ltd ディスク制御装置
US7444459B2 (en) * 2006-12-12 2008-10-28 Lsi Logic Corporation Methods and systems for load balancing of virtual machines in clustered processors using storage related load information
JP4933284B2 (ja) * 2007-01-25 2012-05-16 株式会社日立製作所 ストレージ装置及び負荷分散方法
JP5127491B2 (ja) * 2008-02-08 2013-01-23 株式会社日立製作所 ストレージサブシステム及びこれの制御方法
US8839030B2 (en) * 2011-09-09 2014-09-16 Lsi Corporation Methods and structure for resuming background tasks in a clustered storage environment
WO2013076775A1 (ja) * 2011-11-24 2013-05-30 株式会社日立製作所 計算機システム、分割ジョブ処理方法及びプログラム
JP5909566B2 (ja) 2012-05-18 2016-04-26 株式会社日立製作所 計算機システム及びその制御方法
US10009284B2 (en) * 2013-06-28 2018-06-26 Verizon Patent And Licensing Inc. Policy-based session establishment and transfer in a virtualized/cloud environment
US9857974B2 (en) * 2013-10-03 2018-01-02 International Business Machines Corporation Session execution decision

Also Published As

Publication number Publication date
US10990305B2 (en) 2021-04-27
US20200192586A1 (en) 2020-06-18
JP2020095550A (ja) 2020-06-18

Similar Documents

Publication Publication Date Title
US11086898B2 (en) Token-based admission control for replicated writes
US10579272B2 (en) Workload aware storage platform
US8838849B1 (en) Link sharing for multiple replication modes
CN108881348B (zh) 服务质量控制方法、装置和存储服务器
US20200348863A1 (en) Snapshot reservations in a distributed storage system
JP2018514018A (ja) リソース配置を最適化するための適時性リソース移行
JP5972363B2 (ja) デュアル動作システムに対する複数のリソースのためのリソース割り当て
JP2002091804A (ja) ストレージ・デバイス上でのスペースの割振りを管理する方法、システム、およびプログラム記憶媒体
US20120221730A1 (en) Resource control system and resource control method
US9983806B2 (en) Storage controlling apparatus, information processing apparatus, and computer-readable recording medium having stored therein storage controlling program
US8010648B2 (en) Replica placement in a distributed storage system
JP7176209B2 (ja) 情報処理装置
US20100161897A1 (en) Metadata server and disk volume selecting method thereof
US8874873B2 (en) Resources allocation in a computer storage system
US11914894B2 (en) Using scheduling tags in host compute commands to manage host compute task execution by a storage device in a storage system
WO2019170011A1 (zh) 任务分配方法及装置、分布式存储系统
US10359945B2 (en) System and method for managing a non-volatile storage resource as a shared resource in a distributed system
CN109302448A (zh) 一种数据处理方法及装置
US9164885B2 (en) Storage control device, storage control method, and recording medium
KR20180046078A (ko) 데이터베이스 리밸런싱 방법
JP5853109B2 (ja) 計算機、計算機システムの制御装置及び記録媒体
US10862922B2 (en) Server selection for optimized malware scan on NAS
US10776173B1 (en) Local placement of resource instances in a distributed system
JP2015022327A (ja) データ再配置装置、方法およびプログラム
US8914336B2 (en) Storage device and data storage control method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190710

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200717

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201001

R150 Certificate of patent or registration of utility model

Ref document number: 6773755

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150