JP2012514776A - 記憶制御装置及び記憶制御装置の制御方法 - Google Patents

記憶制御装置及び記憶制御装置の制御方法 Download PDF

Info

Publication number
JP2012514776A
JP2012514776A JP2011528117A JP2011528117A JP2012514776A JP 2012514776 A JP2012514776 A JP 2012514776A JP 2011528117 A JP2011528117 A JP 2011528117A JP 2011528117 A JP2011528117 A JP 2011528117A JP 2012514776 A JP2012514776 A JP 2012514776A
Authority
JP
Japan
Prior art keywords
microprocessor
package
logical volume
command
volume
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.)
Granted
Application number
JP2011528117A
Other languages
English (en)
Other versions
JP5236078B2 (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
Publication of JP2012514776A publication Critical patent/JP2012514776A/ja
Application granted granted Critical
Publication of JP5236078B2 publication Critical patent/JP5236078B2/ja
Expired - Fee Related 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • 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/0614Improving the reliability 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/0614Improving the reliability of storage systems
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • 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
    • 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/0631Configuration or reconfiguration of storage systems by allocating resources to 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/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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • 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)

Abstract

記憶制御装置は、各マイクロプロセッサパッケージ内に、そのマイクロプロセッサパッケージで管理される論理ボリュームに関する管理用情報を配置する。予め設定される所定の場合に、各管理用情報を適切な場所に再配置させる。メインフレームとオープン系ホストとの技術的性質の差を考慮して、管理用情報を移動させることもできる。

Description

