TWI636366B - 資料冗餘的處理方法及其相關電腦系統 - Google Patents

資料冗餘的處理方法及其相關電腦系統 Download PDF

Info

Publication number
TWI636366B
TWI636366B TW106140456A TW106140456A TWI636366B TW I636366 B TWI636366 B TW I636366B TW 106140456 A TW106140456 A TW 106140456A TW 106140456 A TW106140456 A TW 106140456A TW I636366 B TWI636366 B TW I636366B
Authority
TW
Taiwan
Prior art keywords
data
memory
controller
network interface
pcie
Prior art date
Application number
TW106140456A
Other languages
English (en)
Other versions
TW201926056A (zh
Inventor
尤焙麟
徐嘉良
徐鈵琨
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
Application filed by 緯穎科技服務股份有限公司 filed Critical 緯穎科技服務股份有限公司
Priority to TW106140456A priority Critical patent/TWI636366B/zh
Priority to CN201711210915.5A priority patent/CN109815170B/zh
Priority to US15/951,117 priority patent/US10838895B2/en
Application granted granted Critical
Publication of TWI636366B publication Critical patent/TWI636366B/zh
Publication of TW201926056A publication Critical patent/TW201926056A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/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; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • 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/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • 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
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • 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)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Systems (AREA)

Abstract

一種資料冗餘的處理方法,用於一非揮發性記憶體,以透過一光纖通道自一主機端傳送一資料到一遠端直接記憶體存取網路介面控制器及一簡單硬碟綑綁端,該處理方法包含有虛擬化該遠端直接記憶體存取網路介面控制器的一現場可程式化陣列為一動態隨機存取記憶體,並將該資料儲存於該動態隨機存取記憶體;複製或分割該資料成複數個資料,並由該現場可程式化陣列回報對應於該複數個資料的複數個虛擬記憶體位址至該遠端直接記憶體存取網路介面控制器;以及根據該複數個虛擬記憶體位址,讀取該複數個資料並傳送至對應的複數個非揮發性記憶體控制器。

Description

