JP6690891B2 - データミラーリング制御装置及び方法 - Google Patents

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

Info

Publication number
JP6690891B2
JP6690891B2 JP2014194063A JP2014194063A JP6690891B2 JP 6690891 B2 JP6690891 B2 JP 6690891B2 JP 2014194063 A JP2014194063 A JP 2014194063A JP 2014194063 A JP2014194063 A JP 2014194063A JP 6690891 B2 JP6690891 B2 JP 6690891B2
Authority
JP
Japan
Prior art keywords
data
storage device
mirroring
write
host
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
JP2014194063A
Other languages
English (en)
Other versions
JP2015069651A (ja
JP2015069651A5 (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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics 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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2015069651A publication Critical patent/JP2015069651A/ja
Publication of JP2015069651A5 publication Critical patent/JP2015069651A5/ja
Application granted granted Critical
Publication of JP6690891B2 publication Critical patent/JP6690891B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • 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
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/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
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/825Indexing scheme relating to error detection, to error correction, and to monitoring the problem or solution involving locking

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)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Description

本発明はデータミラーリング(mirroring)技術に関する。
数十年来、代表的な記憶装置として使われて来たHDD(hard disk drive)は一定速度で回転するディスクのヘッド(head)を介して読取り/書込み演算を行う機械的な装置で、容量対比価格が相対的に安いという利点がある。しかし、HDDの読取り/書込み性能はディスクの回転速度に依存するから、半導体基盤の記憶装置に比べて読取り/書込み性能、特にランダム(random)読取り/書込み性能が制限的である。また、HDDは半導体基盤記憶装置に比べて故障の確率が高く、記憶装置の故障は使用者データの損失を引き起こすことから致命的である。
このようなHDDの性能(performance)と安全性(reliability)の限界を克服するために、多くのHDD装置を連結してHDDアレイ(Array)を構成し、読取り/書込み演算を適切に分配するRAID(Redundant Array of Independent Disks)技術が幅広く活用されて来た。RAID技術は多くのHDD装置間のデータ配列政策によっていくつかの細部技術に分類されるが、代表的な技術はRAID 0(striping)、RAID 1(mirroring)、RAID 5(striping with distributed parity)及びRAID 10(mirroring and striping)などがある。このうち、ミラーリング(mirroring)技術は二つ以上のHDDに同一データを保存することにより、一つのHDDが故障した場合にもデータ損失を防止し、故障しなかったHDDによってデータサービスを持続することができるようにする技術である。
一方、HDDと互換可能でHDDより性能及び安全性(reliability)に優れたSSD(Solid State Drive)の活用がずっと増加している。SSDは、HDDと異なり、内部に機械的な装置がないので、HDDより故障率が低く、読取り/書込み性能、特にランダム(random)読取り/書込み性能がHDDより優秀である。SSDは性能及び安全性の側面でHDDより優れるが、追加的な性能向上の目的またはSSDの故障によるデータ損失防止のための目的でSSDアレイ(Array)を構成してRAID技術を適用することが可能である。
本発明はデータミラーリング制御装置及び方法を提供することを目的とする。
本発明のデータミラーリング制御装置は、ホストから書込み要請されたデータに対する第1書込み命令をミラーリングが適用された複数のストレージ装置に伝送する命令分配部と、ホストメモリに保存されたデータの中で前記ホストから書込み要請されたデータに対してメモリロック(lock)を設定し、前記メモリロック設定されたデータが前記複数のストレージ装置で書込み完了した場合、書込み完了したデータに対するメモリロックを解除するメモリロック設定部とを含むことを特徴とする。
本発明の前記命令分配部は、前記書込み要請されたデータが前記複数のストレージ装置の一つで書込み完了した場合、前記データに対する書込み完了メッセージを前記ホストに伝送することを特徴とする。
本発明は、前記複数のストレージ装置の一つで書込み完了したデータに対する書込み情報に基づいて前記データに対する前記第1書込み命令が伝達されなかったストレージ装置にトリム命令を伝送するトリム命令の伝送部をさらに含むことを特徴とする。
また、本発明の前記命令分配部は、前記メモリロック設定されたデータに対する前記第1書込み命令の伝送を受けることができなかったストレージ装置に前記メモリロック設定されたデータに対する前記第1書込み命令を伝送することを特徴とする。
本発明は、ミラーリングが適用された前記複数のストレージ装置の中で少なくとも一つのストレージ装置を速いストレージ装置に設定する速いストレージ装置設定部をさらに含み、前記命令分配部は、前記第1書込み命令を前記速いストレージ装置に伝送することを特徴とする。
前記速いストレージ装置設定部は、前記書込み命令に対する書込み完了速度に基づいて前記速いストレージ装置を設定することを特徴とする。
前記命令分配部は、前記書込み要請されたデータが前記速いストレージ装置で書込み完了した場合、前記データに対する書込み完了メッセージを前記ホストに伝送することを特徴とする。
前記速いストレージ装置設定部は、周期的または非周期的に前記速いストレージ装置を変更することを特徴とする。
前記命令分配部は、前記速いストレージ装置が変更された場合、前記メモリロック設定されたデータに対する前記第1書込み命令を変更された前記速いストレージ装置に伝送することを特徴とする。
また、前記命令分配部は、前記速いストレージ装置の変更が必要な場合、前記メモリロック設定されたデータに対する前記第1書込み命令を第1ストレージ装置に伝送し、前記速いストレージ装置設定部は、前記第1ストレージ装置で前記メモリロック設定されたデータに対する書込みが完了した場合、前記第1ストレージ装置を前記速いストレージ装置に変更することを特徴とする。
また、前記命令分配部は、前記速いストレージ装置が故障した場合、前記メモリロック設定されたデータに対する前記第1書込み命令を故障しなかった他のストレージ装置に伝送することを特徴とする。
さらに、前記命令分配部は、前記ホストに障害が発生した場合、前記複数のミラーリングストレージ装置のそれぞれに保存されたデータの一致可否を判断し、一致しない場合、前記速いストレージ装置に保存されたデータに基づいて一つ以上の他のストレージ装置に書込み命令を伝送し、前記一つ以上の他のストレージ装置は、前記速いストレージ装置に設定されなかった前記複数のミラーリングストレージ装置の中で設定されることを特徴とする。
本発明の前記複数のストレージ装置は、少なくとも一つのHDD(Hard Disk Drive)を含み、前記HDDはミラーリングストレージ装置で、前記速いストレージ装置設定部によって前記速いストレージ装置に設定され、前記命令分配部は、ランダム書込み命令を順次書込み命令に変換し、前記順次書込み命令を前記HDDに伝送し、前記ランダム書込み命令は前記ホストからランダム書込み要請され、前記順次書込み命令は前記ホストから順次に書込み要請されることを特徴とする。
また、本発明のデータミラーリング制御装置は、ホストから書込み要請されたデータに対する書込み命令をミラーリングが適用された複数のストレージ装置に伝送し、前記書込み要請されたデータが前記複数のストレージ装置の一つで書込み完了した場合、前記データに対する書込み完了メッセージを前記ホストに伝送する命令分配部と、前記複数のストレージ装置の一つで書込み完了したデータに対する書込み情報に基づいて前記データに対する書込み命令が伝達されなかったストレージ装置にトリム命令を伝送するトリム命令伝送部とを含むことを特徴とする。
本発明は、前記ミラーリングが適用された複数のストレージ装置の中で少なくとも一つを速いストレージ装置に設定し、周期的または非周期的に前記速いストレージ装置を変更する速いストレージ装置設定部をさらに含み、前記命令分配部は、前記速いストレージ装置に前記ホストから書込み要請されたデータに対する書込み命令を伝送することを特徴とする。
前記トリム命令伝送部は、前記速いストレージ装置が前記複数のミラーリングストレージ装置の一つから前記複数のミラーリングストレージ装置の他の一つに変更された場合、変更される前の速いストレージ装置で書込み完了したデータに対する書込み情報に基づき、速いストレージ装置に変更されたストレージ装置にトリム命令を伝送することを特徴とする。
前記速いストレージ装置は、前記複数のミラーリングストレージ装置の一つから前記複数のミラーリングストレージ装置の他の一つに変更された場合、前記速いストレージ装置ではないものに変更されたストレージ装置にガーベジコレクション命令を伝送するガーベジコレクション命令の伝送部をさらに含むことを特徴とする。
さらに、本発明のデータミラーリング制御装置は、ホストから書込み要請に応答して第1書込み命令を複数のミラーリングストレージ装置に伝送し、前記第1書込み命令は前記複数のミラーリング記憶装置に要請データの保存を指示し、前記要請データは前記ホストに保存された第1データであり、前記書込み要請データは前記第1データが前記複数のミラーリング記憶装置の中で少なくとも一つに書込み完了するように要請する命令分配部と、前記書込み要請に応答して前記ホストに前記第1データをメモリロック(lock)設定し、前記第1データが前記複数のミラーリングストレージ装置で書込み完了した場合、前記ホストに前記第1データのメモリロックを解除するメモリロック設定部を含むことを特徴とする。
前記命令分配部は、前記第1ミラーリングストレージ装置に前記第1データ書込みが完了した書込み完了メッセージを受信した後、第2書込み命令を前記複数のミラーリングストレージ装置の一つに伝送し、前記第1ミラーリングストレージ装置は、前記複数のミラーリングストレージ装置の残りのものに比べて一番速い時点で前記第1データの書込みを完了したストレージ装置であることを特徴とする。
前記メモリロック設定部は、前記第1書込み命令を受信し、前記第1データを書込み完了するのに障害がない前記複数のミラーリングストレージ装置のすべての装置に対して決定された場合、前記ホストに前記第1データのメモリロックを解除することを特徴とする。
ホストから書込み要請されたデータがミラーリングの適用されるすべてのストレージ装置で書込み完了前までホストメモリ上に記憶できるようにし、複数のストレージ装置の一部の故障によるデータ損失を防止することができる。
また、ミラーリングが適用される複数のストレージ装置の一つのストレージ装置で書込み完了した場合、直ちに書込み完了メッセージを伝送するようにし、書込み性能を向上させることができる。
さらに、適切な時期にトリム命令及びガーベジコレクションが実行できるようにし、SSDの性能及び寿命を向上させることができる。
本発明の一実施例によるデータミラーリングが適用されたストレージシステムの構成図。 本発明の一実施例によるデータミラーリング制御装置の構成図。 メモリロックが適用されない場合、データ損失を説明するための例示図。 メモリロックが適用されない場合、データ損失を説明するための例示図。 メモリロックが適用されない場合、データ損失を説明するための例示図。 メモリロック設定及び書込み完了メッセージの伝達を説明するための例示図。 メモリロック設定及び書込み完了メッセージの伝達を説明するための例示図。 書込み命令がノンブロッキング方式で伝達される場合、メモリロック設定及び書込み完了メッセージの伝達を説明するための例示図。 書込み命令がノンブロッキング方式で伝達される場合、メモリロック設定及び書込み完了メッセージの伝達を説明するための例示図。 トリム命令の伝達を説明するための例示図。 トリム命令の伝達を説明するための例示図。 速いストレージ装置を説明するための例示図。 速いストレージ装置を説明するための例示図。 速いストレージ装置を説明するための例示図。 ホストに障害が発生した場合、データ復旧を説明するための例示図。 複数のストレージ装置がSSD及びHDDを含む場合、データミラーリング制御を説明するための例示図。 本発明の一実施例による、メモリロック設定過程を示すフローチャート。 本発明の一実施例による書込み命令の伝送及び書込み完了メッセージの伝送過程を示すフローチャート。 本発明の他の実施例による書込み命令の伝送及び書込み完了メッセージの伝送過程を示すフローチャート。 本発明の一実施例による速いストレージ装置を変更する過程を示すフローチャート。 本発明の他の実施例による速いストレージ装置を変更する過程を示すフローチャート。 本発明のさらに他の実施例による速いストレージ装置変更過程を示すフローチャート。 本発明の一実施例による速いストレージ装置に故障が発生した場合、データ復旧過程を示すフローチャート。 本発明の一実施例によるホストに障害が発生した場合、データ復旧過程を示すフローチャート。
以下、添付図面に基づいて実施例を詳細に説明する。
図1は本発明の一実施例によるデータミラーリングが適用されたストレージシステムの構成図である。
図1を参照すれば、データミラーリングが適用されたストレージシステムは、データミラーリング制御装置110、ホスト120、及び複数のストレージ装置130を含むことができる。
複数のストレージ装置130は、一つのストレージ装置に故障が発生したとき、データが損失することを防止するために、データミラーリングによって同一データを重複して保存することになる。
本発明の一実施例によれば、複数のストレージ装置130はSSD(Solid State Drive)アレイからなることができる。ただ、これに限定されるものではなく、一つ以上のSSD及びHDD(Hard Disk Drive)からなることができる。
ホスト120はホストメモリに保存されているデータに対する書込み要請をデータミラーリング装置110に伝送することができる。この際、ホスト120はブロッキング(blocking)方式またはノンブロッキング(non−blocking)方式で書込み要請をデータミラーリング制御装置110に伝送することができる。具体的に、ノンブロッキング方式の場合、ホスト120は以前に書込み要請したデータに対して書込み完了メッセージが受信されたか否かにかかわらず他のデータに対する書込み要請をデータミラーリング制御装置110に伝送することができる。一方、ブロッキング方式の場合、ホスト120は以前に書込み要請したデータに対して書込み完了メッセージが受信されるまで他のデータに対する書込み要請をしない。
データミラーリング制御装置110は、ホストメモリに保存されたデータの中でホスト120から書込み要請されたデータに対するメモリロック(memory lock)を設定することができる。
また、データミラーリング制御装置110は、メモリロック設定されたデータがミラーリングの適用されたすべてのストレージ装置130で書込み完了した場合、書込み完了したデータに対するメモリロックを解除することができる。
このようなメモリロックにより、ホストメモリの特定アドレスに保存されたデータの中でホスト120から書込み要請されたデータが複数のストレージ装置130で書込み完了するまでホストメモリで削除または変更されないようにすることができる。
本発明の一実施例によれば、データミラーリング制御装置110は、ホスト120から書込み要請されたデータに対する書込み命令を複数のストレージ装置130に伝送することができる。
この際、書込み命令はブロッキング(blocking)方式またはノンブロッキング(non−blocking)方式で複数のストレージ装置130のそれぞれに伝送できる。具体的に、ブロッキング方式の場合、データミラーリング制御装置110は、ストレージ装置130でデータ書込みが進行中の場合、書込みが完了するまで他のデータに対する書込み命令を伝送しない。
一方、ノンブロッキング方式の場合、データミラーリング制御装置110は、ストレージ装置130でデータ書込みが進行中であるか否かにかかわらず他のデータ書込み命令をそれぞれのストレージ装置130に伝送することができる。この際、それぞれのストレージ装置130は、伝送受けた書込み命令を命令キューに保存し、現在書込み進行中のデータに対する書込みを完了した後、命令キューに保存された書込み命令を行うことによって他のデータに対する書込みを遂行することができる。
一方、データミラーリング制御装置110は、ホスト120から書込み要請されたデータに対して複数のストレージ装置130の一つで書込み完了した場合、該当のデータに対する書込み完了メッセージをホストに伝送することができる。
本発明の他の実施例によれば、データミラーリング制御装置110は、ホスト120から書込み要請されたデータに対する書込み命令を複数のストレージ装置130の中で速いストレージ装置に設定されたストレージ装置に伝送することができる。具体的に、データミラーリング制御装置110は、複数のストレージ装置130のそれぞれに書込み命令を伝送した後、複数のストレージ装置の一つで該当の書込み命令の実行が完了した場合、ホスト120に書込み完了メッセージを伝送することができる。
本発明の他の実施例によれば、データミラーリング制御装置110は、複数のストレージ装置130の中で速いストレージ装置に書込み命令を伝送し、速いストレージ装置で該当の書込み命令の実行が完了した場合、ホスト120に書込み完了メッセージを伝送することができる。
一方、データミラーリング制御装置110は、ホスト120から分離された別途の装置で具現できるが、必ずしもこれに限定されるものではなく、ホスト120の一構成として含むことができる。
図2は本発明の一実施例によるデータミラーリング制御装置110の構成図である。
図2を参照すれば、メモリロック設定部112は、ホストメモリに保存されたデータの中でホスト120から書込み要請されたデータに対してメモリロック(memory lock)を設定することができる。
また、メモリロック設定部112は、メモリロック設定されたデータが複数のストレージ装置130の全てで書込み完了した場合、該当のデータに対するメモリロックを解除することができる。
言い換えれば、ホスト120から書込み要請されたデータに対して設定されたメモリロックはいずれか一つのストレージ装置への書込みが完了したか否かにかかわらず複数のストレージ装置130の全てで書込み完了したときに解除される。
本発明の一実施例によれば、命令分配部111は、ホスト120からデータ書込み要請が受信された場合、複数のストレージ装置130のそれぞれに書込み要請されたデータに対する書込み命令を伝送することができる。
この際、命令分配部111は、複数のストレージ装置130の一つで該当の書込み命令の実行が完了した場合、ホスト120に書込み完了メッセージを伝送することができる。
本発明の他の実施例によれば、命令分配部111は、ホスト120から書込み要請されたデータに対する書込み命令を複数のストレージ装置130の中で速いストレージ装置に設定されたストレージ装置に伝送することができる。
この際、命令分配部111は、速いストレージ装置でデータ書込みが完了した場合、該当のデータに対する書込み完了メッセージをホスト120に伝送することができる。
速いストレージ装置設定部113は、複数のストレージ装置130の中で少なくとも一つのストレージ装置を速いストレージ装置に設定することができる。この際、速いストレージ装置は、複数のストレージ装置130の中で最新のデータを保存しているストレージ装置を意味することができる。
本発明の一実施例によれば、速いストレージ装置設定部113は、複数のストレージ装置の中で書込み命令に対する書込み完了速度に基づいて速いストレージ装置を設定することができる。
具体的に、速いストレージ装置設定部113は、複数のストレージ装置の中で同一データに対する書込み完了速度が一番速いストレージ装置を速いストレージ装置に設定することができる。
また、速いストレージ装置設定部113は、同一データに対して一番先に書込み完了したストレージ装置が速いストレージ装置ではない場合、該当のストレージ装置を速いストレージ装置に変更することができる。
本発明の他の実施例によれば、速いストレージ装置設定部113は、複数のストレージ装置130の中でいずれかのストレージ装置を速いストレージ装置に設定した後、周期的または非周期的に速いストレージ装置を変更することができる。
例えば、速いストレージ装置設定部113は、複数のストレージ装置130のそれぞれから書込み加速因子(WAF:Write Acceleration Factor)値を周期的に受け、書込み加速因子値が一番高いストレージ装置を速いストレージ装置に選定することができる。
本発明のさらに他の例として、速いストレージ装置設定部113は、速いストレージ装置で書込み遅延が発生する場合、速いストレージ装置を変更することができる。
本発明のさらに他の例として、速いストレージ装置設定部113は、速いストレージ装置で書込み命令の実行によって自由ブロック(free block)の量が一定量以下に減少した場合、速いストレージ装置を変更することができる。
一方、本発明の一実施例によれば、速いストレージ装置は、複数のストレージ装置130のそれぞれに保存された速いストレージ装置指示子によって設定できる。具体的に、早いストレージ装置設定部113は、複数のストレージ装置130のそれぞれに保存されている速いストレージ装置指示子の値を1または0に設定して速いストレージ装置を設定もしくは変更することができる。
一方、本発明の一実施例によれば、命令分配部111は、速いストレージ装置に故障が発生した場合、メモリロック設定されたデータに対する書込み命令を故障しなかった他のストレージ装置に伝送することができる。
特定のデータに対してメモリロック設定されているというのは少なくとも一つのストレージ装置で該当データに対する書込みが完了しなかったことを意味する。よって、速いストレージ装置に故障が発生してもメモリロック設定されたデータに対する書込み命令を他のストレージ装置に伝達することにより、速いストレージ装置の故障によるデータ損失を防止することができる。
本発明の一実施例によれば、命令分配部111は、ホスト120に故障が発生した場合、複数のストレージ装置に保存されたデータを一致させるための過程を遂行することができる。
具体的に、命令分配部111は、ホスト120が予想しなかった故障の発生によって再起動した場合、速いストレージ装置と他のストレージ装置に保存されたデータとを比較して一致可否を判断することができる。
この際、一致しないデータが存在する場合、速いストレージ装置に保存されたデータに基づいて他のストレージ装置に上書き保存命令を伝送し、複数のストレージ装置130に保存されたデータを一致させることができる。
トリム命令伝送部114は、複数のストレージ装置130の一つのストレージ装置で書込み完了したデータに対する書込み情報に基づき、該当のデータに対する書込み命令が伝達されなかったストレージ装置にトリム命令を伝送することができる。
具体的に、SSDの構成要素であるNANDフラッシュはin−placeアップデートが不可能なので、ある位置で書込み演算を遂行するためには、その位置を含むブロック全体を消去する削除演算が先行されなければならない。この際、削除を行うブロックでそれ以上使わない無効データ(invalid data)は消去し、有効データは他のブロックに書き写すようになる。
したがって、複数のストレージ装置130の一つのストレージ装置でデータ書込みが完了した場合、トリム命令によって該当のデータに対する書込み命令が伝達されなかったストレージ装置に無効データ領域を知らせることにより、性能向上及び摩耗節減の効果が得られる。
ガーベジコレクション命令の伝送部115は、速いストレージ装置に設定されたストレージ装置が遅いストレージ装置に変更された場合、遅いストレージ装置に変更されたストレージ装置にガーベジコレクション命令を伝送することができる。
具体的に、ホスト120から書込み要請されたデータに対する書込み命令が速いストレージ装置にだけ伝送される場合、遅いストレージ装置に変更されたストレージ装置には書込み命令が伝達されなくなる。よって、遅いストレージ装置に変更されたストレージ装置でガーベジコレクションが遂行されるようにして予め余分の空間を確保することにより、後にまた速いストレージ装置に設定されたとき、書込み性能を向上させることができる。
一方、ここで、遅いストレージ装置は速いストレージ装置に設定されなかったストレージ装置であり得る。
図3a〜図3cはメモリロックが適用されない場合、データ損失を説明するための例示図である。
図3aはホストから書込み要請されたデータがミラーリングの適用されるすべてのストレージ装置で書込み完了した場合、書込み完了メッセージを伝達する場合の例である。図示の例において、SSD1及びSSD2からホストから書込み要請されたデータに対する書込みが完了した時点でホストに書込み完了メッセージが伝達される。
具体的に、データ1に対する書込み完了メッセージは書込み完了速度が遅いSSD2で書込みが完了した時点でホストに伝達される。同様に、データ2に対する書込み完了メッセージは書込み完了速度が遅いSSD2から書込み完了した時点でホストに伝達される。
一方、ホストは、ブロッキング方式でデータ書込み要請をSSD1及びSSD2に伝達する。具体的に、ホストは、書込み要請したデータに対する書込み完了メッセージが受信された場合、他のデータに対する書込み要請をSSD1及びSSD2に伝達する。
図示の例において、ホストは、SSD2でデータ1に対する書込みが完了した後にデータ2に対する書込み要請をSSD1及びSSD2に伝達することになる。この場合、SSD1がデータ1に対する書込み完了後に故障しても、SSD2でデータ1に対する書込みが完了するまではホストにデータ1に対する書込み完了メッセージが伝達されないので、ホストメモリでデータ1は削除または変更されない。よって、SSD2にデータ2に対する書込み命令が伝達できるので、データ2の損失は発生しない。
しかし、SSD1で書込みを早く完了した場合でも、SSD2で書込み完了するまでは次のデータに対する書込み要請が伝達されないので、全てのストレージ装置の書込み完了速度が遅くなる。
図3bはミラーリングが適用される複数のストレージ装置の一つで書込み完了した場合、直ちにホストに書込み完了メッセージを伝達する場合の例である。
図3bの場合、書込み完了メッセージは、図3aの場合とは異なり、SSD1及びSSD2のいずれか一方で書込みが完了した場合、直ちにホストに伝達される。また、書込み完了メッセージを受けたホストは他のデータに対する書込み要請を伝達する(ブロッキング方式)。
具体的に、ホストから書込み要請されたデータ1、2、3に対し、SSD1がSSD2より書込み完了速度が速いので、データ1、2及び3のそれぞれに対する書込み完了メッセージはSSD1で書込みが完了した時点にホストに伝達される。
一方、データ1に対する書込み完了メッセージを伝達受けたホストはデータ2に対して書込み要請を行い、データ2に対する書込み命令がSSD1に伝達される。また、データ2に対する書込み完了メッセージを伝達受けたホストは、データ3に対して書込み要請を行い、データ3に対する書込み命令がSSD1に伝達される。
この場合、図3aの場合に比べ、全てのストレージ装置の書込み完了速度は速くなる。しかし、SSD2にデータ2及び3に対する書込み命令が伝達される前にSSD1が故障した場合、データ2及び3の損失が発生する。
具体的に、ホストが既にデータ1、2及び3に対して書込み完了メッセージを伝達受けた場合、ホストメモリに保存されたデータ2及び3は削除または変更できる。よって、図示の例のように、SSD1がデータ3に対する書込みを完了した時点で故障した場合、ホストメモリ上にデータ2及び3が維持されていないと、まだデータ2及び3に対する書込み命令の伝達を受けなかったSSD2はデータ2及び3に対する書込み命令の伝達を受けることができない。よって、この場合、データ2及び3に対する損失が発生する。
図3cは書込み要請がノンブロッキング方式で伝達される場合の例示図である。
図3cを参照すれば、ホストは書込み完了メッセージを受ける前に他のデータに対して書込み要請することができる。図示の例のように、ホストは書込み要請したデータ1に対する書込み完了メッセージの伝達を受ける前にそれぞれのSSDの命令キューの長さの分だけ違うデータの書込みを要請することができる。
SSD1及びSSD2は、ホストから書込み要請されたデータに対する書込み命令を命令キューに保存し、書込みを遂行することができる。また、SSD1及びSSD2のいずれか一方で書込みが完了した場合、書込み完了メッセージをホストに伝達することができる。
この場合にも、命令キューの長さ(queue depth)以上の書込みに対してはデータ損失の危険が存在する。図3cにおいて、SSD1とSSD2の命令キューの長さが4であると仮定すれば、SSD1でデータ1に対する書込みが完了した場合、データ1に対する書込み完了メッセージがホストに伝達され、データ5に対する書込み命令がSSD1の命令キューに伝達される。また、SSD1でデータ2に対する書込みが完了した場合、データ2に対する書込み完了メッセージが伝達され、データ6に対する書込み命令がSSD1の命令キューに伝達される。
しかし、SSD1でデータ6の書込みが完了した時点にSSD2がデータ1に対する書込みを進行しており、SSD2の命令キューの長さが4であるので、データ5及び6に対する書込み命令はSSD2に伝達できない。
したがって、SSD1がデータ5及び6に対する書込みが完了した後に故障した場合、ホストメモリ上にデータ5及び6が維持されなければ、SSD2にデータ5及び6に対する書込み命令が伝達できない。したがって、この場合、データ5及び6に対する損失が発生する。
図4a及び図4bはメモリロック設定及び書込み完了メッセージの伝達を説明するための例示図である。
図示の例では、説明の便宜上、ミラーリングが適用される複数のストレージ装置が二つのSSDからなると仮定する。ただ、これに限定されるものではなく、ミラーリングが適用される複数のストレージ装置は二つ以上のSSDからなるとか一つ以上のSSD及び一つ以上のHDDからなることができる。
図4aを参照すれば、データミラーリング制御装置110は、ホスト120からデータ書込み要請が伝達された場合、ホストメモリに保存されたデータの中で書込み要請を受けたデータに対するメモリロックを設定することができる。
例えば、図4aにおいて、ホスト120からデータ1に対する書込み要請を受けた場合、データミラーリング制御装置110は、ホストメモリに保存されたデータ1に対するメモリロックを設定することができる。同様に、データ2〜4のそれぞれに対してもホスト120から書込み要請を受けた時点にメモリロックを設定することができる。
メモリロック設定されたデータはSSD1及びSSD2で書込みが完了した時点にロック解除される。図示の例において、SSD2のデータ書込み完了速度がSSD1より遅いので、データミラーリング制御装置110は、SSD2でデータ1の書込みが完了した後、データ1に対するメモリロックを解除することができる。また、データ2〜4のそれぞれに対するメモリロックはSSD2でデータ2〜4のそれぞれに対する書込みが完了した後に解除できる。
一方、データミラーリング制御装置110は、SSD1及びSSD2のいずれか一方でデータ書込みが完了した場合、直ちに書込み完了したデータに対する書込み完了メッセージをホスト120に伝送することができる。図示の例において、SSD1がSSD2よりデータ1〜4に対する書込み完了速度が速いので、データミラーリング制御装置110は、SSD1でデータ1に対する書込みが完了した時点にホスト120にデータ1に対する書込み完了メッセージを伝達する。同様に、データ2〜4のそれぞれに対する書込み完了メッセージはSSD1で書込みが完了した時点にホスト120に伝達される。
一方、ホスト120は以前に書込み要請したデータに対する書込み完了メッセージの伝達を受けるまで他のデータに対する書込み要請を伝達しない(blocking方式)。具体的に、ホスト120は、データミラーリング制御装置110からデータ1に対する書込み完了メッセージを受信した後にデータ2に対する書込み要請をデータミラーリング制御装置110に伝達する。同様に、データ3に対する書込み要請はデータ2に対する書込み完了メッセージの伝達を受けた後に伝達され、データ4に対する書込み要請はデータ3に対する書込み完了メッセージの伝達を受けた後に伝達される。
一方、データミラーリング制御装置110は、ホスト120から書込み要請されたデータに対する書込み命令をSSD1及びSSD2に伝達する。具体的に、データミラーリング制御装置110は以前に伝達された書込み命令が完了するまで次のデータに対する書込み命令を伝達しない(blocking方式)。図示の例において、SSD1でデータ1に対する書込みが完了した後、データ2に対する書込み命令がSSD1に伝達される。同様に、SSD2でデータ1に対する書込みが完了した後、データ2に対する書込み命令が伝達される。
図4bを参照すれば、SSD2にデータ2〜4に対する書込み命令が伝達される前にSSD1に故障が発生したと仮定する。
この場合、データ2〜4に対して設定されたメモリロックはSSD2でデータ2〜4に対する書込みが完了するまでは解除されないので、データミラーリング制御装置110はホストメモリに保存されたデータ2〜4に対する書込み命令をSSD2に伝達することができる。よって、図3bの場合とは異なり、SSD1の故障によるデータ損失を防ぐことができる。
言い換えれば、二つのSSDがいずれも書込み命令を完了するまで書込み進行中のデータに対してメモリロックを維持し、先に書込み命令を処理したSSDが故障してもデータ損失を防止することができる。
また、二つのSSDの一つのSSDで書込みが完了すれば、直ちに書込み完了メッセージをホスト120に伝達し、次のデータに対する書込みを進行することができるようにすることにより、全てのストレージ装置の書込み完了速度を向上させることができる。
図5a及び図5bは書込み命令がノンブロッキング(non−blocking)方式で伝達される場合、メモリロックの設定及び書込み完了メッセージの伝達を説明するための例示図である。
図5aを参照すれば、ホスト120は以前に書込み要請したデータに対する書込み完了メッセージが伝達されたか否かにかかわらず他のデータに対する書込み要請をデータミラーリング制御装置110に伝達することができる。
また、データミラーリング制御装置110は、SSD1及びSSD2でデータ書込み進行中であるか否かにかかわらずホストから書込み要請されたデータに対する書込み命令をSSD1及びSSD2のそれぞれに伝達することができる。
具体的に、ホスト120から書込み要請されたデータに対する書込み命令はSSD1及びSSD2の命令キューに保存される。また、SSD1及びSSD2のそれぞれは命令キューに保存された書込み命令によってデータ書込みを遂行することができる。
この際、本発明の一実施例によれば、SSD1とSSD2への書込み命令の伝送はそれぞれのSSDの命令キューの長さを考慮して伝送できる。
図示の例において、SSD1とSSD2の命令キューの長さは4であり、データ1〜4に対する書込み命令がSSD1とSSD2の命令キューに優先的に伝送される。その後、SSD1でデータ1に対する書込み命令が完了した場合、データ5に対する書込み命令がSSD1の命令キューに伝達され、データ2に対する書込み命令が完了した後、データ6に対する書込み命令がSSD1の命令キューに伝達される。
同様に、SSD2でデータ1に対する書込み命令が完了した場合、データ5に対する書込み命令がSSD2の命令キューに伝達され、データ2に対する書込み命令が完了した後、データ6に対する書込み命令がSSD2の命令キューに伝達される。
一方、ホストメモリに保存されたデータ1〜6はホスト120から書込み要請が伝達される時点でメモリロック設定され、SSD1及びSSD2で書込みが完了した時点でメモリロックが解除される。
また、データミラーリング制御装置110は、ホスト120から書込み要請されたデータに対してSSD1及びSSD2の一つで書込みが完了した場合、書込み完了したデータに対する書込み完了メッセージをホスト120に伝送することができる。
具体的に、図示の例において、データミラーリング制御装置110は、SSD1でデータ1〜6のそれぞれに対する書込みが完了した時点でそれぞれのデータに対する書込み完了メッセージをホスト120に伝送することができる。
一方、データ1〜6に対するメモリロックはすべてのストレージ装置で書込みが完了した時点、つまりSSD2で書込みが完了した時点でそれぞれ解除される。
図5bを参照すれば、SSD2の命令キューにデータ5及び6に対する書込み命令が伝達される前にSSD1に故障が発生した。
この場合、ホストメモリに保存されたデータ5及び6に対するメモリロックはSSD2で書込み完了するまで解除されないので、データミラーリング制御装置110はメモリロック設定されたデータ5及び6に対する書込み命令をSSD2に伝達し、SSD2でデータ5及び6に対する書込みが遂行されるようにすることができる。
したがって、図3cの場合とは違い、SSD1に故障が発生しても、データ5及び6はホストメモリにメモリロック設定されているので、メモリロック設定されたデータ5及び6に対する書込み命令をSSD2の命令キューに伝達することによってデータ損失を防止することができる。
また、二つのSSDの一方で書込みが完了すれば、直ちに書込み完了メッセージをホスト120に伝達して次のデータに対する書込みを進行することができるようにすることにより、全てのストレージ装置の書込み完了速度を向上させることができる。
図6a及び図6bはトリム命令の伝達を説明するための例示図である。
図6aを参照すれば、SSD2にデータ2に対する書込み命令が伝達される前にSSD1でデータ1〜4に対する書込みが完了した。
この際、データミラーリング制御装置110は、SSD1で書込み完了したデータ2〜4に対する書込み情報に基づいてSSD2にトリム命令を伝送することができる。
SSDのようにフラッシュメモリを基盤とするストレージ装置は、HDDとは異なり、空いていないページに直ちにデータを記録することができず、既存のデータを消去した後、データを記録しなければならない。具体的に、SSDでの消去はブロック単位で遂行されるので、空いていないブロックに上書き保存するためには、先に該当のブロックに保存されたデータの中で無効データを除いたデータを他のブロックやSSD内部のキャッシュに移した後、該当のブロックに保存されたデータを削除しなければならない。
この際、トリム命令によってどんなデータが無効データであるかを明示的に知らせることができるなら、上書き保存のための削除演算の際、他のブロックに書き写さなければならないデータの量を減らすことができる。具体的に、SSD1とSSD2には同一データが保存されるので、SSD1で書込み完了したデータ2〜4に対する書込みが上書き(overwrite)であったとすれば、SSD2でデータ2〜4が書込みされるブロックに保存されているデータは無効データ(invalid data)と見なせる。
例えば、SSD1で1,000番ブロックから1,500番ブロックまでデータを上書き(overwrite)したとすれば、まだデータ2〜4に対する書込み命令が実行されなかったSSD2に保存された1,000番ブロックから1,500番ブロックまでのデータは無効データであることを意味する。
したがって、データミラーリング制御装置110は、SSD2にデータ2〜4に対する書込み命令を伝達する前に、データ2〜4が書込みされるアドレスに保存されているデータは無効データという情報をトリム命令によって明示的に知らせることができる。トリム命令の伝達を受けたSSD2は、上書きのための削除演算の際、他のブロックに書き写さなければならないデータ量を減らすことができるので、性能向上及び摩耗節減の効果が得られる。
図6bを参照すれば、SSD2でデータ1に対する書込み命令が完了した時点でSSD1からSSD2に書込み命令が伝達されなかったデータ5及び6に対する書込みが完了した。
したがって、データミラーリング制御装置110は、SSD1で遂行されたデータ5及び6に対する書込み情報に基づいてSSD2にトリム命令を伝送することができる。
図7a〜図7cは速いストレージ装置を説明するための例示図である。
図7aを参照すれば、データミラーリング制御装置110は、ホスト120から書込み要請されたデータに対して書込み完了が一番速いストレージ装置を速いストレージ装置に設定することができる。
具体的に、図7aで、データ1及び2に対する書込みがSSD1で先に完了しているので、SSD1が速いストレージ装置に設定できる。
一方、データ3及び4に対する書込みはSSD2で先に完了したので、データミラーリング制御装置110は、SSD2でデータ3に対する書込みが完了した時点で速いストレージ装置をSSD2に変更することができる。
図7bを参照すれば、データミラーリング制御装置110は、速いストレージ装置に設定されたSSD1に書込み命令を伝達し、SSD2には読み取り命令を伝達することができる。
この際、速いストレージ装置は、書込み加速因子、自由ブロックの量、書込み遅延の発生有無などによって設定され、周期的または非周期的に変更できる。
例えば、図示の例において、初期に速いストレージ装置に設定されたSSD1の書込み加速因子(WAF:Write Acceleration Factor)値がSSD2より高い場合には速いストレージ装置はSSD2に変更できる。
本発明のさらに他の例として、SSD1で書込み遅延が発生する場合またはSSD1で書込み命令実行によって自由ブロック(free block)の量が一定量以下に減少する場合、速いストレージ装置はSSD2に変更できる。
一方、図示の例において、SSD1でデータ2の書込みが完了した後、速いストレージ装置がSSD2に変更されたので、SSD2のみに書込み命令が伝送できる。
この際、データミラーリング制御装置110は、メモリロック設定されたデータ1及び2に対する書込み命令をSSD2に伝送することができる。
また、この場合、データ1及び2に対する書込み命令は、速いストレージ装置が変更された後、ホストから書込み要請されたデータ3及び4に対する書込み命令と交互に伝送できるが、図示の例とは異なり、SSD1で書込み完了したデータ1及び2に対する書込み命令を優先的に伝達することもできる。
一方、速いストレージ装置がSSD2に変更された場合、データミラーリング制御装置110は、SSD2にデータ1及び2に対する書込み命令を伝達する前に、SSD1で書込み完了したデータ1及び2に対する書込み情報に基づいたトリム命令をSSD2に伝送することができる。具体的に、データ1及び2に対する書込み命令が上書き命令であれば、SSD1でデータ1及び2が書込みされたアドレスに保存されていた以前のデータは無効データであることが分かる。よって、データミラーリング制御装置110は、トリム命令によってSSD2でデータ1及び2が書込みされるアドレスに保存されたデータが無効データであることを明示的に知らせることができる。トリム命令を伝達受けたSSD2はデータ2〜4の上書きのための削除演算の際、他のブロックに書き写さなければならないデータの量を減らすことができるので、性能向上及び摩耗節減の効果が得られる。
一方、速いストレージ装置がSSD2に変更された場合、データミラーリング制御装置110は、SSD1にガーベジコレクション命令を伝送し、SSD1でガーベジコレクションが実行されるようにすることができる。
例えば、速いストレージ装置がSSD2に変更された場合、書込み命令はSSD2に伝送され、SSD1には読み取り命令が伝達されるので、SSD1では書込み演算が実行されない。よって、SSD1が速いストレージ装置に再び変更される前にSSD1でガーベジコレクションが実行されるようにして、無効データ(invalid data)が保存されたページを集めて削除することによって予め余裕空間を確保することができる。これにより、SSD1が再び速いストレージ装置に変更された場合、SSD1の書込み性能を改善させることができる。
一方、図7bに示した例において、速いストレージ装置がSSD2に変更されたにもかかわらず、SSD2にデータ1及び2に対する書込みが完了するまではSSD1に最新のデータが保存される。
したがって、図7cに示した例のように、データミラーリング制御装置110は、速いストレージ装置をSSD2に変更する前に、メモリロック設定されたデータ1及び2に対する書込み命令をSSD2に伝送して、SSD2とSSD1に保存されたデータを一致させることができる。
その後、SSD2でデータ1及び2に対する書込みが完了した場合、データミラーリング制御装置110は速いストレージ装置をSSD2に変更することができる。
この場合、図7bの場合とは異なり、ストレージ装置にはいつも最新のデータが保存できる。
一方、データミラーリング制御装置110は、SSD2にデータ1及び2に対する書込み命令を伝達する前に、SSD1で書込み完了したデータ1及び2に対する書込み情報に基づいたトリム命令をSSD2に伝送することができる。
また、速いストレージ装置がSSD2に変更された場合、データミラーリング制御装置110は、SSD1にガーベジコレクション命令を伝送し、SSD1でガーベジコレクションが実行されるようにすることができる。
一方、図7b及び図7cでは速いストレージ装置に書込み命令だけが伝達され、他のストレージ装置に読み取り命令が伝達されているが、必ずしもこれに限定されるものではない。
例えば、ストレージ装置の間に負荷バランシング(load balancing)が必要な場合または最近に速いストレージ装置に書込み完了したデータに対する読み取り要請の場合、速いストレージ装置に読み取り命令が伝達できる。
図8はホストに障害が発生した場合、データ復旧を説明するための例示図である。
図8を参照すれば、ホスト120が予想しなかった障害によって再起動した場合、データミラーリング制御装置110は、速いストレージ装置に保存されたデータに基づいて複数のストレージ装置の間にデータを一致させることができる。
速いストレージ装置には最新のデータが保存されるので、速いストレージ装置に保存されたデータを基準に複数のストレージ装置のデータを一致させることができる。
具体的に、ホスト120が再起動した場合、速いストレージ装置に保存されたデータと他のストレージ装置に保存されたデータを比較して一致可否を判断することができる。
この際、どのストレージ装置が速いストレージ装置であるかはそれぞれのストレージ装置に保存された速いストレージ装置指示子710によって把握することができる。図示の例において、速いストレージ装置指示子710が1に設定されたSSD1が速いストレージ装置である。
一方、SSD1とSSD2の間に一致しないデータが存在するか否かはアップデートビットマップ720によって判断することができる。
具体的に、データミラーリング制御装置110は、複数のストレージ装置130のすべてのデータ領域をN個のチャンク(chunk)に分割し、それぞれのチャンクに対応するアップデートビットによって、データの一致可否を判断することができる。
図示の例において、SSD1とSSD2のデータ領域が8個のチャンクに分割され、それぞれのチャンクに対するアップデートビットマップ720が示されている。
この際、アップデートビットマップに含まれたそれぞれのビットはそれぞれのチャンクに対応し、それぞれのチャンクに相応するデータ領域でSSD1とSSD2に保存されたデータが一致するか否かを示す。
具体的に、特定のデータに対し、SSD1とSSD2の中で速いストレージ装置であるSSD1でばかり書込みが完了した場合、該当のデータが書込みされたチャンク730、740に対するアップデートビットは1に設定できる。
一方、SSD1及びSSD2のいずれでもデータ書込みが完了するとかデータ書込みが実行されないチャンクに対するアップデートビットは0に設定できる。
したがって、この場合、SSD1とSSD2に保存されたデータの全体を比較せず、アップデートビットマップでアップデートビットが1に設定されたチャンクのデータだけ比較すれば良いので、データ復旧の時間を節減することができる。
一方、ホスト障害発生の際、複数のストレージ装置間にデータを一致させるための方法は図8に示した例のようなアップデートビットマップを用いる方法に限定されない。
例えば、ホストメモリに保存されたデータの中で、速いストレージ装置には書込み完了したが遅いストレージ装置には書込み完了しなかったデータはメモリロック設定されているので、遅いストレージ装置で書込み完了するまでは消去または変更されない。したがって、データミラーリング制御装置110はホストメモリにメモリロック設定されているデータのリストをロギングして不揮発性メモリまたはストレージ装置の一部領域に保存することができる。その後、ホスト120が再起動した場合、データミラーリング制御装置110は、リストに含まれたデータに対する書込み命令を遅いストレージ装置に伝送し、遅いストレージ装置に保存されたデータを速いストレージ装置に保存されたデータと一致させることができる。
図9は複数のストレージ装置がSSD及びHDDを含む場合、データミラーリング制御を説明するための例示図である。
図9を参照すれば、ミラーリングが適用される複数のストレージ装置は一つ以上のHDD及び一つ以上のSSDを含むことができる。
データミラーリング制御装置110は、HDDを速いストレージ装置に設定し、HDDに優先的にデータが書込みされるようにし、ついで速いストレージ装置をSSDに変更することにより、HDDに書込みされたデータと同一のデータがSSDに書込みされるようにすることができる。
一方、データミラーリング制御装置110は、ホスト120からいずれかの書込み要請されたデータに対する書込み命令を順次に書込み命令に変換してHDDに伝送することができる。
具体的に、図示の例において、1’、2’、3’で表示された書込み要請はデータ1、2、3が保存されたアドレスに対する上書き保存要請である。この際、データミラーリング制御装置110はホストから要請されたデータ1’、2’、3’に対する書込み要請に対する書込み命令を順次に書込み命令4、5、6に変換してHDDに伝送することができる。
一般に、HDDはSSDより余裕空間が大きいため、HDDとSSDの間にデータミラーリングが適用される場合、HDDには余裕空間が多く生ずる。また、HDDは物理的特性上ランダム書込み性能より順次書込み性能に優れるので、ホストからランダム書込み要請されたデータをログ形態に変換して順次に保存することにより、書込み性能を向上させることができる。
一方、データミラーリング制御装置110は、速いストレージ装置がSSDに変更された場合、HDDで遂行された書込み情報に基づいて無効データに対する情報をトリム命令によってSSDに伝送することができる。
図示の例において、データミラーリング制御装置110は、HDDに保存されたデータの中でデータ1、2、3は無効データであるという情報をトリム命令によってSSDに伝送し、ついでデータ1、2、3に対する書込み命令をSSDに伝送することができる。
このような方法によってHDDの書込み性能を高め、SSDの摩耗を減らすことができる。
図10は本発明の一実施例による、メモリロック設定過程を示すフローチャートである。
図10を参照すれば、データミラーリング制御装置110は、ホスト120から書込み要請が受信された場合(910)、ホストメモリに保存されたデータの中で書込み要請されたデータに対してメモリロックを設定することができる(920)。
その後、データミラーリング制御装置110は、メモリロック設定されたデータのそれぞれに対して複数のストレージ装置130のいずれでも書込み完了した場合(930)、該当のデータに対するメモリロックを解除することができる(940)。
言い換えれば、メモリロック設定されたデータは複数のストレージ装置の全てで書込みが完了するまではメモリロックが解除されない。
図11は本発明の一実施例による書込み命令の伝送及び書込み完了メッセージの伝送過程を示すフローチャートである。
図11を参照すれば、データミラーリング制御装置110は、ホスト120から書込み要請されたデータに対する書込み命令を複数のストレージ装置130に伝送することができる(1010)。
この際、ホスト120の書込み要請及びホスト120から書込み要請されたデータに対する書込み命令は、ブロッキング方式またはノンブロッキング方式で複数のストレージ装置130のそれぞれに伝送できる。
一方、データミラーリング制御装置110は、ホスト120から書込み要請されたデータに対して少なくとも一つのストレージ装置で書込み完了した場合(1020)、該当のデータに対する書込み完了メッセージをホスト120に伝送することができる(1030)。
一方、本発明の一実施例によれば、データミラーリング制御装置110は、ホスト120から書込み要請されたデータに対して少なくとも一つのストレージ装置で書込み完了した場合、書込み完了したストレージ装置での書込み情報に基づいて該当のデータに対する書込み命令が伝送されなかったストレージ装置にトリム命令を伝送することができる(1040)。
図12は他の実施例による書込み命令の伝送及び書込み完了メッセージの伝送過程を示すフローチャートである。
図12を参照すれば、データミラーリング制御装置110はホスト120から書込み要請されたデータに対する書込み命令を速いストレージ装置に伝送することができる(1110)。
言い換えれば、データミラーリング制御装置110は、複数のストレージ装置130の中で速いストレージ装置に設定されたストレージ装置にだけ書込み命令を伝送することができる。
一方、本発明の一実施例によれば、複数のストレージ装置130が一つ以上のHDD及び一つ以上のSSDを含む場合、データミラーリング制御装置110は、HDDを速いストレージ装置に設定した後、ホストから要請されたデータに対する書込み命令を順次に書込み命令に変換してHDDに伝送することができる。
一方、データミラーリング制御装置110は、複数のストレージ装置130の中で少なくとも一つのストレージ装置を速いストレージ装置に設定することができ、周期的または非周期的に速いストレージ装置を変更することができる。
また、本発明の一実施例によれば、データミラーリング制御装置110は、複数のストレージ装置130の中で速いストレージ装置に設定されなかったストレージ装置には読み取り命令を伝送することができる。
ただ、必ずしもこれに限定されるものではなく、ストレージ装置の間に負荷バランシング(load balancing)が必要な場合または最近に速いストレージ装置に書込み完了したデータに対する読み取り要請の場合、速いストレージ装置に読み取り命令が伝送できる。
一方、データミラーリング制御装置110は、ホスト120から書込み要請されたデータが速いストレージ装置で書込み完了した場合(1120)、ホスト120に書込み完了メッセージを伝送することができる(1130)。
図13は本発明の一実施例による速いストレージ装置変更過程を示すフローチャートである。
図13を参照すれば、データミラーリング制御装置110は、ホスト120から書込み要請されたデータに対する書込み命令をミラーリングが適用される複数のストレージ装置130に伝送することができる(1210)。
この際、本発明の一実施例によれば、書込み要請されたデータに対する書込み完了速度が一番速いストレージ装置を速いストレージ装置に設定することができる。
したがって、複数のストレージ装置130の一つのストレージ装置でホスト120から書込み要請されたデータに対する書込みが完了した場合(1220)、書込み完了したストレージ装置が速いストレージ装置であるか否かを判断することができる(1230)。
この際、書込み完了したストレージ装置が速いストレージ装置ではない場合、速いストレージ装置を書込み完了したストレージ装置に変更することができる(1240)。
図14は本発明の他の実施例による速いストレージ装置変更過程を示すフローチャートである。
図14を参照すれば、データミラーリング制御装置110は、ホスト120から書込み要請されたデータに対する書込み命令を速いストレージ装置に伝送することができる(1310)。
その後、データミラーリング制御装置110は、速いストレージ装置の変更が必要である否かを周期的または非周期的に判断し(1320)、速いストレージ装置を変更することができる(1330)。
具体的に、速いストレージ装置の変更が必要であるか否かは、図12の場合とは異なり、書込み加速因子(WAF)、自由ブロックの量、書込み遅延発生の有無などによって周期的または非周期的に判断することができる。
例えば、データミラーリング制御装置110は、速いストレージ装置の書込み加速因子(WAF:Write Acceleration Factor)値が他のストレージ装置より高い場合には速いストレージ装置を変更することができる。
本発明のさらに他の例として、データミラーリング制御装置110は、速いストレージ装置で書込み遅延が発生する場合または速いストレージ装置で書込み命令実行によって自由ブロックの量が一定量以下に減少する場合、速いストレージ装置を変更することができる。
一方、SSDが速いストレージ装置に変更された場合、データミラーリング制御装置110は、変更される前の速いストレージ装置で書込み完了したデータに対する書込み情報に基づいたトリム命令を速いストレージ装置に変更されたSSDに伝送することができる(1340)。
また、データミラーリング制御装置110は、速いストレージ装置に設定されていたSSDが遅いストレージ装置に変更された場合、該当のSSDにガーベジコレクション命令を伝送することができる(1350)。
図15は本発明のさらに他の実施例による速いストレージ装置変更過程を示すフローチャートである。
図15を参照すれば、データミラーリング制御装置110は、ホスト120から書込み要請されたデータに対する書込み命令を速いストレージ装置に伝送することができる(1410)。
その後、データミラーリング制御装置110は、速いストレージ装置の変更が必要であるか否かを周期的または非周期的に判断することができる(1420)。
具体的に、速いストレージ装置の変更が必要であるか否かは書込み加速因子(WAF)、自由ブロックの量、書込み遅延の発生有無などによって周期的または非周期的に判断できる。
例えば、データミラーリング制御装置110は、速いストレージ装置の書込み加速因子(WAF:Write Acceleration Factor)値が他のストレージ装置より高い場合には、速いストレージ装置の変更が必要であると判断することができる。
本発明のさらに他の例として、データミラーリング制御装置110は、速いストレージ装置で書込み遅延が発生する場合または速いストレージ装置で書込み命令の実行によって自由ブロックの量が一定量以下に減少する場合、速いストレージ装置の変更が必要であると判断することができる。
その後、データミラーリング制御装置110は、メモリロック設定されたデータに対する書込み命令を速いストレージ装置に変更されるストレージ装置に伝送することができる(1440)。
この際、本発明の一実施例によれば、データミラーリング制御装置110は、速いストレージ装置に変更されるストレージ装置がSSDの場合、メモリロック設定されたデータに対する書込み命令を伝送する前、現在速いストレージ装置で書込み完了したデータに対する書込み情報に基づいて速いストレージ装置に変更されるSSDにトリム命令を伝送することができる(1430)。
一方、データミラーリング制御装置110は、速いストレージ装置に変更されるストレージ装置でメモリロック設定されたデータに対する書込みが完了した場合(1450)、該当のストレージ装置に速いストレージ装置を変更することができる(1460)。
この際、本発明の一実施例によれば、データミラーリング制御装置110は、速いストレージ装置に設定されたSSDが遅いストレージ装置に変更された場合、該当のSSDにガーベジコレクション命令を伝送することができる(1470)。
図16は本発明の一実施例による、速いストレージ装置に故障が発生した場合、データ復旧過程を示すフローチャートである。
図16を参照すれば、データミラーリング制御装置110は、複数のストレージ装置130の一つに故障が発生した場合(1510)、故障したストレージ装置が速いストレージ装置であるか否かを判断することができる(1520)。
故障したストレージ装置が速いストレージ装置の場合、データミラーリング制御装置110は、メモリロック設定されたデータに対する書込み命令を故障しなかった他のストレージ装置に伝送することができる(1530)。
ホストメモリでデータロックが解除されなかったというのは、少なくとも一つ以上のストレージ装置で該当のデータに対する書込みが完了しなかったことを意味する。
したがって、データミラーリング制御装置110は、メモリロック設定されたデータに対する書込み命令が伝達されなかったストレージ装置に該当のデータに対する書込み命令を伝達することにより、速いストレージ装置の故障によるデータ損失を防止することができる。
一方、特定のデータがメモリロック設定されたというのは既に速いストレージ装置に書込み命令が伝達されたことを意味するので、故障したストレージ装置が速いストレージ装置ではない場合には別途のデータ復旧の手続きは要求されない。
図17は本発明の一実施例によるホストに障害が発生した場合、データ復旧過程を示すフローチャートである。
図17を参照すれば、ホスト120が予想しなかった障害発生によって再起動した場合(1610)、データミラーリング制御装置110は、複数のストレージ装置130に保存されたデータが一致するか否かを判断することができる(1620)。
この際、本発明の一実施例によれば、データミラーリング制御装置110は、複数のストレージ装置130の全体データ領域を複数の領域に分割し、分割された領域のそれぞれに対応するアップデートビットによってデータの一致可否を判断することができる。
本発明のさらに他の実施例によれば、データミラーリング制御装置110は、ホストメモリにメモリロック設定されているデータに対するリストをロギングして非揮発性メモリまたは速いストレージ装置の一部領域に保存し、ホストが再起動した場合、該当のリストを参照してデータの一致可否を判断することができる。
一方、データミラーリング制御装置110は、複数のストレージ装置130に保存されたデータが一致しない場合(1630)、速いストレージ装置に保存されたデータに基づいて他のストレージ装置に上書き命令を伝送することができる(1640)。
具体的に、速いストレージ装置には最新のデータが保存されるので、データミラーリング制御装置110は、速いストレージ装置と他のストレージ装置に保存されたデータが一致しない領域が存在する場合、速いストレージ装置に保存されたデータをデータが一致しないストレージ装置で上書き保存することによってデータを一致させることができる。
なお、これらの実施例はコンピュータが読める記録媒体にコンピュータが読めるコードで具現することが可能である。コンピュータが読める記録媒体は、コンピュータ装置によって読まれるデータが保存されるすべての種類の記録装置を含む。コンピュータが読める記録媒体の例としては、ROM、RAM、CD−ROM、磁気テープ、フロッピー(登録商標)ディスク、光データ記憶装置などを含む。
また、これらの実施例を具現するための機能的な(functional)プログラム、コード及びコードセグメントは該当の技術分野のプログラマによって容易に推論可能である。
110:ミラーリング制御装置
111:命令分配部
112:メモリロック設定部
113:速いストレージ装置設定部
114:トリム命令伝送部
115:ガーベジコレクション命令伝送部
120:ホスト
130:ストレージ装置

Claims (15)

  1. コンピュータ読み取り可能な命令を保存するメモリと;
    前記命令を実行するよう構成された少なくとも1つのプロセッサとを備え;
    前記プロセッサは、
    ミラーリングが適用される複数のストレージ装置の少なくとも1つを速いストレージ装置として設定し、
    ホストから、前記ホストに内蔵されたホストメモリに保存された複数のデータを、前記複数のストレージ装置に書き込むように要請されると、前記ホストメモリに保存されたデータの中で前記要請の対象となった複数のデータの保存領域のそれぞれに対してメモリロックを設定し、
    前記要請の対象となった複数のデータのそれぞれの書き込みコマンドを前記速いストレージ装置を含む前記複数のストレージ装置に送信することで、前記要請の対象となった複数のデータのそれぞれを、前記複数のストレージ装置に書き込み、
    前記複数のストレージ装置のすべてに対して、前記要請の対象となった複数のデータのすべての書き込みが完了したときに、前記保存領域のそれぞれに対して設定したメモリロックを解除し、
    前記プロセッサは、前記速いストレージ装置に対して、前記要請の対象となった複数のデータのすべての書き込みが完了したときに、前記要請の対象となった複数のデータのいずれかの書き込みが完了していない1つ又は複数のストレージ装置があれば、当該1つ又は複数のストレージ装置に、書き込みが完了していないデータが書き込まれる領域に書き込まれているデータは無効データであることを示すトリムコマンドを、書き込みが完了していないデータの書き込みコマンドよりも前に送信することを特徴とするデータミラーリング制御装置。
  2. 前記少なくとも1つのプロセッサは、複数の書き込み命令を実行するよう構成されており、
    前記プロセッサは、さらに、前記書き込みコマンドに応答する書き込み完了速度に基づいて、前記速いストレージ装置を設定するよう構成されていることを特徴とする、請求項1に記載のデータミラーリング制御装置。
  3. 前記少なくとも1つのプロセッサは、複数の書き込み命令を実行するよう構成されており、
    前記プロセッサは、さらに、前記要請されたデータが前記速いストレージ装置に書き込まれた後に、前記ホストに前記要請されたデータが書き込まれたことを示す書き込み完了メッセージを送信するよう構成されていることを特徴とする、請求項1に記載のデータミラーリング制御装置。
  4. 前記少なくとも1つのプロセッサは、複数の書き込み命令を実行するよう構成されており、
    前記プロセッサは、さらに、前記速いストレージ装置を周期的又は非周期的に変更するよう構成されていることを特徴とする、請求項1に記載のデータミラーリング制御装置。
  5. 前記少なくとも1つのプロセッサは、複数の書き込み命令を実行するよう構成されており、
    前記プロセッサは、さらに、前記速いストレージ装置が変更されると、前記メモリロックされたデータに対する前記書き込みコマンドを新しい速いストレージ装置へ送信するよう構成されていることを特徴とする、請求項4に記載のデータミラーリング制御装置。
  6. 前記少なくとも1つのプロセッサは、複数の書き込み命令を実行するよう構成されており、
    前記プロセッサは、さらに、前記速いストレージ装置を変更する条件が満たされていると決定したとき、前記メモリロックされたデータへの前記書き込みコマンドを前記速いストレージ装置を除く前記複数のストレージ装置の1つである第1ストレージ装置へ送信し、前記第1ストレージ装置が前記メモリロックした前記データの書き込み完了したとき、前記第1ストレージ装置を前記速いストレージ装置として設定することにより前記速いストレージ装置を変更するよう構成されていることを特徴とする、請求項4に記載のデータミラーリング制御装置。
  7. 前記少なくとも1つのプロセッサは、複数の命令を実行するよう構成されており、
    前記プロセッサは、さらに、前記速いストレージ装置が故障したとき、前記メモリロックされたデータへの前記書き込みコマンドを故障していない他のストレージ装置へ送信するよう構成されていることを特徴とする、請求項1に記載のデータミラーリング制御装置。
  8. 前記少なくとも1つのプロセッサは、複数の命令を実行するよう構成されており、
    前記プロセッサは、さらに、前記ホストに欠陥があるとき、前記複数のストレージ装置の各々に保存されているデータが同一であるか否かを決定し、保存されているデータが同一でなかったときには、前記速いストレージ装置に保存されているデータに基づいて前記複数のストレージ装置の中で前記速いストレージ装置として設定されていない1つ又は複数の他のストレージ装置に書き込みコマンドを送信するよう構成されていることを特徴とする、請求項1に記載のデータミラーリング制御装置。
  9. コンピュータ読み取り可能な命令を保存するメモリと;
    前記命令を実行するよう構成された1つ又は複数のプロセッサとを備え;
    前記プロセッサは、
    ホストより書き込み要請された複数のデータの書き込みコマンドを自身が制御する複数のミラーリングストレージ装置へ送信し、前記要請された複数のデータが前記複数のミラーリングストレージ装置の1つに書き込まれた後に、前記ホストへ前記要請されたデータの書き込み完了メッセージを送信し;
    前記要請された複数のデータのいずれかの書き込みが完了していない1つまたは複数のミラーリングストレージ装置があれば、当該1つ又は複数のミラーリングストレージ装置に、書き込みが完了していないデータが書き込まれる領域に書き込まれているデータは無効データであることを示すトリムコマンドを、書き込みが完了していないデータの書き込みコマンドよりも前に送信するよう構成されていることを特徴とするデータミラーリング制御装置。
  10. 前記1つ又は複数のプロセッサは、複数の書き込み命令を実行するよう構成されており、
    前記1つ又は複数のプロセッサは、さらに、前記複数のミラーリングストレージ装置の少なくとも1つを速いミラーリングストレージ装置として設定し;前記速いミラーリングストレージ装置を周期的又は非周期的に変更し;前記ホストにより書き込み要請された複数のデータの前記書き込みコマンドを前記複数のミラーリングストレージ装置へ送信するよう構成されていることを特徴とする、請求項9に記載のデータミラーリング制御装置。
  11. 前記1つ又は複数のプロセッサは、複数の書き込み命令を実行するよう構成されており、
    前記1つ又は複数のプロセッサは、さらに、前記速いミラーリングストレージ装置が前記複数のミラーリングストレージ装置の第1の装置から前記ミラーリングストレージ装置の異なる第2の装置に変更されると、
    前記第の装置に対しトリムコマンドを送信するよう構成されていることを特徴とする、請求項10に記載のデータミラーリング制御装置。
  12. 前記1つ又は複数のプロセッサは、複数の書き込み命令を実行するよう構成されており、
    前記1つ又は複数のプロセッサは、さらに、前記速いミラーリングストレージ装置が前記複数のミラーリングストレージ装置の第1の装置から前記複数のミラーリングストレージ装置の異なる第2の装置に変更されると、ガーベジコレクションコマンドを前記速いミラーリングストレージ装置ではなくなったミラーリングストレージ装置に送信するよう構成されていることを特徴とする、請求項11に記載のデータミラーリング制御装置。
  13. コンピュータ読み取り可能な命令を保存するメモリと;
    前記命令を実行するよう構成された1つ又は複数のプロセッサとを備え;
    前記プロセッサは、
    ホストに内蔵されたホストメモリに保存された第1データを自身が制御する複数のミラーリングストレージ装置の少なくとも1つに書き込み要請する第1書き込みコマンドを送信し、
    前記第1書き込みコマンドに応答して、前記ホストにおいて前記第1データにメモリロックを設定し、前記第1データが前記複数のミラーリングストレージ装置へ書き込みが完了すると
    前記ホストにおける前記第1データへの前記メモリロックを解除することを特徴とするデータミラーリング制御装置。
  14. 前記1つ又は複数のプロセッサは、複数の書き込み命令を実行するように構成されており、
    前記1つ又は複数のプロセッサは、さらに、前記第1書き込みコマンドを受信したが障害の発生していない前記複数のミラーリングストレージ装置の中からすべての装置の前記第1データの書き込みの完了の決定に応答して、
    前記ホストでの前記第1データへの前記メモリロックを解除するように構成されていることを特徴とする、請求項13に記載のデータミラーリング制御装置。
  15. 前記1つ又は複数のプロセッサは、複数の書き込み命令を実行するように構成されており、
    前記1つ又は複数のプロセッサは、さらに、前記要請されたデータの前記書き込みコマンドを前記要請されたデータの前記書き込みコマンドを受信していないミラーリングストレージ装置へ前記トリムコマンドの送信後に送信するよう構成されていることを特徴とする、請求項9に記載のデータミラーリング制御装置。
JP2014194063A 2013-09-27 2014-09-24 データミラーリング制御装置及び方法 Active JP6690891B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020130115579A KR102116702B1 (ko) 2013-09-27 2013-09-27 데이터 미러링 제어 장치 및 방법
KR10-2013-0115579 2013-09-27

Publications (3)

Publication Number Publication Date
JP2015069651A JP2015069651A (ja) 2015-04-13
JP2015069651A5 JP2015069651A5 (ja) 2017-11-02
JP6690891B2 true JP6690891B2 (ja) 2020-04-28

Family

ID=51687798

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014194063A Active JP6690891B2 (ja) 2013-09-27 2014-09-24 データミラーリング制御装置及び方法

Country Status (5)

Country Link
US (2) US9983824B2 (ja)
EP (1) EP2854034B1 (ja)
JP (1) JP6690891B2 (ja)
KR (1) KR102116702B1 (ja)
CN (1) CN104516793B (ja)

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105701021B (zh) * 2014-12-10 2021-03-02 慧荣科技股份有限公司 数据储存装置及其数据写入方法
US11586627B2 (en) 2016-09-26 2023-02-21 Splunk Inc. Partitioning and reducing records at ingest of a worker node
US11874691B1 (en) 2016-09-26 2024-01-16 Splunk Inc. Managing efficient query execution including mapping of buckets to search nodes
US11023463B2 (en) 2016-09-26 2021-06-01 Splunk Inc. Converting and modifying a subquery for an external data system
US11003714B1 (en) 2016-09-26 2021-05-11 Splunk Inc. Search node and bucket identification using a search node catalog and a data store catalog
US11461334B2 (en) 2016-09-26 2022-10-04 Splunk Inc. Data conditioning for dataset destination
US11593377B2 (en) 2016-09-26 2023-02-28 Splunk Inc. Assigning processing tasks in a data intake and query system
US11416528B2 (en) 2016-09-26 2022-08-16 Splunk Inc. Query acceleration data store
US11294941B1 (en) 2016-09-26 2022-04-05 Splunk Inc. Message-based data ingestion to a data intake and query system
US11663227B2 (en) 2016-09-26 2023-05-30 Splunk Inc. Generating a subquery for a distinct data intake and query system
US11567993B1 (en) 2016-09-26 2023-01-31 Splunk Inc. Copying buckets from a remote shared storage system to memory associated with a search node for query execution
US11321321B2 (en) 2016-09-26 2022-05-03 Splunk Inc. Record expansion and reduction based on a processing task in a data intake and query system
US11281706B2 (en) 2016-09-26 2022-03-22 Splunk Inc. Multi-layer partition allocation for query execution
US10353965B2 (en) 2016-09-26 2019-07-16 Splunk Inc. Data fabric service system architecture
US10795884B2 (en) 2016-09-26 2020-10-06 Splunk Inc. Dynamic resource allocation for common storage query
US11615104B2 (en) 2016-09-26 2023-03-28 Splunk Inc. Subquery generation based on a data ingest estimate of an external data system
US11580107B2 (en) 2016-09-26 2023-02-14 Splunk Inc. Bucket data distribution for exporting data to worker nodes
US11243963B2 (en) 2016-09-26 2022-02-08 Splunk Inc. Distributing partial results to worker nodes from an external data system
US11106734B1 (en) 2016-09-26 2021-08-31 Splunk Inc. Query execution using containerized state-free search nodes in a containerized scalable environment
US12013895B2 (en) 2016-09-26 2024-06-18 Splunk Inc. Processing data using containerized nodes in a containerized scalable environment
US11599541B2 (en) 2016-09-26 2023-03-07 Splunk Inc. Determining records generated by a processing task of a query
US10956415B2 (en) 2016-09-26 2021-03-23 Splunk Inc. Generating a subquery for an external data system using a configuration file
US11550847B1 (en) 2016-09-26 2023-01-10 Splunk Inc. Hashing bucket identifiers to identify search nodes for efficient query execution
US11604795B2 (en) 2016-09-26 2023-03-14 Splunk Inc. Distributing partial results from an external data system between worker nodes
US11314753B2 (en) 2016-09-26 2022-04-26 Splunk Inc. Execution of a query received from a data intake and query system
US11222066B1 (en) 2016-09-26 2022-01-11 Splunk Inc. Processing data using containerized state-free indexing nodes in a containerized scalable environment
US20180089324A1 (en) 2016-09-26 2018-03-29 Splunk Inc. Dynamic resource allocation for real-time search
US11442935B2 (en) 2016-09-26 2022-09-13 Splunk Inc. Determining a record generation estimate of a processing task
US11620336B1 (en) * 2016-09-26 2023-04-04 Splunk Inc. Managing and storing buckets to a remote shared storage system based on a collective bucket size
US11269939B1 (en) 2016-09-26 2022-03-08 Splunk Inc. Iterative message-based data processing including streaming analytics
US11126632B2 (en) 2016-09-26 2021-09-21 Splunk Inc. Subquery generation based on search configuration data from an external data system
US11232100B2 (en) 2016-09-26 2022-01-25 Splunk Inc. Resource allocation for multiple datasets
US11250056B1 (en) 2016-09-26 2022-02-15 Splunk Inc. Updating a location marker of an ingestion buffer based on storing buckets in a shared storage system
US10977260B2 (en) 2016-09-26 2021-04-13 Splunk Inc. Task distribution in an execution node of a distributed execution environment
US10776355B1 (en) 2016-09-26 2020-09-15 Splunk Inc. Managing, storing, and caching query results and partial query results for combination with additional query results
US11163758B2 (en) 2016-09-26 2021-11-02 Splunk Inc. External dataset capability compensation
US11562023B1 (en) 2016-09-26 2023-01-24 Splunk Inc. Merging buckets in a data intake and query system
US10984044B1 (en) 2016-09-26 2021-04-20 Splunk Inc. Identifying buckets for query execution using a catalog of buckets stored in a remote shared storage system
US11860940B1 (en) 2016-09-26 2024-01-02 Splunk Inc. Identifying buckets for query execution using a catalog of buckets
US10726009B2 (en) 2016-09-26 2020-07-28 Splunk Inc. Query processing using query-resource usage and node utilization data
JP6814020B2 (ja) * 2016-10-26 2021-01-13 キヤノン株式会社 情報処理装置とその制御方法、及びプログラム
CN106843749B (zh) * 2016-12-14 2020-01-21 华为技术有限公司 写入请求处理方法、装置及设备
US11921672B2 (en) 2017-07-31 2024-03-05 Splunk Inc. Query execution at a remote heterogeneous data store of a data fabric service
US12118009B2 (en) 2017-07-31 2024-10-15 Splunk Inc. Supporting query languages through distributed execution of query engines
US11989194B2 (en) 2017-07-31 2024-05-21 Splunk Inc. Addressing memory limits for partition tracking among worker nodes
CN107515827B (zh) * 2017-08-21 2021-07-27 湖南国科微电子股份有限公司 Pcie ssd自定义日志的存储方法、装置及ssd
US10896182B2 (en) 2017-09-25 2021-01-19 Splunk Inc. Multi-partitioning determination for combination operations
US11151137B2 (en) 2017-09-25 2021-10-19 Splunk Inc. Multi-partition operation in combination operations
CN107807790B (zh) * 2017-10-13 2020-09-01 记忆科技(深圳)有限公司 一种固态硬盘数据写入的方法
US11334543B1 (en) 2018-04-30 2022-05-17 Splunk Inc. Scalable bucket merging for a data intake and query system
CN109683807A (zh) * 2018-10-18 2019-04-26 张德辉 带备份的冷数据安全存储系统及其存储方法
CN109658867A (zh) * 2018-12-10 2019-04-19 北京欧徕德微电子技术有限公司 数据读写方法及其装置
CN109976792B (zh) * 2019-02-28 2022-07-12 国云科技股份有限公司 一种镜像延迟更新方法
WO2020220216A1 (en) 2019-04-29 2020-11-05 Splunk Inc. Search time estimate in data intake and query system
US11715051B1 (en) 2019-04-30 2023-08-01 Splunk Inc. Service provider instance recommendations using machine-learned classifications and reconciliation
US11301138B2 (en) * 2019-07-19 2022-04-12 EMC IP Holding Company LLC Dynamic balancing of input/output (IO) operations for a storage system
US11494380B2 (en) 2019-10-18 2022-11-08 Splunk Inc. Management of distributed computing framework components in a data fabric service system
JP2021082003A (ja) * 2019-11-19 2021-05-27 キヤノン株式会社 情報処理装置
US11922222B1 (en) 2020-01-30 2024-03-05 Splunk Inc. Generating a modified component for a data intake and query system using an isolated execution environment image
US11704313B1 (en) 2020-10-19 2023-07-18 Splunk Inc. Parallel branch operation using intermediary nodes
CN113342480B (zh) * 2021-06-23 2022-02-22 海光信息技术股份有限公司 一种事务处理系统、事务处理方法及主机系统
US12072939B1 (en) 2021-07-30 2024-08-27 Splunk Inc. Federated data enrichment objects
US12093272B1 (en) 2022-04-29 2024-09-17 Splunk Inc. Retrieving data identifiers from queue for search of external data system

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0232419A (ja) * 1988-07-22 1990-02-02 Nippon Telegr & Teleph Corp <Ntt> 磁気ディスク記憶装置のアクセス制御方式
US6098128A (en) * 1995-09-18 2000-08-01 Cyberstorage Systems Corporation Universal storage management system
US6324654B1 (en) 1998-03-30 2001-11-27 Legato Systems, Inc. Computer network remote data mirroring system
US6122685A (en) 1998-05-06 2000-09-19 Emc Corporation System for improving the performance of a disk storage device by reconfiguring a logical volume of data in response to the type of operations being performed
JP2000276304A (ja) 1999-03-26 2000-10-06 Nec Corp データ移行方法と情報処理システム
US6779063B2 (en) * 2001-04-09 2004-08-17 Hitachi, Ltd. Direct access storage system having plural interfaces which permit receipt of block and file I/O requests
US6931487B2 (en) * 2001-10-22 2005-08-16 Hewlett-Packard Development Company L.P. High performance multi-controller processing
US7013379B1 (en) * 2001-12-10 2006-03-14 Incipient, Inc. I/O primitives
US7433948B2 (en) * 2002-01-23 2008-10-07 Cisco Technology, Inc. Methods and apparatus for implementing virtualization of storage within a storage area network
US6795850B2 (en) * 2002-12-13 2004-09-21 Sun Microsystems, Inc. System and method for sharing memory among multiple storage device controllers
US20050149683A1 (en) 2003-12-29 2005-07-07 Chong Fay Jr. Methods and systems for data backups
US8719501B2 (en) * 2009-09-08 2014-05-06 Fusion-Io Apparatus, system, and method for caching data on a solid-state storage device
US9632870B2 (en) * 2007-03-29 2017-04-25 Violin Memory, Inc. Memory system with multiple striping of raid groups and method for performing the same
TW200937190A (en) 2008-02-22 2009-09-01 Jmicron Technology Corp Raid1 system and reading method for enhancing read performance
JP2010061591A (ja) 2008-09-05 2010-03-18 Oki Electric Ind Co Ltd Raid装置およびその制御方法
KR101067018B1 (ko) 2009-04-17 2011-09-22 서울대학교산학협력단 가비지 컬렉션 수행 방법 및 상기 방법을 이용한 플래시 메모리 장치
JP2011003094A (ja) * 2009-06-19 2011-01-06 Toshiba Corp 二重化処理装置および二重化処理制御方法
JP2011070365A (ja) * 2009-09-25 2011-04-07 Toshiba Corp メモリシステム
US8954669B2 (en) * 2010-07-07 2015-02-10 Nexenta System, Inc Method and system for heterogeneous data volume
JP2012252638A (ja) 2011-06-06 2012-12-20 Nec Corp ディスクアレイ装置及びその制御方法
JP5611909B2 (ja) * 2011-08-19 2014-10-22 株式会社東芝 情報処理装置、性能評価ツール、外部記憶装置の性能評価方法
KR20140006299A (ko) * 2012-07-03 2014-01-16 삼성전자주식회사 낸드 플래시 메모리 기반의 저장부에 데이터 기록을 제어하는 방법 및 장치

Also Published As

Publication number Publication date
US10152272B2 (en) 2018-12-11
EP2854034A3 (en) 2015-09-23
CN104516793B (zh) 2020-06-09
KR20150035250A (ko) 2015-04-06
JP2015069651A (ja) 2015-04-13
US20180232150A1 (en) 2018-08-16
CN104516793A (zh) 2015-04-15
EP2854034B1 (en) 2017-03-29
EP2854034A2 (en) 2015-04-01
US9983824B2 (en) 2018-05-29
US20150095570A1 (en) 2015-04-02
KR102116702B1 (ko) 2020-05-29

Similar Documents

Publication Publication Date Title
JP6690891B2 (ja) データミラーリング制御装置及び方法
US9430161B2 (en) Storage control device and control method
US9268961B2 (en) Storage system, storage control apparatus, and storage control method
US7774540B2 (en) Storage system and method for opportunistic write-verify
JP6208156B2 (ja) ハイブリッドストレージ集合体の複製
US8560759B1 (en) Hybrid drive storing redundant copies of data on disk and in non-volatile semiconductor memory based on read frequency
JP5808751B2 (ja) ハイブリッドストレージを使用したssdの寿命の延長
US8533409B2 (en) Method of managing data snapshot images in a storage system
US8285965B2 (en) Aligning data storage device partition to boundary of physical data sector
CN106445405B (zh) 一种面向闪存存储的数据访问方法及其装置
JP2005011317A (ja) ストレージシステムを初期化する方法と装置
JP4561168B2 (ja) データ処理システムおよび方法並びにその処理プログラム
JP2002323959A (ja) 磁気ディスク制御装置のログ主体不揮発性書き込みキャッシュ・システム及び方法
US8862819B2 (en) Log structure array
US8335901B2 (en) Information processing apparatus and data restoration method
US9772782B2 (en) Non-volatile complement data cache
KR20170002848A (ko) 가비지 컬렉션 저널링 장치 및 방법
US20160259571A1 (en) Storage subsystem
WO2016175762A1 (en) Storage cache management
CN117055807A (zh) 数据存储方法、装置、计算机设备和存储介质
JP2010170268A (ja) ストレージシステムの制御方法、ストレージ制御装置及びプログラム
KR101542222B1 (ko) 하이브리드 저장 시스템 및 이를 이용한 데이터 캐싱 방법
JP3861061B2 (ja) ディスクキャッシュ制御装置
JP2009129283A (ja) データ記憶装置、データバックアップ方法およびデータバックアッププログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170920

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170920

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180928

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181023

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190618

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190917

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200225

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200228

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200409

R150 Certificate of patent or registration of utility model

Ref document number: 6690891

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