[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP6399755B2 - ミラーリング装置及びその制御方法 - Google Patents

ミラーリング装置及びその制御方法 Download PDF

Info

Publication number
JP6399755B2
JP6399755B2 JP2014000291A JP2014000291A JP6399755B2 JP 6399755 B2 JP6399755 B2 JP 6399755B2 JP 2014000291 A JP2014000291 A JP 2014000291A JP 2014000291 A JP2014000291 A JP 2014000291A JP 6399755 B2 JP6399755 B2 JP 6399755B2
Authority
JP
Japan
Prior art keywords
storage device
data
master
slave
writable
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014000291A
Other languages
English (en)
Other versions
JP2015129998A (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.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2014000291A priority Critical patent/JP6399755B2/ja
Priority to US14/575,123 priority patent/US9779001B2/en
Publication of JP2015129998A publication Critical patent/JP2015129998A/ja
Application granted granted Critical
Publication of JP6399755B2 publication Critical patent/JP6399755B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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/2056Error 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 by mirroring
    • G06F11/2069Management of state, configuration or failover
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1092Rebuilding, e.g. when physically replacing a failing disk
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • 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/2056Error 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 by mirroring
    • G06F11/2058Error 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 by mirroring using more than 2 mirrored copies
    • 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/2056Error 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 by mirroring
    • G06F11/2087Error 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 by mirroring with a common controller
    • 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/2056Error 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 by mirroring
    • G06F11/2082Data synchronisation
    • 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/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/855Details of asynchronous mirroring using a journal to transfer not-yet-mirrored changes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

本発明は、ミラーリング装置及びその制御方法に関する。
近年、SSD(Solid State Drive)の普及に伴い、補助記憶装置としてSSDが画像形成装置に具備されるようになってきている。従来の補助記憶装置と比較すると、SSDはアクセスタイム、発熱、動作音、耐衝撃性能、消費電力、及びサイズなどで優れているが、書き換え回数に上限がある。
こうした補助記憶装置に関連する装置として、2台のディスクが同時に故障することが少ないことを利用することで耐故障性を向上させるためのミラーリング装置がある。
HDD(Hard Disk Drive)をミラーリング装置に装着した場合は、その効果が大いに発揮されるが、SSDをミラーリング装置に装着した場合、2台のSSDに対して同じデータを書き込むため、書き換え回数に基づく寿命がほぼ同時期にやってくる。
よって、ミラーリング構成にしていながら、HDDほどの耐故障性が期待できないという課題がある。
この課題に対処するため、片側のディスクにダミーデータを付加して書き込むことで、2台のディスクの書き換え回数に差をつける技術が開示されている(例えば、特許文献1参照)。
特開2013−77283号公報
しかしながら、特許文献1に開示された技術の場合、ダミーデータを記憶するSSDが片方に固定されていることから、ダミーデータを記憶したSSDが交換された場合、交換されたSSDにダミーデータが記憶される。その結果、特許文献1に開示された技術では、交換されたSSDの寿命を縮めることとなる。
また、2台のSSDに対して異なるデータを記憶しているため、ミラーリングをやめて1台で運用を再開することができない。
本発明の目的は、データの書き換え回数に上限が設けられた2つの記憶装置の耐故障性を向上させたミラーリング装置及びその制御方法を提供することにある。
上記目的を達成するために、本発明のミラーリング装置は、データの書き換え回数に上限が設けられマスター記憶装置と、データの書き換え回数に上限が設けられたスレーブ記憶装置を含む2つの記憶装置のミラーリングを行うミラーリング装置であって、各々の前記記憶装置の総書き込み量から、各々の前記記憶装置でデータの書き換えが可能な残りの書き込み可能量を取得する取得手段と、前記取得手段により取得された各々の前記書き込み可能量の差分が予め定められた値以上か否か判別する判別手段と、前記判別手段により、前記差分が前記予め定められた値未満と判別された場合に、前記差分が前記予め定められた値以上となるように前記記憶装置を制御する制御手段と、前記取得手段により取得された各々の前記書き込み可能量の差分が前記予め定められた値未満である場合に、前記マスター記憶装置の書き込み可能量と、前記スレーブ記憶装置の書き込み可能量のいずれが大きいかを判定する判定手段とを備え、前記判定手段により、前記マスター記憶装置への書き込み可能量が前記スレーブ記憶装置への書き込み可能量よりも小さいと判定された場合、前記制御手段は、前記マスター記憶装置へ第1のデータを記憶させてから予め定められた時間が経過するまでに前記第1のデータが更新されると、前記更新された第1のデータである第2のデータを前記マスター記憶装置へ記憶させ、さらに、前記マスター記憶装置へ前記第2のデータを記憶させてから予め定められた時間が経過した後に前記スレーブ記憶装置へ前記第1のデータを記憶させることなく前記第2のデータを記憶させ、前記判定手段により、前記マスター記憶装置への書き込み可能量が前記スレーブ記憶装置への書き込み可能量よりも大きいと判定された場合、前記制御手段は、前記マスター記憶装置前記データを記憶するたびに、前記スレーブ記憶装置へ前記データを予め設定された回数繰り返し記憶させることを特徴とする。
本発明によれば、マスター記憶装置の書き込み可能量とスレーブ記憶装置の書き込み可能量の大小関係に応じて、マスター記憶装置及びスレーブ記憶装置に対するデータの記憶を制御することで、2つの記憶装置の寿命の到来時期をずらすことができるため、データの書き換え回数に上限が設けられた2つの記憶装置の耐故障性を向上させることができる。
本発明の実施の形態に係るミラーリング装置の概略構成を示す図である。 図1におけるCPUにより実行されるミラーリング初期化処理の手順を示すフローチャートである。 図1におけるCPUにより実行される記憶処理の手順を示すフローチャートである。 図1におけるCPUにより実行されるミラーリング初期化処理の手順を示すフローチャートである。 図1におけるCPUにより実行される記憶処理の手順を示すフローチャートである。 図6(A)は、図1におけるCPUにより実行されるダミーデータによる制御理の手順を示すフローチャートであり、図6(B)はリビルド制御処理の手順を示すフローチャートである。 図6(A)のステップS605のダミーデータ記憶処理の手順を示すフローチャートである。
以下、本発明の実施の形態について図面を参照しながら詳述する。
図1は、本発明の実施の形態に係るミラーリング装置100の概略構成を示す図である。
図1において、ミラーリング装置100には、データの書き換え回数に上限が設けられた2つの記憶装置であるストレージ1,2とホスト117とが接続されている。
ストレージ1,2は、SSD(Solid State Drive)である。ホスト117は、ストレージ1,2に関する情報を記憶しており、後述するようにミラーリング装置100はホスト117からストレージ1,2に関する情報を取得する。
また、ミラーリング装置100は、CPU101、ROM102、RAM103、ディスクコントローラ201,202,203、及びデータ転送ユニット119で構成され、それぞれシステムバス115に接続されている。
CPU101は、ミラーリング装置100全体を制御する。ROM102は、各種プログラムや各種データを記憶する。RAM103は、CPU101のワークエリアとして用いられたり、各種プログラムや各種データを記憶する。
後述するフローチャートは、ROM102またはRAM103に記憶されたプログラムをCPU101が実行する処理の手順を示している。
ディスクコントローラ201は、ストレージ1に記憶されたデータを読み出したり、ストレージ1にデータを記憶するための制御を行う。
ディスクコントローラ202は、ストレージ2に記憶されたデータを読み出したり、ストレージ2にデータを記憶するための制御を行う。
ディスクコントローラ203は、上述したストレージ1,2に関する情報などをホスト117から取得するためにホスト117と接続している。
データ転送ユニット119は、ディスクコントローラ201,202と接続し、ディスクコントローラ201,202間でのデータ転送を行う。
ホスト117から出力されたデータを、例えばストレージ1に記憶する処理では、ホスト117から出力されたデータがディスクコントローラ203を介してRAM103に記憶される。
そしてRAM103からデータをデータ転送ユニット119が読み出しながらディスクコントローラ201を介してストレージ1に記憶される。
上述した構成において、ストレージ1,2には原則として同一のデータが記憶されるように制御される。この場合、一方がマスタとなり、他方がスレーブとなるが、マスタとスレーブは故障や着脱などにより入れ替わる。いずれの場合も、マスタはストレージ1,2のいずれか一方であり、スレーブは他方である。
なお、図1のミラーリング装置100の構成は、2つのストレージ1,2が接続可能な構成となっているが、さらに他のストレージを接続できる構成であってもよい。
さらに、2つのストレージ1,2、及びホスト117は、図1のミラーリング装置100の外部に接続されているが、ミラーリング装置100の内部に設けられていてもよい。
次に、以下の説明で用いられる書き込み可能量などについて説明する。書き込み可能量を取得するため、まず総書き込み量を取得する。この総書き込み量は、SSDとディスクコントローラでやりとりされるATAコマンドの一種であるSMARTコマンドやベンダー固有コマンドにより取得できる。本実施の形態では、ディスクコントローラ201,202を介して、マスタとスレーブの各々の総書き込み量が取得される。
次に、寿命情報を取得する。この寿命情報は、SSDの書き換え可能回数を示しており、一般的にはSSDの容量なサイズと書き換え可能回数との積となる。従って、寿命情報=SSDの容量×書き換え可能回数である。
この寿命情報は、本実施の形態ではホスト117から取得されるが、ROM102に予め記憶しておいたものを取得するようにしてもよい。
こうして取得された総書き込み量、及び寿命情報から、書き込み可能量を以下の数式を計算することで取得する。
書き込み可能量=寿命情報−総書き込み量
=SSDの容量×書き換え可能回数−総書き込み量
このように、本実施の形態での書き込み可能量は、各々のストレージ1,2の総書き込み量から、各々のストレージ1,2でデータの書き換えが可能な残りの書き込み可能量となっている。
上記数式において、寿命情報は一定であり、総書き込み量はSSDにデータを記憶するほど増加する量であるため、書き込み可能量は減少していくこととなる。
本実施の形態では、マスタとスレーブの各々の書き込み可能量を取得し、これらの書き込み可能量の差分が予め定められた値以上となるように制御する。この予め定められた値は、ホスト117がどの程度SSDにアクセスするかによって依存する値である。従って、予め定められた値はホスト117から取得される。
書き込み可能量の差分が予め定められた値以上に制御することで、ストレージ1,2の寿命の到来時期をずらすことができるので、同時故障を抑制できる。なお、予め定められた値をホスト117から取得するようにしているが、予め定められた値が少なくとも0でなければ、寿命の到来時期をほぼ確実にずらすことができるので、予め定めておくようにしてもよい。
また、以下の説明では、マスタの書き込み可能量をA、スレーブの書き込み可能量をB、マスタとスレーブの各々の書き込み可能量の差分をD(=|A−B|)、予め定められた値をTと表現することがある。
図2は、図1におけるCPU101により実行されるミラーリング初期化処理の手順を示すフローチャートである。
図2において、マスタとスレーブの各々の書き込み可能量A,Bを取得する(ステップS201)。このステップS201は、ストレージ1,2でデータの書き換えが可能な残りの書き込み可能量を取得する取得手段に対応する。
次いで、マスタとスレーブの各々の書き込み可能量の差分Dが予め定められた値T以上か否か判別する(ステップS202)。このステップS202は、取得された各々の書き込み可能量の差分が予め定められた値以上か否か判別する判別手段に対応する。
ステップS202の判別の結果、差分Dが予め定められた値T以上の場合には(ステップS202でYES)、通常モードに設定して(ステップS203)、本処理を終了する。
通常モードとは、マスタとスレーブの両方に同一のデータを一度だけ記憶するモードである。
一方、ステップS202の判別の結果、差分Dが予め定められた値T未満の場合には(ステップS202でNO)、マスタの書き込み可能量Aがスレーブの書き込み可能量B未満か否か判別する(ステップS204)。
ステップS204の判別の結果、マスタの書き込み可能量Aがスレーブの書き込み可能量B未満の場合には(ステップS204でYES)、遅延モードに設定し(ステップS205)、本処理を終了する。
遅延モードとは、マスタにデータを記憶してから予め定められた時間が経過した後にスレーブへデータを記憶させるモードである。
一方、ステップS204の判別の結果、マスタの書き込み可能量Aがスレーブの書き込み可能量B未満ではない場合には(ステップS204でNO)、重複モードに設定し(ステップS206)、本処理を終了する。
重複モードとは、設定された回数だけ同一のデータをスレーブに記憶するモードである。従って、ステップS206では回数の設定も行われるが、回数はユーザにより設定可能としてもよい。
図3は、図1におけるCPU101により実行される記憶処理の手順を示すフローチャートである。
図3において、まず図2のミラーリング初期化処理で定められたモードで分岐する(ステップS301)。
ステップS301の判別の結果、通常モードの場合には(ステップS301で通常)、マスタにデータを記憶し(ステップS302)、スレーブにもデータを記憶して(ステップS303)、本処理を終了する。
なお、図3ではステップS301,302の順に処理をするようになっているが、同時に処理するようにしてもよい。この場合、RAM103に記憶されているデータをデータ転送ユニット119がディスクコントローラ201を介してストレージ1に、ディスクコントローラ202を介してストレージ2に同時に記憶することとなる。後述するフローチャートにおいて、マスタにデータを記憶してスレーブにもデータを記憶する処理が順に記載されている場合には、同時に記憶するようにしてもよい。
ステップS301の判別の結果、遅延モードの場合には(ステップS301で遅延)、まずマスタにデータを記憶する(ステップS304)。次いで、スレーブへのデータの記憶を遅延する(ステップS305)。
こうして遅延している間に、SSDの同一領域に記憶するデータがホスト117から出力されることで、データが更新されることがある。
そのため、データが更新されたか否か判別する(ステップS306)。ステップS306の判別の結果、データが更新された場合には(ステップS306でYES)、上記ステップS304に戻る。
一方、ステップS306の判別の結果、データが更新されていない場合には(ステップS306でNO)、スレーブにデータを記憶する(ステップS307)。
そして、マスタとスレーブの各々の書き込み可能量の差分Dが予め定められた値T以上か否か判別する(ステップS311)。
ステップS311の判別の結果、差分Dが予め定められた値T以上の場合には(ステップS311でYES)、通常モードに設定して(ステップS312)、本処理を終了する。
一方、ステップS311の判別の結果、差分Dが予め定められた値T未満の場合には(ステップS311でNO)、本処理を終了する。
上記ステップS301の処理に戻り、ステップS301の判別の結果、重複モードの場合には(ステップS301で重複)、まずマスタにデータを記憶する(ステップS308)。次いで、スレーブへデータを記憶し(ステップS309)、図2のステップS206で設定された回数だけデータを記憶したか否か判別する(ステップS310)。
ステップS310の判別の結果、設定された回数だけデータを記憶していない場合には(ステップS310でNO)、ステップS309に戻る。
一方、ステップS310の判別の結果、設定された回数だけデータを記憶した場合には(ステップS310でYES)、上記ステップS311に進む。
上記記憶処理について補足する。まず、上述したように、書き込み可能量であるA,Bは増加させることができないことと、D=|A−B|であることに注意する。
これを踏まえ、まずステップS301で通常に分岐する場合は、D≧Tであることから、マスタとスレーブの各々の書き込み可能量の差分が予め定められた値以上となっているので、そのままマスタとスレーブに記憶するようになっている。
また、ステップS301で遅延に分岐する場合は、D<TかつA<Bとなっている。この状態からD≧Tとするためには、B−A(=D)を増加させればよい。そのために、スレーブへの記憶を遅延させてスレーブへの記憶回数を抑制することで、マスタへの記憶回数が相対的に増加し、その結果AがBより早く減少するので、B−Aが増加することとなる。
次に、ステップS301で重複に分岐する場合は、D<TかつA≧Bとなっている。この状態からD≧Tとするためには、A−B(=D)を増加させればよい。そのために、スレーブへの記憶を設定された回数だけ行うことで、スレーブへの記憶回数が相対的に増加し、その結果BがAより早く減少するので、A−Bが増加することとなる。
このように、本実施の形態では差分が予め定められた値未満と判別された場合に、差分が予め定められた値以上となるようにストレージ1,2を制御する。より詳細には、書き込み可能量が小さい方の記憶装置である第1記憶装置へのデータの記憶回数を、書き込み可能量が小さくない方の記憶装置である第2記憶装置への記憶回数と比較して増加させるようにストレージ1,2を制御する。
特に、上述した図3のステップS304〜307では、第1記憶装置へデータを記憶してから(ステップS304)、予め定められた時間が経過した後に第2記憶装置へデータを記憶するように(ステップS307)、ストレージ1,2を制御している。
さらに、図3のステップS308〜310では、第2記憶装置へデータを記憶するたびに(ステップS308)、第1記憶装置へデータを予め設定された回数だけ繰り返し記憶するように(ステップS309,310)、ストレージ1,2を制御している。
上述した図2,3の処理では、通常モード、遅延モード、及び重複モードの3つのモードに設定しているが、通常モード、及び重複モードの2つのモードに設定する場合の処理について説明する。
図4は、図1におけるCPU101により実行されるミラーリング初期化処理の手順を示すフローチャートである。
図4において、マスタとスレーブの各々の書き込み可能量A,Bを取得する(ステップS401)。
次いで、マスタとスレーブの各々の書き込み可能量の差分Dが予め定められた値T以上か否か判別する(ステップS402)。ステップS402の判別の結果、差分Dが予め定められた値T以上の場合には(ステップS402でYES)、通常モードに設定して(ステップS403)、本処理を終了する。
一方、ステップS402の判別の結果、差分Dが予め定められた値T未満の場合には(ステップS402でNO)、重複モードに設定して回数の設定も行い(ステップS404)、本処理を終了する。
図5は、図1におけるCPU101により実行される記憶処理の手順を示すフローチャートである。
図5において、マスタにデータを記憶し(ステップS501)、スレーブにもデータを記憶する(ステップS502)。
次いで、図4のミラーリング初期化処理で定められたモードが重複モードか否か判別する(ステップS503)。
ステップS503の判別の結果、モードが重複モードでない場合には(ステップS503でNO)、本処理を終了する。
一方、ステップS503の判別の結果、モードが重複モードの場合には(ステップS503でYES)、マスタの書き込み可能量Aがスレーブの書き込み可能量B未満か否か判別する(ステップS504)。
ステップS504の判別の結果、マスタの書き込み可能量Aがスレーブの書き込み可能量B未満ではない場合には(ステップS504でNO)、スレーブへデータを記憶して(ステップS505)、ステップS507に進む。
一方、ステップS504の判別の結果、マスタの書き込み可能量Aがスレーブの書き込み可能量B未満の場合には(ステップS504でYES)、マスタへデータを記憶する(ステップS506)。
次いで、図4のステップS404で設定された回数だけデータを記憶したか否か判別する(ステップS507)。
ステップS507の判別の結果、設定された回数だけデータを記憶していない場合には(ステップS507でNO)、ステップS504に戻る。
一方、ステップS507の判別の結果、設定された回数だけデータを記憶した場合には(ステップS507でYES)、通常モードに設定して(ステップS203)、本処理を終了する。
上記ステップS504〜506について、A<Bの場合には、マスタへの記憶回数を増加させてスレーブへの記憶回数を抑制することで、マスタへの記憶回数が相対的に増加し、その結果AがBより早く減少するので、B−Aが増加することとなる。
逆に、A≧Bの場合には、スレーブへの記憶回数増加させてマスタへの記憶回数を抑制することで、スレーブへの記憶回数が相対的に増加し、その結果BがAより早く減少するので、A−Bが増加することとなる。
次に、ダミーデータを用いてD≧Tとなるように制御する処理について説明する。
図6(A)は、図1におけるCPU101により実行されるダミーデータによる制御理の手順を示すフローチャートであり、図6(B)はリビルド制御処理の手順を示すフローチャートである。
図6(A)において、マスタとスレーブの各々の書き込み可能量A,Bを取得する(ステップS602)。
次いで、マスタとスレーブの各々の書き込み可能量の差分Dが予め定められた値T以上か否か判別する(ステップS603)。ステップS603の判別の結果、差分Dが予め定められた値T以上の場合には(ステップS603でYES)、本処理を終了する。
一方、ステップS603の判別の結果、差分Dが予め定められた値T未満の場合には(ステップS603でNO)、ダミーデータのサイズ(T−D)を取得する(ステップS604)。
次いで、D≧Tとなるようにダミーデータを記憶するダミーデータ記憶処理を行い(ステップS605)、本処理を終了する。
次の図6(B)のリビルド制御処理は、リビルドする際にもD≧Tとなるように制御する処理であり、ここの説明では便宜的にマスターがストレージ1で、スレーブがストレージ2とする。
本実施の形態でのリビルド処理とは、データ転送ユニット119がディスクコントローラ201を介してストレージ1からデータを読み込み、読み込んだデータをディスクコントローラ202を介してストレージ2に記憶する処理を、ストレージ1の全領域に対して行う処理である。すなわち、リビルド処理はストレージ1全体をストレージ2へコピーする処理であり、リビルド処理が終了すると、ストレージ1,2は同じデータが記憶されていることとなる。
図6(B)において、上記リビルド処理を行い(ステップS600)、図6(A)のダミーデータによる制御処理を行い(ステップS601)、本処理を終了する。
図7は、図6(A)のステップS605のダミーデータ記憶処理の手順を示すフローチャートである。
図7において、ストレージ1,2への通常の記憶処理が行われていない状態、すなわちアイドリング状態となると(ステップS801でYES)、マスタとスレーブの各々の書き込み可能量の差分Dが予め定められた値T以上か否か判別する(ステップS802)。
ステップS802の判別の結果、差分Dが予め定められた値T以上の場合には(ステップS802でYES)、本処理を終了する。
一方、ステップS802の判別の結果、差分Dが予め定められた値T未満の場合には(ステップS802でNO)、マスタの書き込み可能量Aがスレーブの書き込み可能量B未満か否か判別する(ステップS803)。
ステップS803の判別の結果、マスタの書き込み可能量Aがスレーブの書き込み可能量B未満の場合には(ステップS803でYES)、図6のステップS604で取得したダミーサイズのサイズ分だけマスタからデータを読み込む(ステップS804)。そして、読み込んだダミーデータをスレーブに記憶して(ステップS805)、本処理を終了する。
一方、ステップS803の判別の結果、マスタの書き込み可能量Aがスレーブの書き込み可能量B未満ではない場合には(ステップS803でNO)、図6のステップS604で取得したダミーサイズのサイズ分だけスレーブからデータを読み込む(ステップS806)。そして、読み込んだダミーデータをマスタに記憶して(ステップS807)、本処理を終了する。このように、本実施の形態では、第1記憶装置へダミーデータを記憶するように(ステップS805,807)、ストレージ1,2を制御している。また、図6(B)に示されるように、本実施の形態では、ダミーデータは、第1記憶装置及び第2記憶装置のビルド処理が終了した後に記憶されるようになっている。
上記ステップS804〜807について、A<Bの場合には、マスタへの記憶回数を増加させることで、Aが減少するので、B−Aが増加することとなる。
逆に、A≧Bの場合には、スレーブへの記憶回数の増加させることで、Bが減少するので、A−Bが増加することとなる。
なお、上記ステップS804〜807の処理は、図6(B)のステップS600のリビルド処理と同様に、データ転送ユニット119が用いられる。
さらに、本実施の形態において、データ転送ユニット119が用いられる処理では、データ転送ユニット119を用いずに、CPU101により転送を行ってもよい。
このように、ミラーリング装置においてSSDを使用した場合に、適切に記憶方法を切り替えることで、寿命の短縮を抑えつつ耐故障性を向上させることができるため、ユーザの利便性に寄与する。
また、2台のディスクに対して同一のデータを書くため、ミラーリングを中止して運用することができるため、ユーザの利便性に寄与する。
以上説明したように、本実施の形態によれば、データの書き換えが可能な残りの書き込み可能量の差分が予め定められた値未満の場合に(ステップS202でNO)、差分が記予め定められた値以上となるように記憶装置を制御することで(ステップS304〜307、ステップS308〜310)、2つの記憶装置の寿命の到来時期をずらすことができるため、データの書き換え回数に上限が設けられた2つの記憶装置の耐故障性を向上させることができる。
(他の実施の形態)
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムコードを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
1,2 ストレージ
100 ミラーリング装置
101 CPU
102 ROM
103 RAM
117 ホスト
201,202,203 ディスクコントローラ

Claims (3)

  1. データの書き換え回数に上限が設けられマスター記憶装置と、データの書き換え回数に上限が設けられたスレーブ記憶装置を含む2つの記憶装置のミラーリングを行うミラーリング装置であって、
    各々の前記記憶装置の総書き込み量から、各々の前記記憶装置でデータの書き換えが可能な残りの書き込み可能量を取得する取得手段と、
    前記取得手段により取得された各々の前記書き込み可能量の差分が予め定められた値以上か否か判別する判別手段と、
    前記判別手段により、前記差分が前記予め定められた値未満と判別された場合に、前記差分が前記予め定められた値以上となるように前記記憶装置を制御する制御手段と、
    前記取得手段により取得された各々の前記書き込み可能量の差分が前記予め定められた値未満である場合に、前記マスター記憶装置の書き込み可能量と、前記スレーブ記憶装置の書き込み可能量のいずれが大きいかを判定する判定手段とを備え、
    前記判定手段により、前記マスター記憶装置への書き込み可能量が前記スレーブ記憶装置への書き込み可能量よりも小さいと判定された場合、前記制御手段は、前記マスター記憶装置へ第1のデータを記憶させてから予め定められた時間が経過するまでに前記第1のデータが更新されると、前記更新された第1のデータである第2のデータを前記マスター記憶装置へ記憶させ、さらに、前記マスター記憶装置へ前記第2のデータを記憶させてから予め定められた時間が経過した後に前記スレーブ記憶装置へ前記第1のデータを記憶させることなく前記第2のデータを記憶させ
    前記判定手段により、前記マスター記憶装置への書き込み可能量が前記スレーブ記憶装置への書き込み可能量よりも大きいと判定された場合、前記制御手段は、前記マスター記憶装置前記データを記憶するたびに、前記スレーブ記憶装置へ前記データを予め設定された回数繰り返し記憶させることを特徴とするミラーリング装置。
  2. 前記制御手段は、前記マスター記憶装置への書き込み可能量が前記スレーブ記憶装置への書き込み可能量よりも大きいと判定された場合に、前記書き込み可能量が小さい方の前記記憶装置である前記スレーブ記憶装置への前記データの記憶回数を、前記書き込み可能量が小さくない方の前記記憶装置である前記マスター記憶装置への記憶回数と比較して増加させるように前記スレーブ記憶装置、及び前記マスター記憶装置を制御することを特徴とする請求項1記載のミラーリング装置。
  3. データの書き換え回数に上限が設けられマスター記憶装置と、データの書き換え回数に上限が設けられたスレーブ記憶装置を含む2つの記憶装置のミラーリングを行うミラーリング装置の制御方法であって、
    各々の前記記憶装置の総書き込み量から、各々の前記記憶装置でデータの書き換えが可能な残りの書き込み可能量を取得手段により取得する取得ステップと、
    前記取得ステップで取得された各々の前記書き込み可能量の差分が予め定められた値以上か否かを判別手段により判別する判別ステップと、
    前記判別ステップで前記差分が前記予め定められた値未満と判別された場合に、前記差分が前記予め定められた値以上となるように前記記憶装置を制御手段により制御する制御ステップと、
    前記取得ステップで取得された各々の前記書き込み可能量の差分が前記予め定められた値未満である場合に、前記マスター記憶装置の書き込み可能量と、前記スレーブ記憶装置の書き込み可能量のいずれが大きいかを判定手段により判定する判定ステップとを備え、
    前記判定ステップで前記マスター記憶装置への書き込み可能量が前記スレーブ記憶装置への書き込み可能量よりも小さいと判定された場合、前記制御ステップでは、前記マスター記憶装置へ第1のデータを記憶させてから予め定められた時間が経過するまでに前記第1のデータが更新されると、前記更新された第1のデータである第2のデータを前記マスター記憶装置へ記憶させ、さらに、前記マスター記憶装置へ前記第2のデータを記憶させてから予め定められた時間が経過した後に前記スレーブ記憶装置へ前記第1のデータを記憶させることなく前記第2のデータを記憶させ
    前記判定ステップで前記マスター記憶装置への書き込み可能量が前記スレーブ記憶装置への書き込み可能量よりも大きいと判定された場合、前記制御ステップでは、前記マスター記憶装置前記データを記憶するたびに、前記スレーブ記憶装置へ前記データを予め設定された回数繰り返し記憶させることを特徴とする制御方法。
JP2014000291A 2014-01-06 2014-01-06 ミラーリング装置及びその制御方法 Active JP6399755B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014000291A JP6399755B2 (ja) 2014-01-06 2014-01-06 ミラーリング装置及びその制御方法
US14/575,123 US9779001B2 (en) 2014-01-06 2014-12-18 Mirroring device, control method thereof, and storage medium that maintain difference in remaining writable amounts of data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014000291A JP6399755B2 (ja) 2014-01-06 2014-01-06 ミラーリング装置及びその制御方法

Publications (2)

Publication Number Publication Date
JP2015129998A JP2015129998A (ja) 2015-07-16
JP6399755B2 true JP6399755B2 (ja) 2018-10-03

Family

ID=53495267

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014000291A Active JP6399755B2 (ja) 2014-01-06 2014-01-06 ミラーリング装置及びその制御方法

Country Status (2)

Country Link
US (1) US9779001B2 (ja)
JP (1) JP6399755B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6924088B2 (ja) * 2017-07-12 2021-08-25 キヤノン株式会社 情報処理装置及びその制御方法、並びにプログラム
JP7208000B2 (ja) * 2018-12-28 2023-01-18 キヤノン株式会社 情報処理装置及び情報処理装置の制御方法
JP7552141B2 (ja) 2020-08-21 2024-09-18 日本電気株式会社 情報処理装置、情報処理方法およびプログラム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7032087B1 (en) * 2003-10-28 2006-04-18 Sandisk Corporation Erase count differential table within a non-volatile memory system
US7523013B2 (en) * 2006-05-15 2009-04-21 Sandisk Corporation Methods of end of life calculation for non-volatile memories
US20080140918A1 (en) * 2006-12-11 2008-06-12 Pantas Sutardja Hybrid non-volatile solid state memory system
JP5242264B2 (ja) * 2008-07-07 2013-07-24 株式会社東芝 データ制御装置、ストレージシステムおよびプログラム
KR20100091544A (ko) * 2009-02-10 2010-08-19 삼성전자주식회사 메모리 시스템 및 그 마모도 관리 방법
JP4806089B1 (ja) * 2010-06-30 2011-11-02 株式会社東芝 情報処理装置、raidコントローラカード、およびミラーリング方法
US20120017052A1 (en) * 2010-07-19 2012-01-19 Sauber William F Information Handling System Universal Memory Wear Leveling System and Method
JP5524279B2 (ja) * 2011-09-13 2014-06-18 株式会社東芝 情報処理装置および情報処理方法
JP6225731B2 (ja) * 2014-01-31 2017-11-08 富士通株式会社 ストレージ制御装置、ストレージシステムおよびストレージ制御方法
US10528461B2 (en) * 2014-08-04 2020-01-07 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Controlling wear among flash memory devices based on remaining warranty

Also Published As

Publication number Publication date
US9779001B2 (en) 2017-10-03
JP2015129998A (ja) 2015-07-16
US20150193318A1 (en) 2015-07-09

Similar Documents

Publication Publication Date Title
US20120260020A1 (en) Non-volatile semiconductor memory module enabling out of order host command chunk media access
US9116852B2 (en) Processing a copy command directed to a first storage architecture for data that is stored in a second storage architecture
US20170139605A1 (en) Control device and control method
US20120221771A1 (en) Data storage system and data mapping method of the same
JP5853649B2 (ja) ストレージ装置,制御装置及びプログラム
TWI456389B (zh) 儲存虛擬化系統中更新實體儲存裝置控制程式之方法及用此方法之儲存虛擬化控制器與系統
US9448742B2 (en) Communication between a host and a secondary storage device
US9811473B2 (en) Storage unit controller and control method thereof, and storage device
JP6399755B2 (ja) ミラーリング装置及びその制御方法
JP2012079100A (ja) ディスク制御装置及びディスク制御方法、並びにプログラム
JP6052288B2 (ja) ディスクアレイ制御装置、ディスクアレイ制御方法及びディスクアレイ制御プログラム
JP5218147B2 (ja) ストレージ制御装置,ストレージ制御方法およびストレージ制御プログラム
JP5626514B2 (ja) ストレージ装置及びストレージ装置のリビルド処理方法
JP5181795B2 (ja) Raidシステム、及びエラーセクタの修復方法
JP2009211162A (ja) 情報処理装置および起動制御方法
US20120215966A1 (en) Disk array unit and control method thereof
JP6556980B2 (ja) ストレージ制御装置、ストレージ制御方法及びストレージ制御プログラム
JP2019159437A (ja) 情報処理装置、転送制御方法および転送制御プログラム
JP5729043B2 (ja) ストレージ装置および制御装置
JP6814020B2 (ja) 情報処理装置とその制御方法、及びプログラム
WO2015166741A1 (ja) インメモリ管理システムおよびインメモリ管理用プログラム
JP2005346212A (ja) ディスクアレイコントローラおよび情報処理装置
JP2005107841A (ja) ディスクアレイコントローラ及び容量拡張方法
JP2018063491A (ja) 制御装置、制御方法及びプログラム
JP5534852B2 (ja) 半導体ディスク装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161226

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171027

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171114

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180529

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180726

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180904

R151 Written notification of patent or utility model registration

Ref document number: 6399755

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151