資料冗餘的處理方法及其相關電腦系統
本發明係指一種資料冗餘的處理方法及其相關電腦系統,尤指一種用於非揮發性記憶體(Non-Volatile Memory express,NVMe)以透過光纖通道傳送資料的資料冗餘的處理方法及其相關電腦系統。
隨著科技的進步與發明,計算、儲存與網路已成為現代資訊科技領域的基礎架構核心。相較於傳統的網路傳輸,遠端直接記憶體存取(Remote Direct Memory Access,RDMA)透過網路在兩個端點的應用軟體之間直接傳遞資料,並且無需操作系統及中央處理器的作業系統的資源參與,以實現端點之間的高通量、低延遲的網路通訊方式。並且,快閃記憶體及新一代相變化記憶體(Phase Change Memory,PCM)固態儲存的固態硬碟(Solid State Disk,SSD)於資料處理系統廣泛的使用。然而,目前的資料處理系統所使用的簡單硬碟綑綁(Just a Bunch of Flash,JBOF)都是分配單一或多個運算伺服器使用一或多個完整的SSD,當有高可用性(High Availability,HA)或資料複製(Data Replication)的需求時,卻缺乏相關硬體裝置來執行。
因此,如何有效發揮儲存資源的功效,並解決資料冗餘的處理,便成為此技術領域的重要課題。
因此,本發明提供一種NVMe over Fabric的資料冗餘處理方法及相關電腦系統,以提供高效率及低延遲的優勢,並發揮儲存資源的功效。
本發明揭露一種資料冗餘的處理方法,用於一非揮發性記憶體(Non-Volatile Memory express,NVMe),以透過一光纖通道自一主機(Host)端傳送一資料到一RDMA網路介面控制器(Remote-direct-memory-access-enable Network Interface Controller,RNIC)及一簡單硬碟綑綁(Just a Bunch of Flash,JBOF)端,該處理方法包含虛擬化該RDMA網路介面控制器的一現場可程式化陣列(Field Programmable Gate Array,FPGA)為一動態隨機存取記憶體(Dynamic Random Access Memory,DRAM),並將該資料儲存於該動態隨機存取記憶體;複製或分割該資料成複數個資料,並且由該現場可程式化陣列回報對應於該複數個資料的複數個虛擬記憶體位址至該RDMA網路介面控制器;以及根據該複數個虛擬記憶體位址,讀取該複數個資料並傳送至對應的複數個NVMe控制器;其中,該現場可程式化陣列回報該RDMA網路介面控制器,該現場可程式化陣列之記憶體空間大於該動態隨機存取記憶體。
本發明另揭露一種電腦系統,包含有一主機端,用於一非揮發性記憶體,以透過一光纖通道傳送一資料;一RDMA網路介面控制器,用來接收該主機端傳送的該資料,並虛擬化一現場可程式化陣列為一動態隨機存取記憶體,並將該資料儲存於該動態隨機存取記憶體,複製或分割該資料成複數個資料,並且由該現場可程式化陣列回報對應於該複數個資料的複數個虛擬記憶體位址至該RDMA網路介面控制器;以及一簡單硬碟綑綁端,用來根據該複數個虛擬記憶體位址,讀取對應的該複數個資料,並傳送至對應的複數個NVMe控制器。
請參考第1圖,第1圖為本發明實施例一電腦系統10之示意圖。電腦系統10用來處理資料處理系統的資料冗餘,其包含有一主機端102、一RDMA網路介面控制器104(Remote-direct-memory-access-enable Network Interface Controller,RNIC)、一光纖通道及一簡單硬碟綑綁端106(Just a Bunch of Flash,JBOF)。主機端102透過光纖通道及RDMA網路介面控制器104傳送一資料至簡單硬碟綑綁端106。RDMA網路介面控制器104用來接收或傳送主機端102傳送的資料,以及虛擬化一現場可程式化陣列(Field Programmable Gate Array,FPGA)為一動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)。如第1圖所示,主機端102的RDMA網路介面控制器104用來將自主機端102接收的資料傳送至一接收端的RDMA網路介面控制器104,而接收端的RDMA網路介面控制器104用來虛擬化FPGA為一虛擬DRAM,並由FPGA回報RDMA網路介面控制器104其虛擬記憶體空間大於DRAM。此外,RDMA網路介面控制器104將資料複製或分割成複數個資料,並且由FPGA回報對應於複數個資料的複數個虛擬記憶體位址address_i至具有一系統單晶片(System on Chip,SoC)的RDMA網路介面控制器104。而簡單硬碟綑綁端106用來根據虛擬記憶體位址address_i,讀取對應的資料,並傳送至對應的複數個NVMe控制器。如此一來,電腦系統10不需要中央處理器(Central Processing Unit,CPU)及作業系統(Operating System,OS)的參與,便可以在高速網路環境下,透過光纖通道傳輸大量資料以處理資料冗餘。
上述範例僅概略性地說明本發明之電腦系統10的資料冗餘的處理方法,用於NVMe以透過光纖通道自主機端快速且有效率地傳送大量資料至接收端。需注意的是,本領域具通常知識者可根據不同系統需求適當設計電腦系統10。舉例來說,根據不同製造商或電腦系統的需求,選用不同的RDMA網路介面控制器,例如,系統單晶片Broadcom BCM5880X,或者,選用不同的簡單硬碟綑綁端,例如,NVMe儲存裝置Wiwynn ST300。上述實施例可根據使用者或製造商的指示或電腦系統的設定來調整,而不限於此,皆屬本發明之範疇。
詳細來說,請繼續參考第2圖,第2圖為本發明實施例之一資料冗餘的處理流程20之示意圖。請同時參考第1圖及第2圖,以寫入指令為例,在光纖通道的NVMe(NVMe over Fabric)及RDMA的架構下,主機端102(例如,Leopard)將資料透過具有系統單晶片的RDMA網路介面控制器104(例如,Broadcom BCM5880X)傳送至簡單硬碟綑綁端106(Wiwynn ST300)的資料冗餘的處理流程20包含下列步驟:
步驟202:開始。
步驟204:主機端102將一提交隊列(Submission Queue,SQ)的一寫入指令作為常駐記憶體(Host-memory Resident)的提交隊列入口(SQ Entry,SQE),並且,主控端的NVMe控制器將SQE封裝至一NVMe指令封裝。
步驟206:RDMA網路介面控制器104將佇列於一傳送隊列(Send Queue,SQ)封裝傳送至接收端的RDMA網路介面控制器104中的接收隊列(Receive Queue,RQ)。
步驟208:接收端的RDMA網路介面控制器104中的FPGA解封裝SQE並擷取儲存於RDMA網路介面控制器104中的實體DRAM,並且由FPGA產生目標端的三個虛擬DRAM位址。
步驟210:目標端以三個虛擬DRAM位址資料更新SQE的寫入指令的指標值,並且將寫入指令傳送三個虛擬資料指標值至三個對應於的NVMe控制器。
步驟212:當NVMe控制器自RDMA網路介面控制器104中的DRAM擷取資料時,FPGA即時以糾刪碼(Erasure Coding)編碼分割(split)資料,並根據虛擬DRAM位址傳送至對應的NVMe控制器。
步驟214:清除所有DRAM中的暫存資料。
步驟216:結束。
由上述可知,根據處理流程20,電腦系統10的NVMe控制器(即主機端102)透過光纖通道,以於RDMA網路介面控制器104與簡單硬碟綑綁端106兩個端點之間直接進行點對點傳輸。值得注意的是,在此例中,目標端的RDMA網路介面控制器104將資料複製或分割為三份,但不以此為限。接收主機端102與其RDMA網路介面控制器104是通過一快捷外設互聯標準(Peripheral Component Interconnect Express,PCIe)進行傳送。並且,簡單硬碟綑綁端106與其對RDMA網路介面控制器104亦為通過PCIe傳送,使得電腦系統10在高速網路環境下,不需耗費過多資源於處理和搬移資料。
由於FPGA為一種可編程的硬體,因此,RDMA網路介面控制器104中的FPGA可以不同實作方式實現。詳細來說,請參考第3圖,第3圖為本發明實施例之一FPGA實作的示意圖。在一實施例中,如第3圖所示,資料自主機端102(未繪示於第3圖)經由NVMe over Fabric至簡單硬碟綑綁端106的RDMA網路介面控制器104上,此時,RDMA網路介面控制器104選擇複數個實體記憶體控制器之其中之一處理並儲存資料,接著,由FPGA虛擬成的對應於複數個實體記憶體控制器的複數個虛擬記憶體控制器進行複製或分割資料,並由對應的複數個虛擬記憶體控制器,將資料儲存至對應的DRAM,再由RDMA網路介面控制器104的目標端提供對應於實體記憶體位址的虛擬記憶體位址至複數個NVMe子系統。值得注意的是,每一實體記憶體控制器皆可對應到一虛擬記憶體控制器及複數個雙列直插式記憶體模組(Dual In-line Memory Module,DIMM)之其中之一,也就是說,虛擬記憶體控制器與雙列直插式記憶體模組是一對一對應。
在另一實施例中,請參考第4圖,第4圖為本發明實施例之另一FPGA實作的示意圖。如第4圖所示,資料自主機端102(未繪示於第4圖)經由NVMe over Fabric至簡單硬碟綑綁端106的RDMA網路介面控制器104上,此時,資料經由一PCIe控制器進入由FPGA虛擬成的一PCIe裝置的一PCIe記憶體控制器,接著,由FPGA虛擬成的複數個虛擬記憶體控制器複製或分割資料,並由對應於資料的複數個虛擬記憶體控制器,將資料儲存至對應的DRAM後,由RDMA網路介面控制器104的目標端提供對應於實體記憶體位址的虛擬記憶體位址至複數個NVMe子系統。值得注意的是,PCIe記憶體控制器的每一虛擬記憶體控制器可對應到每一雙列直插式記憶體模組,也就是說,虛擬記憶體控制器與雙列直插式記憶體模組是一對一對應的。
在另一實施例中,請參考第5圖,第5圖為本發明實施例之另一FPGA實作的示意圖。如第5圖所示,資料自主機端102(未繪示於第5圖)經由NVMe over Fabric至簡單硬碟綑綁端106的RDMA網路介面控制器104上,此時,資料經由一PCIe控制器進入由FPGA虛擬成的一PCIe裝置的一PCIe記憶體控制器,接著,由PCIe記憶體控制器複製或分割資料,並由複數個虛擬記憶體控制器將資料儲存至一邏輯記憶體,其中,儲存於邏輯記憶體的資料具有對應的虛擬記憶體位址。最後,再由RDMA網路介面控制器104的目標端提供對應於邏輯記憶體的位址的實體記憶體位址到複數個NVMe子系統。此外,邏輯記憶體是由FPGA模擬,並且邏輯記憶體可對應至PCIe記憶體控制器的複數個虛擬記憶體控制器。
因此,由上述的實施例可知,電腦系統10透過由FPGA模擬成的實體記憶體控制器、虛擬記憶體控制器、DIMM、PCIe記憶體控制器等,以達到虛擬NVMe的獨立硬碟冗餘陣列(Redundant Array of Independent Disks,RAID)的功能,並且,在NVMe over Fabric的架構下,提供資料冗餘的處理方法。
當電腦系統10執行完成主機端102的寫入指令時,簡單硬碟綑綁端106對資料冗餘的處理流程20的寫入指令進行回應。請繼續參考第6圖,第6圖為本發明實施例一簡單硬碟綑綁端106的回應流程30之示意圖。回應流程60的步驟包含有:
步驟602:開始。
步驟604:簡單硬碟綑綁端106中的一NVMe子系統的一NVMe控制器將封裝完成隊列入口(Completion Queue Entry,CQE)傳送至一NVMe回應封裝。
步驟606:簡單硬碟綑綁端106中的RDMA將封裝傳送至主機端102後,將CQE佇列至完成隊列(Completion Queue,CQ)。
步驟608:主機端102的NVMe控制器將CQE佇列於常駐記憶體的CQ中。
步驟610:主機端102自CQ中擷取回應。
步驟612:結束。
因此,根據回應流程60,簡單硬碟綑綁端106透過點對點的方式將完成的寫入指令的回應資料回傳至主機端102。
由上述可知,本發明用於NVMe的資料冗餘的處理方法,透過光纖通道進行端點與端點之間的資料傳送以處理資料冗餘,以達到低延時、高吞吐量的傳輸。需注意的是,前述實施例係用以說明本發明之精神,本領域具通常知識者當可據以做適當之修飾,而不限於此。舉例來說,FPGA所虛擬而成的虛擬記憶體控制器、PCIe記憶體控制器或邏輯記憶體等,皆可根據電腦系統架構或需求調整,皆屬本發明之範疇。 以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
10‧‧‧電腦系統
102‧‧‧主機端
104‧‧‧RDMA網路介面控制器
106‧‧‧簡單硬碟綑綁端
20、60‧‧‧流程
202、204、206、208、210、212、214、216、602、604、606、608、610、612‧‧‧步驟
第1圖為本發明實施例一電腦系統之示意圖。 第2圖為本發明實施例之一資料冗餘的處理流程之示意圖。 第3圖為本發明實施例之一FPGA實作之示意圖。 第4圖為本發明實施例之另一FPGA實作的示意圖。 第5圖為本發明實施例之另一FPGA實作的示意圖。 第6圖為本發明實施例一簡單硬碟綑綁端的回應流程之示意圖。

