TWI728634B - 在儲存伺服器中進行資料存取管理的方法與裝置 - Google Patents

在儲存伺服器中進行資料存取管理的方法與裝置 Download PDF

Info

Publication number
TWI728634B
TWI728634B TW109100002A TW109100002A TWI728634B TW I728634 B TWI728634 B TW I728634B TW 109100002 A TW109100002 A TW 109100002A TW 109100002 A TW109100002 A TW 109100002A TW I728634 B TWI728634 B TW I728634B
Authority
TW
Taiwan
Prior art keywords
storage
data
storage device
request
storage devices
Prior art date
Application number
TW109100002A
Other languages
English (en)
Other versions
TW202036542A (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 慧榮科技股份有限公司
Publication of TW202036542A publication Critical patent/TW202036542A/zh
Application granted granted Critical
Publication of TWI728634B publication Critical patent/TWI728634B/zh

Links

Images

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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • 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/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • 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/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/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/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
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications

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)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本發明提供一種在一儲存伺服器中進行資料存取管理的方法以及相關裝置諸如一主裝置、一儲存裝置等。該方法包含:因應將第一組資料寫入該儲存伺服器的用戶端請求,利用該儲存伺服器中的該主裝置觸發向該儲存伺服器中的複數個儲存裝置的每一儲存裝置廣播對應於該用戶端請求的內部請求;以及因應對應於用戶端請求的內部請求,利用該複數個儲存裝置的每一儲存裝置在所述每一儲存裝置中搜尋第一組資料來判斷第一組資料是否已被儲存在任一儲存裝置中,以控制該儲存伺服器在沒有於該儲存伺服器中產生該第一組資料的重複的情況下完成用戶端請求。

Description

