TWI666901B - 資料傳輸方法與使用此方法的主機系統 - Google Patents

資料傳輸方法與使用此方法的主機系統 Download PDF

Info

Publication number
TWI666901B
TWI666901B TW107110443A TW107110443A TWI666901B TW I666901 B TWI666901 B TW I666901B TW 107110443 A TW107110443 A TW 107110443A TW 107110443 A TW107110443 A TW 107110443A TW I666901 B TWI666901 B TW I666901B
Authority
TW
Taiwan
Prior art keywords
data
network interface
interface controller
remote target
target device
Prior art date
Application number
TW107110443A
Other languages
English (en)
Other versions
TW201943245A (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 TW107110443A priority Critical patent/TWI666901B/zh
Priority to CN201810418342.3A priority patent/CN110309087B/zh
Priority to US15/992,150 priority patent/US10698638B2/en
Application granted granted Critical
Publication of TWI666901B publication Critical patent/TWI666901B/zh
Publication of TW201943245A publication Critical patent/TW201943245A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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/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
    • 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; 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/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

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)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本揭露提出一種用於以主機系統將第一資料傳輸至多個實體遠端目標設備的資料傳輸方法,包括:產生傳輸指令以傳輸第一資料至主機系統的網路介面控制器;轉換第一資料為多筆第二資料,並且所述多筆第二資料分別是記錄於網路介面控制器的記憶體的多個記憶體位址;以及指示所述多個實體遠端目標設備分別從記憶體的所述多個記憶體位址中取得所述多筆第二資料。此外,使用此方法的主機系統亦被提出。

Description