Claims (12)

  1. 一種資料冗餘的處理方法,用於一非揮發性記憶體(Non-Volatile Memory express,NVMe),以透過一光纖通道自一主機(Host)端傳送一資料到一RDMA網路介面控制器(Remote-direct-memory-access-enable Network Interface Controller,RNIC)及一簡單硬碟綑綁(Just a Bunch of Flash,JBOF)端,該處理方法包含有:虛擬化該RDMA網路介面控制器的一現場可程式化陣列(Field Programmable Gate Array,FPGA)為一動態隨機存取記憶體(Dynamic Random Access Memory,DRAM),並將該資料儲存於該動態隨機存取記憶體;複製或分割該資料成複數個資料,並且由該現場可程式化陣列回報對應於該複數個資料的複數個虛擬記憶體位址至該RDMA網路介面控制器;根據該複數個虛擬記憶體位址,讀取該複數個資料並傳送至對應的複數個NVMe控制器;以及該RDMA網路介面控制器中的一目標端傳送該複數個虛擬記憶體位址至複數個NVMe子系統;其中,該現場可程式化陣列回報該RDMA網路介面控制器,該現場可程式化陣列之記憶體空間大於該動態隨機存取記憶體。
  2. 如請求項1所述之處理方法,另包含有:該現場可程式化陣列根據該複數個虛擬記憶體位址,對應修改該目標(Target)端之一寫入指令之複數個資料指標值;當該NVMe控制器根據該複數個虛擬記憶體位址讀取該複數個資料時,該現場可程式化陣列對該複數個資料進行糾刪碼(Erasure Coding)編碼,並傳送至該複數個NVMe控制器;以及當對應於該複數個虛擬記憶體位址的該複數個資料皆被讀取後,清除該動態隨機存取記憶體的所有資料。
  3. 如請求項2所述之處理方法,其中該目標端用來將送往該NVMe控制器的該寫入指令之該複數個資料指標值,指向對應的該複數個虛擬記憶體位址,並且傳送該寫入指令至對應於該NVMe控制器之複數個提交隊列(Submission Queue,SQ)。
  4. 如請求項1所述之處理方法,另包含有:該RDMA網路介面控制器以複數個實體記憶體控制器之其中之一處理該資料;以及該現場可程式化陣列於接收到該資料後,複製或分割該資料成該複數個資料,並由對應於該複數個實體記憶體控制器的複數個虛擬記憶體控制器,將該複數個資料儲存至該動態隨機存取記憶體;其中,每一實體記憶體控制器對應於複數個雙列直插式記憶體模組(Dual In-line Memory Module,DIMM)之其中之一。
  5. 如請求項1所述之處理方法,另包含有:該資料經由一快捷外設互聯標準(Peripheral Component Interconnect Express,PCIe)控制器進入由該現場可程式化陣列虛擬成的一PCIe裝置的一PCIe記憶體控制器;以及該PCIe記憶體控制器複製或分割該資料成該複數個資料,並將該複數個資料儲存至該動態隨機存取記憶體;其中,該PCIe記憶體控制器之複數個虛擬記憶體控制器是一對一對應於複數個雙列直插式記憶體模組。
  6. 如請求項1所述之處理方法,另包含有:該資料經由一PCIe控制器進入由該現場可程式化陣列虛擬成的一PCIe裝置的一PCIe記憶體控制器;以及該PCIe記憶體控制器複製或分割該資料成該複數個資料,並由對應於該PCIe記憶體控制器將該複數個資料儲存至一邏輯記憶體;其中,該PCIe記憶體控制器之複數個虛擬記憶體控制器對應於該現場可程式化陣列虛擬成的該邏輯記憶體。
  7. 一種電腦系統,包含有:一主機端,用於一非揮發性記憶體,以透過一光纖通道傳送一資料;一RDMA網路介面控制器,用來接收該主機端傳送的該資料,虛擬化一現場可程式化陣列為一動態隨機存取記憶體,並將該資料儲存於該動態隨機存取記憶體,複製或分割該資料成複數個資料,並且由該現場可程式化陣列回報對應於該複數個資料的複數個虛擬記憶體位址至該RDMA網路介面控制器,且該RDMA網路介面控制器中的一目標端傳送該複數個虛擬記憶體位址至複數個NVMe子系統;以及一簡單硬碟綑綁端,用來根據該複數個虛擬記憶體位址,讀取對應的該複數個資料,並傳送至對應的複數個NVMe控制器。
  8. 如請求項7所述之電腦系統,其中該RDMA網路介面控制器之該現場可程式化陣列根據該複數個虛擬記憶體位址,對應修改該目標端之一寫入指令之複數個資料指標值;當該NVMe控制器根據該複數個虛擬記憶體位址讀取該複數個資料時,該現場可程式化陣列對該複數個資料進行糾刪碼編碼,並傳送至該複數個NVMe控制器;以及當對應於該複數個虛擬記憶體位址的該複數個資料皆被讀取後,清除該動態隨機存取記憶體的所有資料。
  9. 如請求項8所述之電腦系統,其中該目標端用來將送往該NVMe控制器的該寫入指令之該複數個資料指標值,指向對應的該複數個虛擬記憶體位址,並且傳送該寫入指令至對應於該NVMe控制器之複數個提交隊列。
  10. 如請求項7所述之電腦系統,該RDMA網路介面控制器以複數個實體記憶體控制器之其中之一處理該資料,其中每一實體記憶體控制器對應於複數個雙列直插式記憶體模組之其中之一,以及該現場可程式化陣列於接收到該資料後,複製或分割該資料成該複數個資料,並由對應於該複數個實體記憶體控制器的複數個虛擬記憶體控制器,將該複數個資料儲存至該動態隨機存取記憶體。
  11. 如請求項7所述之電腦系統,其中該RDMA網路介面控制器根據該資料經由一快捷外設互聯標準控制器進入由該現場可程式化陣列虛擬成的一PCIe裝置的一PCIe記憶體控制器,以及該PCIe記憶體控制器複製或分割該資料成該複數個資料,並將該複數個資料儲存至該動態隨機存取記憶體,其中,該PCIe記憶體控制器之複數個虛擬記憶體控制器是一對一對應於複數個雙列直插式記憶體模組。
  12. 如請求項7所述之電腦系統,其中該RDMA網路介面控制器根據該資料經由一PCIe控制器進入由該現場可程式化陣列虛擬成的一PCIe裝置的一PCIe記憶體控制器,以及該PCIe記憶體控制器複製或分割該資料成該複數個資料,並將該複數個資料儲存至一邏輯記憶體,其中,該PCIe記憶體控制器之複數個虛擬記憶體控制器對應於該現場可程式化陣列虛擬成的該邏輯記憶體。
