JP6229067B2 - データアクセス方法及び装置 - Google Patents

データアクセス方法及び装置 Download PDF

Info

Publication number
JP6229067B2
JP6229067B2 JP2016544792A JP2016544792A JP6229067B2 JP 6229067 B2 JP6229067 B2 JP 6229067B2 JP 2016544792 A JP2016544792 A JP 2016544792A JP 2016544792 A JP2016544792 A JP 2016544792A JP 6229067 B2 JP6229067 B2 JP 6229067B2
Authority
JP
Japan
Prior art keywords
state
read
data
stripe
disk
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
JP2016544792A
Other languages
English (en)
Other versions
JP2017502424A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of JP2017502424A publication Critical patent/JP2017502424A/ja
Application granted granted Critical
Publication of JP6229067B2 publication Critical patent/JP6229067B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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
    • 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
    • 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/0653Monitoring storage devices or systems
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/103Hybrid, i.e. RAID systems with parity comprising a mix of RAID types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1059Parity-single bit-RAID5, i.e. RAID 5 implementations
    • 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
    • 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/0647Migration mechanisms

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Description

本願は、中国特許出願番号201410007103.0、2014年1月7日出願、名称「DATA ACCESS METHOD AND APPARATUS」の優先権を主張する。該中国特許出願は、参照によりその全体がここに組み込まれる。
本発明は、情報技術の分野に関し、特にデータアクセス方法及び装置に関する。
情報技術の急速な発展に伴い、装置を用いることによりデータを格納する方法が広く適用されている。しかしながら、装置の記憶領域は、格納されたデータの損失を生じ並びに人々に不便及び復旧不可能な損失さえももたらす損傷の危険に晒されている。データ信頼性に対する要件は、異なる分野において変化し、データ信頼性が厳しく要求されない適用シナリオでは、記憶領域の中の残留データも高価である。したがって、人々にとって、効率的データアクセスのために、損傷記憶領域の場合にデータ損失をどのように減少させるかを検討することが課題である。
従来技術では、RAID(Redundant Array of Independent Disks)技術がデータアクセスのために使用される。RAIDでは、複数のディスクがディスクグループを形成し、各々のディスクは複数のストライプに分けられ、データは、複数のディスクの異なるストライプに別個に格納される複数のデータブロックにセグメント化され、各々のストライプは1つのデータブロックを格納する。RAID5が一例として用いられる。RAID5はディスクグループを含み、ディスクグループはn+1個のディスクを含み、n個のディスクは、アクセスのためのデータを格納するために用いられ、1つのディスクは、冗長データを格納するために用いられる。ディスクグループの中の1つのディスクが故障になると、故障ディスクの中の未知のデータは、ディスクグループの中の他のディスクにあるデータを用いることにより計算により得られ、そして全データがアクセスできる。ディスクグループの中の1より多くのディスクが故障になると、故障ディスクの中の未知のデータは、ディスクグループの中の他のディスクにあるデータを用いることにより計算により得ることができない。ディスクグループは障害状態になり、ディスクグループの中のデータはアクセスできない。この場合、ディスクグループの中の残留データにアクセスするために、ビルトインRAID方法又は第三者サービスが、用いられても良い。ここで、残留データは、ディスクグループの中の故障ディスクを除く他のディスクにあるデータである。
本発明を実施する過程で、発明者は、従来技術が少なくとも以下の欠点を有することを見出した。
1つより多くのディスクが故障になり、別の手段が取られないと、ディスクグループの中の全データが失われ、データが効率的にアクセスできない。さらに、RAIDビルトインサービス方法又は第三者サービス方法がデータにアクセスするために用いられても、RAIDサービス又は第三者サービスのリアルタイム性能の欠如が、適宜且つ迅速にデータを読み出すことを不可能にし、長時間のサービス中断を生じる。さらに、第三者が関与するとき、データ機密性が保証できない。
従来技術の問題を解決するために、本発明の実施形態は、データアクセス方法及び装置を提供する。技術的解決法は、以下の通りである。
第1の態様によると、データアクセス方法が提供される。前記方法は、RAID(redundant array of independent disks)に適用され、前記RAIDは、少なくとも1つの第1のディスクグループを有し、前記第1のディスクグループは、少なくとも1つのディスクを有し、各々のディスクは、予め少なくとも1つのストライプに分割され、前記方法は、前記第1のディスクグループに対するデータリード要求を取得するステップであって、前記データリード要求はリードアドレスを運ぶ、ステップと、前記リードアドレスに従い前記第1のディスクグループの第1のストライプ位置範囲を決定するステップであって、少なくとも1つの第1のストライプは、前記第1のストライプ位置範囲に含まれる、ステップと、前記第1のストライプ位置範囲の中の前記少なくとも1つの第1のストライプから、データを順次リードするステップと、データが現在の第1のストライプからのリードに成功しない場合、前記現在の第1のストライプのデータリード結果をプリセットパディングデータに設定し、全ての前記少なくとも1つの第1のストライプからデータがリードされるまで、次の第1のストライプからデータをリードし続けるステップと、各々の第1のストライプのデータリード結果を返すステップと、を有する。
第1の態様を参照し、第1の態様の第1の可能な実装方法では、前記RAIDは、第2のディスクグループを更に有し、前記方法は、前記第1のディスクグループに対するデータライト要求を取得するステップであって、前記データライト要求は、ライトアドレスを運ぶ、ステップと、前記ライトアドレスに従い前記第1のディスクグループの第2のストライプ位置範囲を決定するステップであって、少なくとも1つの第2のストライプは、前記第2のストライプ位置範囲に含まれる、ステップと、前記第2のストライプ位置範囲の中の前記少なくとも1つの第2のストライプにデータを順次ライトするステップと、データが現在の第2のストライプへのライトに成功しない場合、前記第1のディスクグループの状態を知るためにスキャンするステップであって、前記第1のディスクグループの状態は、リードオンリー状態、通常リード/ライト状態、及び劣化状態のうちの1つである、ステップと、前記第1のディスクグループが前記リードオンリー状態である場合、全てのデータがライトされるまで、前記第2のディスクグループの対応するストライプにデータをライトし続けるステップと、を更に有する。
第1の態様の第1の可能な実装方法を参照し、第1の態様の第2の可能な実装方法では、前記第1のディスクグループの状態を知るためにスキャンするステップの後に、前記方法は、前記第1のディスクグループが前記劣化状態である場合、応答でアラームを送信するステップ、を更に有する。
第1の態様乃至第1の態様の第1から第2の可能な実装方法を参照して、第1の態様の第3の可能な実装方法では、前記方法は、前記第1のディスクグループの各々のディスクの状態が変化したか否かを調べるステップであって、前記ディスクの状態は、新しいディスク状態、通常状態、及び故障状態のうちの1つである、ステップと、前記第1のディスクグループの第1のディスクが前記故障状態から前記新しいディスク状態に変化する場合、前記第1のディスクをフォーマットし、前記フォーマットした第1のディスクをストライプに分割し、分割により得られた各々のストライプの状態を非ライト状態に設定するステップと、を更に有する。
第1の態様の第3の可能な実装方法を参照して、第1の態様の第4の可能な実装方法では、分割により得られた各々のストライプの状態を非ライト状態に設定するステップの後に、前記方法は、前記非ライト状態のストライプからのデータリードの間に、前記非ライト状態のストライプのデータリード結果をプリセットパディングデータに設定するステップ、を更に有する。
第1の態様乃至第1の態様の第1から第4の可能な実装方法を参照し、第1の態様の第5の可能な実装方法では、前記方法は、前記第1のディスクグループが現在、リードオンリー状態であるか否かを調べるステップであって、前記リードオンリー状態は、前記第1のディスクグループの少なくとも2つのディスクが故障状態であることを示す、ステップと、前記第1のディスクグループが現在、非リードオンリー状態である場合、前記第1のディスクグループの最終検出状態が前記リードオンリー状態であるか否かを決定するステップと、前記第1のディスクグループの最終検出状態が前記リードオンリー状態である場合、前記第1のディスクグループの状態を前記非リードオンリー状態に設定するステップであって、前記非リードオンリー状態は、劣化状態と、通常リード/ライト状態と、を有する、ステップと、を更に有する。
第1の態様の第5の可能な実装方法を参照して、第1の態様の第6の可能な実装方法では、前記第1のディスクグループが現在リードオンリー状態であるか否かを調べるステップの後に、前記第1のディスクグループが現在、前記リードオンリー状態である場合、前記第1のディスクグループの最終検出状態が前記非リードオンリー状態であるか否かを決定するステップと、前記第1のディスクグループの最終検出状態が前記非リードオンリー状態である場合、前記第1のディスクグループの状態を前記リードオンリー状態に設定するステップと、を更に有する。
第2の態様によると、データアクセス装置が提供される。前記装置は、RAID(redundant array of independent disks)に適用され、前記RAIDは、少なくとも1つの第1のディスクグループを有し、前記第1のディスクグループは、少なくとも1つのディスクを有し、各々のディスクは、予め少なくとも1つのストライプに分割され、前記装置は、前記第1のディスクグループに対するデータリード要求を取得するよう構成される第1の取得モジュールであって、前記データリード要求はリードアドレスを運ぶ、第1の取得モジュールと、前記リードアドレスに従い前記第1のディスクグループの第1のストライプ位置範囲を決定するよう構成される第1の決定モジュールであって、少なくとも1つの第1のストライプは、前記第1のストライプ位置範囲に含まれる、第1の決定モジュールと、前記第1のストライプ位置範囲の中の前記少なくとも1つの第1のストライプから、データを順次リードするよう構成されるリードモジュールと、データが現在の第1のストライプからのリードに成功しないとき、前記現在の第1のストライプのデータリード結果をプリセットパディングデータに設定し、全ての前記少なくとも1つの第1のストライプからデータがリードされるまで、次の第1のストライプからデータをリードし続けるよう構成される第1の設定モジュールと、各々の第1のストライプのデータリード結果を返すよう構成される返還モジュールと、を有する。
第2の態様を参照し、第2の態様の第1の可能な実装方法では、前記RAIDは、第2のディスクグループを更に有し、前記装置は、前記第1のディスクグループに対するデータライト要求を取得するよう構成される第2の取得モジュールであって、前記データライト要求は、ライトアドレスを運ぶ、第2の取得モジュールと、前記ライトアドレスに従い前記第1のディスクグループの第2のストライプ位置範囲を決定するよう構成される第2の決定モジュールであって、少なくとも1つの第2のストライプは、前記第2のストライプ位置範囲に含まれる、第2の決定モジュールと、前記第2のストライプ位置範囲の中の前記少なくとも1つの第2のストライプにデータを順次ライトするよう構成される第1のライトモジュールと、データが現在の第2のストライプへのライトに成功しないとき、前記第1のディスクグループの状態を知るためにスキャンするよう構成されるスキャンモジュールであって、前記第1のディスクグループの状態は、リードオンリー状態、通常リード/ライト状態、及び劣化状態のうちの1つである、スキャンモジュールと、前記第1のディスクグループが前記リードオンリー状態であるとき、全てのデータがライトされるまで、前記第2のディスクグループの対応するストライプにデータをライトし続けるよう構成される第2のライトモジュールと、を更に有する。
第2の態様の第1の可能な実装方法を参照し、第2の態様の第2の可能な実装方法では、前記装置は、前記第1のディスクグループが前記劣化状態であるとき、応答でアラームを送信するよう構成される応答モジュール、を更に有する。
第2の態様乃至第2の態様の第1から第2の可能な実装方法を参照して、第2の態様の第3の可能な実装方法では、前記装置は、前記第1のディスクグループの各々のディスクの状態が変化したか否かを調べるよう構成される第1のチェックモジュールであって、前記ディスクの状態は、新しいディスク状態、通常状態、及び故障状態のうちの1つである、第1のチェックモジュールと、前記第1のディスクグループの第1のディスクが前記故障状態から前記新しいディスク状態に変化するとき、前記第1のディスクをフォーマットするよう構成されるフォーマットモジュールと、前記フォーマットされた第1のディスクをストライプに分割するよう構成される分割モジュールと、分割により得られた各々のストライプの状態を非ライト状態に設定する第2の設定モジュールと、を更に有する。
第2の態様の第3の可能な実装方法を参照し、第2の態様の第4の可能な実装方法では、前記第1の設定モジュールは、前記非ライト状態のストライプからのデータリードの間に、前記非ライト状態のストライプのデータリード結果を、プリセットパディングデータに設定するよう更に構成される。
第2の態様乃至第2の態様の第1から第4の可能な実装方法を参照し、第2の態様の第5の可能な実装方法では、前記装置は、前記第1のディスクグループが現在、リードオンリー状態であるか否かを調べるよう構成される第2のチェックモジュールであって、前記リードオンリー状態は、前記第1のディスクグループの少なくとも2つのディスクが故障状態であることを示す、第2のチェックモジュールと、前記第1のディスクグループが現在、非リードオンリー状態である場合、前記第1のディスクグループの最終検出状態が前記リードオンリー状態であるか否かを決定するよう構成される第3の決定モジュールと、前記第1のディスクグループの最終検出状態が前記リードオンリー状態であるとき、前記第1のディスクグループの状態を前記非リードオンリー状態に設定するよう構成される第3の設定モジュールであって、前記非リードオンリー状態は、劣化状態と、通常リード/ライト状態と、を有する、第3の設定モジュールと、を更に有する。
第2の態様の第5の可能な実装方法を参照して、第2の態様の第6の可能な実装方法では、前記装置は、前記第1のディスクグループが現在、前記リードオンリー状態であるとき、前記第1のディスクグループの最終検出状態が前記非リードオンリー状態であるか否かを決定するよう構成される第4の決定モジュールと、前記第1のディスクグループの最終検出状態が前記非リードオンリー状態であるとき、前記第1のディスクグループの状態を前記リードオンリー状態に設定するよう構成される第4の設定モジュールと、を更に有する。
本発明の実施形態により提供される技術的解決策は、以下の有利な効果をもたらす。
データがリードに成功しない第1のストライプのデータリード結果は、プリセットパディングデータに設定され、データリードは、データが全ての第1のストライプからリードされるまで、次の第1のストライプへ進み、各々の第1のストライプのデータリード結果が返される。これは、データがリードに成功しないとき、アクセス中断時間を短縮し、データ損失を低減する。
本発明の実施形態の技術的解決策をより明確に記載するために、実施形態を説明するのに必要な添付の図面を以下に簡単に説明する。明らかなことに、以下の説明中の添付の図面は、本発明のほんの一部の実施形態であり、これらの図面に従って当業者により創造的労力を有しないで他の図面も得られる。
本発明の実施形態1によるデータアクセス方法のフローチャートである。 本発明の実施形態2によるデータアクセス方法のフローチャートである。 本発明の実施形態2による第1のディスクの構造の概略図である。 本発明の実施形態2による分割されたストライプの概略図である。 本発明の実施形態2による第1の種類の第1のディスクグループの構造の概略図である。 本発明の実施形態2による第2の種類の第1のディスクグループの構造の概略図である。 本発明の実施形態2によるデータアクセスのためのソフトウェアの構造の概略図である。 本発明の実施形態2によるソフトウェアRAIDの構造の概略図である。 本発明の実施形態2によるデータアクセスのためのハードウェアの構造の概略図である。 本発明の実施形態3によるデータアクセス方法のフローチャートである。 本発明の実施形態3によるディスプレイインタフェースの概略図である。 本発明の実施形態4によるデータアクセス装置の構造の概略図である。
データにアクセスするために、データを格納する装置が決定される必要がある。記憶装置が決定されるとき、記憶装置の性能、信頼性、及びコストが検討される必要がある。RAIDは、性能、信頼性、及びコストの間の良好なバランスを達成する。したがって、殆どの民間の記憶装置では、RAIDの技術は、記憶環境を構築するために用いられる。
本発明の実施形態で提供されるデータアクセス方法は、ストリーミングメディアデータ記憶のシナリオだけでなく、テキスト記憶及びインターネットキャッシングのシナリオのようなデータ信頼性が厳格に要求されないシナリオにも適用できる。
本発明の目的、技術的解決策、及び利点を一層明らかにするために、以下に、本発明の実施形態を、添付の図面を参照して以下に詳述する。
<実施形態1>
本発明の一実施形態は、RAIDに適用されるデータアクセス方法を提供する。RAIDは、少なくとも第1のディスクグループを有し、第1のディスクグループは、少なくとも1つのディスクを有し、各々のディスクは、予め少なくとも1つのストライプに分割される。図1を参照すると、本実施形態で提供される方法のプロセスは、以下を含む。
101:第1のディスクグループに対するデータリード要求を取得する。ここで、データリード要求は、リードアドレスを有する。
102:リードアドレスに従い、第1のディスクグループの第1のストライプ位置範囲を決定する。ここで、少なくとも1つの第1のストライプは、第1のストライプ位置範囲に含まれる。
103:第1のストライプ位置範囲の中の少なくとも1つの第1のストライプからデータを順次リードする。
104:データが現在の第1のストライプからのリードに成功しない場合、現在の第1のストライプについてのデータリード結果を、プリセットパディングデータに設定し、全ての少なくとも1つの第1のストライプからデータがリードされるまで、次の第1のストライプからデータをリードし続け、各々の第1のストライプのデータリード結果を返す。
望ましくは、RAIDは、第2のディスクグループを更に有し、方法は、更に以下を有する。
第1のディスクグループに対するデータライト要求を取得する。ここで、データライト要求は、ライトアドレスを有する。
ライトアドレスに従い、第1のディスクグループの第2のストライプ位置範囲を決定する。ここで、少なくとも1つの第2のストライプは、第2のストライプ位置範囲に含まれる。
第2のストライプ位置範囲の中の少なくとも1つの第2のストライプからデータを順次ライトする。
データが現在の第2のストライプへのライトに成功しない場合、第1のディスクグループの状態を知るためにスキャンする。ここで、第1のディスクグループの状態は、リードオンリー状態、通常リード/ライト状態、及び劣化状態のうちの1つである。
第1のディスクグループがリードオンリー状態である場合、全てのデータがライトされるまで、第2のディスクグループの中の対応するストライプにデータをライトし続ける。
望ましくは、第1のディスクグループの状態を知るためにスキャンした後に、方法は更に以下を有する。
第1のディスクグループが劣化状態である場合、応答でアラームを送信する。
望ましくは、方法は、以下を更に含む。
第1のディスクグループの中の各々のディスクの状態が変化したか否かを調べる。ここで、ディスクの状態は、新しいディスク状態、通常状態、及び故障状態の内の1つである。
第1のディスクグループの中の第1のディスクが故障状態から新しいディスク状態に変化した場合、第1のディスクをフォーマットし、フォーマットした第1のディスクをストライプに分割し、分割により得られた各々のストライプの状態を非ライト状態に設定する。
望ましくは、分割により得られた各々のストライプの状態を非ライト状態に設定した後に、方法は、更に以下を有する。
非ライト状態のストライプからのデータリードの間に、非ライト状態のストライプのデータリード結果を、プリセットパディングデータに設定する。
望ましくは、方法は、以下を更に含む。
第1のディスクグループが現在リードオンリー状態であるか否かを調べる。ここで、リードオンリー状態は、第1のディスクグループの中の少なくとも2つのディスクが故障状態であることを示す。
第1のディスクグループが現在、非リードオンリー状態である場合、第1のディスクグループの最終検出状態がリードオンリー状態であるか否かを決定する。
第1のディスクグループの最終検出状態がリードオンリー状態である場合、第1のディスクグループの状態を非リードオンリー状態に設定する。ここで、非リードオンリー状態は、劣化状態、及び通常リード/ライト状態を含む。
望ましくは、第1のディスクグループが現在リードオンリー状態であるか否かを調べた後に、方法は更に以下を有する。
第1のディスクグループが現在、リードオンリー状態である場合、第1のディスクグループの最終検出状態が非リードオンリー状態であるか否かを決定する。
第1のディスクグループの最終検出状態が非リードオンリー状態である場合、第1のディスクグループの状態をリードオンリー状態に設定する。
本実施形態で提供される方法では、データは、第1のディスクグループの第1のストライプ位置範囲で順次リードされ、第1のストライプ位置範囲は、第1のディスクグループに対して取得されたデータリード要求で運ばれるリードアドレスに従い決定され、データがリードに成功しない第1のストライプのデータリード結果は、プリセットパディングデータに設定され、データリードは、データが全ての第1のストライプからリードされるまで、次の第1のストライプに進み、各々の第1のストライプのデータリード結果が返され、データ損失を低減し、データがリードに成功しないときアクセス中断時間を短縮し、第三者が関与しないのでデータ機密性を保証する。
<実施形態2>
本発明の一実施形態は、RAIDに適用されるデータアクセス方法を提供する。RAIDは、少なくとも第1のディスクグループを有し、第1のディスクグループは、少なくとも1つのディスクを有し、各々のディスクは、予め少なくとも1つのストライプに分割される。前述の実施形態1の内容を参照して、本発明の本実施形態で提供される方法は、詳細に説明及び記載される。図2を参照すると、方法のプロセスは、以下を有する。
201:第1のディスクグループに対するデータリード要求を取得する。ここで、データリード要求は、リードアドレスを有する。
データリード要求を取得する方法は、本実施形態では特に限定されない。特定の実装では、メッセージを受信する方法が、データリード要求を取得するために用いられても良い。確かに、前述の方法に加えて、別の方法も用いられても良い。
さらに、リード範囲を決定するために、データリード要求は、リードアドレスを運び、リードアドレスに従って、リード範囲が決定される。リードアドレスを運ぶことに加え、データリード要求は、更に他の情報を運んでも良い。これは、本実施形態では特に限定されない。例えば、データリード要求は、リードシーケンスを運ぶ。
202:リードアドレスに従い、第1のディスクグループの第1のストライプ位置範囲を決定する。ここで、少なくとも1つの第1のストライプは、第1のストライプ位置範囲に含まれる。
具体的には、リードアドレスに従って第1のディスクグループの第1のストライプ位置範囲を決定するステップは、限定ではないが、以下を含む。リードアドレスに従って、リードアドレスに対応する第1のディスクグループの第1のディスクを計算するステップと、各々の第1のディスクの第1のストライプ位置範囲を計算するステップであって、第1のディスクグループの第1のストライプ位置範囲は、第1のディスクの第1のストライプ位置範囲の集合である、ステップと。勿論、前述の方法に加えて、リードアドレスに従って第1のディスクグループの第1のストライプ位置範囲を決定するために、別の方法が用いられても良い。これは、本実施形態では特に限定されない。
留意すべきことに、少なくとも1つの第1のストライプは、第1のストライプ位置範囲に含まれ、後続のステップで、データは、第1のストライプ位置範囲の中の少なくとも1つの第1のストライプから順次リードされても良い。
理解を容易にするために、第1のディスクグループは、ディスクD1乃至D8を有し、説明のための例として用いられる。リードアドレスは、D1のストライプ1からD4のストライプ1である。ここで、D1のストライプ1は、ディスクD1のストライプ1であり、D4のストライプ1は、ディスクD4のストライプ1である。リードアドレスに従い計算され、リードアドレスに対応する第1のディスクグループの第1のディスクは、D1からD4である。ディスクD1の第1のストライプ位置範囲がストライプ1であること、ディスクD2の第1のストライプ位置範囲がストライプ1であること、ディスクD3の第1のストライプ位置範囲がストライプ1であること、ディスクD4の第1のストライプ位置範囲がストライプ1であること、が計算される。したがって、第1のディスクグループの第1のストライプ位置範囲は、ディスクD1のストライプ1、ディスクD2のストライプ1、ディスクD3のストライプ1、ディスクD4のストライプ1、を含む。つまり、4個の第1のストライプが、第1のストライプ位置範囲に含まれる。
203:第1のストライプ位置範囲の中の少なくとも1つの第1のストライプからデータを順次リードする。
第1のディスクグループの第1のストライプ位置範囲は、リードアドレスに従い決定される。したがって、データは、第1のストライプ位置範囲の中の少なくとも1つの第1のストライプから直接順次リードされ得る。ストライプからデータをリードする方法は、本実施形態では特に限定されない。例えば、アクセスされるべきデータが連続するデータである場合、要求されていないデータは、予めリードされても良く、リードデータは、メモリに格納される。データリード要求が取得された後、データは、メモリから直接リードされる。それにより、データリード速度を向上する。別の例として、アクセスされるべきデータがランダムデータである場合、データは、データリード要求が取得された後、対応する記憶領域から直接リードされる。
204:非ライト状態のストライプからのデータリードの間に、非ライト状態のストライプのデータリード結果を、プリセットパディングデータに設定する。
ストライプの状態を決定できるために、本実施形態で提供される方法は、以下を更に有する。第1のディスクグループの各々のディスクの状態が変化したか否かを調べる。ここで、ディスクの状態は、新しいディスク状態、通常状態、及び故障状態のうちの1つである。第1のディスクグループの第1のディスクが故障状態から新しいディスク状態に変化する場合、第1のディスクをフォーマットし、フォーマットした第1のディスクをストライプに分割し、分割により得られた各々のストライプの状態を非ライト状態に設定する。
第1のディスクグループの各々のディスクの状態を調べることをトリガする方法は、本実施形態では特に限定されない。特定の実装では、ディスクの状態の調査は、定期的にトリガされても良い。勿論、前述の方法に加えて、ディスクの状態の調査をトリガするために別の方法も用いられても良い。ディスクの状態は、新しいディスク状態、通常状態、及び故障状態のうちの1つである。新しいディスク状態のディスクは、ディスクグループに新しく挿入されるディスクである。通常状態のディスクは、データがリードでき、データがディスクグループにライトできるディスクである。故障状態のディスクは、故障している又はディスクグループから除去されるディスクである。
ディスクグループの第1のディスクが故障状態から新しいディスク状態に変化する場合、第1のディスクは、新しいディスクと手動で交換されても良い。新しい第1のディスクを正常に使用するために、新しい第1のディスクは、フォーマットされ、フォーマットされた第1のディスクはストライプに分割され、分割により得られた各々のストライプの状態は、非ライト状態に設定される。ストライプの状態は、本実施形態では特に限定されない。ストライプの状態は、限定ではないが、ライト状態、及び非ライト状態を含む。留意すべきことに、第1のディスクがフォーマットされ、フォーマットされた第1のディスクがストライプに分割された後、データは、第1のディスクから正常にリードされ及びそれにライトでき、第1のディスクは新しいディスク状態から通常状態に変化する。
理解を容易にするために、図3に示す第1のディスクは説明のための例として用いられる。第1のディスクは、データを格納するために、それぞれデータ領域とメタデータ領域である2つの領域に分割される。データ領域は、ストライプ1〜ストライプ5に分割される。第1のディスクは故障状態から新しいディスク状態に変化したので、ストライプ1〜ストライプ5の状態は全て、非ライト状態に設定される。メタデータ領域は、グローバルメタデータ領域と、ローカルディスクメタデータ領域と、に更に分割される。グローバルメタデータ領域には、第1のディスクグループのメタデータが、B+ツリーの形式で格納される。ローカルディスクメタデータ領域には、グローバルメタデータ領域に格納される第1のディスクグループのメタデータに従い、第1のディスクの非ライト状態のストライプの識別子は空きストライプリンクリストに格納され、第1のディスクのライト状態のストライプの識別子は使用ストライプリンクリストに格納される。第1のディスクグループのメタデータは、ミラーリング方法で、第1のディスクグループの各々の第1のディスクのグローバルメタデータ領域に格納される。つまり、第1のディスクグループの同じメタデータは、第1のディスクグループの各々の第1のディスクのグローバルメタデータ領域に記録される。
さらに、分割されたストライプのサイズは、本実施形態では特に限定されない。特定の実装では、異なるデータに従い異なる分割が実行されても良い。一例として、特に高解像度ビデオのためのストリーミングメディアデータを用い、1又は2個のストライプの中のデータが失われるとき、幾つかのピクチャフレームのみが損傷され得る。25フレーム毎秒の再生レートでは、損傷された幾つかのピクチャフレームは、有意な視覚的影響を有しない。大多数のデコーダ及びプレイヤは、このようなエラーに耐性がある。損傷ストライプの中のデータが増加するにつれ、ビデオの再生は間欠的になる場合がある。ビデオ観察のシナリオでは、このようなビデオデータは、概して重大である。
理解を容易にするために、分割により得られた図4(1)に示すストライプは説明のための例として用いられる。第1の行は、分割により得られたストライプである。ストライプのサイズは1MBである。ストライプの中のデータa,b,c,e,f,h,i,j,k,m,n,p,q,r,s,u,v,xは、失われていない。0でマークされたストライプの中のデータは失われている。第2の行は、ビデオデータタイプである。ここで、Iはキーフレーム(I−フレーム)を表し、Pは前方予測フレーム(P−フレーム)を表し、0データストライプに対応するI−フレーム及びP−フレームは、損傷フレームである。データが順次リードされるとき、データは、第1のI−フレーム及び第1〜第3のP−フレームに対応するストライプからのリードに成功し、スクリーンにレンダリングでき、データは第4のP−フレーム及び第5のP−フレームに対応するストライプからのリードに成功せず、デコーダがグローバルデータを得る場合、アーチファクトが短い時間の間、スクリーンに表示される。後続フレームの表示の影響のために、前のコンテンツが参照されても良い。8Mbpsビットレートのビデオでは、ビデオは、時折のフレームフリーズ及び幾らかのアーチファクトを伴い、殆どスムーズに再生される。
別の例では、分割により得られた図4(2)に示すストライプは説明のための例として用いられる。第1の行は、分割により得られたストライプであり、ストライプサイズは256KBである。第2の行はビデオデータタイプである。ここで、ビットレートは、図4(1)と同じである。図4(2)から分かるように、1つのフレームに対応するストライプの量が増大すると、損傷ストライプの量も増大する。したがって、適正なストライプサイズは、メディアデータのビットレートに関連する。より大きなストライプサイズは、I−フレームが連続的に損傷される確率を低減できるが、1つのストライプに含まれるフレームの量も増大し、メディアデータが再生されるとき、より多くのフレームがスキップされる。より小さなストライプサイズは、I−フレームが連続的に損傷される確率を増大し、その結果、メディアデータ再生の粗悪な結果をもたらす。8Mbpsビットレートの1080pビデオでは、1MBのストライプサイズが良好な選択である。別のビットレートのビデオファイルでは、ストライプサイズは、ストライプサイズに対するビットレートの前述の割合に従い、任意に減少され得る。
さらに、非ライト状態のストライプからのデータリードの間に、非ライト状態のストライプのデータリード結果は、プリセットパディングデータに設定される。非ライト状態のストライプに格納されるデータが無いので、非ライト状態のストライプからのデータリードの間、データは、実際にリードされず、非ライト状態のストライプのデータリード結果は、プリセットパディングデータに設定される。プリセットパディングデータの数値は、本実施形態では特に限定されない。特定の実装では、プリセットパディングデータの数値はゼロであっても良い。勿論、前述の数値に加えて、別の数値もプリセットされても良い。
205:データが現在の第1のストライプからのリードに成功しない場合、現在の第1のストライプについてのデータリード結果を、プリセットパディングデータに設定し、全ての少なくとも1つの第1のストライプからデータがリードされるまで、次の第1のストライプからデータをリードし続け、各々の第1のストライプのデータリード結果を返す。
第1のディスクグループの1以上の第1のディスクが故障状態であるとき、ディスクグループの別の第1のディスクからデータが更にリードできることを保証するために、本実施形態で提供される方法では、データが現在の第1のストライプからのリードに成功しないとき、現在の第1のストライプのデータリード結果は、プリセットパディングデータに設定され、データリードは、次の第1のストライプへ進む。プリセットパディングデータについて、前述のステップ204のコンテンツが参照されても良く、詳細はここで再掲されない。第1のストライプ位置範囲の中の全ての少なくとも1つの第1のストライプからデータがリードされた後、各々の第1のストライプのデータリード結果が返され、それにより、第1のディスクグループが故障したとき、第1のグループのいずれの第1のディスクからもデータがリードできないケースを回避する。
留意すべきことに、RAID5では、1つのディスクが故障状態である場合、該ディスクにあるデータは、ディスクグループの冗長データに従って復元され得る。理解を容易にするために、図5に示す第1のディスクグループは説明のための例として用いられる。第1のディスクグループは、9個のディスク、D1〜D9を含む。データabcdefghijklmnopqrstuvwxは、データブロックa,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,xにセグメント化され、これらはそれぞれディスクD1〜D9のストライプに格納される。データa,i,qは、それぞれディスクD1の3個のストライプに格納される。データb,j,rは、それぞれディスクD2の3個のストライプに格納される。データc,k,sは、それぞれディスクD3の3個のストライプに格納される。データd,l,tは、それぞれディスクD4の3個のストライプに格納される。データe,m,uは、それぞれディスクD5の3個のストライプに格納される。データf,n,vは、それぞれディスクD6の3個のストライプに格納される。データg,o,wは、それぞれディスクD7の3個のストライプに格納される。データh,p,xは、それぞれディスクD8の3個のストライプに格納される。冗長データxor1,xor2,xor1は、それぞれ、ディスクD9の3個のストライプに格納される。xor1=a^b^c^d^e^f^g^h、xor2=i^j^k^l^m^n^o^pであり、^は排他的ORを表す。D1〜D8のうちの任意の1つのディスクが故障状態であるとき、該任意の1つののディスクのデータは、冗長計算を用いて復元され得る。
例えば、ディスクD3が故障状態であるとき、データcについての冗長計算プロセスは、次の通りである。
Figure 0006229067
データk及びデータsについての冗長計算プロセスでは、データcについての冗長計算プロセスが参照されても良く、詳細はここに再掲されない。
別の例では、ディスクD4及びD7が故障状態である。図6に示すように、ディスクD4及びD7のデータは、冗長計算により得られない。したがって、データは、ディスクD4及びD7からのリードに成功できない。プリセットパディングデータは0に設定され、ディスクD4及びD7のデータリード結果は両方とも0である。リードアドレスに従って決定される第1のディスクグループの第1のストライプ位置範囲がD1〜D8の全てのストライプである場合、返されるデータリード結果は、abc0ef0hijk0mn0pqrs0uv0xである。
さらに、本発明の本実施形態で提供されるデータアクセス方法は、ソフトウェアにより実装されても良く、又はハードウェアにより実装されても良い。理解を容易にするために、図7に示すデータアクセスのためのソフトウェアの構造は説明のための例として用いられる。ソフトウェアRAIDは、VFS(Virtual File System、仮想ファイルシステム)とXFS(X−File System、Xファイルシステム)との間に位置し、WebUI(Web User Interface、ウェブユーザインタフェース)及びCLI(Command Line Interface、コマンドラインインタフェース)は、ソフトウェアRAIDを制御するために設けられ、RAIDユーザは、VFSを用いることによりソフトウェアRAIDを制御できる。ソフトウェアRAIDの構造は、図8(1)に示され、又は図8(2)に示され得る。図8(1)のソフトウェアRAIDと比べると、図8(2)のソフトウェアRAIDは、RAIDファイルシステム及びリード/ライトキャッシュを設けられず、仮想ブロック装置は、標準的なファイルシステムに直接接続される。ディスクグループが障害条件を満たすとき、損失データは、標準的ファイルのキーデータであっても良い。これは、標準ファイルシステムに損傷をもたらす。したがって、ソフトウェアRAIDは、通常、ファイルシステムに適用されない。
さらに、図9に示すデータアクセスのためのハードウェアの構造では、本発明の本実施形態で提供されるデータアクセス方法を実施するために、RAIDカードが用いられ得る。RAIDカードは、オペレーティングシステムとディスクとの間に置かれる。
本実施形態で提供される方法では、データは、第1のディスクグループの第1のストライプ位置範囲で順次リードされ、第1のストライプ位置範囲は、第1のディスクグループに対して取得されたデータリード要求で運ばれるリードアドレスに従い決定され、データがリードに成功しない第1のストライプのデータリード結果は、プリセットパディングデータに設定され、データリードは、データが全ての第1のストライプからリードされるまで、次の第1のストライプに進み、各々の第1のストライプのデータリード結果が返され、データ損失を低減し、データがリードに成功しないときアクセス中断時間を短縮し、第三者が関与しないのでデータ機密性を保証する。
<実施形態3>
本発明の一実施形態は、RAIDに適用されるデータアクセス方法を提供する。RAIDは、第1のディスクグループ及び第2のディスクグループを有し、第1のディスクグループ及び第2のディスクグループの両方は、少なくとも1つのディスクを有し、各々のディスクは、予め少なくとも1つのストライプに分割される。図10を参照すると、方法のプロセスは、以下を有する。
1001:第1のディスクグループに対するデータライト要求を取得する。ここで、データライト要求は、ライトアドレスを有する。
第1のディスクグループに対するデータライト要求は、ディスクグループの中のデータにアクセスするために取得される。データライト要求を取得する方法は、本実施形態では特に限定されない。特定の実装では、メッセージを受信する方法が、データライト要求を取得するために用いられても良い。確かに、前述の方法に加えて、別の方法も用いられても良い。
さらに、ライト範囲を決定するために、データライト要求は、ライトアドレスを運び、ライトアドレスに従って、ライト範囲が決定される。ライトアドレスを運ぶことに加え、データライト要求は、更に他の情報を運んでも良い。これは、本実施形態では特に限定されない。例えば、データライト要求は、ライトシーケンスを運ぶ。
1002:ライトアドレスに従い、第1のディスクグループの第2のストライプ位置範囲を決定する。ここで、少なくとも1つの第2のストライプは、第2のストライプ位置範囲に含まれる。
具体的には、ライトアドレスに従って第1のディスクグループの第2のストライプ位置範囲を決定するステップは、限定ではないが、以下を含む。ライトアドレスに従って、ライトアドレスに対応する第1のディスクグループの第1のディスクを計算するステップと、各々の第1のディスクの第2のストライプ位置範囲を計算するステップであって、第1のディスクグループの第2のストライプ位置範囲は、第1のディスクの第2のストライプ位置範囲の集合である、ステップと。勿論、前述の方法に加えて、ライトアドレスに従って第1のディスクグループの第2のストライプ位置範囲を決定するために、別の方法が用いられても良い。これは、本実施形態では特に限定されない。
留意すべきことに、少なくとも1つの第1のストライプは、第1のストライプ位置範囲に含まれ、後続のステップで、データは、第2のストライプ位置範囲の中の少なくとも1つの第2のストライプに順次ライトされても良い。
理解を容易にするために、第1のディスクグループは、ディスクD1乃至D8を有し、説明のための例として用いられる。ライトアドレスは、D1のストライプ1からD4のストライプ1である。ここで、D1のストライプ1は、ディスクD1のストライプ1であり、D4のストライプ1は、ディスクD4のストライプ1である。ライトアドレスに従い計算され、ライトアドレスに対応する第1のディスクグループの第1のディスクは、D1からD4である。ディスクD1の第2のストライプ位置範囲がストライプ1であること、ディスクD2の第2のストライプ位置範囲がストライプ1であること、ディスクD3の第2のストライプ位置範囲がストライプ1であること、ディスクD4の第2のストライプ位置範囲がストライプ1であること、が計算される。したがって、第1のディスクグループの第2のストライプ位置範囲は、ディスクD1のストライプ1、ディスクD2のストライプ1、ディスクD3のストライプ1、ディスクD4のストライプ1、を含む。つまり、4個の第2のストライプが、第2のストライプ位置範囲に含まれる。
1003:第2のストライプ位置範囲の中の少なくとも1つの第2のストライプにデータを順次ライトする。
第1のディスクグループの第2のストライプ位置範囲は、ライトアドレスに従い決定される。したがって、データは、第2のストライプ位置範囲の中の少なくとも1つの第2のストライプに直接順次ライトされ得る。ストライプにデータをライトする方法は、本実施形態では特に限定されない。特定の実装では、ライトされるべきデータは、複数のデータブロックにセグメント化されても良く、データは、第2のストライプ位置範囲の中の少なくとも1つの第2のストライプに並列にライトされる。それにより、データライト速度を向上する。勿論、前述の方法に加えて、別の方法も用いられても良い。
1004:データが現在の第2のストライプへのライトに成功しない場合、第1のディスクグループの状態を知るためにスキャンする。ここで、第1のディスクグループの状態は、リードオンリー状態、通常リード/ライト状態、及び劣化状態のうちの1つである。
RAIDへのデータのライトに成功するために、本実施形態で提供される方法では、データが現在の第2のストライプへのライトに成功しないとき、第1のディスクグループの状態を知るために、スキャンが実行される。留意すべきことに、データが現在の第2のストライプへのライトに成功しないケースに加えて、第1のディスクグループの状態を知るためのスキャンは、定期的にトリガされても良い。第1のディスクグループの状態は、リードオンリー状態、通常リード/ライト状態、劣化状態のうちの1つである。リードオンリー状態では、データリード動作のみが許され、データライト動作は、第1のディスクグループの中の全ての第1のディスクについて許されない。通常リード/ライト状態では、データリード動作及びデータライト動作の両方は、第1のディスクグループの全ての第1のディスクについて許される。劣化状態では、データリード動作及びデータライト動作の両方は、第1のディスクグループの全ての第1のディスクについて許され、少なくとも1つの第1のディスクが故障状態である。劣化状態は、リードオンリー状態と通常リード/ライト状態との間である。異なるRAIDでは、第1のディスクグループの状態は、第1のディスクの異なる状態に対応する。
理解を容易にするために、RAID5は、説明のための例として用いられる。第1のディスクグループの1より多い第1のディスクが故障状態である場合、第1のディスクグループの、スキャンにより分かった状態は、リードオンリー状態である。第1のディスクグループの中のどの第1のディスクも故障状態でない場合、第1のディスクグループの、スキャンにより分かった状態は、通常リード/ライト状態である。第1のディスクグループの中の1つの第1のディスクが故障状態である場合、第1のディスクグループの、スキャンにより分かった状態は、劣化状態である。
1005:第1のディスクグループがリードオンリー状態である場合、全てのデータがライトされるまで、第2のディスクグループの中の対応するストライプにデータをライトし続ける。
第1のディスクグループがリードオンリー状態である場合、データは、第1のディスクグループからリードのみできるが、第1のディスクグループのストライプにライトできない。RAIDにデータをライトし続けることができるために、データライトは、全てのデータがライトされるまで、第2のディスクグループの対応するストライプに進む。
望ましくは、第1のディスクグループの通常リード/ライト状態を復旧するために、本実施形態で提供される方法は、限定ではないが、以下を更に有する。第1のディスクグループの故障状態にある第1のディスクを表示する。第1のディスクを表示する方法は、本実施形態では特に限定されない。理解を容易にするために、図11に示すディスプレイインタフェースは説明のための例として用いられる。第1のディスクグループの全ての第1のディスクに対応する識別子は、実際に第1のディスクに対応するスロット位置に従い表示され、それぞれD1〜D8である。ディスクD4及びディスクD7の位置は、マークされ、ディスクD4及びディスクD7が故障状態であることを示す。
故障状態にある第1のディスクの位置は、マークされており、第1のディスクの手動交換を助ける。第1のディスクが交換されるか否かを調べるために、本実施形態で提供される方法は、限定ではないが、以下を有する。第1のディスクグループの各々のディスクの状態が変化したか否かを調べる。ここで、ディスクの状態は、新しいディスク状態、通常状態、及び故障状態のうちの1つである。第1のディスクグループの第1のディスクが故障状態から新しいディスク状態に変化する場合、第1のディスクをフォーマットし、フォーマットした第1のディスクをストライプに分割し、分割により得られた各々のストライプの状態を非ライト状態に設定する。
さらに、第1のディスクグループの各々のディスクの状態が変化したか否かを調べた後に、本実施形態で提供される方法は、限定ではないが、以下を更に有する。
第1のディスクグループが現在リードオンリー状態であるか否かを調べる。ここで、リードオンリー状態は、第1のディスクグループの少なくとも2つのディスクが故障状態であることを示す。第1のディスクグループが現在非リードオンリー状態である場合、(2)を実行する。第1のディスクグループが現在リードオンリー状態である場合、(4)を実行する。
第1のディスクグループの最終検出状態がリードオンリー状態であるか否かを決定する。
第1のディスクグループの最終検出状態がリードオンリー状態である場合、第1のディスクグループの状態を非リードオンリー状態に設定する。ここで、非リードオンリー状態は、劣化状態、及び通常リード/ライト状態を含む。
第1のディスクグループの最終検出状態が非リードオンリー状態であるか否かを決定する。
第1のディスクグループの最終検出状態が非リードオンリー状態である場合、第1のディスクグループの状態をリードオンリー状態に設定する。
さらに、ディスクグループの故障条件を可能な限り回避するために、第1のディスクグループの状態がスキャンにより分かった後、第1のディスクグループの状態が劣化状態である場合、アラームが応答で送信される。第1のディスクグループの状態が劣化状態であるとき、第1のディスクグループの1つの第1のディスクは、故障状態である。応答で送信されるアラームは、手動ディスク交換のリマインダであり得る。アラームを送信する方法は、本実施形態では特に限定されない。特定の実装では、アラーム情報を送信する方法が、応答でアラームを送信するために用いられても良い。さらに、ディスクの位置情報は、さらに、ディスク交換を助けるために、アラーム情報の中で運ばれても良い。
留意すべきことに、本発明の本実施形態で提供されるデータアクセス方法は、ソフトウェアにより実装されても良く、又はハードウェアにより実装されても良い。詳細には、前述の実施形態2のソフトウェア実装及びハードウェア実装の特定の記載及び内容が参照でき、詳細はここで再掲されない。
本発明の本実施形態で提供される方法では、データが現在の第2のストライプへのライトに成功しないとき、スキャンにより、第1のディスクグループがリードオンリー状態であることが分かり、データライトは、全てのデータがライトされるまで、第2のディスクグループの対応するストライプに進み、それにより、ディスクグループを再構築することなく、データライトを実施する。これは、アクセス中断時間を短縮し、第三者が関与しないのでデータ機密性を保証する。
<実施形態4>
図12を参照すると、本発明の一実施形態は、データアクセス装置を提供する。装置はRAIDに適用される。RAIDは、少なくとも第1のディスクグループを有し、第1のディスクグループは、少なくとも1つのディスクを有し、各々のディスクは、予め少なくとも1つのストライプに分割される。装置は、以下を含む。
第1のディスクグループに対するデータリード要求を取得するよう構成される第1の取得モジュール1201。ここで、データリード要求は、リードアドレスを有する。
リードアドレスに従い、第1のディスクグループの第1のストライプ位置範囲を決定するよう構成される第1の決定モジュール1202。ここで、少なくとも1つの第1のストライプは、第1のストライプ位置範囲に含まれる。
第1のストライプ位置範囲の中の少なくとも1つの第1のストライプからデータを順次リードするよう構成されるリードモジュール1203。
データが現在の第1のストライプからのリードに成功しない場合、現在の第1のストライプについてのデータリード結果を、プリセットパディングデータに設定し、全ての少なくとも1つの第1のストライプからデータがリードされるまで、次の第1のストライプからデータをリードし続けるよう構成される、第1の設定モジュール1204。
各々の第1のストライプのデータリード結果を返すよう構成される返還モジュール1205。
望ましくは、RAIDは、第2のディスクグループを更に有し、装置は、更に以下を有する。
第1のディスクグループに対するデータライト要求を取得し、データライト要求は、リードアドレスを有する、よう構成される第2の取得モジュール。
ライトアドレスに従い、第1のディスクグループの第2のストライプ位置範囲を決定し、少なくとも1つの第2のストライプは、第2のストライプ位置範囲に含まれる、よう構成される第2の決定モジュール。
第2のストライプ位置範囲の中の少なくとも1つの第2のストライプにデータを順次ライトするよう構成される第1のライトモジュール。
データが現在の第2のストライプへのライトに成功しないとき、第1のディスクグループの状態を知るためにスキャンし、第1のディスクグループの状態は、リードオンリー状態、通常リード/ライト状態、及び劣化状態のうちの1つである、よう構成されるスキャンモジュール。
第1のディスクグループがリードオンリー状態である場合、全てのデータがライトされるまで、第2のディスクグループの中の対応するストライプにデータをライトし続けるよう構成される第2のライトモジュール。
望ましくは、装置は、以下を更に含む。
第1のディスクグループが劣化状態である場合、応答でアラームを送信するよう構成される応答モジュール。
望ましくは、装置は、以下を更に含む。
第1のディスクグループの中の各々のディスクの状態が変化したか否かを調べ、ディスクの状態は、新しいディスク状態、通常状態、及び故障状態の内の1つである、よう構成される第1のチェックモジュール。
第1のディスクグループの第1のディスクが故障状態から新しいディスク状態に変化するとき、第1のディスクをフォーマットするよう構成されるフォーマットモジュール。
フォーマットされた第1のディスクをストライプに分割するよう構成される分割モジュール。
分割により得られる各々のストライプの状態を非ライト状態に設定するよう構成される第2の設定モジュール。
望ましくは、第1の設定モジュール1204は、非ライト状態のストライプからのデータリードの間に、非ライト状態のストライプのデータリード結果を、プリセットパディングデータに設定するよう更に構成される。
望ましくは、装置は、以下を更に含む。
第1のディスクグループが現在リードオンリー状態であるか否かを調べ、リードオンリー状態は、第1のディスクグループの中の少なくとも2つのディスクが故障状態であることを示す、よう構成される第2のチェックモジュール。
第1のディスクグループが現在、非リードオンリー状態であるとき、第1のディスクグループの最終検出状態がリードオンリー状態であるか否かを決定する、よう構成される第3の決定モジュール。
第1のディスクグループの最終検出状態がリードオンリー状態であるとき、第1のディスクグループの状態を非リードオンリー状態に設定し、非リードオンリー状態は、劣化状態、及び通常リード/ライト状態を含む、よう構成される第3の設定モジュール。
望ましくは、装置は、以下を更に含む。
第1のディスクグループが現在、リードオンリー状態であるとき、第1のディスクグループの最終検出状態が非リードオンリー状態であるか否かを決定する、よう構成される第4の決定モジュール。
第1のディスクグループの最終検出状態が非リードオンリー状態であるとき、第1のディスクグループの状態をリードオンリー状態に設定するよう構成される第4の設定モジュール。
本実施形態で提供される装置では、データは、第1のディスクグループの第1のストライプ位置範囲で順次リードされ、第1のストライプ位置範囲は、第1のディスクグループに対して取得されたデータリード要求で運ばれるリードアドレスに従い決定され、データがリードに成功しない第1のストライプのデータリード結果は、プリセットパディングデータに設定され、データリードは、データが全ての第1のストライプからリードされるまで、次の第1のストライプに進み、各々の第1のストライプのデータリード結果が返され、データ損失を低減し、データがリードに成功しないときアクセス中断時間を短縮し、第三者が関与しないのでデータ機密性を保証する。
<実施形態5>
本発明の実施形態は、データアクセス端末を提供する。端末はRAIDに適用される。RAIDは、少なくとも第1のディスクグループを有し、第1のディスクグループは、少なくとも1つのディスクを有し、各々のディスクは、予め少なくとも1つのストライプに分割される。端末は、プロセッサ、送信機、及び受信機を有する。
受信機は、第1のディスクグループに対するデータリード要求を取得するよう構成される。ここで、データリード要求は、リードアドレスを有する。
プロセッサは、リードアドレスに従い、第1のディスクグループの第1のストライプ位置範囲を決定する。ここで、少なくとも1つの第1のストライプは、第1のストライプ位置範囲に含まれる。
プロセッサは、第1のストライプ位置範囲の中の少なくとも1つの第1のストライプからデータを順次リードするよう更に構成される。
プロセッサは、データが現在の第1のストライプからのリードに成功しないとき、現在の第1のストライプについてのデータリード結果を、プリセットパディングデータに設定し、全ての少なくとも1つの第1のストライプからデータがリードされるまで、次の第1のストライプからデータをリードし続けるよう構成される。
送信機は、各々の第1のストライプのデータリード結果を返すよう構成される。
任意的な実施形態では、プロセッサは、第1のディスクグループの中の各々のディスクの状態が変化したか否かを調べ、ディスクの状態は、新しいディスク状態、通常状態、及び故障状態の内の1つである、よう更に構成される。
プロセッサは、第1のディスクグループの中の第1のディスクが故障状態から新しいディスク状態に変化するとき、第1のディスクをフォーマットし、フォーマットした第1のディスクをストライプに分割し、分割により得られた各々のストライプの状態を非ライト状態に設定するよう更に構成される。
任意的な実施形態では、プロセッサは、非ライト状態のストライプからのデータリードの間に、非ライト状態のストライプのデータリード結果を、プリセットパディングデータに設定するよう更に構成される。
任意的な実施形態では、プロセッサは、第1のディスクグループが現在リードオンリー状態であるか否かを調べ、リードオンリー状態は、第1のディスクグループの中の少なくとも2つのディスクが故障状態であることを示す、よう更に構成される。
プロセッサは、第1のディスクグループが現在、非リードオンリー状態であるとき、第1のディスクグループの最終検出状態がリードオンリー状態であるか否かを決定する、よう更に構成される。
プロセッサは、第1のディスクグループの最終検出状態がリードオンリー状態であるとき、第1のディスクグループの状態を非リードオンリー状態に設定し、非リードオンリー状態は、劣化状態、及び通常リード/ライト状態を含む、よう更に構成される。
任意的な実施形態では、プロセッサは、第1のディスクグループが現在、リードオンリー状態であるとき、第1のディスクグループの最終検出状態が非リードオンリー状態であるか否かを決定する、よう更に構成される。
プロセッサは、第1のディスクグループの最終検出状態が非リードオンリー状態であるとき、第1のディスクグループの状態をリードオンリー状態に設定するよう更に構成される。
本実施形態で提供される端末では、データは、第1のディスクグループの第1のストライプ位置範囲で順次リードされ、第1のストライプ位置範囲は、第1のディスクグループに対して取得されたデータリード要求で運ばれるリードアドレスに従い決定され、データがリードに成功しない第1のストライプのデータリード結果は、プリセットパディングデータに設定され、データリードは、データが全ての第1のストライプからリードされるまで、次の第1のストライプに進み、各々の第1のストライプのデータリード結果が返され、データ損失を低減し、データがリードに成功しないときアクセス中断時間を短縮し、第三者が関与しないのでデータ機密性を保証する。
<実施形態6>
本発明の実施形態は、データアクセス端末を提供する。端末はRAIDに適用される。RAIDは、少なくとも第1のディスクグループを有し、第1のディスクグループは、少なくとも1つのディスクを有し、各々のディスクは、予め少なくとも1つのストライプに分割される。端末は、プロセッサ、及び受信機を有する。
受信機は、第1のディスクグループに対するデータライト要求を取得するよう構成される。ここで、データライト要求は、ライトアドレスを有する。
プロセッサは、リードアドレスに従い、第1のディスクグループの第2のストライプ位置範囲を決定する。ここで、少なくとも1つの第2のストライプは、第2のストライプ位置範囲に含まれる。
プロセッサは、第2のストライプ位置範囲の中の少なくとも1つの第2のストライプにデータを順次ライトするよう更に構成される。
プロセッサは、データが現在の第2のストライプへのライトに成功しないとき、第1のディスクグループの状態を知るためにスキャンし、第1のディスクグループの状態は、リードオンリー状態、通常リード/ライト状態、及び劣化状態のうちの1つである、よう更に構成される。
プロセッサは、第1のディスクグループがリードオンリー状態であるとき、全てのデータがライトされるまで、第2のディスクグループの中の対応するストライプにデータをライトし続けるよう更に構成される。
任意的な実施形態では、プロセッサは、第1のディスクグループが劣化状態であるとき、応答でアラームを送信するよう更に構成される。
任意的な実施形態では、プロセッサは、第1のディスクグループの中の各々のディスクの状態が変化したか否かを調べ、ディスクの状態は、新しいディスク状態、通常状態、及び故障状態の内の1つである、よう更に構成される。
プロセッサは、第1のディスクグループの中の第1のディスクが故障状態から新しいディスク状態に変化するとき、第1のディスクをフォーマットし、フォーマットした第1のディスクをストライプに分割し、分割により得られた各々のストライプの状態を非ライト状態に設定するよう更に構成される。
任意的な実施形態では、プロセッサは、第1のディスクグループが現在リードオンリー状態であるか否かを調べ、リードオンリー状態は、第1のディスクグループの中の少なくとも2つのディスクが故障状態であることを示す、よう更に構成される。
プロセッサは、第1のディスクグループが現在、非リードオンリー状態であるとき、第1のディスクグループの最終検出状態がリードオンリー状態であるか否かを決定する、よう更に構成される。
プロセッサは、第1のディスクグループの最終検出状態がリードオンリー状態であるとき、第1のディスクグループの状態を非リードオンリー状態に設定し、非リードオンリー状態は、劣化状態、及び通常リード/ライト状態を含む、よう更に構成される。
任意的な実施形態では、プロセッサは、第1のディスクグループが現在、リードオンリー状態であるとき、第1のディスクグループの最終検出状態が非リードオンリー状態であるか否かを決定する、よう更に構成される。
プロセッサは、第1のディスクグループの最終検出状態が非リードオンリー状態であるとき、第1のディスクグループの状態をリードオンリー状態に設定するよう更に構成される。
本発明の本実施形態で提供される端末によると、データが現在の第2のストライプへのライトに成功しないとき、スキャンにより、第1のディスクグループがリードオンリー状態であることが分かり、データライトは、全てのデータがライトされるまで、第2のディスクグループの対応するストライプに進み、それにより、ディスクグループを再構築することなく、データライトを実施する。これは、アクセス中断時間を短縮し、第三者が関与しないのでデータ機密性を保証する。
留意すべきことに、前述の実施形態により提供されるデータアクセス装置は、データアクセスのために用いられ、前述の機能モジュールの分割は、単に例として用いられる。実際の用途では、前述の機能は、異なる機能モジュールに割り当てられ及び要件に従って実装されても良い。つまり、装置の内部構造は、前述の機能の全部又は一部を実施するために異なる機能モジュールに分割される。さらに、前述の実施形態で提供されるデータアクセス装置は、データアクセス方法の実施形態と同じ発想に属する。その特定の実装プロセスについては、方法の実施形態が参照され、詳細はここで再掲されない。
本発明の前述の実施形態のシーケンス番号は、単に説明を目的としており、実施形態の優先度を示すことを意図しない。
当業者は、実施形態のステップの全部又は一部が、ハードウェア又は関連するハードウェアに指示するプログラムにより実装されても良いことを理解する。プログラムは、コンピュータ可読記憶媒体に格納されても良い。記憶媒体は、リードオンリーメモリ、磁気ディスク、光ディスク、等であっても良い。
上述の説明は、本発明の単なる例示的な実施形態であり、本発明を制限することを意図しない。本発明の精神及び原理から逸脱することなく行われる変更、等価置換、及び改良は、本発明の保護範囲に含まれるべきである。