在儲存伺服器中進行資料存取管理的方法與裝置
本發明係關於資料儲存,尤指一種在一儲存伺服器中進行資料存取管理的方法與裝置,其中該裝置的例子可包含(但不限於):一主裝置、一儲存裝置等。
具備多個儲存裝置的儲存伺服器可有助於加強資料儲存的使用彈性,然而,在透過這樣的架構創造儲存空間時,可能會發生某些問題。由於使用者資料會變化,特定類型的資料可能被接收到以儲存於該儲存伺服器中,而對這些類型的資料進行資料壓縮可能相當耗時,造成該儲存伺服器的整體效能衰退。因此,需要一種新穎的方法以及相關架構,以在沒有副作用或較不會帶來副作用的情況下解決相關技術的問題。
因此,本發明的一目的在於提供一種在一儲存伺服器中進行資料存取管理的方法且提供相關裝置諸如一主裝置、一儲存裝置等,以解決上述問題。
本發明的另一目的在於提供一種在一儲存伺服器中進行資料存取管理的方法且提供相關裝置諸如一主裝置、一儲存裝置等,以在沒有副作用或較不會帶來副作用的情況下解決相關技術的問題。
本發明的至少一實施例提供一種在一儲存伺服器中進行資料存取管理的方法,其中該方法係應用於該儲存伺服器。該方法可包含:因應將一第一 組資料寫入該儲存伺服器的一用戶端請求(client request),利用該儲存伺服器中的一主裝置觸發向該儲存伺服器中的複數個儲存裝置的每一儲存裝置廣播(broadcast)對應於該用戶端請求的一內部請求(internal request),其中該儲存伺服器包含該主裝置以及耦接至該主裝置的該複數個儲存裝置,該主裝置係用來控制該儲存伺服器的運作,以及該複數個儲存裝置係用來為該儲存伺服器儲存資訊;以及因應對應於該用戶端請求的該內部請求,利用該複數個儲存裝置的所述每一儲存裝置在所述每一儲存裝置中搜尋該第一組資料來判斷該第一組資料是否已被儲存在該複數個儲存裝置的任一儲存裝置中,以控制該儲存伺服器在沒有於該儲存伺服器中產生該第一組資料的重複(duplication)的情況下完成該用戶端請求。
除了以上方法,本發明亦提供一種主裝置。該主裝置包含用來控制該主裝置在一儲存伺服器中進行資料存取管理的一控制電路,其中該儲存伺服器包含該主裝置以及耦接至該主裝置的複數個儲存裝置,該主裝置係用來控制該儲存伺服器的運作,以及該複數個儲存裝置係用來為該儲存伺服器儲存資訊。例如,因應將一第一組資料寫入該儲存伺服器的一用戶端請求,該主裝置觸發向該複數個儲存裝置的每一儲存裝置廣播對應於該用戶端請求的一內部請求。另外,透過對應於該用戶端請求的該內部請求,該主裝置控制該複數個儲存裝置的所述每一儲存裝置在所述每一儲存裝置中搜尋該第一組資料來判斷該第一組資料是否已被儲存在該複數個儲存裝置的任一儲存裝置中,以控制該儲存伺服器在沒有於該儲存伺服器中產生該第一組資料的重複的情況下完成該用戶端請求。
除了以上方法,本發明亦提供一儲存裝置,且該儲存裝置包含一一非揮發性記憶體(non-volatile memory,NV memory)以及一記憶體控制器,其中該非揮發性記憶體包含至少一非揮發性記憶體元件(例如一或多個非揮發性記 憶體元件)。該記憶體控制器係用來控制該非揮發性記憶體的存取,以容許一主裝置透過該記憶體控制器存取該非揮發性記憶體,以在一儲存伺服器中進行資料存取管理,其中該儲存伺服器包含該主裝置以及耦接至該主裝置的複數個儲存裝置,該主裝置係用來控制該儲存伺服器的運作,以及該複數個儲存裝置係用來為該儲存伺服器儲存資訊。例如,因應將一第一組資料寫入該儲存伺服器的一用戶端請求,該主裝置觸發向該複數個儲存裝置的每一儲存裝置廣播對應於該用戶端請求的一內部請求,其中該複數個儲存裝置包含該儲存裝置。另外,因應對應於該用戶端請求的該內部請求,該複數個儲存裝置的所述每一儲存裝置在所述每一儲存裝置中搜尋該第一組資料來判斷該第一組資料是否已被儲存在該複數個儲存裝置的任一儲存裝置中,以控制該儲存伺服器在沒有於該儲存伺服器中產生該第一組資料的重複的情況下完成該用戶端請求。
除了以上方法,本發明亦提供一種儲存裝置的控制器,其中該儲存裝置包含該控制器以及一非揮發性記憶體,且該非揮發性記憶體可包含至少一非揮發性記憶體元件(例如一或多個非揮發性記憶體元件)。該控制器包含一處理電路,其中該處理電路係用來控制該控制器的運作以控制該非揮發性記憶體的存取,以容許一主裝置透過該控制器存取該非揮發性記憶體,以在一儲存伺服器中進行資料存取管理,其中該儲存伺服器包含該主裝置以及耦接至該主裝置的複數個儲存裝置,該主裝置係用來控制該儲存伺服器的運作,以及該複數個儲存裝置係用來為該儲存伺服器儲存資訊。例如,因應將一第一組資料寫入該儲存伺服器的一用戶端請求,該主裝置觸發向該複數個儲存裝置的每一儲存裝置廣播對應於該用戶端請求的一內部請求,其中該複數個儲存裝置包含該儲存裝置。另外,因應對應於該用戶端請求的該內部請求,該複數個儲存裝置的所述每一儲存裝置在所述每一儲存裝置中搜尋該第一組資料來判斷該第一組資料是否已被儲存在該複數個儲存裝置的任一儲存裝置中,以控制該儲存伺服器 在沒有於該儲存伺服器中產生該第一組資料的重複的情況下完成該用戶端請求。
本發明的方法以及相關裝置能確保整個儲存伺服器(例如該主裝置以及該複數個儲存裝置)能妥善地運作,以避免相關技術的問題諸如硬體資源滿載/過載。另外,依據本發明的實施例來實施不會大幅增加額外成本。尤其,該複數個儲存裝置中的控制器(諸如記憶體控制器)的製造商不需為這些控制器實施新硬體架構,而設計與製造對應於新硬體架構的新積體電路所需的相關成本能被節省。因此,相關技術的問題能被解決,且整以成本不會增加太多。相較於相關技術,本發明的方法以及相關裝置能在沒有副作用或較不會帶來作用的情況下加強整體效能。
10:儲存伺服器
50:主裝置
52:處理電路
52P:程式模組
53、55:資料存取管理模組
53D:驅動器模組
54:儲存介面電路
56、90、90-1、90-2、...、90-Ns、100、100A、100B:儲存裝置
58:網路介面電路
70、70-1、70-2、...、70-Ns:開關電路
110:記憶體控制器
112:微處理器
112M:唯讀記憶體
112C:程式碼
114:控制邏輯電路
116:隨機存取記憶體
118:傳輸介面電路
120:非揮發性記憶體
122-1、122-2、...、122-N:非揮發性記憶體元件
200:工作流程
210、220、S10、S11、S12、 S13A、S13B、S14、S20、S21、S22、S23A、S23B、S24、S25A、S25B、S30、S31、S32、S33、S34、S35、S35A、S35B、S40、S41、S42、S43、S43’、S44、S45A、S45B、S46:步驟
IR1:第一內部請求
IR2:第二內部請求
IR3:第三內部請求
IR4:第四內部請求
WR1:第一寫入請求
WR2:第二寫入請求
RR1:讀取請求
DR:刪除請求
DATA1、DATA2、DATA3:資料
LBA1、LBA7、LBA11、LBA17、LBA21、LBA27、LBA29:邏輯區塊位址
DR1、DR2、DR3:資料區
TR1、TR2、TR3:表區
UI:使用資訊
MI:映射資訊
第1圖為依據本發明一實施例之一儲存伺服器的示意圖。
第2圖依據本發明一實施例繪示第1圖所示之儲存伺服器中的一儲存裝置的某些實施細節。
第3圖為依據本發明一實施例之在一儲存伺服器中進行資料存取管理的方法的工作流程。
第4圖依據本發明一實施例繪示該方法涉及的兩個儲存裝置。
第5圖依據本發明一實施例繪示該方法的一寫入控制方案。
第6圖依據本發明另一實施例繪示該方法的一寫入控制方案。
第7圖依據本發明一實施例繪示該方法的一讀取控制方案。
第8圖依據本發明另一實施例繪示該方法的一讀取控制方案。
第9圖依據本發明一實施例繪示該方法的一刪除控制方案。
第10圖依據本發明另一實施例繪示該方法的一刪除控制方案。
第11圖為依據本發明另一實施例之一儲存伺服器的示意圖。
第12圖依據本發明一實施例繪示該方法涉及的某些資訊表。
本發明之實施例提供一種在一儲存伺服器中進行資料存取管理的方法及裝置,且該裝置可包含該儲存伺服器的至少一部份(例如一部份或全部)。例如,該裝置可包含該儲存伺服器的一部份諸如該儲存伺服器中的一主裝置或位於該主裝置內的相關控制電路(例如運行著對應於該方法的一或多個程式模組的一處理電路、以及包含有對應於該方法的一或多個子電路的一儲存介面電路)、或是該儲存伺服器中的一儲存裝置或位於該儲存裝置內的相關控制器(例如依據該方法運作的記憶體控制器)。在另一實施例中,該裝置可包含該儲存伺服器的整體。
第1圖為依據本發明一實施例之一儲存伺服器10的示意圖。儲存伺服器10可包含一主裝置50與至少一開關電路(例如一或多個開關電路)諸如Ns個開關電路70-1、70-2、...及70-Ns,且包含複數個儲存裝置90。該複數個儲存裝置90透過上述至少一開關電路諸如Ns個開關電路70-1、70-2、...及70-Ns耦接至主裝置50。尤其,該複數個儲存裝置90可包含Ns組儲存裝置90-1、90-2、...及90-Ns,且Ns組儲存裝置90-1、90-2、...、及90-Ns可分別透過Ns個開關電路70-1、70-2、...及70-Ns耦接至主裝置50。依據本實施例,主裝置50可用來控制儲存伺服器10的運作,而複數個儲存裝置90可用來為儲存伺服器10儲存資訊。
如第1圖所示,主裝置50可包含用來控制主裝置50的運作的一處理電路52(例如至少一處理器以及相關電路諸如隨機存取記憶體(random access memory,RAM)、匯流排等)、用來將開關電路70-1、70-2、...及70-Ns以及儲存 或記憶裝置(例如一或多個硬式磁碟機(hard disk drive,HDD)及/或一或多個固態硬碟(solid state drive,SSD))耦接至主裝置50的至少一儲存介面電路54、以及用來將主裝置50耦接至至少一網路的一網路介面電路58。上述儲存或記憶裝置可包含至少一儲存裝置諸如一或多個儲存裝置,其可統稱為儲存裝置56。例如,儲存裝置56可包含一組儲存裝置,其中該組儲存裝置的其中一者可被用來當作主裝置50的一系統碟,而其它的可用來為主裝置50儲存使用者資料,但本發明不限於此。依據本實施例,運行程式模組52P的處理電路52(尤其,對應於該方法的一資料存取管理模組53)可用來依據該方法控制主裝置50的運作,例如控制主裝置50在儲存伺服器10中進行資料存取管理,而儲存介面電路54可符合一或多個標準(例如串列高級技術附件(Serial Advanced Technology Attachment,可簡稱為「串列ATA」或「SATA」)標準、外設組件互連(Peripheral Component Interconnect,PCI)標準、快捷外設組件互連(Peripheral Component Interconnect Express,可簡稱為PCIe)標準、非揮發性記憶體快捷(Non-Volatile Memory Express,可簡稱為NVMe)標準、結構上非揮發性記憶體快捷(NVMe-over-Fabrics,NVMeoF)標準、小型電腦系統介面(Small Computer System Interface,SCSI)標準等中之一或多者),且可依據該一或多個標準進行通訊,以容許運行程式模組52P的處理電路52透過儲存介面電路54存取儲存裝置56以及該複數個儲存裝置90。另外,網路介面電路58可用來提供有線或無線網路連接,且對應於一或多個使用者的一或多個用戶端(client)裝置可透過該有線或無線網路連接在儲存伺服器10(例如其內的儲存裝置56以及複數個儲存裝置90)中存取(例如讀取或寫入)使用者資料。為便於理解,於第1圖左手邊所示之架構中的主裝置50及相關電路/模組/裝置(例如運行程式模組52P的處理電路52以及儲存介面電路54)可分別作為上述主裝置及其相關電路/模組/裝置(例如運行著對應於該方法的該一或多個程式模組的該處理電路、以及包含有 對應於該方法的該一或多個子電路的該儲存介面電路)的例子。
依據某些實施例,運行程式模組52P的處理電路52或儲存介面電路54可配置(configure)複數個儲存裝置90的至少一部分(例如一部分或全部)以形成一儲存池(storage pool)架構,但本發明不限於此。依據某些實施例,運行程式模組52P的處理電路52或儲存介面電路54可配置複數個儲存裝置90的至少一部分(例如一部分或全部)以形成儲存伺服器10的一容錯式磁碟陣列(Redundant Array of Independent Disks,RAID),諸如一全快閃陣列(All Flash Array,AFA)。
第2圖依據本發明一實施例繪示第1圖所示之儲存伺服器10中的儲存裝置100的某些實施細節,其中儲存裝置100能作為複數個儲存裝置90的任一者的一個例子。尤其,複數個儲存裝置90的每一者可依據儲存裝置100的架構來實施,但本發明不限於此。另外,上述至少一開關電路(例如一或多個開關電路)諸如Ns個開關電路70-1、70-2、...及70-Ns可被統稱為開關電路70。
儲存裝置100可用來提供儲存空間給主裝置50。在主裝置50的控制下,該一或多個用戶端裝置可於該儲存空間中存取(例如讀取或寫入)使用者資料。主裝置50的例子可包含(但不限於):個人電腦諸如桌上型電腦以及膝上型電腦。儲存裝置100的例子可包含(但不限於):固態硬碟、各種類型的嵌入式(embedded)記憶裝置諸如符合PCIe標準的嵌入式記憶裝置。依據本實施例,儲存裝置100可包含一控制器諸如一記憶體控制器110,且可另包含一非揮發性記憶體(non-volatile memory,NV memory)120,其中該控制器係用來控制儲存裝置100的運作以及存取非揮發性記憶體120,而非揮發性記憶體120係用來儲存資訊。非揮發性記憶體120可包含至少一非揮發性記憶體元件(例如一或多個非揮發性記憶體元件)諸如複數個非揮發性記憶體元件122-1、122-2、...及122-N,其中「N」可代表大於一的正整數。例如,非揮發性記憶體120可為一快閃記憶體,而複數個非揮發性記憶體122-1、122-2、...及122-N可為複數個快閃記憶體 晶片(chip)或複數個快閃記憶體裸晶(die),但本發明不限於此。
依據本實施例,記憶體控制器110可用來控制非揮發性記憶體120(例如快閃記憶體)的存取,以容許主裝置50透過記憶體控制器110存取非揮發性記憶體120,以在儲存伺服器10中進行資料存取管理。如第2圖所示,記憶體控制器110可包含一處理電路諸如一微處理器112、一儲存單元諸如一唯讀記憶體(read-only memory,ROM)112M、一控制邏輯電路114、一隨機存取記憶體116以及一傳輸介面電路118,其中以上元件可透過一匯流排互相耦接。隨機存取記憶體116係藉由一靜態隨機存取記憶體(static RAM,SRAM)來實施,但本發明不限於此。隨機存取記憶體116係用來提供內部儲存空間給記憶體控制器110。例如,隨機存取記憶體116可用來當作用來緩衝資料的一緩衝記憶體。另外,本實施例的唯讀記憶體112M係用來儲存一程式碼112C,而微處理器112係用來執行程式碼112C以控制記憶體控制器110的運作以控制快閃記憶體120的存取,以容許主裝置50透過記憶體控制器110存取非揮發性記憶體120,以在儲存伺服器10中進行資料存取管理。在某些例子中,程式碼112C可被儲存在隨機存取記憶體116或任意類型的記憶體中。此外,控制邏輯電路114可用來控制非揮發性記憶體120(例如快閃記憶體),並且可包含用於保護資料及/或進行錯誤更正的一資料保護電路(未顯示),但本發明不限於此。傳輸介面電路118可符合一特定通訊標準(例如PCIe標準),並且可依據該特定通訊標準進行通訊,例如為儲存裝置100進行與主裝置50的通訊,其中儲存介面電路54以及開關電路70可符合該特定通訊標準(例如PCIe標準),以供為儲存裝置100,和主裝置50進行通訊。例如,開關電路70(例如上述至少一開關電路)可被實施成至少一PCIe開關電路(例如一或多個PCIe開關電路),但本發明不限於此。依據某些實施例,開關電路70-1、70-2、...及70-Ns的每一者可被實施成一PCIe開關電路。
依據某些實施例,主裝置50可透過開關電路70傳送多個主裝置指令 以及對應的多個邏輯位址至記憶體控制器以存取儲存裝置100。記憶體控制器110接收該多個主裝置指令以及該多個邏輯位址,並且將該多個主裝置指令轉譯為多個記憶體運作指令(可簡稱為運作指令),再以該多個運作指令控制非揮發性記憶體120來對非揮發性記憶體120中之具有實體位址的多個記憶單元(例如資料頁面)進行讀取、寫入/編程等,其中上述實體位址對應於該多個邏輯位址。當記憶體控制器110對複數個非揮發性記憶體元件122-1、122-2、...及122-N的任一非揮發性記憶體元件122-n進行一抹除運作時(其中「n」可代表在區間[1,N]中的任一整數),非揮發性記憶體元件122-n的多個區塊中之至少一區塊會被抹除,其中該多個區塊中的每一區塊可包含多個頁面(例如資料頁面),而一存取運作(例如讀取或寫入)可對一或多個頁面進行。
第3圖為依據本發明一實施例之在該儲存伺服器中進行資料存取管理的方法的工作流程200。該方法能被應用於儲存伺服器10,尤其是能應用於包含有運行程式模組52P(例如對應於該方法的資料存取管理模組53)的處理電路52的主裝置50、開關電路70-1、70-2、...及70-Ns、以及複數個儲存裝置90的每一者諸如包含有記憶體控制器110的儲存裝置100,其中該控制電路諸如運行資料存取管理模組53的處理電路52可控制主裝置50依據該方法來運作。
在步驟210中,因應將一第一組資料DATA1寫入儲存伺服器10的一用戶端請求,利用儲存伺服器10中的主裝置50觸發向儲存伺服器10中的複數個儲存裝置90的每一儲存裝置,諸如儲存裝置100,廣播對應於該用戶端請求的一內部請求。例如,主裝置50可自一用戶端裝置諸如該一或多個用戶端裝置的任一者接收該用戶端請求,尤其,可自該一或多個用戶端裝置接收包含有此用戶端請求的複數個用戶端請求。依據本實施例,儲存伺服器10可包含上述耦接於主裝置50與複數個儲存裝置90之間的至少一開關電路(例如開關電路70-1、70-2、...及70-Ns),而上述至少一開關電路(例如開關電路70-1、70-2、...及70-Ns)可 將該內部請求廣播並且發送至複數個儲存裝置90的全部。例如,在主裝置50、上述至少一開關電路(例如開關電路70-1、70-2、...及70-Ns)以及複數個儲存裝置90至少符合PCIe標準的情況下,上述至少一開關電路(例如開關電路70-1、70-2、...及70-Ns)可透過上述至少一開關電路的一廣播功能將該內部請求發送至複數個儲存裝置90的全部,但本發明不限於此。
在步驟220中,因應對應於該用戶端請求的該內部請求,利用該複數個儲存裝置的上述每一儲存裝置,諸如儲存裝置100,以在上述每一儲存裝置(例如儲存裝置100)中搜尋第一組資料DATA1來判斷第一組資料DATA1是否已被儲存在複數個儲存裝置90的任一儲存裝置(例如儲存裝置100)中,以控制儲存伺服器10在沒有於儲存伺服器10中產生第一組資料DATA1的重複(duplication)的情況下完成該用戶端請求。依據本實施例,該內部請求可包含一特定指令,而上述每一儲存裝置(例如儲存裝置100)可執行該特定指令。例如,在對應於該用戶端請求的該內部請求被廣播至複數個儲存裝置90後,複數個儲存裝置90的全部(例如儲存裝置100)可執行該特定指令。另外,因應該內部請求中的該特定指令,上述任一儲存裝置(例如儲存裝置100)可執行該特定指令以對儲存於上述任一儲存裝置(例如儲存裝置100)中的現有資訊(existing information)進行第一組資料DATA1的一偵測運作以產生一偵測結果,其中該偵測結果可指出第一組資料DATA1是否已被儲存在上述任一儲存裝置(例如儲存裝置100)中。例如,在主裝置50以及複數個儲存裝置90至少符合PCIe標準的情況下,該特定指令可為符合NVMe標準的一比較指令(compare command)、或符合SATA標準或並列高級技術附件(Parallel Advanced Technology Attachment,簡稱為PATA)標準的一驗證指令(verify command),但本發明不限於此。
依據本實施例,若第一組資料DATA1已被儲存至複數個儲存裝置90的任一者(例如儲存裝置100)中,儲存伺服器10可在沒有將第一組資料DATA1 再次寫入複數個儲存裝置90的情況下完成該用戶端請求,否則,儲存伺服器10可藉由將第一組資料DATA1寫入複數個儲存裝置90的其中一者(例如儲存裝置100)來完成該用戶端請求。
為便於理解,該方法可用工作流程200來說明,但本發明不限於此。依據某些實施例,一或多個步驟可於工作流程200中被新增、刪除或修改。
第4圖依據本發明一實施例繪示該方法涉及的兩個儲存裝置100A及100B,其中儲存裝置100A及100B能作為複數個儲存裝置90的任兩者的例子。儲存裝置100A及100B的每一者可依據儲存裝置100的架構來實施,但本發明不限於此。
該方法能應用於主裝置50以及複數個儲存裝置90(例如儲存裝置100),因此能應用於儲存裝置100A及100B。尤其,因應將第一組資料DATA1寫入儲存伺服器10的該用戶端請求,主裝置50可觸發向複數個儲存裝置90的上述每一儲存裝置,諸如儲存裝置100A及100B,廣播對應於該用戶端請求的該內部請求。依據本實施例,開關電路70可將該內部請求廣播或發送至包含有儲存裝置100A及100B的複數個儲存裝置90。例如,在主裝置50、開關電路70、以及包含有儲存裝置100A及100B的複數個儲存裝置90至少符合PCIe標準的情況下,開關電路70可透過開關電路70的廣播功能將該內部請求發送至包含有儲存裝置100A及100B的複數個儲存裝置90。
另外,透過對應於該用戶端請求的該內部請求,主裝置50可控制上述每一儲存裝置,諸如儲存裝置100A及100B的每一者,以在上述每一儲存裝置(例如儲存裝置100A及100B的每一者)中搜尋第一組資料DATA1以判斷第一組資料DATA1是否已被儲存在複數個儲存裝置90的任一儲存裝置(例如儲存裝置100A及100B的每一者)中,以控制儲存伺服器10在沒有於儲存伺服器10中產生第一組資料DATA1的重複的情況下完成該用戶端請求。依據本實施例,上述每 一儲存裝置諸如儲存裝置100A及100B的每一者可執行該特定指令。因應該內部請求中的該特定指令,儲存裝置100A可執行該特定指令以對儲存於儲存裝置100A中的現有資訊進行第一組資料DATA1的一偵測運作以產生儲存裝置100A的一偵測結果,而儲存裝置100B可執行該特定指令以對儲存於儲存裝置100B中的現有資訊進行第一組資料DATA1的一偵測運作以產生儲存裝置100B的一偵測結果,其中儲存裝置100A的偵測結果可指出第一組資料DATA1是否已被儲存在儲存裝置100A中,而儲存裝置100B的偵測結果可指出第一組資料DATA1是否已被儲存在儲存裝置100B中。例如,該特定指令可為符合NVMe標準的比較指令、或是符合SATA標準或PATA標準的驗證指令。
依據某些實施例,儲存伺服器10可自儲存伺服器10外部接收一第一寫入請求WR1以及一第二寫入請求WR2,並且在步驟210中所述之用戶端請求可代表第一寫入請求WR1以及第二寫入請求WR2中的任一者。例如,儲存伺服器10可自該一或多個用戶端裝置接收第一寫入請求WR1以及第二寫入請求WR2。主裝置50可觸發向該複數個儲存裝置的上述每一儲存裝置(例如儲存裝置100A及100B的每一者)廣播分別對應於第一寫入請求WR1以及該第二寫入請求WR2的一第一內部請求IR1以及一第二內部請求IR2,以及該內部請求可代表對應於第一寫入請求WR1以及第二寫入請求WR2中的所述任一者的於第一內部請求IR1以及第二內部請求IR2中的一者。
尤其,分別對應於第一寫入請求WR1以及第二寫入請求WR2的第一內部請求IR1以及第二內部請求IR2可用來寫入於不同的邏輯區塊位址(logical block address,LBA)的第一組資料DATA1。例如,第一內部請求IR1可用來將於一第一邏輯區塊位址LBA1的第一組資料DATA1寫入儲存裝置100A,而第二內部請求IR2可用來將於一第二邏輯區塊位址的第一組資料DATA1寫入儲存裝置100B。在某些下列實施例中,儲存裝置100A以及儲存裝置100B可分別簡稱為儲 存裝置A以及儲存裝置B。另外,相異的邏輯區塊位址LBA1及LBA17可分別作為該第一邏輯區塊位址以及該第二邏輯區塊位址的例子,因此,第一內部請求IR1以及第二內部請求IR2可分別被描述為第一內部請求IR1(A,DATA1,LBA1)以及第二內部請求IR2(B,DATA1,LBA17)以便於理解,但本發明不限於此。
第5圖依據本發明一實施例繪示該方法的一寫入控制方案。例如,該複數個用戶端請求可包含第一寫入請求WR1。第一寫入請求WR1可用來寫入於第一邏輯區塊位址(諸如LBA1)的第一組資料DATA1,而第一內部請求IR1(A,DATA1,LBA1)可指出將於第一邏輯區塊位址LBA1的第一組資料DATA1寫入複數個儲存裝置90中的儲存裝置A。
在步驟S10中,儲存伺服器10可接收第一寫入請求WR1。
在步驟S11中,主裝置50可產生對應於第一寫入請求WR1的第一內部請求IR1(A,DATA1,LBA1)並且觸發廣播第一內部請求IR1(A,DATA1,LBA1)。
在步驟S12中,開關電路70可廣播第一內部請求IR1(A,DATA1,LBA1),尤其,將第一內部請求IR1(A,DATA1,LBA1)發送至儲存裝置A以及儲存裝置B。
在步驟S13A中,透過執行該特定指令諸如該比較指令或該驗證指令,儲存裝置A可進行比較或驗證,例如,將第一組資料DATA1與儲存在儲存裝置A中的現有資訊作比較、或驗證第一組資料DATA1於儲存裝置A中的存在。依據本實施例,因應第一內部請求IR1(A,DATA1,LBA1),儲存伺服器10可利用儲存裝置A對儲存在儲存裝置A中的現有資訊進行第一組資料DATA1的一第一偵測運作(例如藉由執行該特定指令諸如該比較指令或該驗證指令)以產生一第一偵測結果,其中該第一偵測結果可指出第一組資料DATA1是否已被儲存在儲存裝置A中。例如,該第一偵測結果可指出第一組資料DATA1尚未被儲存在儲存裝置A中。
在步驟S13B中,透過執行該特定指令諸如該比較指令或該驗證指令,儲存裝置B可進行比較或驗證,例如,將第一組資料DATA1與儲存在儲存裝置B中的現有資訊作比較、或驗證第一組資料DATA1於儲存裝置B中的存在。依據本實施例,因應第一內部請求IR1(A,DATA1,LBA1),儲存伺服器10可利用儲存裝置B對儲存在儲存裝置B中的現有資訊進行第一組資料DATA1的另一第一偵測運作(例如藉由執行該特定指令諸如該比較指令或該驗證指令)以產生另一第一偵測結果,其中該另一第一偵測結果可指出第一組資料DATA1是否已被儲存在儲存裝置B中。例如,該另一第一偵測結果可指出第一組資料DATA1尚未被儲存在儲存裝置B中。
在步驟S14中,儲存裝置A可寫入於第一邏輯區塊位址LBA1的第一組資料DATA1。依據本實施例,因應該第一偵測結果指出第一組資料DATA1尚未被儲存於儲存裝置A中,儲存伺服器10可利用儲存裝置A儲存第一組資料DATA1。尤其,當對應於第一內部請求IR1(A,DATA1,LBA1)的這些第一偵測結果(例如儲存裝置A的該第一偵測結果以及儲存裝置B的該另一第一偵測結果)中沒有任何一個第一偵測結果指出第一組資料DATA1已被儲存在儲存伺服器10中,儲存裝置A可預設地依據第一內部請求IR1(A,DATA1,LBA1)儲存於第一邏輯區塊位址LBA1的第一組資料DATA1。
第6圖依據本發明另一實施例繪示該方法的一寫入控制方案。例如,該複數個用戶端請求可包含第一寫入請求WR1以及第二寫入請求WR2,其中儲存伺服器10可先接收第一寫入請求WR1,之後再接收第二寫入請求WR2。第二寫入請求WR2可用來寫入於第二邏輯區塊位址(諸如LBA17)的第一組資料DATA1,而第二內部請求IR2(B,DATA1,LBA17)可指出將於第二邏輯區塊位址LBA17的第一組資料DATA1寫入複數個儲存裝置90中的儲存裝置B。
在步驟S20中,儲存伺服器10可接收第二寫入請求WR2。
在步驟S21中,主裝置10可產生對應於第二寫入請求WR2的第二內部請求IR2(B,DATA1,LBA17)並且觸發廣播第二內部請求IR2(B,DATA1,LBA17)。
在步驟S22中,開關電路70可廣播第二內部請求IR2(B,DATA1,LBA17),尤其,將第二內部請求IR2(B,DATA1,LBA17)發送至儲存裝置A以及儲存裝置B。
在步驟S23A中,透過執行該特定指令諸如該比較指令或該驗證指令,儲存裝置A可進行比較或驗證,例如,將第一組資料DATA1與儲存在儲存裝置A中的現有資訊的最新版本作比較、或驗證第一組資料DATA1於儲存裝置A中的存在。依據本實施例,因應第二內部請求IR2(B,DATA1,LBA17),儲存伺服器10可利用儲存裝置A對儲存在儲存裝置A中的現有資訊的最新版本進行第一組資料DATA1的一第二偵測運作(例如藉由執行該特定指令諸如該比較指令或該驗證指令)以產生一第二偵測結果,其中該第二偵測結果可指出第一組資料DATA1是否已被儲存在儲存裝置A中。例如,該第二偵測結果可指出第一組資料DATA1已被儲存在儲存裝置A中。
在步驟S23B中,透過執行該特定指令諸如該比較指令或該驗證指令,儲存裝置B可進行比較或驗證,例如,將第一組資料DATA1與儲存在儲存裝置B中的現有資訊的最新版本作比較、或驗證第一組資料DATA1於儲存裝置B中的存在。依據本實施例,因應第二內部請求IR2(B,DATA1,LBA17),儲存伺服器10可利用儲存裝置B對儲存在儲存裝置B中的現有資訊的最新版本進行第一組資料DATA1的另一第二偵測運作(例如藉由執行該特定指令諸如該比較指令或該驗證指令)以產生另一第二偵測結果,其中該另一第二偵測結果可指出第一組資料DATA1是否已被儲存在儲存裝置B中。例如,該另一第二偵測結果可指出第一組資料DATA1尚未被儲存在儲存裝置B中。
在步驟S24中,儲存裝置A以及儲存裝置B可進行點對點(peer-to-peer)通訊。依據本實施例,因應該第二偵測結果指出第一組資料DATA1已被儲存在儲存裝置A,儲存伺服器10可利用儲存裝置A輸出對應於該第二偵測結果的相關資訊,以避免第一組資料DATA1被儲存至儲存裝置B中。例如,因應該第二偵測結果,儲存伺服器10可利用儲存裝置A透過該點對點通訊來和儲存裝置B進行通訊,並且利用儲存裝置B儲存指向儲存於儲存裝置A中的第一組資料DATA1的映射資訊MI(LBA17,A,LBA1),其中映射資訊MI(LBA17,A,LBA1)可代表第二邏輯區塊位址LBA17與關聯於儲存裝置A的第一邏輯區塊LBA1位址之間的一映射關係。當儲存裝置B儲存有指向儲存於儲存裝置A中的第一組資料DATA1的映射資訊MI(LBA17,A,LBA1),儲存伺服器10可利用儲存裝置A記錄第一組資料DATA1的使用資訊UI(LBA1,B,LBA17),其中使用資訊UI(LBA1,B,LBA17)可指出儲存在儲存裝置A中的第一組資料DATA1係被儲存裝置B所使用。
在步驟S25A中,儲存裝置A可記錄第一組資料DATA1的使用資訊UI(LBA1,B,LBA17)。
在步驟S25B中,儲存裝置B可寫入映射資訊MI(LBA17,A,LBA1)
第7圖依據本發明一實施例繪示該方法的一讀取控制方案。例如,該複數個用戶端請求可包含第一寫入請求WR1、第二寫入請求WR2以及一讀取請求RR1,其中儲存伺服器10可先接收第一寫入請求WR1以及第二寫入請求WR2,之後再接收讀取請求RR1。讀取請求RR1可用來讀取於第二邏輯區塊位址LBA17的第一組資料DATA1。
在步驟S30中,儲存伺服器10可接收讀取請求RR1。
在步驟S31中,主裝置50可產生對應於讀取請求RR1的一第三內部請求IR3(B,LBA17)並且透過開關電路70發送第三內部請求IR3(B,LBA17),其中第 三內部請求IR3(B,LBA17)可指出自儲存裝置B讀取於第二邏輯區塊位址LBA17的資料(例如第一組資料DATA1)。
在步驟S32中,開關電路70可旁通(bypass)第三內部請求IR3(B,LBA17),尤其,將第三內部請求IR3(B,LBA17)發送至儲存裝置B。
在步驟S33中,儲存裝置B可依據映射資訊MI(LBA17,A,LBA1)觸發為主裝置50自儲存裝置A取回(retrieve)第一組資料DATA1。依據本實施例,因應讀取請求RR1,儲存伺服器10可利用儲存裝置B依據映射資訊MI(LBA17,A,LBA1)觸發為主裝置50自儲存裝置A取回第一組資料DATA1。例如,當偵測到映射資訊MI(LBA17,A,LBA1)時,儲存裝置B可要求儲存裝置A為儲存裝置B讀取第一組資料DATA1,尤其,要求儲存裝置A為儲存裝置B將第一組資料DATA1發送至主裝置50,但本發明不限於此。
在步驟S34中,儲存裝置A以及儲存裝置B可進行點對點通訊。依據本實施例,當映射資訊MI(LBA17,A,LBA1)存在於儲存裝置B中,儲存伺服器10可利用儲存裝置B透過該點對點通訊來和儲存裝置A進行通訊,並且利用該儲存裝置B來要求儲存裝置A為儲存裝置B將第一組資料DATA1發送至主裝置50。
在步驟S35中,儲存裝置A可透過開關電路70發送第一組資料DATA1,尤其,透過開關電路70為儲存裝置B將第一組資料DATA1回傳(return)給主裝置50。
第8圖依據本發明另一實施例繪示該方法的一讀取控制方案。例如,該複數個用戶端請求可包含第一寫入請求WR1、第二寫入請求WR2以及讀取請求RR1,其中儲存伺服器10可先接收第一寫入請求WR1以及第二寫入請求WR2,之後再接收讀取請求RR1。讀取請求RR1可用來讀取於第二邏輯區塊位址LBA17的第一組資料DATA1。
在步驟S30中,儲存伺服器10可接收讀取請求RR1。
在步驟S31中,主裝置50可產生對應於讀取請求RR1的第三內部請求IR3(B,LBA17)並且透過開關電路70發送第三內部請求IR3(B,LBA17),其中第三內部請求IR3(B,LBA17)可指出自儲存裝置B讀取於第二邏輯區塊位址LBA17的資料(例如第一組資料DATA1)。
在步驟S32中,開關電路70可旁通第三內部請求IR3(B,LBA17),尤其,將第三內部請求IR3(B,LBA17)發送至儲存裝置B。
在步驟S33中,儲存裝置B可依據映射資訊MI(LBA17,A,LBA1)觸發為主裝置50自儲存裝置A取回(retrieve)第一組資料DATA1。依據本實施例,因應讀取請求RR1,儲存伺服器10可利用儲存裝置B依據映射資訊MI(LBA17,A,LBA1)觸發為主裝置50自儲存裝置A取回第一組資料DATA1。例如,當偵測到映射資訊MI(LBA17,A,LBA1)時,儲存裝置B可依據映射資訊MI(LBA17,A,LBA1)為主裝置50自儲存裝置A取回第一組資料DATA1。
在步驟S34中,儲存裝置A以及儲存裝置B可進行點對點通訊。依據本實施例,當映射資訊MI(LBA17,A,LBA1)存在於儲存裝置B中,儲存伺服器10可利用儲存裝置B透過該點對點通訊來和儲存裝置A進行通訊,並且利用該儲存裝置B來要求儲存裝置A為儲存裝置B讀取第一組資料DATA1。於是,儲存裝置B可自儲存裝置A取回第一組資料DATA1並且回傳第一組資料DATA1給主裝置50。
在步驟S35A中,儲存裝置A可讀取並且輸出第一組資料DATA1,尤其,透過開關電路70將第一組資料DATA1發送至儲存裝置B。
在步驟S35B中,儲存裝置B可透過開關電路70發送第一組資料DATA1,尤其,透過開關電路70將第一組資料DATA1回傳給主裝置50。
第9圖依據本發明一實施例繪示該方法的一刪除控制方案。例如,該複數個用戶端請求可包含第一寫入請求WR1、第二寫入請求WR2、讀取請求RR1以及一刪除請求DR,其中儲存伺服器10可先接收第一寫入請求WR1、第二寫入 請求WR2以及讀取請求RR1,之後再接收刪除請求DR。刪除請求DR可用來刪除於第一邏輯區塊位址LBA1的第一組資料DATA1。
在步驟S40中,儲存伺服器10可接收刪除請求DR。
在步驟S41中,主裝置50可產生對應於刪除請求DR的一第四內部請求IR4(A,LBA1)並且透過開關電路70發送第四內部請求IR4(A,LBA1),其中第四內部請求IR4(A,LBA1)可指出刪除於儲存裝置A中的於第一邏輯區塊位址LBA1的資料(例如第一組資料DATA1)。
在步驟S42中,開關電路70可旁通第四內部請求IR4(A,LBA1),尤其,將第四內部請求IR4(A,LBA1)發送至儲存裝置A。
在步驟S43中,當偵測到使用資訊UI(LBA1,B,LBA17)時,儲存裝置A可依據使用資訊UI(LBA1,B,LBA17)為儲存裝置B保留第一組資料DATA1。
第10圖依據本發明另一實施例繪示該方法的一刪除控制方案。例如,該複數個用戶端請求可包含第一寫入請求WR1、第二寫入請求WR2、讀取請求RR1以及刪除請求DR,其中儲存伺服器10可先接收第一寫入請求WR1、第二寫入請求WR2以及讀取請求RR1,之後再接收刪除請求DR。刪除請求DR可用來刪除於第一邏輯區塊位址LBA1的第一組資料DATA1。
在步驟S40中,儲存伺服器10可接收刪除請求DR。
在步驟S41中,主裝置50可產生對應於刪除請求DR的第四內部請求IR4(A,LBA1)並且透過開關電路70發送第四內部請求IR4(A,LBA1),其中第四內部請求IR4(A,LBA1)可指出刪除於儲存裝置A中的於第一邏輯區塊位址LBA1的資料(例如第一組資料DATA1)。
在步驟S42中,開關電路70可旁通第四內部請求IR4(A,LBA1),尤其,將第四內部請求IR4(A,LBA1)發送至儲存裝置A。
在步驟S43’中,當偵測到使用資訊UI(LBA1,B,LBA17)時,儲存裝置 A可依據使用資訊UI(LBA1,B,LBA17)觸發將第一組資料DATA1搬移至儲存裝置B。
在步驟S44中,儲存裝置A以及儲存裝置B可進行點對點通訊。依據本實施例,當使用資訊UI(LBA1,B,LBA17)存在於儲存裝置A時,儲存伺服器10可利用儲存裝置A透過該點對點通訊來和儲存裝置B進行通訊,並且利用儲存裝置A要求儲存裝置B自行保留並儲存第一組資料DATA1。
在步驟S45A中,儲存裝置A可讀取並輸出第一組資料DATA1,尤其,透過開關電路70將第一組資料DATA1發送至儲存裝置B。
在步驟S45B中,儲存裝置B可寫入於第二邏輯區塊位址LBA17的第一組資料DATA1並且移除映射資訊MI(LBA17,A,LBA1)。
在步驟S46中,儲存裝置A可作廢(invalid)第一組資料DATA1並且移除使用資訊UI(LBA1,B,LBA17)。
第11圖為依據本發明另一實施例之一儲存伺服器的示意圖。相較於第1圖所示之架構,本實施例的儲存介面電路54可包含用來控制主裝置50依據該方法運作的一資料存取管理模組55,而運行於處理電路52上的一驅動器模組53D可用來與資料存取管理模組55進行通訊以在需要時進行一或多個相關設定,其中資料存取管理模組55可被實施為儲存介面電路54的一子電路,諸如一特殊應用積體電路(application-specific integrated circuit,ASIC),但本發明不限於此。為便於理解,於第11圖的左手邊所示之架構中的主裝置50以及第11圖相關電路/模組/裝置(例如運行程式模組52P的處理電路52、以及包含有資料存取管理模組55的儲存介面電路54)可分別作為上述主裝置以及其相關電路/模組/裝置(例如運行著對應於該方法的該一或多個程式模組的該處理電路、以及包含有對應於該方法的該一或多個子電路的該儲存介面電路)的例子。為簡明起見,於本實施例中類似的細節在此不再贅述。
依據某些實施例,驅動器模組53D可予以忽略。例如,程式模組52P可包含該作業系統的一較新版本,並且不必將驅動器模組53D安裝進主裝置50中。為簡明起見,於這些實施例中類似的細節在此不再贅述。
依據某些實施例,該控制電路(例如包含有資料存取管理模組55的儲存介面電路54,如第11圖所示)可被實施為一儲存介面卡(例如一硬體加速卡)以供被安裝在主裝置50中。為簡明起見,於這些實施例中類似的細節在此不再贅述。
依據某些實施例,因應將一第二組資料DATA2寫入儲存伺服器10的另一用戶端請求,儲存伺服器10可利用主裝置50觸發向複數個儲存裝置90的上述每一儲存裝置,諸如儲存裝置100,廣播對應於該另一用戶端請求的另一內部請求。例如,主裝置50可自該用戶端裝置接收該另一用戶端請求,但本發明不限於此。又例如,在該一或多個用戶端裝置包含複數個用戶端裝置的情況下,主裝置50可自該複數個用戶端裝置中的另一用戶端裝置接收該另一用戶端請求。再者,因應對應於該另一用戶端請求的該另一內部請求,儲存伺服器10可利用複數個儲存裝置90中的上述每一儲存裝置(諸如儲存裝置100)以在上述每一儲存裝置(例如儲存裝置100)中搜尋第二組資料DATA2以判斷第二組資料DATA2是否已被儲存在複數個儲存裝置90的任一儲存裝置中(例如儲存裝置100),以控制儲存伺服器10在沒有於儲存伺服器10中產生第二組資料DATA2的重複的情況下完成該另一用戶端請求。為簡明起見,於這些實施例中類似的細節在此不再贅述。
第12圖依據本發明一實施例繪示該方法涉及的某些資訊表。第4圖所示之儲存裝置100A以及100B為簡明起見可分別被稱為儲存裝置A以及儲存裝置B,而複數個儲存裝置90中的另一儲存裝置可被稱為儲存裝置C,其中儲存裝置C可依據儲存裝置100的架構來實施。
如第12圖所示,儲存裝置A可包含一資料區DR1以及一表區TR1,儲存裝置B可包含一資料區DR2以及一表區TR2,而儲存裝置C可包含一資料區DR3以及一表區TR3。例如,儲存裝置A可將資料諸如第一組資料DATA1儲存至資料區DR1中並且將一或多個表諸如一使用資訊表(usage information table,UIT)以及一映射資訊表(mapping information table,MIT)儲存至表區TR1中,儲存裝置B可將資料諸如第二組資料DATA2儲存至資料區DR2中並且將一或多個表諸如一使用資訊表以及一映射資訊表儲存至表區TR2中,以及儲存裝置C可將資料諸如一第三組資料DATA3儲存至資料區DR3中並且將一或多個表諸如一使用資訊表以及一映射資訊表儲存至表區TR3中,其中為簡明起見,上列使用資訊表與映射資訊表於第12圖中可分別標示為UIT與MIT。
由於該方法能被應用於儲存裝置A、B及C的每一者,儲存裝置A、B及C的每一者可分別記錄相關使用資訊以及相關映射資訊在其使用資訊表以及映射資訊表中。例如,儲存裝置A可將相關使用資訊(諸如UI(LBA1,B,LBA17)、UI(LBA1,C,LBA29)等)以及相關映射資訊(諸如MI(LBA7,C,LBA21)等)分別儲存至於表區TR1中的使用資訊表以及映射資訊表中。又例如,儲存裝置B可將相關使用資訊(諸如UI(LBA11,C,LBA27)等)以及相關映射資訊(諸如MI(LBA17,A,LBA1)等)分別儲存至於表區TR2中的使用資訊表以及映射資訊表。再舉一例,儲存裝置C可將相關使用資訊(諸如UI(LBA21,A,LBA7)等)以及相關映射資訊(諸如MI(LBA29,A,LBA1)、MI(LBA27,B,LBA11)等)分別儲存至於表區TR3中的使用資訊表以及映射資訊表。
依據本實施例,儲存裝置A、B及C的每一者可為複數個儲存裝置90中的一或多個其它裝置儲存一或多組資料。例如,儲存裝置A可為儲存裝置B及C儲存第一組資料DATA1,儲存裝置B可為儲存裝置C儲存第二組資料DATA2,以及儲存裝置C可為儲存裝置A儲存第三組資料DATA3。針對儲存裝置A為儲存 裝置C儲存第一組資料DATA1,對應於一寫入請求的一內部請求可指出將於邏輯區塊位址LBA29的第一組資料DATA1寫入儲存裝置C。由於儲存裝置A的一偵測結果指出第一組資料DATA1已被儲存在儲存裝置A中,儲存裝置C可記錄指向儲存於儲存裝置A中的於第一邏輯區塊位址LBA1的第一組資料DATA1的映射資訊MI(LBA29,A,LBA1),其中映射資訊MI(LBA29,A,LBA1)可代表邏輯區塊位址LBA29與關聯於儲存裝置A的第一邏輯區塊位址LBA1之間的一映射關係。當儲存裝置C儲存有指向儲存於儲存裝置A中的第一組資料的映射資訊MI(LBA29,A,LBA1)時,儲存裝置A可記錄第一組資料DATA1的使用資訊UI(LBA1,C,LBA29),其中使用資訊UI(LBA1,C,LBA29)可指出儲存於儲存裝置A中的第一組資料DATA1是被儲存裝置C(例如給邏輯區塊位址LBA29)使用。
針對儲存裝置B為儲存裝置C儲存第二組資料DATA2,對應於一寫入請求的一內部請求可指出將於邏輯區塊位址LBA27的第二組資料DATA2寫入儲存裝置C。由於儲存裝置B的一偵測結果指出第二組資料DATA2已被儲存於儲存裝置B中,儲存裝置C可記錄指向儲存於儲存裝置B中的於邏輯區塊位址LBA11的第二組資料DATA2的映射資訊MI(LBA27,B,LBA11),其中映射資訊MI(LBA27,B,LBA11)可代表邏輯區塊位址LBA27與關聯於儲存裝置B的邏輯區塊位址LBA11之間的一映射關係。當儲存裝置C儲存有指向儲存於儲存裝置B中的第二組資料DATA2的映射資訊MI(LBA27,B,LBA11)時,儲存裝置B可記錄第二組資料DATA2的使用資訊UI(LBA11,C,LBA27),其中使用資訊UI(LBA11,C,LBA27)可指出儲存於儲存裝置B中的第二組資料DATA2是被儲存裝置C(例如給邏輯區塊位址LBA27)使用。
針對儲存裝置C為儲存裝置A儲存第三組資料DATA3,對應於一寫入請求的一內部請求可指出將於邏輯區塊位址LBA7的第三組資料DATA3寫入儲存裝置A。由於儲存裝置C的一偵測結果指出第三組資料DATA3已被儲存於儲存 裝置C中,儲存裝置A可記錄指向儲存於儲存裝置C中的於邏輯區塊位址LBA21的第三組資料DATA3的映射資訊MI(LBA7,C,LBA21),其中映射資訊MI(LBA7,C,LBA21)可代表邏輯區塊位址LBA7與關聯於儲存裝置C的邏輯區塊位址LBA21之間的一映射關係。當儲存裝置A儲存有指向儲存於儲存裝置C中的第三組資料DATA3的映射資訊MI(LBA7,C,LBA21)時,儲存裝置C可記錄第三組資料DATA3的使用資訊UI(LBA21,A,LBA7),其中使用資訊UI(LBA21,A,LBA7)可指出儲存於儲存裝置C中的第三組資料DATA3是被儲存裝置A(例如給邏輯區塊位址LBA7)使用。
依據某些實施例,主裝置50可用來將複數個儲存裝置90合併(merge)成為一全快閃陣列(all flash array,AFA)系統。例如,在步驟210中所述用戶端請求可用來寫入於該第一邏輯區塊位址的第一組資料DATA1,而該內部請求可指出將於該第一邏輯區塊位址的第一組資料DATA1寫入複數個儲存裝置90中的儲存裝置A。另外,儲存伺服器10可利用主裝置50將第一儲存裝置(例如儲存裝置A)指定為用以儲存於該第一邏輯區塊位址的第一組資料DATA1的一實體裝置。尤其,該另一用戶端請求可用來寫入於第二邏輯區塊位址的第二組資料DATA2,而該另一內部請求可指出將於該第二邏輯區塊位址的第二組資料DATA2寫入複數個儲存裝置90中的儲存裝置B。再者,儲存伺服器10可利用主裝置50將第二儲存裝置(例如儲存裝置B)指定為用以儲存於該第二邏輯區塊位址的第二組資料DATA2的一實體裝置。以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
10:儲存伺服器
50:主裝置
52:處理電路
52P:程式模組
53:資料存取管理模組
54:儲存介面電路
56、90、90-1、90-2、...、90-Ns:儲存裝置
58:網路介面電路
70-1、70-2、...、70-Ns:開關電路