TW106140456A 2017-11-22 2017-11-22 資料冗餘的處理方法及其相關電腦系統 TWI636366B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW106140456A TWI636366B (zh) 2017-11-22 2017-11-22 資料冗餘的處理方法及其相關電腦系統
CN201711210915.5A CN109815170B (zh) 2017-11-22 2017-11-28 数据冗余的处理方法及其相关电脑系统
US15/951,117 US10838895B2 (en) 2017-11-22 2018-04-11 Processing method of data redundancy and computer system thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW106140456A TWI636366B (zh) 2017-11-22 2017-11-22 資料冗餘的處理方法及其相關電腦系統

Publications (2)

Publication Number Publication Date
TWI636366B true TWI636366B (zh) 2018-09-21
TW201926056A TW201926056A (zh) 2019-07-01

Family

ID=64453162

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106140456A TWI636366B (zh) 2017-11-22 2017-11-22 資料冗餘的處理方法及其相關電腦系統

Country Status (3)

Country Link
US (1) US10838895B2 (zh)
CN (1) CN109815170B (zh)
TW (1) TWI636366B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102289937B1 (ko) * 2020-08-26 2021-08-13 스톤플라이코리아(주) 가상 스토리지의 데이터 처리 방법
US11182221B1 (en) * 2020-12-18 2021-11-23 SambaNova Systems, Inc. Inter-node buffer-based streaming for reconfigurable processor-as-a-service (RPaaS)
KR102258139B1 (ko) * 2021-01-22 2021-05-28 스톤플라이코리아 주식회사 가상 스토리지의 데이터를 효율적으로 처리하는 방법 및 그 시스템
TWI829080B (zh) * 2021-02-03 2024-01-11 普安科技股份有限公司 具有雙儲存虛擬化控制器之資料儲存系統架構及其資料存取方法
CN113868155B (zh) * 2021-11-30 2022-03-08 苏州浪潮智能科技有限公司 一种内存空间扩展方法、装置及电子设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201432702A (zh) * 2012-12-27 2014-08-16 Lsi Corp 經由冗餘陣列之非揮發性記憶體程式錯誤修復
TW201513125A (zh) * 2013-07-30 2015-04-01 Hewlett Packard Development Co 修復擱陷資料之技術
CN106126448A (zh) * 2015-05-08 2016-11-16 三星电子株式会社 用于灵活存储平台的多协议io基础架构
WO2017131751A1 (en) * 2016-01-29 2017-08-03 Hewlett Packard Enterprise Development Lp Remote direct memory access

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2002210676A1 (en) * 2000-10-12 2002-04-22 Celoxica Limited System, method and article of manufacture for using a microprocessor emulation in a hardware application with non time-critical functions
CN101636712B (zh) * 2006-12-06 2016-04-13 才智知识产权控股公司(2) 在存储控制器内服务对象请求的装置、系统和方法
CA2941702A1 (en) * 2014-03-08 2015-09-17 Diamanti, Inc. Methods and systems for converged networking and storage
US9852779B2 (en) * 2014-03-12 2017-12-26 Futurewei Technologies, Inc. Dual-port DDR4-DIMMs of SDRAM and NVRAM for SSD-blades and multi-CPU servers
US10474620B2 (en) * 2017-01-03 2019-11-12 Dell Products, L.P. System and method for improving peripheral component interface express bus performance in an information handling system
US10275180B2 (en) * 2017-05-08 2019-04-30 Samsung Electronics Co., Ltd. Ethernet SSD system including storage offload engine (SoE) controller and ethernet switch
US10261699B2 (en) * 2017-05-16 2019-04-16 Dell Products L.P. Systems and methods for hardware-based RAID acceleration
CN107357408B (zh) * 2017-06-30 2020-02-04 郑州云海信息技术有限公司 一种NVMe JBOF节能方法、系统及数据中心
KR102429904B1 (ko) * 2017-09-08 2022-08-05 삼성전자주식회사 PCIe P2P 접속의 밴드위스를 최대화할 수 있는 방법 및 시스템
US10754746B2 (en) * 2017-11-15 2020-08-25 General Electric Company Virtual processor enabling unobtrusive observation of legacy systems for analytics in SoC

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201432702A (zh) * 2012-12-27 2014-08-16 Lsi Corp 經由冗餘陣列之非揮發性記憶體程式錯誤修復
TW201513125A (zh) * 2013-07-30 2015-04-01 Hewlett Packard Development Co 修復擱陷資料之技術
CN106126448A (zh) * 2015-05-08 2016-11-16 三星电子株式会社 用于灵活存储平台的多协议io基础架构
WO2017131751A1 (en) * 2016-01-29 2017-08-03 Hewlett Packard Enterprise Development Lp Remote direct memory access