Claims (13)

  1. データアクセス方法であって、前記方法は、RAID(redundant array of independent disks)に適用され、前記RAIDは、少なくとも1つの第1のディスクグループを有し、前記第1のディスクグループは、少なくとも1つのディスクを有し、各々のディスクは、予め少なくとも1つのストライプに分割され、前記方法は、
    前記第1のディスクグループに対するデータリード要求を取得するステップであって、前記データリード要求はリードアドレスを運ぶ、ステップと、
    前記リードアドレスに従い前記第1のディスクグループの第1のストライプ位置範囲を決定するステップであって、少なくとも1つの第1のストライプは、前記第1のストライプ位置範囲に含まれる、ステップと、
    前記第1のストライプ位置範囲の中の前記少なくとも1つの第1のストライプから、データを順次リードするステップと、
    データが現在の第1のストライプからのリードに成功しない場合、前記現在の第1のストライプのデータリード結果を第1のプリセットパディングデータに設定し、全ての前記少なくとも1つの第1のストライプからデータがリードされるまで、次の第1のストライプからデータをリードし続けるステップと、
    各々の第1のストライプのデータリード結果を返すステップと、
    前記第1のディスクグループが現在、リードオンリー状態であるか否かを調べるステップであって、前記リードオンリー状態は、前記第1のディスクグループの少なくとも2つのディスクが故障状態であることを示す、ステップと、
    前記第1のディスクグループが現在、非リードオンリー状態である場合、前記第1のディスクグループの最終検出状態が前記リードオンリー状態であるか否かを決定するステップと、
    前記第1のディスクグループの最終検出状態が前記リードオンリー状態である場合、前記第1のディスクグループの状態を前記非リードオンリー状態に設定するステップであって、前記非リードオンリー状態は、劣化状態と、通常リード/ライト状態と、を有する、ステップと、
    を有する方法。
  2. 前記RAIDは、第2のディスクグループを更に有し、前記方法は、
    前記第1のディスクグループに対するデータライト要求を取得するステップであって、前記データライト要求は、ライトアドレスを運ぶ、ステップと、
    前記ライトアドレスに従い前記第1のディスクグループの第2のストライプ位置範囲を決定するステップであって、少なくとも1つの第2のストライプは、前記第2のストライプ位置範囲に含まれる、ステップと、
    前記第2のストライプ位置範囲の中の前記少なくとも1つの第2のストライプにデータを順次ライトするステップと、
    データが現在の第2のストライプへのライトに成功しない場合、前記第1のディスクグループの状態を知るためにスキャンするステップであって、前記第1のディスクグループの状態は、リードオンリー状態、通常リード/ライト状態、及び劣化状態のうちの1つである、ステップと、
    前記第1のディスクグループが前記リードオンリー状態である場合、全てのデータがライトされるまで、前記第2のディスクグループの対応するストライプにデータをライトし続けるステップと、
    を更に有する請求項1に記載の方法。
  3. 前記第1のディスクグループの状態を知るためにスキャンするステップの後に、
    前記第1のディスクグループが前記劣化状態である場合、応答でアラームを送信するステップ、
    を更に有する請求項2に記載の方法。
  4. 前記方法は、
    前記第1のディスクグループの各々のディスクの状態が変化したか否かを調べるステップであって、前記ディスクの状態は、新しいディスク状態、通常状態、及び故障状態のうちの1つである、ステップと、
    前記第1のディスクグループの第1のディスクが前記故障状態から前記新しいディスク状態に変化する場合、前記第1のディスクをフォーマットし、前記フォーマットした第1のディスクをストライプに分割し、分割により得られた各々のストライプの状態を非ライト状態に設定するステップと、
    を更に有する請求項1乃至3のいずれか一項に記載の方法。
  5. 分割により得られた各々のストライプの状態を非ライト状態に設定するステップの後に、
    前記非ライト状態のストライプからのデータリードの間に、前記非ライト状態のストライプのデータリード結果を第2のプリセットパディングデータに設定するステップ、
    を更に有する請求項4に記載の方法。
  6. 前記第1のディスクグループが現在リードオンリー状態であるか否かを調べるステップの後に、
    前記第1のディスクグループが現在、前記リードオンリー状態である場合、前記第1のディスクグループの最終検出状態が前記非リードオンリー状態であるか否かを決定するステップと、
    前記第1のディスクグループの最終検出状態が前記非リードオンリー状態である場合、前記第1のディスクグループの状態を前記リードオンリー状態に設定するステップと、
    を更に有する請求項に記載の方法。
  7. データアクセス装置であって、前記装置は、RAID(redundant array of independent disks)に適用され、前記RAIDは、少なくとも1つの第1のディスクグループを有し、前記第1のディスクグループは、少なくとも1つのディスクを有し、各々のディスクは、予め少なくとも1つのストライプに分割され、前記装置は、
    前記第1のディスクグループに対するデータリード要求を取得するよう構成される第1の取得モジュールであって、前記データリード要求はリードアドレスを運ぶ、第1の取得モジュールと、
    前記リードアドレスに従い前記第1のディスクグループの第1のストライプ位置範囲を決定するよう構成される第1の決定モジュールであって、少なくとも1つの第1のストライプは、前記第1のストライプ位置範囲に含まれる、第1の決定モジュールと、
    前記第1のストライプ位置範囲の中の前記少なくとも1つの第1のストライプから、データを順次リードするよう構成されるリードモジュールと、
    データが現在の第1のストライプからのリードに成功しないとき、前記現在の第1のストライプのデータリード結果を第1のプリセットパディングデータに設定し、全ての前記少なくとも1つの第1のストライプからデータがリードされるまで、次の第1のストライプからデータをリードし続けるよう構成される第1の設定モジュールと、
    各々の第1のストライプのデータリード結果を返すよう構成される返還モジュールと、
    前記第1のディスクグループが現在、リードオンリー状態であるか否かを調べるよう構成される第2のチェックモジュールであって、前記リードオンリー状態は、前記第1のディスクグループの少なくとも2つのディスクが故障状態であることを示す、第2のチェックモジュールと、
    前記第1のディスクグループが現在、非リードオンリー状態であるとき、前記第1のディスクグループの最終検出状態が前記リードオンリー状態であるか否かを決定するよう構成される第3の決定モジュールと、
    前記第1のディスクグループの最終検出状態が前記リードオンリー状態であるとき、前記第1のディスクグループの状態を前記非リードオンリー状態に設定するよう構成される第3の設定モジュールであって、前記非リードオンリー状態は、劣化状態と、通常リード/ライト状態と、を有する、第3の設定モジュールと、
    を有する装置。
  8. 前記RAIDは、第2のディスクグループを更に有し、前記装置は、
    前記第1のディスクグループに対するデータライト要求を取得するよう構成される第2の取得モジュールであって、前記データライト要求は、ライトアドレスを運ぶ、第2の取得モジュールと、
    前記ライトアドレスに従い前記第1のディスクグループの第2のストライプ位置範囲を決定するよう構成される第2の決定モジュールであって、少なくとも1つの第2のストライプは、前記第2のストライプ位置範囲に含まれる、第2の決定モジュールと、
    前記第2のストライプ位置範囲の中の前記少なくとも1つの第2のストライプにデータを順次ライトするよう構成される第1のライトモジュールと、
    データが現在の第2のストライプへのライトに成功しないとき、前記第1のディスクグループの状態を知るためにスキャンするよう構成されるスキャンモジュールであって、前記第1のディスクグループの状態は、リードオンリー状態、通常リード/ライト状態、及び劣化状態のうちの1つである、スキャンモジュールと、
    前記第1のディスクグループが前記リードオンリー状態であるとき、全てのデータがライトされるまで、前記第2のディスクグループの対応するストライプにデータをライトし続けるよう構成される第2のライトモジュールと、
    を更に有する請求項に記載の装置。
  9. 前記装置は、
    前記第1のディスクグループが前記劣化状態であるとき、応答でアラームを送信するよう構成される応答モジュール、
    を更に有する請求項に記載の装置。
  10. 前記装置は、
    前記第1のディスクグループの各々のディスクの状態が変化したか否かを調べるよう構成される第1のチェックモジュールであって、前記ディスクの状態は、新しいディスク状態、通常状態、及び故障状態のうちの1つである、第1のチェックモジュールと、
    前記第1のディスクグループの第1のディスクが前記故障状態から前記新しいディスク状態に変化するとき、前記第1のディスクをフォーマットするよう構成されるフォーマットモジュールと、
    前記フォーマットした第1のディスクをストライプに分割するよう構成される分割モジュールと、
    分割により得られた各々のストライプの状態を非ライト状態に設定するよう構成される第2の設定モジュールと、
    を更に有する請求項乃至のいずれか一項に記載の装置。
  11. 前記第1の設定モジュールは、前記非ライト状態のストライプからのデータリードの間に、前記非ライト状態のストライプのデータリード結果を、第2のプリセットパディングデータに設定するよう更に構成される、請求項10に記載の装置。
  12. 前記装置は、
    前記第2のチェックモジュールが、前記第1のディスクグループが現在、リードオンリー状態であるか否かを調べた後に、前記第1のディスクグループが現在、前記リードオンリー状態であるとき、前記第1のディスクグループの最終検出状態が前記非リードオンリー状態であるか否かを決定するよう構成される第4の決定モジュールと、
    前記第1のディスクグループの最終検出状態が前記非リードオンリー状態であるとき、前記第1のディスクグループの状態を前記リードオンリー状態に設定するよう構成される第4の設定モジュールと、
    を更に有する請求項に記載の装置。
  13. 記録されたプログラムを有するコンピュータ可読記憶媒体であって、前記プログラムは、コンピュータに請求項1乃至のいずれか一項に記載の方法を実行させる、コンピュータ可読記憶媒体。
