[go: up one dir, main page]

TWI765129B - 儲存系統 - Google Patents

儲存系統 Download PDF

Info

Publication number
TWI765129B
TWI765129B TW107145768A TW107145768A TWI765129B TW I765129 B TWI765129 B TW I765129B TW 107145768 A TW107145768 A TW 107145768A TW 107145768 A TW107145768 A TW 107145768A TW I765129 B TWI765129 B TW I765129B
Authority
TW
Taiwan
Prior art keywords
field programmable
data protection
programmable gate
gate array
storage devices
Prior art date
Application number
TW107145768A
Other languages
English (en)
Other versions
TW201939506A (zh
Inventor
桑龐 保羅 歐拉利格
佛瑞德 沃里
奧斯卡 P 品托
傑森 馬蒂諾
Original Assignee
南韓商三星電子股份有限公司
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
Priority claimed from US15/981,801 external-priority patent/US10649940B2/en
Application filed by 南韓商三星電子股份有限公司 filed Critical 南韓商三星電子股份有限公司
Publication of TW201939506A publication Critical patent/TW201939506A/zh
Application granted granted Critical
Publication of TWI765129B publication Critical patent/TWI765129B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/76Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0409Online test
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Mathematical Physics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Storage Device Security (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

本發明提供一種用於支援現場可程式化閘陣列(FPGA) 固態驅動器(SSD)上的資料保護的儲存系統,包含具有連接到現場可程式化閘陣列的第一組固態驅動器的儲存系統。現場可程式化閘陣列包含第一資料保護控制器,第一資料保護控制器配置成進行以下操作:根據資料保護配置來管理對第一組固態磁碟的輸入/輸出請求和來自第一組固態磁碟的輸入/輸出請求;根據資料保護配置來生成同位檢查位元;以及將同位檢查位元儲存在來自第一組固態驅動器的至少同位固態驅動器上。

Description

儲存系統
本揭露的一些實施例大體上涉及非揮發性儲存快速(non-volatile memory express;NVMe)固態驅動器(solid state drives;SSD)、現場可程式化閘陣列(field programmable gate arrays;FPGA)以及獨立磁碟冗餘陣列(redundant array of independent disks;RAID)。
資料的快速發展推進了資料中心的對應發展和越來越多的使用雲計算。1U和2U伺服器變得愈來愈流行以便最大化的使用有限資料中心空間。支援雲計算需要資料中心在允許簡單系統組態的同時維持高水準的可靠性。在許多情況下,雲計算涉及使用每個可操作多個虛擬機器的相對高性能伺服器。虛擬機器可隨後分割伺服器的資源,所述虛擬機器在所述伺服器上操作。
RAID是提供資料保護和改進總體系統性能的重要工具。利用基於NVMe的SSD來實施RAID通常需要使用外部PCIe內插卡(add-in-cards;AICs)(例如,RAID控制器)。由於PCIe卡的標準外觀尺寸的物理限制和有限數目的可用連接(例如,U.2 連接),添加AIC到1U和2U伺服器可能存在問題。舉例來說,每一RAID控制器可配置成支援4個NVMe SSD。典型的2U主機殼包含24個NVMe SSD,所述24個NVMe SSD又需要6個AIC且形成6個RAID域。包含這些AIC和域增加總體成本(例如,在硬體成本和電力消耗方面),且增大配置和使用系統的複雜度。
添加RAID AIC到1U主機殼可造成空間和複雜度的額外問題。舉例來說,僅有限數目的RAID AIC可以物理方式添加到1U主機殼。因此,以RAID設置配置每一驅動器的唯一方式是使用完全基於軟體的系統,或是使用基於硬體與軟體組合的RAID。這兩種設置都導致性能降低和複雜度增大。
擦除編碼是由於其可配置性而變得愈來愈流行的另一種資料保護技術。擦除編碼允許將資料分割成多個較小編碼塊,其中可從編碼塊的子組恢復原始資料。系統管理員定義資料劃分成多少片段和在檢測資料損壞後恢復原始資料所需的片段數目(例如,同位)。在儲存系統中,片段分佈到對應驅動器。舉例來說,如果擦除代碼配置為10/16系統,那麼資料將分割成16個片段且可使用10個片段進行重構。所述系統將在16個驅動器/節點/等上分割16個片段。儘管提供增大靈活性,但擦除編碼可能是計算方面昂貴的且還可導致額外網路使用量。此外,實施擦除編碼可進一步增大系統組態複雜度。
上文資訊僅用於增進對本揭露的實施例的背景的理解,且因此可含有不形成現有技術的資訊。
本發明的一個目的涉及提供一種在減小成本和複雜度的同時採用資料保護功能的儲存系統。
本揭露的一些實施例提供一種用於現場可程式化閘陣列(FPGA)固態磁碟(SSD)上的資料保護的系統和方法。在各種實施例中,系統包括具有連接到第一FPGA的第一組SSD的儲存系統。第一FPGA包含第一資料保護控制器,所述第一資料保護控制器配置成進行以下操作:根據資料保護配置來管理對第一組固態磁碟的輸入/輸出請求和來自第一組固態磁碟的輸入/輸出請求;根據資料保護配置來生成同位檢查位元;以及將同位檢查位元儲存在來自第一組固態驅動器的至少同位固態驅動器上。
在各種實施例中,儲存系統進一步包含通過高速匯流排連接到第一FPGA的處理器和通過高速匯流排連接到第一FPGA的BMC,其中BMC配置成提供資料保護配置。
在各種實施例中,儲存系統進一步包含通過高速匯流排連接到第一FPGA的處理器和通過低速匯流排連接到第一FPGA的BMC,其中BMC配置成提供資料保護配置。
在各種實施例中,儲存系統進一步包含第一交換機(switch),所述第一交換機將第一FPGA連接到第一組固態驅動 器。
在各種實施例中,儲存系統進一步包含連接到第二FPGA的第二組固態驅動器,所述第二FPGA通過第二交換機連接到第二組固態驅動器。第二FPGA包括第二資料保護控制器,且第一FPGA和第二FPGA由第一交換機與第二交換機之間的連接件連接。
在各種實施例中,第一資料保護控制器經由第一交換機和第二交換機將複製資料發送到第二資料保護控制器。
在各種實施例中,第一資料保護控制器包括獨立磁碟冗餘陣列(RAID)控制器。
在各種實施例中,第一資料保護控制器包括擦除代碼控制器。
在各種實施例中,儲存系統包含第一組SSD、第二組SSD、連接到第一組SSD的FPGA以及連接到第二組SSD的第二FPGA。FPGA包含第一獨立磁碟冗餘陣列(RAID)控制器,且第二FPGA包括第二RAID控制器。第一FPGA和第二FPGA配置成:根據資料保護配置來管理對第一組固態磁碟和第二組固態磁碟的輸入/輸出請求和來自第一組固態磁碟和第二組固態磁碟的輸入/輸出請求;根據資料保護配置來生成同位檢查位元以用於所儲存資料;將同位檢查位元儲存在來自第一組SSD的至少一個同位SSD上;以及將第一組固態驅動器複製在第二組固態驅動器上。
在各種實施例中,儲存系統進一步包含通過匯流排連接 到第一FPGA和第二FPGA的處理器和通過匯流排連接到第一FPGA和第二FPGA的BMC,其中BMC配置成提供資料保護配置。
在各種實施例中,匯流排包括周邊元件連接快速(peripheral component interconnect express;PCIe)匯流排。
在各種實施例中,儲存系統進一步包含將第一FPGA連接到第一組固態驅動器的第一PCIe交換機和將第二FPGA連接到第二組固態驅動器的第二PCIe交換機,其中第一交換機和第二交換機將第一FPGA連接到第二FPGA。
在各種實施例中,資料保護配置是混合式RAID配置。
在各種實施例中,儲存系統包含第一組固態驅動器和連接到第一組SSD的第一FPGA、通過匯流排連接到第一FPGA的處理器、通過匯流排連接到第一FPGA且配置成為第一FPGA提供資料保護配置的BMC。第一FPGA包含第一資料保護控制器,所述第一資料保護控制器配置成進行以下操作:根據資料保護配置來管理對第一組固態磁碟的輸入/輸出請求和來自第一組固態磁碟的輸入/輸出請求;根據資料保護配置來生成同位檢查位元以用於所儲存於第一組固態驅動器中的資料;以及將同位檢查位元儲存在來自第一組固態驅動器的至少一個同位固態驅動器上。
在各種實施例中,第一資料保護控制器包括獨立磁碟冗餘陣列(RAID)控制器。
在各種實施例中,資料保護配置包括RAID 1、RAID 5或RAID 6配置中的至少一個。
在各種實施例中,第一資料保護控制器包括擦除編碼控制器,所述擦除編碼控制器配置成對第一多個固態驅動器的第一部分上的資料進行分條以及根據第一多個固態驅動器的第二部分上的資料來生成擦除代碼。
在各種實施例中,系統進一步包含第二組固態驅動器和第二FPGA,第二FPGA通過匯流排連接到處理器、通過匯流排連接到BMC且連接到第二組固態驅動器。第二FPGA包含第二資料保護控制器,所述第二資料保護控制器配置成進行以下操作:根據資料保護配置來管理對第二組固態磁碟的輸入/輸出請求和來自第二組固態磁碟的輸入/輸出請求;根據資料保護配置來生成同位檢查位元以用於儲存於第二組固態驅動器中的資料;以及將同位檢查位元儲存在來自第二組固態驅動器的至少一個同位固態驅動器上。
在各種實施例中,系統包含第二多個固態驅動器、將第一FPGA連接到第一下游PCIe交換機和第二下游PCIe交換機的第一周邊元件連接快速(PCIe)交換機。第一下游PCIe交換機連接到第一組固態驅動器且經由第一PCIe交換機將第一組固態驅動器連接到第一FPGA,且第二下游PCIe交換機連接到第二組固態驅動器且經由第一PCIe交換機將第二組固態驅動器連接到第一FPGA。
在各種實施例中,資料保護配置包括混合式RAID配置。
根據本發明,通過採用具有資料保護功能的現場可程式化閘陣列且使用交換機將其連接來提供一種在減小成本和複雜度同時提供資料保護功能的儲存系統。
100A、100B、200、400、500:儲存系統
110:處理器
120:記憶體
130:主機板管理控制單元
140、150、220、310、320、410、420、510:FPGA
145A、155A:資料保護控制器/RAID控制器
145B、155B:資料保護控制器/擦除編碼控制器
160~174、230~252、330~344、430~460、540~570:NVMe SSD
210:主機可見驅動器
300、414、424、514、520、530:PCIe交換機
315、325:擦除代碼控制器
412、422、512:資料保護控制器
514:第一PCIe交換機
520:第一下游PCIe交換機
530:第二下游PCIe交換機
S600、S610、S620、S630、S700、S710、S720、S730、S800、S810、S820、S830、S840、S850、S860、S870、S900、S910、S920、S930:步驟
通過結合附圖進行的以下描述可更詳細地理解一些實施例,在所述附圖中:圖1A和圖1B描繪根據各種實施例的具有FPGA SSD的儲存系統。
圖2描繪根據各種實施例的包含具有PCIe交換機的FPGA的實施例。
圖3描繪根據各種實施例的包含連接到SSD的多個FPGA的儲存系統。
圖4描繪根據各種實施例的具有多個PCIe交換機的實例儲存系統。
圖5描繪根據各種實施例的具有多層交換機的實例儲存系統。
圖6描繪根據各種實施例的執行系統初始化的方法。
圖7描繪根據各種實施例的預處理SSD的方法。
圖8描繪根據各種實施例的執行I/O的生成同位的方法。
圖9描繪根據各種實施例的在驅動器失效後執行熱去除和增加的方法。
本發明概念的特徵和實現所述特徵的方法可通過參考實施例的以下詳細描述和隨附圖式更容易地加以理解。下文中,將參考隨附圖式更詳細地描述實施例,在所述隨附圖式中,相同參考標號通篇指代相同元件。然而,本發明可以各種不同形式體現,且不應理解為受限於僅本文中說明的實施例。相反,將這些實施例作為實例來提供以使得本揭露將透徹且完整,且將向本領域的技術人員充分地傳達本發明的各方面和特徵。因此,可能並不描述對於本領域普通技術人員對本發明的方面和特徵的完整理解非必要的工藝、元件以及技術。除非另外指出,否則相同參考標號貫穿隨附圖式和書面描述表示相同元件,且因此將不重複其描述。在圖式中,為清楚起見,可能放大元件、層以及區域的相對大小。
在以下描述中,出於解釋的目的,闡述許多特定細節以提供對各種實施例的透徹理解。然而,顯而易知,可在沒有這些具體細節或有一或多種等效佈置的情況下實踐各種實施例。在其它情況下,以框圖的形式示出眾所周知的結構和裝置以便避免不必要地混淆各種實施例。
應理解,當將元件、層、區域或元件稱為在另一元件、層、區域或元件“上”,“連接到”或“耦合到”另一元件、層、區域或元件時,其可直接在另一元件、層、區域或元件上,連接 到或耦合到另一元件、層、區域或元件,或可存在一或多個介入元件、層、區域或元件。然而,“直接連接/直接耦合”是指一個元件直接連接或耦合另一元件而不具有中間元件。同時,可類似地理解描述元件之間的關係的其它表達,如“在...之間”、“緊接在...之間”或“鄰近於”和“緊鄰”。另外,還將理解,當元件或層稱為在兩個元件或兩個層“之間”時,其可以是在兩個元件或兩個層之間的僅元件或層,或也可存在一或多個介入元件或介入層。
本文中使用的術語僅用於描述特定實施例的目的,且並不希望限制本發明。如本文中所使用,除非上下文另作明確指示,否則單數形式“一(a/an)”也意欲包含複數形式。將進一步理解,術語“包括(comprises/comprising)”、“具有(have/having)”、“包含(includes/including)”當在本說明書中使用時,表示所陳述特徵、整體、步驟、操作、元件和/或元件的存在,但不排除一或多個其它特徵、整體、步驟、操作、元件、元件和/或其群組的存在或增加。如本文中所使用,術語“和/或”包含相關聯的所列項中的一或多個的任何和所有組合。
如本文中所使用,術語“大體上”、“約”、“大致”以及類似術語用作近似的術語且不用作程度的術語,且意圖考慮將由本領域普通技術人員識別的測量值或計算值中的固有偏差。考慮到所討論的測量和與特定量的測量相關聯的誤差(即,測量系統的限制),如本文中所使用,“約”或“大致”包含所陳述值 且意指在由本領域的普通技術人員確定的特定值的偏差的可接受範圍內。舉例來說,“約”可意味著在一或多個標準差內,或在所陳述值的±30%、20%、10%、5%內。另此外,當描述本發明的實施例時,使用“可”是指“本發明的一或多個實施例”。如本文中所使用,術語“使用(use)”、“正使用(using)”、“被使用(used)”可分別視為與術語“利用(utilize)”、“正利用(utilizing)”、“被利用(utilized)”同義。此外,術語“示範性”意欲指代實例或說明。
當某一實施例可以不同方式實施時,特定處理次序可與所描述次序不同地執行。舉例來說,兩個連續描述的工藝可實質上同時執行或以與所描述次序相反的次序執行。
在本文中參考作為實施例和/或中間結構的示意說明的截面圖示來描述各種實施例。因而,應預期到作為例如製造技術和/或公差的結果而與圖示的形狀的差異。此外,出於描述根據本揭露的概念的實施例的目的,本文中所揭露的特定結構或功能性描述僅為說明性的。因此,本文中所揭露的實施例不應理解為受限於區域的特定圖示形狀,而是包含由(例如)製造引起的形狀偏差。舉例來說,圖解說明為矩形的植入區域通常將具有圓形或彎曲特徵和/或植入物濃度在其邊緣上的梯度,而不是從植入區域到非植入區域的二元變化。同樣地,通過植入形成的埋入區域可在埋入區域與發生植入所在的表面之間的區域中產生一些植入。因此,圖式中所說明的區域本質上是示意性的且其形狀並不意圖 說明裝置的區域的實際形狀且並不意圖為限制性的。
本文中所描述的根據本發明實施例的電子或電子裝置和/或任何其它相關裝置或元件可利用任一適合的硬體、韌體(例如專用積體電路)、軟體或軟體、韌體以及硬體的組合實施。舉例來說,這些裝置的各種元件可形成於一個積體電路(integrated circuit;IC)晶片上或在獨立IC晶片上。此外,這些裝置的各種元件可實施於柔性印刷電路膜、帶載封裝(tape carrier package;TCP)、印刷電路板(printed circuit board;PCB)上,或形成於一個襯底上。此外,這些裝置的各種元件可以是在一或多個計算裝置中在一或多個處理器上運行、執行電腦程式指令以及與其它系統元件交互以用於執行本文中所描述的各種功能的進程或執行緒。電腦程式指令儲存於可使用例如隨機存取記憶體(random access memory;RAM)的標準記憶體裝置在計算裝置中實施的記憶體中。電腦程式指令也可儲存在例如CD-ROM、快閃記憶體驅動器或類似物的其它非暫時性電腦可讀媒體中。此外,本領域的技術人員應認識到可將各種計算裝置的功能組合或集成到單個計算裝置中,或可將特定計算裝置的功能分佈於一或多個其它計算裝置上而不脫離本發明的示範性實施例的精神和範圍。
除非另外定義,否則本文中所使用的所有術語(包含技術和科學術語)具有本發明所屬領域的普通技術人員所通常理解的相同意義。將進一步理解,術語(例如常用詞典中所定義的那些術語)應解釋為具有與其在相關技術的上下文和/或本說明書中 的含義一致的含義,且不應在理想化或過分形式化的意義上進行解釋,除非在本文中這樣明確地定義。
本發明的實施例包含用於支援儲存系統中的資料保護的系統和方法。在各種實施例中,儲存系統包含至少一個FPGA,所述FPGA配置成與一或多個固態驅動器(SSD)(例如非揮發性儲存快速(NVMe)SSD)結合來操作。在各種實施例中,FPGA可配置成對儲存於所附接SSD中的資料執行計算操作(例如,儲存內計算操作)。在各種實施例中,每一FPGA可配置有資料保護控制器,所述資料保護控制器用於保護儲存於儲存系統中的資料的完整性。舉例來說,在各種實施例中,資料保護控制器可實施RAID或對所附接SSD的擦除編碼,而非使用AIC或基於軟體的實施方案。在各種實施例中,每一FPGA包含計算資源以及高速輸入/輸出(input/output;I/O)連線性以用於執行RAID以及擦除代碼同位生成和資料路由。
在現代資料中心中,目前的目標是在最小化電力消耗的同時最大化儲存密度和性能。典型的RAID配置利用一或多個外部PCIe內插卡(AIC)。為了最大化儲存密度,現代和未來的儲存伺服器外觀尺寸設計成貢獻對資料儲存驅動器(例如,SSD)來說盡可能大的空間。因此,1U和2U外觀尺寸變得愈來愈流行。這些外觀尺寸並不是沒有缺點。舉例來說,其小的尺寸並不提供太大空間來增加AIC,PCIe埠的數目可能受到限制,且其增大的密度可使得更難以降溫。因此,期望限制增加到系統的AIC數目。
目前的資料保護實施方案使用AIC以執行RAID或使用處理功率以執行擦除編碼。這些方法有多個缺點。舉例來說,AIC較昂貴,消耗額外功率,且產生額外熱量,同時還使用PCIe匯流排上的頻寬。此外,如果利用每一PCIe槽來實施RAID,那麼主機殼將沒有空間用於未來擴展。擦除編碼提供許多與RAID相同的益處且可提供甚至更多的配置靈活性,然而,擦除編碼在計算方面較昂貴,因為大多編碼由伺服器的處理器完成。
本揭露的實施例通過利用附接儲存的FPGA的處理功率來改進這些先前的方法。通過在FPGA中實施資料保護控制器,可在不必使用每一可用PCIe槽(進而允許未來系統擴容)且就AIC、功率、降溫以及處理器工作負荷來說節省成本的情況下採用資料保護方案。此外,主PCIe匯流排上的頻寬可用於其它操作。因此,可在減小電力消耗同時增大儲存密度和性能。另外,使用資料保護控制器允許較高配置靈活性,因為資料保護控制器實施於FPGA中。
圖1A和圖1B描繪根據各種實施例的具有FPGA SSD的儲存系統。
參考圖1A和圖1B,在各種實施例中,儲存系統100A/100B配置成使用與FPGA上的資料保護控制器操作結合實施的資料保護配置來操作。在各種實施例中,儲存系統100A配置成利用RAID來操作,且儲存系統100B配置成利用擦除編碼來操作。記憶體系統100A/100B各自包含一或多個處理器110、記憶 體120、主機板管理控制單元BMC 130、FPGA 140、FPGA 150以及SSD 160到SSD 174(例如,NVMe SSD、跨架構NVMe(NVMe-oF)或任何其它固態或旋轉磁碟驅動器)。在各種實施例中,處理器110經由FPGA 140、FPGA 150連接到NVMe SSD 160到NVMe SSD 174。儘管處理器110配置成處理大多數主要計算操作,但在各種實施例中,FPGA 140、FPGA 150配置成對儲存於對應附接的SSD 160到SSD 174中的資料執行多種計算操作(例如,儲存內(in-storage)計算操作)。FPGA 140、FPGA 150通過高速匯流排(例如,PCIe x8/x16)連接到處理器110,所述高速匯流排配置成將資料傳輸到FPGA 140、FPGA 150和傳輸來自所述FPGA的資料以及傳輸由FPGA 140、FPGA 150執行的命令。在一些實施例中,FPGA 140、FPGA 150是通過相對較低速度匯流排(例如PCIe x1)直接連接到BMC 130以對FPGA 140、FPGA 150以及所附接SSD 160到SSD 174執行配置和控制操作。在各種實施例中,FPGA 140、FPGA 150可各自包含一或多個資料保護控制器145A/B、資料保護控制器155A/B。在各種實施例中,資料保護控制器145A/B、資料保護控制器155A/B可由FPGA 140、FPGA 150實施。在其它實施例中,資料保護控制器145A/B、資料保護控制器155A/B可實施為與FPGA 140、FPGA 150相同的晶粒上的專用積體電路(application-specific integrated circuit;ASIC)。
在各種實施例中,BMC 130可用於指定用於資料保護控制器145A/B、資料保護控制器155A/B的資料保護配置。在一些 實施例中,BMC 130可具有硬編碼路徑,其中當初始化系統時自動地應用特定資料保護配置。舉例來說,BMC 130可根據基本輸入輸出系統(BIOS)配置或軟體介面來應用資料保護配置。在其它實施例中,管理員具有通過修改BIOS或介接軟體來設置預設或進行硬編碼設置的選項。在各種實施例中,管理員選擇配置步驟期間採用的不同資料保護配置。舉例來說,管理員可選擇根據其應用來實施擦除編碼或RAID。在一些實施例中,BMC 130可用於在每一FPGA 140、FPGA 150上配置多個資料保護控制器145A/B、資料保護控制器155A/B。舉例來說,在一些實施例中,伺服器100A/100B可操作可由多個用戶利用的多個虛擬機器,且資料保護控制器145A/B、資料保護控制器155A/B可實施用於每一虛擬機器。
在各種實施例中,每一FPGA 140、FPGA 150可與若干SSD 160到SSD 174一起操作。在所描繪的實例中,每一FPGA 140、FPGA 150配置成與四個SSD一起操作,然而,應理解,FPGA與SSD的比率可經過修改而包含用於每一SSD的一個FPGA到用於每一FPGA的多個SSD。
參考圖1A,在各種實施例中,每一FPGA 140、FPGA 150具有資料保護控制器,所述資料保護控制器根據資料保護配置(例如,由BMC 130指定的配置)來操作資料保護方案。舉例來說,在各種實施例中,資料保護控制器可配置成操作為RAID控制器145A、RAID控制器155A。在各種實施例中,使用者(例如,系 統管理員)可配置RAID控制器145A、RAID控制器155A以實施所需RAID配置(例如,RAID 0、RAID 1、RAID 5、RAID 6等),且指定待使用的驅動器160到驅動器174(例如,基於連接到RAID控制器145A、RAID控制器155A的驅動器總數來創建群組)。
舉例來說,在各種實施例中,FPGA 140、FPGA 150可各自連接到4個SSD 160到SSD 174,且配置成各自以RAID 5配置來操作,其中資料被分條在三個驅動器上且第四驅動器用於同位。在另一實例中,FPGA 140、FPGA 150可連接到5個SSD 160到SSD 174,且配置成各自以RAID 6配置來操作。
在各種實施例中,RAID控制器145A、RAID控制器155A由BMC 130管理。因此,系統管理員可對BMC 130進行存取以用於RAID控制器145A、RAID控制器155A的初始配置以及用於執行配置中的任何改變、性能監視、執行系統維護等。舉例來說,BMC 130可提供用於配置的使用者介面(例如,圖形使用者介面或命令列介面),且可提供用於一些配置的軟體介面。
參考圖1B,在各種實施例中,每一FPGA140、FPGA150的資料保護控制器根據資料保護配置來操作從而指定擦除代碼操作。舉例來說,在各種實施例中,資料保護控制器可操作為擦除編碼控制器145B、擦除編碼控制器155B。在各種實施例中,擦除編碼控制器145B、擦除編碼控制器155B各自配置成以M/N擦除編碼配置(例如,資料分割於M個驅動器上且可僅使用N個驅動器來恢復)來操作。舉例來說,在各種實施例中,FPGA 140、FPGA 150可各自連接到4個SSD 160到SSD 174,且配置成以1/4、2/4或3/4配置來操作。在另一實例中,FPGA 140、FPGA 150中的每一個可連接到8個SSD 160到SSD 174,且配置成各自以(例如)5/8配置來操作。應理解,擦除編碼配置和連接到FPGA的SSD數目可根據可用SSD和使用者設計要求來修改。
在各種實施例中,擦除編碼控制器145B、擦除編碼控制器155B的配置由BMC 130管理。所述BMC 130可提供使用者介面以執行初始設置、檢查裝置狀態、執行設備維護、修改配置等。因此,管理員可將儲存系統容易地配置成具有其所需的資料保護方案。
圖2描繪根據各種實施例的包含具有PCIe交換機的FPGA的實施例。
參考圖2,在各種實施例中,儲存系統200可配置有多種資料保護方案。在各種實施例中,所附接NVMe SSD 230到NVMe SSD 252可被主機視為單個主機可見驅動器210。因此,從主機角度看,儲存系統200的配置在操作中不是問題。在各種實施例中,FPGA 220可附接到集成PCIe交換機或具有集成PCIe交換機。在各種實施例中,增加PCIe交換機提供進一步配置靈活性,且允許較少FPGA 220的使用,且慢進而進一步減小系統成本。此外,系統PCIe匯流排上的業務可減少,因為RAID/擦除代碼操作以及FPGA 220的任何儲存內計算操作受限於由PCIe交換機服務的單獨PCIe匯流排。
在各種實施例中,儲存系統200可配置成(例如,通過管理員存取BMC 130)使用RAID 5、使用X/Y擦除代碼配置或使用RAID 0來操作。在描繪的實施例中,儲存系統200包含12個附接的SSD 230到SSD 252。因此,當儲存系統200以RAID 5配置來配置時,11個驅動器230到驅動器250可用於儲存資料(例如,資料被分條在11個驅動器上),且1個驅動器252用於儲存同位檢查位元。類似地,當儲存系統200配置成利用擦除代碼來操作時,x個驅動器可用於儲存資料,且y個驅動器用於儲存代碼。在另一實施例中,系統可配置為RAID 0(不具有同位的資料條),且所有驅動器用作資料驅動器。
圖3描繪根據各種實施例的包含連接到SSD的多個FPGA的儲存系統。
參考圖3,在各種實施例中,儲存系統可進一步包含一或多個PCIe交換機300,所述PCIe交換機300連接到每一FPGA 310、FPGA 320或在所述FPGA上操作。PCIe交換機300可用于增加每一FPGA 310、FPGA 320連接到的NVMe驅動器330到NVMe驅動器344的數目以提供額外資料保護配置,且所述NVMe驅動器330到NVMe驅動器344連接兩個或大於兩個FPGA 310、FPGA 320。因此,額外的資料安全層和可配置性可由管理員選擇。
舉例來說,在描繪的實施例中,每一FPGA 310或FPGA 320使用PCIe交換機300連接到4個NVMe SSD 330到NVMe SSD 344。另外,FPGA 310、FPGA 320還經由PCIe交換機300彼此連 接。因此,當FPGA 310、FPGA 320操作RAID或擦除代碼控制器315、RAID或擦除代碼控制器325時,RAID或擦除代碼配置可併入有額外FPGA和其相關驅動器,且進而提供進一步配置靈活性。舉例來說,在各種實施例中,第一FPGA 310可與一或多個FPGA,如第二FPGA 320配對。額外FPGA(例如,FPGA 320)和其對應的驅動器(例如,NVMe SSD 338到NVMe SSD 344)可用於資料複製(例如,資料鏡像處理),從而提供額外資料安全層。在各種實施例中,可使用多個FPGA和其對應驅動器來實施混合式RAID或巢式RAID配置,如RAID 10、RAID 50等。
圖4描繪根據各種實施例的具有多個PCIe交換機的實例儲存系統。
參考圖4,在各種實施例中,儲存系統400的每一FPGA 410、FPGA 420可包含交換機414、交換機424(例如,PCIe交換機)。在各種實施例中,耦合到資料保護控制器412、資料保護控制器422(例如,RAID或擦除代碼控制器)的PCIe交換機414、PCIe交換機424提供額外配置靈活性。舉例來說,在描繪的實施例中,PCIe交換機414、PCIe交換機424的使用允許更多驅動器邏輯地連接到每一FPGA 410、FPGA 420。舉例來說,在描繪的實施例中,FPGA 410或FPGA 420中的每一個連接到8個NVMe SSD 430到NVMe SSD 460。在其它實施例中,FPGA 410、FPGA 420可邏輯地連接到更多或更少的驅動器。此外,如上文所論述,可使用兩個或大於兩個FPGA 410、FPGA 420以及其相關驅動器430 到驅動器460來採用混合式RAID配置。
圖5描繪根據各種實施例的具有多層交換機的實例儲存系統。
參看圖5,在各種實施例中,儲存系統500可包含通過多個PCIe交換機514、PCIe交換機520、PCIe交換機530連接到多個NVMe SSD 540到NVMe SSD 570的單個FPGA 510。在各種實施例中,FPGA 510可包含資料保護控制器512且邏輯地連接到第一PCIe交換機514,所述資料保護控制器512配置成執行RAID和/或擦除代碼操作。第一PCIe交換機514(例如,在第一層處)可將FPGA 510連接到兩個或大於兩個下游PCIe交換機520、下游PCIe交換機530(例如,在第二層處),所述下游PCIe交換機520、530中的每一個連接到多個SSD 540到SSD 570的一部分。在所描繪的實例中,第一下游PCIe交換機520可邏輯地連接到8個SSD 540到SSD 554,且第二下游PCIe交換機530可邏輯地連接到8個SSD 556到SSD 570。額外PCIe交換機的使用允許進一步配置選項以用於保護儲存在多個NVMe SSD 540到NVMe SSD 570上的資料。如上文參考圖4所論述,多個PCIe交換機可用於實施混合式RAID配置。舉例來說,RAID 10可通過使第一下游交換機520下的驅動器在每個驅動器之間實施RAID 1(鏡像處理)且將這些驅動器分條到連接到第二下游交換機530的驅動器上來實施。在另一設置中,第一下游交換機520和第二下游交換機530可實施RAID 5,且其可使用RAID 0來分條以形成RAID 50。應 理解,這些RAID實施方案用作實例,且任何混合式RAID實施方案可使用適當數目的驅動器和交換機來配置。
圖6描繪根據各種實施例的執行系統初始化的方法。
參考圖6以及圖1A和圖1B,在各種實施例中,BMC 130可配置成執行由儲存系統100A/100B採用的資料保護方案的初始設置。在各種實施例中,儲存系統100A/100B可初始化以供管理員使用。舉例來說,儲存系統100A/100B可以是已申請用於用戶端和需求配置的雲儲存伺服器。在各種實施例中,BMC 130根據RAID或擦除代碼配置來對SSD進行初始化和預處理(S600)(如將參考圖7所論述)。舉例來說,如上文所論述,BMC 130可具有硬編碼路徑或可配置設置,在所述硬編碼路徑中還應用特定資料保護方案。基於BMC 130提供的配置,資料保護控制器145A/B、資料保護控制器155A/B表示滿足指定資料保護方案要求的資料驅動器和同位(或擦除代碼)驅動器(S610)。在各種實施例中,資料保護控制器145A/B、資料保護控制器155A/B可使具有不同容量的任何附接的資料驅動器或同位驅動器歸一化(S620)。控制器145A/B、控制器155A/B可隨後使同位驅動器對任何主體不可見(S630)(例如,其從可見驅動器的總共容量去除)。
圖7描繪根據各種實施例的預處理SSD的方法。
參考7且繼續參考圖1A和圖1B,在各種實施例中,在初始化系統100A/B後,系統可通過擦除所有儲存在其上的內容來預處理驅動器。舉例來說,在雲計算應用中,可存在多種系統使 用者,所述系統使用者各自具有儲存在所附接驅動器上的私人資料。在儲存伺服器可由另一用戶使用前,任何先前的使用者資料應安全地刪除。在常規系統中,擦除來自遠端主機的大驅動器的資料可能是極長時間的處理,因為其通常涉及每一儲存位元上寫入多次。由於驅動器容量增大,因此這一操作隨後在期間也增大。在各種實施例中,儲存系統100A/B可通過使用BMC 130和FPGA 140、FPGA 150分佈任務來加快資料擦除處理。舉例來說,在將驅動器指派到新用戶前,可在BMC 130處從管理員接收擦除命令(S700)。在各種實施例中,擦除命令可用於特定名字空間或範圍。BMC 130可隨後確定哪些FPGA與所述命令相關聯(例如,分攤到發送命令的主機的驅動器),且使用連接到每一FPGA 140、FPGA 150的低速匯流排來廣播命令(S710)。擦除命令隨後轉發到目標驅動器中的每一個(S720)。每一驅動器處理所述命令,且擦除其內容(例如,先前使用者資料)(S730)。因此,以並行方式執行擦除命令,且可大大減小總共執行時間。另外,分流對BMC/FPGA的擦除允許系統中央處理器(CPU)有空閒處理其它任務。此外,使用資料路徑(例如,BMC路徑)形成秘密頻道以用於維護操作。
圖8描繪根據各種實施例的執行I/O的生成同位的方法。
參考圖8,在各種實施例中,儲存系統組態成根據資料保護方案來生成同位檢查位元。在系統初始化後,系統可以一些配置步驟開始。舉例來說,每一附接驅動器(例如,驅動器160 到驅動器174)可包含獨特成員識別,如來自資料保護控制器的槽號或指派的識別號(例如,資料保護控制器145A/B)(S800)。驅動器可隨後可用於一般事務(S810)。舉例來說,使用者或應用程式可使用BMC來存取系統且選擇資料保護方案類型,且驅動器可指定為資料驅動器或同位驅動器(例如,通過資料保護控制器145A/B)。在指定為同位驅動器後,驅動器可不再對主機或上層資料保護控制器可見(例如,在如圖5中所示的分層控制器情況下)。在初始化後,驅動器可隨後由主機發現,且I/O事務可開始(S820)。主機可隨後開始將資料寫入到驅動器,且在一些實施例中,驅動器可配置成識別將用於生成同位值的係數(S830)。驅動器可隨後使用所述係數以生成δ乘積以供一或多個同位驅動器使用(S840)。舉例來說,驅動器可執行目標邏輯塊位址(logical block address;LBA)的讀取,使讀取資料與新資料進行異或(XOR),乘以係數,將新資料寫入到LBA,且接著利用LBA資訊將δ乘積轉移到同位驅動器。同位驅動器可接收δ乘積資訊、讀取LBA資料、使δ乘積資訊與讀取資訊進行XOR,且寫入資訊,且將所述提交發送到對應同位驅動器(S850)。在同位完成後(S860),可向主機報告所述事務作已完成(S870)。
圖9描繪根據各種實施例的在驅動器失效後執行熱去除和增加的方法。
參考圖9,在各種實施例中,儲存系統可配置成使用BMC和資料保護控制器從失效恢復(例如,圖1的BMC 130和資 料保護控制器145A/B、資料保護控制器155A/B)。在各種實施例中,BMC 130可檢測何時驅動器失效或去除(S900)。在各種實施例中,BMC 130可以若干方式檢測驅動器的失效或去除。舉例來說,在一個實施例中,所有驅動器具有經由中間板連接到BMC 130的存在接腳。因此,當以物理方式從主機殼去除驅動器時,BMC 130檢測到去除。在各種實施例中,BMC 130還週期性地監測每一附接驅動器的穩定性。當BMC 130檢測到驅動器報告的任何嚴重錯誤情況時,BMC 130可判定停止所述SSD服務。在任一情況下,BMC 130向FPGA 140、FPGA 150中的控制器報告發生故障驅動器的位置(例如,對應物理槽號)。在另一實施例中,FPGA 140、FPGA 150能夠支持熱外掛程式,其中通過PCIe邊帶訊號連接所有驅動器。因此,FPGA 140、FPGA 150可檢測某些錯誤情況,包含當拔出或插入驅動器時,或PCIe鏈路到驅動器不再可操作。在各種實施例中,在此類錯誤情況中,FPGA 140、FPGA 150中的控制器可隔離失效驅動器,或BMC 130可通過停用失效驅動器的功率來達到同樣目的且緊接著開始重建驅動器。
在各種實施例中,當驅動器失效時,資料保護控制器負責維持I/O請求的性能。因此,資料保護控制器可使用一或多個同位驅動器或擦除代碼驅動器以重建資料且執行正常I/O直到提供新驅動器為止(S910)。在各種實施例中,當插入新驅動器時,BMC 130可再次介入且將新驅動器配置為一或多個群組的部分或開始重建操作(S920)。控制器可隨後開始重建(S930)。因此, 這一系統中的恢復路徑配置成在資料存取路徑中提供較低時延的同時提供盡可能最小的性能影響。
前述內容說明實例實施例,且不應理解為其限制。儘管已描述幾個實例實施例,但本領域技術人員將容易瞭解,在實質上不脫離實例實施例的新穎教示和優勢的情況下,對實例實施例的許多修改是可能的。相應地,所有這類修改意圖包含在如所附權利要求書中限定的實例實施例的範圍內。在權利要求書中,裝置加功能條款(means-plus-function clause)打算涵蓋在本文中描述為執行所列舉的功能的結構,且不僅涵蓋結構等效物而且涵蓋等效結構。因此,應理解,前述內容說明實例實施例且不應理解為受限於所揭露的特定實施例,且對所揭露的實例實施例以及其它實例實施例的修改意圖包含在所附權利要求書的範圍內。本發明概念由以上權利要求書限定,其中權利要求書的等效物將包含在其中。
100A:儲存系統
110:處理器
120:記憶體
130:主機板管理控制單元
140、150:FPGA
145A、155A:資料保護控制器/RAID控制器
160~174:NVMe SSD

Claims (20)

  1. 一種儲存系統,包括:處理器;第一組儲存裝置;兩個或更多個周邊元件連接快速槽;以及第一現場可程式化閘陣列,經由處理器連接件連接到所述處理器,並且連接到所述第一組儲存裝置,所述處理器連接件包括第一匯流排,所述第一匯流排皆配置成將資料傳輸到所述第一現場可程式化閘陣列且傳輸來自所述第一現場可程式化閘陣列的資料以及配置成傳輸由所述第一現場可程式化閘陣列執行的命令,其中所述第一現場可程式化閘陣列包括第一資料保護控制器,所述第一資料保護控制器配置成進行以下操作:根據資料保護配置來管理對所述第一組儲存裝置的輸入/輸出請求以及來自所述第一組儲存裝置器的輸入/輸出請求,所述資料保護配置採用具有所述兩個或更多個周邊元件連接快速槽中空閒的一者或多者的資料保護方案;根據所述資料保護配置來生成一個或多個同位檢查位元;以及將所述一個或多個同位檢查位元儲存在來自所述第一組儲存裝置的至少同位儲存裝置上。
  2. 如申請專利範圍第1項所述的儲存系統,更包括主機板管理控制器,通過所述第一匯流排連接到所述第一現場可程式化閘陣列,其中所述主機板管理控制器配置成提供所述資料保護配置。
  3. 如申請專利範圍第1項所述的儲存系統,更包括主機板管理控制器,通過包括低速匯流排的第二匯流排連接到所述第一現場可程式化閘陣列,其中所述主機板管理控制器配置成提供所述資料保護配置,以及其中所述第一匯流排包括高速匯流排。
  4. 如申請專利範圍第1項所述的儲存系統,更包括第一交換機(switch),所述第一交換機將所述第一現場可程式化閘陣列連接到所述第一組儲存裝置。
  5. 如申請專利範圍第1項所述的儲存系統,更包括:第二組儲存裝置;以及第二現場可程式化閘陣列,通過第二交換機連接到所述第二組儲存裝置,其中:所述第二現場可程式化閘陣列包括第二資料保護控制器;以及所述第一現場可程式化閘陣列以及所述第二現場可程式化閘陣列由第一交換機與所述第二交換機之間的連接件連接。
  6. 如申請專利範圍第5項所述的儲存系統,其中所述第一資料保護控制器經由所述第一交換機以及所述第二交換機將複製資料發送到所述第二資料保護控制器。
  7. 如申請專利範圍第1項所述的儲存系統,其中所述第一資料保護控制器包括獨立磁碟冗餘陣列控制器。
  8. 如申請專利範圍第1項所述的儲存系統,其中所述第一資料保護控制器包括擦除代碼控制器。
  9. 一種儲存系統,包括:處理器;第一組儲存裝置;第二組儲存裝置;兩個或更多個周邊元件連接快速槽;第一現場可程式化閘陣列,經由處理器連接件連接到所述處理器,並且連接到所述第一組儲存裝置,所述處理器連接件包括匯流排,所述匯流排皆配置成將資料傳輸到所述第一現場可程式化閘陣列且傳輸來自所述第一現場可程式化閘陣列的資料以及配置成傳輸由所述第一現場可程式化閘陣列執行的命令,其中所述第一現場可程式化閘陣列包括第一獨立磁碟冗餘陣列控制器;以及第二現場可程式化閘陣列,連接到所述第二組儲存裝置,其中所述第二現場可程式化閘陣列包括第二獨立磁碟冗餘陣列控制器,其中所述第一現場可程式化閘陣列以及所述第二現場可程式 化閘陣列配置成:根據資料保護配置來管理對所述第一組儲存裝置以及所述第二組儲存裝置的輸入/輸出請求以及來自所述第一組儲存裝置以及所述第二組儲存裝置的輸入/輸出請求,所述資料保護配置採用具有所述兩個或更多個周邊元件連接快速槽中空閒的一者或多者的資料保護方案;根據所述資料保護配置來生成用於所儲存資料的一個或多個同位檢查位元;將所述一個或多個同位檢查位元儲存在來自所述第一組儲存裝置的至少一個同位儲存裝置上;以及將所述第一組儲存裝置複製在所述第二組儲存裝置上。
  10. 如申請專利範圍第9項所述的儲存系統,更包括主機板管理控制器,通過所述匯流排連接到所述第一現場可程式化閘陣列以及所述第二現場可程式化閘陣列,其中所述主機板管理控制器配置成提供所述資料保護配置,以及其中所述第二現場可程式化閘陣列通過所述匯流排連接到所述處理器。
  11. 如申請專利範圍第10項所述的儲存系統,其中所述匯流排包括周邊元件連接快速匯流排。
  12. 如申請專利範圍第9項所述的儲存系統,更包括:第一周邊元件連接快速交換機,將所述第一現場可程式化閘 陣列連接到所述第一組儲存裝置;以及第二周邊元件連接快速交換機,將所述第二現場可程式化閘陣列連接到所述第二組儲存裝置,其中所述第一周邊元件連接快速交換機以及所述第二周邊元件連接快速交換機將所述第一現場可程式化閘陣列連接到所述第二現場可程式化閘陣列。
  13. 如申請專利範圍第9項所述的儲存系統,其中所述資料保護配置包括混合式獨立磁碟冗餘陣列配置。
  14. 一種儲存系統,包括:第一組儲存裝置;兩個或更多個周邊元件連接快速槽;第一現場可程式化閘陣列,連接到所述第一組儲存裝置;處理器,通過第一匯流排連接到所述第一現場可程式化閘陣列,所述第一匯流排皆配置成將資料傳輸到所述第一現場可程式化閘陣列且傳輸來自所述第一現場可程式化閘陣列的資料以及配置成傳輸由所述第一現場可程式化閘陣列執行的命令;以及主機板管理控制器,通過第二匯流排連接到所述第一現場可程式化閘陣列,以及配置成向所述第一現場可程式化閘陣列提供資料保護配置,其中所述第一現場可程式化閘陣列包括第一資料保護控制器,所述第一資料保護控制器配置成進行以下操作:根據所述資料保護配置來管理對所述第一組儲存裝置的輸入/輸出請求以及來自所述第一組儲存裝置的輸入/輸出請求,所述資料保護配置採用具有所述兩個或更多個周邊元件連 接快速槽中空閒的一者或多者的資料保護方案;根據所述資料保護配置來生成用於儲存於所述第一組儲存裝置中的資料的一個或多個同位檢查位元;以及將所述一個或多個同位檢查位元儲存在來自所述第一組儲存裝置的至少一個同位儲存裝置上。
  15. 如申請專利範圍第14項所述的儲存系統,其中所述第一資料保護控制器包括獨立磁碟冗餘陣列控制器。
  16. 如申請專利範圍第15項所述的儲存系統,其中所述資料保護配置包括獨立磁碟冗餘陣列1配置、獨立磁碟冗餘陣列5配置或獨立磁碟冗餘陣列6配置中的至少一個。
  17. 如申請專利範圍第14項所述的儲存系統,其中所述第一資料保護控制器包括擦除編碼控制器,所述擦除編碼控制器配置成對所述第一組儲存裝置的第一部分上的資料進行分條以及根據所述第一組儲存裝置的第二部分上的資料來生成擦除代碼。
  18. 如申請專利範圍第14項所述的儲存系統,更包括:第二組儲存裝置;以及第二現場可程式化閘陣列,通過所述第一匯流排連接到所述處理器,通過所述第二匯流排連接到所述主機板管理控制器,以及連接到所述第二組儲存裝置,其中所述第二現場可程式化閘陣列包括第二資料保護控制器,所述第二資料保護控制器配置成進行以下操作:根據所述資料保護配置來管理對所述第二組儲存裝置的 輸入/輸出請求以及來自所述第二組儲存裝置的輸入/輸出請求;以及根據所述資料保護配置來生成用於儲存於所述第二組儲存裝置中的資料的一個或多個同位檢查位元;以及將所述一個或多個同位檢查位元儲存在來自所述第二組儲存裝置的至少一個同位儲存裝置上。
  19. 如申請專利範圍第14項所述的儲存系統,更包括:第二組儲存裝置;以及第一周邊元件連接快速交換機,將所述第一現場可程式化閘陣列連接到第一下游周邊元件連接快速交換機以及第二下游周邊元件連接快速交換機,其中:所述第一下游周邊元件連接快速交換機連接到所述第一組儲存裝置,用以經由所述第一周邊元件連接快速交換機將所述第一組儲存裝置連接到所述第一現場可程式化閘陣列;以及所述第二下游周邊元件連接快速交換機連接到所述第二組儲存裝置,用以經由所述第一周邊元件連接快速交換機將所述第二組儲存裝置連接到所述第一現場可程式化閘陣列。
  20. 如申請專利範圍第14項所述的儲存系統,其中所述資料保護配置包括混合式獨立磁碟冗餘陣列配置。
TW107145768A 2018-03-05 2018-12-18 儲存系統 TWI765129B (zh)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US201862638722P 2018-03-05 2018-03-05
US62/638,722 2018-03-05
US201862641252P 2018-03-09 2018-03-09
US62/641,252 2018-03-09
US15/981,801 US10649940B2 (en) 2018-03-05 2018-05-16 Modular system architecture for supporting multiple solid-state drives
US15/981,801 2018-05-16
US16/049,492 2018-07-30
US16/049,492 US11157356B2 (en) 2018-03-05 2018-07-30 System and method for supporting data protection across FPGA SSDs

Publications (2)

Publication Number Publication Date
TW201939506A TW201939506A (zh) 2019-10-01
TWI765129B true TWI765129B (zh) 2022-05-21

Family

ID=67768592

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107145768A TWI765129B (zh) 2018-03-05 2018-12-18 儲存系統

Country Status (5)

Country Link
US (1) US11157356B2 (zh)
JP (1) JP7063833B2 (zh)
KR (1) KR102624605B1 (zh)
CN (1) CN110232001B (zh)
TW (1) TWI765129B (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10990554B2 (en) 2018-03-02 2021-04-27 Samsung Electronics Co., Ltd. Mechanism to identify FPGA and SSD pairing in a multi-device environment
US12481612B2 (en) 2018-03-02 2025-11-25 Samsung Electronics Co., Ltd. Mechanism to identify FPGA and SSD pairing in a multi-device environment
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
US12505053B2 (en) * 2018-03-02 2025-12-23 Samsung Electronics Co., Ltd. Method for supporting erasure code data protection with embedded PCIe switch inside FPGA+SSD
US12271322B2 (en) 2019-06-24 2025-04-08 Samsung Electronics Co., Ltd. Multi-function flexible computational storage device
JP7354685B2 (ja) * 2019-08-24 2023-10-03 株式会社セガ ゲーム装置及びプログラム
KR102762905B1 (ko) 2020-01-23 2025-02-10 삼성전자주식회사 호스트로부터 오프로드된 작업을 수행하는 스토리지 장치 및 스토리지 시스템
EP3961393A1 (en) * 2020-08-28 2022-03-02 Tata Consultancy Services Limited Multiple field programmable gate array (fpga) based multi-legged order transaction processing system and method thereof
CN115248656A (zh) * 2021-04-25 2022-10-28 联想企业解决方案(新加坡)有限公司 自动配置存储驱动器阵列以最小化过热的方法和设备
WO2022238325A1 (en) * 2021-05-09 2022-11-17 Technische Universität Darmstadt Mitigating fpga related risks
US12072966B2 (en) * 2021-07-08 2024-08-27 Dell Products, L.P. System and method for device authentication using a baseboard management controller (BMC)
US12293097B2 (en) 2021-09-24 2025-05-06 Samsung Electronics Co., Ltd. Systems and methods for near-storage processing in solid state drives
KR102697634B1 (ko) * 2022-06-07 2024-08-23 삼성전자주식회사 스토리지 장치 및 전자 시스템
KR20240001414A (ko) * 2022-06-27 2024-01-03 삼성전자주식회사 복수의 ssd를 포함하는 스토리지 시스템 및 그것의 운용 방법
CN116136748B (zh) * 2023-04-17 2023-06-27 中勍科技股份有限公司 基于FPGA实现的高带宽NVMe SSD读写系统与方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI550629B (zh) * 2013-02-21 2016-09-21 愛德萬測試股份有限公司 具有多個用以獨立測試多個受測試器件之基於fpga之硬體加速器區塊的測試架構
US20170160784A1 (en) * 2014-09-04 2017-06-08 Hewlett Packard Enterprise Development Lp Storage system bandwidth determination
TW201730892A (zh) * 2015-12-01 2017-09-01 希耐克斯實驗室公司 邏輯性移除非揮發性記憶體儲存裝置缺陷頁之裝置及方法

Family Cites Families (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7200758B2 (en) * 2002-10-09 2007-04-03 Intel Corporation Encapsulation of a TCPA trusted platform module functionality within a server management coprocessor subsystem
US7180732B2 (en) * 2002-11-06 2007-02-20 Disk Dynamix Mounting apparatus for storage devices
US20040177218A1 (en) * 2002-11-06 2004-09-09 Meehan Thomas F. Multiple level raid architecture
US8249097B2 (en) 2003-07-14 2012-08-21 Broadcom Corporation Method and system for an integrated host PCI I/O bridge and dual port gigabit Ethernet controller
US7363395B2 (en) 2003-12-31 2008-04-22 Intel Corporation Intermediate device capable of communicating using different communication protocols
US7110301B2 (en) 2004-05-07 2006-09-19 Samsung Electronics Co., Ltd. Non-volatile semiconductor memory device and multi-block erase method thereof
US7617361B2 (en) * 2006-03-29 2009-11-10 International Business Machines Corporation Configureable redundant array of independent disks
CN101622594B (zh) 2006-12-06 2013-03-13 弗森-艾奥公司 使用空数据令牌指令管理来自于请求设备的数据的装置、系统和方法
US8060696B2 (en) * 2007-04-27 2011-11-15 Siemens Medical Solutions Usa, Inc. Positron emission tomography event stream buffering
US8020074B2 (en) * 2007-08-24 2011-09-13 Datadirect Networks, Inc. Method for auto-correction of errors in a RAID memory system
US8195978B2 (en) * 2008-05-16 2012-06-05 Fusion-IO. Inc. Apparatus, system, and method for detecting and replacing failed data storage
US8966476B2 (en) * 2008-05-28 2015-02-24 Hewlett-Packard Development Company, L.P. Providing object-level input/output requests between virtual machines to access a storage subsystem
US8219750B2 (en) * 2008-06-30 2012-07-10 Pivot3 Method and system for execution of applications in conjunction with distributed RAID
US8045811B2 (en) * 2008-11-26 2011-10-25 Samplify Systems, Inc. Compression and storage of projection data in a computed tomography system
JP4930555B2 (ja) 2009-07-09 2012-05-16 富士通株式会社 制御装置、制御方法およびストレージシステム
US20110161560A1 (en) 2009-12-31 2011-06-30 Hutchison Neil D Erase command caching to improve erase performance on flash memory
JP5488346B2 (ja) 2010-08-30 2014-05-14 富士通株式会社 ストレージシステム、制御装置および制御方法
JP2012098875A (ja) * 2010-11-01 2012-05-24 Sharp Corp データ転送回路及びデータ転送システム
US8645746B2 (en) 2010-12-03 2014-02-04 International Business Machines Corporation Cable redundancy and failover for multi-lane PCI express IO interconnections
US8560772B1 (en) * 2010-12-29 2013-10-15 Datadirect Networks, Inc. System and method for data migration between high-performance computing architectures and data storage devices
US8700951B1 (en) * 2011-03-09 2014-04-15 Western Digital Technologies, Inc. System and method for improving a data redundancy scheme in a solid state subsystem with additional metadata
US8745294B2 (en) * 2011-04-01 2014-06-03 Taejin Info Tech Co., Ltd. Dynamic random access memory for a semiconductor storage device-based system
US20120278527A1 (en) * 2011-04-26 2012-11-01 Byungcheol Cho System architecture based on hybrid raid storage
US9417821B2 (en) 2011-09-30 2016-08-16 Intel Corporation Presentation of direct accessed storage under a logical drive model
US9335928B2 (en) * 2011-10-01 2016-05-10 International Business Machines Corporation Using unused portion of the storage space of physical storage devices configured as a RAID
JP5492237B2 (ja) * 2012-03-15 2014-05-14 株式会社東芝 ビデオ配信サーバ、ssd制御方法
CN102662608B (zh) * 2012-03-30 2015-11-25 华为技术有限公司 一种降低读延时的方法及装置
US9223693B2 (en) 2012-12-31 2015-12-29 Sandisk Technologies Inc. Memory system having an unequal number of memory die on different control channels
US9304902B2 (en) 2013-03-15 2016-04-05 Saratoga Speed, Inc. Network storage system using flash storage
JP6030998B2 (ja) * 2013-06-05 2016-11-24 株式会社日立製作所 情報処理システム
KR20150047785A (ko) 2013-10-25 2015-05-06 삼성전자주식회사 서버 시스템 및 스토리지 시스템
CN105981004B (zh) 2013-11-27 2020-08-21 英特尔公司 用于服务器平台架构的方法及设备
US8924776B1 (en) * 2013-12-04 2014-12-30 DSSD, Inc. Method and system for calculating parity values for multi-dimensional raid
JP2015114808A (ja) 2013-12-11 2015-06-22 富士通株式会社 ストレージ制御装置、制御方法、及びプログラム
CN103699343A (zh) * 2013-12-25 2014-04-02 华为技术有限公司 独立磁盘冗余阵列的确定方法及装置
US8949692B1 (en) * 2014-01-23 2015-02-03 DSSD, Inc. Method and system for service-aware parity placement in a storage system
US9798631B2 (en) * 2014-02-04 2017-10-24 Microsoft Technology Licensing, Llc Block storage by decoupling ordering from durability
US9887008B2 (en) 2014-03-10 2018-02-06 Futurewei Technologies, Inc. DDR4-SSD dual-port DIMM device
JP2015215675A (ja) * 2014-05-08 2015-12-03 富士通株式会社 制御装置、制御方法、及び制御プログラム
US9501110B2 (en) 2014-06-05 2016-11-22 Liqid Inc. Adjustable data storage drive module carrier assembly
US20160191665A1 (en) * 2014-12-31 2016-06-30 Samsung Electronics Co., Ltd. Computing system with distributed compute-enabled storage group and method of operation thereof
US20160259754A1 (en) * 2015-03-02 2016-09-08 Samsung Electronics Co., Ltd. Hard disk drive form factor solid state drive multi-card adapter
JP2017041109A (ja) * 2015-08-20 2017-02-23 富士通株式会社 管理装置,コンピュータおよび管理プログラム
US20170102952A1 (en) 2015-10-07 2017-04-13 Dell Products, L.P. Accessing data stored in a remote target using a baseboard management controler (bmc) independently of the status of the remote target's operating system (os)
KR102385138B1 (ko) * 2015-10-08 2022-04-12 삼성전자주식회사 정정 불가능한 ecc 오류를 갖는 데이터를 복구하도록 구성되는 raid 컨트롤러 장치 및 스토리지 장치
KR102429906B1 (ko) 2015-10-13 2022-08-05 삼성전자주식회사 스토리지 장치, 상기 스토리지 장치와 통신하는 호스트 및 상기 스토리지 장치를 포함하는 전자 장치
US10069718B2 (en) 2015-11-26 2018-09-04 Dell Products, L.P. Switching of host network traffic through baseboard management controller (BMC)
US10275356B2 (en) 2015-12-11 2019-04-30 Quanta Computer Inc. Component carrier with converter board
US20170228328A1 (en) 2016-02-04 2017-08-10 CNEXLABS, Inc. Method and apparatus for providing small form-factor pluggable (“sfp”) non-volatile memory (“nvm”) storage devices
US10007579B2 (en) * 2016-03-11 2018-06-26 Microsoft Technology Licensing, Llc Memory backup management in computing systems
US9952634B2 (en) 2016-03-28 2018-04-24 Lenovo (Singapore) Pte. Ltd. Interfacing with multiple components connected to a printed circuit board
US10467170B2 (en) 2016-04-18 2019-11-05 Hewlett Packard Enterprise Development Lp Storage array including a bridge module interconnect to provide bridge connections to different protocol bridge protocol modules
US10140181B1 (en) * 2016-05-19 2018-11-27 Vexata, Inc. Endurance aware raid scheme for flash based SSDS with FPGA optimized implementation
US20170364295A1 (en) 2016-06-15 2017-12-21 Cnex Labs, Inc Method and Apparatus for Providing Memory Storage Using Small Form-Factor Pluggable ("SFP") Auxiliary Plug
US10289588B2 (en) 2016-06-30 2019-05-14 Quanta Computer Inc. Riser card
US10387353B2 (en) 2016-07-26 2019-08-20 Samsung Electronics Co., Ltd. System architecture for supporting active pass-through board for multi-mode NMVE over fabrics devices
US10200309B2 (en) * 2016-08-12 2019-02-05 Samsung Electronics Co., Ltd. Two-headed switch including a drive bay for fabric-attached devices
US10423487B2 (en) * 2016-08-19 2019-09-24 Samsung Electronics Co., Ltd. Data protection offloads using SSD peering
US20180082066A1 (en) 2016-09-16 2018-03-22 Microsoft Technology Licensing, Llc Secure data erasure in hyperscale computing systems
US10613974B2 (en) * 2016-10-04 2020-04-07 Pure Storage, Inc. Peer-to-peer non-volatile random-access memory
US20180157428A1 (en) * 2016-12-01 2018-06-07 Alibaba Group Holding Limited Data protection of flash storage devices during power loss
US10275180B2 (en) * 2017-05-08 2019-04-30 Samsung Electronics Co., Ltd. Ethernet SSD system including storage offload engine (SoE) controller and ethernet switch
US10417092B2 (en) * 2017-09-07 2019-09-17 Pure Storage, Inc. Incremental RAID stripe update parity calculation
US11593036B2 (en) * 2017-06-12 2023-02-28 Pure Storage, Inc. Staging data within a unified storage element
US10402266B1 (en) * 2017-07-31 2019-09-03 Pure Storage, Inc. Redundant array of independent disks in a direct-mapped flash storage system
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
US10719462B2 (en) * 2018-09-25 2020-07-21 Intel Corporation Technologies for computational storage via offload kernel extensions
US20190042232A1 (en) * 2018-09-28 2019-02-07 Intel Corporation Technologies for automatic compilation of storage offloads

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI550629B (zh) * 2013-02-21 2016-09-21 愛德萬測試股份有限公司 具有多個用以獨立測試多個受測試器件之基於fpga之硬體加速器區塊的測試架構
US20170160784A1 (en) * 2014-09-04 2017-06-08 Hewlett Packard Enterprise Development Lp Storage system bandwidth determination
TW201730892A (zh) * 2015-12-01 2017-09-01 希耐克斯實驗室公司 邏輯性移除非揮發性記憶體儲存裝置缺陷頁之裝置及方法

Also Published As

Publication number Publication date
TW201939506A (zh) 2019-10-01
CN110232001A (zh) 2019-09-13
KR20190105491A (ko) 2019-09-17
US20190272215A1 (en) 2019-09-05
US11157356B2 (en) 2021-10-26
KR102624605B1 (ko) 2024-01-12
JP2019153308A (ja) 2019-09-12
JP7063833B2 (ja) 2022-05-09
CN110232001B (zh) 2024-12-17

Similar Documents

Publication Publication Date Title
TWI765129B (zh) 儲存系統
US6904556B2 (en) Systems and methods which utilize parity sets
US9229855B2 (en) Apparatus and method for routing information in a non-volatile memory-based storage device
US11157200B2 (en) Communicating over portions of a communication medium
US9645940B2 (en) Apparatus and method for accessing a non-volatile memory blade using multiple controllers in a non-volatile memory based storage device
US12032443B2 (en) Shadow DRAM with CRC+RAID architecture, system and method for high RAS feature in a CXL drive
CN101548271B (zh) 多个存储装置中的数据冗余
CN106557143B (zh) 用于数据存储设备的装置和方法
US11157204B2 (en) Method of NVMe over fabric RAID implementation for read command execution
CN101690068A (zh) 用于在多个独立主机之间共享的设备的装置、系统、以及方法
CN105472047A (zh) 存储系统
US12050516B2 (en) Reliability coding with reduced network traffic
CN111045597A (zh) 计算机系统
US9547616B2 (en) High bandwidth symmetrical storage controller
CN116486891A (zh) 用于cxl驱动器中的高ras特征的具有crc+raid架构的影子dram、系统及方法
KR101824671B1 (ko) 비휘발성 메모리 기반 저장 디바이스에서 정보를 라우팅하는 장치 및 방법
CN115729470A (zh) 一种数据写入方法及相关设备
CN117795466B (zh) 使用子命令的存取请求管理
US11467930B2 (en) Distributed failover of a back-end storage director
Luo et al. Solid-state drive controller with embedded RAID functions
Birk et al. The TPT-RAID Architecture for Box-Fault Tolerant Storage Systems