資料傳輸方法與使用此方法的主機系統
本發明是有關於一種資料傳輸方法與使用此方法的主機系統。
隨著科技的進步與發明,計算、儲存與網路已成為現代資訊科技領域的基礎架構核心。快閃記憶體及新一代相變化記憶體(Phase Change Memory,PCM)固態儲存的固態硬碟(Solid State Disk,SSD)於資料處理系統廣泛的使用,且透過非揮發性記憶體主機控制器介面規範(Non-Volatile Memory Express,NVMe)的協議能夠讓基於NVMe協議的固態硬碟共享或分配給多台運算伺服器使用,提供了高性能、低延遲以及低協議負擔的優勢。
此外,NVMe over Fabrics(NVMeoF)更進一步地把NVMe協議在單系統時代所提供的高性能、低延遲以及低協議負擔的優勢發揮到了NVMe儲存系統互連結構當中。透過NVMeoF能夠使運算伺服器透過網路來連接遠端的簡單硬碟綑綁(Just a Bunch of Flash,JBOF),且同樣具有高性能、低延遲以及低協議負擔的優勢。然而,當前的技術一次僅能將資料傳輸至一個目的地端的簡單硬碟綑綁中,因此在有諸如異地備援等需求時,就需要將資料多次地重複傳輸而缺乏效率。
有鑑於此,本揭露實施例提出一種資料傳輸方法與使用此方法的主機系統,能夠有效率地將資料傳輸至多個遠端目的地。
本揭露的實施例提出一種用於以主機系統將第一資料傳輸至多個實體遠端目標設備的資料傳輸方法,包括:產生傳輸指令以傳輸第一資料至主機系統的網路介面控制器;轉換第一資料為多筆第二資料,並且所述多筆第二資料分別記錄於網路介面控制器的記憶體的多個記憶體位址;以及指示多個實體遠端目標設備分別從記憶體的多個記憶體位址取得所述多筆第二資料。
在一些實施例中,上述的傳輸指令係用以將一筆資料傳輸至單一個遠端目標設備,其中遠端目標設備包括實體遠端目標設備或虛擬遠端目標設備。
在一些實施例中,在產生傳輸指令以傳輸第一資料至主機系統的網路介面控制器的步驟之前,上述的資料傳輸方法更包括:虛擬化網路介面控制器為虛擬遠端目標設備。
在一些實施例中,上述的虛擬化網路介面控制器為虛擬遠端目標設備的步驟包括:利用網路介面控制器上的可程式化單元,虛擬化網路介面控制器為虛擬遠端目標設備;以及利用可程式化單元回報網路介面控制器是連接於單一個遠端目標設備。
在一些實施例中,上述的可程式化單元用以設定多筆第二資料的數量。
在一些實施例中,上述的轉換第一資料為多筆第二資料的步驟包括:將第一資料複製為多筆第二資料,以使各筆第二資料相同於第一資料。
在一些實施例中,上述的轉換第一資料為多筆第二資料的步驟包括:將第一資料拆解為多筆第二資料,其中各筆第二資料不同於第一資料。
在一些實施例中,上述的網路介面控制器支援遠端直接記憶體存取技術。
在一些實施例中,上述的網路介面控制器透過網路並且藉由NVMe over Fabrics連接至所述多個實體遠端目標設備。
在一些實施例中,上述的實體遠端目標設備為NVMe儲存設備。
從另一觀點來看,本揭露的實施例提出一種用於將第一資料傳輸至多個實體遠端目標設備的主機系統,包括網路介面控制器與耦接於網路介面控制器的處理器。網路介面控制器透過網路連接於所述多個實體遠端目標設備,並且包括記憶體。處理器用以產生傳輸指令以傳輸第一資料至網路介面控制器。網路介面控制器用以:轉換第一資料為多筆第二資料,並且所述多筆第二資料分別記錄於網路介面控制器的記憶體的多個記憶體位址;以及指示多個實體遠端目標設備分別從網路介面控制器的記憶體的多個記憶體位址取得所述多筆第二資料。
在一些實施例中,上述的傳輸指令係用以將一筆資料傳輸至單一個遠端目標設備,其中遠端目標設備包括實體遠端目標設備或虛擬遠端目標設備。
在一些實施例中,上述的網路介面控制器更用以虛擬為虛擬遠端目標設備。
在一些實施例中,上述的網路介面控制器包括可程式化單元。可程式化單元用以:將網路介面控制器虛擬為虛擬遠端目標設備;以及回報網路介面控制器是連接於單一個遠端目標設備至處理器。
在一些實施例中,上述的可程式化單元更用以設定多筆第二資料的數量。
在一些實施例中,上述的網路介面控制器在轉換第一資料為多筆第二資料時,包括:將第一資料複製為多筆第二資料,以使各筆第二資料相同於第一資料。
在一些實施例中,上述的網路介面控制器在轉換第一資料為多筆第二資料時,包括:將第一資料拆解為多筆第二資料,其中各筆第二資料不同於第一資料。
在一些實施例中,上述的網路介面控制器支援遠端直接記憶體存取技術。
在一些實施例中,上述的網路介面控制器透過網路並且藉由NVMe over Fabrics連接至所述多個實體遠端目標設備。
在一些實施例中,上述的實體遠端目標設備為NVMe儲存設備。
基於上述,本揭露實施例所提出的資料傳輸方法與使用此方法的主機系統,在欲將第一資料傳輸至多個實體遠端目標設備時,先將主機系統的網路介面控制器虛擬化為虛擬遠端目標設備來接收所欲傳輸的第一資料,然後將此第一資料複製或拆解成多筆第二資料並記錄於網路介面控制器的記憶體中,再指示多個實體遠端目標設備分別至網路介面控制器的記憶體取回多筆第二資料。據此,能夠有效率地將資料傳輸至多個遠端目的地。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
圖1繪示習知的透過NVMeoF傳輸資料的示意圖。
請參照圖1,主機系統10包括網路介面控制器101、動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)102、根聯合體(Root Complex,RC)103以及處理器104,其中網路介面控制器101、動態隨機存取記憶體102以及處理器104分別耦接於根聯合體103。網路介面控制器101耦接於網路30,且為支援遠端直接記憶體存取(Remote Direct Memory Access,RDMA)技術的網路介面控制器。
實體遠端目標設備20為NVMe儲存設備,例如為一個簡單硬碟綑綁系統,包括網路介面控制器201以及耦接於網路介面控制器201的多個儲存裝置202-1、202-2、202-3,其中網路介面控制器201耦接於網路30。網路介面控制器201為支援RDMA技術的網路介面控制器,並且儲存裝置202-1、202-2、202-3分別為基於NVMe協議的固態硬碟。
藉由圖1所示的配置,主機系統10可透過NVMeoF將第一資料DATA1經由網路30傳遞至實體遠端目標設備20。然而,根據NVMeoF的特性,主機系統10在一次的傳輸當中只有一個遠端目的地。舉例來說,當處理器104下達傳輸指令以傳輸記錄於DRAM 102中的第一資料DATA1時,可指定將第一資料DATA1傳輸至單一個遠端目標設備(例如,實體遠端目標設備20),但無法同時再指定其他遠端目標設備。
因此,當主機系統10有諸如異地備援等將第一資料DATA1傳輸至多個遠端目的地時,便需要重複進行多次傳輸,以分別透過NVMeoF將第一資料DATA1經由網路30傳遞至上述多個遠端目的地。
圖2A至圖2C繪示習知主機系統透過NVMeoF將第一資料傳遞至多個遠端目的地的一例的示意圖。
請同時參照圖2A至圖2C,當本地端TPE的主機系統10欲透過NVMeoF進行備援以將第一資料DATA1傳遞至多個遠端目的地NY、TKY、BJ各自的實體遠端目標設備時,須重複進行三次傳輸動作,即,將第一資料DATA1透過NVMeoF傳遞至遠端目的地NY的實體遠端目標設備、將第一資料DATA1透過NVMeoF傳遞至遠端目的地TKY的實體遠端目標設備以及將第一資料DATA1透過NVMeoF傳遞至遠端目的地BJ的實體遠端目標設備。
由上例可知,雖然透過NVMeoF來傳輸資料具有高性能、低延遲和低協議負擔等優勢,但一旦有資料複製(Data Replication)等需求時卻無法有相關硬體來執行而導致效率下降。
圖3繪示本揭露一實施例的資料傳輸方法的示意圖。
請參照圖3,在本實施例中,主機系統11包括網路介面控制器111、動態隨機存取記憶體112、根聯合體113以及處理器114,其中網路介面控制器111、動態隨機存取記憶體112以及處理器114分別耦接於根聯合體103。
網路介面控制器111耦接於網路30(例如但不限於,網狀通道(Fibre Channel,FC)),包括可程式化單元115以及記憶體116。在一些實施例中,網路介面控制器111例如為支援遠端直接記憶體存取技術的網路介面控制器,但本揭露並不限於此。在一些實施例中,可程式化單元115例如是現場可程式邏輯閘陣列(Field Programmable Gate Array,FPGA),設置於網路介面控制器111上,但本揭露並不限於此。在一些實施例中,記憶體116例如是設置在網路介面控制器111上的隨機存取記憶體(Random Access Memory,RAM),但本揭露並不限於此。
實體遠端目標設備21例如為一個簡單硬碟綑綁系統,包括網路介面控制器211以及耦接於網路介面控制器211的多個儲存裝置212-1、212-2、212-3,其中網路介面控制器211耦接於網路30。在一些實施例中,網路介面控制器211為支援RDMA技術的網路介面控制器,並且儲存裝置212-1、212-2、212-3分別為基於NVMe協議的固態硬碟,因而實體遠端目標設備21為NVMe儲存設備,但本揭露並不限於此。
實體遠端目標設備22例如為一個簡單硬碟綑綁系統,包括網路介面控制器221以及耦接於網路介面控制器221的多個儲存裝置222-1、222-2、222-3,其中網路介面控制器221耦接於網路30。在一些實施例中,網路介面控制器221為支援RDMA技術的網路介面控制器,並且儲存裝置222-1、222-2、222-3分別為基於NVMe協議的固態硬碟,因而實體遠端目標設備22為NVMe儲存設備,但本揭露並不限於此。
實體遠端目標設備23例如為一個簡單硬碟綑綁系統,包括網路介面控制器231以及耦接於網路介面控制器231的多個儲存裝置232-1、232-2、232-3,其中網路介面控制器231耦接於網路30。在一些實施例中,網路介面控制器231為支援RDMA技術的網路介面控制器,並且儲存裝置232-1、232-2、232-3分別為基於NVMe協議的固態硬碟,因而實體遠端目標設備23為NVMe儲存設備,但本揭露並不限於此。
以下將基於圖3實施例的架構,針對本揭露所提出的資料傳輸方法進行說明。值得一提的是,在圖3實施例的架構當中包括三個實體遠端目標設備21、22、23並各別包括三個儲存裝置,但本揭露並不限制實體遠端目標設備的數量以及各個實體遠端目標設備中所包含的儲存裝置數量。
圖4繪示本揭露一實施例的資料傳輸方法的流程圖。
在本實施例中,主機系統11透過NVMeoF經由網路30來將第一資料DATA1傳遞至多個實體遠端目標設備21、22、23。
請參照圖4,在步驟S410中,虛擬化網路介面控制器111為虛擬遠端目標設備。如前段落所述,由於NVMeoF的特性使得主機系統11在一次透過NVMeoF的傳輸當中只能有一個遠端目的地。因此,設置於網路介面控制器111上的可程式化單元115會將網路介面控制器111虛擬化為一個虛擬遠端目標設備,然後回報處理器114,以通知處理器114當前網路介面控制器111是透過網路連接於單一個遠端目標設備(即,虛擬遠端目標設備)。
在步驟S420中,產生傳輸指令以傳輸第一資料DATA1至主機系統11的網路介面控制器111。詳細來說,在步驟S410後處理器114可以得知當前網路介面控制器111是透過網路連接於單一個遠端目標設備,因此處理器114可產生並下達傳輸指令以傳輸記錄於DRAM 112中的第一資料DATA1至網路介面控制器111所連接的遠端目標設備(即,虛擬成虛擬遠端目標設備的網路介面控制器111)作為傳輸目的地。
在步驟S430中,轉換第一資料DATA1為多筆第二資料DATA2,並且多筆第二資料DATA2分別記錄於網路介面控制器111的記憶體116的多個記憶體位址。
在一些實施例中,可程式化單元115會將第一資料DATA1複製為多筆與第一資料DATA1相同的第二資料DATA2,並且對各筆第二資料DATA2配置一個記憶體116的記憶體位址以儲存之。舉例來說,可程式化單元115可例如將第一資料DATA1複製三份以成為第二資料DATA2-1、第二資料DATA2-2與第二資料DATA2-3,並且將第二資料DATA2-1儲存於記憶體116的第一記憶體位址中,將第二資料DATA2-2儲存於記憶體116的第二記憶體位址中,以及將第二資料DATA2-3儲存於記憶體116的第三記憶體位址中。
在一些實施例中,可程式化單元115會將第一資料DATA1拆解為多筆與第一資料DATA1不同的第二資料DATA2,並且對各筆第二資料DATA2配置一個記憶體116的記憶體位址以儲存之。舉例來說,可程式化單元115可例如將第一資料DATA1拆解成三份不同的第二資料DATA2-1、第二資料DATA2-2與第二資料DATA2-3,並且將第二資料DATA2-1儲存於記憶體116的第一記憶體位址中,將第二資料DATA2-2儲存於記憶體116的第二記憶體位址中,以及將第二資料DATA2-3儲存於記憶體116的第三記憶體位址中。
值得一提的是,在上述的例子中第一資料DATA1皆是被轉換為三筆第二資料DATA2,但本揭露並不限於此,所屬技術領域具備通常知識者當可依其需求來程式化可程式化單元115,以設定第一資料DATA1轉換為多筆第二資料DATA2時的轉換方式、多筆第二資料DATA2的數量以及各筆第二資料DATA2的記憶體位址等。舉例而言,使用者可利用可程式化單元115來建立設置環境,以提供上述轉換方式、數量以及記憶體位址等設定介面。
在步驟S440中,指示多個實體遠端目標設備21、22、23分別從記憶體116的多個記憶體位址取得多筆第二資料DATA2。具體來說,在可程式化單元115將多筆資料DATA2記錄於網路介面控制器111的記憶體116的多個記憶體位址後,可例如將儲存多筆第二資料DATA2的多個記憶體位址發送至網路介面控制器211、221、231,以讓網路介面控制器211、221、231到記憶體116的該些記憶體位址取回第二資料DATA2。
舉例而言,第二資料DATA2包括第二資料DATA2-1、第二資料DATA2-2與第二資料DATA2-3,並且分別儲存於記憶體116的第一記憶體位址、第二記憶體位址以及第三記憶體位址中。可程式化單元115可例如將第一記憶體位址告知實體遠端目標設備21,將第二記憶體位址告知實體遠端目標設備22,並且將第三記憶體位址告知實體遠端目標設備23。據此,網路介面控制器211可根據第一記憶體位址到記憶體116取回第二資料DATA2-1,並例如將其記錄於網路介面控制器211的記憶體(未繪示)中,再儲存至儲存裝置212-1、212-2、212-3的至少其中之一中。值得一提的,本揭露並不在此限制第二資料DATA2-1傳遞至網路介面控制器211後再分配至儲存裝置212-1、212-2、212-3的至少其中之一的具體方式,所屬技術領域具備通常知識者當可視需求來實作。
類似地,網路介面控制器221與網路介面控制器231也能夠藉由上述的方式來根據第二記憶體位址與第三記憶體位址到記憶體116取回第二資料DATA2-2與第二資料DATA2-3。
根據本揭露實施例所介紹的資料傳輸方法,主機系統能夠透過將網路介面控制器虛擬化為虛擬遠端目標設備,在一次透過NVMeOF的傳輸中,將第一資料傳遞至多個實體遠端目標設備中。
圖5繪示本揭露一實施例中主機系統透過NVMeoF將第一資料傳遞至多個實體遠端目標設備的一例的示意圖。
請參照圖5,當本地端TPE的主機系統11欲透過NVMeoF進行備援以將第一資料DATA1傳遞至多個遠端目的地NY、TKY、BJ各自的實體遠端目標設備時,利用本揭露實施例所介紹的資料傳輸方法,利用網路介面控制器111上的可程式化單元115先將網路介面控制器111虛擬為虛擬遠端目標設備,接收所欲傳輸的第一資料DATA1並將其轉換(例如,複製或拆解)為多筆第二資料DATA2-1、DATA2-2、DATA2-3並記錄於網路介面控制器111的記憶體116中,再指示遠端目的地NY、TKY、BJ各自的實體遠端目標設備到記憶體116中分別取回各自的第二資料DATA2-1、DATA2-2、DATA2-3。如此一來,即使在透過NVMeoF來傳輸資料的環境下有資料複製或異地備援等需求,仍能透過本揭露實施例的資料傳輸方法來維持效率。
綜上所述,本揭露實施例所提出的資料傳輸方法與使用此方法的主機系統,在欲將第一資料傳輸至多個實體遠端目標設備時,先利用可程式化單元將主機系統的網路介面控制器虛擬化為虛擬遠端目標設備來接收所欲傳輸的第一資料,然後將此第一資料複製或拆解成多筆第二資料並記錄於網路介面控制器的記憶體中,再指示多個實體遠端目標設備分別至網路介面控制器的記憶體取回多筆第二資料。據此,能夠有效率地將資料傳輸至多個遠端目的地。
雖然本揭露已以實施例揭露如上,然其並非用以限定本揭露,任何所屬技術領域中具有通常知識者,在不脫離本揭露的精神和範圍內,當可作些許的更動與潤飾,故本揭露的保護範圍當視後附的申請專利範圍所界定者為準。
10、11‧‧‧主機系統
101、111、201、211、221、231‧‧‧網路介面控制器
102、112‧‧‧動態隨機存取記憶體
103、113‧‧‧根聯合體
104、114‧‧‧處理器
115‧‧‧可程式化單元
116‧‧‧記憶體
20、21、22、23‧‧‧實體遠端目標設備
202-1、202-2、202-3、212-1、212-2、212-3、222-1、222-2、222-3、232-1、232-2、232-3‧‧‧儲存裝置
30‧‧‧網路
DATA1‧‧‧第一資料
DATA2、DATA2-1、DATA2-2、DATA2-3‧‧‧第二資料
NY、TKY、BJ‧‧‧遠端目的地
S410、S420、S430、S440‧‧‧資料傳輸方法的步驟
TPE‧‧‧本地端
圖1繪示習知的透過NVMe over Fabrics傳輸資料的示意圖。 圖2A至圖2C繪示習知主機系統透過NVMeoF將第一資料傳遞至多個遠端目的地的一例的示意圖。 圖3繪示本揭露一實施例的資料傳輸方法的示意圖。 圖4繪示本揭露一實施例的資料傳輸方法的流程圖。 圖5繪示本揭露一實施例中主機系統透過NVMeoF將第一資料傳遞至多個實體遠端目標設備的一例的示意圖。