JP2016544792A 2014-01-07 2014-12-30 データアクセス方法及び装置 Active JP6229067B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201410007103.0 2014-01-07
CN201410007103.0A CN104007936B (zh) 2014-01-07 2014-01-07 访问数据的方法及装置
PCT/CN2014/095668 WO2015103933A1 (zh) 2014-01-07 2014-12-30 访问数据的方法及装置

Publications (2)

Publication Number Publication Date
JP2017502424A JP2017502424A (ja) 2017-01-19
JP6229067B2 true JP6229067B2 (ja) 2017-11-08

Family

ID=51368607

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016544792A Active JP6229067B2 (ja) 2014-01-07 2014-12-30 データアクセス方法及び装置

Country Status (8)

Country Link
US (1) US10585600B2 (ja)
EP (2) EP3079054B1 (ja)
JP (1) JP6229067B2 (ja)
KR (1) KR101743411B1 (ja)
CN (1) CN104007936B (ja)
ES (1) ES2664795T3 (ja)
RU (1) RU2626091C1 (ja)
WO (1) WO2015103933A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104007936B (zh) 2014-01-07 2017-09-29 华为技术有限公司 访问数据的方法及装置
CN107783784A (zh) * 2016-08-24 2018-03-09 衡宇科技股份有限公司 由主机到设备控制器传输命令的方法及使用其的系统
CN110515761B (zh) * 2018-05-22 2022-06-03 杭州海康威视数字技术股份有限公司 一种数据获取方法及装置
CN111427508B (zh) * 2019-01-09 2023-07-21 深圳市茁壮网络股份有限公司 一种文件均衡分布方法及装置
CN111435286B (zh) * 2019-01-14 2023-12-05 深圳市茁壮网络股份有限公司 一种数据存储方法、装置和系统
CN115904255B (zh) * 2023-01-19 2023-05-16 苏州浪潮智能科技有限公司 一种数据请求方法、装置、设备及存储介质

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5913927A (en) * 1995-12-15 1999-06-22 Mylex Corporation Method and apparatus for management of faulty data in a raid system
JPH11232048A (ja) * 1998-02-19 1999-08-27 Sony Corp データ処理装置およびデータ処理方法
US7062704B2 (en) * 2001-04-30 2006-06-13 Sun Microsystems, Inc. Storage array employing scrubbing operations using multiple levels of checksums
AU2003201837A1 (en) 2002-04-01 2003-10-23 Sony Corporation Storage medium and storage medium recording method
RU2305330C2 (ru) * 2002-04-01 2007-08-27 Сони Корпорейшн Носитель записи и способ записи на носитель записи
RU2303822C2 (ru) * 2002-04-01 2007-07-27 Сони Корпорейшн Способ записи данных на носитель записи
US6944791B2 (en) * 2002-07-18 2005-09-13 Lsi Logic Corporation Method of handling unreadable blocks during write of a RAID device
JP4426262B2 (ja) * 2003-11-26 2010-03-03 株式会社日立製作所 ディスクアレイ装置及びディスクアレイ装置の障害回避方法
US7188212B2 (en) * 2004-05-06 2007-03-06 International Business Machines Corporation Method and system for storing data in an array of storage devices with additional and autonomic protection
TWI346944B (en) * 2007-12-31 2011-08-11 Qnap Systems Inc Method of raid level migration and system for the same
US8049980B1 (en) * 2008-04-18 2011-11-01 Network Appliance, Inc. Partial disk failures and improved storage resiliency
KR20100004792A (ko) * 2008-07-04 2010-01-13 삼성전자주식회사 손상된 정보를 저장하는 방법, 손상된 정보를 저장할 수있는 정보 처리 장치, 손상된 정보를 저장 가능하게송신하는 정보 저장 장치, 손상된 정보를 저장하기 위한소프트웨어가 기록된, 정보 처리 장치로 읽을 수 있는 매체
US20100125695A1 (en) * 2008-11-15 2010-05-20 Nanostar Corporation Non-volatile memory storage system
US7904749B2 (en) * 2008-10-24 2011-03-08 Hitachi, Ltd. Fast data recovery from HDD failure
CN102023809B (zh) * 2009-09-21 2012-10-17 成都市华为赛门铁克科技有限公司 存储系统、从存储系统读取数据的方法及写入数据的方法
US8417987B1 (en) * 2009-12-01 2013-04-09 Netapp, Inc. Mechanism for correcting errors beyond the fault tolerant level of a raid array in a storage system
US8572342B2 (en) * 2010-06-01 2013-10-29 Hitachi, Ltd. Data transfer device with confirmation of write completion and method of controlling the same
JP5519573B2 (ja) * 2011-05-12 2014-06-11 株式会社日立製作所 映像処理装置、映像処理方法、および、映像処理プログラム
CN102226892B (zh) * 2011-05-20 2013-10-23 杭州华三通信技术有限公司 一种磁盘容错处理方法及设备
CN102207895B (zh) * 2011-05-27 2012-11-14 杭州华三通信技术有限公司 一种独立磁盘冗余阵列数据重建方法和装置
US9021339B2 (en) * 2012-11-29 2015-04-28 Western Digital Technologies, Inc. Data reliability schemes for data storage systems
US9277208B2 (en) * 2013-11-12 2016-03-01 Oovoo, Llc System and method for estimating quality of video with frame freezing artifacts
CN104007936B (zh) * 2014-01-07 2017-09-29 华为技术有限公司 访问数据的方法及装置