Also Published As

Publication number Publication date
TW201926056A (zh) 2019-07-01
CN109815170B (zh) 2022-08-19
CN109815170A (zh) 2019-05-28
US10838895B2 (en) 2020-11-17
US20190155772A1 (en) 2019-05-23

Similar Documents

Publication Publication Date Title
TWI636366B (zh) 資料冗餘的處理方法及其相關電腦系統
US11755527B2 (en) Techniques for command validation for access to a storage device by a remote client
USRE49273E1 (en) Switch and memory device
US9986028B2 (en) Techniques to replicate data between storage servers
US10289507B1 (en) Distributed rebuild of failed storage device
KR20160096279A (ko) 가상화 기능을 지원하는 스토리지 장치 및 사용자 장치
JP2015518203A (ja) マルチキャストdmaおよび統合されたアドレス空間を有するストレージシステム
KR102365312B1 (ko) 스토리지 컨트롤러, 연산 스토리지 장치, 및 연산 스토리지 장치의 동작 방법
US11606429B2 (en) Direct response to IO request in storage system having an intermediary target apparatus
US10901624B1 (en) Dummy host command generation for supporting higher maximum data transfer sizes (MDTS)
CN114442916A (zh) 存储器设备、主机系统及操作存储器设备的方法
US11487432B2 (en) Direct response to IO request in storage system with remote replication
KR20210084632A (ko) 오픈 채널 벡터 커맨드 실행
JP7247405B2 (ja) ストレージコントローラ、計算ストレージ装置及び計算ストレージ装置の動作方法
US11740804B1 (en) System and method for performing data striping
JP6825263B2 (ja) ストレージ制御装置、およびストレージシステム
US11782603B2 (en) Optimized communicaton in storage system
EP4086774A1 (en) Coherent memory system
KR20230144434A (ko) 호스트 장치의 동작 방법 및 스토리지 장치의 동작 방법