Claims (26)

  1. 一種在一儲存伺服器中進行資料存取管理的方法,該方法係應用於該儲存伺服器,該方法包含:因應將一第一組資料寫入該儲存伺服器的一用戶端請求,利用該儲存伺服器中的一主裝置觸發向該儲存伺服器中的複數個儲存裝置的每一儲存裝置廣播對應於該用戶端請求的一內部請求,其中該儲存伺服器包含該主裝置、耦接至該主裝置的該複數個儲存裝置、以及耦接於該主裝置與該複數個儲存裝置之間的至少一開關電路,該主裝置、所述至少一開關電路以及該複數個儲存裝置至少符合快捷外設組件互連(Peripheral Component Interconnect Express,PCIe)標準,該主裝置係用來控制該儲存伺服器的運作,以及該複數個儲存裝置係用來為該儲存伺服器儲存資訊;利用所述至少一開關電路透過所述至少一開關電路的一廣播功能將該內部請求發送至該複數個儲存裝置的全部;以及因應對應於該用戶端請求的該內部請求,利用該複數個儲存裝置的所述每一儲存裝置在所述每一儲存裝置中搜尋該第一組資料來判斷該第一組資料是否已被儲存在該複數個儲存裝置的任一儲存裝置中,以控制該儲存伺服器在沒有於該儲存伺服器中產生該第一組資料的重複(duplication)的情況下完成該用戶端請求。
  2. 如申請專利範圍第1項所述之方法,其中若該第一組資料已被儲存在該複數個儲存裝置的任一者,該儲存伺服器在沒有將該第一組資料再次寫入該複數個儲存裝置的情況下完成該用戶端請求,否則,該儲存伺服器藉由將該第一組資料寫入該複數個儲存裝置的其中一者來完成該用戶端請求。
  3. 一種在一儲存伺服器中進行資料存取管理的方法,該方法係應用於 該儲存伺服器,該方法包含:因應將一第一組資料寫入該儲存伺服器的一用戶端請求,利用該儲存伺服器中的一主裝置觸發向該儲存伺服器中的複數個儲存裝置的每一儲存裝置廣播對應於該用戶端請求的一內部請求,其中該儲存伺服器包含該主裝置以及耦接至該主裝置的該複數個儲存裝置,該主裝置係用來控制該儲存伺服器的運作,以及該複數個儲存裝置係用來為該儲存伺服器儲存資訊;以及因應對應於該用戶端請求的該內部請求,利用該複數個儲存裝置的所述每一儲存裝置在所述每一儲存裝置中搜尋該第一組資料來判斷該第一組資料是否已被儲存在該複數個儲存裝置的任一儲存裝置中,以控制該儲存伺服器在沒有於該儲存伺服器中產生該第一組資料的重複(duplication)的情況下完成該用戶端請求;其中該內部請求包含一特定指令;以及利用該複數個儲存裝置的所述每一儲存裝置在所述每一儲存裝置中搜尋該第一組資料來判斷該第一組資料是否已被儲存在所述任一儲存裝置中以控制該儲存伺服器在沒有於該儲存伺服器中產生該第一組資料的重複的情況下完成該用戶端請求另包含:因應該內部請求中的該特定指令,利用所述任一儲存裝置執行該特定指令以對儲存於所述任一儲存裝置中的現有資訊(existing information)進行該第一組資料的一偵測運作以產生一偵測結果,其中該偵測結果指出該第一組資料是否已被儲存在所述任一儲存裝置中。
  4. 如申請專利範圍第3項所述之方法,其中該主裝置以及該複數個儲存裝置至少符合快捷外設組件互連(Peripheral Component Interconnect Express,PCIe)標準;以及該特定指令係符合非揮發性記憶體快捷(Non-Volatile Memory Express,NVMe)標準的一比較指令。
  5. 如申請專利範圍第3項所述之方法,其中該主裝置以及該複數個儲存裝置至少符合快捷外設組件互連(Peripheral Component Interconnect Express,PCIe)標準;以及該特定指令係符合串列高級技術附件(Serial Advanced Technology Attachment,SATA)標準或並列高級技術附件(Parallel Advanced Technology Attachment,PATA)標準的一驗證指令。
  6. 一種在一儲存伺服器中進行資料存取管理的方法,該方法係應用於該儲存伺服器,該方法包含:因應將一第一組資料寫入該儲存伺服器的一用戶端請求,利用該儲存伺服器中的一主裝置觸發向該儲存伺服器中的複數個儲存裝置的每一儲存裝置廣播對應於該用戶端請求的一內部請求,其中該儲存伺服器包含該主裝置以及耦接至該主裝置的該複數個儲存裝置,該主裝置係用來控制該儲存伺服器的運作,以及該複數個儲存裝置係用來為該儲存伺服器儲存資訊;以及因應對應於該用戶端請求的該內部請求,利用該複數個儲存裝置的所述每一儲存裝置在所述每一儲存裝置中搜尋該第一組資料來判斷該第一組資料是否已被儲存在該複數個儲存裝置的任一儲存裝置中,以控制該儲存伺服器在沒有於該儲存伺服器中產生該第一組資料的重複(duplication)的情況下完成該用戶端請求;其中該儲存伺服器自該儲存伺服器外部接收一第一寫入請求以及一第二寫入請求,並且該用戶端請求代表該第一寫入請求以及該第二寫入請求中的任一者;以及該主裝置觸發向該複數個儲存裝置的所述每一儲存裝置廣播分別對應於該第一寫入請求以及該第二寫入請求的一第一內部請求以及一第二內部請求,以及該內部請求代表對應於該第一寫入請求以 及該第二寫入請求中的所述任一者的於該第一內部請求以及該第二內部請求中的一者。
  7. 如申請專利範圍第6項所述之方法,其中該第一寫入請求係用來寫入於一第一邏輯區塊位址(logical block address,LBA)的該第一組資料,並且該第一內部請求指出將於該第一邏輯區塊位址的該第一組資料寫入該複數個儲存裝置中的一第一儲存裝置;以及該方法另包含:因應該第一內部請求,利用該第一儲存裝置對儲存於該第一儲存裝置中的現有資訊(existing information)進行該第一組資料的一第一偵測運作以產生一第一偵測結果,其中該第一偵測結果指出該第一組資料是否已被儲存在該第一儲存裝置中。
  8. 如申請專利範圍第7項所述之方法,其中該儲存伺服器包含耦接於該主裝置以及該複數個儲存裝置中之該第一儲存裝置與一第二儲存裝置中的每一者之間的一開關電路;以及該方法另包含:利用該開關電路將該第一內部請求發送至該第一儲存裝置以及該第二儲存裝置。
  9. 如申請專利範圍第7項所述之方法,另包含:因應該第一偵測結果指出該第一組資料尚未被儲存在該第一儲存裝置,利用該第一儲存裝置儲存該第一組資料。
  10. 如申請專利範圍第7項所述之方法,其中該儲存伺服器先接收該第一寫入請求,並且之後接收該第二寫入請求;該第二寫入請求係用來寫入於一第二邏輯區塊位址的該第一組資料,並且該第二內部請求指出將於該第二邏輯區塊位址的該第一組資料寫入該複數個儲存裝置中的一第二儲存裝置;以及該方法另包含:因應該第二內部請求,利用該第一儲存裝置對儲存於該第一儲存裝置中的該 現有資訊的一最新版本進行該第一組資料的一第二偵測運作以產生一第二偵測結果,其中該第二偵測結果指出該第一組資料是否已被儲存在該第一儲存裝置中。
  11. 如申請專利範圍第10項所述之方法,其中該儲存伺服器包含耦接於該主裝置以及該第一儲存裝置與該第二儲存裝置中的每一者之間的一開關電路;以及該方法另包含:利用該開關電路將該第一內部請求發送至該第一儲存裝置以及該第二儲存裝置;以及利用該開關電路將該第二內部請求發送至該第一儲存裝置以及該第二儲存裝置。
  12. 如申請專利範圍第10項所述之方法,另包含:因應該第二偵測結果指出該第一組資料已被儲存在該第一儲存裝置,利用該第一儲存裝置輸出對應於該第二偵測結果的相關資訊,以避免該第一組資料被儲存至該第二儲存裝置中。
  13. 如申請專利範圍第10項所述之方法,另包含:因應該第二偵測結果指出該第一組資料已被儲存在該第一儲存裝置中,利用該第一儲存裝置,利用該第一儲存裝置透過點對點(peer-to-peer)通訊來與該第二儲存裝置進行通訊,並且利用該第二儲存裝置儲存指向儲存於該第一儲存裝置中的該第一組資料的映射資訊,其中該映射資訊代表該第二邏輯區塊位址與關聯於該第一儲存裝置的該第一邏輯區塊位址之間的一映射關係。
  14. 如申請專利範圍第13項所述之方法,另包含:因應該第二儲存裝置儲存有指向儲存於該第一儲存裝置中的該第一組資料的該映射資訊,利用該第一儲存裝置記錄該第一組資料的使用資訊,其 中該使用資訊指出儲存於該第一儲存裝置中的該第一組資料係被該第二儲存裝置所使用。
  15. 如申請專利範圍第13項所述之方法,其中一讀取請求係用來讀取於該第二邏輯區塊位址的該第一組資料;以及該方法另包含:因應該讀取請求,利用該第二儲存裝置依據該映射資訊觸發為該主裝置自該第一儲存裝置取回(retrieve)該第一組資料。
  16. 如申請專利範圍第13項所述之方法,其中一讀取請求係用來讀取於該第二邏輯區塊位址的該第一組資料;以及該方法另包含:因應該讀取請求,利用該第二儲存裝置依據該映射資訊為該主裝置自該第一儲存裝置取回(retrieve)該第一組資料。
  17. 一種在一儲存伺服器中進行資料存取管理的方法,該方法係應用於該儲存伺服器,該方法包含:因應將一第一組資料寫入該儲存伺服器的一用戶端請求,利用該儲存伺服器中的一主裝置觸發向該儲存伺服器中的複數個儲存裝置的每一儲存裝置廣播對應於該用戶端請求的一內部請求,其中該儲存伺服器包含該主裝置以及耦接至該主裝置的該複數個儲存裝置,該主裝置係用來控制該儲存伺服器的運作,以及該複數個儲存裝置係用來為該儲存伺服器儲存資訊;因應對應於該用戶端請求的該內部請求,利用該複數個儲存裝置的所述每一儲存裝置在所述每一儲存裝置中搜尋該第一組資料來判斷該第一組資料是否已被儲存在該複數個儲存裝置的任一儲存裝置中,以控制該儲存伺服器在沒有於該儲存伺服器中產生該第一組資料的重複(duplication)的情況下完成該用戶端請求;因應將一第二組資料寫入該儲存伺服器的另一用戶端請求,利用該主裝置觸 發向該複數個儲存裝置的所述每一儲存裝置廣播對應於該另一用戶端請求的另一內部請求;以及因應對應於該另一用戶端請求的該另一內部請求,利用該複數個儲存裝置的所述每一儲存裝置在所述每一儲存裝置中搜尋該第二組資料來判斷該第二組資料是否已被儲存在該複數個儲存裝置的任一儲存裝置中,以控制該儲存伺服器在沒有於該儲存伺服器中產生該第二組資料的重複的情況下完成該另一用戶端請求。
  18. 一種在一儲存伺服器中進行資料存取管理的方法,該方法係應用於該儲存伺服器,該方法包含:因應將一第一組資料寫入該儲存伺服器的一用戶端請求,利用該儲存伺服器中的一主裝置觸發向該儲存伺服器中的複數個儲存裝置的每一儲存裝置廣播對應於該用戶端請求的一內部請求,其中該儲存伺服器包含該主裝置以及耦接至該主裝置的該複數個儲存裝置,該主裝置係用來控制該儲存伺服器的運作,以及該複數個儲存裝置係用來為該儲存伺服器儲存資訊;以及因應對應於該用戶端請求的該內部請求,利用該複數個儲存裝置的所述每一儲存裝置在所述每一儲存裝置中搜尋該第一組資料來判斷該第一組資料是否已被儲存在該複數個儲存裝置的任一儲存裝置中,以控制該儲存伺服器在沒有於該儲存伺服器中產生該第一組資料的重複(duplication)的情況下完成該用戶端請求;其中該主裝置係用來將該複數個儲存裝置合併(merge)成為一全快閃陣列(All Flash Array,AFA)系統;該用戶端請求係用來寫入於一第一邏輯區塊位址(logical block address,LBA)的該第一組資料,並且該內部請求指出將於該第一邏輯區塊位址的該第一組資料寫入該複數個儲存裝 置中的一第一儲存裝置;以及該方法另包含:利用該主裝置將該第一儲存裝置指定為用以儲存於該第一邏輯區塊位址的該第一組資料的一實體裝置。
  19. 一種主裝置,包含:一控制電路,用來控制該主裝置在一儲存伺服器中進行資料存取管理,其中該儲存伺服器包含該主裝置、耦接至該主裝置的複數個儲存裝置、以及耦接於該主裝置與該複數個儲存裝置之間的至少一開關電路,該主裝置、所述至少一開關電路以及該複數個儲存裝置至少符合快捷外設組件互連(Peripheral Component Interconnect Express,PCIe)標準,該主裝置係用來控制該儲存伺服器的運作,以及該複數個儲存裝置係用來為該儲存伺服器儲存資訊,其中:因應將一第一組資料寫入該儲存伺服器的一用戶端請求,該主裝置觸發向該複數個儲存裝置的每一儲存裝置廣播對應於該用戶端請求的一內部請求;所述至少一開關電路透過所述至少一開關電路的一廣播功能將該內部請求發送至該複數個儲存裝置的全部;以及透過對應於該用戶端請求的該內部請求,該主裝置控制該複數個儲存裝置的所述每一儲存裝置在所述每一儲存裝置中搜尋該第一組資料來判斷該第一組資料是否已被儲存在該複數個儲存裝置的任一儲存裝置中,以控制該儲存伺服器在沒有於該儲存伺服器中產生該第一組資料的重複(duplication)的情況下完成該用戶端請求。
  20. 如申請專利範圍第19項所述之主裝置,其中若該第一組資料已被儲存在該複數個儲存裝置的任一者中,該儲存伺服器在沒有將該第一組資料再次寫入該複數個儲存裝置的情況下完成該用戶端請求,否則,該儲存伺服器 藉由將該第一組資料寫入該複數個儲存裝置的其中一者來完成該用戶端請求。
  21. 一種儲存裝置,包含:一非揮發性記憶體(non-volatile memory,NV memory),其中該非揮發性記憶體包含至少一非揮發性記憶體元件;以及一記憶體控制器,用來控制該非揮發性記憶體的存取,以容許一主裝置透過該記憶體控制器存取該非揮發性記憶體,以在一儲存伺服器中進行資料存取管理,其中該儲存伺服器包含該主裝置、耦接至該主裝置的複數個儲存裝置、以及耦接於該主裝置與該複數個儲存裝置之間的至少一開關電路,該主裝置、所述至少一開關電路以及該複數個儲存裝置至少符合快捷外設組件互連(Peripheral Component Interconnect Express,PCIe)標準,該主裝置係用來控制該儲存伺服器的運作,以及該複數個儲存裝置係用來為該儲存伺服器儲存資訊,其中:因應將一第一組資料寫入該儲存伺服器的一用戶端請求,該主裝置觸發向該複數個儲存裝置的每一儲存裝置廣播對應於該用戶端請求的一內部請求,其中該複數個儲存裝置包含該儲存裝置;所述至少一開關電路透過所述至少一開關電路的一廣播功能將該內部請求發送至該複數個儲存裝置的全部;以及因應對應於該用戶端請求的該內部請求,該複數個儲存裝置的所述每一儲存裝置在所述每一儲存裝置中搜尋該第一組資料來判斷該第一組資料是否已被儲存在該複數個儲存裝置的任一儲存裝置中,以控制該儲存伺服器在沒有於該儲存伺服器中產生該第一組資料的重複(duplication)的情況下完成該用戶端請求。
  22. 如申請專利範圍第21項所述之儲存裝置,其中若該第一組資料已被 儲存在該複數個儲存裝置的任一者中,該儲存伺服器在沒有將該第一組資料再次寫入該複數個儲存裝置的情況下完成該用戶端請求,否則,該儲存伺服器藉由將該第一組資料寫入該複數個儲存裝置的其中一者來完成該用戶端請求。
  23. 一種儲存裝置,包含:一非揮發性記憶體(non-volatile memory,NV memory),其中該非揮發性記憶體包含至少一非揮發性記憶體元件;以及一記憶體控制器,用來控制該非揮發性記憶體的存取,以容許一主裝置透過該記憶體控制器存取該非揮發性記憶體,以在一儲存伺服器中進行資料存取管理,其中該儲存伺服器包含該主裝置以及耦接至該主裝置的複數個儲存裝置,該主裝置係用來控制該儲存伺服器的運作,以及該複數個儲存裝置係用來為該儲存伺服器儲存資訊,其中:因應將一第一組資料寫入該儲存伺服器的一用戶端請求,該主裝置觸發向該複數個儲存裝置的每一儲存裝置廣播對應於該用戶端請求的一內部請求,其中該複數個儲存裝置包含該儲存裝置;以及因應對應於該用戶端請求的該內部請求,該複數個儲存裝置的所述每一儲存裝置在所述每一儲存裝置中搜尋該第一組資料來判斷該第一組資料是否已被儲存在該複數個儲存裝置的任一儲存裝置中,以控制該儲存伺服器在沒有於該儲存伺服器中產生該第一組資料的重複(duplication)的情況下完成該用戶端請求其中該儲存伺服器自該儲存伺服器外部接收一第一寫入請求以及一第二寫入請求,並且該用戶端請求代表該第一寫入請求以及該第二寫入請求中的任一者;以及該主裝置觸發向該複數個儲存裝置的所述每一儲存裝置廣播分別對應於該第一寫入請求以及該第二寫入請求 的一第一內部請求以及一第二內部請求,以及該內部請求代表對應於該第一寫入請求以及該第二寫入請求中的所述任一者的於該第一內部請求以及該第二內部請求中的一者。
  24. 如申請專利範圍第23項所述之儲存裝置,其中該第一寫入請求係用來寫入於一第一邏輯區塊位址(logical block address,LBA)的該第一組資料,並且該第一內部請求指出將於該第一邏輯區塊位址的該第一組資料寫入該複數個儲存裝置中的一第一儲存裝置,其中該儲存裝置代表該第一儲存裝置;以及因應該第一內部請求,該第一儲存裝置對儲存於該第一儲存裝置中的現有資訊(existing information)進行該第一組資料的一第一偵測運作以產生一第一偵測結果,其中該第一偵測結果指出該第一組資料是否已被儲存在該第一儲存裝置中。
  25. 如申請專利範圍第23項所述之儲存裝置,其中該儲存伺服器先接收該第一寫入請求,並且之後接收該第二寫入請求;該第一寫入請求以及該第二寫入請求係分別用來寫入於一第一邏輯區塊位址(logical block address,LBA)以及一第二邏輯區塊位址的該第一組資料,並且該第一內部請求以及該第二內部請求分別指出將於該第一邏輯區塊位址的該第一組資料寫入該複數個儲存裝置中的一第一儲存裝置以及將於該第二邏輯區塊位址的該第一組資料寫入該複數個儲存裝置中的一第二儲存裝置,其中該儲存裝置代表該第二儲存裝置;因應該第一內部請求,該第一儲存裝置對儲存於該第一儲存裝置中的現有資訊(existing information)進行該第一組資料的一第一偵測運作以產生一第一偵測結果,其中該第一偵測結果指出該第一組資料是否已被儲存在該第一儲存裝置中;因應該第二內部請求,該第一儲存裝置對儲存於該第一儲存裝置中的該現有資訊的一最新版本進行該第一組資料的一第二偵測運作以產生一第二偵測結果,其中該第二偵測結果指出該第一組資料 是否已被儲存在該第一儲存裝置中;以及該第二儲存裝置儲存指向儲存於該第一儲存裝置中的該第一組資料的映射資訊,其中該映射資訊代表該第二邏輯區塊位址與關聯於該第一儲存裝置的該第一邏輯區塊位址之間的一映射關係。
  26. 一種儲存裝置的控制器,該儲存裝置包含該控制器以及一非揮發性記憶體(non-volatile memory,NV memory),該非揮發性記憶體包含至少一非揮發性記憶體元件,該控制器包含:一處理電路,用來控制該控制器的運作以控制該非揮發性記憶體的存取,以容許一主裝置透過該控制器存取該非揮發性記憶體,以在一儲存伺服器中進行資料存取管理,其中該儲存伺服器包含該主裝置、耦接至該主裝置的複數個儲存裝置、以及耦接於該主裝置與該複數個儲存裝置之間的至少一開關電路,該主裝置、所述至少一開關電路以及該複數個儲存裝置至少符合快捷外設組件互連(Peripheral Component Interconnect Express,PCIe)標準,該主裝置係用來控制該儲存伺服器的運作,以及該複數個儲存裝置係用來為該儲存伺服器儲存資訊,其中:因應將一第一組資料寫入該儲存伺服器的一用戶端請求,該主裝置觸發向該複數個儲存裝置的每一儲存裝置廣播對應於該用戶端請求的一內部請求,其中該複數個儲存裝置包含該儲存裝置;所述至少一開關電路透過所述至少一開關電路的一廣播功能將該內部請求發送至該複數個儲存裝置的全部;以及因應對應於該用戶端請求的該內部請求,該複數個儲存裝置的所述每一儲存裝置在所述每一儲存裝置中搜尋該第一組資料來判斷該第一組資料是否已被儲存在該複數個儲存裝置的任一儲存裝置中,以控制該儲存伺服器在沒有於該儲存伺服器中產生該第一組資料的重複 (duplication)的情況下完成該用戶端請求。