本発明は、記憶制御装置及び記憶制御装置の制御方法に関する。
記憶制御装置は、ハードディスクドライブのような記憶装置を複数用いて、RAID(Redundant Arrays of Inexpensive Disks)に基づく記憶領域をホストコンピュータに提供する。記憶制御装置は、複数のマイクロプロセッサを備えている。各マイクロプロセッサは、共有メモリに記憶されているボリューム構成情報を共有する。マイクロプロセッサが共有メモリに直接アクセスしてボリューム構成情報を使用すると、処理時間がかかる。そこで、共有されるボリューム構成情報の一部を、マイクロプロセッサの近傍に配置されるローカルメモリにコピーして使用する構成が提案されている。
特開2006−285778
従来技術では、マイクロプロセッサの近傍に位置するローカルメモリ内にボリューム構成情報を配置させるため、ボリューム構成情報へのアクセス時間を短縮して、処理性能を高めることができる。しかし、例えば、複数の論理ボリューム間でコピー処理を行う場合には、コピー元ボリュームに関するボリューム構成情報とコピー先ボリュームに関するボリューム構成情報とが、そのコピー処理を担当するマイクロプロセッサにより使用されるローカルメモリ内に配置されている必要がある。
もし、コピー元ボリュームのボリューム構成情報と、コピー先ボリュームのボリューム構成情報とが別々のローカルメモリに配置され、それらローカルメモリを参照する別々のマイクロプロセッサによってコピー処理が行われる場合、共有メモリへのアクセスが発生し、コピー処理に時間を要し、性能が低下する。
以上のように、所定の場合には、各ローカルメモリに記憶されているボリューム構成情報を再配置させる必要がある。しかし、前記文献では、ボリューム構成情報の再配置について考慮されていない。さらに、ホストコンピュータからのアクセスを停止させることなく、ボリューム構成情報を再配置させるための構成も、前記文献に記載されていない。
そこで、本発明の目的は、各ローカルメモリに記憶されているボリューム構成情報を適切に再配置させることのできる、記憶制御装置及び記憶制御装置の制御方法を提供することにある。本発明の他の目的は、ホストコンピュータからのアクセスを停止させずに、各ローカルメモリに記憶されているボリューム構成情報を適切なタイミングで再配置させることができる、記憶制御装置及び記憶制御装置の制御方法を提供することにある。本発明の他の目的は、後述する実施形態の記載から明らかになるであろう。
上記課題を解決すべく、本発明の第1観点に従う記憶制御装置は、ホストコンピュータと記憶装置との間のデータ入出力を制御する記憶制御装置であって、ホストコンピュータと通信するための第1通信部であって、ホストコンピュータからのコマンドを振り分けるための振り分けテーブルを記憶する第1通信部と、記憶装置と通信するための第2通信部と、第1通信部及び第2通信部を用いて、ホストコンピュータと記憶装置との間のデータ入出力を制御する複数のマイクロプロセッサと、各マイクロプロセッサによって使用される共有メモリと、各マイクロプロセッサ毎に配置される複数のローカルメモリと、を備え、共有メモリには、複数の論理ボリュームを管理するための第1ボリューム構成情報が記憶されており、各ローカルメモリには、第1ボリューム構成情報のうち、当該ローカルメモリに対応するマイクロプロセッサにより管理される管理対象の論理ボリュームに関する情報のコピーである、第2ボリューム構成情報が記憶されており、予め設定される所定の条件が成立した場合に、移動元のローカルメモリに記憶されている第2ボリューム構成情報を、移動先のローカルメモリに移動させる。
第2観点では、第1観点において、各マイクロプロセッサは、マイクロプロセッサをそれぞれ複数ずつ含む複数のマイクロプロセッサパッケージのいずれかに含まれており、各マイクロプロセッサパッケージは、ホストコンピュータから発行されるコマンドを処理するための第1マイクロプロセッサと、コマンドの処理とは別の処理を担当する第2マイクロプロセッサとを含んでおり、共通のマイクロプロセッサパッケージに含まれる各マイクロプロセッサは、そのマイクロプロセッサパッケージ内のローカルメモリを共同使用し、共有メモリには、各論理ボリュームの使用権限を示す第1使用権限情報が予め記憶されており、第1使用権限情報では、論理ボリュームに関するコマンドを受信する権限を示す受信権情報と、論理ボリュームを用いてコマンドを処理する権限を示す実行権情報とが、各論理ボリューム毎に予め対応付けられており、各ローカルメモリには、第1使用権限情報のコピーである、第2使用権限情報が記憶されており、振り分けテーブルには、第1使用権限情報のうち各論理ボリュームに関する受信権情報のコピーが記憶されており、(1)各マイクロプロセッサパッケージのうち所定のマイクロプロセッサパッケージ内の第2マイクロプロセッサは、所定の条件が設立した場合に、(1-1)振り分けテーブルに記憶されている各受信権情報のうち、移動対象の論理ボリュームに関する受信権情報を、移動元のマイクロプロセッサパッケージから移動先のマイクロプロセッサパッケージに切り替えさせて、振り分けテーブルを更新し、(1-2)第1使用権限情報において、移動対象の論理ボリュームに関する受信権情報を、移動元のマイクロプロセッサパッケージから移動先のマイクロプロセッサパッケージに切り替えさせて、第1使用権限情報を更新し、(1-3)各第2使用権限情報を、更新された第1使用権限情報に一致させ、(2)第1通信制御部は、ホストコンピュータから発行されるコマンドを、更新された振り分けテーブルに基づいて、移動先のマイクロプロセッサパッケージに送信し、(3)移動元のマイクロプロセッサパッケージは、(3-1)受信権情報が移動先のマイクロプロセッサパッケージに移動済の場合は、未処理のコマンドを蓄積するためのキューから取り出されるコマンドを、移動先のマイクロプロセッサパッケージに転送させ、
(3-2)処理中のコマンドが全て無くなった場合に、実行権情報を移動先のマイクロプロセッサパッケージに移動させ、(3-3)移動対象の論理ボリュームに対応する第2ボリューム構成情報を、移動元のマイクロプロセッサパッケージ内のローカルメモリから削除し、(4)移動先のマイクロプロセッサパッケージは、(4-1)実行権情報を移動元のマイクロプロセッサパッケージから取得するまでの間、第1通信部または移動元のマイクロプロセッサパッケージから受信されるコマンドを処理待ちコマンドとして蓄積し、(4-2)実行権情報を移動元のマイクロプロセッサパッケージから取得した場合は、共有メモリ内の第1ボリューム構成情報に基づいて、移動対象の論理ボリュームに関する第2ボリューム構成情報をローカルメモリに記憶させ、(4-3)第2ボリューム構成情報を用いて、処理待ちのコマンドを処理し、さらに、(5)移動元のマイクロプロセッサパッケージの対応するホストコンピュータがメインフレームである場合において、(5-1)実行権情報が移動先のマイクロプロセッサパッケージに移動済の場合、または、移動先のマイクロプロセッサパッケージに実行権情報を移動させるために設定される所定時間を経過した場合、のいずれかの場合に、(5-2)未処理のコマンドを蓄積するためのキューから取り出されるコマンドの処理を中止し、中止されたコマンドの再発行をホストコンピュータに要求する。
第3観点では、第1観点において、各論理ボリュームの使用権限を示す使用権限情報が各ローカルメモリに予め記憶されており、使用権限情報では、論理ボリュームに関するコマンドを受信する権限を示す受信権情報と、論理ボリュームを用いてコマンドを処理する権限を示す実行権情報とが、各論理ボリューム毎に予め対応付けられており、予め設定される所定の条件が成立した場合、最初に、移動対象の論理ボリュームに関する受信権情報を移動先のマイクロプロセッサに対応付け、次に、移動対象の論理ボリュームに関する実行権情報を移動先のマイクロプロセッサに対応付けることにより、移動先のマイクロプロセッサの使用するローカルメモリに、移動対象の論理ボリュームに関する第2ボリューム構成情報を移動させる。
第4観点では、第1観点において、共有メモリには、各論理ボリュームの使用権限を示す第1使用権限情報が予め記憶されており、第1使用権限情報では、論理ボリュームに関するコマンドを受信する権限を示す受信権情報と、論理ボリュームを用いてコマンドを処理する権限を示す実行権情報とが、各論理ボリューム毎に予め対応付けられており、各ローカルメモリには、第1使用権限情報のコピーである、第2使用権限情報が記憶されており、振り分けテーブルには、第1使用権限情報のうち各論理ボリュームに関する受信権情報のコピーが記憶されており、(1)各マイクロプロセッサのうち所定のマイクロプロセッサは、所定の条件が設立した場合に、(1-1)振り分けテーブルに記憶されている各受信権情報のうち、移動対象の論理ボリュームに関する受信権情報を、移動元のマイクロプロセッサから移動先のマイクロプロセッサに切り替えさせて、振り分けテーブルを更新し、(1-2)第1使用権限情報において、移動対象の論理ボリュームに関する受信権情報を、移動元のマイクロプロセッサから移動先のマイクロプロセッサに切り替えさせて、第1使用権限情報を更新し、(1-3)各第2使用権限情報を、更新された第1使用権限情報に一致させ、(2)第1通信制御部は、ホストコンピュータから発行されるコマンドを、更新された振り分けテーブルに基づいて、移動先のマイクロプロセッサに送信し、(3)移動元のマイクロプロセッサは、
(3-1)受信権情報が移動先のマイクロプロセッサに移動済の場合は、未処理のコマンドを移動先のマイクロプロセッサに転送させ、(3-2)処理中のコマンドが全て無くなった場合に、実行権情報を移動先のマイクロプロセッサに移動させ、(3-3)移動対象の論理ボリュームに対応する第2ボリューム構成情報を、移動元のマイクロプロセッサの使用するローカルメモリから削除し、(4)移動先のマイクロプロセッサは、(4-1)実行権情報を移動元のマイクロプロセッサから取得するまでの間、第1通信部または移動元のマイクロプロセッサから受信されるコマンドを処理待ちコマンドとして蓄積し、(4-2)実行権情報を移動元のマイクロプロセッサから取得した場合は、共有メモリ内の第1ボリューム構成情報に基づいて、移動対象の論理ボリュームに関する第2ボリューム構成情報をローカルメモリに記憶させ、(4-3)第2ボリューム構成情報を用いて、処理待ちのコマンドを処理する。
第5観点では、第4観点において、(5)移動元のマイクロプロセッサの対応するホストコンピュータがメインフレームである場合、移動元のマイクロプロセッサは、(5-1)実行権情報が移動先のマイクロプロセッサに移動済の場合、または、移動先のマイクロプロセッサに実行権情報を移動させるために設定される所定時間を経過した場合、のいずれかの場合に、(5-2)受信権情報を移動先のマイクロプロセッサに移動させるよりも前に受信され、かつ、処理が完了していないコマンドの処理を中止し、その中止されたコマンドの再発行をホストコンピュータに要求する。
第6観点では、第1観点において、各マイクロプロセッサは、マイクロプロセッサをそれぞれ複数ずつ含む複数のマイクロプロセッサパッケージのいずれかに含まれており、各マイクロプロセッサパッケージは、ホストコンピュータから発行されるコマンドを処理するための第1マイクロプロセッサと、コマンドの処理とは別の処理を担当する第2マイクロプロセッサとを含んでおり、共通のマイクロプロセッサパッケージに含まれる各マイクロプロセッサは、そのマイクロプロセッサパッケージ内のローカルメモリを共同使用し、各マイクロプロセッサパッケージのうち所定のマイクロプロセッサパッケージ内の第2マイクロプロセッサは、所定の条件が成立した場合に、移動元のローカルメモリに記憶されている第2ボリューム構成情報を、移動先のローカルメモリに移動させる。
第7観点では、第6観点において、処理すべきコマンドの数に応じて、第1マイクロプロセッサの数を増加させる。
第8観点では、第7観点において、第1マイクロプロセッサの数が予め設定される上限値に達した場合において、第2プロセッサを、コマンドの処理および別の処理の両方を担当することのできる第3マイクロプロセッサに変化させる。
第9観点では、第1観点において、所定の条件が成立した場合とは、コピーペアを生成する場合、または、マイクロプロセッサに障害が発生した場合、または、各マイクロプロセッサ間で負荷を分散させる場合、の少なくともいずれか一つである。
第10観点では、第1観点において、所定の条件が成立した場合とは、各論理ボリュームのうちのいずれか複数を用いてコピーペアを生成する場合であり、コピーペアの一方の論理ボリュームに関する第2ボリューム構成情報と、コピーペアの他方の論理ボリュームに関する第2ボリューム構成情報とが、同一のローカルメモリ内に存在するように、一方の論理ボリュームに対応するローカルメモリから、他方の論理ボリュームに対応するローカルメモリに、第2ボリューム構成情報を移動させる。
第11観点では、第1観点において、所定の条件が成立した場合とは、マイクロプロセッサに障害が発生した場合であり、障害の発生したマイクロプロセッサで管理されている論理ボリュームに関する第2ボリューム構成情報を、障害の発生したマイクロプロセッサに代わって処理を行うためのマイクロプロセッサに対応付けられているローカルメモリに移動させる。
第12観点では、第1観点において、所定の条件が成立した場合とは、各マイクロプロセッサ間で負荷を分散させる場合であり、予め設定される所定値以上の負荷を有する高負荷マイクロプロセッサから、所定値未何の負荷を有する低負荷マイクロプロセッサに、第2ボリューム構成情報を移動させる。
第13観点に従う、記憶制御装置の制御方法は、ホストコンピュータと記憶装置との間のデータ入出力を制御する記憶制御装置を制御するための方法であって、ホストコンピュータと通信するための第1通信部であって、ホストコンピュータからのコマンドを振り分けるための振り分けテーブルを記憶する第1通信部と、記憶装置と通信するための第2通信部と、第1通信部及び第2通信部を用いて、ホストコンピュータと記憶装置との間のデータ入出力を制御する複数のマイクロプロセッサと、各マイクロプロセッサによって使用される共有メモリであって、複数の論理ボリュームを管理するための第1ボリューム構成情報が少なくとも記憶されている共有メモリと、各マイクロプロセッサ毎に配置される複数のローカルメモリと、を備えており、各ローカルメモリには、第1ボリューム構成情報のうち、当該ローカルメモリに対応するマイクロプロセッサにより管理される管理対象の論理ボリュームに関する情報のコピーである、第2ボリューム構成情報が記憶されており、さらに、各ローカルメモリには、各論理ボリュームの使用権限を示す使用権限情報が予め記憶されており、使用権限情報では、論理ボリュームに関するコマンドを受信する権限を示す受信権情報と、論理ボリュームを用いてコマンドを処理する権限を示す実行権情報とが、各論理ボリューム毎に予め対応付けられており、予め設定される所定の条件が成立したか否かを判定し、所定の条件が成立した場合には、移動対象の論理ボリュームに関する受信権情報を移動先のマイクロプロセッサに対応付け、移動対象の論理ボリュームに関する実行権情報を移動先のマイクロプロセッサに対応付け、実行権情報の移動元のマイクロプロセッサにより使用されるローカルメモリから、移動対象の論理ボリュームに関する第2ボリューム構成情報を削除し、実行権情報の移動先のマイクロプロセッサにより使用されるローカルメモリに、移動対象の論理ボリュームに関する第2ボリューム構成情報を共有メモリからコピーさせる。
本発明の各構成要素またはステップまたは手段は、コンピュータプログラムとして生成できる場合がある。そのようなコンピュータプログラムは、通信ネットワークまたは記録媒体を介して流通させることができる。さらに、本発明の観点は上記に明示されたもの以外に、種々組み合わせることもできる。そのような組合せも本発明の範囲に含まれる。
本発明の実施形態を示す概念図である。 記憶制御装置のブロック図である。 マイクロプロセッサパッケージの構成を模式的に示す図である。 通信ポートパッケージとマイクロプロセッサパッケージの構成を示す図である。 共有メモリの記憶内容とマイクロプロセッサパッケージ内のパッケージメモリの記憶内容との関係を示す図である。 共有メモリの別の記憶内容とマイクロプロセッサパッケージ内のパッケージメモリの別の記憶内容との関係を示す図である。 論理ボリュームの構成を管理するための情報を示す図である。 論理ボリュームを使用するための権限を管理するテーブルと、コマンドを振り分けるためのテーブルとを示す図である。 マイクロプロセッサの属性を管理するためのテーブルを示す図である。 ジョブ管理を模式的に示す図である。 リードコマンドを処理するフローチャートである。 ライトコマンドを処理するフローチャートである。 パッケージメモリ内のオーナ権管理テーブルを使用することができるか否かを確認するための処理を示すフローチャートである。 マイクロプロセッサの属性を決定するための処理を示すフローチャートである。 パッケージ内の各マイクロプロセッサの属性変化を示す図である。 ボリューム構成情報を再配置させる処理の全体を示すフローチャートである。 コピーペアを契機に先行オーナ権を移動させる処理を示すフローチャートである。 移動元マイクロプロセッサパッケージの処理を示すフローチャートである。 実オーナ権を移動させる処理を示すフローチャートである。 移動先マイクロプロセッサパッケージの処理を示すフローチャートである。 各マイクロプロセッサパッケージに障害が発生したか否かを調べるための処理を示すフローチャートである。 正常なマイクロプロセッサパッケージが、障害で停止したマイクロプロセッサパッケージに代わって処理を担当するフローチャートである。 肩代わりするマイクロプロセッサパッケージの優先順位を示す図である。 肩代わりするマイクロプロセッサパッケージの優先順位を管理するためのテーブルを示す図である。 図24のテーブルを作成するための処理を示すフローチャートである。 マイクロプロセッサパッケージの負荷増大を契機に、先行オーナ権を移動させる処理を示すフローチャートである。 第2実施例に係り、移動元マイクロプロセッサパッケージがメインフレーム用のマイクロプロセッサパッケージである場合における、移動元マイクロプロセッサパッケージの処理を示すフローチャートである。 移動先マイクロプロセッサパッケージがメインフレーム用のマイクロプロセッサパッケージである場合における、移動先マイクロプロセッサパッケージの処理を示すフローチャートである。
1:記憶制御装置
2:ホストコンピュータ
3:第1通信部
4:第2通信部
5:共有メモリ
6:マイクロプロセッサパッケージ
6A:マイクロプロセッサ
6B:パッケージメモリ
R1:受信権情報
R2:実行権情報
7:スイッチ
8:記憶装置
10:記憶制御装置
110:通信ポートパッケージ
120:マイクロプロセッサパッケージ
121:マイクロプロセッサ
122:パッケージメモリ
130:メモリパッケージ
131:共有メモリ
132:キャッシュメモリ
140:バックエンドパッケージ
151:記憶装置
152:論理ボリューム
T10:I/O振り分けテーブル
T20,T30:ボリューム構成情報
T21,T31:オーナ権管理テーブル
図1は、本発明の実施形態の概要を示す説明図である。図1に示す構成は、本発明の範囲を限定するものではなく、図1に示す構成以外の構成も本発明の範囲に含まれる。本実施形態では、以下に述べるように、記憶制御装置の作動を制御するために使用される管理用情報(ボリューム構成情報)を、各マイクロプロセッサのローカルメモリに記憶させる。さらに、本実施形態では、予め設定される所定の場合に、各ボリューム構成情報を、各場合に応じた位置に再配置させる。さらに、本実施形態では、コマンド発行元であるホストの種類に応じて、ボリューム構成情報を再配置させる処理を変える。
本実施形態に係る記憶制御装置1は、ホストコンピュータ(以下、「ホスト」と略記)2に接続されている。ホスト2としては、例えば、サーバコンピュータ、または、メインフレームコンピュータ等を挙げることができる。
図1は、記憶制御装置1の要部を示している。記憶制御装置1の詳細な構成は、図2で後述する。記憶制御装置1は、例えば、第1通信部3と、第2通信部4と、共有メモリ5と、複数のマイクロプロセッサパッケージ6(0),6(1)と、スイッチ7と、記憶装置8とを含む。なお、以下の説明では、特に区別する必要が無い場合、マイクロプロセッサパッケージ6(0),6(1)をマイクロプロセッサパッケージ6と呼ぶ。
第1通信部3は、ホスト2との通信を担当する制御回路である。第1通信部3は、スイッチ7を介して、第2通信部4と、共有メモリ5と、各マイクロプロセッサパッケージ6とに接続される。第1通信部3は、ホスト2から受信したコマンドを各マイクロプロセッサパッケージ6のいずれに送信するかを決定するために使用される、I/O振り分けテーブル(図4,図8参照)を有する。I/Oとは、Input/Outputの略である。
第1通信部3は、コマンド内の論理アドレスとI/O振り分けテーブルとに基づいて、そのコマンドを処理すべきマイクロプロセッサパッケージ6を決定する。第1通信部3は、そのコマンドを、決定されたマイクロプロセッサパッケージ6に送信する。さらに、第1通信部3は、マイクロプロセッサパッケージ6からの応答をホスト2に伝達する。
第2通信部4は、記憶装置8との通信を担当する制御回路である。第2通信部4は、スイッチ7を介して、第1通信部3と、共有メモリ4と、各マイクロプロセッサパッケージ6と
に接続される。図中では、一つの記憶装置8を示すが、実際には複数の記憶装置8が設けられる。記憶装置8の有する物理的記憶領域を用いて、論理的な記憶領域が生成される。その論理的な記憶領域は、論理ボリュームと呼ばれる(図2参照)。本実施形態では、論理ボリュームをLDEV(Logical DEVice)と表示する場合がある。なお、一つの記憶装置8に一つまたは複数の論理ボリュームを設けることもできるし、または、複数の記憶装置8に一つまたは複数の論理ボリュームを設けることもできる。
記憶装置としては、例えば、ハードディスク装置、半導体メモリ装置、光ディスク装置、光磁気ディスク装置、磁気テープ装置等の、データを読み書き可能な種々の記憶装置を挙げることができる。ハードディスク装置を用いる場合、例えば、FC(Fibre Channel)ディスク、SCSI(Small Computer System Interface)ディスク、SATAディスク、ATA(AT Attachment)ディスク、SAS(Serial Attached SCSI)ディスク等を用いることができる。
また、例えば、フラッシュメモリ、FeRAM(Ferroelectric Random Access Memory)、MRAM(Magnetoresistive Random Access Memory)、相変化メモリ(Ovonic Unified Memory)、RRAM(Resistance RAM)、PRAM(Phase change RAM)等の記憶装置を用いることもできる。さらに、例えば、フラッシュメモリデバイスとハードディスクドライブのように、種類の異なる記憶装置を同一ストレージ装置内に混在させる構成でもよい。
共有メモリ5は、スイッチ7を介して、第1通信部3と、第2通信部4及び各マイクロプロセッサパッケージ6に接続される。共有メモリ5には、各回路3,4,6により使用される各種情報が記憶される。共有メモリ5の記憶内容は、図5,図6を用いて詳述する。
共有メモリ5には、少なくともボリューム構成情報とオーナ権管理テーブル(いずれも図5参照)とが記憶される。共有メモリ5に記憶される情報及びテーブルは、マスタ情報であり、例えば、それら情報及びテーブルが更新された場合、各回路3,4,6にコピーされている情報も更新される。
マイクロプロセッサパッケージ6は、記憶制御装置1の動作を制御する。各マイクロプロセッサパッケージ6は、スイッチ7を介して、第1通信部3と、第2通信部4と、共有メモリ5と、他方のマイクロプロセッサパッケージ6とに接続される。図1では、2つのマイクロプロセッサパッケージ6(0),6(1)を示すが、3個以上のマイクロプロセッサパッケージを設けることもできる。各マイクロプロセッサパッケージ6は、例えば、複数のマイクロプロセッサ6Aと、パッケージメモリ6Bとを備える。
マイクロプロセッサ6Aは、ホスト2から発行されるコマンドを処理する。処理結果は、第1通信部3を介してホスト2に返される。「マイクロプロセッサ毎に配置されるローカルメモリ」または「マイクロプロセッサパッケージ内のローカルメモリ」に該当するパッケージメモリ6Bは、例えば、「ボリューム構成情報」としてのLDEV情報T1と、「使用権限情報」としての受信権情報R1及び実行権情報R2とを、記憶する。
マイクロプロセッサ6Aの種類(属性)は、ホスト2からのコマンドを処理するための同期処理用プロセッサと、コマンド処理以外の別の処理を行うための非同期処理用プロセッサとに大別することができる。さらに、コマンド処理または別処理の両方を行うことができる混在型プロセッサという種類を設けてもよい。マイクロプロセッサ6Aがいずれの属性を備えるかは、後述のプログラムで決定される。
同期処理用のマイクロプロセッサ6Aは、LDEV情報T1を参照することにより、ホスト2からのコマンドを処理する。例えば、リードコマンドの場合、マイクロプロセッサ6Aは、指定された論理ボリュームから指定されたデータを読み出して、そのデータをホスト2に送信させる。ライトコマンドの場合、マイクロプロセッサ6Aは、指定された論理ボリュームにライトデータを書き込む。
受信権情報R1、実行権情報R2及びLDEV情報T1の関係を説明する。受信権情報R1とは、コマンドを受領する権利を有することを示す情報である。実行権情報R2とは、コマンドを処理する権利を有することを示す情報である。LDEV情報T1は、マイクロプロセッサパッケージ6により管理される論理ボリュームの構成を管理する。LDEV情報T1は、実行権情報R2を有するマイクロプロセッサパッケージ6内のパッケージメモリ6Bに記憶される。通常の場合、受信権情報R1及び実行権情報R2は、同じマイクロプロセッサパッケージ6内のパッケージメモリ6Bに格納される。
マイクロプロセッサパッケージ6(0)が一方の論理ボリュームを管理している場合、マイクロプロセッサパッケージ6(1)は、一方の論理ボリュームについての受信権情報R1及び実行権情報R2を有する。従って、一方の論理ボリュームに関するLDEV情報T1は、マイクロプロセッサパッケージ6(0)内のパッケージメモリ6Bに格納される。第1通信部3が、一方の論理ボリュームを処理対象とするコマンドを受信した場合、そのコマンドは、受信権情報R1を有するマイクロプロセッサパッケージ6(0)に転送される。実行権情報R2を有するマイクロプロセッサパッケージ6(0)は、一方の論理ボリュームを用いてコマンドを処理し、その処理結果をホスト2に返信する。
上記同様に、マイクロプロセッサパッケージ6(1)が他方の論理ボリュームを管理している場合、マイクロプロセッサパッケージ6(1)は、他方の論理ボリュームについての受信権情報R1及び実行権情報R2を有する。従って、他方の論理ボリュームに関するLDEV情報T1は、マイクロプロセッサパッケージ6(1)内のパッケージメモリ6B内に記憶される。第1通信部3が、他方の論理ボリュームを処理対象とするコマンドを受信した場合、そのコマンドは、受信権情報R1を有するマイクロプロセッサパッケージ6(1)に転送される。実行権情報R2を有するマイクロプロセッサパッケージ6(1)は、他方の論理ボリュームを用いてコマンドを処理し、その処理結果をホスト2に返信する。
各マイクロプロセッサパッケージ6は、自分の担当する論理ボリュームに関するLDEV情報T1をパッケージメモリ6Bに記憶させているため、共有メモリ5内のLDEV情報(マスタ)にアクセスする必要が無い。従って、より高速にコマンドを処理できる。
各マイクロプロセッサパッケージ6の担当する論理ボリュームに変化が無い場合、つまり、管理対象の論理ボリュームが変わらない場合には、LDEV情報T1を移動させる必要が無い。しかし、所定の場合には、LDEV情報T1を別のマイクロプロセッサパッケージ内に移動させる必要がある。
例えば、コピーペアを形成する場合、コピー元の論理ボリューム(以下、コピー元ボリューム)及びコピー先の論理ボリューム(以下、コピー先ボリューム)は、処理時間を短縮するために、同一のマイクロプロセッサパッケージ6で担当されるのが好ましい。従って、コピーペアを形成する場合には、コピー元ボリュームのLDEV情報T1を、コピー先ボリュームを担当するマイクロプロセッサパッケージ6内のパッケージメモリ6Bに移動させるか、または、コピー先ボリュームのLDEV情報T1を、コピー元ボリュームを担当するマイクロプロセッサパッケージ6内のパッケージ6Bに移動させる必要がある。ここで、LDEV情報T1を移動させるとは、移動元から移動先にLDEV情報T1をコピーさせ、次に、移動元のLDEV情報T1を消去させることを意味する。
他の例として、マイクロプロセッサパッケージ6が障害で停止する場合を挙げることができる。マイクロプロセッサパッケージ6内の各マイクロプロセッサ6Aが何らかの原因によって停止すると、そのマイクロプロセッサパッケージ6は閉塞処理される。この場合、閉塞されたマイクロプロセッサパッケージ6が担当していた論理ボリュームは、いずれかの正常なマイクロプロセッサパッケージ6が代わって担当する必要がある。
従って、障害発生時には、障害の発生したマイクロプロセッサパッケージ6に代わって処理を実行するマイクロプロセッサパッケージ6が、障害の発生したマイクロプロセッサパッケージ6で管理されていた論理ボリュームのLDEV情報T1を取得する必要がある。そこで、共有メモリ5内のLDEV情報T1を、障害の発生したマイクロプロセッサパッケージ6に代わって処理を行う正常なマイクロプロセッサパッケージ6のパッケージメモリ6Bにコピーさせる。なお、障害の発生したマイクロプロセッサパッケージ6に代わって処理を行う正常なマイクロプロセッサパッケージ6を、肩代わりするマイクロプロセッサパッケージ6と呼ぶ場合がある。
さらに、別の例として、各マイクロプロセッサパッケージ6間で負荷を分散させる場合を挙げることができる。例えば、マイクロプロセッサパッケージ6(0)が、第1論理ボリュームと第2論理ボリュームとを担当しており、マイクロプロセッサパッケージ6(1)が第3論理ボリュームと第4論理ボリュームとを担当しているとする。第1論理ボリューム及び第2論理ボリュームへのアクセス頻度及びアクセスサイズが大きく、第3論理ボリューム及び第4論理ボリュームへのアクセス頻度及びアクセスサイズが小さいとする。
この場合、第1論理ボリュームと第3論理ボリュームまたは第4論理ボリュームのいずれか一つとを交換するか、あるいは、第2論理ボリュームと第3論理ボリュームまたは第4論理ボリュームのいずれか一つを交換する。これにより、マイクロプロセッサパッケージ6(0)の負荷とマイクロプロセッサパッケージ6(1)の負荷との差を少なくできる。このように、負荷分散のために、各マイクロプロセッサパッケージ6が管理する論理ボリュームを、各マイクロプロセッサパッケージ6間で移動させる必要がある。
上述の理由によって、LDEV情報T1を移動させる場合、まず最初に、受信権情報R1を移動先のマイクロプロセッサパッケージ6に移し、次に、実行権情報R2を移動先のマイクロプロセッサパッケージ6に移す。
具体的には、例えば、第1通信部3内のI/O振り分けテーブルにおいて、受信権情報R1を移動先のマイクロプロセッサパッケージ6に対応付ける。図1(2)に示すように、その後にホスト2から発行されるコマンドは、第1通信部3によって、移動先のマイクロプロセッサパッケージ6に転送される。
しかし、その時点では、移動先のマイクロプロセッサパッケージ6は、実行権情報R2を有しておらず、LDEV情報T1も取得していないので、第1通信部3から受信したコマンドを処理することはできない。そこで、移動先のマイクロプロセッサパッケージ6は、受信したコマンドをキューに蓄積し、実行権情報R2を取得できるまで待機する。
移動元のマイクロプロセッサパッケージ6では、移動対象の論理ボリュームに関する、処理途中のコマンドが無くなったか否かを判定する。処理途中のコマンドが全て無くなった場合、移動元のマイクロプロセッサパッケージ6から移動先のマイクロプロセッサパッケージ6に、移動対象の論理ボリュームに関する実行権情報R2が移される。
移動先のマイクロプロセッサパッケージ6は、実行権情報R2を取得すると、共有メモリ5からLDEV情報T1を読み出して、移動先マイクロプロセッサパッケージ6内のパッケージメモリ6Bに記憶させる。これにより、移動先のマイクロプロセッサパッケージ6は、移動対象の論理ボリュームに関するコマンドを処理することができる。
詳細は後述するが、ホスト2の種類に応じて、移動元マイクロプロセッサパッケージ6内に残っている未処理のコマンドの取り扱い方法を変えることもできる。いわゆるオープン系のホスト2の場合、受信権情報R1が移動先マイクロプロセッサパッケージ6に移動された後において、移動元マイクロプロセッサパッケージ6内のキューに残っている未処理のコマンドは、移動先マイクロプロセッサパッケージ6に転送される。処理中のコマンドは、移動元マイクロプロセッサパッケージ6により処理させ、未処理のコマンドのみを移動先マイクロプロセッサパッケージ6に転送する。
これに対し、ホスト2がメインフレームの場合、ホスト2から発行されるコマンドのサイズが大きい。そこで、移動元マイクロプロセッサパッケージ6が受信権情報R1を失った場合であっても、実行権情報R2を有している限りは、移動元マイクロプロセッサパッケージ6は、キューに残っているコマンド(CCW(Channel Command Word)チェーン)を処理する。
移動元マイクロプロセッサパッケージ6内の処理中コマンドが全て無くならないと、実行権情報R2を移動先マイクロプロセッサパッケージ6に移動させることができない。移動元マイクロプロセッサパッケージ6が、メインフレームに特有の長いコマンドチェーンを長時間に亘って処理すると、論理ボリュームの移動完了に要する時間が長くなる。
そこで、実行権情報R2を強制的に移動させるための所定時間を予め設定する。その所定時間が経過した場合、移動元マイクロプロセッサパッケージ6は、ホスト2に対して、コマンドの再発行を要求する。つまり、移動元マイクロプロセッサパッケージ6は、メインフレームであるホスト2に、リトライを要求する。これにより、ホスト2は、コマンドを再発行する。再発行されたコマンドは、第1通信部3によって移動先マイクロプロセッサパッケージ6に転送される。
このように構成される本実施形態によれば、所定の場合に、各マイクロプロセッサパッケージ6内のパッケージメモリ6Bに記憶されているボリューム構成情報を、適切な場所に再配置させることができ、使い勝手及び信頼性が向上する。
本実施形態によれば、ホスト2からのアクセスを止めることなく、ボリューム構成情報を再配置させることができ、使い勝手が向上する。
さらに、本実施形態によれば、オープンホストとメインフレームの両方に適した方法で、ボリューム構成情報を再配置させることができ、オープン系ホスト2とメインフレームとが混在する情報処理システムに特に有効である。以下、本実施形態についてさらに詳細に説明する。
図2は、記憶制御装置10を含む情報処理システムの全体を示す。先に図1との対応関係を説明する。記憶制御装置10は記憶制御装置1に、ホスト30はホスト2に、通信ポートパッケージ(PORT−PK)110は第1通信部3に、マイクロプロセッサパッケージ120はマイクロプロセッサパッケージ6に、共有メモリ131は共有メモリ5に、バックエンドパッケージ(BEPK)140は第2通信部4に、記憶装置151は記憶装置8に、スイッチ160はスイッチ7に、対応する。本実施例では、受信権R1を先行オーナ権と呼び、実行権R2を実行オーナ権と呼ぶ。
記憶制御装置10は、例えば、通信ポートパッケージ110と、マイクロプロセッサパッケージ120と、メモリパッケージ130(図中、メモリPK130)と、バックエンドパッケージ140と、記憶装置搭載部150と、スイッチ160と、サービスプロセッサ170(図中、SVP170)と、電源装置180とを備える。
通信ポートパッケージ110は、ホスト30との通信を担当する制御基板である。通信ポートパッケージ110は、複数の通信ポート111と、マイクロプロセッサ112と、ローカルメモリ113とを備える。マイクロプロセッサ112は、通信ポートパッケージ110の動作を制御する。ローカルメモリ113には、後述のI/O振り分けテーブルT10が格納される。通信ポート111は、通信ネットワーク41を介して所定のホスト30に接続される。
図2中左側に示す通信ポートパッケージ110(0)は、いわゆるオープン系のホストに対応している。図2中右側に示す通信ポートパッケージ110(1)は、メインフレームに対応している。なお、一つの通信ポートパッケージ110が、オープン系ホスト及びメインフレームの両方に対応可能な構成としてもよい。通信ネットワーク41としては、例えば、FC_SAN(Fibre Channel_Storage Area Network)または/及びIP_SAN(Internet Protocol_SAN)を用いることができる。
FC_SANの場合、ホスト30と通信ポートパッケージ110とは、ファイバチャネルプロトコルに従ってデータ通信を行う。ホスト30がメインフレームの場合は、例えば、FICON(Fibre Connection:登録商標)、ESCON(Enterprise System Connection:登録商標)、ACONARC(Advanced Connection Architecture:登録商標)、FIBARC(Fibre Connection Architecture:登録商標)等の通信プロトコルに従って、データ通信が行われる。IP_SANの場合、ホスト30と通信ポートパッケージ110とは、TCP/IP(Transmission Control Protocol/Internet Protocol)等のプロトコルに従って、データ通信を行う。
バックエンドパッケージ140は、記憶装置151との通信を担当するための制御基板である。バックエンドパッケージ140は、複数の通信ポート141と、マイクロプロセッサ142と、ローカルメモリ143とを備える。マイクロプロセッサ142は、バックエンドパッケージ140の動作を制御する。ローカルメモリ143には、マイクロプロセッサ142により使用される管理用データ等が格納される。各通信ポート141は、各記憶装置151に接続されている。
メモリパッケージ130は、共有メモリ領域131と、キャッシュメモリ領域132とを備える。共有メモリ領域131には、例えば、後述する管理用の各種情報が記憶される。キャッシュメモリ領域132には、例えば、ユーザデータ等が記憶される。以下、共有メモリ領域131を共有メモリ131と呼び、キャッシュメモリ領域132をキャッシュメモリ132と呼ぶ。説明の便宜上、本実施例では、キャッシュ管理テーブルT32(図6参照)を共有メモリ131に記憶させる場合を示す。これに代えて、キャッシュ管理テーブルT32をキャッシュメモリ132に格納させる構成でもよい。
マイクロプロセッサパッケージ120は、記憶制御装置10の動作を制御するための制御基板である。マイクロプロセッサパッケージ120は、マイクロプロセッサ121と、パッケージメモリ122とを備える。
マイクロプロセッサパッケージ120は、ホスト30から発行されたコマンドを実行し、その実行結果をホスト30に送信する。通信ポートパッケージ110がリードコマンドを受信した場合、マイクロプロセッサパッケージ120は、要求されたデータをキャッシュメモリ132または記憶装置151から取得し、ホスト30に送信させる。
通信ポートパッケージ110がライトコマンドを受信した場合、マイクロプロセッサパッケージ120は、ライトデータをキャッシュメモリ132に書き込み、ホスト30に処理完了を通知する。キャッシュメモリ132に書き込まれたデータは、その後、記憶装置151に書き込まれる。マイクロプロセッサパッケージ120の構成については、図3でさらに詳述する。
記憶装置151は、例えば、ハードディスクドライブまたはフラッシュメモリデバイス等の記憶装置から構成される。複数の記憶装置151を一つのグループ150にまとめることができる。このグループ150は、例えば、RAIDグループまたはパリティグループと呼ばれる。そして、グループ化された記憶領域には、一つまたは複数の論理ボリューム152が形成される。
スイッチ160は、各パッケージ110,120,130,140を接続するための回路である。通信ポートパッケージ110、バックエンドパッケージ140、マイクロプロセッサパッケージ130は、スイッチ160を介して、メモリパッケージ130にアクセスすることができる。
サービスプロセッサ170は、記憶制御装置10内の各種情報を収集して管理端末20に提供したり、管理端末20から入力された設定値等を共有メモリ131に記憶させたりするための制御回路である。サービスプロセッサ170は、例えば、LAN(Local Area Network)等の別の通信ネットワーク42を介して、管理端末20に接続されている。
電源装置180は、電力を消費する各回路110〜170に所定の電力を供給する装置である。電源装置180は、例えば、記憶制御装置10の外部から入力される交流電源を直流電源に変換する回路と、その直流電源をさらに複数の直流電源に変換する回路と、バッテリ装置とを備えることができる。
図3は、マイクロプロセッサパッケージ120の構成を模式的に示す図である。マイクロプロセッサパッケージ120は、例えば4個のマイクロプロセッサ121と、一つのローカルメモリ123とを備える。
ローカルメモリ123内は、複数の専用領域124(0)〜124(3)と、一つの共同使用領域122とに区切られている。専用領域124(0)〜124(3)は、対応するマイクロプロセッサ121(#0)〜121(#3)に割り当てられる。例えば、専用領域124(0)は、マイクロプロセッサ121(#0)だけが使用できる。専用領域124(1)は、マイクロプロセッサ121(#1)のみが使用できる。同様に、専用領域124(2)は、マイクロプロセッサ121(#2)のみが使用でき、専用領域124(3)は、マイクロプロセッサ121(#3)だけが使用できる。
共同使用領域122は、各マイクロプロセッサ121(#0)〜121(#3)のいずれもが使用できる。同一マイクロプロセッサパッケージ120内の各マイクロプロセッサ121(#0)〜121(#3)によって共同使用される領域122を、本実施例では、パッケージメモリ122と呼ぶ。
パッケージメモリ122には、例えば、オープン系ホスト用のコマンドキューQ20と、メインフレーム用のコマンドキューQ21と、ジョブキューQ23と、ボリューム構成情報T20と、オーナ権管理テーブルT21と、キャッシュ管理テーブルT22と、マイクロプロセッサ属性管理テーブルT23と、が記憶される。
オープン系ホスト用のコマンドキューQ20は、オープン系ホストからのコマンドを蓄積する。メインフレーム用のコマンドキューQ21には、メインフレームからのコマンドが蓄積される。ジョブキューQ23は、論理ボリュームを使用する各ジョブを管理する。
「第2ボリューム構成情報」としてのボリューム構成情報T20は、マイクロプロセッサパッケージ120で管理している論理ボリューム152の構成を示す情報である。その詳細は後述する。「第2使用権限情報」としてのオーナ権管理テーブルT21は、記憶制御装置10内の各論理ボリューム152について、どのマイクロプロセッサパッケージ120が使用する権利を有しているのかを管理する。キャッシュ管理テーブルT22は、キャッシュメモリ133に記憶されているデータを管理する。マイクロプロセッサ属性管理テーブルT23は、各マイクロプロセッサ121の属性を管理する。その詳細は後述する。
図4は、通信ポートパッケージ110とマイクロプロセッサパッケージ120との関係を示す。通信ポートパッケージ110のローカルメモリ113には、出力管理キューQ10と、I/O振り分けテーブルT10とが記憶されている。出力管理キューQ10は、マイクロプロセッサパッケージ120から受信した応答を管理するキューである。応答とは、ホスト30から発行されたコマンドの処理結果等を示す情報である。
図5は、共有メモリ131と各パッケージメモリ122との関係を示す。共有メモリ131には、「第1使用権限情報」としてのオーナ権管理テーブルT31が記憶される。各パッケージメモリ122には、オーナ権管理テーブルT31のコピーである、「第2使用権限情報」としてのオーナ権管理テーブルT21が記憶される。
共有メモリ131には、「第1ボリューム構成情報」としてのボリューム構成情報T30も記憶されている。各パッケージメモリ122には、「第2ボリューム構成情報」としてのボリューム構成情報T20が記憶されている。パッケージメモリ122内のボリューム構成情報T20は、共有メモリ132内のボリューム構成情報T30の一部分である。
つまり、ボリューム構成情報T30のうち、マイクロプロセッサパッケージ120が管理している論理ボリューム152に関する情報のみが、パッケージメモリ122内のボリューム構成情報T20としてコピーされる。図5の例では、パッケージメモリ122(0)には、2つの論理ボリューム(LDEV1,LDEV2)に関するボリューム構成情報T20が記憶されており、パッケージメモリ122(1)には、別の2つの論理ボリューム(LDEV3,LDEV4)に関するボリューム構成情報T20が記憶されている。
実行オーナ権は、論理ボリューム152を用いてコマンドを処理する権限を示す。従って、その論理ボリューム152の実行オーナ権を有するマイクロプロセッサパッケージ120が、その論理ボリューム152に関するボリューム構成情報T20を有する。その論理ボリューム152を担当するマイクロプロセッサパッケージ120が変更される場合、実行オーナ権及びボリューム構成情報T20の格納先も変更される。なお、実行オーナ権の移動に先立って、先行オーナ権が移動される。論理ボリューム152の移動が完了した後では、実行オーナ権と先行オーナ権及びボリューム構成情報T20は、同一のパッケージメモリ122内に格納される。
図6は、共有メモリ131と各パッケージメモリ122との別の関係を示す。共有メモリ131には、障害発生時に肩代わりするマイクロプロセッサパッケージ120を決定するための管理テーブルT33が記憶されている。そのテーブルT33の作成方法及び使用方法は
後述する。
共有メモリ131には、キャッシュ管理テーブルT32も記憶されている。各パッケージメモリ122には、キャッシュ管理テーブルT32の一部分である、別のキャッシュ管理テーブルT22が記憶されている。ボリューム構成情報T20について述べたと同様に、各パッケージメモリ122には、マイクロプロセッサパッケージ120が管理している論理ボリューム152に関するキャッシュ情報のみが記憶される。
図5,図6で述べたように、共有メモリ131には、ボリューム構成情報T30と、オーナ権管理テーブルT31と、肩代わりマイクロプロセッサパッケージ管理テーブルT33と、キャッシュ管理テーブルT32とが記憶されている。
図7は、ボリューム構成情報T30(T20)の構成を示す。共有メモリ131内のボリューム構成情報T30と各パッケージメモリ122内のボリューム構成情報T20とは、基本的に同一である。そこで、図7に示すテーブルの符号をT30(T20)として、その構成を説明する。ボリューム構成情報T30(T20)は、例えば、LDEV番号C300と、RAIDグループ番号C301と、RAID構成C302と、サイズC303と、タイプC304とを対応付けて管理する。
LDEV番号C300は、記憶制御装置10内の各論理ボリューム152を識別するための識別情報である。RAIDグループ番号C301は、論理ボリューム152が設けられているRAIDグループを特定するための識別情報である。RAID構成C302は、RAIDグループの構成を示す情報である。RAIDグループの構成を示す情報としては、RAIDレベル(例えば、RAID1,RAID5,RAID6等)及びドライブ構成(例えば、3D+1P,6D+2P等)を挙げることができる。ドライブ構成中の「D」とは、データを格納するドライブを示し、「P」とはパリティを格納するドライブを示す。
サイズC303は、論理ボリューム152の記憶容量を示す情報である。タイプC304は、論理ボリューム152を構成する記憶装置151の種類を示す情報である。図7中の「SATA」及び「SAS」はハードディスクドライブの種類を示し、「FM」はフラッシュメモリデバイスであることを示す。なお、図7に示す項目C300〜C304以外の他の項目を管理する構成としてもよい。
図8は、オーナ権管理テーブルT31(T20)及びI/O振り分けテーブルT10の構成を示す。上述のように、共有メモリ131内のオーナ権管理テーブルT31と、各パッケージメモリ122内のオーナ権管理テーブルT21とは、その記憶内容は異なるが、基本的構造は同じである。そこで、図8に示すテーブルの符号をT31(T21)として、その構成を説明する。
オーナ権管理テーブルT31(T21)は、例えば、LDEV番号C310と、実オーナ権を有するマイクロプロセッサパッケージ120の番号C311と、先行オーナ権を有するマイクロプロセッサパッケージ120の番号C312とを対応付けて管理する。
実オーナ権は、LDEV番号C310で特定される論理ボリューム152を用いてコマンドを処理することができる権限を示す。先行オーナ権は、LDEV番号C310で特定される論理ボリューム152を処理対象とするコマンドを受領できる権限を示す。
通常の場合、ある論理ボリューム152の実オーナ権を有するマイクロプロセッサパッケージ120と、その論理ボリューム152の先行オーナ権を有するマイクロプロセッサパッケージ120とは、同一である。しかし、後述する所定の場合には、一時的に、同一の論理ボリューム152に関する先行オーナ権と実オーナ権とが、それぞれ別々のマイクロプロセッサパッケージ120に存在する。
図8に示す例では、マイクロプロセッサパッケージ120(#0)は、2つの論理ボリューム152(LDEV#1001,LDEV#1003)について、実オーナ権及び先行オーナ権を有する。他の論理ボリューム152(LDEV#1002)の実オーナ権及び先行オーナ権は、マイクロプロセッサパッケージ120(#1)が有している。
図8の下側には、I/O振り分けテーブルT10が示されている。上述のように、I/O振り分けテーブルT10は、通信ポートパッケージ110のローカルメモリ113に記憶されており、ホスト30から受信したコマンドの振り分け先(転送先)を決定するために用いられる。
I/O振り分けテーブルT10は、例えば、LDEV番号C100と、先行オーナ権を有するマイクロプロセッサパッケージ120の番号C101とを対応付けて管理する。通信ポートパッケージ110のマイクロプロセッサ112は、通信ポート111で受信されたコマンドから論理ボリューム152の番号(LDEV番号)を取り出し、そのLDEV番号でI/O振り分けテーブルT10を検索する。これにより、マイクロプロセッサ112は、そのコマンドを転送すべきマイクロプロセッサパッケージ120を特定し、その特定されたマイクロプロセッサパッケージ120にコマンドを転送する。
図9は、マイクロプロセッサ121の属性を管理するためのテーブルT23を示す。管理テーブルT23は、各マイクロプロセッサパッケージ120毎に用意される。管理テーブルT23は、例えば、マイクロプロセッサ番号C230と、属性C231とを対応付けて管理する。
マイクロプロセッサ番号C230は、同一マイクロプロセッサパッケージ120内の各マイクロプロセッサ121を識別するための情報である。属性C231は、各マイクロプロセッサ121の使われ方を示す情報である。属性C231の種類としては、例えば、「同期処理」、「非同期処理」、「混在」の3つを挙げることができる。
「同期処理」属性は、ホスト30から発行されるコマンドを処理するためのマイクロプロセッサ121であることを示す属性であり、第1属性と呼び変えることもできる。同期処理属性を有するマイクロプロセッサ121は、「第1マイクロプロセッサ」に該当する。
「非同期処理」属性は、コマンド処理とは直接関係しない別の処理を行うためのマイクロプロセッサ121であることを示す属性である。非同期処理属性は、第2属性と呼び変えることもできる。非同期処理属性を有するマイクロプロセッサ121は、「第2マイクロプロセッサ」に該当する。
コマンド処理と直接関係しない別処理としては、例えば、本実施例の一つの特徴であるボリューム構成情報を再配置する処理、デステージ処理、障害の有無を診断する処理等を挙げることができる。
「混在」属性は、コマンド処理も別処理も両方行うことのできるマイクロプロセッサ121であることを示す属性である。混在属性は、第3属性と呼ぶこともできる。混在属性を有するマイクロプロセッサ121は、「第3マイクロプロセッサ」に該当する。
各マイクロプロセッサパッケージ120内には、同期処理属性のマイクロプロセッサ121が少なくとも一つ以上存在する。如何なる時にもホスト30からのコマンドを処理できるようにするためである。本実施例では、マイクロプロセッサパッケージ120の管理下にある論理ボリューム152へのアクセスが増加するにつれて、同期処理属性を有するマイクロプロセッサ121の数が次第に増加するよう、制御される。アクセスサイズ及びアクセス頻度の増大に応じて、コマンド処理を行うことのできるマイクロプロセッサ121を増加させることにより、応答性能の低下を防止する。
混在属性は、マイクロプロセッサパッケージ120が高負荷状態になった場合でも、コマンド処理以外の別処理を行うことができるように、いずれか一つまたは複数のマイクロプロセッサ121に設定される。マイクロプロセッサ属性の変化については、図14,図15で後述する。
図10は、ジョブ処理の管理を模式的に示す。コマンド処理は、ジョブと呼ばれる処理単位で実施される。ボリューム構成情報T20を使用する必要のあるジョブは、ボリューム構成情報T20にアクセスする前に、ボリューム構成情報T20の使用を宣言して確保しておき、処理を完了した後でボリューム構成情報T20を解放する。
マイクロプロセッサパッケージ120のパッケージメモリ122には、そのマイクロプロセッサパッケージ120が実オーナ権を有する各論理ボリューム152毎に、ジョブキューQ23が設けられる。つまり、マイクロプロセッサパッケージ120の管理下にある各論理ボリューム152のそれぞれについて、専用のジョブキューQ23が予め用意される。
リードコマンドまたはライトコマンドのようなコマンド処理を行うジョブは、処理対象の論理ボリューム152に対応するジョブキューQ23に、自分を他のジョブと識別するためのジョブ番号をエンキューする。これにより、そのジョブは、処理対象の論理ボリューム152を確保する。
ジョブは、ボリューム構成情報T20及び論理ボリューム152を用いて、コマンドを処理する。ジョブは、コマンド処理を完了した後で、ジョブキューQ23から自分のジョブ番号をデキューする。
図10に示す例では、ある論理ボリューム152(#0100)に、2つのジョブ(#1,#5)が接続されており、別の論理ボリューム152(#0105)には、一つのジョブ(#3)が接続されている。つまり、これらの論理ボリューム152(#0100,#0105)は、コマンドの処理のために使用されている。さらに別の論理ボリューム152(#0102)は、どのジョブからも確保されていない。つまり、その論理ボリューム152(#0102)は、今現在使用されていない。
ジョブによって確保されているか否かを問わずに、論理ボリューム152の先行オーナ権を先に移動させることはできる。実オーナ権は、その論理ボリューム152を使用するジョブが一つも無い状態で、移動させる。なお、後述するように、メインフレームからのコマンドを処理する場合には、所定時間を経過したときには、たとえコマンド処理の途中であっても、実オーナ権を移動させる。以下、オープン系ホストからのコマンドを処理する場合を中心に説明する。
図11は、リード処理を示すフローチャートである。ホスト30から発行されるリードコマンドは、通信ポートパッケージ110により受信される(S10)。通信ポートパッケージ110のマイクロプロセッサ112は、I/O振り分けテーブルT10を参照して、そのリードコマンドの転送先を決定する。マイクロプロセッサ112は、決定されたマイクロプロセッサパッケージ120に、そのリードコマンドを転送する(S11)。所定の転送先にコマンドを転送することを、本実施例では、「コマンドを振り分ける。」と表現する場合がある。
通信ポートパッケージ110から送出されたリードコマンドは、スイッチ160を介して、所定のマイクロプロセッサパッケージ120に到着する。そのリードコマンドは、コマンドキューQ20にエンキューされる(S12)。
リードコマンドを受領したマイクロプロセッサパッケージ120内の4個のマイクロプロセッサ121のうち、コマンド処理を担当するマイクロプロセッサ121(同期処理属性を有するマイクロプロセッサ、または混在属性を有するマイクロプロセッサ)は、コマンドキューQ20を周期的に確認する(S13)。マイクロプロセッサ121は、コマンドキューQ20内に未処理のリードコマンドが有ることを発見すると、そのリードコマンドを解析する(S14)。
なお、オープン系ホストからのリードコマンドの場合、リードコマンドは、そのマイクロプロセッサ121の専用領域124に転送されてから、解析される。これに対し、メインフレームからのリードコマンドの場合、そのリードコマンドはパッケージメモリ122に置かれたままの状態で解析される。メインフレームの場合、複数のコマンドがチェーン状に繋がっており、コマンドサイズが大きいめである。
マイクロプロセッサ121は、パッケージメモリ122内のボリューム構成情報T20を参照する(S15)。続いて、マイクロプロセッサ121は、パッケージメモリ122内のキャッシュ管理テーブルT22を参照し、キャッシュヒットまたはキャッシュミスのいずれであるかを判定する(S16)。
キャッシュヒットとは、リードコマンドで要求されているデータがキャッシュメモリ132に格納されていることを意味する。以下、リードコマンドで要求されているデータを、リードデータと呼ぶ。キャッシュミスとは、リードデータがキャッシュメモリ132上に存在しないことを意味する。キャッシュミスであると判定された場合、リードデータは、リードコマンドで指定された論理ボリューム152内から読み出されて、キャッシュメモリ132に格納される。
マイクロプロセッサ121は、通信ポートパッケージ110に、リードデータをキャッシュメモリ132から読み出してホスト30に送信するように、指示する(S17)。通信ポートパッケージ110のマイクロプロセッサ112は、キャッシュメモリ132から読み出したリードデータを、ホスト30に送信する(S18)。
リードデータの送信が完了すると、通信ポートパッケージ110のマイクロプロセッサ113は、リードデータの転送が完了した旨の通知を受領する。マイクロプロセッサ113は、その通知をマイクロプロセッサパッケージ120に転送する(S19)。その通知は、パッケージメモリ122内のコマンドキューQ20に登録される(S20)。
マイクロプロセッサ121は、コマンドキューQ20をチェックして(S21)、転送完了通知を発見し、その通知を専用領域124にコピーする。マイクロプロセッサ121は、その通知により、リードデータの転送が正常に終了したことを確認する。マイクロプロセッサ121は、通信ポートパッケージ110に、「GOOD」を送信する(S22)。なお、S13〜S17までを実行したマイクロプロセッサ121と、S21,S22を実行したマイクロプロセッサ121とは、異なる場合がある。その場合、S21,S22を実行したマイクロプロセッサ121は、S13〜S17を実行したマイクロプロセッサ121に、リードコマンドの処理が完了した旨を通知する。
S13〜S17,S21,S22の一連の処理は、ジョブと呼ばれる単位で実行される。ジョブは多重で実行することができる。つまり、複数のリードコマンドを同時に処理することができる。後述するライトコマンドの場合も同様に、ライトコマンドを処理するためのジョブを複数実行させることができる。
共有メモリ131内のボリューム構成情報T30が更新されていない場合、パッケージメモリ122内のボリューム構成情報T20を使用することができる。従って、図11に示す処理では、マイクロプロセッサ121は、共有メモリ131にアクセスせずに、リードコマンドを処理する。
図12は、ライト処理を示すフローチャートである。通信ポートパッケージ110は、ホスト30からライトコマンドを受信する(S30)。通信ポートパッケージ11は、I/O振り分けテーブルT10を参照して、そのライトコマンドを転送すべきマイクロプロセッサパッケージ120を決定し、そのマイクロプロセッサパッケージ120にライトコマンドを転送する(S31)。
マイクロプロセッサパッケージ120は、受信したライトコマンドをコマンドキューQ20に登録する(S32)。ライトコマンドを受信したマイクロプロセッサパッケージ120内の各マイクロプロセッサ121のうち、コマンド処理用のいずれか一つのマイクロプロセッサ121(同期処理属性を有するマイクロプロセッサ、または混在属性を有するマイクロプロセッサ)は、コマンドキューQ20内でライトコマンドを発見する(S33)。
ライトコマンドを発見したマイクロプロセッサ121は、そのライトコマンドを専用領域124にコピーして解析する(S34)。なお、リード処理で述べたように、メインフレームからのライトコマンドの場合は、パッケージメモリ122に記憶させたままの状態で、解析される。
マイクロプロセッサ121は、パッケージメモリ122内のボリューム構成情報T20を参照する(S35)。マイクロプロセッサ121は、キャッシュ管理テーブルT22を参照し、キャッシュヒットまたはキャッシュミスのいずれであるかを判定する(S36)。
マイクロプロセッサ121は、通信ポートパッケージ110に、ライトデータの転送を要求する(S37)。通信ポートパッケージ110は、ホスト30からのライトデータを、キャッシュメモリ132に転送して記憶させる(S38)。
通信ポートパッケージ110は、ライトデータの転送完了を示す通知を、マイクロプロセッサパッケージ120に転送する(S39)。マイクロプロセッサパッケージ120は、その通知をコマンドキューQ20に記憶させる(S40)。リード処理で述べたと同様に、マイクロプロセッサ121は、その通知を発見し(S42)、通信ポートパッケージ110にGOODを送信する(S42)。
図13は、オーナ権の移動をチェックするための処理を示すフローチャートである。マイクロプロセッサ121は、オーナ権が移動されたことを示す通知を受領したか否かを判定する(S50)。共有メモリ131内のオーナ権管理テーブルT31が更新された場合、共有メモリ131から各パッケージメモリ122に、オーナ権管理テーブルT31が更新された旨が通知される。例えば、マイクロプロセッサパッケージ120内の特定のレジスタに、更新されたことを示すフラグをセットすることにより、オーナ権管理テーブルT31の更新をマイクロプロセッサパッケージ120に通知できる。
更新通知を受領していない場合(S50:NO)、マイクロプロセッサ121は、パッケージメモリ122内のオーナ権管理テーブルT21を参照する(S53)。これに対し、更新通知を受領している場合(S50:YES)、マイクロプロセッサ121は、共有メモリ131にアクセスする。マイクロプロセッサ121は、オーナ権管理テーブルT31に記憶されている情報を読み出して、パッケージメモリ122内のオーナ権管理テーブルT21に記憶させる(S51)。これにより、パッケージメモリ122内のオーナ権管理テーブルT21は、最新の内容に更新される。マイクロプロセッサ121は、更新通知を消去し(S52)、パッケージメモリ122内のオーナ権管理テーブルT21を参照する(S53)。
図14は、同一マイクロプロセッサパッケージ120に存在する複数のマイクロプロセッサ121の属性を制御するための処理を示すフローチャートである。この処理は、各マイクロプロセッサ121のうちいずれかのマイクロプロセッサ121により、定期的にまたは不定期に、実行される。
マイクロプロセッサ121は、同期処理属性を有するマイクロプロセッサ121の数(MPs)を検出する(S60)。マイクロプロセッサ121は、同期処理の負荷(Lsync)を検出する(S61)。同期処理の負荷は、例えば、受領しているコマンドの数、コマンドサイズ、コマンドの種類(シーケンシャルアクセスかランダムアクセスか等)に基づいて算出することができる。
マイクロプロセッサ121は、同期処理の負荷(Lsync)と予め設定される閾値Thとを比較し、同期処理の負荷(Lsync)が閾値Thを超えているか否かを判定する(S62)。同期処理の負荷(Lsync)が閾値Thを超えている場合(S62:YES)、マイクロプロセッサ121は、同期処理属性を有するマイクロプロセッサ121の数MPsが3個未満であるか否かを判定する(S63)。
本実施例では、一つのマイクロプロセッサパッケージ120に含まれるマイクロプロセッサ121の数が4個である場合を説明している。従って、S63では、MPsの値が、マイクロプロセッサの合計数よりも所定値だけ少ない値よりも小さいか否かを判定する。ここで、合計数は“4”、所定値は“1”である。
同期処理属性を有するマイクロプロセッサ121の数MPsが3未満の場合(S63:YES)、マイクロプロセッサ121は、非同期属性を有するマイクロプロセッサ121の中からいずれか一つのマイクロプロセッサ121を選択する。マイクロプロセッサ121は、その選択されたマイクロプロセッサ121の属性を、同期処理に変更させる(S64)。その後、
所定のタイミングで再び本処理が行われる。このように、処理すべきコマンドの数が増大した場合、同期処理属性を有するマイクロプロセッサ121の数が増加される。
コマンドの数等に応じて、同期処理属性を有するマイクロプロセッサ121の数MPsが次第に増加する。同期処理属性を有するマイクロプロセッサ121の数MPsが、3以上になった場合(S64:NO)、マイクロプロセッサ121は、混在属性を有するマイクロプロセッサ121が存在するか否かを判定する(S65)。
上述のように、混在属性とは、コマンド処理を実行することもできるし、さらに、コマンド処理以外の別処理も行うことができる属性である。混在属性のマイクロプロセッサ121が無い場合(S65:NO)、マイクロプロセッサ121は、最後の非同期処理属性を有するマイクロプロセッサ121の属性を、混在属性に変更する(S66)。本実施例では、マイクロプロセッサ番号の若い順番に属性を変更させるため、混在属性に設定されるマイクロプロセッサ121は、最も大きいマイクロプロセッサ番号(#3)を有するマイクロプロセッサ121となる。
このように、マイクロプロセッサパッケージ120の処理負荷が増加した場合には、4個のマイクロプロセッサ121のうち3個のマイクロプロセッサ121の属性が同期処理に設定される。最後の一つのマイクロプロセッサ121は、混在属性に設定される。これにより、コマンド処理以外の別処理も行うことができるようにしている。
コマンドの処理が進んで、同期処理の負荷Lsyncが閾値Th以下になると(S62:NO)、マイクロプロセッサ121は、同期処理属性から非同期処理属性に戻すか否かを判定する(S67)。例えば、非同期処理属性を有するマイクロプロセッサ121の負荷が所定値よりも高い場合、そのマイクロプロセッサ121の属性を同期処理に変更できる。あるいは、同期処理の負荷Lsyncが閾値Th以下となる状態が所定時間以上継続した場合に、マイクロプロセッサ121は、同期処理属性を有するマイクロプロセッサ121を非同期処理属性に変更することができる。
図15は、各マイクロプロセッサ121の属性が変化する様子を示す。図15(a)は、初期状態を示す。初期状態では、一つのマイクロプロセッサ121だけが同期処理属性に設定されており、他の3個のマイクロプロセッサ121は非同期処理属性に設定される。
図15(b)は、同期処理の負荷Lsyncが増大したため、同期処理属性を有するマイクロプロセッサ121が1つ追加された状態を示す。図15(c)は、さらに、同期処理属性を有するマイクロプロセッサ121が1つ追加された状態を示す。これで、4個のマイクロプロセッサ121のうち、3個のマイクロプロセッサ121が同期処理属性を備えたことになる。非同期処理属性を有するマイクロプロセッサ121は、一つのみである。
図15(d)は、非同期処理属性を有する最後のマイクロプロセッサ121が、混在属性に設定された状態を示す。混在属性に変更されたマイクロプロセッサ121は、コマンド処理及び別処理(ボリューム構成情報の再配置処理、診断処理等)の両方を実行できる。
図16は、ボリューム構成情報を適切なマイクロプロセッサパッケージ120に再配置させるための処理の概要を示す。ボリューム構成情報を再配置させる処理では、以下に述べるように、予め設定される所定の条件が成立した場合に、実行される。本処理は、非同期属性処理を有するマイクロプロセッサ121、または、混在属性を有するマイクロプロセッサ121のいずれか一つによって、実行される。
マイクロプロセッサ121は、コピーペアの作成が指示されたか否かを判定し(S70)、コピーペアの作成が指示された場合には(S70:YES)、コピーペアの作成を契機とするボム構成情報の再配置処理を実行させる(S71)。S71に示す処理は、図17〜図20で後述する。
コピーペアの作成が指示されていない場合(S70:NO)、マイクロプロセッサ121は、マイクロプロセッサパッケージ120に障害が発生したか否かを判定する(S72)。マイクロプロセッサパッケージ120に障害が発生していると判定された場合(S72:YES)、マイクロプロセッサ121は、障害発生を契機とするボリューム構成情報の再配置処理を開始させる(S73)。S73の処理については、図21〜図25で後述する。
マイクロプロセッサパッケージ120に障害が発生していない場合(S72:NO)、マイクロプロセッサ121は、負荷分散を行うか否かを判定する(S74)。負荷分散を行う場合(S74:YES)、マイクロプロセッサ121は、負荷分散を契機とするボリューム構成情報の再配置処理を開始させる(S75)。S75の処理については、図26で後述する。
なお、ボリューム構成情報を再配置させる契機として、図16では3種類を挙げたが、それら以外の契機で、ボリューム構成情報を再配置させる構成としてもよい。また、判定の順番は、図16に示す例に限らない。ボリューム構成情報を再配置させる処理を実行するマイクロプロセッサは、非同期処理属性または混在属性のいずれかを備える。
図17は、コピーペアの生成に応じて、ボリューム構成情報を再配置させる処理の一部を示すフローチャートである。図17のフローチャートでは、ボリューム構成情報の移動に先立って、先行オーナ権を移動させる。
ユーザ(システム管理者)は、管理端末20を用いて、コピーペアの作成を指示する。マイクロプロセッサ121は、サービスプロセッサ170からペア作成リストを受領する(S80)。そのペア作成リストには、コピーペアを形成する一方の論理ボリューム152である正ボリュームのLDEV番号と、そのコピーペアを形成する他方の論理ボリューム152である副ボリュームのLDEV番号とが、少なくとも記載されている。
マイクロプロセッサ121は、ペア作成リストを解析し、正ボリューム(PVOL)のオーナ権と、副ボリューム(SVOL)のオーナ権とが、同一のマイクロプロセッサパッケージ120で管理されているか否かを判定する(S81)。正ボリュームのオーナ権と副ボリュームのオーナ権とが同一のマイクロプロセッサパッケージ120内に存在しない場合(S81:NO)、マイクロプロセッサ121は、副ボリュームのオーナ権を移動対象リストに記録させる(S82)。移動対象リストとは、移動させるべき論理ボリュームのボリューム構成情報を管理するためのリストである。ボリューム構成情報は、実オーナ権と結合しており、実オーナ権の存在するマイクロプロセッサパッケージ120にのみ配置可能である。
マイクロプロセッサ121は、ペア作成リストに記載されている全てのコピーペアをチェックしたか否か判定する(S83)。チェックとは、S81の判定及びS82の移動対象リストの作成を意味する。未チェックのコピーペアが残っている場合(S83:NO)、マイクロプロセッサ121は、S81に戻る。
ペア作成リストに記載された全てのコピーペアについてチェックが完了した場合(S83:YES)、マイクロプロセッサ121は、移動対象リストに基づいて、I/O振り分けテーブルT10を更新させる(S84)。マイクロプロセッサ121は、副ボリュームの先行オーナ権を正ボリュームのマイクロプロセッサパッケージ120に移動させる。これにより、副ボリュームに関するコマンドは、正ボリュームを管理するマイクロプロセッサパッケージ120に転送される。
続いて、マイクロプロセッサ121は、共有メモリ131内のオーナ権管理テーブルT31を更新させる(S85)。共有メモリ131上のオーナ権管理テーブルT31において、マイクロプロセッサ121は、副ボリュームの先行オーナ権を、正ボリュームを管理するマイクロプロセッサパッケージ120に移動させる。マイクロプロセッサ121は、共有メモリ131内のオーナ権管理テーブルT31が更新された旨を、他の全てのマイクロプロセッサパッケージ120に通知させる(S86)。その通知が、図13のS50で判定される更新通知である。
図18は、ボリューム構成情報の移動元であるマイクロプロセッサパッケージ120の処理を示す。以下、移動元マイクロプロセッサパッケージ120のマイクロプロセッサ121を、移動元マイクロプロセッサ121と呼び、移動先マイクロプロセッサパッケージ120のマイクロプロセッサ121を移動先マイクロプロセッサ121と呼ぶ場合がある。
移動元マイクロプロセッサ121は、コマンドキューQ20からコマンドを一つ取り出し(S90)、そのコマンドを解析し、パッケージメモリ122内のオーナ権管理テーブルT21を参照する(S91)。
移動元マイクロプロセッサ121は、そのコマンドの処理対象となっている論理ボリューム152について、先行オーナ権を所有しているか否かを判定する(S92)。先行オーナ権は、実オーナ権よりも先に移動される場合はあるが、その逆はない。つまり、移動元マイクロプロセッサ121が先行オーナ権を有しているということは、実オーナ権も有していることを意味する。
移動元マイクロプロセッサ121が先行オーナ権を有している場合(S92:YES)、移動元マイクロプロセッサ121は、処理対象の論理ボリューム152を確保し(S93)、コマンドを処理し(S94)、その論理ボリューム152を解放する(S95)。
移動元マイクロプロセッサ121が先行オーナ権を有していない場合(S92:NO)、S90でコマンドキューQ20から取り出されたコマンドを、移動先マイクロプロセッサパッケージ120に転送する(S96)。既に、先行オーナ権が移動先マイクロプロセッサパッケージ120に配置済であるため、移動対象の論理ボリューム152に関するコマンドを、移動先マイクロプロセッサパッケージ120に送信する。移動元マイクロプロセッサパッケージ120は実オーナ権を有しているので、そのコマンドを処理可能であるが、移動先マイクロプロセッサパッケージ120に転送する。この時点では、移動先マイクロプロセッサパッケージ120は、実オーナ権を取得していないため、転送されてきたコマンドを処理することはできない。
図19は、実オーナ権を移動させる処理を示すフローチャートである。本処理は、移動元マイクロプロセッサ121により定期的に実行される。移動元マイクロプロセッサ121は、ジョブキューQ23を参照し、移動対象の論理ボリューム152に関するジョブの有無を確認する(S100)。
移動対象の論理ボリューム152を使用するジョブが残っている場合(S101:YES)、S100に戻る。移動対象の論理ボリューム152を使用するジョブが残っていない場合(S101:NO)、移動元マイクロプロセッサ121は、パッケージメモリ122内の移動対象の論理ボリューム152に関する管理情報を破棄させる(S102)。移動対象の論理ボリューム152に関する管理情報としては、ボリューム構成情報T21,キャッシュ管理テーブルT22がある。
最後に、移動元マイクロプロセッサ121は、移動対象の論理ボリューム152に関する実オーナ権を、移動先マイクロプロセッサパッケージ120に移動させる(S103)。移動元マイクロプロセッサ121は、実オーナ権が移動元マイクロプロセッサパッケージ120から移動先マイクロプロセッサパッケージ120に移されるように、共有メモリ131に記憶されているオーナ権管理テーブルT31を更新させる。
図20は、移動先マイクロプロセッサパッケージ120の処理を示す。移動先マイクロプロセッサ121は、通信ポートパッケージ110または移動元マイクロプロセッサパッケージ120のいずれかから、コマンドを受領する(S110)。受領したコマンドは、コマンドキューQ20に登録される。
移動先マイクロプロセッサ121は、受領したコマンドを解析し、パッケージメモリ122内のオーナ権管理テーブルT21を参照する(S111)。移動先マイクロプロセッサ121は、そのコマンドの処理対象である論理ボリューム152の実オーナ権を所有しているか否かを判定する(S112)。
移動先マイクロプロセッサパッケージ120が、移動対象の論理ボリューム152に関する実オーナ権を有していない場合(S112:NO)、移動先マイクロプロセッサ121は、所定時間待機する(S113)。つまり、移動先マイクロプロセッサ121は、移動元マイクロプロセッサパッケージ120から実オーナ権が移されてくるまでの間、待機する。
移動先マイクロプロセッサパッケージが実オーナ権を取得した場合(S112:YES)、移動先マイクロプロセッサ121は、移動対象の論理ボリューム152についての管理情報をパッケージメモリ122内に構築する(S114)。つまり、移動先マイクロプロセッサ121は、共有メモリ131内のボリューム構成情報T31及びキャッシュ管理テーブルT32にアクセスし、それらから移動対象の論理ボリューム152に関する情報を取得する。移動先マイクロプロセッサ121は、共有メモリ131から取得した情報に基づいて、パッケージメモリ122内に、移動対象の論理ボリューム152に関するボリューム構成管理情報T21及びキャッシュ管理テーブルT22を構築する。
移動先マイクロプロセッサ121は、コマンドの処理対象である論理ボリューム152について、ジョブキューQ23にジョブ番号を登録することにより、その論理ボリューム152を確保する(S115)。移動先マイクロプロセッサ121は、その論理ボリューム152を用いてコマンドを処理する(S116)。移動先マイクロプロセッサ121は、コマンド処理の完了後に、その論理ボリューム152を解放する(S117)。以上の説明が、コピーペアを契機とするボリューム構成情報の再配置である。次に、図21〜図25に基づいて、障害発生を契機とするボリューム構成情報の再配置を説明する。
図21は、各マイクロプロセッサパッケージ120の障害の有無を診断するための処理を示すフローチャートである。本処理は、非同期処理属性または混在属性を有するいずれかのマイクロプロセッサ121により、定期的に実行される。
なお、各マイクロプロセッサパッケージ120内では、そこに含まれる4個のマイクロプロセッサ121が、互いの状態を互いに監視している。いずれかのマイクロプロセッサ121に障害が発生した場合には、正常な他のマイクロプロセッサ121が、障害の発生したマイクロプロセッサ121に代わって処理を行うようになっている。もしも、一つのマイクロプロセッサパッケージ120の各マイクロプロセッサ121が全て障害で停止した場合、そのマイクロプロセッサパッケージ120の全体が閉塞処理される。閉塞処理とは、障害の発生したパッケージの使用を中止し、システムから切り離すことを意味する。
マイクロプロセッサ121は、診断対象のマイクロプロセッサパッケージ120の状態をチェックする(S130)。マイクロプロセッサ121は、診断対象のマイクロプロセッサパッケージ120が閉塞状態であるか否かを判定する(S131)。
診断対象のマイクロプロセッサパッケージ120が正常な場合(S131:NO)、マイクロプロセッサ121は、記憶制御装置10内の全てのマイクロプロセッサパッケージ120を診断したか否かを判定する(S136)。全てのマイクロプロセッサパッケージ120とは、正確には、そのマイクロプロセッサ121の属するマイクロプロセッサパッケージ120以外の他の各マイクロプロセッサパッケージ120である。
未だ診断していないマイクロプロセッサパッケージ120が残っている場合(S136:NO)、マイクロプロセッサ121は、診断対象のマイクロプロセッサパッケージ120のパッケージ番号を1つ増加させて(S137)、S130に戻る。未診断のマイクロプロセッサパッケージ120が無い場合(S136:YES)、本処理は終了する。
診断対象のマイクロプロセッサパッケージ120が閉塞状態の場合(S131:YES)、マイクロプロセッサ121は、図24に示すテーブルT33を参照し、自分の属するマイクロプロセッサパッケージ120が、肩代わりするマイクロプロセッサパッケージの第1候補であるか否かを判定する(S132)。テーブルT33については、後述する。
肩代わりするマイクロプロセッサパッケージとは、閉塞状態になったマイクロプロセッサパッケージ(以下、障害発生パッケージとも呼ぶ)に代わって、コマンド処理を行うマイクロプロセッサパッケージである。この肩代わりするマイクロプロセッサパッケージを、以下、肩代わりパッケージとも呼ぶ。
マイクロプロセッサ121は、自分の属するマイクロプロセッサパッケージ120が肩代わりパッケージの第1候補になっている場合(S132:YES)、肩代わり処理を開始する(S133)。肩代わり処理の詳細は、図22で後述する。
診断対象のマイクロプロセッサパッケージ120が閉塞状態の場合において(S131:YES)、マイクロプロセッサ121の属するマイクロプロセッサパッケージ120が、肩代わりパッケージの第1候補では無い場合(S132:NO)、マイクロプロセッサ121は、他のマイクロプロセッサパッケージ120の状態をチェックする(S134)。他のマイクロプロセッサパッケージ120とは、本処理を実行しているマイクロプロセッサ121の属するマイクロプロセッサパッケージ120及び障害発生パッケージ以外の、他のマイクロプロセッサパッケージ120である。
マイクロプロセッサ121は、他の各マイクロプロセッサパッケージ120の中に正常なマイクロプロセッサパッケージ120が有るか否かを判定する(S135)。正常なマイクロプロセッサパッケージ120が有る場合(S135:YES)、そのマイクロプロセッサパッケージ120は、マイクロプロセッサ121の属するマイクロプロセッサパッケージ120よりも肩代わり候補の優先度が高いので、本処理を終了する。その後、S135で発見されたマイクロプロセッサパッケージ120内のマイクロプロセッサ121が、図21に示す処理を実行すると、S135で発見されたマイクロプロセッサパッケージ120が肩代わり処理を開始する(S133)。
正常なマイクロプロセッサパッケージ120が無い場合(S135:NO)、マイクロプロセッサ121は、肩代わり処理を開始する(S133)。マイクロプロセッサ121の属するマイクロプロセッサパッケージ120以外に正常に動作しているマイクロプロセッサパッケージ120が存在しないためである。
図22は、肩代わり処理を示すフローチャートである。本処理は、肩代わりパッケージ120内のマイクロプロセッサ121(非同期処理属性または混在属性のいずれかを有するマイクロプロセッサ)により実行される。
マイクロプロセッサ121は、通信ポートパッケージ110内のI/O振り分けテーブルT10を更新させる(S140)。具体的には、障害発生パッケージで管理されている論理ボリューム152に関する先行オーナ権を、肩代わりパッケージに移動させる。
マイクロプロセッサ121は、共有メモリ131内のオーナ権管理テーブルT31を更新させる(S141)。つまり、マイクロプロセッサ121は、オーナ権管理テーブルT31において、障害発生パッケージの管理する論理ボリューム152の先行オーナ権の欄C312に、肩代わりパッケージのパッケージ番号を登録させる。
他の各マイクロプロセッサパッケージ120(肩代わりパッケージ及び障害発生パッケージ以外の全てのマイクロプロセッサパッケージ)は、共有メモリ131内のオーナ権管理テーブルT31の更新に合わせて、パッケージメモリ122内のオーナ権管理テーブルT21を更新させる(S142)。つまり、オーナ権管理テーブルT21の内容を、共有メモリ131内のオーナ権管理テーブルT31の内容に一致させる。
マイクロプロセッサ121は、共有メモリ131内のオーナ権管理テーブルT31において、障害発生パッケージで管理されている論理ボリューム152の実オーナ権の欄C311に、肩代わりパッケージのパッケージ番号を登録させる(S143)。その後、オーナ権管理テーブルT31の更新が、他の各マイクロプロセッサパッケージ120に通知され、各パッケージメモリ122内のオーナ権管理テーブルT21も更新される。
図23は、肩代わりパッケージとなる候補の優先順位を模式的に示す。記憶制御装置10内には、複数の(2つの)クラスタCL#0,CL#1が設けられている。各クラスタCL#0,CL#1には、それぞれ複数ずつのマイクロプロセッサパッケージ120と、電源装置180とが所属する。図23に示す例では、一方のクラスタCL#0に、マイクロプロセッサパッケージ120(#0,#1)と電源装置180(#0)とが属している。他方のクラスタCL#1には、マイクロプロセッサパッケージ120(#2,#3)と電源装置180(#1)とが属している。
肩代わりパッケージとなる候補の優先順位は、信頼性をできるだけ維持するという観点に基づいて決定される。従って、同一クラスタ内の他のマイクロプロセッサパッケージ120よりも、相手方のクラスタ内のマイクロプロセッサパッケージ120の方に、高い優先順位が与えられる。
従って、図23に示すように、本実施例では、相手方クラスタ内の各マイクロプロセッサパッケージ120のうち、対応するマイクロプロセッサパッケージ120(例えば、パッケージ番号の小さいマイクロプロセッサパッケージ)に最も高い優先順位が与えられる。第2順位は、相手方クラスタ内の他のマイクロプロセッサパッケージ120に与えられる。第3順位は、同一クラスタ内の他のマイクロプロセッサパッケージ120に与えられる。
図24は、肩代わりパッケージとなる候補の優先順位を管理するためのテーブルT33を示す。この管理テーブルT33は、例えば、対象となるマイクロプロセッサパッケージのパッケージ番号C330と、肩代わりパッケージの第1候補のパッケージ番号C331と、第2候補のパッケージ番号C332と、第3候補のパッケージ番号C333とを対応付けて管理する。図21に示す処理を実行するマイクロプロセッサ121は、図24に示すテーブルT33を参照することにより、肩代わりパッケージの優先順位を調べることができる。
図25は、図24に示す管理テーブルT33を作成するための処理を示すフローチャートである。本処理は、例えば、記憶制御装置10の起動時、または、記憶制御装置10の構成が変更された場合に、いずれかのマイクロプロセッサ121により実行される。
マイクロプロセッサ121は、本処理の対象となるマイクロプロセッサパッケージ120を一つ選択する(S150)。マイクロプロセッサ121は、選択された対象マイクロプロセッサパッケージ120の属するクラスタとは別のクラスタ内のマイクロプロセッサパッケージ120を1番目の候補として選択する(S151)。
マイクロプロセッサ121は、別のクラスタ内に未だ選択されていないマイクロプロセッサパッケージ120が有るか否かを判定する(S152)。未選択のマイクロプロセッサパッケージ120が有る場合(S152:YES)、マイクロプロセッサ121は、S151に戻って、その未選択のマイクロプロセッサパッケージ120を2番目の候補として選択する。
別のクラスタ内に未選択のマイクロプロセッサパッケージ120が無い場合(S152:NO)、マイクロプロセッサ121は、対象マイクロプロセッサパッケージ120の属するクラスタ内の、他のマイクロプロセッサパッケージ120を3番目の候補として選択する(S153)。マイクロプロセッサ121は、対象マイクロプロセッサパッケージ120の属するクラスタ内に、未選択のマイクロプロセッサパッケージ120が有るか否かを判定する(S154)。未選択のマイクロプロセッサパッケージ120が有る場合(S154:YES)、マイクロプロセッサ121は、S153に戻り、その未選択のマイクロプロセッサパッケージ120を4番目の候補として選択する。
マイクロプロセッサ121は、全てのマイクロプロセッサパッケージ120について肩代わりパッケージの優先順位を設定したか否かを判定する(S155)。未処理のマイクロプロセッサパッケージ120が有る場合(S155:NO)、マイクロプロセッサ121は、対象マイクロプロセッサパッケージのパッケージ番号を1つ増加させて、S150に戻る。全てのマイクロプロセッサパッケージ120について肩代わりパッケージの優先順位を設定した場合(S155:YES)、本処理は終了する。
本実施例では、各マイクロプロセッサパッケージ120が必要とするボリューム構成情報を各マイクロプロセッサパッケージ120内のパッケージメモリ122に記憶し、かつ、所定の場合に、各ボリューム構成情報を再配置する。従って、記憶制御装置10の性能、信頼性及び使い勝手を高めることができる。
本実施例では、ホスト30からのアクセスを停止させることなく、ボリューム構成情報
を適切な場所に配置することができ、使い勝手が向上する。
本実施例では、マイクロプロセッサ121の属性を、コマンド処理用の属性(同期処理属性)と、コマンド処理以外の別処理(ボリューム構成情報の配置、診断処理、デステージ処理等)を行うための属性(非同期処理属性)とに分ける。さらに、本実施例では、マイクロプロセッサパッケージ120の負荷状態に応じて、各マイクロプロセッサ121の属性を動的に変更させることができる。従って、本実施例では、マイクロプロセッサパッケージ120の負荷状態に応じて、マイクロプロセッサパッケージ120に適切な処理能力を与えることができる。
図27,図28に基づいて第2実施例を説明する。本実施例は、第1実施例の変形例に相当する。従って、本実施例では、第1実施例との相違点を中心に説明する。本実施例では、
ホスト30がメインフレームの場合において、I/O振り分けテーブルT10が更新される前に受領していた、未処理のコマンドの取り扱い方法を述べる。
図27は、移動元マイクロプロセッサパッケージ120で実行される処理を示すフローチャートである。本処理は、図18に示すオープン系ホストの場合の処理に対応している。
マイクロプロセッサ121は、コマンドキューQ21から、未処理のコマンドを取り出す(S200)。マイクロプロセッサ121は、コマンドを解析し、パッケージメモリ122上のオーナ権管理テーブルT21を参照する(S201)。
マイクロプロセッサ121は、そのコマンドが処理対象としている論理ボリューム152の実オーナ権を有するか否かを判定する(S202)。実オーナ権を有している場合(S202:YES)、マイクロプロセッサ121は、処理対象の論理ボリューム152を確保し(S203)、コマンドを処理し(S204)、その論理ボリューム152を解放する(S205)。
マイクロプロセッサ121は、予め設定される所定時間が経過したか否かを判定する(S206)。つまり、タイムアウトしたか否かを判定する。所定時間が経過していない場合(S206:YES)、本処理を終了する。マイクロプロセッサ121は、コマンドキューQ21から別の新たなコマンドを取り出して、上述のステップを繰り返す。
所定時間が経過した場合(S206:NO)、マイクロプロセッサ121は、S207に移り、I/O振り分けテーブルT10が更新されているか否かを確認する。I/O振り分けテーブルT10が更新されていない場合(S207:NO)、マイクロプロセッサ121は、I/O振り分けテーブルT10を更新させる(S208)。つまり、処理対象の論理ボリューム152の先行オーナ権を、移動先マイクロプロセッサパッケージ120に変更させる。
I/O振り分けテーブルT10が更新されている場合(S207:YES)、マイクロプロセッサ121は、メインフレームであるホスト30にリトライを要求する(S209)。これにより、ホスト30は、改めてコマンドを発行する。その再発行されたコマンドは、通信ポートパッケージ110によって、移動先のマイクロプロセッサパッケージ120に転送される。
オーナ権を強制的に移動させるための所定時間(S206)は、例えば、処理対象の論理ボリューム152の先行オーナ権が移動先マイクロプロセッサパッケージ120に移動されてからの経過時間として定義することができる。つまり、パッケージメモリ122内のオーナ権管理テーブルT21が更新された時を開始時とし、その開始時からの経過時間として設定できる。
図28は、移動先マイクロプロセッサパッケージ120で実行される処理を示すフローチャートである。本処理は、図20に示す処理に対応する。移動先マイクロプロセッサ121は、メインフレームであるホスト30から発行されるコマンド(新規コマンド及び再発行コマンド)を受領する(S220)。本実施例では、移動元マイクロプロセッサパッケージ120から移動先マイクロプロセッサパッケージ120にコマンドが転送されることはない。受領したコマンドは、コマンドキューQ21に登録される。
移動先マイクロプロセッサ121は、受領したコマンドを解析し、パッケージメモリ122内のオーナ権管理テーブルT21を参照する(S221)。移動先マイクロプロセッサ121は、そのコマンドの処理対象である論理ボリューム152の実オーナ権を所有しているか否かを判定する(S222)。
移動先マイクロプロセッサパッケージ120が、対象の論理ボリューム152に関する実オーナ権を有していない場合(S222:NO)、移動先マイクロプロセッサ121は、所定時間待機する(S223)。
移動先マイクロプロセッサパッケージが実オーナ権を取得した場合(S222:YES)、移動先マイクロプロセッサ121は、対象の論理ボリューム152についての管理情報をパッケージメモリ122内に構築する(S224)。つまり、移動先マイクロプロセッサ121は、共有メモリ131から取得した情報に基づいて、パッケージメモリ122内に、対象の論理ボリューム152に関するボリューム構成管理情報T21及びキャッシュ管理テーブルT22を構築する。
移動先マイクロプロセッサ121は、対象の論理ボリューム152を確保し(S225)、その論理ボリューム152を用いてコマンドを処理し(S226)、コマンド処理の完了後にその論理ボリューム152を解放する(S227)。
このように構成される本実施例も第1実施例と同様の効果を奏する。さらに、本実施例によれば、オープン系ホストの技術的性質とメインフレームの技術的性質との差異に応じて、ボリューム構成情報を移動させることができ、記憶制御装置1の使い勝手が向上する。
オープン系ホストの場合は、そのコマンドサイズが相対的に小さいため、移動元マイクロプロセッサパッケージは、先行オーナ権を失った後において、受信済のコマンドを移動先マイクロプロセッサパッケージに転送する。
これに対し、メインフレームの場合は、複数のコマンドが連なっており、そのサイズが大きい。そこで、移動元マイクロプロセッサパッケージは、先行オーナ権を失った後においても、受信済のコマンドを引き続き処理する。しかし、所定時間内にボリューム構成情報の移動を完了させるために、所定時間経過後には、受信済コマンドの処理を中止して、ホスト30(メインフレーム)にコマンドの再発行を要求する。
なお、本発明は、上述した実施例に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。例えば、各実施例を適宜組み合わせる構成としてもよい。

Claims (13)

  1. ホストコンピュータ(2,30)と記憶装置(8,151)との間のデータ入出力を制御する記憶制御装置(1,10)であって、
    前記ホストコンピュータと通信するための第1通信部(3,110)であって、前記ホストコンピュータからのコマンドを振り分けるための振り分けテーブル(T10)を記憶する第1通信部と、
    前記記憶装置と通信するための第2通信部(4,140)と、
    前記第1通信部及び前記第2通信部を用いて、前記ホストコンピュータと前記記憶装置との間のデータ入出力を制御する複数のマイクロプロセッサ(6A,121)と、
    前記各マイクロプロセッサによって使用される共有メモリ(5,130)と、
    前記各マイクロプロセッサ毎に配置される複数のローカルメモリ(6B,122)と、
    を備え、
    前記共有メモリには、複数の論理ボリュームを管理するための第1ボリューム構成情報(T30)が記憶されており、
    前記各ローカルメモリには、前記第1ボリューム構成情報のうち、当該ローカルメモリに対応するマイクロプロセッサにより管理される管理対象の論理ボリュームに関する情報のコピーである、第2ボリューム構成情報(T20)が記憶されており、
    予め設定される所定の条件が成立した場合に、移動元の前記ローカルメモリに記憶されている前記第2ボリューム構成情報を、移動先の前記ローカルメモリに移動させる、
    記憶制御装置。
  2. 前記各マイクロプロセッサは、前記マイクロプロセッサをそれぞれ複数ずつ含む複数のマイクロプロセッサパッケージのいずれかに含まれており、
    前記各マイクロプロセッサパッケージは、前記ホストコンピュータから発行されるコマンドを処理するための第1マイクロプロセッサと、前記コマンドの処理とは別の処理を担当する第2マイクロプロセッサとを含んでおり、
    共通の前記マイクロプロセッサパッケージに含まれる前記各マイクロプロセッサは、そのマイクロプロセッサパッケージ内の前記ローカルメモリを共同使用し、
    前記共有メモリには、前記各論理ボリュームの使用権限を示す第1使用権限情報が予め記憶されており、
    前記第1使用権限情報では、前記論理ボリュームに関するコマンドを受信する権限を示す受信権情報と、前記論理ボリュームを用いて前記コマンドを処理する権限を示す実行権情報とが、前記各論理ボリューム毎に予め対応付けられており、
    前記各ローカルメモリには、前記第1使用権限情報のコピーである、第2使用権限情報が記憶されており、
    前記振り分けテーブルには、前記第1使用権限情報のうち前記各論理ボリュームに関する前記受信権情報のコピーが記憶されており、
    (1)前記各マイクロプロセッサパッケージのうち所定のマイクロプロセッサパッケージ内の前記第2マイクロプロセッサは、前記所定の条件が設立した場合に、
    (1-1)前記振り分けテーブルに記憶されている前記各受信権情報のうち、移動対象の論理ボリュームに関する受信権情報を、移動元のマイクロプロセッサパッケージから移動先のマイクロプロセッサパッケージに切り替えさせて、前記振り分けテーブルを更新し、
    (1-2)前記第1使用権限情報において、前記移動対象の論理ボリュームに関する前記受信権情報を、前記移動元のマイクロプロセッサパッケージから前記移動先のマイクロプロセッサパッケージに切り替えさせて、前記第1使用権限情報を更新し、
    (1-3)前記各第2使用権限情報を、更新された前記第1使用権限情報に一致させ、
    (2)前記第1通信制御部は、前記ホストコンピュータから発行されるコマンドを、更新された前記振り分けテーブルに基づいて、前記移動先のマイクロプロセッサパッケージに送信し、
    (3)前記移動元のマイクロプロセッサパッケージは、
    (3-1)前記受信権情報が前記移動先のマイクロプロセッサパッケージに移動済の場合は、未処理のコマンドを蓄積するためのキューから取り出されるコマンドを、前記移動先のマイクロプロセッサパッケージに転送させ、
    (3-2)処理中のコマンドが全て無くなった場合に、前記実行権情報を前記移動先のマイクロプロセッサパッケージに移動させ、
    (3-3)前記移動対象の論理ボリュームに対応する前記第2ボリューム構成情報を、前記移動元のマイクロプロセッサパッケージ内の前記ローカルメモリから削除し、
    (4)前記移動先のマイクロプロセッサパッケージは、
    (4-1)前記実行権情報を前記移動元のマイクロプロセッサパッケージから取得するまでの間、前記第1通信部または前記移動元のマイクロプロセッサパッケージから受信されるコマンドを処理待ちコマンドとして蓄積し、
    (4-2)前記実行権情報を前記移動元のマイクロプロセッサパッケージから取得した場合は、前記共有メモリ内の前記第1ボリューム構成情報に基づいて、前記移動対象の論理ボリュームに関する第2ボリューム構成情報を前記ローカルメモリに記憶させ、
    (4-3)前記第2ボリューム構成情報を用いて、処理待ちの前記コマンドを処理し、
    さらに、
    (5)前記移動元のマイクロプロセッサパッケージの対応するホストコンピュータがメインフレームである場合において、
    (5-1)前記実行権情報が前記移動先のマイクロプロセッサパッケージに移動済の場合、または、前記移動先のマイクロプロセッサパッケージに前記実行権情報を移動させるために設定される所定時間を経過した場合、のいずれかの場合に、
    (5-2)未処理のコマンドを蓄積するための前記キューから取り出されるコマンドの処理を中止し、中止された前記コマンドの再発行を前記ホストコンピュータに要求する、
    請求項1に記載の記憶制御装置。
  3. 前記各論理ボリュームの使用権限を示す使用権限情報が前記各ローカルメモリに予め記憶されており、
    前記使用権限情報では、前記論理ボリュームに関するコマンドを受信する権限を示す受信権情報と、前記論理ボリュームを用いて前記コマンドを処理する権限を示す実行権情報とが、前記各論理ボリューム毎に予め対応付けられており、
    予め設定される所定の条件が成立した場合、最初に、移動対象の論理ボリュームに関する前記受信権情報を移動先のマイクロプロセッサに対応付け、次に、前記移動対象の論理ボリュームに関する前記実行権情報を前記移動先のマイクロプロセッサに対応付けることにより、前記移動先のマイクロプロセッサの使用する前記ローカルメモリに、前記移動対象の論理ボリュームに関する前記第2ボリューム構成情報を移動させる、
    請求項1に記載の記憶制御装置。
  4. 前記共有メモリには、前記各論理ボリュームの使用権限を示す第1使用権限情報が予め記憶されており、
    前記第1使用権限情報では、前記論理ボリュームに関するコマンドを受信する権限を示す受信権情報と、前記論理ボリュームを用いて前記コマンドを処理する権限を示す実行権情報とが、前記各論理ボリューム毎に予め対応付けられており、
    前記各ローカルメモリには、前記第1使用権限情報のコピーである、第2使用権限情報が記憶されており、
    前記振り分けテーブルには、前記第1使用権限情報のうち前記各論理ボリュームに関する前記受信権情報のコピーが記憶されており、
    (1)前記各マイクロプロセッサのうち所定のマイクロプロセッサは、前記所定の条件が設立した場合に、
    (1-1)前記振り分けテーブルに記憶されている前記各受信権情報のうち、移動対象の論理ボリュームに関する受信権情報を、移動元のマイクロプロセッサから移動先のマイクロプロセッサに切り替えさせて、前記振り分けテーブルを更新し、
    (1-2)前記第1使用権限情報において、前記移動対象の論理ボリュームに関する前記受信権情報を、前記移動元のマイクロプロセッサから前記移動先のマイクロプロセッサに切り替えさせて、前記第1使用権限情報を更新し、
    (1-3)前記各第2使用権限情報を、更新された前記第1使用権限情報に一致させ、
    (2)前記第1通信制御部は、前記ホストコンピュータから発行されるコマンドを、更新された前記振り分けテーブルに基づいて、前記移動先のマイクロプロセッサに送信し、
    (3)前記移動元のマイクロプロセッサは、
    (3-1)前記受信権情報が前記移動先のマイクロプロセッサに移動済の場合は、未処理のコマンドを前記移動先のマイクロプロセッサに転送させ、
    (3-2)処理中のコマンドが全て無くなった場合に、前記実行権情報を前記移動先のマイクロプロセッサに移動させ、
    (3-3)前記移動対象の論理ボリュームに対応する前記第2ボリューム構成情報を、前記移動元のマイクロプロセッサの使用する前記ローカルメモリから削除し、
    (4)前記移動先のマイクロプロセッサは、
    (4-1)前記実行権情報を前記移動元のマイクロプロセッサから取得するまでの間、前記第1通信部または前記移動元のマイクロプロセッサから受信されるコマンドを処理待ちコマンドとして蓄積し、
    (4-2)前記実行権情報を前記移動元のマイクロプロセッサから取得した場合は、前記共有メモリ内の前記第1ボリューム構成情報に基づいて、前記移動対象の論理ボリュームに関する第2ボリューム構成情報を前記ローカルメモリに記憶させ、
    (4-3)前記第2ボリューム構成情報を用いて、処理待ちの前記コマンドを処理する、
    請求項1に記載の記憶制御装置。
  5. (5)前記移動元のマイクロプロセッサの対応する前記ホストコンピュータがメインフレームである場合、前記移動元のマイクロプロセッサは、
    (5-1)前記実行権情報が前記移動先のマイクロプロセッサに移動済の場合、または、前記移動先のマイクロプロセッサに前記実行権情報を移動させるために設定される所定時間を経過した場合、のいずれかの場合に、
    (5-2)前記受信権情報を前記移動先のマイクロプロセッサに移動させるよりも前に受信され、かつ、処理が完了されていないコマンドの処理を中止し、その中止されたコマンドの再発行を前記ホストコンピュータに要求する、
    請求項4に記載の記憶制御装置。
  6. 前記各マイクロプロセッサは、前記マイクロプロセッサをそれぞれ複数ずつ含む複数のマイクロプロセッサパッケージのいずれかに含まれており、
    前記各マイクロプロセッサパッケージは、前記ホストコンピュータから発行されるコマンドを処理するための第1マイクロプロセッサと、前記コマンドの処理とは別の処理を担当する第2マイクロプロセッサとを含んでおり、
    共通の前記マイクロプロセッサパッケージに含まれる前記各マイクロプロセッサは、そのマイクロプロセッサパッケージ内の前記ローカルメモリを共同使用し、
    前記各マイクロプロセッサパッケージのうち所定のマイクロプロセッサパッケージ内の前記第2マイクロプロセッサは、前記所定の条件が成立した場合に、移動元の前記ローカルメモリに記憶されている前記第2ボリューム構成情報を、移動先の前記ローカルメモリに移動させる、
    請求項1に記載の記憶制御装置。
  7. 処理すべきコマンドの数に応じて、前記第1マイクロプロセッサの数を増加させる、請求項6に記載の記憶制御装置。
  8. 前記第1マイクロプロセッサの数が予め設定される上限値に達した場合において、前記第2プロセッサを、前記コマンドの処理および前記別の処理の両方を担当することのできる第3マイクロプロセッサに変化させる、請求項7に記載の記憶制御装置。
  9. 前記所定の条件が成立した場合とは、コピーペアを生成する場合、または、前記マイクロプロセッサに障害が発生した場合、または、前記各マイクロプロセッサ間で負荷を分散させる場合、の少なくともいずれか一つである、請求項1に記載の記憶制御装置。
  10. 前記所定の条件が成立した場合とは、前記各論理ボリュームのうちのいずれか複数を用いてコピーペアを生成する場合であり、
    前記コピーペアの一方の論理ボリュームに関する第2ボリューム構成情報と、前記コピーペアの他方の論理ボリュームに関する第2ボリューム構成情報とが、同一のローカルメモリ内に存在するように、
    前記一方の論理ボリュームに対応するローカルメモリから、前記他方の論理ボリュームに対応するローカルメモリに、前記第2ボリューム構成情報を移動させる、請求項1に記載の記憶制御装置。
  11. 前記所定の条件が成立した場合とは、前記マイクロプロセッサに障害が発生した場合であり、
    前記障害の発生したマイクロプロセッサで管理されている前記論理ボリュームに関する前記第2ボリューム構成情報を、前記障害の発生した前記マイクロプロセッサに代わって処理を行うためのマイクロプロセッサに対応付けられている前記ローカルメモリに移動させる、請求項1に記載の記憶制御装置。
  12. 前記所定の条件が成立した場合とは、前記各マイクロプロセッサ間で負荷を分散させる場合であり、
    予め設定される所定値以上の負荷を有する高負荷マイクロプロセッサから、前記所定値未何の負荷を有する低負荷マイクロプロセッサに、前記第2ボリューム構成情報を移動させる、請求項1に記載の記憶制御装置。
  13. ホストコンピュータ(2,30)と記憶装置(8,151)との間のデータ入出力を制御する記憶制御装置(1,10)を制御するための方法であって、
    前記ホストコンピュータと通信するための第1通信部(3,110)であって、前記ホストコンピュータからのコマンドを振り分けるための振り分けテーブル(T10)を記憶する第1通信部と、前記記憶装置と通信するための第2通信部(4,140)と、前記第1通信部及び前記第2通信部を用いて、前記ホストコンピュータと前記記憶装置との間のデータ入出力を制御する複数のマイクロプロセッサ(6A,121)と、前記各マイクロプロセッサによって使用される共有メモリ(5,130)であって、複数の論理ボリュームを管理するための第1ボリューム構成情報(T30)が少なくとも記憶されている共有メモリと、前記各マイクロプロセッサ毎に配置される複数のローカルメモリ(6B,122)と、を備えており、
    前記各ローカルメモリには、前記第1ボリューム構成情報のうち、当該ローカルメモリに対応するマイクロプロセッサにより管理される管理対象の論理ボリュームに関する情報のコピーである、第2ボリューム構成情報(T20)が記憶されており、さらに、
    前記各ローカルメモリには、前記各論理ボリュームの使用権限を示す使用権限情報が予め記憶されており、
    前記使用権限情報では、前記論理ボリュームに関するコマンドを受信する権限を示す受信権情報と、前記論理ボリュームを用いて前記コマンドを処理する権限を示す実行権情報とが、前記各論理ボリューム毎に予め対応付けられており、
    予め設定される所定の条件が成立したか否かを判定し、
    前記所定の条件が成立した場合には、移動対象の論理ボリュームに関する前記受信権情報を移動先のマイクロプロセッサに対応付け、
    前記移動対象の論理ボリュームに関する前記実行権情報を前記移動先のマイクロプロセッサに対応付け、
    前記実行権情報の移動元のマイクロプロセッサにより使用されるローカルメモリから、前記移動対象の論理ボリュームに関する前記第2ボリューム構成情報を削除し、
    前記実行権情報の移動先のマイクロプロセッサにより使用されるローカルメモリに、前記移動対象の論理ボリュームに関する前記第2ボリューム構成情報を前記共有メモリからコピーさせる、
    記憶制御装置の制御方法。
JP2011528117A 2009-06-18 2009-06-18 記憶制御装置及び記憶制御装置の制御方法 Expired - Fee Related JP5236078B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2009/002776 WO2010146629A1 (en) 2009-06-18 2009-06-18 Storage control apparatus and method of controlling storage control apparatus

Publications (2)

Publication Number Publication Date
JP2012514776A true JP2012514776A (ja) 2012-06-28
JP5236078B2 JP5236078B2 (ja) 2013-07-17

Family

ID=41503747

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011528117A Expired - Fee Related JP5236078B2 (ja) 2009-06-18 2009-06-18 記憶制御装置及び記憶制御装置の制御方法

Country Status (3)

Country Link
US (1) US8285943B2 (ja)
JP (1) JP5236078B2 (ja)
WO (1) WO2010146629A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014109045A1 (ja) * 2013-01-11 2014-07-17 株式会社日立製作所 ストレージ装置及びデータ管理方法
JP2015529862A (ja) * 2012-10-04 2015-10-08 株式会社日立製作所 計算機システム及び計算機システムのボリューム管理方法
JP2019164510A (ja) * 2018-03-19 2019-09-26 株式会社日立製作所 ストレージシステム及びio処理の制御方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7408357B2 (ja) 2019-11-15 2024-01-05 キオクシア株式会社 メモリシステム及びその制御方法
JP7313321B2 (ja) * 2020-08-25 2023-07-24 株式会社日立製作所 ストレージシステムおよびデータ管理方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004151761A (ja) * 2002-10-28 2004-05-27 Hitachi Ltd 記憶装置の制御装置、及び記憶装置の制御装置の制御方法
JP2006277487A (ja) * 2005-03-30 2006-10-12 Hitachi Ltd ディスクアレイ装置およびその制御方法
JP2008269424A (ja) * 2007-04-23 2008-11-06 Hitachi Ltd ストレージシステム、ストレージシステム管理方法、及び計算機システム
JP2008299434A (ja) * 2007-05-29 2008-12-11 Hitachi Ltd 記憶制御装置及びその制御方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4794194B2 (ja) 2005-04-01 2011-10-19 株式会社日立製作所 ストレージシステム及び記憶制御方法
JP2007219571A (ja) 2006-02-14 2007-08-30 Hitachi Ltd 記憶制御装置及びストレージシステム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004151761A (ja) * 2002-10-28 2004-05-27 Hitachi Ltd 記憶装置の制御装置、及び記憶装置の制御装置の制御方法
JP2006277487A (ja) * 2005-03-30 2006-10-12 Hitachi Ltd ディスクアレイ装置およびその制御方法
JP2008269424A (ja) * 2007-04-23 2008-11-06 Hitachi Ltd ストレージシステム、ストレージシステム管理方法、及び計算機システム
JP2008299434A (ja) * 2007-05-29 2008-12-11 Hitachi Ltd 記憶制御装置及びその制御方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015529862A (ja) * 2012-10-04 2015-10-08 株式会社日立製作所 計算機システム及び計算機システムのボリューム管理方法
WO2014109045A1 (ja) * 2013-01-11 2014-07-17 株式会社日立製作所 ストレージ装置及びデータ管理方法
US9052827B1 (en) 2013-01-11 2015-06-09 Hitachi, Ltd. Storage apparatus and data management method
JP2019164510A (ja) * 2018-03-19 2019-09-26 株式会社日立製作所 ストレージシステム及びio処理の制御方法
US10783096B2 (en) 2018-03-19 2020-09-22 Hitachi, Ltd. Storage system and method of controlling I/O processing

Also Published As

Publication number Publication date
JP5236078B2 (ja) 2013-07-17
US8285943B2 (en) 2012-10-09
WO2010146629A1 (en) 2010-12-23
US20110167232A1 (en) 2011-07-07

Similar Documents

Publication Publication Date Title
US9836243B1 (en) Cache management techniques
CN107247565B (zh) 存储控制装置以及虚拟卷的控制方法
US7581061B2 (en) Data migration using temporary volume to migrate high priority data to high performance storage and lower priority data to lower performance storage
US8108644B2 (en) Storage control apparatus, storage system, and virtual volume control method
JP4990322B2 (ja) データ移動管理装置及び情報処理システム
JP5438827B2 (ja) 記憶制御装置及び仮想ボリュームの制御方法
US8959286B2 (en) Hybrid storage subsystem with mixed placement of file contents
US7653792B2 (en) Disk array apparatus including controller that executes control to move data between storage areas based on a data protection level
US7249218B2 (en) Method, system, and program for managing an out of available space condition
US6961818B1 (en) Method, system and computer program product for managing data in a mirrored cache using an access balancing technique
US20110066801A1 (en) Storage system and method for controlling the same
US20090193207A1 (en) Computer system, remote copy method and first computer
US8683260B1 (en) Managing ownership of logical volumes
JP2009043030A (ja) ストレージシステム
US11740823B2 (en) Storage system and storage control method
JP5236078B2 (ja) 記憶制御装置及び記憶制御装置の制御方法
JP2009122873A (ja) ストレージシステム間でのリモートコピーを管理する装置
US11809720B2 (en) Techniques for storage management
US7958324B2 (en) Computer system and command execution frequency control method
US20090164608A1 (en) File sharing system and file sharing system setting method
US11822801B2 (en) Automated uniform host attachment
US11914904B2 (en) Autonomous storage provisioning
US10235053B1 (en) Method and system for using host driver for flexible allocation fast-sideways data movements
JP5597266B2 (ja) ストレージシステム
WO2014087465A1 (ja) ストレージ装置及びストレージ装置移行方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121017

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121030

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121128

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130326

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5236078

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20160405

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees