JP2020047105A - ストレージ制御装置および障害トラックの回復方法 - Google Patents

ストレージ制御装置および障害トラックの回復方法 Download PDF

Info

Publication number
JP2020047105A
JP2020047105A JP2018176437A JP2018176437A JP2020047105A JP 2020047105 A JP2020047105 A JP 2020047105A JP 2018176437 A JP2018176437 A JP 2018176437A JP 2018176437 A JP2018176437 A JP 2018176437A JP 2020047105 A JP2020047105 A JP 2020047105A
Authority
JP
Japan
Prior art keywords
storage
track
control unit
page
area
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.)
Pending
Application number
JP2018176437A
Other languages
English (en)
Inventor
良 玉城
Makoto Tamaki
良 玉城
晋太郎 伊藤
Shintaro Ito
晋太郎 伊藤
寺尾 壽啓
Hisayoshi Terao
壽啓 寺尾
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 JP2018176437A priority Critical patent/JP2020047105A/ja
Priority to US16/295,858 priority patent/US10990491B2/en
Publication of JP2020047105A publication Critical patent/JP2020047105A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • 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/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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/0673Single storage device
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency

Abstract

【課題】自身で再構築不能なデータを消失させることなく、物理ストレージに正常にライトされない領域を回復させる。【解決手段】I/O結果受領部11は、I/O制御部E0からのI/O依頼に対する論理デバイスへのI/O結果をストレージデバイス制御部T0から受領し、フォーマット対象判定部12は、障害トラックが制御領域または未割り当て領域に対応する場合、その障害トラックをフォーマット対象とし、フォーマット依頼部13は、フォーマット対象とされた障害トラックに割り当てられらページに対応するストレージデバイスD0〜D3の記憶領域をフォーマットするようにストレージデバイス制御部T0に依頼する。【選択図】図1

Description

本発明は、ストレージ制御装置および障害トラックの回復方法に関する。
ストレージ容量の拡張および管理の利便性の観点から、スケールアウト型ストレージが注目されている。スケールアウト型ストレージでは、複数の物理ストレージのリソースを論理的な実容量プールとして一元化し、ホストからの要求に応じて実容量プールから仮想容量ボリュームを割り当てることが行われている。
特許文献1には、冗長化されたデータを分散して管理する複数のディスク装置によって実現される仮想ボリューム内に設けられる論理ボリュームを管理し、仮想ボリュームの領域に異常を検出したとき、この領域が、論理ボリュームが割り当てられている領域か否かを判断し、仮想ボリュームの論理ボリュームが割り当てられていない領域に異常を検出した場合に、この領域を初期化する技術が開示されている。
特開2011−3046号公報
しかしながら、ホストからのライト要求がストレージ装置で受け付けられた時に、そのライト要求とは非同期に物理ストレージへのライトが実施される。このとき、ストレージ装置では、物理ストレージへのライトに失敗することがあり、ホストからのライト要求に対して、物理ストレージに正常にライトされないことがあった。
また、特許文献1に開示された技術は、RAID(Redundant Array of Inexpensive Disks)システムにおいて、いずれか1つのディスク装置が故障した時に、他の正常なディスク装置に格納されている冗長データから、その故障したディスク装置のデータを回復させるものであり、物理ストレージに正常にライトされない領域を回復させる方法については言及されていない。
本発明は、上記事情に鑑みなされたものであり、その目的は、自身で再構築が不可能なデータを消失させることなく、物理ストレージに正常にライトされない領域を回復可能なストレージ制御装置および障害トラックの回復方法を提供することにある。
上記目的を達成するため、第1の観点に係るストレージ制御装置は、キャッシュ時の最小単位であるトラック単位でキャッシュしたデータを物理ストレージにライトするストレージ制御装置であって、前記物理ストレージへのライト時に障害が発生した障害トラックが制御領域または未割り当て領域に対応するかどうかを判定し、前記障害トラックが前記制御領域または前記未割り当て領域に対応する場合、前記制御領域または前記未割り当て領域に対応する前記物理ストレージの記憶領域をフォーマットする。
本発明によれば、自身で再構築不能なデータを消失させることなく、物理ストレージに正常にライトされない領域を回復させることができる。
図1は、実施形態に係るストレージ制御装置が適用されるストレージシステムの構成を示すブロック図である。 図2は、実施形態に係るストレージ制御装置の障害トラック発生時の状態を示すブロック図である。 図3は、実施形態に係るストレージ制御装置の障害トラック回復時の状態を示すブロック図である。 図4は、実施形態に係るストレージ制御装置の障害トラック発生から回復までの動作を示すフローチャートである。 図5は、実施形態に係るストレージ制御装置の障害トラック発生時の制御情報更新処理を示すフローチャートである。 図6は、実施形態に係るストレージ制御装置の障害トラック発生時の制御情報更新処理を示すフローチャートである。 図7は、実施形態に係るストレージ制御装置の障害トラック回復処理を示すフローチャートである。 図8は、実施形態に係るストレージ制御装置の障害トラック回復処理を示すフローチャートである。 図9は、図1のキャッシュ上トラック管理テーブルの一例を示す図である。 図10は、図1のボリューム管理テーブルの一例を示す図である。 図11は、図1のページ管理テーブルの一例を示す図である。 図12は、図1の論理デバイス管理テーブルの一例を示す図である。 図13は、図1のデバイスグループ管理テーブルの一例を示す図である。 図14は、図1のストレージデバイス管理テーブルの一例を示す図である。 図15は、実施形態に係るストレージ制御装置のハードウェア構成を示すブロック図である。
実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲に係る発明を限定するものではなく、また、実施形態の中で説明されている諸要素およびその組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、実施形態に係るストレージ制御装置が適用されるストレージシステムの構成を示すブロック図である。なお、以下の説明では、スケールアウト型ストレージを例にとるが、スケールアップ型ストレージなどのその他のストレージであってもよい。以下の実施形態は、SDS(Software Defined Storage)に用いることができる。
図1において、ストレージシステムは、ノードN0〜N3を備える。ノードN0〜N3は、SAN(Storage Area Network)またはNAS(Network Attached Storage)などのネットワーク型ストレージ環境に設けることができる。各ノードN0〜N3は、例えば、サーバに設けられる。ノード数は、例えば、数十から数千に渡って任意に設定することができる。各ノードN0〜N3は、パブリックネットワークW0を介してホストHS0、HS0に接続されている。また、各ノードN0〜N3は、クラスタネットワークW1を介して互いに接続されている。
各ノードN0〜N3は、クラスタ制御部K0〜K3、I/O制御部E0〜E3、ストレージデバイス制御部T0〜T3およびストレージデバイスD0〜D3を備える。ノードN0は、I/O制御シェアドメモリSM0を備える。ノードN1〜N3もI/O制御シェアドメモリを備えるが、図1では、ノードN1〜N3のI/O制御シェアドメモリは省略した。
各クラスタ制御部K0〜K3は、各ホストHS0、HS0に割り当てられたボリュームがどのノードN0〜N3に対応するかを管理する。このとき、各ホストHS0、HS0は、全てのノードN0〜N3を一元的に認識することができる。
各ストレージデバイスD0〜D3は、データを物理的に記憶する物理ストレージである。各ストレージデバイスD0〜D3は、例えば、SSD(Solid State Drive)またはハードディスク装置である。ストレージデバイスD0〜D3は、ノードN0〜N3ごとに複数設けるようにしてもよい。ストレージデバイスD0〜D3は冗長化されている。例えば、ストレージデバイスD0〜D3の記憶領域は、デバイスグループG0、G1にグループ化される。このとき、デバイスグループG0には、ストレージデバイスD2、D3の記憶領域を割り当て、デバイスグループG1には、ストレージデバイスD0、D1の記憶領域を割り当てることができる。ここで、例えば、デバイスグループG1では、ストレージデバイスD0をデバイス(master)、ストレージデバイスD1をデバイス(mirror)として扱うことができる。デバイス(mirror)は、デバイス(master)に対して冗長化された物理ストレージである。
各ストレージデバイス制御部T0〜T3は、各I/O制御部E0〜E3からの依頼に基づいて、I/O制御シェアドメモリにキャッシュされたデータを各ストレージデバイスD0〜D3にライトする。ここで、各ストレージデバイス制御部T0〜T3は、冗長化先のストレージデバイスT0〜T3を管理する。そして、各ストレージデバイス制御部T0〜T3は、I/O制御シェアドメモリにキャッシュされたデータを、デバイス(master)にライトするとともに、冗長化先のストレージデバイス制御部T0〜T3に対してデバイス(mirror)にライトするように依頼することで冗長化する。
ストレージデバイス制御部T0は、論理デバイス管理テーブル24、デバイスグループ管理テーブル25およびストレージデバイス管理テーブル26を備える。
論理デバイス管理テーブル24は、デバイスグループG0、G1と論理デバイスとの対応関係を論理デバイスステータスとともに保持する。論理デバイスステータスは、論理デバイスが正常状態か障害状態かを示すことができる。
デバイスグループ管理テーブル25は、各ストレージデバイスD0〜D3がどのデバイスグループG0、G1に含まれるかを示す情報を保持する。ストレージデバイス管理テーブル26は、各ストレージデバイスD0〜D3が正常状態か障害状態かを示すことができる。
各ストレージデバイス制御部T1〜T3も、ストレージデバイス制御部T0と同様に構成することができる。
各I/O制御部E0〜E3は、キャッシュとの間でデータを授受する。このとき、各I/O制御部E0〜E3は、トラック単位でデータをキャッシュする。トラックは、データのキャッシュ時の最小単位である。また、各I/O制御部E0〜E3は、トラック単位でキャッシュしたデータを各ストレージデバイスD0〜D3にライトするように各ストレージデバイス制御部T0〜T3に依頼する。また、各I/O制御部E0〜E3は、各ホストHS0、HS0からのI/O(入出力)要求に対して各ストレージデバイスD0〜D3までのルート管理を行ったり、残容量管理を行ったりする。
さらに、各I/O制御部E0〜E3は、各ホストHS0、HS0からのI/O要求に対して、ストレージデバイスD0〜D3をフォーマットするかどうかをページ単位で管理する。ページは、ストレージデバイスD0〜D3の記憶領域を各ホストHS0、HS0に仮想的に割り当てるときの最小単位である。各I/O制御部E0〜E3は、ストレージデバイスD0〜D3をフォーマットする場合、フォーマットデータをキャッシュメモリにライトし、さらにストレージデバイスD0〜D3にライトするよう各ストレージデバイス制御部T0〜T3に依頼する。
ここで、各ホストHS0、HS0からのライト要求に対し、各I/O制御部E0〜E3によるデータのキャッシュと、各ストレージデバイスD0〜D3へのライトは非同期で実行される。各I/O制御部E0〜E3によるデータのキャッシュが行われた後、各ストレージデバイスD0〜D3へのライト時に障害が発生すると、各I/O制御部E0〜E3は、その障害が発生したトラックを障害トラックとして管理する。そして、各I/O制御部E0〜E3は、障害トラックが制御領域または未割り当て領域に対応する場合、制御領域または未割り当て領域に対応する各ストレージデバイスD0〜D3の記憶領域をフォーマットするよう各ストレージデバイス制御部T0〜T3に依頼する。
ここで、各I/O制御部E0〜E3は、各ストレージデバイスD0〜D3の物理的な容量を論理的な実容量プールとして一元化する。そして、各ホストHS0、HS0に割り当てられるボリュームに対して仮想容量ボリュームを実容量プールから切り出すことができる。
I/O制御部E0は、I/O結果受領部11、フォーマット対象判定部12、フォーマット依頼部13、キャッシュ上トラック管理テーブル21、ボリューム管理テーブル22およびページ管理テーブル23を備える。
I/O結果受領部11は、I/O制御部E0からのI/O依頼に対する論理デバイスへのI/O結果をストレージデバイス制御部T0から受領する。ここで、I/O制御部E0は、各デバイスグループG0、G1を論理デバイスとして管理することができる。そして、I/O制御部E0は、各論理デバイスに対してプールボリュームを割り当て、これらのプールボリュームを実容量プールに一元化することができる。
フォーマット対象判定部12は、障害トラックのデータ種別に基づいて、障害トラックがフォーマット対象であるかを判定する。このとき、フォーマット対象判定部12は、障害トラックが制御領域または未割り当て領域に対応する場合、その障害トラックをフォーマット対象とする。障害トラックがユーザデータに対応する場合、その障害トラックをフォーマット未対象とする。フォーマット依頼部13は、フォーマット対象とされた障害トラックに割り当てられらページに対応するストレージデバイスD0〜D3の記憶領域をフォーマットするようにストレージデバイス制御部T0に依頼する。
キャッシュ上トラック管理テーブル21は、トラックとページとプールボリュームとの対応関係をトラックステータスとともに保持する。トラックステータスは、トラックが正常状態か障害状態かを示すことができる。
ボリューム管理テーブル22は、プールボリュームと論理デバイスとの対応関係をボリューム種別とともに保持する。ボリューム種別は、プールボリューム以外にも通常ボリュームを設けることができる。プールボリュームは、実容量プールに一元化され、その実容量プールから各ホストHS0、HS0にボリュームが割り当てられる。通常ボリュームは、実容量プールに一元化されることなく、各ホストHS0、HS0に割り当てられる。
ページ管理テーブル23は、ページとプールボリュームとの対応関係をページ種別とともに保持する。ページ種別は、ページがユーザデータか制御領域かを示すことができる。さらに、ページ管理テーブル23は、各ページのフォーマットビットマップBMのON/OFF状態を保持する。なお、制御領域は、仮想容量ボリュームは、実容量プールのどこの位置にあるか、ストレージデバイスのどこの位置にあるか、実容量プールの使用量などを管理することができる。
各I/O制御部E1〜E3も、I/O制御部E0と同様に構成することができる。
I/O制御シェアドメモリSM0は、I/O制御部E0で並列処理が行われるときの共有メモリを提供する。また、I/O制御シェアドメモリSM0は、ストレージデバイスD0〜D3へのライトデータを一時的に保持するキャッシュを備える。さらに、I/O制御シェアドメモリSM0は、フォーマットビットマップBMを備える。フォーマットビットマップBMは、ストレージデバイスD0〜D3をページ単位でフォーマットするかどうかを示す情報を記憶する。このとき、未フォーマットのページに対応するビット位置は1に設定し、フォーマット済のページに対応するビット位置は0に設定することができる。
各ノードN1〜N3のI/O制御シェアドメモリも同様に構成することができる。なお、フォーマットビットマップBMは、ストレージデバイス制御部T0に設けるようにしてもよい。
図2は、実施形態に係るストレージ制御装置の障害トラック発生時の状態を示すブロック図である。
図2において、I/O制御部E0は、図1のデバイスグループG0に対してプールボリュームP0を生成し、デバイスグループG1に対してプールボリュームP1を生成するものとする。このとき、I/O制御部E0は、プールボリュームP0、P1を実容量プールRPに一元化する。
ホストHS0には、ホストHS0が使用可能な容量としてボリュームB0、B1が割り当てられているものとする。このとき、I/O制御部E0は、各ボリュームB0、B1に対応させて、仮想容量ボリュームV0、V1を実容量プールRPから切り出す。
仮想容量ボリュームV0には、ユーザデータ1Aが割り当てられているものとすると、I/O制御部E0は、ユーザデータ1Aを実容量プールRPのユーザデータ2Aに紐づけ、ユーザデータ2AをプールボリュームP0のユーザデータ3Aに紐づけ、ユーザデータ3AをデバイスグループG0に紐づけることができる。
また、仮想容量ボリュームV1には、ユーザデータ1Bが割り当てられているものとすると、I/O制御部E0は、ユーザデータ1Bを実容量プールRPのユーザデータ2Bに紐づけ、ユーザデータ2BをプールボリュームP0のユーザデータ3Bに紐づけ、ユーザデータ3BをデバイスグループG0に紐づけることができる。
また、I/O制御部E0は、制御領域2Cを実容量プールRPに割り当てたものとすると、制御領域2CをプールボリュームP0の制御領域3Cに紐づけ、制御領域3CをデバイスグループG0に紐づけることができる。
また、I/O制御部E0は、制御領域2Dを実容量プールRPに割り当てたものとすると、制御領域2DをプールボリュームP1の制御領域3Dに紐づけ、制御領域3DをデバイスグループG1に紐づけることができる。
そして、I/O制御部E0は、制御領域3DのデータをデバイスグループG1にライトするようにストレージデバイス制御部T0に依頼したものとする。このとき、ストレージデバイス制御部T0は、デバイスグループG1のデバイス(master)およびデバイス(mirror)のいずれのライトにも失敗したものとすると、I/O制御部E0に障害応答する。
I/O制御部E0は、デバイスグループG1の障害応答をストレージデバイス制御部T0から受領すると、デバイスグループG1に対応するプールボリュームP1に含まれる制御領域3Dのページを特定し、そのページに対応するフォーマットビットマップBMのビット位置(フォーマットビットと言う)をONにする。フォーマットビットマップBMのビット位置がONされると、そのビット位置の値が0から1に変更される。
デバイスグループG1の障害応答があると、ユーザは、デバイスグループG1の障害部位を回復させ、デバイスグループG1へのライト時にデバイスグループG1の障害応答が発生しないようにする。デバイスグループG1の障害部位の回復では、ドライブの交換などの物理的な操作を伴うことがある。
図3は、実施形態に係るストレージ制御装置の障害トラック回復時の状態を示すブロック図である。
図3において、デバイスグループG1の障害部位が回復された後、ホストHS0からライト要求があったものとする。
このとき、I/O制御部E0は、フォーマットビットマップBMを参照し、値が1であるビット位置を確認する。そして、I/O制御部E0は、値が1であるビット位置からフォーマット対象となるページを確認し、そのページを含むプールボリュームP1に対応するデバイスグループG1をフォーマットするようストレージデバイス制御部T0に依頼する。このとき、ストレージデバイス制御部T0は、デバイスグループG1のデバイス(master)およびデバイス(mirror)をフォーマットする。
さらに、I/O制御部E0は、ホストHS0からのライト要求で指定されたユーザデータ1Eを仮想容量ボリュームV0に割り当てたものとする。このとき、I/O制御部E0は、ユーザデータ1Eを実容量プールRPのユーザデータ2Eに紐づけ、ユーザデータ2EをプールボリュームP1のユーザデータ3Eに紐づけ、ユーザデータ3EをデバイスグループG1に紐づけることができる。
ここで、I/O制御部E0は、障害トラックが発生した時に、制御領域または未割り当て領域に対応する障害トラックが割り当てられた記憶領域をフォーマットさせることにより、ユーザデータを消失させることなく、障害トラックを回復させることができる。このため、ホストHS0に対して実容量プールRPおよびプールボリュームP0、P1が隠蔽され、仮想容量ボリュームV0、V1のみをユーザが意識できる場合においても、障害トラックを自律的に回復させることができ、ユーザのEoU(Ease of Use)を図りつつ、実容量プールRPおよびプールボリュームP0、P1を保守することができる。
また、I/O制御部E0は、ホストHS0、HS1からのI/O要求に応じたフォーマット用に元々用意されているフォーマットビットマップBMを用いて障害トラックのフォーマット管理を行うことにより、障害トラックのフォーマット管理専用のフォーマットビットマップを設ける必要がなくなる。
また、I/O制御部E0は、ホストHS0、HS1からのI/O要求に応じて障害トラックのフォーマットを実行させることにより、ホストHS0、HS1からのI/O要求に応じて元々用意されているフォーマットのI/Oシーケンスに準じて障害トラックのフォーマットを効率よく実行させることがでできる。
図4は、実施形態に係るストレージ制御装置の障害トラック発生から回復までの動作を示すフローチャートである。
図4において、図1のストレージデバイス制御部T0は、ストレージデバイスD0〜D3の障害を検出する(S1)。この障害の検出では、図1のI/O制御部E0で指定されたデバイスグループに対して、図1のストレージデバイス制御部T0がライトを試みたときに、デバイス(master)およびデバイス(mirror)のいずれのライトにも失敗したかどうかを検出する。
次に、ストレージデバイス制御部T0は、障害部位の閉塞を行う(S2)。この障害部位の閉塞では、ストレージデバイス制御部T0は、図1のストレージデバイス管理テーブル26において、障害が検出されたストレージデバイスのステータスを障害に設定する。また、ストレージデバイス制御部T0は、デバイスグループ管理テーブル25を参照し、障害が検出されたストレージデバイスを含むデバイスグループを特定する。そして、ストレージデバイス制御部T0は、論理デバイス管理テーブル24において、そのデバイスグループに対応する論理デバイスの論理デバイスステータスを障害に設定する。
次に、ストレージデバイス制御部T0は、I/O制御部E0で指定されたデバイスグループに対応する論理デバイスのライトに失敗したというエラー応答をI/O制御部E0に返す。I/O制御部E0は、その論理デバイスについてのエラー応答を受け取ると、障害トラックを設定する(S3)。障害トラックの設定では、I/O制御部E0は、ボリューム管理テーブル22を参照し、その論理デバイスに対応するプールボリュームを特定する。そして、I/O制御部E0は、キャッシュ上トラック管理テーブル21において、そのプールボリュームに対応するページに割り当てられたトラックのトラックステータスを障害に設定する。
次に、I/O制御部E0は、障害トラック発生個所を探索する(S4)。この障害トラック発生個所の探索では、I/O制御部E0は、キャッシュ上トラック管理テーブル21を参照し、障害トラックに割り当てられたページを特定する。
次に、I/O制御部E0は、障害トラック発生個所のページ割り当て状態を確認する(S5)。この障害トラック発生個所のページ割り当て状態の確認では、I/O制御部E0は、ページ管理テーブル23を参照し、障害トラックに割り当てられたページのページ種別を確認する。そして、障害トラックに割り当てられたページが、実容量プールに割り当て済みのユーザデータのページである場合(S6のYES)、I/O制御部E0は、障害トラック発生報告を行う(S7)。
一方、障害トラックに割り当てられたページが、実容量プールに未割り当てのページまたは制御領域のページである場合(S6のNO)、I/O制御部E0は、そのページに対応するフォーマットビットマップBMのビット位置をONにする(S8)。
次に、I/O制御部E0は、ユーザに対して障害報告を行う(S9)。この障害報告では、I/O制御部E0は、キャッシュ上トラック管理テーブル21で管理されている障害トラックのトラックステータスを通知することができる。
次に、ユーザは、障害部位の回復および保守を行う(S10)。障害部位の回復は、ストレージデバイスD0〜D3にI/O要求を行ったときに、エラー応答が返ってこなくなるようにする操作である。このとき、ドライブの交換などの物理的な操作を伴うことがある。
次に、ホストHS0からライト要求があったものとすると(S11)、I/O制御部E0は、割り当て対象ページおよびフォーマットビットがONのページのフォーマットをストレージデバイス制御部T0に依頼する(S12)。フォーマットビットがONのページのフォーマット依頼では、I/O制御部E0は、ページ管理テーブル23を参照することで、フォーマットビットがONのページに対応するプールボリュームを特定し、ボリューム管理テーブル22を参照することで、そのプールボリュームに対応する論理デバイスを特定する。そして、I/O制御部E0は、その論理デバイスに対してフォーマットするようストレージデバイス制御部T0に依頼する。
次に、I/O制御部E0は、ホストHS0からライト要求に対応した新規ページを実容量プールに割り当てる(S13)。
以下、図1のストレージ制御装置の障害トラック発生から回復までの動作について具体的に説明する。
図5および図6は、実施形態に係るストレージ制御装置の障害トラック発生時の制御情報更新処理を示すフローチャートである。
図5において、図1のI/O制御部E0は、制御情報更新処理を開始すると、キャッシュ上トラック管理テーブル21から、更新するトラックのボリューム#Pを取得する(S21)。なお、#Pは、図1のプールボリュームP0、P1を識別するための識別子である。
次に、I/O制御部E0は、ボリューム管理テーブル22から、ボリューム#Pに関連している論理デバイス#Rを取得する(S22)。なお、#Rは、論理デバイスを識別するための識別子である。
次に、I/O制御部E0は、指定した論理デバイス#Rについての制御情報のI/Oをストレージデバイス制御部T0に依頼する(S23)。
次に、ストレージデバイス制御部T0は、指定された論理デバイス#Rについての制御情報のI/O依頼をI/O制御部E0から受領する(S24)。
次に、ストレージデバイス制御部T0は、論理デバイス管理テーブル24から、指定された論理デバイス#Rに関連しているデバイスグループ#Gを取得する(S25)。なお、#Gは、図1のデバイスグループG0、G1を識別するための識別子である。
次に、ストレージデバイス制御部T0は、デバイスグループ管理テーブル25から、デバイスグループ#Gに関連しているストレージデバイス#Dを取得する(S26)。なお、#Dは、図1のストレージデバイスD0〜D3を識別するための識別子である。
次に、ストレージデバイス制御部T0は、ストレージデバイス#Dのデバイス(master)に対して制御情報のI/Oを実施する(S27)。
次に、ストレージデバイス制御部T0は、ストレージデバイス#Dのデバイス(master)からエラー応答があったかどうかを判断する(S28)。エラー応答があった場合、ストレージデバイス制御部T0は、ストレージデバイス管理テーブル26において、そのストレージデバイス#Dのステータスを「障害」に更新する(S29)。
一方、ストレージデバイス#Dのデバイス(master)からエラー応答がなかった場合またはS29の処理を終了した場合、ストレージデバイス制御部T0は、ストレージデバイス#Dのデバイス(mirror)への制御情報のI/Oをストレージデバイス制御部T1に依頼する
ストレージデバイス制御部T1は、ストレージデバイス#Dのデバイス(mirror)への制御情報のI/O依頼をストレージデバイス制御部T0から受領すると、ストレージデバイス#Dのデバイス(mirror)に対して制御情報のI/Oを実施する(S30)。
次に、ストレージデバイス制御部T1は、ストレージデバイス#Dのデバイス(mirror)からエラー応答があったかどうかを判断する(S31)。エラー応答があった場合、ストレージデバイス制御部T1は、ストレージデバイス管理テーブル26において、そのストレージデバイス#Dのステータスを「障害」に更新する(S32)。
S31でエラー応答がなかった場合またはS32の処理が終了した場合、ストレージデバイス制御部T0は、ストレージデバイス管理テーブル26から、デバイス(master)およびデバイス(mirror)のステータスを取得する(S33)。
次に、ストレージデバイス制御部T0は、デバイス(master)のステータスが障害かつデバイス(mirror)のステータスが障害であるかどうかを判断する(S34)。デバイス(master)のステータスが障害かつデバイス(mirror)のステータスが障害である場合、論理デバイス管理テーブル24において、論理デバイス#Rの論理デバイスステータスを障害に更新する(S35)。
一方、デバイス(master)のステータスが障害かつデバイス(mirror)のステータスが障害であるという条件を満たさない場合、ストレージデバイス制御部T0は、指定された論理デバイス#RへのI/O結果をI/O制御部E0に応答する(S36)。
次に、I/O制御部E0は、指定された論理デバイス#Rについての制御情報のI/O結果をストレージデバイス制御部T0から受領する(S37)。
次に、図6において、I/O制御部E0は、指定した論理デバイス#Rの障害応答があったかどうかを判断する(S38)。指定した論理デバイス#Rの障害応答がなかった場合、I/O制御部E0は、制御情報更新処理を終了する。
一方、指定した論理デバイス#Rの障害応答があった場合、I/O制御部E0は、ボリューム管理テーブル22から、指定した論理デバイス#Rに関連しているボリューム#Pを取得する。そして、I/O制御部E0は、キャッシュ上トラック管理テーブル21において、取得したボリューム#Pに対応するページ#Hに割り当てられたトラック#Cのトラックステータスを「ストレージデバイス障害」に更新する(S39)。なお、#Cは、トラックを識別するための識別子である。
次に、I/O制御部E0は、トラックステータスを「ストレージデバイス障害」に更新したトラック#Cに割り当てられたページ#Hをキャッシュ上トラック管理テーブル21から取得する(S40)。なお、#Hは、ページを識別するための識別子である。
次に、I/O制御部E0は、取得したページ#Hのページ種別をページ管理テーブル23から取得する(S41)。
次に、I/O制御部E0は、取得したページ#のページ種別がユーザデータであるかどうかを判断する(S42)。取得したページ#のページ種別がユーザデータである場合、I/O制御部E0は、障害トラック発生報告を行い(S43)、制御情報更新処理を終了する。
一方、取得したページ#のページ種別がユーザデータでない場合、I/O制御部E0は、取得したページ#のフォーマットビットを「ON」に更新し(S44)、障害報告を行った後(S45)、制御情報更新処理を終了する。
図7および図8は、実施形態に係るストレージ制御装置の障害トラック回復処理を示すフローチャートである。
図7において、図1のI/O制御部E0は、ホストライトI/O受領処理を開始すると、キャッシュ上トラック管理テーブル21から、ホストライトI/O(図3のホストHS0からのライト要求)されたトラック#Cの割り当てページ#Hを取得する(S51)。
次に、I/O制御部E0は、取得したページ#Hが未割り当てページかどうかを判断する(S52)。取得したページ#Hが未割り当てページでない場合、I/O制御部E0は、ページ#Hの参照終了かどうかを判断する(S59)。ページ#Hの参照終了でない場合、I/O制御部E0は、未取得のページ#Hを取得し(S77)、S52に戻る。ページ#Hの参照終了の場合、障害トラックの自己回復処理を終了する。
一方、S52において、取得したページ#Hが未割り当てページの場合、I/O制御部E0は、ページ管理テーブル23から、ページ#Hのフォーマットビットを取得する(S53)。
次に、I/O制御部E0は、ページ#HのフォーマットビットがONかどうかを判断する(S54)。ページ#HのフォーマットビットがONでない場合、I/O制御部E0は、S59に進む。
一方、ページ#HのフォーマットビットがONの場合、I/O制御部E0は、取得したページ#のフォーマットビットを「OFF」に更新する(S55)。
次に、I/O制御部E0は、キャッシュ上トラック管理テーブル21から、フォーマットするページ#Hのボリューム#Pを取得する(S56)。
次に、I/O制御部E0は、ボリューム管理テーブル22から、ボリューム#Pに関連している論理デバイス#Rを取得する(S57)。
次に、I/O制御部E0は、指定した論理デバイス#Rについてのページのフォーマットをストレージデバイス制御部T0に依頼する(S58)。
次に、ストレージデバイス制御部T0は、指定された論理デバイス#RについてのページのフォーマットをI/O制御部E0から受領する(S60)。
次に、ストレージデバイス制御部T0は、論理デバイス管理テーブル24から、指定された論理デバイス#Rに関連しているデバイスグループ#Gを取得する(S61)。
次に、ストレージデバイス制御部T0は、デバイスグループ管理テーブル25から、デバイスグループ#Gに関連しているストレージデバイス#Dを取得する(S62)。
次に、ストレージデバイス制御部T0は、ストレージデバイス#Dのデバイス(master)に対してフォーマットI/Oを実施する(S63)。
次に、ストレージデバイス制御部T0は、ストレージデバイス#Dのデバイス(master)からエラー応答があったかどうかを判断する(S64)。エラー応答があった場合、ストレージデバイス制御部T0は、ストレージデバイス管理テーブル26において、そのストレージデバイス#Dのステータスを「障害」に更新する(S65)。
一方、ストレージデバイス#Dのデバイス(master)からエラー応答がなかった場合またはS65の処理を終了した場合、ストレージデバイス制御部T0は、ストレージデバイス#Dのデバイス(mirror)へのフォーマットI/Oをストレージデバイス制御部T1に依頼する
ストレージデバイス制御部T1は、ストレージデバイス#Dのデバイス(mirror)へのフォーマットI/O依頼をストレージデバイス制御部T0から受領すると、ストレージデバイス#Dのデバイス(mirror)に対してフォーマットI/Oを実施する(S66)。
次に、ストレージデバイス制御部T1は、ストレージデバイス#Dのデバイス(mirror)からエラー応答があったかどうかを判断する(S67)。エラー応答があった場合、ストレージデバイス制御部T1は、ストレージデバイス管理テーブル26において、そのストレージデバイス#Dのステータスを「障害」に更新する(S68)。
S67でエラー応答がなかった場合またはS68の処理が終了した場合、ストレージデバイス制御部T0は、ストレージデバイス管理テーブル26から、デバイス(master)およびデバイス(mirror)のステータスを取得する(S69)。
次に、ストレージデバイス制御部T0は、デバイス(master)のステータスが障害かつデバイス(mirror)のステータスが障害であるかどうかを判断する(S70)。デバイス(master)のステータスが障害かつデバイス(mirror)のステータスが障害である場合、論理デバイス管理テーブル24において、論理デバイス#Rの論理デバイスステータスを障害に更新する(S71)。
一方、デバイス(master)のステータスが障害かつデバイス(mirror)のステータスが障害であるという条件を満たさない場合、ストレージデバイス制御部T0は、指定された論理デバイス#RへのI/O結果をI/O制御部E0に応答する(S72)。
次に、I/O制御部E0は、指定された論理デバイス#RについてのフォーマットI/O結果をストレージデバイス制御部T0から受領する(S73)。
次に、図8において、I/O制御部E0は、指定した論理デバイス#Rの障害応答があったかどうかを判断する(S74)。指定した論理デバイス#Rの障害応答があった場合、I/O制御部E0は、図7のS59に戻る。
一方、指定した論理デバイス#Rの障害応答がなかった場合、I/O制御部E0は、ボリューム管理テーブル22から、指定した論理デバイス#Rに関連しているボリューム#Pを取得する。そして、I/O制御部E0は、キャッシュ上トラック管理テーブル21において、取得したボリューム#Pに対応するページ#Hのトラックステータスを「正常」に更新する(S75)。
次に、I/O制御部E0は、フォーマットした制御情報を再構築するため、制御情報を更新し(S76)、図7のS59に戻る。制御情報の更新では、I/O制御部E0は、図5の制御情報更新処理に戻る。
以下、図2の障害トラック発生時の状態を例にとって、図1のキャッシュ上トラック管理テーブル21、ボリューム管理テーブル22、ページ管理テーブル23論理デバイス管理テーブル24、デバイスグループ管理テーブル25およびストレージデバイス管理テーブル26の設定例について説明する。
図14のストレージデバイス管理テーブル26には、ストレージデバイス#Dごとにステータスが設定される。ここで、図2のストレージデバイスD0、D1の障害が検出されると、ストレージデバイス管理テーブル26のストレージデバイス#D0、#D1のステータスが障害に設定される。
図13のデバイスグループ管理テーブル25には、デバイスグループ#Gごとにデバイス(master)およびデバイス(mirror)が設定される。ここで、デバイスグループ#G0には、デバイス(master)としてストレージデバイス#D2が登録され、デバイス(mirror)としてストレージデバイス#D3が登録されている。デバイスグループ#G1には、デバイス(master)としてストレージデバイス#D0が登録され、デバイス(mirror)としてストレージデバイス#D1が登録されている。
図12の論理デバイス管理テーブル24には、外部ボリュームパス#Rごとに論理デバイスステータスが設定される。また、論理デバイス管理テーブル24には、各論理デバイス#R0、#R1に対応するデバイスグループ#G0、#G1が登録されている。
ここで、図14のストレージデバイス管理テーブル26において、ストレージデバイス#D0、#D1のステータスが障害に設定されると、図13のデバイスグループ管理テーブル25を参照することで、ストレージデバイス#D0、#D1がデバイスグループ#G1に属すると判断することができる。そして、論理デバイス管理テーブル24において、デバイスグループ#G1に対応する論理デバイス#R1の論理デバイスステータスが障害に設定される。
図10のボリューム管理テーブル22には、ボリューム#Pに対応する外部ボリュームパス#Rが登録されている。ここで、ボリューム管理テーブル22には、各ボリューム#P0、#P1に対応して論理デバイス#R0、#R1が登録されている。また、ボリューム管理テーブル22には、ボリューム#Pに対応してボリューム種別が登録されている。ボリューム種別としては、プールボリュームを示すPOOL−VOLと、通常ボリュームがある。ボリューム管理テーブル22には、各ボリューム#P0、#P1のボリューム種別としてPOOL−VOLが登録されている。
図9のキャッシュ上トラック管理テーブル21には、トラック位置ごとにトラックステータスが設定される。また、キャッシュ上トラック管理テーブル21には、トラック位置に割り当てられた割り当てページ#Hおよびその割り当てページ#Hに対応するボリューム#Pが登録されている。
キャッシュ上トラック管理テーブル21において、トラック#C0、#C1にはページ#H0が割り当てられ、トラック#C2、#C3にはページ#H1が割り当てられている。また、各ページ#H0、#H1は、ボリューム#P0、#P1に紐づけられている。
ここで、図12の論理デバイス管理テーブル24において、論理デバイス#R1の論理デバイスステータスが障害に設定されると、図10のボリューム管理テーブル22を参照することで、論理デバイス#R1がボリューム#P1に対応すると判断することができる。そして、キャッシュ上トラック管理テーブル21において、ボリューム#P1に対応するページ#H1に割り当てられたトラック#C2、#C3のトラックステータスがストレージデバイス障害に設定される。
図11のページ管理テーブル23には、ページ#Hごとにページ種別が登録される。ページ種別としては、未割り当てページと割り当て済ページがある。さらに、割り当て済ページには、ユーザデータと制御領域がある。ページ管理テーブル23において、ページ#H0のページ種別としてユーザデータが登録され、ページ#H1のページ種別として制御領域が登録されている。
また、ページ管理テーブル23には、ページ#Hに対応するボリューム#Pが登録される。さらに、ページ管理テーブル23には、ページ#HごとにフォーマットビットマップがONかOFFかに設定される。
ここで、図9のキャッシュ上トラック管理テーブル21を参照することで、トラックステータスがストレージデバイス障害に設定されたトラック#C2、#C3に割り当てられたページ#H1を特定することができる。そして、ページ管理テーブル23において、ページ#H1のページ種別が制御領域または未割り当てページの場合、そのページに対応するフォーマットビットがONに設定される。
図15は、実施形態に係るストレージ制御装置のハードウェア構成を示すブロック図である。
図15において、ストレージ制御装置100には、プロセッサ101、通信制御デバイス102、通信インターフェース103、主記憶デバイス104および外部記憶デバイス105が設けられている。プロセッサ101、通信制御デバイス102、通信インターフェース103、主記憶デバイス104および外部記憶デバイス105は、内部バス106を介して相互に接続されている。主記憶デバイス104および外部記憶デバイス105は、プロセッサ101からアクセス可能である。
また、ストレージ制御装置100の外部には、入力装置110および出力装置111が設けられている。入力装置100および出力装置111は、入出力インターフェース107を介して内部バス106に接続されている。
入力装置100は、例えば、キーボード、マウス、タッチパネル、カードリーダ、音声入力装置等である。出力装置111は、例えば、画面表示装置(液晶モニタ、有機EL(Electro Luminescence)ディスプレイ、グラフィックカード等)、音声出力装置(スピーカ等)、印字装置等である。
プロセッサ101は、ストレージ制御装置100全体の動作制御を司るハードウェアである。主記憶デバイス104は、例えば、SRAMまたはDRAMなどの半導体メモリから構成することができる。主記憶デバイス104には、プロセッサ101が実行中のプログラムを格納したり、プロセッサ101がプログラムを実行するためのワークエリアを設けたりすることができる。
外部記憶デバイス105は、大容量の記憶容量を有する記憶デバイスであり、例えば、ハードディスク装置やSSD(Solid State Drive)である。外部記憶デバイス105は、各種プログラムの実行ファイルやプログラムの実行に用いられるデータを保持することができる。外部記憶デバイス105には、障害トラック回復プログラム105Aを格納することができる。障害トラック回復プログラム105Aは、ストレージ制御装置100にインストール可能なソフトウェアであってもよいし、ストレージ制御装置100にファームウェアとして組み込まれていてもよい。
通信制御デバイス102は、外部との通信を制御する機能を有するハードウェアである。通信制御デバイス102は、通信インターフェース103を介してネットワーク109に接続される。ネットワーク109は、インターネットなどのWAN(Wide Area Network)であってもよいし、イーサーネットまたはWiFiなどのLAN(Local Area Network)であってもよいし、WANとLANが混在していてもよい。
入出力インターフェース107は、入力装置110から入力されるデータをプロセッサ101が処理可能なデータ形式に変換したり、プロセッサ101から出力されるデータを出力装置111で出力可能なデータ形式に変換したりする。
プロセッサ101が障害トラック回復プログラム105Aを主記憶デバイス104に読み出し、主障害トラック回復プログラム105Aを実行することにより、トラック単位でキャッシュしたデータを物理ストレージにライトする時に障害が発生したかどうかを検出し、障害トラックが制御領域または未割り当て領域に対応する場合、制御領域または未割り当て領域に対応する物理ストレージの記憶領域をフォーマットすることができる。
なお、障害トラック回復プログラム105Aの実行は、複数のプロセッサやコンピュータに分担させてもよい。あるいは、プロセッサ101は、ネットワーク109を介してクラウドコンピュータなどに障害トラック回復プログラム105Aの全部または一部の実行を指示し、その実行結果を受け取るようにしてもよい。
HS0、HS1 ホスト、N0〜N3 ノード、K0〜K3 クラスタ制御部、E0〜E3 I/O制御部、T0〜T3 ストレージデバイス制御部、SM0 I/O制御シェアドメモリ、BM フォーマットビットマップ、D0〜D3 ストレージデバイス、G0、G1 デバイスグループ、11 I/O結果受領部、12 フォーマット対象判定部、13 フォーマット依頼部、21 キャッシュ上トラック管理テーブル、22 ボリューム管理テーブル、23 ページ管理テーブル、24 論理デバイス管理テーブル、25 デバイスグループ管理テーブル、26 ストレージデバイス管理テーブル

Claims (10)

  1. キャッシュ時の最小単位であるトラック単位でキャッシュしたデータを物理ストレージにライトするストレージ制御装置であって、
    前記物理ストレージへのライト時に障害が発生した障害トラックが制御領域または未割り当て領域に対応するかどうかを判定し、
    前記障害トラックが前記制御領域または前記未割り当て領域に対応する場合、前記制御領域または前記未割り当て領域に対応する前記物理ストレージの記憶領域をフォーマットするストレージ制御装置。
  2. 前記記憶領域の仮想的な割り当ての最小単位であるページ単位で前記物理ストレージをフォーマットするかどうかを管理するフォーマットビットマップを備え、
    前記障害トラックが発生し、前記障害トラックが前記制御領域または前記未割り当て領域に対応する場合、前記障害トラックに割り当てられたページに対応する前記フォーマットビットマップのビット位置をONし、
    前記障害トラックに割り当てられたページに対応する前記記憶領域がフォーマットされた場合、前記フォーマットされた前記記憶領域に含まれるページに対応する前記フォーマットビットマップのビット位置をOFFにする請求項1に記載のストレージ制御装置。
  3. ホストからのI/O要求を受け付けたときに、前記フォーマットビットマップがONになっているページに対応する前記記憶領域をフォーマットする請求項2に記載のストレージ制御装置。
  4. 前記障害トラックがユーザデータに対応する場合、前記ユーザデータに対応する前記物理ストレージの記憶領域をフォーマットしない請求項1に記載のストレージ制御装置。
  5. 前記物理ストレージは冗長化され、
    前記冗長化された前記物理ストレージを一元化する実容量プールを生成し、
    前記ホストからの要求に応じて前記実容量プールから仮想容量ボリュームを前記ページ単位で割り当てる請求項3に記載のストレージ制御装置。
  6. 前記冗長化された前記物理ストレージはデバイスグループにグループ化され、
    前記実容量プールは前記デバイスグループを一元化して管理する請求項5に記載のストレージ制御装置。
  7. 前記デバイスグループごとに論理化されたプールボリュームを生成し、
    前記実容量プールは前記プールボリュームを一元化して管理する請求項6に記載のストレージ制御装置。
  8. 前記ホストからのI/O要求に基づいてキャッシュとの間でデータを授受するI/O制御部と、
    前記I/O制御部からのI/O依頼に基づいて、キャッシュされたデータを前記物理ストレージにライトするストレージデバイス制御部とを備え、
    前記I/O制御部は、
    更新対象となるトラックが割り当てられた前記仮想容量ボリュームを特定し、
    前記仮想容量ボリュームに対応する論理デバイスを特定し、
    前記ストレージデバイス制御部は、
    前記I/O制御部からの前記論理デバイスへのI/O依頼に基づいて、前記論理デバイスに関連している前記デバイスグループを特定し、
    前記デバイスグループに含まれる前記物理ストレージへのI/Oに失敗した場合、前記デバイスグループに関連している前記論理デバイスのステータスを障害に設定し、
    前記I/O制御部は、
    前記ステータスが障害に設定された論理デバイスに対応する前記仮想容量ボリュームに割り当てられたトラックを前記障害トラックとして設定し、
    前記障害トラックとして設定されたトラックが割り当てられた前記仮想容量ボリュームに対応するページを特定し、
    前記ページのページ種別が前記制御領域または前記未割り当て領域に対応する場合、前記ページに対応する前記フォーマットビットマップのビット位置をONにする請求項7に記載のストレージ制御装置。
  9. 前記I/O制御部は、
    前記ホストからI/O要求があったときに、前記フォーマットビットマップのビット位置がONになっているページに対応する前記仮想容量ボリュームを特定し、
    前記仮想容量ボリュームに対応する論理デバイスを特定し、
    前記ストレージデバイス制御部は、
    前記I/O制御部からの前記論理デバイスへのI/O依頼に基づいて、前記論理デバイスに関連している前記デバイスグループを特定し、
    前記デバイスグループに含まれる前記物理ストレージのフォーマットを実施する請求項8に記載のストレージ制御装置。
  10. プロセッサを備える障害トラックの回復方法であって、
    前記プロセッサは、
    キャッシュ時の最小単位であるトラック単位でキャッシュしたデータを物理ストレージにライトする時に障害が発生したかどうかを検出し、
    前記障害が発生した障害トラックが制御領域または未割り当て領域に対応するかどうかを判定し、
    前記障害トラックが前記制御領域または前記未割り当て領域に対応する場合、前記制御領域または前記未割り当て領域に対応する前記物理ストレージの記憶領域をフォーマットする障害トラックの回復方法。

JP2018176437A 2018-09-20 2018-09-20 ストレージ制御装置および障害トラックの回復方法 Pending JP2020047105A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018176437A JP2020047105A (ja) 2018-09-20 2018-09-20 ストレージ制御装置および障害トラックの回復方法
US16/295,858 US10990491B2 (en) 2018-09-20 2019-03-07 Storage control apparatus and recovery method of a failed track

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018176437A JP2020047105A (ja) 2018-09-20 2018-09-20 ストレージ制御装置および障害トラックの回復方法

Publications (1)

Publication Number Publication Date
JP2020047105A true JP2020047105A (ja) 2020-03-26

Family

ID=69884329

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018176437A Pending JP2020047105A (ja) 2018-09-20 2018-09-20 ストレージ制御装置および障害トラックの回復方法

Country Status (2)

Country Link
US (1) US10990491B2 (ja)
JP (1) JP2020047105A (ja)

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4924330A (en) * 1988-10-11 1990-05-08 Next, Inc. System and method for improving the performance of high-density data storage media
US6502174B1 (en) * 1999-03-03 2002-12-31 International Business Machines Corporation Method and system for managing meta data
US7302628B2 (en) * 2000-12-14 2007-11-27 Telefonaktiebolaget L M Ericsson (Publ) Data compression with incremental redundancy
US9244855B2 (en) * 2007-12-31 2016-01-26 Intel Corporation Method, system, and apparatus for page sizing extension
US7800856B1 (en) * 2009-03-24 2010-09-21 Western Digital Technologies, Inc. Disk drive flushing write cache to a nearest set of reserved tracks during a power failure
JP4740354B2 (ja) 2009-06-19 2011-08-03 富士通株式会社 ディスク制御装置およびディスク制御方法
US8255624B2 (en) * 2009-12-17 2012-08-28 Hitachi, Ltd. Storage apparatus and its control method
JP5802283B2 (ja) * 2011-07-22 2015-10-28 株式会社日立製作所 ストレージシステム及びその論理ユニット管理方法
US10572355B2 (en) * 2017-07-27 2020-02-25 International Business Machines Corporation Transfer track format information for tracks in cache at a primary storage system to a secondary storage system to which tracks are mirrored to use after a failover or failback

Also Published As

Publication number Publication date
US10990491B2 (en) 2021-04-27
US20200097377A1 (en) 2020-03-26

Similar Documents

Publication Publication Date Title
US11163472B2 (en) Method and system for managing storage system
US20230117542A1 (en) Remote Data Replication Method and System
US11132256B2 (en) RAID storage system with logical data group rebuild
CN109074297B (zh) 在同步复制的数据集中启用数据完整性检查和更快的应用恢复
CN103354923B (zh) 一种数据重建方法、装置和系统
US10838829B2 (en) Method and apparatus for loading data from a mirror server and a non-transitory computer readable storage medium
JP6525491B2 (ja) ファイルをチャンク単位で分散処理するシステムおよび方法
US8650471B2 (en) System and method for look-aside parity based raid
TW200422827A (en) Distributed storage system capable of restoring data in case of a storage failure
US20170371597A1 (en) Method and system for managing storage system
JPWO2018029820A1 (ja) 計算機システム
US7549029B2 (en) Methods for creating hierarchical copies
US10503620B1 (en) Parity log with delta bitmap
US20190034092A1 (en) Methods for managing distributed snapshot for low latency storage and devices thereof
JP2014044553A (ja) プログラム、情報処理装置および情報処理システム
US11740823B2 (en) Storage system and storage control method
US10664346B2 (en) Parity log with by-pass
US20200081806A1 (en) Forming a consistency group comprised of volumes maintained by one or more storage controllers
JP2020047105A (ja) ストレージ制御装置および障害トラックの回復方法
JP6201580B2 (ja) ストレージ制御装置、ストレージ制御方法及びストレージ制御プログラム
JP5640618B2 (ja) 管理プログラム、管理装置、および管理方法
JP2016024656A (ja) ストレージ制御装置、ストレージシステム及びストレージ制御プログラム
US20160357479A1 (en) Storage control apparatus
US20230350753A1 (en) Storage system and failure handling method
US11836391B2 (en) Distributed storage system and storage control method