TW109100002A 2019-03-27 2020-01-02 在儲存伺服器中進行資料存取管理的方法與裝置 TWI728634B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/365,695 2019-03-27
US16/365,695 US10884642B2 (en) 2019-03-27 2019-03-27 Method and apparatus for performing data-accessing management in a storage server

Publications (2)

Publication Number Publication Date
TW202036542A TW202036542A (zh) 2020-10-01
TWI728634B true TWI728634B (zh) 2021-05-21

Family

ID=72605723

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109100002A TWI728634B (zh) 2019-03-27 2020-01-02 在儲存伺服器中進行資料存取管理的方法與裝置

Country Status (3)

Country Link
US (2) US10884642B2 (zh)
CN (1) CN111752475B (zh)
TW (1) TWI728634B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11388219B2 (en) * 2019-04-23 2022-07-12 International Business Machines Corporation Interactive data transfer

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200823683A (en) * 2006-11-29 2008-06-01 Qsan Technology Inc Data managing system and managing method thereof
US20110060759A1 (en) * 2009-09-08 2011-03-10 International Business Machines Corporation Data De-Duplication in a Distributed Network
TW201342052A (zh) * 2011-12-16 2013-10-16 Ibm 磁帶機系統伺服器
TW201443647A (zh) * 2013-05-08 2014-11-16 Enmotus Inc 具有資料管理的層疊式資料儲存系統及其操作方法
TW201523303A (zh) * 2013-08-21 2015-06-16 Ibm 在基於相似度的去重複系統中增加合作型的檔案著色
WO2016147281A1 (ja) * 2015-03-16 2016-09-22 株式会社日立製作所 分散型ストレージシステム及び分散型ストレージシステムの制御方法
TW201729068A (zh) * 2015-11-13 2017-08-16 三星電子股份有限公司 分佈式儲存系統、分佈式儲存方法及分佈式設施
TW201826285A (zh) * 2017-01-03 2018-07-16 慧榮科技股份有限公司 用來於記憶裝置中進行資料管理之方法以及記憶裝置及其控制器
TW201837731A (zh) * 2017-04-12 2018-10-16 廣達電腦股份有限公司 儲存實體資源的本地磁碟抹除機制
TW201839775A (zh) * 2017-01-03 2018-11-01 慧榮科技股份有限公司 用來於記憶裝置中進行資料管理之方法以及記憶裝置及其控制器

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101504670A (zh) * 2009-03-04 2009-08-12 成都市华为赛门铁克科技有限公司 数据操作方法、***、客户端和数据服务器
US8270405B2 (en) * 2009-06-30 2012-09-18 Intel Corporation Multicast support on a switch for PCIe endpoint devices
US20110103391A1 (en) * 2009-10-30 2011-05-05 Smooth-Stone, Inc. C/O Barry Evans System and method for high-performance, low-power data center interconnect fabric
US9442806B1 (en) * 2010-11-30 2016-09-13 Veritas Technologies Llc Block-level deduplication
US8880476B2 (en) * 2012-06-28 2014-11-04 International Business Machines Corporation Low-overhead enhancement of reliability of journaled file system using solid state storage and de-duplication
US20140304464A1 (en) * 2013-04-03 2014-10-09 Lsi Corporation Methods and systems for performing deduplication in a data storage system
US9887008B2 (en) * 2014-03-10 2018-02-06 Futurewei Technologies, Inc. DDR4-SSD dual-port DIMM device
TWI566253B (zh) * 2015-09-02 2017-01-11 慧榮科技股份有限公司 用來管理一記憶裝置之方法以及記憶裝置與控制器
US11403019B2 (en) * 2017-04-21 2022-08-02 Pure Storage, Inc. Deduplication-aware per-tenant encryption

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200823683A (en) * 2006-11-29 2008-06-01 Qsan Technology Inc Data managing system and managing method thereof
US20110060759A1 (en) * 2009-09-08 2011-03-10 International Business Machines Corporation Data De-Duplication in a Distributed Network
TW201342052A (zh) * 2011-12-16 2013-10-16 Ibm 磁帶機系統伺服器
TW201443647A (zh) * 2013-05-08 2014-11-16 Enmotus Inc 具有資料管理的層疊式資料儲存系統及其操作方法
TW201523303A (zh) * 2013-08-21 2015-06-16 Ibm 在基於相似度的去重複系統中增加合作型的檔案著色
WO2016147281A1 (ja) * 2015-03-16 2016-09-22 株式会社日立製作所 分散型ストレージシステム及び分散型ストレージシステムの制御方法
TW201729068A (zh) * 2015-11-13 2017-08-16 三星電子股份有限公司 分佈式儲存系統、分佈式儲存方法及分佈式設施
TW201826285A (zh) * 2017-01-03 2018-07-16 慧榮科技股份有限公司 用來於記憶裝置中進行資料管理之方法以及記憶裝置及其控制器
TW201839775A (zh) * 2017-01-03 2018-11-01 慧榮科技股份有限公司 用來於記憶裝置中進行資料管理之方法以及記憶裝置及其控制器
TW201837731A (zh) * 2017-04-12 2018-10-16 廣達電腦股份有限公司 儲存實體資源的本地磁碟抹除機制