Also Published As

Publication number Publication date
CN104007936B (zh) 2017-09-29
JP2017502424A (ja) 2017-01-19
CN104007936A (zh) 2014-08-27
EP3385832A1 (en) 2018-10-10
EP3079054B1 (en) 2018-02-21
EP3079054A4 (en) 2016-11-09
WO2015103933A1 (zh) 2015-07-16
KR20160104671A (ko) 2016-09-05
ES2664795T3 (es) 2018-04-23
US10585600B2 (en) 2020-03-10
KR101743411B1 (ko) 2017-06-02
US20160313937A1 (en) 2016-10-27
EP3079054A1 (en) 2016-10-12
RU2626091C1 (ru) 2017-07-21

Similar Documents

Publication Publication Date Title
JP6229067B2 (ja) データアクセス方法及び装置
KR102153804B1 (ko) 데이터 동기화 방법, 장치, 및 시스템
US10462443B2 (en) Systems, methods, and software for improved video data recovery effectiveness
CN109412755B (zh) 一种多媒体数据处理方法、装置及存储介质
CN101783955B (zh) 一种数据异常时的恢复方法和设备
CN105824846B (zh) 数据迁移方法及装置
CN102314322A (zh) 一种基于raid阵列的数据处理方法和设备
CN109672544B (zh) 一种数据处理方法、装置及分布式存储系统
US11487428B2 (en) Storage control apparatus and storage control method
CN111400248B (zh) 写数据、恢复数据的方法及文件系统
US11467896B2 (en) Sections in crash dump files
US20190163554A1 (en) Recovery of first failure data capture logs
TW201417579A (zh) 影像錄製系統、裝置與錄影時的資料存取方法
CN105677587A (zh) 一种医学成像设备数据的存储方法和装置
CN114143486A (zh) 视频流同步方法、装置、计算机设备和存储介质
WO2016185252A1 (en) Storing disposition notifications in a message store
US9418100B1 (en) System and method for storage management
WO2019223432A1 (zh) 一种数据获取方法及装置
WO2021052220A1 (zh) 一种测试云存储接口的方法和装置
CN107197324B (zh) 一种分布式文件系统的视频容错方法及装置
CN117556162A (zh) 图片加载检测方法、视频渲染检测方法及相关产品
CN114528171A (zh) 丢帧判断方法、装置、存储服务器以及可读存储介质
US20070116044A1 (en) Capture buffer, a network analyser, a network analyser card and a method of capturing network data
CN114579352A (zh) 数据重构方法以及装置
CN113312324A (zh) 基于重定向的文件操作同步方法、设备及存储介质

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160722

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160722

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170609

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170620

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170904

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171016

R150 Certificate of patent or registration of utility model

Ref document number: 6229067

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250