JP7002346B2 - ストレージシステム及びその動作方法 - Google Patents

ストレージシステム及びその動作方法 Download PDF

Info

Publication number
JP7002346B2
JP7002346B2 JP2018005598A JP2018005598A JP7002346B2 JP 7002346 B2 JP7002346 B2 JP 7002346B2 JP 2018005598 A JP2018005598 A JP 2018005598A JP 2018005598 A JP2018005598 A JP 2018005598A JP 7002346 B2 JP7002346 B2 JP 7002346B2
Authority
JP
Japan
Prior art keywords
storage
storage device
controller
data
storage devices
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
JP2018005598A
Other languages
English (en)
Other versions
JP2018116704A (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 JP2018116704A publication Critical patent/JP2018116704A/ja
Application granted granted Critical
Publication of JP7002346B2 publication Critical patent/JP7002346B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1084Degraded mode, e.g. caused by single or multiple storage removals or disk failures
    • 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/062Securing storage 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1092Rebuilding, e.g. when physically replacing a failing disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1096Parity calculation or recalculation after configuration or reconfiguration of the system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • 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/2002Error 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 interconnections or communication control functionality are redundant
    • G06F11/2007Error 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 interconnections or communication control functionality are redundant using redundant communication media
    • G06F11/201Error 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 interconnections or communication control functionality are redundant using redundant communication media between storage system components
    • 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/2002Error 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 interconnections or communication control functionality are redundant
    • G06F11/2012Error 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 interconnections or communication control functionality are redundant and using different communication protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Storage Device Security (AREA)
  • Read Only Memory (AREA)

Description

本発明は、データストレージ(記憶)装置に関するものであり、特に、消去コード保護(Erasure code protection)を提供するコントローラーを有するストレージシステムに関する。
非揮発性メモリエキスプレス(Nonvolatile memory express、NVMe)オーバーファブリック(NVM-f)構成、例えば、イーサネット(登録商標、以下省略)付着型NVMeソリッドステートドライブ(Solid State Drive、SSD)を用いる構成で、イーサネット及びSSDの費用及び性能を改善させることは難しい。
例えば、50G/100G技術の登場でイーサネット速度は増加した一方、SSDの性能はPCIエキスプレス(Peripheral Component Interconnect Express、PCIe)インターフェース及びNANDs技術によって異なりうる。
ファブリック付着型SSDは、各デバイスがポイントツーポイント(point-to-point)接続を提供する可能性があるため、消去コードデータ保護をサポートするための追加の独自の設計課題を提示する必要がある。
しかしながら、データ保護を提供するために、RAIDオンチップ(Redundant Array of Inexpensive Disk On Chip、ROC)注文型半導体(Application Specific Integrated Circuit、ASIC)を使用することができるが、レイテンシ(latency)及び費用が増加し、性能が低下する可能性があるという問題がある。
従って、複数のストレージ装置にデータを格納するための改善されたシステム及び方法が要求されている。
米国特許第9519578号明細書 米国特許第9529542号明細書 米国特許出願公開第2015/0255130号明細書 米国特許出願公開第2016/0162202号明細書
本発明は、上記従来のストレージシステムにおける課題点に鑑みてなされたものであって、本発明の目的は、複数のストレージ装置に亘って消去コード保護を提供するためのストレージシステム及びその動作方法を提供することにある。
上記目的を達成するためになされた本発明によるストレージシステムは、ストレージインタフェースを含むストレージシステムであって、前記ストレージシステムは、何れか一つのストレージ装置に格納されたデータを他のストレージ装置のデータから復旧するに充分な消去コードを格納するように構成された複数のストレージ装置と、正常作動中にそれぞれのストレージ命令のそれぞれのアドレスに沿って、前記ストレージインタフェースを通じて受信した前記ストレージ命令を前記複数のストレージ装置それぞれに伝送するデータスイッチと、コントローラーと、を有し、前記コントローラーは、前記複数のストレージ装置の内のいずれかのストレージ装置が故障又は不在(absent)の場合、前記故障又は不在のストレージ装置に送られたストレージ命令をコントローラーに伝送するように前記データスイッチを再構成し、受信した各ストレージ命令に応答して、前記データスイッチ及び前記ストレージインターフェースを通じて、もし、存在し且つ正常に作動したら、故障が発生したり、存在しないストレージ装置が伝送したはずのものと同じ命令応答を伝送することを特徴とする。
前記ストレージ装置のそれぞれは、正常に動作する間、データブロックを含む記録命令(write command)を受信すると、前記データブロックを格納し、前記データブロックのコピーを前記コントローラーに伝送することが好ましい。
前記コントローラーは、前記複数のストレージ装置のうち、第1ストレージ装置からデータブロックのコピーを受信すると、前記データブロックを充分に復旧できる消去コードを生成し、前記消去コードを前記複数のストレージ装置の中から前記第1ストレージ装置と異なる一つ以上のストレージ装置に格納することが好ましい。
前記複数のストレージ装置のうち、第1ストレージ装置は、正常動作中にデータブロックを含む記録命令を受信すると、前記データブロックを格納し、前記データブロックを充分に復旧できる消去コードを生成し、前記消去コードを前記複数のストレージ装置の中から前記第1ストレージ装置と異なる一つ以上のストレージ装置に格納することが好ましい。
前記複数のストレージ装置のうち、第1ストレージ装置は、消去コードを格納し、前記データスイッチは、正常動作中に前記ストレージインターフェースを通じて受信した各ストレージ命令をストレージ命令の各アドレスに沿って、前記複数のストレージ装置のサブセットの各ストレージ装置に伝送し、前記第1ストレージ装置は、前記サブセットに含まれないことが好ましい。
前記コントローラーは、前記複数のストレージ装置の内のいずれかのストレージ装置が故障又は不在の場合、データブロックを要請する受信された読込命令(read command)に応答して、前記複数のストレージ装置の内の存在し、且つ正常作動するストレージ装置から消去コードを読み込み、前記データブロックを復旧し、命令応答の一部として前記データスイッチ及び前記ストレージインターフェースを通じて前記復旧されたデータブロックを伝送することが好ましい。
前記ストレージ装置のそれぞれは、存在ピン(presence pin)を含むコネクタを含み、前記存在ピンは、前記コントローラーのそれぞれのセンシングピンと接続され、前記コントローラーは、前記それぞれのセンシングピンの電圧又は電流の変化によって前記ストレージ装置の内の何れか一つの除去(removal)を検出することが好ましい。
前記データスイッチは、イーサネットスイッチであることが好ましい。
前記データスイッチは、前記コントローラーのポートに接続されたPCIeコントロールポートを含み、前記データスイッチは、前記PCIeコントロールポートを通じて前記コントローラーから構成命令(configuration command)を受信することが好ましい。
PCIeスイッチをさらに含み、前記複数のストレージ装置のそれぞれは、前記PCIeスイッチを通じて前記コントローラーと接続されることが好ましい。
前記コントローラーは、ベースボード管理コントローラーであることが好ましい。
上記目的を達成するためになされた本発明によるストレージシステムの動作方法は、ストレージインターフェースを有し、複数のストレージ装置、データスイッチ、及びコントローラーを含むストレージシステムを動作させる方法であって、正常作動中に前記ストレージインターフェースを通じて受信したストレージ命令を各ストレージ命令のそれぞれのアドレスに沿って、前記複数のストレージ装置のそれぞれに伝送するステップと、前記複数のストレージ装置のうち、いずれかのストレージ装置が故障又は不在(absent)の場合、前記故障又は不在のストレージ装置に送られたストレージ命令をコントローラーに伝送するように前記データスイッチを再構成するステップと、前記コントローラーを用いてそれぞれの受信したストレージ命令に応答して前記データスイッチ及び前記ストレージインターフェースを通じて、もし存在し、且つ正常に作動したら、故障が発生したり、存在しないストレージ装置が伝送したはずのものと同じ命令応答を伝送するステップと、を有することを特徴とする。
正常作動中に前記複数のストレージ装置の内の一つのストレージ装置によって前記データブロックを含む記録命令(write command)を受信した場合、前記一つのストレージ装置によって前記データブロックを格納するステップと、前記一つのストレージ装置によって前記データブロックのコピーを前記コントローラーに伝送するステップと、をさらに有することが好ましい。
前記コントローラーを用いて前記複数のストレージ装置の内の第1ストレージ装置からデータブロックのコピーが受信されると、前記コントローラーによって前記データブロックを充分に復旧できる消去コードを生成するステップと、前記コントローラーによって前記消去コードを前記複数のストレージ装置のうち、前記第1ストレージ装置と異なる一つ以上のストレージ装置に格納するステップと、をさらに有することが好ましい。
正常作動の間、前記複数のストレージ装置の内の第1ストレージ装置にデータブロックを含む記録命令が受信されると、前記第1ストレージ装置によって前記データブロックを格納するステップと、前記第1ストレージ装置によって前記データブロックを復旧するに充分な消去コードが生成されるステップと、前記第1ストレージ装置によって前記複数のストレージ装置のうち、前記第1ストレージ装置と異なる一つ以上のストレージ装置に前記消去コードを格納するステップと、をさらに有することが好ましい。
前記複数のストレージ装置の内の第1ストレージ装置は、消去コードを格納し、正常作動中に前記ストレージインターフェースを通じて受信された各ストレージ命令を前記ストレージ命令の各アドレスに沿って、前記複数のストレージ装置のサブセットのストレージ装置のそれぞれに伝送するステップをさらに有し、前記第1ストレージ装置は、前記サブセットに含まれないことが好ましい。
前記ストレージシステムは、PCIeスイッチをさらに有し、前記コントローラーは、前記PCIeスイッチを通じて前記ストレージ装置と接続され、前記複数のストレージ装置の内のいずれかのストレージ装置が故障又は不在の場合、前記コントローラーがデータブロックを要請する読込命令を受信したことに応答して、前記コントローラーが前記複数のストレージ装置の内の存在し、且つ正常作動するストレージ装置から消去コードを前記PCIeスイッチを通じて読み込むステップと、前記コントローラーによって前記データブロックを復旧するステップと、前記コントローラーによって命令応答の一部として前記データスイッチ及び前記ストレージインタフェースを通じて前記復旧されたデータブロックを伝送するステップと、をさらに有することが好ましい。
前記ストレージ装置のそれぞれは、前記コントローラーのそれぞれのセンシングピンに接続される存在ピン(presence pin)を含み、前記コントローラーによって前記それぞれのセンシングピンの電圧又は電流の変化によって前記ストレージ装置の内のいずれか一つの除去を検出するステップをさらに有することが好ましい。
また、上記目的を達成するためになされた本発明によるストレージシステムは、ストレージインターフェースを含むストレージシステムであって、前記ストレージシステムは、いずれか一つのストレージ装置に格納されたデータを他のストレージ装置のデータから復旧するに充分な消去コードを格納するように構成された複数のストレージ装置と、正常作動中にそれぞれのストレージ命令のそれぞれのアドレスに沿って、前記ストレージインターフェースを通じて受信した前記ストレージ命令を前記複数のストレージ装置それぞれに伝送するデータスイッチと、制御手段と、を有し、前記複数のストレージ装置の内のいずれかのストレージ装置の故障又は不在の場合、前記制御手段は、前記故障又は不在のストレージ装置に送られたストレージ命令を制御手段に伝送するように前記データスイッチを再構成し、受信した各ストレージ命令に応答して、前記データスイッチ及び前記ストレージインターフェースを通じて、もし、存在し、且つ正常に作動したら、故障が発生したり、存在しないストレージ装置が伝送したはずのものと同じ命令応答を伝送することを特徴とする。
前記ストレージ装置のそれぞれは、正常作動の間、データブロックを含む記録命令を受信すると、前記データブロックを格納し、前記制御手段に前記データブロックのコピーを伝送することが好ましい。
本発明に係るストレージシステム及びその動作方法によれば、消去コードはストレージ装置の内の一つが故障になったり不在(absent)/除去(removal)になった場合に、格納されたデータを保護するためにストレージシステムで使用され、また、消去コードは、一般的に保護するデータとは別途のストレージ装置に格納でき、それにより、いずれかのストレージ装置の故障又は不在又は除去によってデータが損失されずに済み、消去コードを格納するディスクが故障したり不在又は除去になってもデータは影響を受けず、また、データを格納したディスクが故障にしたり不在又は除去になっても、データは消去コードから復旧できるという効果がある。
また、イーサネットスイッチは、消去コードを格納するストレージ装置をリモートホストから隠すように構成され、リモートホストに見えないようにすることができ、このような構成で、リモートホストの観点からストレージシステムは、物理的ストレージ装置に存在することより少ないストレージ装置を含むように見え得、ストレージ装置の信頼性は消去コードを格納するストレージ装置によって提供された消去コード保護によって向上するという効果がある。
本発明の一実施形態によるリモートホストに接続されたストレージシステムの概略を示すブロック図である。 本発明の一実施形態によるリモートホストに(イーサネットSSDシャーシで)接続されたストレージシステムの概略を示すブロック図である。 本発明の一実施形態によるリモートホストに接続されたストレージシステムの概略を示すブロック図である。 本発明の一実施形態によるストレージシステムの開始シーケンスの動作を説明するためのフローチャートである。 本発明の一実施形態によるストレージシステムの動作を説明するためのフローチャートである。
次に、本発明に係るストレージシステム及びその動作方法を実施するための形態の具体例を図面を参照しながら説明する。
添付した図に関連して、以下に説明する詳細な説明は、本発明によって提供される複数のストレージ装置に亘って消去コード保護を提供する制御プレーン方法及び装置の例示的な実施形態として意図されたものであり、本発明の構成に用いられる唯一の形態を示すものではない。
説明は例示した実施形態に関連して本発明の特徴を説明する。
しかしながら、本発明の思想及び範囲内に含まれるように意図された他の実施形態によって同じであったり、均等な機能及び構造になることを理解すべきである。
本明細書の他の部分で言及するように、同一要素番号は同一要素又は特徴を示すためのものである。
制御プレーンは、例えば、ルータで下記のようにデータプレーンと区別できる。
制御プレーンは、トラフィック(例えば、データトラフィック)が伝送される場所に関する決定を下すことができる。
制御プレーンの機能は、伝送テーブル情報のシステム構成、管理及び交換を含み得る。
制御プレーンは、ネットワークのシグナルリング(Signaling)でありうる。
制御機能は、到着するそれぞれの個別データパケットに対して行われないこともあるので、厳格な速度制約を持たないこともあり、データプレーンの機能より時間に敏感ではない。
フォワーディングプレーン(Forwarding plane)とも呼ばれるデータプレーンは、制御プレーンロジックによって選ばれた目的地ネットワークの経路に沿ってトラフィックを次のホップ(Hop)に伝送できる。
データプレーンパケットはルータを通過し得る。
ルータ/スイッチは、入力及び出力フレーム及びパケットを処理するために、制御プレーンが構築したものを使用する。
ストレージシステムにて、ストレージシステムの制御プレーンとストレージシステムのデータプレーンとの間で同様の区別をすることができる。
例えば、NVMFに基づいたシステム又はシャーシで、全てのイーサネットポートはイーサネットSSD(eSSD)とローカルイーサネットスイッチの間で物理的に分割され、データプレーンになることもあり、PCI-eレーンはeSSDを接続することに使用でき、PCIeスイッチ及びコントローラー(以下で詳細に説明される)を通じて制御プレーンになり得る。
図1aは、本発明の一実施形態によるリモートホストに接続されたストレージシステムの概略を示すブロック図である。
ストレージシステムは、イーサネットスイッチ110、PCIeスイッチ120、複数のストレージ装置105、及びコントローラー115(例えば、ベースボード管理コントローラー、Baseboard Management Controller:BMC)を含む。
ここで、複数のストレージ装置105は、イーサネットスイッチ110及びPCIeスイッチ120と通信し、PCIeスイッチ120はコントローラー115と通信する。
ストレージシステムは、リモートホスト100に接続される。
イーサネットスイッチ110とコントローラー115の間に追加的な接続が生成され、消去コード保護機能を向上することができる。
より具体的には、図1bは、本発明の一実施形態によるリモートホストに(イーサネットインターフェース(イーサネットSSDシャーシで))接続されたストレージシステムの概略を示すブロック図である。
複数のストレージ装置105は、イーサネットスイッチ110を通じてリモートホスト100に接続される。
ストレージ装置105のそれぞれは、永続ストレージ(Persistent storage)を提供することができ、即ち、電力が一時的に損失した場合でもデータの格納を継続的に提供できる。
各ストレージ装置105は、ソリッドステートドライブ(Solid State Drive:SSD)、例えば、イーサネットSSD(eSSD)でありうる。
正常作動の際に、リモートホスト100は、それぞれ一つ以上のストレージ装置105に送られたストレージ命令をストレージ装置105に伝送し、ストレージ装置105はリモートホストに命令応答を伝送する。
ストレージ命令は、記録命令(write command)及び/又は読込命令(read command)になることもある。
例えば、データをストレージ装置105に格納するために、リモートホスト100は記録命令をストレージ装置105に伝送する(例えば、ストレージ装置105のイーサネットアドレスを使用してストレージ装置105に送られる)。
それぞれの記録命令は、ストレージ装置105に記録されるデータの量(又は「データブロック」)及びホストが未来の読込命令で同じデータを参照できるようにする論理ブロックアドレス(Logical Block Address、LBA)を含むことができる。
これに対して、ストレージ装置105はデータを格納でき、格納動作が一度完了したら、ストレージ装置105は、命令応答(例えば、命令完了)をリモートホスト100に伝達し、格納動作が成功的に完了したとの信号を送る。
本明細書にて使用する「データブロック」は、ストレージ命令又は命令応答のデータペイロード(Payload)、例えば、記録命令によって永続ストレージに記録されるデータ又は読込命令によって永続ストレージから読み込まれたデータでありうる。
ストレージ装置105からデータを読み込むために、リモートホスト100は、ストレージ装置105からデータを要請する読込命令をストレージ装置105に伝送する。
これに応答して、ストレージ装置105は、ストレージ装置105の内部の非揮発性メモリ(Nonvolatile memory)からデータを読み込むことができ、読込動作が完了したら、命令応答(例えば、命令完了)をストレージから読み込まれたデータブロックを含むリモートホスト100に伝送し、読込動作が成功的に完了したとの信号を送る。
消去コードは、ストレージ装置105の内の一つが故障になったり、不在(absent)又は除去(removal)された場合に格納されたデータを保護するためにストレージシステムで使用される。
データブロックに対する消去コードは、データの一部が消失された場合に、データブロック内のデータを再建するのに使用される重複追加情報を含む(例えば、構成)ことができる。
消去コードは、一般的に保護するデータとは別途にストレージ装置105に格納でき、よって、いずれかのストレージ装置の故障又は不在又は除去によってもデータが消失されなくなる。
消去コードを格納するディスクが故障したり、不在又は除去されても、データは影響を受けず、なお、データを格納したディスクが故障になったり、不在又は除去されても、データは消去コードから復旧できる。
一部実施形態にて、一つ以上のストレージ装置105は、消去コードのみを格納するに専用され得る。
この場合、イーサネットスイッチ110は、これらのストレージ装置105をリモートホスト100から隠すように構成され、これらのストレージ装置がリモートホストに見えないようにすることができる。
このような構成で、リモートホスト100からの観点で、ストレージシステムは物理的なストレージ装置に存在するより少ないストレージ装置105を含むように見えることになり、ストレージ装置の信頼性は、消去コードのみを専用に格納するストレージ装置105によって提供された消去コード保護によって向上される。
他の実施形態では、消去コードは、消去コードのみを専用に格納するストレージ装置105だけに格納されるのではなく、他のデータも格納するドライブに格納され得る。
消去コードは、コントローラー115によって生成される。
コントローラー115は、ストレージ装置105のそれぞれとPCIeスイッチ120を通じて接続される。
コントローラー115、PCIeスイッチ120、及びストレージ装置105へのコントローラー115及びPCIeスイッチ120の接続は、消去プレーンを形成し、イーサネットスイッチ110及びストレージ装置105へのイーサネットスイッチ110の接続はデータプレーンを形成する。
動作の際に、ストレージ装置105が記録命令をイーサネットスイッチ110を介して受信すると、ストレージ装置105内部の非揮発性メモリにデータ(即ち、記録命令に含まれたデータブロックのデータ)を格納し、論理ブロックアドレスのみならず、データのコピーをコントローラー115に伝送する。
コントローラー115は、消去コードを生成し、消去コードデータを格納するストレージ装置105にPCIeスイッチを通じて書き込み命令を伝送することで、消去コードを例えば、記録命令を受信したものと異なるストレージ装置105に格納する。
コントローラー115は、消去コードを格納するための論理ブロックアドレス及び消去コードのそれぞれの位置を列挙したテーブルを維持する。
正常作動の際に、コントローラー115は、リモートホスト100及びストレージ装置105の間のデータ経路で認識されないこともある。
例えば、データはコントローラー115を介さずに、リモートホスト100とストレージ装置105の間で直接移動することができる。
それぞれのストレージ装置105(例えば、SSD)は、ストレージインタフェースコネクタを含むことができ、これは「U.2」コネクタでありうる。
「U.2」コネクタの複数のピンは、PCIeスイッチ120との通信のために、PCIeリンク(例えば、1x4PCIeレーン又は2x2PCIeレーン)を提供するように割り当てる。
「U.2」コネクタの他のピンは、イーサネットスイッチ110にイーサネット接続を提供するように割り当てる。
「U.2」コネクタのまた異なるピン125は、コントローラー115がストレージ装置105の存在有無を検出できるようにする「存在ピン(Presence Pin)」として使用する。
例えば、それぞれのストレージ装置105は、存在ピン125でセット電圧を供給したり、存在ピン125を通じてセット電流を駆動できる。
それぞれのストレージ装置105の存在ピン125は、コントローラー115のそれぞれのセンシングピンに接続され、コントローラー115はセンシングピンのうちの一つにてセット電圧又はセット電流が検出されることが中断されたら、対応するストレージ装置105がもはや存在しないものと推論できる。
他の実施形態では、ストレージ装置105とコントローラー115の間のNVMe管理インタフェース(NVMe Management Interface:NVMe-MI)接続は、同じ目的で使用できる。
例えば、それぞれのストレージ装置105の複数のピンは、NVMe管理インタフェースに対する物理的接続を提供し、存在ピンとしての役割を果たすことができる。
それぞれのストレージ装置105は、複数(例えば、24コネクタ)の「U.2」コネクタを有し、対応する複数のストレージ装置105を収容する印刷回路基板でありうるミッドプレーン130に接続される。
ミッドプレーン130は、ストレージ装置105に接続されたコネクタ及びこれに対応するPCIeスイッチ120のストレージ装置側上の複数のコネクタ(例えば、24コネクタ)の間の接続を提供する導電性トレースを含む。
ミッドプレーン130は、ストレージ装置105の存在ピンとこれに対応するコントローラー115のセンシングピンとの間、及びストレージ装置105のイーサネットピンとこれに対応するイーサネットスイッチ110のストレージ装置側上のコネクタのピンとの間の接続を提供する。
それぞれのストレージ装置105は、複数の非揮発性メモリ(例えば、フラッシュメモリ)チップ、及び以下で詳細に説明するプロセッシング回路やプロセッシング回路を含むストレージ装置コントローラー(例えば、ストレージシステムのコントローラー115と分離及び区別されるSSDコントローラー)を含むことができる。
コントローラー115はまた、プロセッシング回路であったり、プロセッシング回路を含むことができる。
コントローラー115は、例えば、ベースボード管理コントローラー外部にあり、ベースボード管理コントローラーの当該ピンに接続された温度センサを通じてストレージシステムに対する温度モニタリング及び制御を行う機能、及び/又はI2Cインターフェース又はSMBusを通じたファン(Fan)制御機能を含むベースボード管理コントローラー(Baseboard Management Controller、BMC)でありうる。
本明細書で使用する「コントロール手段」は、最小限に本明細書にて開示され、且つ請求された特徴を有するコントローラー115を具現するハードウェア、ファームウェア、及びソフトウェアの任意の組み合わせを呼称し、全てハードウェアとして具現されたり、汎用処理回路(例えば、汎用CPU)上で実行されるソフトウェアで具現できる。
ストレージ装置が故障になったり不在又は除去されたりしたときは(図1cにて点線で示すように)、コントローラー115は、前述したとおりに、コントローラー115のセンシングピンでの変化の結果を通じて不在又は除去、又は故障を認知したり、コントローラー115はイーサネットスイッチ110を通じてストレージ装置105の内の一つに伝送されたストレージ命令が命令応答を発生させていないことを通知することができる。
以下でさらに詳細に説明するように、一部実施形態においては、正常作動の際に記録命令が実行される時、格納されるデータは一つ以上のストレージ装置105に記録され、消去コードが生成され、なお、一つ以上のストレージ装置105に記録され、例えば、消去コードが保護するデータと異なるストレージ装置105に記録された、格納された消去コードを使用して、いずれか一つのストレージ装置の故障によって一般的に復旧できないデータ損失が発生しない。
ストレージ装置105が故障したときは、コントローラー115はイーサネットスイッチ110を再構成して、故障したストレージ装置105に送られた任意の記録又は読込命令をコントローラーに再び送り、コントローラー115は性能低下(例えば、速度)を排除して、ストレージ装置105の障害がリモートホスト100に感知されないようにストレージ装置105の動作を模することができる。
ストレージシステムは、それぞれのストレージ装置105の存在ピン125とコントローラーの間に接続されたコンプレックスプログラマブルロジックデバイス(Complex Programmable Logic Device:CPLD)(図1b及び図1cに示していない)を含むことができる。
存在ピンのうち少なくとも一つのある変化を検出した後、CPLDはインターラプトを通じてコントローラー115に通知する。
その後、コントローラー115はCPLDの一部レジスタを入れて(例えば記録又は読込)、どのドライブが消去又は設置されたかを探し出すことができる。
これにより、BMC(例えば、コントローラー115は、特定ポートを活性化又は非活性化して、イーサネットスイッチを再構成するなどの適切な変更作業を行うことができる。
一部実施形態で、コントローラーは、イーサネットスイッチ110を再構成して、故障になったり、不在又は除去されたストレージ装置105に送られた全てのイーサネットトラフィックが、代わりにコントローラー115に向かうように再度送る(Redirect)ことができる。
コントローラー115はストレージ装置105が故障、不在又は除去されなかった場合に持つはずのものと同じ命令応答をリモートホスト100が受信するようにリモートホスト100からストレージ命令を処理して、命令応答を伝送する。
例えば、故障、不在又は除去のストレージ装置105に送られ、コントローラーに再び送られたリモートホスト100からの読込命令に応答して、コントローラー115は、一つ以上の他のストレージ装置105に格納された消去コード(例えば、消去パリティ(Erasure parity)及びデータコード)から依然として存在し、且つ正常に作動された場合、故障、不在又は除去のストレージ装置105から読み込まれたはずのデータ(例えば、データはXOR動作によって再生成され、故障/不在又は除去ストレージ装置105からのデータを良好に復旧できる)を復旧することができ、コントローラー115は、復旧データを含む命令応答をリモートホスト100に伝送する。
故障、不在又は除去のストレージ装置105に送られ、コントローラー115に再び送られたリモートホスト100からの記録命令に応答し、コントローラーは故障、不在又は除去になったストレージ装置105が依然として存在し、且つ正常に動作する場合に格納される消去コードと同じ消去コードを生成及び格納することができ、故障、不在又は除去になったストレージ装置105が依然として存在し、且つ正常に動作する場合に、故障、不在又は除去になったストレージ装置105が伝送する同じ命令応答をリモートホスト100に伝送する。
一部の実施形態で、ストレージ装置105が故障になった後に、システムの動作が続く間に、コントローラー115は全てのデータが消去コードによって保護され、それぞれの消去コードは保護するデータと異なるストレージ装置105上に格納されるまで、ストレージ装置105装置が故障になった時に損失されたものを代替するために、新たにデータ及び消去コードを生成し、新たにデータ及び消去コードを一つ以上の残りのストレージ装置105上に格納し、残りのストレージ装置105の間でデータ(及び消去コード)を移動させることで、一つ少ないドライブで動作するようにシステムを再構成する。
ストレージ装置105が除去(故障になる代わりに)されたら、コントローラーは同じ動作を行うことができる。
代替ドライブが以後に設置される場合に、コントローラー115はシステムの継続的な動作の間、故障、不在又は除去のストレージ装置105に代わって続いて応答しながら、代替ドライブを再構築する。
即ち、コントローラー115は、故障、不在又は除去のストレージ装置105に格納されていたデータを復旧して代替ドライブに格納する。
一度代替ドライブが再構築されたら、コントローラー115は正常動作のためにイーサネットスイッチ110を再構成する。
図2は、本発明の一実施形態にかかるストレージシステムの開始シーケンスの動作を説明するためのフローチャートである。
コントローラー115(例えば、BMC)は、自身及び望むRAID構成ごとに全てのデータストレージ装置105(例えば、SSD)の前提条件を初期化する(ステップS205)。
コントローラー115はストレージ装置105の一部をデータストレージ装置に、ストレージ装置105の一部を消去コードストレージ装置に指定する(ステップS210)。
これは、すべてのストレージ装置105及び命令に対する初期化の際に行われたり、命令単位で行われる。
コントローラー115はSSDのそれぞれの容量が異なるとSSDを正規化し(ステップS215)、コントローラー115は上述したように、いずれのホストにも消去コードストレージ装置が見えないようにマーク(Mark)する(ステップS220)。
図3は、本発明の一実施形態にかかるストレージシステムの動作を説明するためのフローチャートであり、コントローラー115の代わりにストレージ装置105が消去コードを生成するストレージシステムの動作に対するフローチャートである。
システム内のそれぞれのストレージ装置105は、コントローラー115からスロット番号又は割り当て番号のような固有の配列部材識別(Array member identification)を有する。
データストレージ装置のそれぞれは、ホスト又は開始プログラム(Initiator)との正常的なNVMeオーバーファブリック(NVMf)トランザクションの実行を続いて(ステップS305)、データストレージ装置のそれぞれは正常的なディスカバリーサービスを行い、トランザクション(例えば、ストレージ命令に対する処理及び応答)の実行を始める(ステップS310)。
ホストはデータストレージ装置のうち、一つにデータを記録する(ステップS315)。
ステップS315にてホストは消去コードを生成しない。
データストレージ装置は記録されるデータを受信し、これをデータストレージ装置内の非揮発性メモリに格納する(ステップS320)。
データストレージ装置は、また、消去コードを生成し、消去コードを(複数のストレージ装置の)一つ以上の消去コードストレージ装置に記録する(ステップS320)。
例えば、任意の記録に対して、記録データは、目標ストレージ装置の中のポスト(Post)された記録バッファーに一時的に格納できる。
同時に、目標ストレージ装置は、制御プレーン(例えば、PCIe制御プレーン)を通じて記録データをコントローラー115に伝送できる。
記録データを受信した後、コントローラー115は、同じLBAを共有する当該データを他のストレージ装置から読み込んで、パリティーの生成を行うことができる。
コントローラー115は、一つ以上の適切な排他的論理和(XOR)演算を行い、新たなパリティーをパリティーストレージ装置に記録する。
コントローラー115は、元々の目標ストレージ装置にメッセージを伝送することができ、ポストされた記録バッファーがフラッシュ(Flush)できる。
一部の実施形態で、いくつかのストレージ装置105は、消去コードを格納する。
消去コードストレージ装置は消去コードを受信し、これを消去コードストレージ装置内の非揮発性メモリに格納し、データストレージ装置にコミットメッセージ(Commit message)を伝送する(ステップS325)。
データストレージ装置及び消去コードストレージ装置の間の通信は、PCIeスイッチ120を通じて行われる。
上述したように、一部の実施形態は、複数のストレージ装置に亘って消去コード保護を提供するためのシステム及び方法を提供する。
ストレージシステム内のデータスイッチは、複数のストレージ装置をリモートホストに接続する。
各ストレージ装置は、また、コントローラー(例えば、ベースボード管理コントローラー)に接続される。
正常作動の際に、リモートホストからの読込及び記録命令は、データスイッチを通じてそれぞれのストレージ装置に伝送される。
記録命令が実行されたら、この命令を実行するストレージ装置はコントローラーにデータのコピーを送り、コントローラーは消去コードを生成し、これらを例えば、消去コードを格納するために専用されるストレージ装置に格納して、リモートホストに見えないようにする。
装置が故障になったり消去されると、コントローラーはデータスイッチを再び構成して故障、不在又は除去のストレージ装置に送られた全てのトラフィックをコントローラーに再び送り、コントローラーは、もし存在し、且つ正常に作動された場合、障害が発生したり、存在しないストレージ装置が伝送したはずのものと同じ命令応答でホスト命令に応答する。
「プロセッシング回路」という用語は、本明細書にてデータ又はデジタル信号を処理するに使用されるハードウェア、ファームウェア及びソフトフェアの全ての組み合わせを意味するために使用する。
プロセッシング回路ハードウェアは、例えば、特定用途向け集積回路(Application Specific Integrated Circuits:ASIC)、汎用又は特殊用途の中央処理装置(Central Processing Unit:CPU)、デジタル信号プロセッサ(Digital Signal Processor:DSP)、グラフィック処理装置(Graphics Processing Unit:GPU)及びフィールドプログラマブルゲートアレイ(Field Programmable Gate Array:FPGA)のようなプログラマブル論理装置を含むことができる。
本明細書で使用するプロセッシング回路での各機能は、その機能を行うために構成されたハードウェア、即ち、固定配線(Hard-wired)や非一時的格納媒体に格納された命令を実行するように構成されたCPUのような汎用ハードウェアで行うことができる。
プロセッシング回路は、一つの印刷回路基板上に製造されたものでもあり、いくつかの互いに接続された印刷回路基板に分散されたものでもある。
プロセッシング回路は、他のプロセッシング回路を含むことができる。
例えば、プロセッシング回路は、印刷回路基板上で互いに接続された二つのプロセッシング回路、FPGA、CPUを含むことができる。
複数のストレージ装置に亘り消去コード保護を提供する制御プレーン方法及び装置の例示的な実施形態が本明細書によって具体的に説明し、且つ例示しているが、多くの変形及び変更が当業者にとって明白である。
よって、本発明の原理によって構成された多数のストレージ装置に亘り消去コード保護を提供するための制御プレーン方法及び装置は、ここに具体的に記述したもの以外の他の実施例が具現できると理解すべきである。
なお、本発明は、次の特許請求範囲及びその等価物で定義される。
本発明は、消去コード保護によって複数のストレージ装置のうち一つが故障になったり消去された場合に、格納されたデータを保護するためのストレージシステムに好適に使用される。
100 リモートホスト
105 ストレージ装置
110 イーサネットスイッチ
115 コントローラー
120 PCIeスイッチ
125 存在ピン
130 ミッドプレーン

Claims (20)

  1. ストレージインタフェースを含むストレージシステムであって、
    前記ストレージシステムは、
    何れか一つのストレージ装置に格納されたデータを他のストレージ装置のデータから復旧するに充分な消去コードを格納す複数のストレージ装置と、
    正常動作中に、各ストレージ命令のそれぞれのアドレスにって、前記ストレージインタフェースを通じて受信されたストレージ命令を前記複数のストレージ装置の中のそれぞれのストレージ装置に伝送するデータスイッチと、
    コントローラーと、を有し、
    前記コントローラーは、
    前記複数のストレージ装置のの何れかのストレージ装置が故障又は不在(absent)の場合、
    前記データスイッチを再構成して、前記故障又は不在のストレージ装置に宛てられたストレージ命令を前記コントローラーに伝送
    受信された各ストレージ命令に応答して、前記データスイッチ及び前記ストレージインターフェースを通じて、前記故障又は不在とされたストレージ装置が存在し且つ正常に作動した場合に伝送したはずのものと同じ命令応答を伝送することを特徴とするストレージシステム。
  2. 前記ストレージ装置の各々は、正常動作中に、データブロックを含む記録命令(write command)を受信した場合、前記データブロックを格納し、前記データブロックのコピーを前記コントローラーに伝送することを特徴とする請求項1に記載のストレージシステム。
  3. 前記コントローラーは、前記複数のストレージ装置の中第1ストレージ装置からデータブロックのコピーを受信した場合、前記データブロックを復旧するのに充分な消去コードを生成し前記複数のストレージ装置の中から前記第1ストレージ装置と異なる一つ以上のストレージ装置に前記消去コードを格納することを特徴とする請求項2に記載のストレージシステム。
  4. 前記複数のストレージ装置の中第1ストレージ装置は、正常動作中にデータブロックを含む記録命令を受信した場合
    前記データブロックを格納し、
    前記データブロックを復旧するのに充分な消去コードを生成し、
    前記複数のストレージ装置の中から前記第1ストレージ装置と異なる一つ以上のストレージ装置に前記消去コードを格納することを特徴とする請求項1に記載のストレージシステム。
  5. 前記複数のストレージ装置の中第1ストレージ装置は、消去コードを格納し、
    前記データスイッチは、正常動作中に前記ストレージインターフェースを通じて受信された各ストレージ命令を、前記ストレージ命令のそれぞれのアドレスにって、前記複数のストレージ装置のサブセットのそれぞれのストレージ装置に伝送し、
    前記第1ストレージ装置は、前記サブセットに含まれないことを特徴とする請求項1に記載のストレージシステム。
  6. 前記コントローラーは、前記複数のストレージ装置のの何れかのストレージ装置が故障又は不在の場合、データブロックを要請する受信された読込命令(read command)に応答して、
    前記複数のストレージ装置のの、存在且つ正常動作するストレージ装置から消去コードを読み込み、
    前記データブロックを復旧し、
    前記データスイッチ及び前記ストレージインターフェースを通じて前記復旧されたデータブロックを命令応答の一部として伝送することを特徴とする請求項1に記載のストレージシステム。
  7. 前記ストレージ装置の各々は、前記コントローラーのそれぞれのセンシングピンに接続される存在ピン(presence pin)を含むコネクタを含み、
    前記コントローラーは、前記それぞれのセンシングピンの電圧又は電流の変化によって前記ストレージ装置のの何れか一つのストレージ装置の除去(removal)を検出することを特徴とする請求項1に記載のストレージシステム。
  8. 前記データスイッチは、イーサネットスイッチであることを特徴とする請求項1に記載のストレージシステム。
  9. 前記データスイッチは、前記コントローラーのポートに接続されたPCIeコントロールポートを含み、
    前記データスイッチは、前記PCIeコントロールポートを通じて前記コントローラーから構成命令(configuration command)を受信することを特徴とする請求項1に記載のストレージシステム。
  10. PCIeスイッチを更に含み、
    前記複数のストレージ装置の各々は、前記PCIeスイッチを通じて前記コントローラー接続されることを特徴とする請求項1に記載のストレージシステム。
  11. 前記コントローラーは、ベースボード管理コントローラーであることを特徴とする請求項1に記載のストレージシステム。
  12. ストレージインターフェースを有し、複数のストレージ装置、データスイッチ、及びコントローラーを含むストレージシステムを動作させる方法であって、
    正常動作中に、前記データスイッチによって、各ストレージ命令のそれぞれのアドレスに従って、前記ストレージインターフェースを通じて受信されたストレージ命令を、前記複数のストレージ装置の中のそれぞれのストレージ装置に伝送するステップと、
    前記複数のストレージ装置の中何れかのストレージ装置が故障又は不在(absent)の場合、
    前記コントローラーによって、前記データスイッチを再構成して、前記故障又は不在のストレージ装置に宛てられたストレージ命令を前記コントローラーに伝送するステップと、
    前記コントローラーによって、受信されストレージ命令に応答して前記データスイッチ及び前記ストレージインターフェースを通じて、前記故障又は不在とされたストレージ装置が存在し且つ正常に作動した場合に伝送したはずのものと同じ命令応答を伝送するステップと、を有することを特徴とするストレージシステムの動作方法。
  13. 正常動作中に前記複数のストレージ装置のの一つのストレージ装置によってデータブロックを含む記録命令(write command)を受信した場合、
    前記一つのストレージ装置によって前記データブロックを格納するステップと、
    前記一つのストレージ装置によって前記データブロックのコピーを前記コントローラーに伝送するステップと、を更に有することを特徴とする請求項12に記載のストレージシステムの動作方法。
  14. 前記コントローラーによって、前記複数のストレージ装置のの第1ストレージ装置からデータブロックのコピー受信した場合
    前記コントローラーによって前記データブロックを復旧するのに充分な消去コードを生成するステップと、
    前記コントローラーによって前記複数のストレージ装置の中から前記第1ストレージ装置と異なる一つ以上のストレージ装置に前記消去コードを格納するステップと、を更に有することを特徴とする請求項13に記載のストレージシステムの動作方法。
  15. 正常動作中に、前記複数のストレージ装置のの第1ストレージ装置によって、データブロックを含む記録命令受信した場合
    前記第1ストレージ装置によって前記データブロックを格納するステップと、
    前記第1ストレージ装置によって前記データブロックを復旧するに充分な消去コード生成るステップと、
    前記第1ストレージ装置によって前記複数のストレージ装置の中から前記第1ストレージ装置と異なる一つ以上のストレージ装置に前記消去コードを格納するステップと、を更に有することを特徴とする請求項12に記載のストレージシステムの動作方法。
  16. 前記複数のストレージ装置のの第1ストレージ装置は、消去コードを格納し、
    正常動作中に、前記データスイッチによって、前記ストレージインターフェースを通じて受信された各ストレージ命令を前記ストレージ命令のそれぞれのアドレスにって、前記複数のストレージ装置のサブセットのストレージ装置のそれぞれのストレージ装置に伝送するステップを更に有し、
    前記第1ストレージ装置は、前記サブセットに含まれないことを特徴とする請求項12に記載のストレージシステムの動作方法。
  17. 前記ストレージシステムは、PCIeスイッチを更に有し、
    前記コントローラーは、前記PCIeスイッチを通じて前記ストレージ装置接続され、
    前記方法は、
    前記複数のストレージ装置のの何れかのストレージ装置が故障又は不在の場合、
    前記コントローラーによって、データブロックを要請する読込命令を受信したことに応答して、
    前記コントローラーによって、前記PCIeスイッチを通じて、前記複数のストレージ装置のの存在且つ正常動作するストレージ装置から消去コード読み込むステップと、
    前記コントローラーによって前記データブロックを復旧するステップと、
    前記コントローラーによって前記データスイッチ及び前記ストレージインタフェースを通じて前記復旧されたデータブロックを命令応答の一部として伝送するステップと、を更に有することを特徴とする請求項12に記載のストレージシステムの動作方法。
  18. 前記ストレージ装置の各々は、前記コントローラーのそれぞれのセンシングピンに接続される存在ピン(presence pin)を含み、
    前記方法は、前記コントローラーによって前記それぞれのセンシングピンの電圧又は電流の変化によって前記ストレージ装置のの何れか一つのストレージ装置の除去を検出するステップを更に有することを特徴とする請求項17に記載のストレージシステムの動作方法。
  19. ストレージインターフェースを含むストレージシステムであって、
    前記ストレージシステムは、
    何れか一つのストレージ装置に格納されたデータを他のストレージ装置のデータから復旧するに充分な消去コードを格納す複数のストレージ装置と、
    正常動作中に、各ストレージ命令のそれぞれのアドレスにって、前記ストレージインターフェースを通じて受信されたストレージ命令を前記複数のストレージ装置の中のそれぞれのストレージ装置に伝送するデータスイッチと、
    制御手段と、を有し、
    前記制御手段は、
    前記複数のストレージ装置のの何れかのストレージ装置故障又は不在の場合、
    前記データスイッチを再構成して、前記故障又は不在のストレージ装置に宛てられたストレージ命令を前記制御手段に伝送
    受信された各ストレージ命令に応答して、前記データスイッチ及び前記ストレージインターフェースを通じて、前記故障又は不在とされたストレージ装置が存在し且つ正常に作動した場合に伝送したはずのものと同じ命令応答を伝送することを特徴とするストレージシステム。
  20. 前記ストレージ装置の各々は、正常動作中に、データブロックを含む記録命令を受信した場合、前記データブロックを格納し前記データブロックのコピーを前記制御手段に伝送することを特徴とする請求項19に記載のストレージシステム。
JP2018005598A 2017-01-20 2018-01-17 ストレージシステム及びその動作方法 Active JP7002346B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201762448648P 2017-01-20 2017-01-20
US62/448,648 2017-01-20
US15/470,774 2017-03-27
US15/470,774 US10255134B2 (en) 2017-01-20 2017-03-27 Control plane method and apparatus for providing erasure code protection across multiple storage devices

Publications (2)

Publication Number Publication Date
JP2018116704A JP2018116704A (ja) 2018-07-26
JP7002346B2 true JP7002346B2 (ja) 2022-01-20

Family

ID=62906306

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018005598A Active JP7002346B2 (ja) 2017-01-20 2018-01-17 ストレージシステム及びその動作方法

Country Status (5)

Country Link
US (4) US10255134B2 (ja)
JP (1) JP7002346B2 (ja)
KR (1) KR102527151B1 (ja)
CN (1) CN108334285B (ja)
TW (2) TWI764973B (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10255134B2 (en) 2017-01-20 2019-04-09 Samsung Electronics Co., Ltd. Control plane method and apparatus for providing erasure code protection across multiple storage devices
US10275180B2 (en) * 2017-05-08 2019-04-30 Samsung Electronics Co., Ltd. Ethernet SSD system including storage offload engine (SoE) controller and ethernet switch
CN112214166B (zh) * 2017-09-05 2022-05-24 华为技术有限公司 用于传输数据处理请求的方法和装置
US20240095196A1 (en) * 2018-03-02 2024-03-21 Samsung Electronics Co., Ltd. Method for supporting erasure code data protection with embedded pcie switch inside fpga+ssd
US10635609B2 (en) 2018-03-02 2020-04-28 Samsung Electronics Co., Ltd. Method for supporting erasure code data protection with embedded PCIE switch inside FPGA+SSD
US10990554B2 (en) 2018-03-02 2021-04-27 Samsung Electronics Co., Ltd. Mechanism to identify FPGA and SSD pairing in a multi-device environment
TWI791880B (zh) * 2018-10-12 2023-02-11 南韓商三星電子股份有限公司 電腦系統
KR102649169B1 (ko) * 2018-12-12 2024-03-20 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
US10795846B1 (en) * 2019-07-15 2020-10-06 Cisco Technology, Inc. Scalable NVMe storage management over system management bus
US11334434B2 (en) * 2020-02-19 2022-05-17 Seagate Technology Llc Multi-level erasure system with cooperative optimization
CN111931255A (zh) * 2020-04-02 2020-11-13 深圳云存科技有限公司 自动销毁与拷贝系统
TWI789020B (zh) * 2021-09-23 2023-01-01 宇瞻科技股份有限公司 儲存裝置之控制系統及控制方法
JP2023096958A (ja) * 2021-12-27 2023-07-07 株式会社日立製作所 ストレージシステム及びストレージシステム制御方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009087348A (ja) 2007-09-28 2009-04-23 Symantec Corp 協働するストレージデバイスを用いて、データを冗長的に格納し、検索するシステム及び方法
JP2014154042A (ja) 2013-02-12 2014-08-25 Ricoh Co Ltd 情報処理装置及びその記憶装置の交換処理方法
JP2015519674A (ja) 2012-06-13 2015-07-09 カリンゴ・インコーポレーテッドCaringo Incorporated ストレージクラスタにおける消失符号付加および複製
WO2016060675A1 (en) 2014-10-17 2016-04-21 Hitachi, Ltd. Method and apparatus for managing data recovery of distributed storage system
WO2016137402A1 (en) 2015-02-26 2016-09-01 Agency For Science, Technology And Research Data stripping, allocation and reconstruction

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3184171B2 (ja) * 1998-02-26 2001-07-09 日本電気株式会社 ディスクアレイ装置、そのエラー制御方法、ならびにその制御プログラムを記録した記録媒体
US20030217305A1 (en) * 2002-05-14 2003-11-20 Krehbiel Stanley E. System, method, and computer program product within a data processing system for assigning an unused, unassigned storage device as a replacement device
ATE557349T1 (de) * 2002-10-31 2012-05-15 Parallel Iron Llc Speichersystem und verfahren für ein speichersystem
US7058762B2 (en) * 2003-06-09 2006-06-06 Hewlett-Packard Development Company, L.P. Method and apparatus for selecting among multiple data reconstruction techniques
US20050228943A1 (en) * 2004-04-02 2005-10-13 Decenzo David P Multipath redundant storage system architecture and method
US7353318B2 (en) * 2005-08-26 2008-04-01 International Business Machines Corporation Apparatus and method to assign addresses to plurality of information storage devices
ES2528245T3 (es) * 2009-02-03 2015-02-05 Bittorrent, Inc. Almacenamiento distribuido de datos recuperables
US8234447B2 (en) * 2009-10-09 2012-07-31 Hitachi, Ltd. Storage control device for storage system provided with storage device coupled to switch network
JP5416843B2 (ja) * 2010-05-12 2014-02-12 株式会社日立製作所 ストレージ装置、及びストレージ装置の制御方法
CN104166441B (zh) 2010-06-18 2018-05-11 希捷科技有限公司 可扩展存储装置
US8812901B2 (en) * 2011-09-23 2014-08-19 Lsi Corporation Methods and apparatus for marking writes on a write-protected failed device to avoid reading stale data in a RAID storage system
US8930749B2 (en) * 2012-04-02 2015-01-06 International Business Machines Corporation Systems and methods for preventing data loss
TW201351126A (zh) * 2012-05-03 2013-12-16 Thomson Licensing 分佈式資料儲存系統內資料檔案之儲存方法和管理裝置以及故障儲存裝置之修理方法和修理管理裝置
US8762353B2 (en) 2012-06-13 2014-06-24 Caringo, Inc. Elimination of duplicate objects in storage clusters
US9449040B2 (en) * 2012-11-26 2016-09-20 Amazon Technologies, Inc. Block restore ordering in a streaming restore system
JP6003610B2 (ja) 2012-12-17 2016-10-05 日本電気株式会社 情報処理装置
US9229854B1 (en) 2013-01-28 2016-01-05 Radian Memory Systems, LLC Multi-array operation support and related devices, systems and software
WO2014118776A1 (en) * 2013-01-31 2014-08-07 Technion Research & Development Foundation Limited Management and recovery of distributed storage of replicas
US9026846B2 (en) * 2013-03-15 2015-05-05 Lsi Corporation Data recovery in a raid controller by offloading contents of DRAM to a flash module on an SAS switch
US10209904B2 (en) * 2013-04-09 2019-02-19 EMC IP Holding Company LLC Multiprocessor system with independent direct access to bulk solid state memory resources
US9354991B2 (en) * 2013-06-25 2016-05-31 Microsoft Technology Licensing, Llc Locally generated simple erasure codes
US9986028B2 (en) * 2013-07-08 2018-05-29 Intel Corporation Techniques to replicate data between storage servers
JP6213130B2 (ja) * 2013-10-09 2017-10-18 富士通株式会社 ストレージ制御装置、ストレージ制御プログラム及びストレージ制御方法
US9887008B2 (en) 2014-03-10 2018-02-06 Futurewei Technologies, Inc. DDR4-SSD dual-port DIMM device
US9923970B2 (en) * 2014-08-22 2018-03-20 Nexenta Systems, Inc. Multicast collaborative erasure encoding and distributed parity protection
US9565269B2 (en) * 2014-11-04 2017-02-07 Pavilion Data Systems, Inc. Non-volatile memory express over ethernet
US9098451B1 (en) * 2014-11-21 2015-08-04 Igneous Systems, Inc. Shingled repair set for writing data
US9880750B1 (en) * 2014-12-05 2018-01-30 Vexata, Inc. Storage architecture for storage class memories
US9575669B2 (en) 2014-12-09 2017-02-21 Western Digital Technologies, Inc. Programmable solid state drive controller and method for scheduling commands utilizing a data structure
US9959274B2 (en) * 2014-12-19 2018-05-01 Amazon Technologies, Inc. Volume-level redundancy coding techniques for sequential transfer optimized storage devices
US9529542B2 (en) 2015-04-14 2016-12-27 E8 Storage Systems Ltd. Lockless distributed redundant storage and NVRAM caching of compressed data in a highly-distributed shared topology with direct memory access capable interconnect
US10114778B2 (en) * 2015-05-08 2018-10-30 Samsung Electronics Co., Ltd. Multi-protocol IO infrastructure for a flexible storage platform
US9792179B1 (en) * 2015-07-06 2017-10-17 Amazon Technologies, Inc. Eventually durable redundancy encoded data storage
US9785495B1 (en) * 2015-12-14 2017-10-10 Amazon Technologies, Inc. Techniques and systems for detecting anomalous operational data
US10452279B1 (en) * 2016-07-26 2019-10-22 Pavilion Data Systems, Inc. Architecture for flash storage server
US10229000B2 (en) * 2016-08-09 2019-03-12 Seagate Llc Erasure codes to prevent lower page corruption in flash memory
US10268538B2 (en) * 2016-11-28 2019-04-23 Alibaba Group Holding Limited Efficient and enhanced distributed storage clusters
US10459795B2 (en) * 2017-01-19 2019-10-29 International Business Machines Corporation RAID systems and methods for improved data recovery performance
US10255134B2 (en) * 2017-01-20 2019-04-09 Samsung Electronics Co., Ltd. Control plane method and apparatus for providing erasure code protection across multiple storage devices

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009087348A (ja) 2007-09-28 2009-04-23 Symantec Corp 協働するストレージデバイスを用いて、データを冗長的に格納し、検索するシステム及び方法
JP2015519674A (ja) 2012-06-13 2015-07-09 カリンゴ・インコーポレーテッドCaringo Incorporated ストレージクラスタにおける消失符号付加および複製
JP2014154042A (ja) 2013-02-12 2014-08-25 Ricoh Co Ltd 情報処理装置及びその記憶装置の交換処理方法
WO2016060675A1 (en) 2014-10-17 2016-04-21 Hitachi, Ltd. Method and apparatus for managing data recovery of distributed storage system
WO2016137402A1 (en) 2015-02-26 2016-09-01 Agency For Science, Technology And Research Data stripping, allocation and reconstruction

Also Published As

Publication number Publication date
TWI780016B (zh) 2022-10-01
US20180210785A1 (en) 2018-07-26
CN108334285A (zh) 2018-07-27
TW201828073A (zh) 2018-08-01
US11429487B2 (en) 2022-08-30
US10255134B2 (en) 2019-04-09
US20190196909A1 (en) 2019-06-27
KR20180086124A (ko) 2018-07-30
CN108334285B (zh) 2023-04-18
KR102527151B1 (ko) 2023-05-02
US11042442B2 (en) 2021-06-22
TW202230147A (zh) 2022-08-01
US20210294699A1 (en) 2021-09-23
US20220413964A1 (en) 2022-12-29
TWI764973B (zh) 2022-05-21
JP2018116704A (ja) 2018-07-26

Similar Documents

Publication Publication Date Title
JP7002346B2 (ja) ストレージシステム及びその動作方法
US10656993B2 (en) Apparatus, system, and method to increase data integrity in a redundant storage system
JP6011210B2 (ja) ストレージ制御装置,プログラマブル論理回路の復旧処理方法及び制御プログラム
US7356638B2 (en) Using out-of-band signaling to provide communication between storage controllers in a computer storage system
JP4641546B2 (ja) 入出力(i/o)エラーをハンドリングするための方法及びシステム
US10027532B2 (en) Storage control apparatus and storage control method
JP4542163B2 (ja) ディスクアレイ装置、ディスクアレイ制御方法及びディスクアレイ制御装置
JP2006195821A (ja) 情報処理システムの制御方法、情報処理システム、ダイレクトメモリアクセス制御装置、プログラム
CN112306388B (zh) 存储装置
KR20200016812A (ko) 호스트 분리를 구비한 비휘발성 메모리 스위치
US20080263391A1 (en) Apparatus, System, and Method For Adapter Card Failover
CN114868117A (zh) 通过控制总线进行的对等存储设备消息传送
US8065556B2 (en) Apparatus and method to manage redundant non-volatile storage backup in a multi-cluster data storage system
JP4669263B2 (ja) ストレージ装置
JP3072700B2 (ja) 記憶装置及び方法
JP4544901B2 (ja) 記憶制御システム及びブート制御システム
JP6217192B2 (ja) ストレージ制御装置、制御プログラムおよび制御方法
JP2018028793A (ja) 情報処理プログラム、情報処理システムおよび情報処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201130

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210818

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210824

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211119

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211227

R150 Certificate of patent or registration of utility model

Ref document number: 7002346

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150