Claims (16)

  1. 一種資料傳輸方法,用於以一主機系統將一第一資料傳輸至多個實體遠端目標設備,所述資料傳輸方法包括:虛擬化該網路介面控制器為該虛擬遠端目標設備;產生一傳輸指令以傳輸該第一資料至該網路介面控制器,其中該傳輸指令係用以將一筆資料傳輸至單一個遠端目標設備,其中該遠端目標設備包括該實體遠端目標設備或該虛擬遠端目標設備;轉換該第一資料為多筆第二資料,並且該些第二資料分別記錄於該網路介面控制器的一記憶體的多個記憶體位址;以及指示該些實體遠端目標設備分別從該記憶體的該些記憶體位址取得該些第二資料。
  2. 如申請專利範圍第1項所述的資料傳輸方法,其中虛擬化該網路介面控制器為該虛擬遠端目標設備的步驟包括:利用該網路介面控制器上的一可程式化單元,虛擬化該網路介面控制器為該虛擬遠端目標設備;以及利用該可程式化單元回報該網路介面控制器是連接於單一個遠端目標設備。
  3. 如申請專利範圍第2項所述的資料傳輸方法,其中該可程式化單元用以設定該些第二資料的一數量。
  4. 如申請專利範圍第1項所述的資料傳輸方法,其中轉換該第一資料為該些第二資料的步驟包括:將該第一資料複製為該些第二資料,以使各該第二資料相同於該第一資料。
  5. 如申請專利範圍第1項所述的資料傳輸方法,其中轉換該第一資料為該些第二資料的步驟包括:將該第一資料拆解為該些第二資料,其中各該第二資料不同於該第一資料。
  6. 如申請專利範圍第1項所述的資料傳輸方法,其中該網路介面控制器支援一遠端直接記憶體存取技術。
  7. 如申請專利範圍第1項所述的資料傳輸方法,其中該網路介面控制器透過網路並且藉由NVMe over Fabrics連接至該些實體遠端目標設備。
  8. 如申請專利範圍第1項所述的資料傳輸方法,其中各該實體遠端目標設備為一NVMe儲存設備。
  9. 一種主機系統,用於將一第一資料傳輸至多個實體遠端目標設備,所述主機系統包括:一網路介面控制器,透過網路連接於該些實體遠端目標設備並且包括一記憶體,並且用以虛擬化為一虛擬遠端目標設備;以及一處理器,耦接於該網路介面控制器,用以產生一傳輸指令以傳輸該第一資料至該網路介面控制器,其中該傳輸指令係用以將一筆資料傳輸至單一個遠端目標設備,其中該遠端目標設備包括該實體遠端目標設備或該虛擬遠端目標設備,其中該網路介面控制器用以:轉換該第一資料為多筆第二資料,並且該些第二資料分別記錄於該記憶體的多個記憶體位址;以及指示該些實體遠端目標設備分別從該記憶體的該些記憶體位址取得該些第二資料。
  10. 如申請專利範圍第9項所述的主機系統,其中該網路介面控制器包括:一可程式化單元,用以:將該網路介面控制器虛擬為該虛擬遠端目標設備;以及回報該網路介面控制器是連接於單一個遠端目標設備至該處理器。
  11. 如申請專利範圍第10項所述的主機系統,其中該可程式化單元更用以設定該些第二資料的一數量。
  12. 如申請專利範圍第9項所述的主機系統,其中該網路介面控制器在轉換該第一資料為該些第二資料時,包括:將該第一資料複製為該些第二資料,以使各該第二資料相同於該第一資料。
  13. 如申請專利範圍第9項所述的主機系統,其中該網路介面控制器在轉換該第一資料為該些第二資料時,包括:將該第一資料拆解為該些第二資料,其中各該第二資料不同於該第一資料。
  14. 如申請專利範圍第9項所述的主機系統,其中該網路介面控制器支援一遠端直接記憶體存取技術。
  15. 如申請專利範圍第9項所述的主機系統,其中該網路介面控制器透過該網路並且藉由NVMe over Fabrics連接至該些實體遠端目標設備。
  16. 如申請專利範圍第9項所述的主機系統,其中各該實體遠端目標設備為一NVMe儲存設備。
