TWI510932B - 塊儲存閘道模組、儲存中介系統、雲端儲存系統、提供對塊儲存的存取的方法、儲存中介方法與內容遞送裝置 - Google Patents

塊儲存閘道模組、儲存中介系統、雲端儲存系統、提供對塊儲存的存取的方法、儲存中介方法與內容遞送裝置 Download PDF

Info

Publication number
TWI510932B
TWI510932B TW102148862A TW102148862A TWI510932B TW I510932 B TWI510932 B TW I510932B TW 102148862 A TW102148862 A TW 102148862A TW 102148862 A TW102148862 A TW 102148862A TW I510932 B TWI510932 B TW I510932B
Authority
TW
Taiwan
Prior art keywords
storage
access
data
storage resource
original data
Prior art date
Application number
TW102148862A
Other languages
English (en)
Other versions
TW201525718A (zh
Inventor
Chih Ming Chen
Original Assignee
Wistron Corp
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 Wistron Corp filed Critical Wistron Corp
Priority to TW102148862A priority Critical patent/TWI510932B/zh
Priority to CN201410013954.6A priority patent/CN104750428B/zh
Priority to US14/270,872 priority patent/US9477429B2/en
Publication of TW201525718A publication Critical patent/TW201525718A/zh
Application granted granted Critical
Publication of TWI510932B publication Critical patent/TWI510932B/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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/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; 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/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/0689Disk arrays, e.g. RAID, JBOD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

塊儲存閘道模組、儲存中介系統、雲端儲存系統、提供對塊儲存的存取的方法、儲存中介方法與內容遞送裝置
本發明係關於雲端儲存,特別係關於提供對塊儲 存(block storage)的可容錯(fault-tolerant)存取和負載平衡之技術。
塊儲存是硬碟、光碟、快閃記憶體和磁帶等所有 常見儲存設備的實作方式,其中「塊」意味著資料是以固定長度的位元串(bit string)為單位在儲存設備上被讀寫。然而,雲端儲存作為一種高階的概念,講求的是負載平衡、極高的可用性和水平可伸縮性(scale-in/scale-out),並不處理底層儲存設備的運作。因此業界面對巨量資料(big data)時代的來臨,需要一種能包裝或虛擬化塊儲存設備至抽象層,使之可視為雲端的機制。
鑒於上述需求,本發明旨在提供一種塊儲存閘道 模組、包含前述模組的一種儲存中介系統及其對應方法、包含前述系統的一種雲端儲存系統、對應前述模組的一種提供對塊儲存的存取的方法以及用於部署(deploy)可執行此方法的計算機的內容遞送裝置。所謂存取可以是讀、寫、開、關、擦除、掃描、格式化(format)、設定、驗證、測試診斷等等操作,不一而足。
本發明提供一種塊儲存閘道模組,其包含接收單 元和存取單元。接收單元用於攔截(intercept)指示對儲存體進行本機存取的對作業系統的系統呼叫(system call),以產生近端存取指令。存取單元用於依據近端存取指令,對對應儲存體的儲存陣列進行近端存取。在一實施例中,塊儲存閘道模組更包含編解碼單元,其用於產生對應原始資料的可容錯資料和用於自可容錯資料還原出原始資料。若前述本機存取指的是自儲存體讀取原始資料,則近端存取即自儲存陣列讀取可容錯資料;若本機存取係指將原始資料寫入儲存體,則近端存取是將可容錯資料寫入儲存陣列。
本發明亦提供一種提供對塊儲存的存取的方 法,其步驟包含:攔截指示對儲存體進行本機存取的對作業系統的系統呼叫,以產生近端存取指令;依據近端存取指令,對對應儲存體的儲存陣列進行近端存取。在一實施例中,若 前述本機存取係指將原始資料寫入儲存體,則產生對應原始資料的可容錯資料,並將可容錯資料寫入儲存陣列;在另一實施例中,若本機存取指的是自儲存體讀取原始資料,則自儲存陣列讀取可容錯資料,並自可容錯資料還原出原始資料。
本發明亦提供一種儲存中介系統,其包含至少一 個儲存資源(storage resource)裝置和負載平衡裝置。儲存資源裝置包含伺服模組和塊儲存閘道模組。伺服模組用於接收指示對儲存資源裝置進行遠端存取的遠端存取指令,以產生系統呼叫。塊儲存閘道模組用於攔截此系統呼叫,並用於依據系統呼叫,對儲存陣列進行近端存取。儲存陣列對應儲存資源裝置,近端存取對應遠端存取。負載平衡裝置用於接收遠端存取要求,用於選擇儲存資源裝置其中之一,以及用於傳送包含被選擇的該儲存資源裝置的位址的答允訊息。
本發明亦提供一種儲存中介方法,其步驟包含: 接收遠端存取要求;選擇一或多個儲存資源裝置其中之一;傳送包含被選擇的儲存資源裝置的位址的答允訊息;接收指示對儲存資源裝置進行遠端存取的遠端存取指令,以產生系統呼叫;攔截此系統呼叫;依據系統呼叫,對儲存陣列進行近端存取。儲存陣列對應被選擇的儲存資源裝置,近端存取對應遠端存取。
本發明更提供一種雲端儲存系統,其包含多個儲 存節點、一或多個儲存資源裝置和負載平衡裝置。儲存資源 裝置用於接收遠端存取指令,用於攔截對應遠端存取指令的系統呼叫,以及用於依據此系統呼叫,對儲存陣列進行近端存取。遠端存取指令指示對儲存資源裝置進行遠端存取;儲存陣列對應儲存資源裝置,且包含至少部分的前述儲存節點。負載平衡裝置用於接收遠端存取要求,用於選擇儲存資源裝置其中之一,以及用於傳送包含被選擇的該儲存資源裝置的位址的答允訊息。
本發明更提供一種內容遞送裝置,用於部署一臺 計算機,使之具有使之執行多道指令的程式碼,彼等指令包含:攔截指示對儲存體進行本機存取的對作業系統的系統呼叫,以產生近端存取指令;依據近端存取指令,對對應儲存體的儲存陣列進行近端存取。在一實施例中,若前述本機存取係指將原始資料寫入儲存體,則產生對應原始資料的可容錯資料,並將可容錯資料寫入儲存陣列;在另一實施例中,若本機存取指的是自儲存體讀取原始資料,則自儲存陣列讀取可容錯資料,並自可容錯資料還原出原始資料。
以上關於本發明內容及以下關於實施方式之說明係用以示範與闡明本發明之精神與原理,並提供對本發明之申請專利範圍更進一步之解釋。
1‧‧‧儲存資源裝置
10、11‧‧‧塊儲存閘道模組
101、111‧‧‧接收單元
103、113‧‧‧編解碼單元
105、115‧‧‧存取單元
12‧‧‧伺服模組
2‧‧‧儲存陣列
21‧‧‧直接附加儲存節點
23‧‧‧網路附加儲存節點
25‧‧‧儲存區域網路
31‧‧‧網路
32‧‧‧用戶端
4‧‧‧儲存中介系統
40‧‧‧負載平衡裝置
41、42‧‧‧儲存資源裝置
410‧‧‧塊儲存閘道模組
412‧‧‧伺服模組
414‧‧‧維護模組
416‧‧‧近端存取模組
5‧‧‧雲端儲存系統
50‧‧‧負載平衡裝置
51、52‧‧‧儲存資源裝置
53‧‧‧儲存節點母集
第1A圖係依據本發明一實施例關於塊儲存閘道模組和 儲存資源裝置的方塊圖。
第1B圖係依據本發明另一實施例塊儲存閘道模組的方塊圖。
第1C圖係依據本發明一實施例關於儲存陣列的方塊圖。
第2A圖與第2B圖係依據本發明一實施例提供對塊儲存的存取的方法的部分流程圖。
第3圖係依據本發明一實施例關於儲存中介系統的方塊圖。
第4A圖係依據本發明一實施例儲存中介方法的流程圖。
第4B圖係依據本發明一實施例負載平衡裝置依據心跳訊息選擇儲存資源裝置其中之一的流程圖。
第5圖係依據本發明一實施例雲端儲存系統的方塊圖。
以下在實施方式中敘述本發明之詳細特徵,其內容足以使任何熟習相關技藝者瞭解本發明之技術內容並據以實施,且依據本說明書所揭露之內容、申請專利範圍及圖式,任何熟習相關技藝者可輕易地理解本發明相關之目的及優點。以下實施例係進一步說明本發明之諸面向,但非以任何面向限制本發明之範疇。
請參見第1A圖。第1A圖係依據本發明一實施例關於塊儲存閘道模組和儲存資源裝置的方塊圖。如第1A圖所示,塊儲存閘道模組10屬於儲存資源裝置1並包含接收單 元101、編解碼單元103和存取單元105。存取單元105耦接儲存陣列2。儲存資源裝置1另外還包含伺服模組12。在此實施例中,伺服模組12、接收單元101、存取單元105與儲存陣列2形成一條不中斷的指令鏈(chain of command),而編解碼單元103是為存取單元105取用的功能區塊,但在另一實施例中,如第1B圖所示,塊儲存閘道模組11中亦可以是接收單元111耦接編解碼單元113,而後者再耦接存取單元115。
在實作儲存資源裝置1的計算機所運行的作業系統中,接收單元101可以是插入性的(hooked或injected)一個核心模組(kernel module),用以接收伺服模組12為了在本機存取某個儲存體產生的系統呼叫。儲存體可以是邏輯卷(logical volume)等虛擬化的儲存,在計算機中不一定實體存在,而此系統呼叫原應由作業系統內建的其他核心模組或驅動程式處理,但被接收單元101攔截,並產生相應的近端存取指令給存取單元105。換句話說,接收單元101擴充或部份取代了作業系統中用來處理關聯於前述儲存體的系統呼叫的目的碼(object code)、可執行檔(executable)或機器碼(machine code)等。在接收單元101前、中或後作業系統內建的程式碼仍可被執行。
插入接收單元101的一種方式是在作業系統的系統呼叫表(system call table,在Linux中可能是叫做 syscall_table.S的檔案)中使指示此系統呼叫如何處理的條目指向接收單元101所在的檔案路徑或記憶體位址。在沒有明顯系統呼叫表的作業系統中,插入接收單元101可能涉及直接以接收單元101覆蓋內建程式碼所在的輸出入區域(input/output area),並選擇性地事先備份內建程式碼。
在一實施例中,前述近端存取指令是輸出入控制,如Linux或Mac作業系統中的ioctl,或Microsoft的Windows應用程式介面(application programming interface,簡稱API)中的DeviceIoControl,而存取單元105部分或全位於使用者空間(user space或userland)。在另一實施例中,近端存取指令是接收單元101對與之同在核心空間(kernel space)中且從屬於存取單元105的驅動程式的行程間通訊(inter-process communication,簡稱IPC)。近端存取指令用以指示存取單元105存取其所耦接的儲存陣列2。此處的存取被稱為近端存取,因為存取單元105和儲存陣列2間可能是匯流排、纜線(cable)或區域網路。存取單元105與儲存陣列2的近端關係請參見第1C圖。第1C圖係依據本發明一實施例關於儲存陣列的方塊圖。如第1C圖所示,儲存陣列2是任意數量的直接附加儲存(direct-attached storage,簡稱DAS)節點21、網路附加儲存(network-attached storage,簡稱NAS)節點23或儲存區域網路(storage area network,簡稱SAN)25的任意組合,其中網路附加儲存節點23係透過有線或無線 的網路31耦接存取單元105。作為儲存陣列2的基本單元,儲存節點可以是塊裝置,如直接附加儲存節點21或組成儲存區域網路25。請注意儲存陣列2係對應於前述儲存體或儲存資源裝置1,為存取單元105或塊儲存閘道裝置10所見,而存取單元115或塊儲存閘道裝置11看到的可能是另外一個儲存陣列。當然儲存陣列可以彼此分離或至少部份重疊,它們是本發明提及的所有儲存節點的一個搜集(collection)或集族(family of sets)。
近端存取對應前述系統呼叫所指示的對儲存體的本機存取;換句話說,兩種存取的操作本質是一樣的,如若伺服模組12的目的是將某筆原始資料寫入儲存體,則依據接收單元101的指令轉換,存取單元105責成編解碼單元103產生原始資料的可容錯版本,並將之寫入儲存陣列2,或者編解碼單元113產生可容錯版本的資料,並將之與近端存取指令轉交給存取單元115處理。
即使儲存陣列2中部分節點損壞或失效,由於寫入的是可容錯資料,在大多情況下不會影響伺服模組12後續可能對原始資料的提取(retrieval)。可容錯通常意味著在原始資料中引入一定程度的冗餘(redundancy)。具體而言,在一實施例中,編解碼單元103執行原始資料的前向錯誤更正(forward error correction,簡稱FEC),或者說編解碼單元103以某種錯誤更正碼(error-correcting code,簡稱ECC)對 原始資料編碼。錯誤更正碼種類繁多,本發明所屬技術領域中具通常知識者應能自由使用或設計。以抹除碼(erasure code)為例,請參見第2A圖。第2A圖係依據本發明一實施例提供對塊儲存的存取的方法的部分流程圖。如第2A圖所示,在接收單元101攔截指示將原始資料寫入儲存體的系統呼叫(步驟S10)並產生近端存取指令(步驟S12)後,於步驟S14中,編解碼單元103依據原始資料和所用的抹除碼產生正整數m個資料塊。資料塊可能是部份的原始資料、用來更正錯誤的冗餘或兩者的組合。接著,存取單元105於步驟S16中選擇儲存陣列2的某些節點,並分別將資料塊(和其他必要資訊)寫入這些節點。視節點和資料塊的相對數量,儲存陣列2中可能有節點並未儲存m 資料塊中的任何一個,每個節點都恰儲存m 分之一的可容錯版本,或某些節點儲存了m 個中不只一個資料塊。
依據抹除碼的原理,只要有小於m 的任正整數k 個前述資料塊,就可還原出原始資料;也就是說,假設儲存陣列2中每個節點都儲存著m 分之一的可容錯資料,當損壞或失效的節點不多於m -k 個時,原始資料的完整和正確性無虞。對應第2A圖,請參見第2B圖。第2B圖係另一張依據本發明一實施例提供對塊儲存的存取的方法的部分流程圖。如第2B圖所示,在接收單元101攔截指示自儲存體讀取原始資料的系統呼叫(步驟S11)並產生近端存取指令(步驟S13) 後,於步驟S15中,存取單元105自儲存陣列2中儲存有m 資料塊其中之一的節點讀取至少k 個資料塊。接著,編解碼單元103於步驟S17中依據所讀取的資料塊(和其他必要資訊)還原出原始資料。
請參見第3圖。第3圖係依據本發明一實施例關於儲存中介系統的方塊圖。如第3圖所示,儲存中介系統4包含儲存資源裝置41、42,以及負載平衡裝置40。儲存資源裝置41包含塊儲存閘道模組410、伺服模組412、維護模組414與近端存取模組416。儲存資源裝置41可以就是第1圖中的儲存資源裝置1,因此伺服模組412就是伺服模組12,塊儲存閘道模組410和塊儲存閘道模組10同樣於存取單元105耦接儲存陣列2。伺服模組412與可以網路耦接的用戶端32溝通,尤其是自用戶端32接收其對於儲存資源裝置41的遠端存取指令。伺服模組412和用戶端32的通訊可以遵守網際網路小型電腦系統介面(Internet Small Computer System Interface,簡稱iSCSI)或其乙太網路對應(HyperSCSI)、光纖波道(Fibre Channel)或其乙太網路或網際網路協定上的(Internet Protocol,簡稱IP)變形(Fibre Channel over Ethernet或Fibre Channel over IP)或乙太網路上的先進技術附件(ATA over Ethernet,ATA係Advanced Technology Attachment的縮寫)等網路儲存協定。在iSCSI的術語中,儲存資源裝置41和42可以代表同樣的儲存標的(target),而伺服模組412可 以是等候SCSI指令的常駐程式(daemon),如常見的tgtd。
仍以iSCSI為例,用戶端32、負載平衡裝置40和儲存資源裝置41、42的互動請參見第4A圖。第4A圖係本實施例中儲存中介方法的流程圖。如第4A圖所示,於步驟S41中,用戶端32傳送遠端存取要求,詢問負載平衡裝置40如何存取某儲存標的。於步驟S43中,負載平衡裝置40從儲存資源裝置41、42及儲存中介系統4可能尚有的其他儲存資源裝置中選擇其一。假設被選出的是儲存資源裝置41,則負載平衡裝置40於步驟S45中將儲存資源裝置41的位址打包在答允訊息中回覆給用戶端32。此處位址可能是包含域名或埠號的網路位址,或足以辨識儲存資源裝置41的某個代碼。在這種意義上,負載平衡裝置40亦具有類似域名伺服器(domain name server,簡稱DNS)的功能。
於步驟S47中,用戶端32依據步驟S45中所得的位址,以發起者(initiator)的身分對儲存資源裝置41發出遠端存取指令。遠端存取指令由伺服模組412轉換為系統呼叫,並於步驟S49中為塊儲存閘道模組410攔截,其後流程如第2A圖或第2B圖所闡明。
在一實施例中,正常運作的儲存資源裝置41和42會定期向負載平衡裝置40以心跳訊息報備,而負載平衡裝置40即依據這些心跳訊息的有無和內容執行步驟S43。具體而言,以儲存資源裝置41為例,請參見第4B圖。如第4B圖 所示,週期性地,於步驟S402中,維護模組414傳送心跳訊息。於步驟S404中,負載平衡裝置40因為適才接收到儲存資源裝置41的心跳訊息,判斷出儲存資源裝置41仍正常運作,於步驟S406中將之列入候選範圍,並預期下一循環的心跳訊息於步驟S402中自維護模組414傳來。在一實施例中,候選範圍中的儲存資源裝置是因應對它們所代表的儲存標的的遠端存取要求於步驟S408中輪流被選擇,如儲存資源裝置41和42交替。
如前所述,儲存陣列2中可能有直接附加儲存節點21,如實作儲存資源裝置41的計算機固有的硬碟。在一實施例中,儲存資源裝置41的心跳訊息還包含其負載量,例如直接附加儲存節點21尚餘多少比例或多少單位的容量。在另一實施例中,負載平衡裝置40透過其他管道,主動或被動偵知儲存資源裝置41的負載何如。在儲存中介系統4中,假設儲存資源裝置41的負載顯著多於儲存資源裝置42或可能存在的其他儲存資源裝置者,如其負載量超過所有儲存資源裝置的負載量的平均達一個標準差,則負載平衡裝置40發出指令,重新分配儲存資源裝置41超額負載的部分,如將之轉移至儲存資源裝置42。此處重新分配的指令依實作方式不同,可以傳送至伺服模組412、維護模組414或前述其他管道。
如第3圖所示,儲存資源裝置41以塊儲存閘道模組410及近端存取模組416耦接直接附加儲存節點21。當 然近端存取模組416可以但不一定和存取單元105共用程式碼。在一實施例中,當儲存資源裝置42對其所見的儲存陣列進行近端存取,而此儲存陣列包含直接附加儲存節點21時,儲存資源裝置42可透過近端存取模組416完成近端存取中與直接附加儲存節點21有關的部分。具體而言,儲存資源裝置41的網路介面卡(network interface controller,簡稱NIC)的驅動程式可被修改或插入,以處理關聯於儲存中介系統4、如來自其他儲存資源裝置的特殊指令。
請參見第5圖。第5圖係依據本發明一實施例雲端儲存系統的方塊圖。如第5圖所示,雲端儲存系統5包含負載平衡裝置50、儲存資源裝置51、52以及形成儲存節點母集(superset)53的多個儲存節點。負載平衡裝置50可以就是第3圖中的負載平衡裝置40,儲存資源裝置51或52可以就是儲存資源裝置41,而儲存節點母集53亦是儲存陣列2的母集。外界用戶端透過網路存取雲端儲存系統5首先是和負載平衡裝置50,接著是和儲存資源裝置51、52或雲端儲存系統5中可能尚有的儲存資源裝置交談,其中流程詳如第4A圖中步驟S41至S47所述。
本發明提供之內容遞送裝置用於部署儲存資源裝置,特別是使之具有塊儲存閘道模組。具體而言,內容遞送裝置可以提供將實作儲存資源裝置的計算機下載塊儲存閘道模組的安裝或修補(patch)檔案,或內容遞送裝置可以將 作業系統組態推送(push)至計算機。又者,內容遞送裝置可以單純是檔案伺服器,供某雲端儲存系統的管理端下載實作提供對塊儲存的存取的方法的程式碼,以配送給所管理的儲存資源裝置。管理端耦接一或多個儲存資源裝置的方式類似負載平衡裝置者。
綜上所述,依據本發明中介用戶端與塊儲存,可以成本平易的大宗硬體架構出滿足負載平衡、高可用性和可伸縮的雲端儲存。由於本發明純以軟體定義儲存,不倚賴任何的特殊硬體設計,在管理上具彈性與機敏性。
雖然本發明以前述之實施例揭露如上,然其並非用以限定本發明。在不脫離本發明之精神和範圍內,所為之更動與潤飾,均屬本發明之專利保護範圍。關於本發明所界定之保護範圍請參考所附之申請專利範圍。
1‧‧‧儲存資源裝置
10‧‧‧塊儲存閘道模組
101‧‧‧接收單元
103‧‧‧編解碼單元
105‧‧‧存取單元
12‧‧‧伺服模組
2‧‧‧儲存陣列

Claims (48)

  1. 一種塊儲存閘道模組,包含:一接收單元,用於攔截對一作業系統的一系統呼叫,以產生一近端存取指令,該系統呼叫指示對一儲存體進行一本機存取;以及一存取單元,用於依據該近端存取指令,對一儲存陣列進行一近端存取,該儲存陣列對應該儲存體,該近端存取對應該本機存取。
  2. 如請求項1所述的塊儲存閘道模組,其中該接收單元形成至少部分的該作業系統中用於處理該系統呼叫的程式碼。
  3. 如請求項2所述的塊儲存閘道模組,其中該作業系統的一系統呼叫表中關聯於該系統呼叫的一條目指向該接收單元。
  4. 如請求項1所述的塊儲存閘道模組,其中該近端存取指令係一輸出入控制,至少部分的該存取單元位於該作業系統的使用者空間。
  5. 如請求項1所述的塊儲存閘道模組,其中該近端存取指令係一行程間通訊,該存取單元包含一驅動程式。
  6. 如請求項1所述的塊儲存閘道模組,更包含:一編解碼單元,耦接該存取單元,用於產生對應一原始資料的一可容錯資料; 其中若該本機存取係將該原始資料寫入該儲存體,則該近端存取係將該可容錯資料寫入該儲存陣列。
  7. 如請求項6所述的塊儲存閘道模組,其中當該編解碼單元產生該可容錯資料時,該編解碼單元以一錯誤更正碼編碼該原始資料。
  8. 如請求項7所述的塊儲存閘道模組,其中當該編解碼單元以該錯誤更正碼編碼該原始資料時,該編解碼單元依據該原始資料和該錯誤更正碼產生m 個資料塊,m 係正整數,該m 個資料塊形成至少部分的該可容錯資料。
  9. 如請求項8所述的塊儲存閘道模組,其中該儲存陣列包含多個儲存節點,且當該存取單元將該可容錯資料寫入該儲存陣列時,該存取單元將該m 個資料塊分別選擇性地寫入該些儲存節點。
  10. 如請求項8所述的塊儲存閘道模組,其中該編解碼單元更用於自該可容錯資料還原出該原始資料,且若該本機存取係自該儲存體讀取該原始資料,則該近端存取係自該儲存陣列讀取該可容錯資料。
  11. 如請求項10所述的塊儲存閘道模組,其中當該編解碼單元自該可容錯資料還原出該原始資料時,該編解碼單元依據該m 個資料塊中任k 個資料塊產生該原始資料,k 係正整數且不大於m
  12. 如請求項1所述的塊儲存閘道模組,更包含: 一編解碼單元,耦接該存取單元,用於自對應一原始資料的一可容錯資料還原出該原始資料;其中若該本機存取係自該儲存體讀取該原始資料,則該近端存取係自該儲存陣列讀取該可容錯資料。
  13. 一種提供對塊儲存的存取的方法,包含:攔截對一作業系統的一系統呼叫,以產生一近端存取指令,該系統呼叫指示對一儲存體進行一本機存取;以及依據該近端存取指令,對一儲存陣列進行一近端存取,該儲存陣列對應該儲存體,該近端存取對應該本機存取。
  14. 如請求項13所述提供對塊儲存的存取的方法,其中若該本機存取係將一原始資料寫入該儲存體,則對該儲存陣列進行該近端存取的步驟包含:產生對應該原始資料的一可容錯資料;以及將該可容錯資料寫入該儲存陣列。
  15. 如請求項14所述提供對塊儲存的存取的方法,其中產生該可容錯資料的步驟包含以一錯誤更正碼編碼該原始資料。
  16. 如請求項15所述提供對塊儲存的存取的方法,其中以該錯誤更正碼編碼該原始資料的步驟包含依據該原始資料和該錯誤更正碼產生m 個資料塊,m 係正整數,該m 個資料塊形成至少部分的該可容錯資料。
  17. 如請求項16所述提供對塊儲存的存取的方法,其中該儲存陣列包含多個儲存節點,且將該可容錯資料寫入該儲存陣列的步驟包含將該m 個資料塊分別選擇性地寫入該些儲存節點。
  18. 如請求項16所述提供對塊儲存的存取的方法,其中若該本機存取係自該儲存體讀取一原始資料,則對該儲存陣列進行該近端存取的步驟包含:自該儲存陣列讀取該可容錯資料;以及自該可容錯資料還原出該原始資料。
  19. 如請求項18所述提供對塊儲存的存取的方法,其中自該可容錯資料還原出該原始資料的步驟包含依據該m 個資料塊中任k 個資料塊產生該原始資料,k 係正整數且不大於m
  20. 如請求項13所述提供對塊儲存的存取的方法,其中若該本機存取係自該儲存體讀取該原始資料,則對該儲存陣列進行該進端存取的步驟包含:自該儲存陣列讀取對應該原始資料的一可容錯資料;以及自該可容錯資料還原出該原始資料。
  21. 如請求項13所述提供對塊儲存的存取的方法,其中該近端存取指令係一輸出入控制或一行程間通訊。
  22. 一種儲存中介系統,包含: 一或多個儲存資源裝置,每一該儲存資源裝置包含:一伺服模組,用於接收一遠端存取指令,以產生一系統呼叫,該遠端存取指令指示對該儲存資源裝置進行一遠端存取;以及一塊儲存閘道模組,用於攔截該系統呼叫,並用於依據該系統呼叫,對一儲存陣列進行一近端存取,該儲存陣列對應該儲存資源裝置,該近端存取對應該遠端存取;以及一負載平衡裝置,用於接收一遠端存取要求,用於選擇該或該些儲存資源裝置其中之一,以及用於傳送一答允訊息,該答允訊息包含被選擇的該儲存資源裝置的一位址。
  23. 如請求項22所述的儲存中介系統,其中若該遠端存取係將一原始資料寫入該儲存資源裝置,則該塊儲存閘道模組更用於產生對應該原始資料的一可容錯資料,該近端存取係將該可容錯資料寫入該儲存陣列。
  24. 如請求項22所述的儲存中介系統,其中若該遠端存取係自該儲存資源裝置讀取一原始資料,則該近端存取係自該儲存陣列讀取對應該原始資料的一可容錯資料,該塊儲存閘道模組更用於自該可容錯資料還原出該原始資料。
  25. 如請求項22所述的儲存中介系統,其中每一該儲存資源裝置更包含一維護模組,該維護模組用於週期性地傳送一 心跳訊息,且該負載平衡裝置選擇該或該些儲存資源裝置其中之一係依據來自每一該儲存資源裝置的該心跳訊息。
  26. 如請求項25所述的儲存中介系統,其中當該負載平衡裝置選擇該或該些儲存資源裝置其中之一時,該負載平衡裝置對每一該儲存資源裝置判斷近期內是否接收到來自該儲存資源裝置的該心跳訊息,其中若近期內已接收到來自該儲存資源裝置的該心跳訊息,該負載平衡裝置將該儲存資源裝置列入一候選範圍。
  27. 如請求項26所述的儲存中介系統,其中被選擇的該儲存資源裝置係輪流被選擇自該候選範圍。
  28. 如請求項22所述的儲存中介系統,其中每一該儲存資源裝置所對應的該儲存陣列包含一或多個儲存節點,該或該些儲存節點其中至少一被直接附加於該儲存資源裝置。
  29. 如請求項28所述的儲存中介系統,其中每一該儲存資源裝置更包含一近端存取模組,該近端存取模組用於對被直接附加於該儲存資源裝置的該儲存節點進行至少部分的來自另一該儲存資源裝置的該近端存取。
  30. 如請求項28所述的儲存中介系統,其中該負載平衡裝置更用於監測每一該儲存資源裝置的一負載量,該負載量關聯於被直接附加於該儲存資源裝置的該儲存節點,且當該儲存中介系統包含多個儲存資源裝置,且該些儲存資源裝置中一第一儲存資源裝置的該負載量顯著多於該些儲存 資源裝置中一第二儲存資源裝置的該負載量時,該負載平衡裝置更用於在該些儲存資源裝置中重新分配該第一儲存資源裝置的負載。
  31. 一種儲存中介方法,包含:接收一遠端存取要求;選擇一或多個儲存資源裝置其中之一;傳送一答允訊息,該答允訊息包含被選擇的該儲存資源裝置的一位址;接收一遠端存取指令,以產生一系統呼叫,該遠端存取指令指示對被選擇的該儲存資源裝置進行一遠端存取;攔截該系統呼叫;以及依據該系統呼叫,對一儲存陣列進行一近端存取,該儲存陣列對應該儲存資源裝置,該近端存取對應該遠端存取。
  32. 如請求項31所述的儲存中介方法,其中若該遠端存取係將一原始資料寫入被選擇的該儲存資源裝置,則對該儲存陣列進行該近端存取的步驟包含:產生對應該原始資料的一可容錯資料;以及將該可容錯資料寫入該儲存陣列。
  33. 如請求項31所述的儲存中介方法,其中若該遠端存取係自被選擇的該儲存資源裝置讀取一原始資料,則對該儲存陣列進行該近端存取的步驟包含: 自該儲存陣列讀取對應該原始資料的一可容錯資料;以及自該可容錯資料還原出該原始資料。
  34. 如請求項31所述的儲存中介方法,更包含:週期性地傳送一心跳訊息;其中選擇該或該些儲存資源裝置其中之一的步驟係依據來自每一該儲存資源裝置的該心跳訊息,選擇該或該些儲存資源裝置其中之一。
  35. 如請求項34所述的儲存中介方法,其中選擇該或該些儲存資源裝置其中之一的步驟包含:對每一該儲存資源裝置,判斷近期內是否接收到來自該儲存資源裝置的該心跳訊息;其中若近期內已接收到來自該儲存資源裝置的該心跳訊息,將該儲存資源裝置列入一候選範圍。
  36. 如請求項35所述的儲存中介方法,其中被選擇的該儲存資源裝置係輪流被選擇自該候選範圍。
  37. 一種雲端儲存系統,包含:多個儲存節點;一或多個儲存資源裝置,每一該儲存資源裝置用於接收一遠端存取指令,用於攔截對應該遠端存取指令的一系統呼叫,以及用於依據該系統呼叫,對一儲存陣列進行一近端存取,該遠端存取指令指示對該儲存資源裝置進行一 遠端存取,該儲存陣列對應該儲存資源裝置且包含該些儲存節點其中一或多個;以及一負載平衡裝置,用於接收一遠端存取要求,用於選擇該或該些儲存資源裝置其中之一,以及用於傳送一答允訊息,該答允訊息包含被選擇的該儲存資源裝置的一位址。
  38. 如請求項37所述的雲端儲存系統,其中每一該儲存資源裝置所對應的該儲存陣列所包含的該或該些儲存節點其中至少一被直接附加於該儲存資源裝置。
  39. 如請求項38所述的雲端儲存系統,其中該負載平衡裝置更用於監測每一該儲存資源裝置的一負載量,該負載量關聯於被直接附加於該儲存資源裝置的該儲存節點,且該負載平衡裝置更用於重新分配該或該些儲存資源裝置其中之一的負載。
  40. 一種內容遞送裝置,用於部署一計算機,使該計算機具有使該計算機執行多個指令的程式碼,該些指令包含:攔截對一作業系統的一系統呼叫,以產生一近端存取指令,該系統呼叫指示對一儲存體進行一本機存取;以及依據該近端存取指令,對一儲存陣列進行一近端存取,該儲存陣列對應該儲存體,該近端存取對應該本機存取。
  41. 如請求項40所述的內容遞送裝置,其中若該本機存取係將一原始資料寫入該儲存體,則對該儲存陣列進行該近端存取的指令包含:產生對應該原始資料的一可容錯資料;以及將該可容錯資料寫入該儲存陣列。
  42. 如請求項41所述的內容遞送裝置,其中產生該可容錯資料的指令包含以一錯誤更正碼編碼該原始資料。
  43. 如請求項42所述的內容遞送裝置,其中以該錯誤更正碼編碼該原始資料的指令包含依據該原始資料和該錯誤更正碼產生m 個資料塊,m 係正整數,該m 個資料塊形成至少部分的該可容錯資料。
  44. 如請求項43所述的內容遞送裝置,其中該儲存陣列包含多個儲存節點,且將該可容錯資料寫入該儲存陣列的指令包含將該m 個資料塊分別選擇性地寫入該些儲存節點。
  45. 如請求項43所述的內容遞送裝置,其中若該本機存取係自該儲存體讀取一原始資料,則對該儲存陣列進行該近端存取的指令包含:自該儲存陣列讀取該可容錯資料;以及自該可容錯資料還原出該原始資料。
  46. 如請求項45所述的內容遞送裝置,其中自該可容錯資料還原出該原始資料的指令包含依據該m 個資料塊中任k 個資料塊產生該原始資料,k 係正整數且不大於m
  47. 如請求項40所述的內容遞送裝置,其中若該本機存取係自該儲存體讀取該原始資料,則對該儲存陣列進行該進端存取的指令包含:自該儲存陣列讀取對應該原始資料的一可容錯資料;以及自該可容錯資料還原出該原始資料。
  48. 如請求項40所述的內容遞送裝置,其中該近端存取指令係一輸出入控制或一行程間通訊。
TW102148862A 2013-12-27 2013-12-27 塊儲存閘道模組、儲存中介系統、雲端儲存系統、提供對塊儲存的存取的方法、儲存中介方法與內容遞送裝置 TWI510932B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW102148862A TWI510932B (zh) 2013-12-27 2013-12-27 塊儲存閘道模組、儲存中介系統、雲端儲存系統、提供對塊儲存的存取的方法、儲存中介方法與內容遞送裝置
CN201410013954.6A CN104750428B (zh) 2013-12-27 2014-01-13 块储存存取和网关模块、储存系统和方法与内容递送装置
US14/270,872 US9477429B2 (en) 2013-12-27 2014-05-06 Block storage gateway module, method for providing access to block storage, mediator system and mediating method for storage, cloud storage system, and content delivery apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW102148862A TWI510932B (zh) 2013-12-27 2013-12-27 塊儲存閘道模組、儲存中介系統、雲端儲存系統、提供對塊儲存的存取的方法、儲存中介方法與內容遞送裝置

Publications (2)

Publication Number Publication Date
TW201525718A TW201525718A (zh) 2015-07-01
TWI510932B true TWI510932B (zh) 2015-12-01

Family

ID=53481868

Family Applications (1)

Application Number Title Priority Date Filing Date
TW102148862A TWI510932B (zh) 2013-12-27 2013-12-27 塊儲存閘道模組、儲存中介系統、雲端儲存系統、提供對塊儲存的存取的方法、儲存中介方法與內容遞送裝置

Country Status (3)

Country Link
US (1) US9477429B2 (zh)
CN (1) CN104750428B (zh)
TW (1) TWI510932B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102358177B1 (ko) * 2015-12-24 2022-02-07 에스케이하이닉스 주식회사 제어회로 및 제어회로를 포함하는 메모리 장치
KR102260369B1 (ko) 2014-10-28 2021-06-03 에스케이하이닉스 주식회사 보정 회로 및 이를 포함하는 보정 장치
US11082043B2 (en) 2014-10-28 2021-08-03 SK Hynix Inc. Memory device
US11755255B2 (en) 2014-10-28 2023-09-12 SK Hynix Inc. Memory device comprising a plurality of memories sharing a resistance for impedance matching
US10067903B2 (en) 2015-07-30 2018-09-04 SK Hynix Inc. Semiconductor device
KR102515924B1 (ko) 2016-04-19 2023-03-30 에스케이하이닉스 주식회사 미디어 컨트롤러 및 이를 포함한 데이터 저장 장치
TWI578262B (zh) * 2015-08-07 2017-04-11 緯創資通股份有限公司 風險評估系統及資料處理方法
US10031823B2 (en) 2016-03-21 2018-07-24 International Business Machines Corporation Dangerous system command detection
CN111858128B (zh) * 2019-04-26 2023-12-29 深信服科技股份有限公司 一种纠删码数据修复方法、装置、设备及存储介质
CN112748881B (zh) * 2021-01-15 2024-02-20 长城超云(北京)科技有限公司 一种面向虚拟化场景的存储容错方法和集群系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100333116A1 (en) * 2009-06-30 2010-12-30 Anand Prahlad Cloud gateway system for managing data storage to cloud storage sites
CN102270161A (zh) * 2011-06-09 2011-12-07 华中科技大学 一种基于纠删码的多等级容错数据存储、读取和恢复方法
TWM434977U (en) * 2012-04-10 2012-08-01 Zheng-Yan Peng Appended network storage system that supports cloud service
US20120233134A1 (en) * 2011-03-08 2012-09-13 Rackspace Us, Inc. Openstack file deletion

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1429246A1 (en) * 2002-12-13 2004-06-16 Sun Microsystems, Inc. Apparatus and method for switching mode in a computer system
US9418040B2 (en) * 2005-07-07 2016-08-16 Sciencelogic, Inc. Dynamically deployable self configuring distributed network management system
US7774363B2 (en) * 2005-12-29 2010-08-10 Nextlabs, Inc. Detecting behavioral patterns and anomalies using information usage data
WO2012005730A1 (en) * 2010-07-08 2012-01-12 Hewlett-Packard Development Company L. P. System and method for document policy enforcement
CN101923678A (zh) * 2010-07-30 2010-12-22 武汉天喻信息产业股份有限公司 一种企业管理软件的数据安全保护方法
CN102981440B (zh) * 2012-11-02 2014-10-29 武汉理工大学 基于SaaS的智能设备监控管理系统
US20140372508A1 (en) * 2013-06-14 2014-12-18 Andrew T. Fausak Native client tunnel service for client-server communication
CN103281400A (zh) * 2013-06-18 2013-09-04 清华大学 用于云存储网关的数据切分编码和恢复方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100333116A1 (en) * 2009-06-30 2010-12-30 Anand Prahlad Cloud gateway system for managing data storage to cloud storage sites
US20120233134A1 (en) * 2011-03-08 2012-09-13 Rackspace Us, Inc. Openstack file deletion
CN102270161A (zh) * 2011-06-09 2011-12-07 华中科技大学 一种基于纠删码的多等级容错数据存储、读取和恢复方法
TWM434977U (en) * 2012-04-10 2012-08-01 Zheng-Yan Peng Appended network storage system that supports cloud service

Also Published As

Publication number Publication date
US9477429B2 (en) 2016-10-25
US20150186200A1 (en) 2015-07-02
CN104750428B (zh) 2018-03-02
CN104750428A (zh) 2015-07-01
TW201525718A (zh) 2015-07-01

Similar Documents

Publication Publication Date Title
TWI510932B (zh) 塊儲存閘道模組、儲存中介系統、雲端儲存系統、提供對塊儲存的存取的方法、儲存中介方法與內容遞送裝置
US9619389B1 (en) System for a backward and forward application environment compatible distributed shared coherent storage
US10542073B2 (en) File transfer to a distributed file system
US11907410B2 (en) Method and device for managing storage system
US11086525B2 (en) Resilient external memory
US9792066B2 (en) Handling failure of a command to add a record to a log
US10248345B1 (en) Persisting data as information
US11210003B2 (en) Method, device and computer program product for restoring data based on replacing child node identifiers with parent node identifier
US10620871B1 (en) Storage scheme for a distributed storage system
US20200250041A1 (en) System and method for log metadata automatic recovery on dual controller storage system
US11740822B2 (en) Methods and systems for error detection and correction in a distributed storage system
US10884886B2 (en) Copy-on-read process in disaster recovery
US11044312B2 (en) Storage segment server covered cache
US9619336B2 (en) Managing production data
US11947419B2 (en) Storage device with data deduplication, operation method of storage device, and operation method of storage server
US20160019128A1 (en) Systems and methods providing mount catalogs for rapid volume mount
US11467906B2 (en) Storage system resource rebuild based on input-output operation indicator
US11334456B1 (en) Space efficient data protection
US10896201B2 (en) Synchronization of block based volumes
US11061585B1 (en) Integration of NVMe device with DRAM cache system and method
US20190028542A1 (en) Method and device for transmitting data
US11762682B2 (en) Methods and systems for storing data in a distributed system using offload components with advanced data services
US20200334103A1 (en) Storage system, drive housing thereof, and parity calculation method
US20210034288A1 (en) System and method for networkless peer communication for dual storage processor virtual storage appliances
US9967337B1 (en) Corruption-resistant backup policy