Also Published As

Publication number Publication date
TW202036542A (zh) 2020-10-01
CN111752475A (zh) 2020-10-09
US11256435B2 (en) 2022-02-22
US20210081126A1 (en) 2021-03-18
US10884642B2 (en) 2021-01-05
US20200310666A1 (en) 2020-10-01
CN111752475B (zh) 2023-12-05

Similar Documents

Publication Publication Date Title
US11113149B2 (en) Storage device for processing corrupted metadata and method of operating the same
CN107391027B (zh) 廉价磁盘冗余阵列存储设备及其管理方法
US10216578B2 (en) Data storage device for increasing lifetime and RAID system including the same
US9304685B2 (en) Storage array system and non-transitory recording medium storing control program
JP5585919B2 (ja) 電源遮断管理
JP5649742B2 (ja) トランザクションログの復元
US20150331624A1 (en) Host-controlled flash translation layer snapshot
US11036421B2 (en) Apparatus and method for retaining firmware in memory system
WO2013160972A1 (en) Storage system and storage apparatus
US20190324859A1 (en) Method and Apparatus for Restoring Data after Power Failure for An Open-Channel Solid State Drive
TWI502594B (zh) 用於快閃儲存裝置之半區塊管理
KR102435890B1 (ko) 스토리지 장치의 어드레스 맵핑 방법 및 동작 방법
KR20150020385A (ko) 데이터 저장 장치, 그것의 동작 방법 및 그것을 포함하는 데이터 처리 시스템
TWI693520B (zh) 用來於一記憶裝置中進行系統備份的方法、相關記憶裝置及其控制器、以及相關電子裝置
CN113590503B (zh) 一种非挥发性记忆体存储器的垃圾回收方法与垃圾回收***
US11288197B2 (en) Method and apparatus for performing pipeline-based accessing management in a storage server
TWI728634B (zh) 在儲存伺服器中進行資料存取管理的方法與裝置
CN111625187B (zh) 一种存储器及其控制方法与存储***
KR102425470B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
US20220318091A1 (en) Storage system and operating method thereof
CN112015339B (zh) 一种存储器的数据保存***,保存方法及存储***