TW107110443A 2018-03-27 2018-03-27 資料傳輸方法與使用此方法的主機系統 TWI666901B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW107110443A TWI666901B (zh) 2018-03-27 2018-03-27 資料傳輸方法與使用此方法的主機系統
CN201810418342.3A CN110309087B (zh) 2018-03-27 2018-05-04 数据传输方法与使用此方法的主机系统
US15/992,150 US10698638B2 (en) 2018-03-27 2018-05-29 Data transmission method and host system using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW107110443A TWI666901B (zh) 2018-03-27 2018-03-27 資料傳輸方法與使用此方法的主機系統

Publications (2)

Publication Number Publication Date
TWI666901B true TWI666901B (zh) 2019-07-21
TW201943245A TW201943245A (zh) 2019-11-01

Family

ID=68049714

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107110443A TWI666901B (zh) 2018-03-27 2018-03-27 資料傳輸方法與使用此方法的主機系統

Country Status (3)

Country Link
US (1) US10698638B2 (zh)
CN (1) CN110309087B (zh)
TW (1) TWI666901B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11714763B2 (en) * 2019-10-16 2023-08-01 Intel Corporation Configuration interface to offload capabilities to a network interface
US11740804B1 (en) * 2022-03-15 2023-08-29 Lightbits Labs Ltd. System and method for performing data striping

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104283938A (zh) * 2013-07-08 2015-01-14 英特尔公司 用于在存储服务器之间复制数据的技术
US20170054824A1 (en) * 2015-04-14 2017-02-23 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
US20170286363A1 (en) * 2016-04-04 2017-10-05 Marvell World Trade Ltd. Methods and systems for accessing host memory through non-volatile memory over fabric bridging with direct target access
CN107533537A (zh) * 2016-01-29 2018-01-02 慧与发展有限责任合伙企业 远程直接存储器访问
US20180067893A1 (en) * 2016-09-08 2018-03-08 Microsoft Technology Licensing, Llc Multicast apparatuses and methods for distributing data to multiple receivers in high-performance computing and cloud-based networks

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7624156B1 (en) * 2000-05-23 2009-11-24 Intel Corporation Method and system for communication between memory regions
US20060075057A1 (en) * 2004-08-30 2006-04-06 International Business Machines Corporation Remote direct memory access system and method
US20060168091A1 (en) * 2005-01-21 2006-07-27 International Business Machines Corporation RNIC-BASED OFFLOAD OF iSCSI DATA MOVEMENT FUNCTION BY INITIATOR
US7702826B2 (en) * 2005-12-28 2010-04-20 Intel Corporation Method and apparatus by utilizing platform support for direct memory access remapping by remote DMA (“RDMA”)-capable devices
CN101212490A (zh) * 2006-12-30 2008-07-02 财团法人工业技术研究院 储存装置控制器
GB2460280A (en) * 2008-05-23 2009-11-25 Advanced Risc Mach Ltd Using a memory-abort register in the emulation of memory access operations
JP5280135B2 (ja) * 2008-09-01 2013-09-04 株式会社日立製作所 データ転送装置
US9665633B2 (en) * 2014-02-19 2017-05-30 Snowflake Computing, Inc. Data management systems and methods
US10257273B2 (en) * 2015-07-31 2019-04-09 Netapp, Inc. Systems, methods and devices for RDMA read/write operations
US10877922B2 (en) * 2016-01-29 2020-12-29 Hewlett Packard Enterprise Development Lp Flushes based on intent log entry states
US10732893B2 (en) * 2017-05-25 2020-08-04 Western Digital Technologies, Inc. Non-volatile memory over fabric controller with memory bypass
US10635529B2 (en) * 2017-05-25 2020-04-28 Western Digital Technologies, Inc. Parity offload for multiple data storage devices
US20190102287A1 (en) * 2017-09-29 2019-04-04 Intel Corporation Remote persistent memory access device
US10379948B2 (en) * 2017-10-02 2019-08-13 Western Digital Technologies, Inc. Redundancy coding stripe based on internal addresses of storage devices

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104283938A (zh) * 2013-07-08 2015-01-14 英特尔公司 用于在存储服务器之间复制数据的技术
US20170054824A1 (en) * 2015-04-14 2017-02-23 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
CN107533537A (zh) * 2016-01-29 2018-01-02 慧与发展有限责任合伙企业 远程直接存储器访问
US20170286363A1 (en) * 2016-04-04 2017-10-05 Marvell World Trade Ltd. Methods and systems for accessing host memory through non-volatile memory over fabric bridging with direct target access
US20180067893A1 (en) * 2016-09-08 2018-03-08 Microsoft Technology Licensing, Llc Multicast apparatuses and methods for distributing data to multiple receivers in high-performance computing and cloud-based networks

Also Published As

Publication number Publication date
CN110309087B (zh) 2021-01-26
CN110309087A (zh) 2019-10-08
US20190303046A1 (en) 2019-10-03
TW201943245A (zh) 2019-11-01
US10698638B2 (en) 2020-06-30

Similar Documents

Publication Publication Date Title
US10523757B2 (en) Interconnect delivery process
US20180260139A1 (en) System and method for efficient access for remote storage devices
US20180349396A1 (en) Managing I/O Operations in a Storage Network
JP2013532339A5 (zh)
TWI375153B (en) A method for deterministic sas discovery and configuration
JP2018185814A5 (zh)
US8788726B2 (en) Data transmission system, storage medium and data transmission program
US9578132B2 (en) Zero copy data transfers without modifying host side protocol stack parameters
US11218544B1 (en) Tiered queuing system
TWI666901B (zh) 資料傳輸方法與使用此方法的主機系統
WO2018232736A1 (zh) 内存访问技术及计算机系统
Zhang et al. Smarth: Enabling multi-pipeline data transfer in hdfs
CN110727617A (zh) 同时通过PCIe EP和网络接口访问双线SSD装置的方法和系统
WO2017162175A1 (zh) 一种数据传输方法及装置
US20210004165A1 (en) Dummy Host Command Generation For Supporting Higher Maximum Data Transfer Sizes (MDTS)
WO2021063160A1 (zh) 访问固态硬盘的方法及存储设备
JP2014154157A5 (zh)
US10154079B2 (en) Pre-boot file transfer system
JP2011159168A (ja) データ変換装置、データ変換方法及びプログラム
JP2018504689A5 (zh)
US10157112B2 (en) Storage device
TW202345003A (zh) 用於具有相干介面的隊列管理的系統、方法和設備
JP2010271797A (ja) 分散ストレージにおけるデータ位置管理方法及び装置及びプログラム
US11297010B2 (en) In-line data operations for storage systems
JP5783008B2 (ja) ストレージ装置、ストレージシステム、データ更新方法およびデータ管理プログラム