[go: up one dir, main page]

TWI829080B - 具有雙儲存虛擬化控制器之資料儲存系統架構及其資料存取方法 - Google Patents

具有雙儲存虛擬化控制器之資料儲存系統架構及其資料存取方法 Download PDF

Info

Publication number
TWI829080B
TWI829080B TW111103118A TW111103118A TWI829080B TW I829080 B TWI829080 B TW I829080B TW 111103118 A TW111103118 A TW 111103118A TW 111103118 A TW111103118 A TW 111103118A TW I829080 B TWI829080 B TW I829080B
Authority
TW
Taiwan
Prior art keywords
data
storage
memory
virtualization controller
storage virtualization
Prior art date
Application number
TW111103118A
Other languages
English (en)
Other versions
TW202232328A (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 TW202232328A publication Critical patent/TW202232328A/zh
Application granted granted Critical
Publication of TWI829080B publication Critical patent/TWI829080B/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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • 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
    • G06F13/1673Details of memory controller using buffers
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2038Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with a single idle spare processing component
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2046Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share persistent storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/152Virtualized environment, e.g. logically partitioned system

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)
  • Computer Networks & Wireless Communication (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Hardware Redundancy (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

在具有雙儲存虛擬化控制器且以主動-主動模式(active-active mode)運作的儲存系統架構中,事先設定好兩儲存虛擬化控制器之快取緩衝單元(buffer)的儲存位址的對應關係。當不具有管理權限之儲存虛擬化控制器(non-owner)接收到主機的輸出入要求時,會向另一具有管理權限之儲存虛擬化控制器(owner)詢問相關位址訊息,再根據該位址資訊,由不具有管理權限之儲存虛擬化控制器(non-owner)完成該主機的輸出入要求。如此,可以快速完成雙儲存虛擬化控制器互為備援所需的資料同步作業,亦可以讓主機可以對任一儲存虛擬化控制器發出資料存取要求,因而提昇系統的效能。

Description

具有雙儲存虛擬化控制器之資料儲存系統架構及其資料存取 方法
本發明係有關於一種資料儲存系統架構及其資料存取之方法,尤指一種具有雙儲存虛擬化控制器之資料儲存系統架構及其資料存取方法。
儲存虛擬化(storage virtualization)技術係為一種將實體儲存空間虛擬化的技術,亦即,儲存虛擬化技術能將實體儲存裝置(Physical Storage Device,PSD)中的不同區段予以結合,使之成為可供主機使用的「邏輯碟」(logical disk,LD),亦稱作為「邏輯媒體單元」(logical media unit,LMU)。此儲存虛擬化技術主要應用於磁碟陣列(RAID)之儲存虛擬化,可將較小實體儲存裝置結合成為容量較大、可容錯、高效能之邏輯碟或邏輯媒體單元。
儲存虛擬化控制器(storage virtualization controller,SVC)之主要功用即是為達成上述之效能,其在上述主機與邏輯碟間建立一映射關係,使邏輯碟可為主機所用。此時,邏輯碟係歸屬儲存虛擬化控制器所管轄,亦即,儲存虛擬化控制器對邏輯碟具有「管理權限」(ownership)。當儲存虛擬化控制器接收到來自於主機之一輸出入請求(I/O request)後,儲存虛擬化控制器會先剖析及解譯該輸出入請求所攜帶的訊息(例如:目標為存取某一邏輯碟的某一段資料),並將相 關之操作及資料轉譯成與實體儲存裝置(PSD)相對應之輸出入請求。
為了能增加資料儲存系統的可靠性(reliability),常會見到利用冗餘(redundandent)的架構,將兩個儲存虛擬化控制器(例如:第一儲存虛擬化控制器與第二儲存虛擬化控制器)配置成一冗餘對(redundandent pair),稱為「儲存虛擬化控制器對」(SVC pair),以因應當一儲存虛擬化控制器(例如:第一儲存虛擬化控制器)發生故障或無法運作時,另一儲存虛擬化控制器(例如:第二儲存虛擬化控制器)可以接管(take over)故障之儲存虛擬化控制器所負責的工作(例如:接管故障之儲存虛擬化控制器原先管理之邏輯碟),如此使得主機依然可以連續不中斷地對所有邏輯碟繼續執行資料存取工作。
在冗餘儲存虛擬化系統的裝置端,儲存虛擬化控制器對(SVC pair)中的兩個儲存虛擬化控制器(SVC),必須皆有可以對所有實體儲存裝置(PSD)進行存取的連結,無論此實體儲存裝置(PSD)原本是否被指定由其管理。在主機端,則必須使儲存虛擬化控制器對(SVC pair)中每一儲存虛擬化控制器(SVC),在它的同伴SVC(mate SVC)處於原本就沒上線或上線後又因故下線(例如:故障、失效、或維護操作等所造成之下線)的情形下,具有將所有可供存取的資源呈現於主機且使該等資源可被主機所利用之能力;這些可存取的資源也包括原來就指定由另一個儲存虛擬化控制器(SVC)所管理的資源。
冗餘儲存虛擬化系統中的另外一個基本要件就是,每個儲存虛擬化控制器需能監視另一個儲存虛擬化控制器的狀態。此可利用一介於此二儲存虛擬化控制器間的「控制器間通訊通道(inter-controller communications channel,ICC)」來實現,利用此通訊通道來交換二儲存虛擬化控制器的操作狀態。此通訊通道可以是專用的,其唯一的作用就是供二儲存虛擬化控制器交換與此冗餘儲存虛擬化子系統的操作相關的參數與資料。或者此通訊通道是透過一或多個主機端或裝置端的輸出入裝置連結(I/O device interconnect)來實現,經由此種連結,這些 操作上的參數、資料交換可連同在這些連結上的主機-儲存虛擬化控制器輸出入請求或裝置-儲存虛擬化控制器輸出入請求所關聯的資料一起被多工傳輸。
當一主機向一冗餘對中之一儲存虛擬化控制器(例如:第二儲存虛擬化控制器)發出一存取要求,而接收主機存取要求的儲存虛擬化控制器(例如:第二儲存虛擬化控制器)發現,事實上主機是要存取另一儲存虛擬化控制器(例如:第一儲存虛擬化控制器)所管轄之邏輯碟(logical disk,LD)上的資料時,習知處理方式是,第二儲存虛擬化控制器會拒絕主機之存取要求,致使主機須重新向另一儲存虛擬化控制器(例如:第一儲存虛擬化控制器)發出存取要求,因而使得主機的存取效能不佳。
此外,當一主機向一冗餘對中之一儲存虛擬化控制器(例如:第一儲存虛擬化控制器)發出一寫入要求,用以將寫入資料寫入至第一儲存虛擬化控制器所管轄的一邏輯碟中。第一儲存虛擬化控制器在接收到寫入資料並先暫存在其記憶體的緩衝區(buffer)後,即以一確認訊號(例如:ACK訊號)通知主機:該主機寫入要求已經成功執行完成。然而,此種習知處理方法存在著風險,例如:當第一儲存虛擬化控制器接收到主機的寫入資料並以一確認訊號(例如:ACK訊號)通知主機「寫入完成」後,在還來不及將寫入資料複製至冗餘對中之另一儲存虛擬化控制器(例如:第二儲存虛擬化控制器)時,第一儲存虛擬化控制器卻發生故障或毀損,因此造成從主機接收的寫入資料遺失。如此一來,即使第二儲存虛擬化控制器在第一儲存虛擬化控制器發生故障或毀損之後,馬上接收(takeover)了第一儲存虛擬化控制器的身份且管理其原本管理的邏輯碟(logical disk,LD),這仍然無法挽回資料儲存系統已經遺失主機之寫入資料的事實,如此對資料儲存系統之可靠性(reliability)造成傷害。為了增加資料儲存系統保存主機之寫入資料的可靠性,一習知作法是:當冗餘對中之一儲存虛擬化控制器(例如:第一儲存虛擬化控制器)從主機接收寫入資料後,第一儲存虛擬 化控制器會先將所接收到的寫入資料複製至冗餘對中之另一儲存虛擬化控制器(例如:第二儲存虛擬化控制器),然後第一儲存虛擬化控制器才會以一確認訊號(例如:ACK訊號)通知主機「寫入完成」。然而,這樣的處理方式依然存在著風險,例如:萬一當第一儲存虛擬化控制器正在從主機接收寫入資料時、或已從主機接收寫入資料完畢且正要/正在將所接收到的寫入資料複製至第二儲存虛擬化控制器時,第一儲存虛擬化控制器卻突然發生故障,一樣會使得第二儲存虛擬化控制器無法從第一儲存虛擬化控制器取得寫入資料,造成寫入資料遺失。對此,習知處理方式採用的因應方式為:主機在一定時間內沒收到來自於第一儲存虛擬化控制器的確認訊號(例如:ACK訊號),主機會傳送一定次數(例如:二次)的詢問訊號給第一儲存虛擬化控制器,以探知第一儲存虛擬化控制器的目前狀態。而若主機一直未接收到第一儲存虛擬化控制器的回覆訊號,主機即了解第一儲存虛擬化控制器無法提供服務且其先前發出的主機寫入要求並未完成。如此,主機會轉而向第二儲存虛擬化控制器再次發出原先的主機寫入要求。透過以上繁複的程序,雖然提升了可靠性,但是卻付出存取效能低落的代價。綜上可知,如何提供具有高可靠性及高效能之資料儲存系統架構及其資料存取方法,是儲存業界亟待解決的問題。
本發明之一目的係提供一種於一資料儲存系統架構(1)下存取資料之方法,其中該資料儲存系統架構(1)包含有一第一儲存虛擬化控制器(SVC1)(10)、一第二儲存虛擬化控制器(SVC2)(20)及一儲存池(storage pool)(4),其中,該第一儲存虛擬化控制器(SVC1)(10)包含有一第一中央處理電路(CPC1)(105)、與一第一記憶體(memory 1)(107),該第二儲存虛擬化控制器(SVC2)(20)包含有一第二中央處理電路(CPC2)(205)、與一第二記憶體(memory 2)(207),該第一中央處理電路 (CPC1)(105)經由一傳輸介面連接至該第二中央處理電路(CPC2)(205),該第一記憶體(memory 1)(107)包含有複數個第一儲存空間,該第二記憶體(memory 2)(207)包含有複數個第二儲存空間,其中該方法包含:該第一儲存虛擬化控制器(SVC1)(10)管理該一儲存池(storage pool)(4)中一第一邏輯碟(LD1)(12);該第二儲存虛擬化控制器(SVC2)(20)接收來自一主機(15)之一寫入要求(write request),其中該寫入要求(write request)係要求寫入資料至該第一邏輯碟(LD1)(12);該第二儲存虛擬化控制器(SVC2)(20)經由該傳輸介面詢問該第一儲存虛擬化控制器(SVC1)(10)有關一位址訊息;該第一儲存虛擬化控制器(SVC1)(10)經由該傳輸介面回覆該位址訊息給該第二儲存虛擬化控制器(SVC2)(20),其中該位址訊息包含該第一記憶體(memory 1)(107)之一或多個第一資料儲存位址(ADDR1),其位於該複數個第一儲存空間中,用以儲存該寫入要求(write request)之寫入資料;該第二儲存虛擬化控制器(SVC2)(20)依據接收到的該位址訊息安排對應於該一或多個第一資料儲存位址(ADDR1)之該第二記憶體(memory 2)(207)中之一或多個第二資料儲存位址(ADDR2);該第二儲存虛擬化控制器(SVC2)(20)傳送一訊息給該主機(15),以通知該主機(15)傳送該寫入要求(write request)之一寫入資料;該第二儲存虛擬化控制器(SVC2)(20)接收來自該主機(15)之該寫入要求(write request)之該寫入資料;該第二儲存虛擬化控制器(SVC2)(20)將該寫入資料儲存於該第二記憶體(memory 2)(207)之該一或多個第二資料儲存位址(ADDR2)處;該第二儲存虛擬化控制器(SVC2)(20)經由該傳輸介面將該寫入資料儲存於該第一記憶體(memory 1)(107)之該一或多個第一資料儲存位址(ADDR1)處;以及該第二儲存虛擬化控制器(SVC2)(20)通知該主機(15),該寫入要求(write request)已執行完成。
依據本發明之另一實施例,其中該傳輸介面是經由一冗餘控制器通訊(RCC)連結控制器(9)所建立之一控制器間通訊通道(ICC)而達成。
依據本發明之另一實施例,其中該位址訊息更包含該第二記憶體 (memory 2)(207)之該一或多個第二資料儲存位址(ADDR2)。
依據本發明之另一實施例,其中於一資料儲存系統架構(1)下存取資料之該方法更包含以下步驟:該第二儲存虛擬化控制器(SVC2)(20)附加該一或多個第二資料儲存位址(ADDR2)於該寫入資料,當該第二儲存虛擬化控制器(SVC2)(20)接收到來自該主機(15)之該寫入資料後。
依據本發明之另一實施例,其中接收來自該主機(15)之該寫入資料的步驟與附加該一或多個第二資料儲存位址(ADDR2)於該寫入資料的步驟,是由該第二儲存虛擬化控制器(SVC2)(20)中之一第二主機端輸出入控制器(201)所執行。
依據本發明之另一實施例,其中該第一儲存虛擬化控制器(SVC1)(10)是藉由一第一交換器(switch 1)(103)與該傳輸介面連接,該第二儲存虛擬化控制器(SVC2)(20)是藉由一第二交換器(switch 2)(203)與該傳輸介面連接。
依據本發明之另一實施例,其中該第一交換器(switch 1)(103)與該第二交換器(switch 2)(203)更具有一非透明橋接功能(Non-transparent bridge,NTB)(1033、2033)。
依據本發明之另一實施例,其中該第二儲存虛擬化控制器(SVC2)(20)係藉由該第二交換器(switch 2)(203)將該寫入資料儲存於該第二記憶體(memory 2)(207)之該一或多個第二資料儲存位址(ADDR2)處、以及該第一記憶體(memory 1)(107)之該一或多個第一資料儲存位址(ADDR1)處。
依據本發明之另一實施例,其中於一資料儲存系統架構(1)下存取資料之該方法更包含以下步驟:該第二儲存虛擬化控制器(SVC2)20通知該第一儲存虛擬化控制器(SVC1)10,該寫入資料已經成功儲存至該第一記憶體(memory 1)(107)之該一或多個第一資料儲存位址(ADDR1)處、與該第二記憶體(memory 2)(207)之該一或多個第二資料儲存位址(ADDR2)處;以及該第一儲存虛擬化控制器(SVC1)10發出一確認訊息給該第二儲存虛擬化控制器(SVC2)20,以通知該第二 儲存虛擬化控制器(SVC2)20:確認該寫入資料已經成功儲存至該第一記憶體(memory 1)(107)之該一或多個第一資料儲存位址(ADDR1)處。
依據本發明之另一實施例,其中該第二儲存虛擬化控制器(SVC2)(20)更具有一第二群播表(MT2)(2031),該第二群播表(MT2)(2031)紀錄有一或多個虛擬群播位址(virtual multicast ADDR),該一或多個虛擬群播位址(virtual multicast ADDR)對應於該第一記憶體(memory 1)(107)之該一或多個第一資料儲存位址(ADDR1)、與該第二記憶體(memory 2)(207)之該一或多個第二資料儲存位址(ADDR2)。
依據本發明之另一實施例,其中於一資料儲存系統架構(1)下存取資料之該方法更包含以下步驟:該第二儲存虛擬化控制器(SVC2)(20)中之一第二主機端輸出入控制器(201)附加該一或多個虛擬群播位址(virtual multicast ADDR)於該寫入資料,當該第二儲存虛擬化控制器(SVC2)(20)接收到來自該主機(15)之該寫入資料後。
依據本發明之另一實施例,其中該第二儲存虛擬化控制器(SVC2)(20)中之一第二交換器(switch 2)(203)根據該一或多個虛擬群播位址(virtual multicast ADDR),將該寫入資料同時儲存至該第二記憶體(memory 2)(207)之該一或多個第二資料儲存位址(ADDR2)處、以及同時傳送至該第一記憶體(memory 1)(107)之該一或多個第一資料儲存位址(ADDR1)處。
依據本發明之另一實施例,其中該第二群播表(MT2)(2031)係存放於該第二儲存虛擬化控制器(SVC2)(20)中一第二交換器(switch 2)(203)。
依據本發明之另一實施例,其中該一或多個保留的第二儲存空間是位於該第二記憶體(memory 2)(207)的一第二快取緩衝單元(2071)之中。
依據本發明之另一實施例,其中於一資料儲存系統架構(1)下存取資料之該方法更包含以下步驟:該第二儲存虛擬化控制器(SVC2)(20)通知該第一儲 存虛擬化控制器(SVC1)(10),該寫入資料已經儲存至該第一記憶體(memory 1)(107)之該一或多個第一資料儲存位址(ADDR1)處;其中該一或多個第一資料儲存位址(ADDR1)係位於該第一記憶體(memory 1)(107)的一第一快取緩衝單元(1071)之中,而該一或多個第二資料儲存位址(ADDR2)係位於該第二記憶體(memory 2)(207)的一第二快取緩衝單元(2071)之中。
依據本發明之另一實施例,其中於一資料儲存系統架構(1)下存取資料之該方法更包含以下步驟:該第一儲存虛擬化控制器(SVC1)(10)將儲存於該第一記憶體(memory 1)(107)之該一或多個第一資料儲存位址(ADDR1)處之該寫入資料儲存至該第一邏輯碟(LD1)(12)之中。
依據本發明之另一實施例,其中於一資料儲存系統架構(1)下存取資料之該方法更包含以下步驟:當第一儲存虛擬化控制器(SVC1)(10)將儲存於該第一記憶體(memory 1)(107)之該一或多個第一資料儲存位址(ADDR1)處之該寫入資料儲存至該第一邏輯碟(LD1)(12)後,該第一儲存虛擬化控制器(SVC1)(10)通知該第二儲存虛擬化控制器(SVC2)(20)該寫入要求(write request)已執行完成。
依據本發明之另一實施例,其中於一資料儲存系統架構(1)下存取資料之該方法更包含以下步驟:該第一儲存虛擬化控制器(SVC1)(10)發出一確認訊息給該第二儲存虛擬化控制器(SVC2)20,以通知該第二儲存虛擬化控制器(SVC2)20:確認該寫入資料已經成功儲存至該第一記憶體(memory 1)(107)之該一或多個第一資料儲存位址(ADDR1)處。
依據本發明之另一實施例,其中該第二群播表(MT2)(2031)包含有複數個欄位,包括:一第一欄位用以記錄該一或多個虛擬群播位址(virtual multicast ADDR)、一第二欄位用以記錄該一或多個第一資料儲存位址(ADDR1)、及一第三欄位用以記錄該一或多個第二資料儲存位址(ADDR2)。
依據本發明之另一實施例,其中該第一儲存虛擬化控制器(SVC1)(10) 更具有一第一群播表(MT1)(1031),該第一群播表(MT1)(1031)包含有複數個欄位,包括:一第一欄位用以記錄該一或多個虛擬群播位址(virtual multicast ADDR)、一第二欄位用以記錄該一或多個第一資料儲存位址(ADDR1)、及一第三欄位用以記錄該一或多個第二資料儲存位址(ADDR2)。
本發明之另一目的係提供一種於一資料儲存系統架構(1)下存取資料之方法,該資料儲存系統架構(1)包含有一第一儲存虛擬化控制器(SVC1)(10)、一第二儲存虛擬化控制器(SVC2)(20)及一儲存池(storage pool)(4),其中,該第一儲存虛擬化控制器(SVC1)(10)包含有一第一中央處理電路(CPC1)(105)、與一第一記憶體(memory 1)(107),該第二儲存虛擬化控制器(SVC2)(20)包含有一第二中央處理電路(CPC2)(205)、與一第二記憶體(memory 2)(207),該第一中央處理電路(CPC1)(105)經由一傳輸介面連接至該第二中央處理電路(CPC2)(205),該第一記憶體(memory 1)(107)包含有複數個第一儲存空間,該第二記憶體(memory 2)(207)包含有複數個第二儲存空間,其中該方法包含:該第一儲存虛擬化控制器(SVC1)(10)管理該儲存池(storage pool)(4)中一第一邏輯碟(LD1)(12);該第二儲存虛擬化控制器(SVC2)(20)接收來自一主機(15)之一讀取要求(read request),其中該讀取要求(read request)係要求讀取該第一邏輯碟(LD1)(12)上儲存的一讀取資料;該第二儲存虛擬化控制器(SVC2)(20)經由該傳輸介面詢問該第一儲存虛擬化控制器(SVC1)(10)有關一位址訊息;該第一儲存虛擬化控制器(SVC1)(10)經由該傳輸介面回覆該位址訊息給該第二儲存虛擬化控制器(SVC2)(20),其中該位址訊息包含該第一記憶體(memory 1)(107)之一或多個第一資料儲存位址(ADDR1),其位於該複數個第一儲存空間中,用以儲存該讀取要求(read request)所欲讀取之該讀取資料;該第二儲存虛擬化控制器(SVC2)(20)接收並儲存該位址訊息;該第二儲存虛擬化控制器(SVC2)(20)傳送一訊息給該主機(15),以通知該主機(15)可以接收該讀取要求(read request)之該讀取資料;該第二儲存虛擬化控制器(SVC2)(20)根據該 位址訊息,經由該傳輸介面至該第一記憶體(memory 1)(107)之該一或多個第一資料儲存位址(ADDR1)處讀取該讀取資料;以及該第二儲存虛擬化控制器(SVC2)(20)通知該主機(15),該讀取要求(read request)已執行完成。
依據申請專利範圍第21項所述之方法,其中該傳輸介面是經由一冗餘控制器通訊(RCC)連結控制器(9)所建立之一控制器間通訊通道(ICC)而達成。
依據本發明之另一實施例,其中於一資料儲存系統架構(1)下存取資料之該方法更包含有:該第一儲存虛擬化控制器(SVC1)10先確認該第一記憶體107(memory 1)(107)中是否有該讀取要求(read request)所欲讀取之該讀取資料。
依據本發明之另一實施例,其中於一資料儲存系統架構(1)下存取資料之該方法更包含有:該第一儲存虛擬化控制器(SVC1)10從該第一邏輯碟(LD1)(12)讀取並暫存該讀取資料(DATA-H’)在該第一記憶體(memory 1)(107)之該一或多個第一資料儲存位址(ADDR1)處。
依據本發明之另一實施例,其中至該第一記憶體(memory 1)(107)之該一或多個第一資料儲存位址(ADDR1)處讀取該讀取資料,是由該第二儲存虛擬化控制器(SVC2)(20)中之一第二主機端輸出入控制器(201)所執行。
依據本發明之另一實施例,其中該第一儲存虛擬化控制器(SVC1)(10)是藉由一第一交換器(switch 1)(103)與該傳輸介面連接,該第二儲存虛擬化控制器(SVC2)(20)是藉由一第二交換器(switch 2)(203)與該傳輸介面連接。
依據本發明之另一實施例,其中該第一交換器(switch 1)(103)與該第二交換器(switch 2)(203)更具有一非透明橋接功能(Non-transparent bridge,NTB)(1033、2033)。
依據本發明之另一實施例,其中於一資料儲存系統架構(1)下存取資料之該方法更包含有:該第二儲存虛擬化控制器(SVC2)20通知該第一儲存虛擬化控制器(SVC1)10,該讀取資料已經傳送給該主機(15)。
本發明之另一目的係提供一種一種資料儲存系統架構(1),包含有:一儲存池(storage pool)(4),包含一第一邏輯碟(LD1)(12),其中該第一邏輯碟(LD1)(12)係由一或多個實體儲存裝置(PSD)映射而成;一第一儲存虛擬化控制器(SVC1)(10),包含一第一中央處理電路(CPC1)(105)、與一第一記憶體(memory 1)(107),其中該第一中央處理電路(CPC1)(105)用以管理該第一邏輯碟(LD1)(12)並呈現給一主機(15),該第一記憶體(memory 1)(107)包含複數個第一儲存空間;以及一第二儲存虛擬化控制器(SVC2)(20),包含一第二中央處理電路(CPC2)(205)、與一第二記憶體(memory 2)(207),其中該第二中央處理電路(CPC2)(205)經由一傳輸介面連接至該第一中央處理電路(CPC1)(105),該第二記憶體(memory 2)(207)包含複數個第二儲存空間;其中,當該第二儲存虛擬化控制器(SVC2)(20)從該主機(15)接收到欲存取該第一邏輯碟(LD1)(12)之一輸出入要求(I/O request)時,該第二儲存虛擬化控制器(SVC2)(20)中之該第二中央處理電路(CPC2)(205)經由該傳輸介面詢問該第一儲存虛擬化控制器(SVC1)(10)有關一位址訊息;其中,該第一儲存虛擬化控制器(SVC1)(10)經由該傳輸介面回覆該位址訊息給該第二儲存虛擬化控制器(SVC2)(20),該位址訊息包含該第一記憶體(memory 1)(107)中一或多個第一資料儲存位址(ADDR1);以及其中,該第二儲存虛擬化控制器(SVC2)(20)根據該一或多個第一資料儲存位址(ADDR1)完成該輸出入要求(I/O request)。
依據本發明之另一實施例,其中該第一記憶體(memory 1)(107)更包含一第一快取緩衝單元(1071),提供對應於該一或多個第一資料儲存位址(ADDR1)的一或多個保留的第一儲存空間;其中該第二記憶體(memory 2)(207)更包含一第二快取緩衝單元(2071),提供對應於該一或多個第二資料儲存位址(ADDR2)的一或多個保留的第二儲存空間。
依據本發明之另一實施例,其中該第一儲存虛擬化控制器(SVC1)(10) 更包含一第一主機端輸出入控制器(host-side I/O controller 1)(101),做為該第一儲存虛擬化控制器(SVC1)(10)與該主機(15)之間的傳輸介面;其中該第二儲存虛擬化控制器(SVC2)(20)更包含一第二主機端輸出入控制器(host-side I/O controller 2)(201),做為該第二儲存虛擬化控制器(SVC2)(20)與該主機(15)之間的傳輸介面。
依據本發明之另一實施例,其中該第一儲存虛擬化控制器(SVC1)(10)更包含一第一交換器(switch 1)(103),其具有非透明橋接功能(Non-transparent bridge,NTB)(1033),對內連接至該第一中央處理電路(CPC1)(105)與該第一主機端輸出入連結控制器(host-side I/O controller 1)(101),對外則透過該傳輸介面連接至該第二儲存虛擬化控制器(SVC2)(20);其中該第二儲存虛擬化控制器(SVC2)(20)更包含一第二交換器(switch 2)(203),其具有非透明橋接功能(Non-transparent bridge,NTB)(2033),對內連接至該第二中央處理電路(CPC2)(205)與該第二主機端輸出入連結控制器(host-side I/O controller 2)(201),對外則透過該傳輸介面連接至該第一儲存虛擬化控制器(SVC1)(10)。
依據本發明之另一實施例,其中該第一中央處理電路(CPC1)(105)與該第一交換器(switch 1)(103)係整合在同一晶片上、或是各自獨立的電路模組;其中該第二中央處理電路(CPC2)(205)與該第二交換器(switch 2)(203)係整合在同一晶片上、或是各自獨立的電路模組。
依據本發明之另一實施例,其中該第一主機端輸出入控制器(host-side I/O controller 1)(101)與該第一交換器(switch 1)(103)係整合在同一晶片上、或是各自獨立的電路模組;其中該第二主機端輸出入控制器(host-side I/O controller 2)(201)與該第二交換器(switch 2)(203)係整合在同一晶片上、或是各自獨立的電路模組。
依據本發明之另一實施例,其中該第一主機端輸出入控制器(host-side I/O controller 1)(101)與該第一中央處理電路(CPC1)(105)係整合在同一晶片上、或 是各自獨立的電路模組;其中該第二主機端輸出入控制器(host-side I/O controller 2)(201)與該第二中央處理電路(CPC2)(205)係整合在同一晶片上、或是各自獨立的電路模組。
依據本發明之另一實施例,其中該傳輸介面是經由一冗餘控制器通訊(RCC)連結控制器(9)所建立之一控制器間通訊通道(ICC)而達成。
依據本發明之另一實施例,其中當該輸出入要求(I/O request)為一寫入要求(write request)時,該第二儲存虛擬化控制器(SVC2)(20)依據接收到的該位址訊息安排對應於該一或多個第一資料儲存位址(ADDR1)之該第二記憶體(memory 2)(207)中之一或多個第二資料儲存位址(ADDR2),或是參考一第二群播表(MT2)(2031)以得知與該一或多個第一資料儲存位址(ADDR1)相對應之一或多個虛擬群播位址(virtual multicast ADDR)。
依據本發明之另一實施例,其中該第二儲存虛擬化控制器(SVC2)(20)更具有一第二主機端輸出入控制器(host-side I/O controller 2)(201)與一第二交換器(switch 2)(203),該第二主機端輸出入控制器(host-side I/O controller 2)(201)用以接收來自該主機(15)之該寫入要求(write request)之一寫入資料、以及附加該一或多個第二資料儲存位址(ADDR2)、或該一或多個虛擬群播位址(virtual multicast ADDR)在該寫入資料,然後傳送已附加該一或多個第二資料儲存位址(ADDR2)、或該一或多個虛擬群播位址(virtual multicast ADDR)的該寫入資料至該第二交換器(switch 2)(203)。
依據本發明之另一實施例,其中當該第二交換器(switch 2)(203)接收到該寫入資料後,將該寫入資料儲存於該第二記憶體(memory 2)(207)之該一或多個第二資料儲存位址(ADDR2)處,且該第二交換器(switch 2)(203)經由該傳輸介面將該寫入資料儲存於該第一記憶體(memory 1)(107)之該一或多個第一資料儲存位址(ADDR1)處。
依據本發明之另一實施例,其中該第二交換器(switch 2)(203)接收到該寫入資料後,根據該寫入資料中附加的該一或多個虛擬群播位址(virtual multicast ADDR),查詢一第二群播表(MT2)(2031)以得到相對應的該一或多個虛擬群播位址(virtual multicast ADDR)的該一或多個第一資料儲存位址(ADDR1)與該一或多個第二資料儲存位址(ADDR2),進而執行一多點播送(multicast)操作,將該寫入資料同時儲存至該第二記憶體(memory 2)(207)之該一或多個第二資料儲存位址(ADDR2)處、以及同時傳送至該第一記憶體(memory 1)(107)之該一或多個第一資料儲存位址(ADDR1)處。
依據本發明之另一實施例,其中當該輸出入要求(I/O request)為一讀取要求(read request)時,該第二儲存虛擬化控制器(SVC2)(20)根據該位址訊息,經由該傳輸介面至該第一記憶體(memory 1)(107)之該一或多個第一資料儲存位址(ADDR1)處讀取該讀取資料。
1,1a:資料儲存系統架構
3,3a:獨立冗餘磁碟陣列子系統
4:儲存池
5:通道
7:裝置端輸出入裝置連結
10:第一儲存虛擬化控制器(SVC1)
12:第一邏輯碟(LD1)
15:主機(host)
20:第二儲存虛擬化控制器(SVC2)
22:第二邏輯碟(LD2)
101:第一主機端輸出入控制器(host-side I/O controller 1)
103:第一交換器(switch 1)
105:第一中央處理電路(CPC1)
107:第一記憶體(memory 1)
109:第一裝置端輸出入控制器(device-side I/O controller 1)
201:第二主機端輸出入控制器(host-side I/O controller 2)
203:第二交換器(switch 2)
205:第二中央處理電路(CPC2)
207:第二記憶體(memory 2)
209:第二裝置端輸出入控制器(device-side I/O controller 2)
1031:第一群播表(MT1)
1033:非透明橋接功能(NTB)
1051:第一中央處理單元(CPU1)
1071:第一快取緩衝單元(buffer 1)
2031:第二群播表(MT2)
2033:非透明橋接功能(NTB)
2051:第二中央處理單元(CPU2)
2071:第二快取緩衝單元(buffer 2)
2001-2025:本發明之一資料儲存系統架構1,在寫入模式下執行資料存取方法之方法之第一實施例的第一部分流程圖的步驟
2027-2043:本發明之一資料儲存系統架構1,在寫入模式下執行資料存取方法之方法之第一實施例的第二部分流程圖的步驟
2045-2061:本發明之一資料儲存系統架構1,在寫入模式下執行資料存取方法之方法之第一實施例的第三部分流程圖的步驟
4001-4025:本發明之一資料儲存系統架構1,在寫入模式下執行資料存取方法之方法之第二實施例的第一部分流程圖的步驟
4027-4043:本發明之一資料儲存系統架構1,在寫入模式下執行資料存取方法之方法之第二實施例的第二部分流程圖的步驟
4045-4061:本發明之一資料儲存系統架構1,在寫入模式下執行資料存取方法之方法之第二實施例的第三部分流程圖的步驟
8001-8015,8039-8041:本發明之儲存系統架構1、1a中,在寫回模式(write back mode)下執行資料存取方法之第三實施例的第一部分流程圖的步驟
8017-8037:本發明之儲存系統架構1、1a中,在寫回模式(write back mode)下執行資料存取方法之第三實施例的第二部分流程圖的步驟
8045-8059:本發明之儲存系統架構1、1a中,在寫回模式(write back mode)下執行資料存取方法之第三實施例的第三部分流程圖的步驟
9001-9033:本發明之儲存系統架構1、1a中,執行資料存取方法之第四實施例的第一部分流程圖的步驟
9035-9047:本發明之儲存系統架構1、1a中,執行資料存取方法之第四實施例的第二部分流程圖的步驟
第1圖係為本發明之一實施例之一資料儲存系統架構1的方塊示意圖。
第2A圖係為本發明之一資料儲存系統架構1,在寫入模式(write through mode)下,執行資料存取方法之第一實施例的第一部分流程圖。
第2B圖係為本發明之一資料儲存系統架構1,在寫入模式(write through mode)下,執行資料存取方法之第一實施例的第二部分流程圖。
第2C圖係為本發明之一資料儲存系統架構1,在寫入模式(write through mode)下,執行資料存取方法之第一實施例的第三部分流程圖。
第3A圖係為本發明之一儲存系統架構1實現第2A圖之步驟2001至步驟2013的訊號傳遞示意圖。
第3B圖係為本發明之一資料儲存系統架構1實現第2B圖的訊號傳遞示意圖。
第3C圖係為本發明之一資料儲存系統架構1實現第2A圖之步驟2001至步驟2003與步驟2017至步驟2023的訊號傳遞示意圖。
第3D圖係為本發明之一資料儲存系統架構1實現第2C圖的訊號傳遞示意圖。
第4A圖係為本發明之一資料儲存系統架構1,在寫回模式(write back mode)下,執行資料存取方法之第二實施例的第一部分流程圖。
第4B圖係為本發明之一資料儲存系統架構1,在寫回模式(write back mode)下,執行資料存取方法之第二實施例的第二部分流程圖。
第4C圖係為本發明之一資料儲存系統架構1,在寫回模式(write back mode)下,執行資料存取方法之第二實施例的第三部分流程圖。
第5A圖係為本發明之一資料儲存系統架構1實現第4A圖之步驟4001至步驟4013的訊號傳遞示意圖。
第5B圖係為本發明之一資料儲存系統架構1實現第4B圖的訊號傳遞示意圖。
第5C圖係為本發明之一資料儲存系統架構1實現第4A圖之步驟4001至步驟4003與步驟4017至步驟4023的訊號傳遞示意圖。
第5D圖係為本發明之一資料儲存系統架構1實現第4C圖的訊號傳遞示意圖。
第6圖係為本發明之一資料儲存系統架構1中,群播表(multicast table)之一實施例的資料結構示意圖。
第7圖係為本發明之一實施例之另一資料儲存系統架構1a的方塊示意圖。
第8A圖係為本發明之資料儲存系統架構1、1a,在寫回模式(write back mode)下,執行資料存取方法之第三實施例的第一部分流程圖。
第8B圖係為本發明之資料儲存系統架構1、1a,在寫回模式(write back mode)下,執行資料存取方法之第三實施例的第二部分流程圖。
第8C圖係為本發明之資料儲存系統架構1、1a,在寫回模式(write back mode) 下,執行資料存取方法之第三實施例的第三部分流程圖。
第9A圖係為本發明之資料儲存系統架構1、1a,執行資料存取方法之第四實施例的第一部分流程圖。
第9B圖係為本發明之資料儲存系統架構1、1a,執行資料存取方法之第四實施例的第二部分流程圖。
請參閱第1圖,其係為依據本發明之一實施例之一資料儲存系統架構1(後稱「儲存系統架構」)的方塊示意圖。儲存系統架構1係由一主機(host)15與一獨立冗餘磁碟陣列子系統(redundant array of independent disks subsystem,RAID subsystem)3所組成;該獨立冗餘磁碟陣列子系統3於後文中簡稱為「RAID子系統」3。該RAID子系統3是透過一主機端輸出入裝置連結(host-side I/O device interconnect)5與該主機(host)15相連接。RAID子系統3更包含有一儲存虛擬化控制器對(SVC pair)(又稱「冗餘對」(redundandent pair))、與一儲存池(storage pool)4。其中,儲存虛擬化控制器對(SVC pair)是由一第一儲存虛擬化控制器(SVC1)10與一第二儲存虛擬化控制器(SVC2)20所組成;儲存池(storage pool)4是由一至多個實體儲存裝置(physical storage device,PSD)所組成,經虛擬化後形成一至多個邏輯碟(logical disk,LD)。於本發明之一實施例中,該一至多個邏輯碟更包含有一第一邏輯碟(LD1)12及一第二邏輯碟(LD2)22。兩儲存虛擬化控制器間10、20是透過一裝置端輸出入裝置連結(device-side I/O device interconnect)7與儲存池(storage pool)4相連接。雖然第1圖繪示之儲存系統架構1係由一主機(host)15與一RAID子系統3所組成,但於本發明其它實施例中,可能是一或複數個主機15透過主機端輸出入裝置連結(host-side I/O device interconnect)5與一或複數個RAID子系統3相連接。此外,本發明之RAID子系統3所包含的邏輯碟數目不以圖中的兩個 為限,可能包含有兩個以上的邏輯碟,且可能將複數個邏輯碟區分為兩組,每一組各自包含有至少一邏輯碟且為兩儲存虛擬化控制器10、20中之一所管轄。
本發明中之邏輯碟12、22係由儲存虛擬化控制器10、20映射(map)一或多個實體儲存裝置(PSD)中之各區段所結合而成。在一實施例中,於此獨立冗餘磁碟陣列子系統3中的一或多個實體儲存裝置(PSD)可組合形成一實體儲存裝置陣列(PSD array)。此處所稱之實體儲存裝置(PSD),於本發明之一實施例中,可以是各種傳輸介面的硬碟(Hard Disk Drive)、固態硬碟(Solid State Drive)、或是任何可以用於儲存資料的實體儲存裝置(physical storage device)。以上所稱之傳輸介面,於本發明之一實施例中,可以是先進技術接取介面(Advanced Technology Attachment,ATA,或稱為IDE)、序列先進技術接取介面(serial ATA,SATA)、小型電腦標準介面(Small Computer System Interface,SCSI)、序列連接小型電腦標準介面(Serial-Attached SCSI,SAS)、或光纖通道(Fiber Channel,FC)…等用於傳輸資料的介面。第一儲存虛擬化控制器(SVC1)10與第二儲存虛擬化控制器(SVC2)20之間具有一冗餘控制器通訊(redundant controller communicating,RCC)連結控制器9。第一儲存虛擬化控制器(SVC1)10與第二儲存虛擬化控制器(SVC2)20可透過冗餘控制器通訊(RCC)連結控制器9建立彼此間之控制器間通訊通道(inter-controller communicaions channel,ICC),以互相傳送訊息或資料。在實作控制器間通訊通道(ICC)的常見實施方式係為採用光纖通道仲裁迴圈(Fiber Channel-Arbitrated Loop,FC-AL)、操作於目標模式之並列小型電腦系統介面(parallel small computer system interface,parallel SCSI)、採用遠端記憶體直接存取介面(remote direct memory access,RDMA)、採用快速周邊組件互連介面(PCI Express,PCI-E)或操作於目標模式之序列先進技術接取介面(serial advanced technology attachment,SATA)等通訊連結來實現,但不以此為限。
於本發明之一實施例中,第一儲存虛擬化控制器(SVC1)10包含有一 第一主機端輸出入裝置連結控制器(host-side I/O device interconnect controller 1,或簡稱為「第一主機端輸出入控制器(host-side I/O controller 1)」)101、具有非透明橋接功能(Non-transparent bridge,NTB)1033之一第一交換器(switch 1)103、一第一中央處理電路(central process circuit 1,CPC1)105、一第一記憶體(memory 1)107以及一第一裝置端輸出入裝置連結控制器(device-side I/O device interconnect controller 1,或簡稱為「第一裝置端輸出入控制器(device-side I/O controller 1)」)109。其中,第一交換器(switch 1)103更包含有一第一群播表(multicast table 1,MT1)1031,第一中央處理電路(CPC1)105更包含有一第一中央處理單元(central process unit 1,CPU1)1051,第一記憶體(memory 1)107更包含有一第一快取緩衝單元(cache buffer 1,buffer 1)1071。
於本發明之一實施例中,第二儲存虛擬化控制器(SVC2)20包含有一第二主機端輸出入裝置連結控制器(host-side I/O device interconnect controller 2,或簡稱為「第二主機端輸出入控制器(host-side I/O controller 2)」)201、一第二中央處理電路(CPC2)205、具有非透明橋接功能(Non-transparent bridge,NTB)2033之一第二交換器(switch 2)203、一第二記憶體(memory 2)207以及一第二裝置端輸出入裝置連結控制器(device-side I/O device interconnect controller 2,或簡稱為「第二裝置端輸出入控制器(device-side I/O controller 2)」)209;其中,第二交換器(switch 2)203更包含有一第二群播表(multicast table 2,MT2)2031,第二中央處理電路(CPC2)205更包含有一第二中央處理單元(CPU2)2051,第二記憶體(memory 2)207更包含有一第二快取緩衝單元(cache buffer 2,buffer 2)2071。
於本發明之另一實施例,第一儲存虛擬化控制器(SVC1)10及/或第二儲存虛擬化控制器(SVC2)20亦可採用不具有非透明橋接功能(Non-transparent bridge,NTB)的第一交換器(switch 1)103及/或第二交換器(switch 2)203。此時,第一交換器(switch 1)103及/或第二交換器(switch 2)203可以透過外接一具有非透明 橋接功能(Non-transparent bridge,NTB)的連接埠(port)來達到相同的功效。於本發明之一實施例,此一具有非透明橋接功能(Non-transparent bridge,NTB)的連接埠是採用快速周邊組件互連介面(PCI Express,PCI-E)。
第一主機端輸出入控制器(host-side I/O controller 1)101經由主機端輸出入裝置連結(host-side I/O device interconnect)5連接於主機15,其係用以作為第一儲存虛擬化控制器(SVC1)10與主機15之間的介面及緩衝,且可接收由主機15傳來的輸出入請求和相關資料,並且將其轉換及/或映射給第一中央處理電路(CPC1)105。此外,第一主機端輸出入控制器(host-side I/O controller 1)101可以包含有用來耦接於主機15之一或多個第一主機端埠(host-side port)(圖中沒有繪示),該些第一主機端埠的介面可以為:光纖通道支援fabric(fibre channel supporting fabric)、點對點連結、公用迴路連結及/或專用迴路連結於目標模式,操作於目標模式之並列小型電腦系統介面(parallel small computer system interface,parallel SCSI)、支援網際網路SCSI(internet SCSI,iSCSI)協定且操作於目標模式之乙太網路、操作於目標模式之序列連接SCSI(serial-attached SCSI,SAS),以及操作於目標模式之序列先進技術接取介面(serial advanced technology attachment,SATA),但不以此為限。
同樣地,第二主機端輸出入控制器(host-side I/O controller 2)201經由主機端輸出入裝置連結(host-side I/O device interconnect)5連接於主機15,其係用以作為第二儲存虛擬化控制器(SVC2)20與主機15之間的介面及緩衝,且可接收由主機15傳來的輸出入請求和相關資料,並且將其轉換及/或映射給第二中央處理電路(CPC2)205。此外,第二主機端輸出入控制器(host-side I/O controller 2)201可以包含有用來耦接於主機15之一或多個第二主機端埠(host-side port)(圖中沒有繪示),該些第二主機端埠的介面可以為:光纖通道支援fabric(fibre channel supporting fabric)、點對點連結、公用迴路連結及/或專用迴路連結於目標模式,操作於目標 模式之並列小型電腦系統介面(parallel small computer system interface,parallel SCSI)、支援網際網路SCSI(internet SCSI,iSCSI)協定且操作於目標模式之乙太網路、操作於目標模式之序列連接SCSI(serial-attached SCSI,SAS),以及操作於目標模式之序列先進技術接取介面(serial advanced technology attachment,SATA),但不以此為限。
第一裝置端輸出入控制器(device-side I/O controller 1)109連接第一中央處理電路(CPC1)105與裝置端的邏輯碟(LD1、LD2)12、22,其係用以作為映射成邏輯碟(LD1、LD2)12、22之實體儲存裝置(PSD)與第一中央處理電路(CPC1)105之間的介面及緩衝,接收由第一中央處理電路(CPC1)105傳來的輸出入請求和相關資料,並且將來自第一中央處理電路(CPC1)105傳來的輸出入請求和相關資料轉換及/或映射給邏輯碟(LD1、LD2)12、22。此外,第一裝置端輸出入控制器(device-side I/O controller 1)109可以包含有一或多個第一裝置端埠(device-side port)(圖中沒有繪示),用來耦接於映射成邏輯碟(LD1、LD2)12、22的一或多個實體儲存裝置(PSD),這些第一裝置端埠的介面可以為:光纖通道仲裁迴圈(Fiber Channel-Arbitrated Loop,FC-AL)、小型電腦標準介面(Small Computer System Interface,SCSI)、序列連接SCSI(Serial-Attached SCSI,SAS)、或是序列先進技術接取介面(SATA)…等,但不以此為限。
同樣地,第二裝置端輸出入控制器(device-side I/O controller 2)209連接第二中央處理電路(CPC2)205與裝置端的邏輯碟(LD1、LD2)12、22,其係用以作為映射成邏輯碟(LD1、LD2)12、22之實體儲存裝置(PSD)與第二中央處理電路(CPC2)205之間的介面及緩衝,接收由第二中央處理電路(CPC2)205傳來的輸出入請求和相關資料,並且將來自第二中央處理電路(CPC2)205傳來的輸出入請求和相關資料轉換及/或映射給邏輯碟(LD1、LD2)12、22。此外,第二裝置端輸出入控制器(device-side I/O controller 2)209可以包含有一或多個第二裝置端埠 (device-side port)(圖中沒有繪示),用來耦接於映射成邏輯碟(LD1、LD2)12、22的一或多個實體儲存裝置(PSD),這些第二裝置端埠的介面可以為:光纖通道仲裁迴圈(Fiber Channel-Arbitrated Loop,FC-AL)、小型電腦標準介面(Small Computer System Interface,SCSI)、序列連接SCSI(Serial-Attached SCSI,SAS)、或是序列先進技術接取介面(SATA)…等,但不以此為限。
在RAID子系統3中,若兩儲存虛擬化控制器(SVC1、SVC2)10、20的運作組態為主動-主動模式(active-active mode)且兩儲存虛擬化控制器10、20皆正常運作的情形下,兩儲存虛擬化控制器(SVC1、SVC2)10、20對呈現於此RAID子系統3的各個邏輯碟(LD1、LD2)12、22(或各個邏輯媒體單元(LMU1、LMU2))的輸出入請求各自進行呈現、管理及處理。在主動-主動模式中,上述二儲存虛擬化控制器(SVC1、SVC2)10、20一直都準備在另一個儲存虛擬化控制器(SVC1)10或(SVC2)20因故障(malfunction)而導致發生障礙或失能的情況下接管(take over)對方。於本發明之一實施例中,第一中央處理電路105(CPC1)係用以處理及/或監控來自於主機15之輸出入要求(I/O request)、以及根據主機15之輸出入要求(I/O request)對第一邏輯碟(LD1)12(亦即第一邏輯媒體單元(LMU1))做虛擬與實體之間之輸出入操作的轉換/映射。換言之,第一中央處理電路(CPC1)105所屬之第一儲存虛擬化控制器(SVC1)10對於第一邏輯碟(LD1)12具有管理權限(ownership)。同樣地,第二中央處理電路(CPC2)205係用以處理及/或監控來自於主機15之輸出入要求(I/O request)、以及跟據主機15之輸出入要求(I/O request)對第二邏輯碟(LD2)22(亦即第二邏輯媒體單元(LMU2))做虛擬與實體之間之輸出入操作的轉換/映射。換言之,第二中央處理電路(CPC2)205所屬之第二儲存虛擬化控制器(SVC2)20對於第二邏輯碟(LD2)22具有管理權限(ownership)。
第一儲存虛擬化控制器(SVC1)10之第一交換器(switch 1)103對內分別連接第一主機端輸出入控制器(host-side I/O controller 1)101、第一中央處理電路 (CPC1)105,對外則透過冗餘控制器通訊(RCC)連結控制器9連接至第二儲存虛擬化控制器(SVC2)20之第二交換器(switch 2)203。第一交換器(switch 1)103不僅用以作為與其相連之各電路區塊間之一雙向傳輸介面(例如:第一交換器(switch 1)103與第二交換器(switch 2)203彼此間建立用以互相傳送訊息及/或資料之控制器間通訊通道(ICC)),也負責將來自主機15之寫入資料傳送至同樣位於第一儲存虛擬化控制器(SVC1)10中之第一記憶體(memory 1)107的第一快取緩衝單元(buffer 1)1071,或同時多點播送(multicast)至同樣位於第一儲存虛擬化控制器(SVC1)10中之第一記憶體(memory 1)107的第一快取緩衝單元(buffer 1)1071與第二儲存虛擬化控制器(SVC2)20中之第二記憶體(memory 2)207的第二快取緩衝單元(buffer 2)2071。
同樣地,第二儲存虛擬化控制器(SVC2)20之第二交換器(switch 2)203對內分別連接第二主機端輸出入控制器(host-side I/O controller 2)201、第二中央處理電路(CPC2)205,對外則透過冗餘控制器通訊(RCC)連結控制器9連接至第一儲存虛擬化控制器(SVC1)10之第一交換器(switch 1)103。第二交換器(switch 2)203不僅用以作為與其相連之各電路區塊間之一雙向傳輸介面(例如:第二交換器(switch 2)203與第一交換器(switch 1)103彼此間建立用以互相傳送訊息及/或資料之控制器間通訊通道(ICC)),也負責將來自主機15之寫入資料傳送至同樣位於第二儲存虛擬化控制器(SVC2)20中之第二記憶體(memory 2)207的第二快取緩衝單元(buffer 2)2071,或同時多點播送(multicast)至同樣位於第二儲存虛擬化控制器(SVC2)20中之第二記憶體(memory 2)207的第二快取緩衝單元(buffer 2)2071與第一儲存虛擬化控制器(SVC1)10中之第一記憶體(memory 1)107的第一快取緩衝單元(buffer 1)1071。此外,第一交換器(switch 1)103管理一第一群播表(MT1)1031,第二交換器(switch 2)203管理一第二群播表(MT2)2031,在本發明技術之一實施例中,該兩群播表(MT1、MT2)1031、2031係用於各別記錄第一快取緩衝單元 (buffer 1)1071與第二快取緩衝單元(buffer 2)2071各自暫時儲存來自主機15之寫入資料之資料儲存位址與彼此間的對應關係、以及對應該些儲存位址的虛擬群播位址(multicast address)。於本發明之一實施例,該兩群播表(MT1、MT2)1031、2031之示意圖如第6圖所示,其詳細內容將於後文說明。
第一儲存虛擬化控制器(SVC1)10之第一記憶體(memory 1)107連接於第一中央處理電路(CPC1)105,其係用以作為一緩衝器,用來緩衝傳送於主機(host)15及第一邏輯碟(LD1)12之間通過第一中央處理電路(CPC1)105的資料。同樣地,第二儲存虛擬化控制器(SVC2)20之第二記憶體(memory 2)207連接於第二中央處理電路(CPC2)205,其係用以作為一緩衝器,用來緩衝傳送於主機(host)15及第二邏輯碟(LD2)22之間通過第二中央處理電路(CPC2)205的資料。在實作時,第一記憶體(memory 1)107與第二記憶體(memory 2)207可以以動態隨機存取記憶體(DRAM)或同步動態隨機存取記憶體(SDRAM)來加以實現。此外,第一記憶體(memory 1)107中之第一快取緩衝單元(buffer 1)1071與第二記憶體(memory 2)207中之第二快取緩衝單元(buffer 2)2071係用以暫時儲存主機(host)15要寫入第一邏輯碟(LD1)12及/或第二邏輯碟(LD2)22之寫入資料(例如:寫入資料(DATA-H))。
本發明於實際應用時之一實施例中,第一儲存虛擬化控制器(SVC1)10所包含之第一主機端輸出入控制器(host-side I/O controller 1)101、第一交換器(switch 1)103、第一中央處理電路(CPC1)105、第一記憶體(memory 1)107以及第一裝置端輸出入控制器(device-side I/O controller 1)109可以視需求而全部整合在單一晶片上或分別配置在一或多個晶片上。於本發明一實施例,第一主機端輸出入控制器(host-side I/O controller 1)101與第一交換器(switch 1)103可以整合在同一晶片上、或是各自獨立的電路模組。
同樣地,第二儲存虛擬化控制器(SVC2)20所包含之第二主機端輸出 入控制器(host-side I/O controller 2)201、第二交換器(switch 2)203、第二中央處理電路(CPC2)205、第二記憶體(memory 2)207以及第二裝置端輸出入控制器(device-side I/O controller 2)209可以視需求而全部整合在單一晶片上或分別配置在一或多個晶片上。於本發明一實施例,第二主機端輸出入控制器(host-side I/O controller 2)201與第二交換器(switch 2)203可以整合在同一晶片上、或是各自獨立的電路模組。
請參閱第2A圖-第2C圖與第3A圖-第3D圖。第2A圖係為依據本發明之儲存系統架構1,在寫入模式(write through mode)下,執行資料存取方法之第一實施例的第一部分流程圖。第2B圖係為依據本發明之儲存系統架構1,在寫入模式(write through mode)下,執行資料存取方法之第一實施例的第二部分流程圖。第2C圖係為依據本發明之儲存系統架構,在寫入模式(write through mode)下,執行資料存取方法之第一實施例的第三部分流程圖。第3A圖-第3B圖係為本發明之一儲存系統架構1實現第2A圖與第2B圖所示的實施例之資料存取方法之訊號傳遞示意圖。第3C圖與第3D圖係為本發明之一儲存系統架構1實現第2A圖與第2C圖所示的實施例之資料存取方法之訊號傳遞示意圖。
請同時參閱第2A圖與第3A圖。第2A圖以儲存系統架構1為例說明本發明技術之第一實施例的第一部分流程圖,第3A圖繪示儲存系統架構1實現第2A圖之步驟2001至步驟2013的訊號傳遞示意圖。舉例來說,當主機15要將一寫入資料(DATA-H)寫入至RAID子系統3之第一邏輯碟12時,主機15會向RAID子系統3發出一輸出入要求(I/O request),在此亦可稱為主機寫入要求(write request),且此主機寫入要求(write request)可能會發送給RAID子系統3中的任一儲存虛擬化控制器。在此例子中,假設第一邏輯碟12的管理者(owner)是第一儲存虛擬化控制器10。當RAID子系統3之一儲存虛擬化控制器(例如:第一儲存虛擬化控制器(SVC1)10或第二儲存虛擬化控制器(SVC2)20)收到該主機寫入要求時(步驟2001),接 收到該主機寫入要求之儲存虛擬化控制器(例如:第一儲存虛擬化控制器(SVC1)10或第二儲存虛擬化控制器(SVC2)20)會從該主機寫入要求所攜帶的資訊判斷:主機15是要將寫入資料(DATA-H)寫入到哪一個邏輯碟(在此例子中是:第一邏輯碟12),並因此知道自己對於該主機寫入要求所要寫入的邏輯碟(即:第一邏輯碟12)是否具有的管理權限(ownership)(步驟2003)。
若以上步驟2003的判斷結果是:該主機寫入要求是由非管理者(non-owner)的儲存虛擬化控制器(在此例子中是:第二儲存虛擬化控制器(SVC2)20)所接收到;也就是說,第二儲存虛擬化控制器(SVC2)20接收到一個主機寫入要求,要求將寫入資料(DATA-H)寫入至第一邏輯碟12中(步驟2003),而第一邏輯碟12是由其它儲存虛擬化控制器(在此例子中是:第一儲存虛擬化控制器(SVC1)10)所管轄。在此情況下,由於接收到主機寫入要求的第二儲存虛擬化控制器(SVC2)20不是第一邏輯碟12的管理者(owner),因此,第二儲存虛擬化控制器(SVC2)20需要向第一邏輯碟12的管理者(owner)(即:第一儲存虛擬化控制器(SVC1)10)詢問一位址訊息,包含「將寫入資料(DATA-H)寫入到第一邏輯碟12的相關資訊」(步驟2005)。此一詢問的具體內容,在一實施例中可以是:第二儲存虛擬化控制器(SVC2)20之第二中央處理電路(CPC2)205經由冗餘控制器通訊(RCC)連結控制器9所建立之控制器間通訊通道(ICC)傳送一詢問指令(CMD-SC2 command)給第一儲存虛擬化控制器(SVC1)10,詢問第一儲存虛擬化控制器(SVC1)10:預計將該主機寫入要求所關聯的寫入資料(DATA-H)儲存在其第一記憶體107之第一快取緩衝單元1071的哪一(或哪些)資料儲存位址所代表的儲存空間(步驟2005)。當第一儲存虛擬化控制器(SVC1)10接收到詢問指令(CMD-SC2 command)後,先在第一快取緩衝單元1071中指定與一(或多個)資料儲存位址(例如:ADDR1)對應之儲存空間,用來暫存該主機寫入要求之寫入資料(DATA-H),然後將該一(或多個)資料儲存位址(例如:ADDR1)回覆給第二儲 存虛擬化控制器(SVC2)20(步驟2007)。第二儲存虛擬化控制器(SVC2)20中之第二中央處理電路(CPC2)205依據該一(或多個)資料儲存位址(例如:ADDR1),查詢位於第二交換器203中之第二群播表(MT2)2031來找到與該一(或多個)資料儲存位址(例如:ADDR1)相對應之一(或多個)虛擬群播位址(virtual multicast ADDR)(步驟2009)。接著,第二儲存虛擬化控制器(SVC2)20之第二中央處理電路(CPC2)205先傳送該一(或多個)虛擬群播位址(virtual multicast ADDR)給第二儲存虛擬化控制器(SVC2)20之第二主機端輸出入控制器201(步驟2011),以供其在收到來自於主機15之寫入資料(DATA-H)後,可以在該寫入資料(DATA-H)上附加該一(或多個)虛擬群播位址(virtual multicast ADDR),用以供後續接收到寫入資料的第二交換器203知道:附加有該一(或多個)虛擬群播位址(virtual multicast ADDR)之寫入資料(DATA-H)需要同步寫入至第一快取緩衝單元1071與第二快取緩衝單元2071的指定位置之中;之後,第二中央處理電路(CPC2)205傳送一訊息給主機15,用以通知主機15已可以傳送寫入資料(DATA-H)至第二儲存虛擬化控制器(SVC2)20(步驟2013)。接著,流程進入節點A(步驟2015),後續步驟由第2B圖繪示。
請同時參閱第2B圖與第3B圖。承續上述的步驟2013,經由節點A(步驟2015)來到第2B圖中之步驟2027~步驟2043,以執行第2B圖所示之第一實施例的第二部分流程,而第3B圖繪示其相關之訊號傳遞示意圖。當主機15被告知已可以傳送寫入資料(DATA-H)時,主機15就將寫入資料(DATA-H)傳送給第二儲存虛擬化控制器(SVC2)20,由其中之第二主機端輸出入控制器201接收(步驟2027)。當第二儲存虛擬化控制器(SVC2)20接收到寫入資料(DATA-H),第二儲存虛擬化控制器(SVC2)20中之第二主機端輸出入控制器201會把先前從第二中央處理電路(CPC2)205收到之該一(或多個)虛擬群播位址(virtual multicast ADDR)附加於寫入資料(DATA-H)而形成「附帶有虛擬群播位址(virtual multicast ADDR) 之寫入資料(DATA-H)」,然後將「附帶有虛擬群播位址(virtual multicast ADDR)之寫入資料(DATA-H)」傳送給第二儲存虛擬化控制器(SVC2)20中之第二交換器203(步驟2029)。第二交換器203接收到「附帶有虛擬群播位址(virtual multicast ADDR)之寫入資料(DATA-H)」後,辨識出該一(或多個)虛擬群播位址(virtual multicast ADDR),且依據該一(或多個)虛擬群播位址(virtual multicast ADDR)查詢第二群播表2031,以確定「附帶有虛擬群播位址(virtual multicast ADDR)之寫入資料(DATA-H)」將要寫入的目的地,然後同時多點播送(multicast)寫入資料(DATA-H)至第一儲存虛擬化控制器(SVC1)10中之第一快取緩衝單元1071的資料儲存位址(ADDR1)處、與第二儲存虛擬化控制器(SVC2)20中之第二快取緩衝單元2071的資料儲存位址(ADDR2)處(步驟2031)。在進行多點播送(multicast)的過程中,第二儲存虛擬化控制器(SVC2)20中之第二中央處理電路(CPC2)205持續判斷寫入資料(DATA-H)是否已經完全寫入至第一儲存虛擬化控制器(SVC1)10中之第一快取緩衝單元1071的資料儲存位址(ADDR1)處、與第二儲存虛擬化控制器(SVC2)20中之第二快取緩衝單元2071的資料儲存位址(ADDR2)處(步驟2033),直到判斷確定:所有寫入資料(DATA-H)皆已經寫入至兩儲存虛擬化控制器(SVC1、SVC2)10、20中之兩快取緩衝單元1071、2071,則進入下一步驟。
當步驟2033確認:所有寫入資料(DATA-H)皆已寫入至兩快取緩衝單元1071、2071,接收主機資料(DATA-H)的第二儲存虛擬化控制器(SVC2)20必須要跟其組成同一儲存虛擬化控制器對(SVC pair)的另一儲存虛擬化控制器(即:第一儲存虛擬化控制器(SVC1)10)傳遞必要的操作狀態資訊。此一傳遞資訊的動作是透過冗餘控制器通訊(RCC)連結控制器9建立於兩儲存虛擬化控制器(SVC1、SVC2)10、20間之控制器間通訊通道(ICC)來實現,傳遞資訊的動作包含:第二儲存虛擬化控制器(SVC2)20中之第二中央處理電路(CPC2)205通知第一儲存虛擬化控制器(SVC1)10中之第一中央處理電路(CPC1)105:寫入資料(DATA-H) 已經寫入至第一儲存虛擬化控制器(SVC1)10中之第一快取緩衝單元1071的資料儲存位址(ADDR1)處、與第二儲存虛擬化控制器(SVC2)20中之第二快取緩衝單元2071的資料儲存位址(ADDR2)處(步驟2035)。如此,第一儲存虛擬化控制器(SVC1)10中之第一中央處理電路(CPC1)105方能得知:寫入資料(DATA-H)已經寫入至第一快取緩衝單元1071中的預定資料儲存位址(ADDR1)處。之後,第一儲存虛擬化控制器(SVC1)10中之第一中央處理電路(CPC1)105可以著手進行後續處理,例如:將寫入資料(DATA-H)寫入至第一邏輯碟12。此外,第一儲存虛擬化控制器(SVC1)10中之第一中央處理電路(CPC1)105可以經由第二儲存虛擬化控制器(SVC2)20中之第二中央處理電路(CPC2)205的通知,知道第二儲存虛擬化控制器(SVC2)20中存有相同於該寫入資料(DATA-H)的一備份資料。
當第一儲存虛擬化控制器(SVC1)10中之第一中央處理電路(CPC1)105得知:第二儲存虛擬化控制器(SVC2)20中之第二中央處理電路(CPC2)205已經將寫入資料(DATA-H)寫入至第一快取緩衝單元1071中的資料儲存位址(ADDR1)處之後(亦即,步驟2035之後),第一儲存虛擬化控制器(SVC1)10中之第一中央處理電路(CPC1)105便可以著手將第一快取緩衝單元1071中儲存的寫入資料(DATA-H)實際寫入至第一邏輯碟12中(步驟2037),並在此寫入的過程中,判斷寫入資料(DATA-H)是否已經完全寫入至第一邏輯碟12(步驟2039)。
當確認寫入資料(DATA-H)已經完全寫入至第一邏輯碟12時,第一儲存虛擬化控制器(SVC1)10中之第一中央處理電路(CPC1)105會通知第二儲存虛擬化控制器(SVC2)20中之第二中央處理電路(CPC2)205:寫入資料(DATA-H)已經寫入至第一邏輯碟12(步驟2041)。在第二儲存虛擬化控制器(SVC2)20中第二中央處理電路(CPC2)205收到第一儲存虛擬化控制器(SVC1)10中之第一中央處理電路(CPC1)105之寫入完成通知後,第二儲存虛擬化控制器(SVC2)20中之第二中央處理電路(CPC2)205便通知主機15:其先前所發出之主機寫入要求已經執行完 成(步驟2043)。
請同時參閱第2A圖與第3C圖。第2A圖以儲存系統架構1為例說明本發明技術之第一實施例的第一部分流程圖,第3C圖繪示儲存系統架構1實現第2A圖之步驟2001至步驟2003與步驟2017至步驟2023的訊號傳遞示意圖。舉例來說,當主機15要將一寫入資料(DATA-H)寫入至第一邏輯碟12時,主機15會向RAID子系統3發出一主機寫入要求,且此主機寫入要求可能會發送給RAID子系統3中的任一儲存虛擬化控制器。在此例子中,假設第一邏輯碟12的管理者(owner)是第一儲存虛擬化控制器10。當RAID子系統3之一儲存虛擬化控制器(例如:第一儲存虛擬化控制器(SVC1)10或第二儲存虛擬化控制器(SVC2)20)收到該主機寫入要求時(步驟2001),接收到該主機寫入要求之儲存虛擬化控制器(例如:第一儲存虛擬化控制器(SVC1)10或第二儲存虛擬化控制器(SVC2)20)會從該主機寫入要求所攜帶的資訊判斷:主機15是要將寫入資料(DATA-H)寫入到哪一個邏輯碟(在此例子中是:第一邏輯碟12),並因此知道自己對於該主機寫入要求所要寫入的邏輯碟(即:第一邏輯碟12)是否具有的管理權限(ownership)(步驟2003)。
若以上步驟2003的判斷結果是:該主機寫入要求是由管理者(owner)的儲存虛擬化控制器(在此例子中是:第一儲存虛擬化控制器(SVC1)10)所接收到;也就是說,第一儲存虛擬化控制器(SVC1)10接收到一個主機寫入要求,要求將寫入資料(DATA-H)寫入至其自身所管轄之第一邏輯碟12中(步驟2003)。在此情況下,由於接收到主機寫入要求的第一儲存虛擬化控制器(SVC1)10就是第一邏輯碟12的管理者(owner),因此,第一儲存虛擬化控制器(SVC1)10可以逕自決定要使用第一快取緩衝單元1071的哪一(或哪些)資料儲存位址所代表的儲存空間,用以暫時儲存該主機寫入要求所關聯的寫入資料(DATA-H)(步驟2017)。第一儲存虛擬化控制器(SVC1)10中之第一中央處理電路105(CPC1)依據該一(或多個)資料儲存位址(ADDR1),查詢位於第一交換器103中之第一群播 表(MT1)1031來找到與該一(或多個)資料儲存位址(ADDR1)相對應之一(或多個)虛擬群播位址(virtual multicast ADDR)(步驟2019)。接著,第一儲存虛擬化控制器(SVC1)10中之第一中央處理電路(CPC1)105先傳送該一(或多個)虛擬群播位址(virtual multicast ADDR)給第一儲存虛擬化控制器(SVC1)10之第一主機端輸出入控制器101(步驟2021),以供其在收到來自於主機之寫入資料(DATA-H)後,可以在該寫入資料(DATA-H)上附加該一(或多個)虛擬群播位址(virtual multicast ADDR),如此供後續接收到寫入資料的第一交換器103知道:附加有該一(或多個)虛擬群播位址(virtual multicast ADDR)之寫入資料(DATA-H)需要同步寫入至第一快取緩衝單元1071與第二快取緩衝單元2071的指定位置之中;之後,第一中央處理電路(CPC1)105再傳送一訊息給主機15,用以通知主機15已可以傳送寫入資料(DATA-H)(步驟2023)。接著,流程進入節點B(步驟2025),後續步驟由第2C圖繪示。
請同時參閱第2C圖與第3D圖。承續上述的步驟2023,經由節點B(步驟2025)來到第2C圖中之步驟2045~步驟2061,以執行第2C圖中所示的第一實施例之第三部分流程,而第3D圖繪示其相關之訊號傳遞示意圖。當主機15被告知已可以傳送寫入資料(DATA-H)時,主機15就將寫入資料(DATA-H)傳送給第一儲存虛擬化控制器(SVC1)10,由其中之第一主機端輸出入控制器101接收(步驟2045)。當第一儲存虛擬化控制器(SVC1)10接收到寫入資料(DATA-H),第一儲存虛擬化控制器(SVC1)10中之第一主機端輸出入控制器101會把先前從第一中央處理電路(CPC1)105收到之該一(或多個)虛擬群播位址(virtual multicast ADDR)附加於寫入資料(DATA-H)而形成「附帶有虛擬群播位址(virtual multicast ADDR)之寫入資料(DATA-H)」,然後將「附帶有虛擬群播位址(virtual multicast ADDR)之寫入資料(DATA-H)」傳送給第一儲存虛擬化控制器(SVC1)10中之第一交換器103(步驟2047)。第一交換器103接收到「附帶有虛擬群播位址(virtual multicast ADDR)之寫入資料(DATA-H)」後,辨識出該一(或多個)虛擬群播位址(virtual multicast ADDR),依據該一(或多個)虛擬群播位址(virtual multicast ADDR)查詢第一群播表1031,以確定「附帶有虛擬群播位址(virtual multicast ADDR)之寫入資料(DATA-H)」將要寫入的目的地,然後同時多點播送(multicast)寫入資料(DATA-H)至第一儲存虛擬化控制器(SVC1)10中之第一快取緩衝單元1071的資料儲存位址(ADDR1)處、與第二儲存虛擬化控制器(SVC2)20中之第二快取緩衝單元2071的資料儲存位址(ADDR2)處(步驟2049)。在進行多點播送(multicast)的過程中,第一儲存虛擬化控制器(SVC1)10中之第一中央處理電路(CPC1)105持續判斷寫入資料(DATA-H)是否已經完全寫入至第一儲存虛擬化控制器(SVC1)10中之第一快取緩衝單元1071的資料儲存位址(ADDR1)處、與第二儲存虛擬化控制器(SVC2)20中之第二快取緩衝單元2071的資料儲存位址(ADDR2)處(步驟2051),直到判斷確定:所有寫入資料(DATA-H)皆已經寫入至兩儲存虛擬化控制器(SVC1、SVC2)10、20中之兩快取緩衝單元1071、2071,則進入下一步驟。
當步驟2051確認:所有寫入資料(DATA-H)皆已寫入至兩快取緩衝單元1071、2071,接收主機資料(DATA-H)的第一儲存虛擬化控制器(SVC1)10必須要跟其組成同一儲存虛擬化控制器對(SVC pair)的另一儲存虛擬化控制器(即:第二儲存虛擬化控制器(SVC2)20)傳遞必要的操作狀態資訊。此一傳遞資訊的動作是透過冗餘控制器通訊(RCC)連結控制器9建立於兩儲存虛擬化控制器(SVC1、SVC2)10、20間之控制器間通訊通道(ICC)來實現,傳遞資訊的動作包含:第一儲存虛擬化控制器(SVC1)10中之第一中央處理電路(CPC1)105通知第二儲存虛擬化控制器(SVC2)20中之第二中央處理電路(CPC2)205,寫入資料(DATA-H)已經寫入至第二儲存虛擬化控制器(SVC2)20中之第二快取緩衝單元2071的資料儲存位址(ADDR2)處(步驟2053)。如此,第二儲存虛擬化控制器(SVC2)20中之第二中央處理電路(CPC2)205方能得知:有一筆寫入資料(DATA-H)已經寫入至第 二儲存虛擬化控制器(SVC2)20中之第二快取緩衝單元2071的資料儲存位址(ADDR2)處,以便再次確認及進行後續之處理。當第二儲存虛擬化控制器(SVC2)20中之第二中央處理電路(CPC2)205確認:寫入資料(DATA-H)已經寫入至第二儲存虛擬化控制器(SVC2)20中之第二快取緩衝單元2071的資料儲存位址(ADDR2)處,第二儲存虛擬化控制器(SVC2)20中之第二中央處理電路(CPC2)205透過冗餘控制器通訊(RCC)連結控制器9所建立之控制器間通訊通道(ICC),發送一確認訊息(寫入完成通知)給第一儲存虛擬化控制器(SVC1)10中之第一中央處理電路(CPC1)105,用以讓第一儲存虛擬化控制器(SVC1)10中之第一中央處理電路(CPC1)105確知寫入資料(DATA-H)已經寫入至第二儲存虛擬化控制器(SVC2)20中之第二快取緩衝單元2071中的資料儲存位址(ADDR2)處(步驟2055)。
當第一儲存虛擬化控制器(SVC1)10中之第一中央處理電路(CPC1)105收到來自第二儲存虛擬化控制器(SVC2)20的確認訊息時,則可以確知:寫入資料(DATA-H)已經寫入至第二儲存虛擬化控制器(SVC2)20中之第二快取緩衝單元2071的資料儲存位址(ADDR2)處。之後,第一中央處理電路(CPC1)105便可以著手將第一快取緩衝單元1071中儲存的寫入資料(DATA-H)實際寫入至第一邏輯碟12中(步驟2057),並在此寫入的過程中,判斷寫入資料(DATA-H)是否已經完全寫入至第一邏輯碟12(步驟2059)。
當確認寫入資料(DATA-H)已經完全寫入至第一邏輯碟12時,第一儲存虛擬化控制器(SVC1)10中之第一中央處理電路(CPC1)105會通知主機15:其先前所發出之主機寫入要求已經執行完成(步驟2061)。
請參閱第4A圖-第4C圖與第5A圖-第5D圖。第4A圖係為依據本發明之一儲存系統架構1中,在寫回模式(write back mode)下,執行資料存取方法之第二實施例的第一部分流程圖。第4B圖係為依據本發明之儲存系統架構1,在寫回模式(write back mode)下,執行資料存取方法之第二實施例的第二部分流程圖。第4C 圖係為依據本發明之儲存系統架構1,在寫回模式(write back mode)下,執行資料存取方法之第二實施例的第三部分流程圖。第5A圖-第5B圖係為本發明之一儲存系統架構1實現第4A圖與第4B圖所示的實施例之資料存取方法之訊號傳遞示意圖。第5C圖與第5D圖係為本發明之一儲存系統架構1實現第4A圖與第4C圖所示的實施例之資料存取方法之訊號傳遞示意圖。
請同時參閱第4A圖與第5A圖。第4A圖以儲存系統架構1為例說明本發明技術之第二實施例的第一部分流程圖,而第5A圖繪示儲存系統架構1實現第4A圖之步驟4001至步驟4013的訊號傳遞示意圖。舉例來說,當主機15要將一寫入資料(DATA-H)寫入至RAID子系統3之第一邏輯碟12時,主機15會向RAID子系統3發出一主機寫入要求,且此主機寫入要求可能會發送給RAID子系統3中的任一儲存虛擬化控制器。在此例子中,假設第一邏輯碟12的管理者(owner)是第一儲存虛擬化控制器10。當RAID子系統3之一儲存虛擬化控制器(例如:第一儲存虛擬化控制器(SVC1)10或第二儲存虛擬化控制器(SVC2)20)收到該主機寫入要求時(步驟4001),接收到該主機寫入要求之儲存虛擬化控制器(例如:第一儲存虛擬化控制器(SVC1)10或第二儲存虛擬化控制器(SVC2)20)會從該主機寫入要求所攜帶的資訊判斷:主機15是要將寫入資料(DATA-H)寫入到哪一個邏輯碟(在此例子中是:第一邏輯碟12),並因此知道自己對於該主機寫入要求所要寫入的邏輯碟(即:第一邏輯碟12)是否具有的管理權限(ownership)(步驟4003)。
若以上步驟4003的判斷結果是:該主機寫入要求是由非管理者(non-owner)的儲存虛擬化控制器(在此例子中是:第二儲存虛擬化控制器(SVC2)20)所接收到;也就是說,第二儲存虛擬化控制器(SVC2)20接收到一個主機寫入要求,要求將寫入資料(DATA-H)寫入至第一邏輯碟12中(步驟4003),而第一邏輯碟12是由其它儲存虛擬化控制器(在此例子中是:第一儲存虛擬化控制器(SVC1)10)所管轄。在此情況下,由於接收到主機寫入要求的第二儲存虛擬化 控制器(SVC2)20不是第一邏輯碟12的管理者(owner),因此,第二儲存虛擬化控制器(SVC2)20需要向第一邏輯碟12的管理者(owner)(即:第一儲存虛擬化控制器(SVC1)10)告知有該主機寫入要求並詢問一位址訊息,包含「將寫入資料(DATA-H)寫入到第一邏輯碟12的相關資訊」(步驟4005)。此一詢問的具體內容,在一實施例中可以是:第二儲存虛擬化控制器(SVC2)20之第二中央處理電路(CPC2)205經由冗餘控制器通訊(RCC)連結控制器9所建立之控制器間通訊通道(ICC)傳送一詢問指令(CMD-SC2 command)給第一儲存虛擬化控制器(SVC1)10,詢問第一儲存虛擬化控制器(SVC1)10:預計將該主機寫入要求所關聯的寫入資料(DATA-H)儲存在其第一記憶體107之第一快取緩衝單元1071的哪一(或哪些)資料儲存位址所代表的儲存空間(步驟4005)。當第一儲存虛擬化控制器(SVC1)10接收到詢問指令(CMD-SC2 command)後,先在第一快取緩衝單元1071中指定與一(或多個)資料儲存位址(例如:ADDR1)對應之儲存空間,用來暫存該主機寫入要求之寫入資料(DATA-H),然後將該一(或多個)資料儲存位址(例如:ADDR1)回覆給第二儲存虛擬化控制器(SVC2)20(步驟4007)。第二儲存虛擬化控制器(SVC2)20中之第二中央處理電路(CPC2)205依據該一(或多個)資料儲存位址(例如:ADDR1),查詢位於第二交換器203中之第二群播表(MT2)2031來找到與該一(或多個)資料儲存位址(例如:ADDR1)相對應之一(或多個)虛擬群播位址(virtual multicast ADDR)(步驟4009)。接著,第二儲存虛擬化控制器(SVC2)20之第二中央處理電路(CPC2)205先傳送該一(或多個)虛擬群播位址(virtual multicast ADDR)給第二儲存虛擬化控制器(SVC2)20之第二主機端輸出入控制器201(步驟2011),以供其在收到來自於主機15之寫入資料(DATA-H)後,可以在該寫入資料(DATA-H)上附加該一(或多個)虛擬群播位址(virtual multicast ADDR),用以供後續接收到寫入資料的第二交換器203知道:附加有該一(或多個)虛擬群播位址(virtual multicast ADDR)之寫入資料(DATA-H)需要同步寫入至第一快取緩衝單 元1071與第二快取緩衝單元2071的指定位置之中;之後,第二中央處理電路(CPC2)205再傳送一訊息給主機15,用以通知主機15已可以傳送寫入資料(DATA-H)至第二儲存虛擬化控制器(SVC2)20(步驟4013)。接著,流程進入節點C(步驟4015),後續步驟由第4B圖繪示。
請同時參閱第4B圖與第5B圖。承續上述的步驟4013,經由節點C(步驟4015)來到第4B圖中之步驟4027~步驟4043,以執行第4B圖所示之第二實施例的第二部分流程,而第5B圖繪示其相關之訊號傳遞示意圖。當主機15被告知已可以傳送寫入資料(DATA-H)時,主機15就將寫入資料(DATA-H)傳送給第二儲存虛擬化控制器(SVC2)20,由其中之第二主機端輸出入控制器201接收(步驟4027)。當第二儲存虛擬化控制器(SVC2)20接收到寫入資料(DATA-H),第二儲存虛擬化控制器(SVC2)20中之第二主機端輸出入控制器201會把先前從第二中央處理電路(CPC2)205收到之該一(或多個)虛擬群播位址(virtual multicast ADDR)附加於寫入資料(DATA-H)而形成「附帶有虛擬群播位址(virtual multicast ADDR)之寫入資料(DATA-H)」,然後將「附帶有虛擬群播位址(virtual multicast ADDR)之寫入資料(DATA-H)」傳送給第二儲存虛擬化控制器(SVC2)20中之第二交換器203(步驟4029)。第二交換器203接收到「附帶有虛擬群播位址(virtual multicast ADDR)之寫入資料(DATA-H)」後,辨識出該一(或多個)虛擬群播位址(virtual multicast ADDR),且依據該一(或多個)虛擬群播位址(virtual multicast ADDR)查詢第二群播表2031,以確定「附帶有虛擬群播位址(virtual multicast ADDR)之寫入資料(DATA-H)」將要寫入的目的地,然後同時多點播送(multicast)寫入資料(DATA-H)至第一儲存虛擬化控制器(SVC1)10中之第一快取緩衝單元1071的資料儲存位址(ADDR1)處、與第二儲存虛擬化控制器(SVC2)20中之第二快取緩衝單元2071的資料儲存位址(ADDR2)處(步驟4031)。在進行多點播送(multicast)的過程中,第二儲存虛擬化控制器(SVC2)20中之第二中央處理電路(CPC2)205持續判斷 寫入資料(DATA-H)是否已經完全寫入至第一儲存虛擬化控制器(SVC1)10中之第一快取緩衝單元1071的資料儲存位址(ADDR1)處、與第二儲存虛擬化控制器(SVC2)20中之第二快取緩衝單元2071的資料儲存位址(ADDR2)處(步驟4033),直到判斷確定:所有寫入資料(DATA-H)皆已經寫入至兩儲存虛擬化控制器(SVC1、SVC2)10、20中之兩快取緩衝單元1071、2071,則進入下一步驟。
當步驟4033確認:所有寫入資料(DATA-H)皆已寫入至兩快取緩衝單元1071、2071,接收主機資料(DATA-H)的第二儲存虛擬化控制器(SVC2)20必須要跟其組成同一儲存虛擬化控制器對(SVC pair)的另一儲存虛擬化控制器(即:第一儲存虛擬化控制器(SVC1)10)傳遞必要的操作狀態資訊。此一傳遞資訊的動作是透過冗餘控制器通訊(RCC)連結控制器9建立於兩儲存虛擬化控制器(SVC1、SVC2)10、20間之控制器間通訊通道(ICC)來實現,傳遞資訊的動作包含:第二儲存虛擬化控制器(SVC2)20中之第二中央處理電路(CPC2)205通知第一儲存虛擬化控制器(SVC1)10中之第一中央處理電路(CPC1)105:寫入資料(DATA-H)已經寫入至第一儲存虛擬化控制器(SVC1)10中之第一快取緩衝單元1071的資料儲存位址(ADDR1)處、與第二儲存虛擬化控制器(SVC2)20中之第二快取緩衝單元2071的資料儲存位址(ADDR2)處(步驟4035)。如此,第一儲存虛擬化控制器(SVC1)10中之第一中央處理電路(CPC1)105方能知道:寫入資料(DATA-H)已經寫入至第一快取緩衝單元1071中的預定資料儲存位址(ADDR1)處。之後,第一儲存虛擬化控制器(SVC1)10中之第一中央處理電路(CPC1)105可以著手進行後續處理,例如:將寫入資料(DATA-H)寫入至第一邏輯碟12。此外,第一儲存虛擬化控制器(SVC1)10中之第一中央處理電路(CPC1)105可以經由第二儲存虛擬化控制器(SVC2)20中之第二中央處理電路(CPC2)205的通知,知道第二儲存虛擬化控制器(SVC2)20中存有相同於該寫入資料(DATA-H)的一備份資料。
當第一儲存虛擬化控制器(SVC1)10中之第一中央處理電路(CPC1) 105知道:寫入資料(DATA-H)已經寫入至第一快取緩衝單元1071中的資料儲存位址(ADDR1)處後,第一儲存虛擬化控制器(SVC1)10中之第一中央處理電路(CPC1)105,透過冗餘控制器通訊(RCC)連結控制器9所建立之控制器間通訊通道(ICC),發出一確認訊息(寫入完成通知)給第二儲存虛擬化控制器(SVC2)20中之第二中央處理電路(CPC2)205,用以讓第二儲存虛擬化控制器(SVC2)20中之第二中央處理電路(CPC2)205確知寫入資料(DATA-H)已經寫入至第一儲存虛擬化控制器(SVC1)10中之第一快取緩衝單元1071的資料儲存位址(ADDR1)處(步驟4037)。
然後,在第二儲存虛擬化控制器(SVC2)20中之第二中央處理電路(CPC2)205收到來自第一儲存虛擬化控制器(SVC1)10中之第一中央處理電路(CPC1)105之寫入完成通知後(亦即,在執行步驟4037之後),第二儲存虛擬化控制器(SVC2)20中之第二中央處理電路(CPC2)205便通知主機15:其先前所發出之主機寫入要求已經執行完成(步驟4039)。
另一方面,當寫入資料(DATA-H)已經寫入至第一快取緩衝單元1071中的資料儲存位址(ADDR1)後,第一儲存虛擬化控制器(SVC1)10中之第一中央處理電路(CPC1)105隨時可以著手將第一快取緩衝單元1071中的資料儲存位址(ADDR1)處所儲存的寫入資料(DATA-H)實際寫入至第一邏輯碟12中(步驟4041)。此一寫入過程可能是一背景處理程序,此外,第一儲存虛擬化控制器(SVC1)10會持續判斷寫入資料(DATA-H)是否已經完全寫入至第一邏輯碟12中,直到確定所有寫入資料(DATA-H)皆已寫入完成為止(步驟4043)。
請同時參閱第4A圖與第5C圖。第4A圖以儲存系統架構1為例說明本發明技術之第二實施例的第一部分流程圖,而第5C圖繪示儲存系統架構1實現第4A圖之步驟4001至步驟4003與步驟4017至步驟4023的訊號傳遞示意圖。舉例來說,當主機15要將一寫入資料(DATA-H)寫入至第一邏輯碟12時,主機15會向RAID子系統3發出一主機寫入要求,且此主機寫入要求可能會發送給RAID子系統3中 的任一儲存虛擬化控制器。在此例子中,假設第一邏輯碟12的管理者(owner)是第一儲存虛擬化控制器10。當RAID子系統3之一儲存虛擬化控制器(例如:第一儲存虛擬化控制器(SVC1)10或第二儲存虛擬化控制器(SVC2)20)收到該主機寫入要求時(步驟4001),接收到該主機寫入要求之儲存虛擬化控制器(例如:第一儲存虛擬化控制器(SVC1)10或第二儲存虛擬化控制器(SVC2)20)會從該主機寫入要求所攜帶的資訊判斷:主機15是要將寫入資料(DATA-H)寫入到哪一個邏輯碟(在此例子中是:第一邏輯碟12),並因此知道自己對於寫入要求所要寫入的邏輯碟(即:第一邏輯碟12)是否具有的管理權限(ownership)(步驟4003)。
若以上步驟4003的判斷結果是:該主機寫入要求是由管理者(owner)的儲存虛擬化控制器(在此例子中是:第一儲存虛擬化控制器(SVC1)10)所接收到;也就是說,第一儲存虛擬化控制器10(SVC1)接收到一個主機寫入要求,要求將寫入資料(DATA-H)寫入至其自身所管轄之第一邏輯碟12中(步驟4003)。在此情況下,由於接收到主機寫入要求的第一儲存虛擬化控制器(SVC1)10就是第一邏輯碟12的管理者(owner),因此,第一儲存虛擬化控制器(SVC1)10可以逕自決定要使用第一快取緩衝單元1071的哪一(或哪些)資料儲存位址所代表的儲存空間,用以暫時儲存該主機寫入要求所關聯的寫入資料(DATA-H)(步驟4017)。第一儲存虛擬化控制器(SVC1)10中之第一中央處理電路(CPC1)105依據該一(或多個)資料儲存位址(ADDR1),查詢位於第一交換器103中之第一群播表(MT1)1031來找到與該一(或多個)資料儲存位址(ADDR1)相對應之一(或多個)虛擬群播位址(virtual multicast ADDR)(步驟4019)。接著,第一儲存虛擬化控制器(SVC1)10中之第一中央處理電路(CPC1)105先傳送該一(或多個)虛擬群播位址(virtual multicast ADDR)給第一儲存虛擬化控制器(SVC1)10之第一主機端輸出入控制器101(步驟4021),以供其在收到來自於主機之寫入資料(DATA-H)後,可以在該寫入資料(DATA-H)上附加該一(或多個)虛擬群播位址(virtual multicast ADDR),如此供後續接收到寫入資料的第一交換器103知道:附加有該一(或多個)虛擬群播位址(virtual multicast ADDR)之寫入資料(DATA-H)需要同步寫入至第一快取緩衝單元1071與第二快取緩衝單元2071的指定位置之中;之後,第一中央處理電路(CPC1)105再傳送一訊息給主機15,用以通知主機15已可以傳送寫入資料(DATA-H)(步驟4023)。接著,流程進入節點D(步驟4025),後續步驟由第4C圖繪示。
請同時參閱第4C圖與第5D圖。承續上述的步驟4023,經由節點D(步驟4025)來到第4C圖中之步驟4045~步驟4061,以執行第4C圖中所示的第二實施例之第三部分流程,而第5D圖繪示其相關之訊號傳遞示意圖。當主機15被告知已可以傳送寫入資料(DATA-H)時,主機15就將寫入資料(DATA-H)傳送給第一儲存虛擬化控制器(SVC1)10,由其中之第一主機端輸出入控制器101接收(步驟4045)。當第一儲存虛擬化控制器(SVC1)10接收到寫入資料(DATA-H),第一儲存虛擬化控制器(SVC1)10中之第一主機端輸出入控制器101會把先前從第一中央處理電路(CPC1)105收到之該一(或多個)虛擬群播位址(virtual multicast ADDR)附加於寫入資料(DATA-H)而形成「附帶有虛擬群播位址(virtual multicast ADDR)之寫入資料(DATA-H)」,然後將「附帶有虛擬群播位址(virtual multicast ADDR)之寫入資料(DATA-H)」傳送給第一儲存虛擬化控制器(SVC1)10中之第一交換器103(步驟4047)。第一交換器103接收到「附帶有虛擬群播位址(virtual multicast ADDR)之寫入資料(DATA-H)」後,辨識出該一(或多個)虛擬群播位址(virtual multicast ADDR),依據該一(或多個)虛擬群播位址(virtual multicast ADDR)查詢第一群播表1031,以確定「附帶有虛擬群播位址(virtual multicast ADDR)之寫入資料(DATA-H)」將要寫入的目的地,然後同時多點播送(multicast)寫入資料(DATA-H)至第一儲存虛擬化控制器(SVC1)10中之第一快取緩衝單元1071的資料儲存位址(ADDR1)處、與第二儲存虛擬化控制器(SVC2)20中之第二快取緩衝單元 2071的資料儲存位址(ADDR2)處(步驟4049)。在進行多點播送(multicast)的過程中,第一儲存虛擬化控制器(SVC1)10中之第一中央處理電路(CPC1)105持續判斷寫入資料(DATA-H)是否已經完全寫入至第一儲存虛擬化控制器(SVC1)10中之第一快取緩衝單元1071的資料儲存位址(ADDR1)處、與第二儲存虛擬化控制器(SVC2)20中之第二快取緩衝單元2071的資料儲存位址(ADDR2)處(步驟4051),直到判斷確定:所有寫入資料(DATA-H)皆已經寫入至兩儲存虛擬化控制器(SVC1、SVC2)10、20中之兩快取緩衝單元1071、2071,則進入下一步驟。
當步驟4051確認:所有寫入資料(DATA-H)皆已寫入至兩快取緩衝單元1071、2071,接收主機資料(DATA-H)的第一儲存虛擬化控制器(SVC1)10必須要跟其組成同一儲存虛擬化控制器對(SVC pair)的另一儲存虛擬化控制器(即:第二儲存虛擬化控制器(SVC2)20)傳遞必要的操作狀態資訊。此一傳遞資訊的動作是透過冗餘控制器通訊(RCC)連結控制器9所建立之控制器間通訊通道(ICC)來實現,傳遞資訊的動作包含:第一儲存虛擬化控制器(SVC1)10中之第一中央處理電路(CPC1)105通知第二儲存虛擬化控制器(SVC2)20中之第二中央處理電路(CPC2)205,寫入資料(DATA-H)已經寫入至第二儲存虛擬化控制器(SVC2)20中之第二快取緩衝單元2071的資料儲存位址(ADDR2)處(步驟4053)。如此,第二儲存虛擬化控制器(SVC2)20中之第二中央處理電路(CPC2)205方能得知:有一筆寫入資料(DATA-H)已經寫入至第二儲存虛擬化控制器(SVC2)20中之第二快取緩衝單元2071的資料儲存位址(ADDR2)處,以便再次確認及進行後續之處理。當第二儲存虛擬化控制器(SVC2)20中之第二中央處理電路(CPC2)205確認:寫入資料(DATA-H)已經寫入至第二儲存虛擬化控制器(SVC2)20中之第二快取緩衝單元2071的資料儲存位址(ADDR2)處,第二儲存虛擬化控制器(SVC2)20中之第二中央處理電路(CPC2)205透過冗餘控制器通訊(RCC)連結控制器9所建立之控制器間通訊通道(ICC),發送一確認訊息(寫入完成通知)給第一儲存虛擬化控制器(SVC1) 10中之第一中央處理電路(CPC1)105,用以讓第一儲存虛擬化控制器(SVC1)10中之第一中央處理電路(CPC1)105確知寫入資料(DATA-H)已經寫入至第二儲存虛擬化控制器(SVC2)20中之第二快取緩衝單元2071中的資料儲存位址(ADDR2)處(步驟4055)。
然後,第一儲存虛擬化控制器(SVC1)10中之第一中央處理電路(CPC1)105收到來自第二儲存虛擬化控制器(SVC2)20中之第二中央處理電路(CPC2)205之寫入完成通知後(亦即,在執行步驟4055之後),第一儲存虛擬化控制器(SVC1)10中之第一中央處理電路(CPC1)105便通知主機15:其先前所發出之主機寫入要求已經執行完成(步驟4057)。
另一方面,當寫入資料(DATA-H)已經寫入至第一快取緩衝單元1071中的資料儲存位址(ADDR1)後,第一儲存虛擬化控制器(SVC1)10中之第一中央處理電路(CPC1)105隨時可以著手將第一快取緩衝單元1071中的資料儲存位址(ADDR1)處所儲存的寫入資料(DATA-H)實際寫入至第一邏輯碟12中(步驟4059)。此一寫入過程可能是一背景處理程序,此外,第一儲存虛擬化控制器(SVC1)10會持續判斷寫入資料(DATA-H)是否已經完全寫入至第一邏輯碟12中,直到確定所有寫入資料(DATA-H)皆已寫入完成為止(步驟4061)。
請參閱第6圖。第6圖係為本發明之儲存系統架構1中,用以實現第2A圖-第2C圖及第4A圖-第4C圖所示之資料存取方法中所使用的群播表(multicast table,MT)(例如:第一群播表1031與第二群播表2031)之一實施例的資料結構示意圖。基本上,第一群播表1031與第二群播表2031的結構相同,於本發明一實施例中皆包含有三個欄位,分別是:虛擬群播位址(virtual multicast ADDR)、第一快取緩衝單元1071之資料儲存位址(ADDR1)、及第二快取緩衝單元2071之資料儲存位址(ADDR2);其中,每一項目(entry)的虛擬群播位址(virtual multicast ADDR)皆對應到一關聯的第一快取緩衝單元1071之資料儲存位址(ADDR1)、與一關聯的 第二快取緩衝單元2071之資料儲存位址(ADDR2)。虛擬群播位址(virtual multicast ADDR)是儲存系統架構1所保留、以一種獨特方式表示的一組(群)虛擬資料位址,其並不會對應到實體的記憶體位址,而只是用於供儲存虛擬化控制器(SVC1、SVC2)10、20辨識是否要對一寫入要求之寫入資料(DATA-H)執行多點播送(multicasting)的功能。除此之外,每一虛擬群播位址(virtual multicast ADDR)更具有一重要任務:賦予第一快取緩衝單元1071之一資料儲存位址(ADDR1)與第二快取緩衝單元2071之一資料儲存位址(ADDR2)之間具有關聯的對應關係。因此,當儲存虛擬化控制器(SVC1、SVC2)10、20從所接收的寫入資料(DATA-H)中辨識到虛擬群播位址(virtual multicast ADDR)時,便可以知道該筆寫入資料(DATA-H)要進行多點播送(multicasting),且多點播送(multicasting)的目標位址為相關聯的第一快取緩衝單元1071之資料儲存位址(ADDR1)與相關聯的第二快取緩衝單元2071之資料儲存位址(ADDR2)。根據第6圖之實施例,圖中例示在第一快取緩衝單元1071中保留位址000000~00FFFF做為執行多點播送(multicasting)功能時之資料儲存位址(ADDR1);而在第二快取緩衝單元2071中亦保留位址000000~00FFFF做為執行多點播送(multicasting)功能時之資料儲存位址(ADDR2)。第6圖亦例示,以第一項目(entry)為例,虛擬群播位址(virtual multicast ADDR)為"FF0000"是關聯到第一快取緩衝單元1071的保留位址"000000"處與第二快取緩衝單元2071的保留位址"000000"處。
請參閱第2A圖-第2B圖、第4A圖-第4B圖、及第6圖。於本發明之一實施例中,當非管理者(non-owner)的儲存虛擬化控制器(SVC)(如圖中例示的:第二儲存虛擬化控制器(SVC2)20)接收到來自主機15之一寫入要求時,非管理者(non-owner)的第二儲存虛擬化控制器(SVC2)20中之第二中央處理電路(CPC2)205會先詢問身為管理者(owner)的第一儲存虛擬化控制器(SVC1)10中之第一中央處理電路(CPC1)105(步驟2005)而取得一(或多個)相關連的資料儲存位址(ADDR1) (步驟2007)。非管理者(non-owner)的第二儲存虛擬化控制器(SVC2)20取得該一(或多個)相關連的資料儲存位址(ADDR1)後,進而依據該一(或多個)相關連的資料儲存位址(ADDR1)查詢本身的第二群播表2031,以確知與該一(或多個)資料儲存位址(ADDR1)相對應之一(或多個)虛擬群播位址(virtual multicast ADDR)(步驟2009)。然後,非管理者(non-owner)的第二儲存虛擬化控制器(SVC2)20將該一(或多個)虛擬群播位址(virtual multicast ADDR)附加到該主機寫入要求的寫入資料(DATA-H),並在收到該附有虛擬群播位址(virtual multicast ADDR)的寫入資料(DATA-H)時判斷:執行多點播送(multicast)時,要將寫入資料(DATA-H)儲存到與該虛擬群播位址(virtual multicast ADDR)關聯的兩資料儲存位址(ADDR1、ADDR2)處。
請參閱第2A圖與第2C圖、第4A圖-第4C圖、及第6圖。於本發明之另一實施例中,當管理者(owner)的儲存虛擬化控制器(SVC)(如圖中例示的:第一儲存虛擬化控制器(SVC1)10)接收到來自主機15之一寫入要求時,因為第一儲存虛擬化控制器(SVC1)10本身就是目標邏輯碟(如圖中例示的:第一邏輯碟12)的管理者(owner),因此其會直接指定一(或多個)相關連的資料儲存位址(ADDR1)(步驟2017)做為寫入資料(DATA-H)的暫存位址。接著,做為管理者(owner)的第一儲存虛擬化控制器(SVC1)10依據該一(或多個)相關連的資料儲存位址(ADDR1)查詢本身的第一群播表1031,以確知與該一(或多個)相關連的資料儲存位址(ADDR1)相對應之一(或多個)虛擬群播位址(virtual multicast ADDR)(步驟2019)。然後,做為管理者(owner)的第一儲存虛擬化控制器(SVC1)10將該一(或多個)虛擬群播位址(virtual multicast ADDR)附加到該主機寫入要求的寫入資料(DATA-H),並在收到該附有虛擬群播位址(virtual multicast ADDR)的寫入資料(DATA-H)時判斷:執行多點播送(multicast)時,要將寫入資料(DATA-H)儲存到與該虛擬群播位址(virtual multicast ADDR)關聯的兩資料儲存位址(ADDR1、ADDR2) 處。
綜上所述,本發明之資料存取方法之多點播送(multicast)機制,提供具有冗餘儲存虛擬化控制器對(redundant SVC pair)之資料儲存系統架構更有效率地處理寫入要求的功能。尤其是,當主機將寫入要求發送到非具有管理權限(ownseship)之儲存虛擬化控制器(SVC)時,可以藉由多點播送(multicast)機制,快速地完成雙儲存虛擬化控制器之間的資料同步工作。而這除了可以防止因冗餘儲存虛擬化控制器對(redundant SVC pair)中之其一儲存虛擬化控制器(SVC)在執行寫入時發生故障而導致暫存於該儲存虛擬化控制器(SVC)內的資料遺失,亦可以避免因非管理者(non-owner)之儲存虛擬化控制器(SVC)接收到寫入要求而被拒絕存取所衍生之負擔,更可以縮短將寫入資料(DATA-H)備份於冗餘儲存虛擬化控制器對(redundant SVC pair)中之另一儲存虛擬化控制器(SVC)的所需額外時間。因此,本發明之資料存取方法之多點播送(multicast)機制不僅可以解決前述的問題外,還能夠提供一可靠且快速的資料存取方法。
請參閱第7圖,其係為依據本發明之另一實施例之一資料儲存系統架構1a(後稱「儲存系統架構」)的方塊示意圖。儲存系統架構1a由一主機(host)15與一獨立冗餘磁碟陣列子系統(redundant array of independent disks subsystem,RAID subsystem)3a(後稱「RAID子系統」)所組成。第7圖所繪示的儲存系統架構1a與第1圖所繪示的儲存系統架構1相較,第一交換器(switch 1)103與第二交換器(switch 2)203係各自整合於第一中央處理電路(CPC1)105與第二中央處理電路(CPC2)205之中,兩者形成一單一元件/電路系統/裝置。此外,第7圖中亦繪示了第一交換器(switch 1)103與第二交換器(switch 2)203透過各自具有非透明橋接功能(NTB)1033、2033的連接埠與冗餘控制器通訊(RCC)連結控制器9做連接。如此,透過第一交換器(switch 1)103、第二交換器(switch 2)203、與冗餘控制器通訊(RCC)連結控制器9所形成的通道,可讓第一儲存虛擬化控制器(SVC1)10與第二儲存虛擬化 控制器(SVC2)20互相傳送訊息或資料。如前所述,非透明橋接功能(NTB)1033、2033除了可以整合於第一交換器(switch 1)103與第二交換器(switch 2)203之中,亦可以以一獨立模組建構在所繫屬的交換器之外(例如,第一交換器(switch 1)103與第一非透明橋接功能模組1033,以及第二交換器(switch 2)203與第二非透明橋接功能模組2033)。除此之外,儲存系統架構1a中之各部件皆與第1圖之儲存系統架構1之各部件的功能與角色相同,因此不再贅述。
請參閱第8A圖-第8C圖。第8A圖係為依據本發明之一儲存系統架構1a中,在寫回模式(write back mode)下,執行資料存取方法之第三實施例的第一部分流程圖。第8B圖係為依據本發明之儲存系統架構1a,在寫回模式(write back mode)下,執行資料存取方法之第三實施例的第二部分流程圖。第8C圖係為依據本發明之儲存系統架構1a,在寫回模式(write back mode)下,執行資料存取方法之第三實施例的第三部分流程圖。
請參閱第8A圖。當主機15要將一寫入資料(DATA-H)寫入至RAID子系統3a之第一邏輯碟12時,主機15會向RAID子系統3a發出一主機寫入要求,且此主機寫入要求可能會發送給RAID子系統3a中的任一儲存虛擬化控制器。在此例子中,假設第一邏輯碟12的管理者(owner)是第一儲存虛擬化控制器10。當RAID子系統3a之一儲存虛擬化控制器(例如:第一儲存虛擬化控制器(SVC1)10或第二儲存虛擬化控制器(SVC2)20)收到該主機寫入要求時(步驟8001),接收到該主機寫入要求之儲存虛擬化控制器(例如:第一儲存虛擬化控制器(SVC1)10或第二儲存虛擬化控制器(SVC2)20)會從該主機寫入要求所攜帶的資訊判斷:主機15是要將寫入資料(DATA-H)寫入到哪一個邏輯碟(在此例子中是:第一邏輯碟12),並因此知道自己對於該主機寫入要求所要寫入的邏輯碟(即:第一邏輯碟12)是否具有的管理權限(ownership)(步驟8003)。
若以上步驟8003的判斷結果是:該主機寫入要求是由非管理者 (non-owner)的儲存虛擬化控制器(在此例子中是:第二儲存虛擬化控制器(SVC2)20)所接收到;也就是說,第二儲存虛擬化控制器(SVC2)20接收到一個主機寫入要求,要求將寫入資料(DATA-H)寫入至第一邏輯碟12中(步驟8003),而第一邏輯碟12是由其它儲存虛擬化控制器(在此例子中是:第一儲存虛擬化控制器(SVC1)10)所管轄。在此情況下,由於接收到主機寫入要求的第二儲存虛擬化控制器(SVC2)20不是第一邏輯碟12的管理者(owner),因此,第二儲存虛擬化控制器(SVC2)20需要向第一邏輯碟12的管理者(owner)(即:第一儲存虛擬化控制器(SVC1)10)告知有該主機寫入要求並詢問一位址訊息,包含「將寫入資料(DATA-H)寫入到第一邏輯碟12的相關資訊」(步驟8005)。此一詢問的具體內容,在一實施例中可以是:第二儲存虛擬化控制器(SVC2)20之第二中央處理電路(CPC2)205經由冗餘控制器通訊(RCC)連結控制器9所建立之控制器間通訊通道(ICC)傳送一詢問指令(CMD-SC2 command)給第一儲存虛擬化控制器(SVC1)10,詢問第一儲存虛擬化控制器(SVC1)10:預計將該主機寫入要求所關聯的寫入資料(DATA-H)儲存在其第一記憶體107之第一快取緩衝單元1071的哪一(或哪些)資料儲存位址所代表的儲存空間(步驟8005)。當第一儲存虛擬化控制器(SVC1)10接收到詢問指令(CMD-SC2 command)後,先在第一快取緩衝單元1071中指定與一(或多個)資料儲存位址(例如:ADDR1)對應之儲存空間,用來暫存該主機寫入要求之寫入資料(DATA-H),然後將該一(或多個)資料儲存位址(例如:ADDR1)回覆給第二儲存虛擬化控制器(SVC2)20(步驟8007)。第二儲存虛擬化控制器(SVC2)20之第二中央處理電路(CPC2)205儲存第一儲存虛擬化控制器(SVC1)10所回覆之該一(或多個)資料儲存位址(例如:ADDR1),並據之確定與該一(或多個)第一資料儲存位址(例如:ADDR1)相對應之第二記憶體207之第二快取緩衝單元2071的一(或多個)資料儲存位址(例如:ADDR2)(步驟8009)。接著,第二儲存虛擬化控制器(SVC2)20之第二中央處理電路(CPC2)205先傳送該一(或多 個)資料儲存位址(例如:ADDR2)給第二儲存虛擬化控制器(SVC2)20之第二主機端輸出入控制器201(步驟8011),以供其在收到來自於主機15之寫入資料(DATA-H)後,可以據之把該寫入資料(DATA-H)儲存在該一(或多個)資料儲存位址(例如:ADDR2);之後,第二中央處理電路(CPC2)205通知主機15已可以傳送寫入資料(DATA-H)至第二儲存虛擬化控制器(SVC2)20(步驟8013)。接著,流程進入節點E(步驟8015),後續步驟由第8B圖繪示。
請參閱第8B圖。承續上述的步驟8013,經由節點E(步驟8015)來到第8B圖中之步驟8017~步驟8037,以執行第8B圖所示之第三實施例的第二部分流程。當主機15被告知已可以傳送寫入資料(DATA-H)時,主機15就將寫入資料(DATA-H)傳送給第二儲存虛擬化控制器(SVC2)20,由其第二主機端輸出入控制器201接收(步驟8017)。當第二主機端輸出入控制器201接收到寫入資料(DATA-H)後,會把該一(或多個)資料儲存位址(例如:ADDR2)附加於寫入資料(DATA-H),然後再傳送給第二交換器203(步驟8019)。第二交換器203接收到「附帶有資料儲存位址(例如:ADDR2)之寫入資料(DATA-H)」後,依據該一(或多個)資料儲存位址(例如:ADDR2)將寫入資料(DATA-H)寫入至第二快取緩衝單元2071的該一(或多個)資料儲存位址(例如:ADDR2)處(步驟8021)。在進行寫入的過程中,第二儲存虛擬化控制器(SVC2)20之第二中央處理電路(CPC2)205持續判斷寫入資料(DATA-H)是否已經完全寫入至第二儲存虛擬化控制器(SVC2)20之第二快取緩衝單元2071的資料儲存位址(例如:ADDR2)處(步驟8023),直到判斷確定:所有寫入資料(DATA-H)已經寫入至第二儲存虛擬化控制器(SVC2)20之第二快取緩衝單元2071的資料儲存位址(例如:ADDR2)處,則進入下一步驟。
當步驟8023確認:所有寫入資料(DATA-H)已寫入至第二快取緩衝單元2071的資料儲存位址(例如:ADDR2)處,接收主機資料(DATA-H)的第二儲存虛 擬化控制器(SVC2)20會依據先前所收到的第一快取緩衝單元1071之該一(或多個)資料儲存位址(例如:ADDR1),將寫入資料(DATA-H)寫入至第一儲存虛擬化控制器(SVC1)10之第一快取緩衝單元1071的資料儲存位址(例如:ADDR1)處(步驟8025)。此一寫入的動作是經由第二交換器203、冗餘控制器通訊(RCC)連結控制器9、與第一交換器103共同建立於兩儲存虛擬化控制器(SVC1、SVC2)10、20間之控制器間通訊通道(ICC)來實現。在進行寫入的過程中,第二儲存虛擬化控制器(SVC2)20之第二中央處理電路(CPC2)205持續判斷寫入資料(DATA-H)是否已經完全寫入至第一儲存虛擬化控制器(SVC1)10之第一快取緩衝單元1071的資料儲存位址(例如:ADDR1)處(步驟8027),直到判斷確定:所有寫入資料(DATA-H)已經寫入至第一儲存虛擬化控制器(SVC1)10之第二快取緩衝單元1071的資料儲存位址(例如:ADDR1)處。接著,第二儲存虛擬化控制器(SVC2)20之第二中央處理電路(CPC2)205通知第一儲存虛擬化控制器(SVC1)10之第一中央處理電路(CPC1)105:寫入資料(DATA-H)已經成功寫入至第一儲存虛擬化控制器(SVC1)10之第一快取緩衝單元1071的資料儲存位址(例如:ADDR1)處、與第二儲存虛擬化控制器(SVC2)20之第二快取緩衝單元2071的資料儲存位址(例如:ADDR2)處(步驟8029)。如此,第一儲存虛擬化控制器(SVC1)10之第一中央處理電路(CPC1)105方能確定:寫入資料(DATA-H)已經成功寫入至第一快取緩衝單元1071中的預定資料儲存位址(例如:ADDR1)處。之後,第一儲存虛擬化控制器(SVC1)10之第一中央處理電路(CPC1)105便可以著手進行後續處理,例如:將寫入資料(DATA-H)寫入至第一邏輯碟12。
當第一儲存虛擬化控制器(SVC1)10之第一中央處理電路(CPC1)105收到第二儲存虛擬化控制器(SVC2)20之第二中央處理電路(CPC2)205發送的成功寫入通知後,第一儲存虛擬化控制器(SVC1)10之第一中央處理電路(CPC1)105,透過冗餘控制器通訊(RCC)連結控制器9所建立之控制器間通訊通道(ICC),發出一 確認訊息(確認收到寫入資料)給第二儲存虛擬化控制器(SVC2)20之第二中央處理電路(CPC2)205,讓第二儲存虛擬化控制器(SVC2)20之第二中央處理電路(CPC2)205確知寫入資料(DATA-H)已經寫入至第一儲存虛擬化控制器(SVC1)10之第一快取緩衝單元1071的資料儲存位址(例如:ADDR1)處(步驟8031)。
然後,在第二儲存虛擬化控制器(SVC2)20之第二中央處理電路(CPC2)205收到來自第一儲存虛擬化控制器(SVC1)10之第一中央處理電路(CPC1)105之確認訊息後(亦即,在執行步驟8031之後),第二儲存虛擬化控制器(SVC2)20之第二中央處理電路(CPC2)205便通知主機15:其先前所發出之主機寫入要求已經執行完成(步驟8033)。
另一方面,當寫入資料(DATA-H)已經寫入至第一快取緩衝單元1071中的資料儲存位址(例如:ADDR1)後,第一儲存虛擬化控制器(SVC1)10之第一中央處理電路(CPC1)105隨時可以著手將儲存於第一快取緩衝單元1071中的寫入資料(DATA-H)寫入至第一邏輯碟12中(步驟8035)。此一寫入過程可能是一背景處理程序。在此一寫入過程中,第一儲存虛擬化控制器(SVC1)10會持續判斷寫入資料(DATA-H)是否已經完全寫入至第一邏輯碟12中,直到確定所有寫入資料(DATA-H)皆已寫入完成為止(步驟8037)。
請再次參閱第8A圖,其中,以儲存系統架構1a為例說明本發明技術之第三實施例的第一部分流程圖中之步驟8001至步驟8003與步驟8039至步驟8043的運作細節。根據本發明之一實施例,當主機15要將一寫入資料(DATA-H)寫入至第一邏輯碟12時,主機15會向RAID子系統3發出一主機寫入要求,且此主機寫入要求可能會發送給RAID子系統3中的任一儲存虛擬化控制器。在此例子中,假設第一邏輯碟12的管理者(owner)是第一儲存虛擬化控制器10。當RAID子系統3之一儲存虛擬化控制器(例如:第一儲存虛擬化控制器(SVC1)10或第二儲存虛擬化控制器(SVC2)20)收到該主機寫入要求時(步驟8001),接收到該主機 寫入要求之儲存虛擬化控制器(例如:第一儲存虛擬化控制器(SVC1)10或第二儲存虛擬化控制器(SVC2)20)會從該主機寫入要求所攜帶的資訊判斷:主機15是要將寫入資料(DATA-H)寫入到哪一個邏輯碟(在此例子中是:第一邏輯碟12),並因此知道自己對於寫入要求所要寫入的邏輯碟(即:第一邏輯碟12)是否具有的管理權限(ownership)(步驟8003)。
若以上步驟8003的判斷結果是:該主機寫入要求是由管理者(owner)的儲存虛擬化控制器(在此例子中是:第一儲存虛擬化控制器(SVC1)10)所接收到;也就是說,第一儲存虛擬化控制器(SVC1)10接收到一個主機寫入要求,要求將寫入資料(DATA-H)寫入至其自身所管轄之第一邏輯碟12中(步驟8003)。在此情況下,由於接收到主機寫入要求的第一儲存虛擬化控制器(SVC1)10就是第一邏輯碟12的管理者(owner),因此,第一儲存虛擬化控制器(SVC1)10可以逕自決定要使用第一快取緩衝單元1071的哪一(或哪些)資料儲存位址(例如:ADDR1)所代表的儲存空間,用以暫時儲存該主機寫入要求所關聯的寫入資料(DATA-H)(步驟8039)。之後,傳送一訊息給主機15,用以通知主機15可以傳送寫入資料(DATA-H)(步驟8041)。接著,流程進入節點F(步驟8043),後續步驟由第8C圖繪示。
請參閱第8C圖。承續上述的步驟8041,經由節點F(步驟8043)來到第8C圖中之步驟8043至步驟8065,以執行第8C圖中所示的第三實施例之第三部分流程。當主機15被告知可以傳送寫入資料(DATA-H)時,主機15就將寫入資料(DATA-H)傳送給第一儲存虛擬化控制器(SVC1)10,由其中之第一主機端輸出入控制器101接收(步驟8045)。當第一儲存虛擬化控制器(SVC1)10接收到寫入資料(DATA-H)時,會根據該一(或多個)資料儲存位址(例如:ADDR1)將寫入資料(DATA-H)寫入至第一快取緩衝單元1071的資料儲存位址(例如:ADDR1)處(步驟8047)。此一寫入操作係經由第一主機端輸出入控制器101與第一交換器103而達 成。在進行寫入的過程中,第一儲存虛擬化控制器(SVC1)10中之第一中央處理電路(CPC1)105持續判斷寫入資料(DATA-H)是否已經完全寫入至第一儲存虛擬化控制器(SVC1)10之第一快取緩衝單元1071的資料儲存位址(例如:ADDR1)處(步驟8049),直到判斷確定:所有寫入資料(DATA-H)已經寫入至儲存虛擬化控制器(SVC1)10之第一快取緩衝單元1071的資料儲存位址(ADDR1)處,則進入下一步驟。
當步驟8049判斷結果為是,則接收寫入資料(DATA-H)的第一儲存虛擬化控制器(SVC1)10必須要跟其組成同一儲存虛擬化控制器對(SVC pair)的另一儲存虛擬化控制器(即:第二儲存虛擬化控制器(SVC2)20)傳遞必要的操作狀態資訊。此一傳遞資訊的動作是透過冗餘控制器通訊(RCC)連結控制器9所建立之控制器間通訊通道(ICC)來實現。此一傳遞資訊的動作主要是:將寫入資料(DATA-H)備份至第二儲存虛擬化控制器(SVC2)20之第二快取緩衝單元2071的對應資料儲存位址(ADDR2)處,並且讓第二儲存虛擬化控制器(SVC2)20之第二中央處理電路(CPC2)205得知,有寫入資料(DATA-H)須要或已經備份至第二快取緩衝單元2071的對應資料儲存位址(ADDR2)處(步驟8051)。
以上步驟8051中,將寫入資料(DATA-H)備份至第二儲存虛擬化控制器(SVC2)20之第二快取緩衝單元2071的方式,可能有兩種。第一種實施方式為,第一儲存虛擬化控制器(SVC1)10之第一中央處理電路(CPC1)105接收寫入資料(DATA-H)並成功儲存在第一快取緩衝單元1071的資料儲存位址(例如:ADDR1)處後,第一中央處理電路(CPC1)105根據事先設定的對應關係,將相同的寫入資料(DATA-H)傳送到第二儲存虛擬化控制器(SVC2)20之第二快取緩衝單元2071的對應儲存位址(ADDR2)處。然後第一中央處理電路(CPC1)105通知第二中央處理電路(CPC2)205,有寫入資料(DATA-H)傳送至其第二快取緩衝單元2071的對應儲存位址(ADDR2)處。
步驟8051的第二種實施方式為,第一儲存虛擬化控制器(SVC1)10之第一中央處理電路(CPC1)105接收寫入資料(DATA-H)並成功儲存在第一快取緩衝單元1071的資料儲存位址(例如:ADDR1)處後,第一中央處理電路(CPC1)105通知第二儲存虛擬化控制器(SVC2)20之第二中央處理電路(CPC2)205,有寫入資料(DATA-H)須要備份且寫入資料(DATA-H)是位於第一儲存虛擬化控制器(SVC1)10之第一快取緩衝單元1071的資料儲存位址(ADDR1)處。如此,第二儲存虛擬化控制器(SVC2)20之第二中央處理電路(CPC2)205,安排第二快取緩衝單元2071的資料儲存位址(例如:ADDR2)處來儲存寫入資料(DATA-H)。然後,第二儲存虛擬化控制器(SVC2)20之第二中央處理電路(CPC2)205從第一儲存虛擬化控制器(SVC1)10之第一快取緩衝單元1071的資料儲存位址(ADDR1)處擷取寫入資料(DATA-H),並寫入至本身之第二快取緩衝單元2071的對應資料儲存位址(例如:ADDR2)處。
當第二儲存虛擬化控制器(SVC2)20之第二中央處理電路(CPC2)205確認:寫入資料(DATA-H)已經寫入至第二快取緩衝單元2071的資料儲存位址(例如:ADDR2)處,第二儲存虛擬化控制器(SVC2)20之第二中央處理電路(CPC2)205,透過冗餘控制器通訊(RCC)連結控制器9所建立之控制器間通訊通道(ICC),發送一確認訊息(寫入完成通知)給第一儲存虛擬化控制器(SVC1)10之第一中央處理電路(CPC1)105,用以讓第一儲存虛擬化控制器(SVC1)10之第一中央處理電路(CPC1)105確知寫入資料(DATA-H)已經備份至第二儲存虛擬化控制器(SVC2)20之第二快取緩衝單元2071之中(步驟8053)。
然後,在第一儲存虛擬化控制器(SVC1)10之第一中央處理電路(CPC1)105收到來自第二儲存虛擬化控制器(SVC2)20之確認訊息後(亦即,在執行步驟8053之後),第一儲存虛擬化控制器(SVC1)10之第一中央處理電路(CPC1)105便通知主機15:其先前所發出之主機寫入要求已經執行完成(步驟 8055)。
這種將資料存入控制器的記憶體後,即回覆主機(host)其寫入要求已經完成的做法,稱為寫回模式(write back mode)。運作在寫回模式(write back mode)之下,當寫入資料(DATA-H)已經寫入至第一快取緩衝單元1071中的資料儲存位址(例如:ADDR1)後,亦即在步驟8049判斷為是之後,第一儲存虛擬化控制器(SVC1)10之第一中央處理電路(CPC1)105隨時可以著手將儲存於第一快取緩衝單元1071中的寫入資料(DATA-H)寫入至第一邏輯碟12中(步驟8057)。此一寫入過程可能是一背景處理程序。在此一寫入過程中,第一儲存虛擬化控制器(SVC1)10會持續判斷寫入資料(DATA-H)是否已經完全寫入至第一邏輯碟12中,直到確定所有寫入資料(DATA-H)皆已寫入完成為止(步驟8059)。
於本發明之另一實施例,亦可設定寫入資料(DATA-H)必須成功寫入至邏輯碟(LD)後,才回覆主機(host)其寫入要求已經完成,這樣的做法稱為寫入模式(write through mode)。若是第8A圖-第8C圖改為運作在寫入模式(write through mode)之下,則第8B圖中的步驟8033與第8C圖中的步驟8055都必須移到最後。也就是要各自等第8B圖中的步驟8037與第8C圖中的步驟8059確認寫入至邏輯碟(LD)完成後,再回覆主機15其先前所發出之主機寫入要求已經執行完成(步驟8033、步驟8055)。
請參閱第9A圖-第9B圖。第9A圖係為依據本發明之儲存系統架構1或儲存系統架構1a,執行資料存取方法之第四實施例的第一部分流程圖。第9B圖係為依據本發明之儲存系統架構1或儲存系統架構1a,執行資料存取方法之第四實施例的第二部分流程圖。
請參閱第9A圖。當主機15要RAID子系統3或3a之第一邏輯碟12讀取一讀取資料(DATA-H’)時,主機15會向RAID子系統3或3a發出一輸出入要求(I/O request),在此亦可稱為主機讀取要求(read request)。根據本發明技術,此主機讀 取要求可能會發送給RAID子系統3或3a中的任一儲存虛擬化控制器10、20。在以下所舉的例子中,假設第一邏輯碟12的管理者(owner)是第一儲存虛擬化控制器10。當RAID子系統3或3a之一儲存虛擬化控制器10、20收到該主機讀取要求時(步驟9001),接收到該主機讀取要求之儲存虛擬化控制器(例如:第一儲存虛擬化控制器(SVC1)10或第二儲存虛擬化控制器(SVC2)20)會從該主機讀取要求所攜帶的資訊判斷:主機15是要從哪一個邏輯碟(在此例子中是:第一邏輯碟12)讀取相關讀取資料(DATA-H’),並因此知道自己對於該主機讀取要求所要讀取的邏輯碟(即:第一邏輯碟12)是否具有的管理權限(ownership)(步驟9003)。
若以上步驟9003的判斷結果是:該主機讀取要求是由非管理者(non-owner)的儲存虛擬化控制器(在此例子中是:第二儲存虛擬化控制器(SVC2)20)所接收到;也就是說,第二儲存虛擬化控制器(SVC2)20接收到一個主機讀取要求,要求從第一邏輯碟12中讀取相關讀取資料(DATA-H’)(步驟9003),而第一邏輯碟12是由其它儲存虛擬化控制器(在此例子中是:第一儲存虛擬化控制器(SVC1)10)所管轄。在此情況下,由於接收到主機讀取要求的第二儲存虛擬化控制器(SVC2)20不是第一邏輯碟12的管理者(owner),因此,第二儲存虛擬化控制器(SVC2)20需要向第一邏輯碟12的管理者(owner)(即:第一儲存虛擬化控制器(SVC1)10)傳送一通知指令告知有該主機讀取要求並詢問「從第一邏輯碟12讀取相關資料(DATA-H’)的相關資訊」(步驟9005)。此一詢問的具體內容,在一實施例中可以是:第二儲存虛擬化控制器(SVC2)20之第二中央處理電路(CPC2)205,經由冗餘控制器通訊(RCC)連結控制器9所建立之控制器間通訊通道(ICC),傳送一詢問指令給第一儲存虛擬化控制器(SVC1)10。該詢問指令詢問第一儲存虛擬化控制器(SVC1)10:要從第一記憶體107的哪一(或哪些)資料儲存位址所代表的儲存空間讀取該主機讀取要求所關聯的讀取資料(DATA-H’)(步驟9005)。當第一儲存虛擬化控制器(SVC1)10接收到詢問指令後,先確認第一記 憶體107中是否有該讀取要求所欲讀取的相關資料(DATA-H’)(步驟9007);若步驟9007的判斷結果為是,流程進入節點G(步驟9009);若步驟9007的判斷結果為否,第一儲存虛擬化控制器(SVC1)10在第一快取緩衝單元1071中指定一(或多個)資料儲存位址(例如:ADDR1),用來暫存該主機讀取要求之讀取資料(DATA-H’)的儲存空間(步驟9011)。然後,第一儲存虛擬化控制器(SVC1)10從第一邏輯碟12讀取並暫存所需的讀取資料(DATA-H’)在第一快取緩衝單元1071中的資料儲存位址(例如:ADDR1)處,再將資料儲存位址(例如:ADDR1)回覆給SVC2(步驟9013)。
當第二儲存虛擬化控制器(SVC2)20之第二中央處理電路(CPC2)205收到第一儲存虛擬化控制器(SVC1)10傳送過來的第一快取緩衝單元1071中的資料儲存位址(例如:ADDR1)後,將此資料儲存位址(例如:ADDR1)儲存下來並告知第二主機端輸出入控制器201去第一快取緩衝單元1071中的該資料儲存位址(例如:ADDR1)處讀取該主機讀取要求所需的讀取資料(DATA-H’)(步驟9015)。之後,傳送一訊息給主機15,以通知主機15可以接收讀取資料(DATA-H’)(步驟9017)。接著,流程進入節點H(步驟9019),後續步驟由第9B圖繪示。
請參閱第9B圖。承續上述的步驟9017,經由節點H(步驟9019)來到第9B圖中之步驟9041~步驟9047,以執行第9B圖所示之第四實施例的第二部分流程。當第二儲存虛擬化控制器(SVC2)20通知主機15可以接收讀取資料(DATA-H’)時,第二主機端輸出入控制器201經由第二交換器203、冗餘控制器通訊(RCC)連結控制器9所建立之控制器間通訊通道(ICC)、與第一交換器103,從第一快取緩衝單元1071之該資料儲存位址(例如:ADDR1)處讀取相關讀取資料(DATA-H’),並傳送給主機15(步驟9041)。在進行讀取的過程中,第二儲存虛擬化控制器(SVC2)20中之第二中央處理電路(CPC2)205持續判斷讀取資料(DATA-H’)是否已經完全被讀取並傳送至主機15(步驟9043),直到判斷確定: 所有讀取資料(DATA-H’)皆已成功讀取並傳送至主機15,則進入下一步驟。
當步驟9043確認:所有讀取資料(DATA-H’)已傳送至主機15,第二儲存虛擬化控制器(SVC2)20之第二中央處理電路(CPC2)205便通知主機15:其所發出之主機讀取要求已經執行完成(步驟9045)。另一方面,第二儲存虛擬化控制器(SVC2)20之第二中央處理電路(CPC2)205通知第一儲存虛擬化控制器(SVC1)10之第一中央處理電路(CPC1)105:讀取資料(DATA-H’)已經傳送給主機15(步驟9047)。
另一種情況,當步驟9007判斷結果為是,也就是第一記憶體107中已儲存有該主機讀取要求所需的讀取資料(DATA-H’),則流程進入節點G(步驟9009)而來到第9B圖中所示之步驟9035~步驟9047。此時,第一儲存虛擬化控制器(SVC1)10之第一中央處理電路(CPC1)105告知第二儲存虛擬化控制器(SVC2)20之第二中央處理電路(CPC2)205,有關讀取資料(DATA-H’)之存放位置(亦即,第一記憶體107中存放該讀取資料(DATA-H’)之資料儲存位址(例如:ADDR1))(步驟9035)。當第二儲存虛擬化控制器(SVC2)20第二中央處理電路(CPC2)205收到通知且得知該讀取資料(DATA-H’)之資料儲存位址(例如:ADDR1)時,會儲存資料儲存位址(例如:ADDR1),並指示第二主機端輸出入控制器201去資料儲存位址(例如:ADDR1)處讀取該讀取資料(DATA-H’)(步驟9037);於此之時,第二儲存虛擬化控制器(SVC2)20傳送一訊息給主機15,以通知主機15可以接收讀取資料(DATA-H’)(步驟9039)。
當第二儲存虛擬化控制器(SVC2)20通知主機15可以接收讀取資料(DATA-H’)時,第二主機端輸出入控制器201經由第二交換器203、冗餘控制器通訊(RCC)連結控制器9所建立之控制器間通訊通道(ICC)、與第一交換器103,從第一記憶體107中存放該讀取資料(DATA-H’)之資料儲存位址(例如:ADDR1)處讀取相關讀取資料(DATA-H’),並傳送給主機15(步驟9041)。在進行讀取的過 程中,第二儲存虛擬化控制器(SVC2)20中之第二中央處理電路(CPC2)205持續判斷讀取資料(DATA-H’)是否已經完全被讀取並傳送至主機15(步驟9043),直到判斷確定:所有讀取資料(DATA-H’)皆已成功讀取並傳送至主機15,則進入下一步驟。
當步驟9043確認:所有讀取資料(DATA-H’)已傳送至主機15,第二儲存虛擬化控制器(SVC2)20之第二中央處理電路(CPC2)205便通知主機15:其所發出之主機讀取要求已經執行完成(步驟9045)。另一方面,第二儲存虛擬化控制器(SVC2)20之第二中央處理電路(CPC2)205通知第一儲存虛擬化控制器(SVC1)10之第一中央處理電路(CPC1)105:讀取資料(DATA-H’)已經傳送給主機15(步驟9047)。
請參閱第9A圖,其中,以儲存系統架構1或1a為例說明本發明技術之第四實施例的第一部分流程圖中之步驟9001至步驟9003與步驟9021至步驟9033的運作細節。當主機15要從第一邏輯碟12讀取一讀取資料(DATA-H’)時,主機15會向RAID子系統3或3a發出一主機讀取要求。根據本發明技術,此主機讀取要求可能會發送給RAID子系統3或3a中的任一儲存虛擬化控制器10、20。在以下所舉的例子中,假設第一邏輯碟12的管理者(owner)是第一儲存虛擬化控制器10。當RAID子系統3或3a之一儲存虛擬化控制器10、20收到該主機讀取要求時(步驟9001),接收到該主機讀取要求之儲存虛擬化控制器(例如:第一儲存虛擬化控制器(SVC1)10或第二儲存虛擬化控制器(SVC2)20)會從該主機讀取要求所攜帶的資訊判斷:主機15是要從哪一個邏輯碟(在此例子中是:第一邏輯碟12)讀取相關讀取資料(DATA-H’),並因此知道自己對於讀取要求所要存取的邏輯碟(即:第一邏輯碟12)是否具有的管理權限(ownership)(步驟9003)。
若以上步驟9003的判斷結果是:該主機讀取要求是由管理者(owner)的儲存虛擬化控制器(在此例子中是:第一儲存虛擬化控制器(SVC1)10)所接收 到;也就是說,第一儲存虛擬化控制器10(SVC1)接收到一個主機讀取要求,要求從其自身所管轄之第一邏輯碟12中讀取相關讀取資料(DATA-H’)(步驟9003)。在此情況下,第一儲存虛擬化控制器(SVC1)10先確認自身的第一記憶體107中是否儲存有該主機讀取要求所需的讀取資料(DATA-H’)(步驟9021);若步驟9021的判斷結果為否,第一儲存虛擬化控制器(SVC1)10在第一快取緩衝單元1071中指定一(或多個)資料儲存位址(例如:ADDR1),用來暫存該主機讀取要求之讀取資料(DATA-H’)的儲存空間(步驟9023)。然後,第一儲存虛擬化控制器(SVC1)10從第一邏輯碟12讀取並暫存所需的讀取資料(DATA-H’)在第一快取緩衝單元1071中的資料儲存位址(例如:ADDR1)(步驟9025)處,再傳送一訊息給主機15,以通知主機15可以接收讀取資料(DATA-H’)(步驟9027)。
當第一儲存虛擬化控制器(SVC1)10通知主機15可以接收讀取資料(DATA-H’)時,第一主機端輸出入控制器101經由第一交換器103,從第一快取緩衝單元1071之該資料儲存位址(例如:ADDR1)處讀取相關讀取資料(DATA-H’),並傳送給主機15(步驟9029)。在進行讀取的過程中,第一儲存虛擬化控制器(SVC1)10中之第一中央處理電路(CPC1)105持續判斷讀取資料(DATA-H’)是否已經完全被讀取並傳送至主機15(步驟9031),直到判斷確定:所有讀取資料(DATA-H’)皆已成功讀取並傳送至主機15,則第一儲存虛擬化控制器(SVC1)10之第一中央處理電路(CPC1)105通知主機15:其所發出之主機讀取要求已經執行完成(步驟9033)。
另一方面,當步驟9021的判斷結果為是,也就是第一記憶體107中已儲存有該主機讀取要求所需的讀取資料(DATA-H’),則第一儲存虛擬化控制器(SVC1)10之第一中央處理電路(CPC1)105傳送一訊息給主機15,以通知主機15可以接收讀取資料(DATA-H’)(步驟9027)。然後,第一儲存虛擬化控制器(SVC1)10之第一主機端輸出入控制器101從第一記憶體107中讀取相關讀取資料 (DATA-H’)並傳送給主機15(步驟9029)。在進行讀取的過程中,第一儲存虛擬化控制器(SVC1)10之第一中央處理電路(CPC1)105持續判斷讀取資料(DATA-H’)是否已經完全被讀取並傳送至主機15(步驟9031),直到判斷確定:所有讀取資料(DATA-H’)皆已成功讀取並傳送至主機15,則第一儲存虛擬化控制器(SVC1)10之第一中央處理電路(CPC1)105通知主機15:其所發出之主機讀取要求已經執行完成(步驟9033)。
雖然本發明以前述之較佳實施例揭露如上,然其並非用以限定本發明,任何知悉相像技藝者,在不脫離本發明之精神和範圍內,當可作些許之等效更動與修飾,皆仍屬本發明專利涵蓋之範圍內,因此本發明之專利保護範圍須視本說明書所附之申請專利範圍所界定者為準。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
8001~8059:於本發明之一資料儲存系統架構1,在寫回模式下執行資料存取方法之第三實施例流程圖的步驟

Claims (41)

  1. 一種於一資料儲存系統架構(1)下存取資料之方法,該資料儲存系統架構(1)包含有一第一儲存虛擬化控制器(SVC1)(10)、一第二儲存虛擬化控制器(SVC2)(20)及一儲存池(storage pool)(4),其中,該第一儲存虛擬化控制器(SVC1)(10)包含有一第一中央處理電路(CPC1)(105)、與一第一記憶體(memory 1)(107),該第二儲存虛擬化控制器(SVC2)(20)包含有一第二中央處理電路(CPC2)(205)、與一第二記憶體(memory 2)(207),該第一中央處理電路(CPC1)(105)經由一傳輸介面連接至該第二中央處理電路(CPC2)(205),該第一記憶體(memory 1)(107)包含有複數個第一儲存空間,該第二記憶體(memory 2)(207)包含有複數個第二儲存空間,其中該方法包含:該第一儲存虛擬化控制器(SVC1)(10)管理該一儲存池(storage pool)(4)中一第一邏輯碟(LD1)(12);該第二儲存虛擬化控制器(SVC2)(20)接收來自一主機(15)之一寫入要求(write request),其中該寫入要求(write request)係要求寫入一寫入資料至該第一邏輯碟(LD1)(12);該第二儲存虛擬化控制器(SVC2)(20)經由該傳輸介面詢問該第一儲存虛擬化控制器(SVC1)(10)有關一位址訊息;該第一儲存虛擬化控制器(SVC1)(10)經由該傳輸介面回覆該位址訊息給該第二儲存虛擬化控制器(SVC2)(20),其中該位址訊息包含該第一記憶體(memory 1)(107)之一或多個第一資料儲存位址(ADDR1),其位於該複數個第一儲存空間中,用以儲存該寫入要求(write request)之該寫入資料;該第二儲存虛擬化控制器(SVC2)(20)依據接收到的該位址訊息安排對應於該一或多個第一資料儲存位址(ADDR1)之該第二記憶體(memory 2)(207)中之一或多個第二資料儲存位址(ADDR2); 該第二儲存虛擬化控制器(SVC2)(20)傳送一訊息給該主機(15),以通知該主機(15)傳送該寫入要求(write request)之該寫入資料;該第二儲存虛擬化控制器(SVC2)(20)接收來自該主機(15)之該寫入要求(write request)之該寫入資料;該第二儲存虛擬化控制器(SVC2)(20)將該寫入資料儲存於該第二記憶體(memory 2)(207)之該一或多個第二資料儲存位址(ADDR2)處;該第二儲存虛擬化控制器(SVC2)(20)經由該傳輸介面將該寫入資料儲存於該第一記憶體(memory 1)(107)之該一或多個第一資料儲存位址(ADDR1)處;以及該第二儲存虛擬化控制器(SVC2)(20)通知該主機(15),該寫入要求(write request)已執行完成。
  2. 依據申請專利範圍第1項所述之方法,其中該傳輸介面是經由一冗餘控制器通訊(RCC)連結控制器(9)所建立之一控制器間通訊通道(ICC)而達成。
  3. 依據申請專利範圍第1項所述之方法,其中該位址訊息更包含該第二記憶體(memory 2)(207)之該一或多個第二資料儲存位址(ADDR2)。
  4. 依據申請專利範圍第1項所述之方法,其中更包含以下步驟:該第二儲存虛擬化控制器(SVC2)(20)附加該一或多個第二資料儲存位址(ADDR2)於該寫入資料,當該第二儲存虛擬化控制器(SVC2)(20)接收到來自該主機(15)之該寫入資料後。
  5. 依據申請專利範圍第4項所述之方法,其中接收來自該主機(15)之該寫入資料的步驟與附加該一或多個第二資料儲存位址(ADDR2)於該寫入資料的步驟,是由該第二儲存虛擬化控制器(SVC2)(20)中之一第二主機端輸出入控制器(201)所執行。
  6. 依據申請專利範圍第1項所述之方法,其中該第一儲存虛擬化控制器(SVC1)(10)是藉由一第一交換器(switch 1)(103)與該傳輸介面連接,該第二儲存虛擬化控制器(SVC2)(20)是藉由一第二交換器(switch 2)(203)與該傳輸介面連接。
  7. 依據申請專利範圍第6項所述之方法,其中該第一交換器(switch 1)(103)與該第二交換器(switch 2)(203)更具有一非透明橋接功能(Non-transparent bridge,NTB)(1033、2033)。
  8. 依據申請專利範圍第6項所述之方法,其中該第二儲存虛擬化控制器(SVC2)(20)係藉由該第二交換器(switch 2)(203)將該寫入資料儲存於該第二記憶體(memory 2)(207)之該一或多個第二資料儲存位址(ADDR2)處、以及該第一記憶體(memory 1)(107)之該一或多個第一資料儲存位址(ADDR1)處。
  9. 依據申請專利範圍第1項所述之方法,其中更包含以下步驟:該第二儲存虛擬化控制器(SVC2)20通知該第一儲存虛擬化控制器(SVC1)10,該寫入資料已經成功儲存至該第一記憶體(memory 1)(107)之該一或多個第一資料儲存位址(ADDR1)處、與該第二記憶體(memory 2)(207)之該一或多個第二資料儲存位址(ADDR2)處;以及 該第一儲存虛擬化控制器(SVC1)10發出一確認訊息給該第二儲存虛擬化控制器(SVC2)20,以通知該第二儲存虛擬化控制器(SVC2)20:確認該寫入資料已經成功儲存至該第一記憶體(memory 1)(107)之該一或多個第一資料儲存位址(ADDR1)處。
  10. 依據申請專利範圍第1項所述之方法,其中該第二儲存虛擬化控制器(SVC2)(20)更具有一第二群播表(MT2)(2031),該第二群播表(MT2)(2031)紀錄有一或多個虛擬群播位址(virtual multicast ADDR),該一或多個虛擬群播位址(virtual multicast ADDR)對應於該第一記憶體(memory 1)(107)之該一或多個第一資料儲存位址(ADDR1)、與該第二記憶體(memory 2)(207)之該一或多個第二資料儲存位址(ADDR2)。
  11. 依據申請專利範圍第10項所述之方法,其中更包含以下步驟:該第二儲存虛擬化控制器(SVC2)(20)中之一第二主機端輸出入控制器(201)附加該一或多個虛擬群播位址(virtual multicast ADDR)於該寫入資料,當該第二儲存虛擬化控制器(SVC2)(20)接收到來自該主機(15)之該寫入資料後。
  12. 依據申請專利範圍第11項所述之方法,其中該第二儲存虛擬化控制器(SVC2)(20)中之一第二交換器(switch 2)(203)根據該一或多個虛擬群播位址(virtual multicast ADDR),將該寫入資料同時儲存至該第二記憶體(memory 2)(207)之該一或多個第二資料儲存位址(ADDR2)處、以及同時傳送至該第一記憶體(memory 1)(107)之該一或多個第一資料儲存位址(ADDR1)處。
  13. 依據申請專利範圍第10項所述之方法,其中該第二群播表(MT2)(2031)係存放於該第二儲存虛擬化控制器(SVC2)(20)中一第二交換器(switch 2)(203)。
  14. 依據申請專利範圍第1項所述之方法,其中該一或多個保留的第二儲存空間是位於該第二記憶體(memory 2)(207)的一第二快取緩衝單元(2071)之中。
  15. 依據申請專利範圍第1項所述之方法,更包含有:該第二儲存虛擬化控制器(SVC2)(20)通知該第一儲存虛擬化控制器(SVC1)(10),該寫入資料已經儲存至該第一記憶體(memory 1)(107)之該一或多個第一資料儲存位址(ADDR1)處;其中該一或多個第一資料儲存位址(ADDR1)係位於該第一記憶體(memory 1)(107)的一第一快取緩衝單元(1071)之中,而該一或多個第二資料儲存位址(ADDR2)係位於該第二記憶體(memory 2)(207)的一第二快取緩衝單元(2071)之中。
  16. 依據申請專利範圍第1項所述之方法,更包含有:該第一儲存虛擬化控制器(SVC1)(10)將儲存於該第一記憶體(memory 1)(107)之該一或多個第一資料儲存位址(ADDR1)處之該寫入資料儲存至該第一邏輯碟(LD1)(12)之中。
  17. 依據申請專利範圍第16項所述之方法,更包含有:當該第一儲存虛擬化控制器(SVC1)(10)將儲存於該第一記憶體(memory 1)(107)之該一或多個第一資料儲存位址(ADDR1)處之該寫入資料儲存至該第一邏輯碟(LD1)(12)後,該第一儲存虛擬化控制器(SVC1)(10)通知該第二儲存虛擬化控制器(SVC2)(20)該寫入要求(write request)已執行完成。
  18. 依據申請專利範圍第12項所述之方法,更包含有:該第一儲存虛擬化控制器(SVC1)(10)發出一確認訊息給該第二儲存虛擬化控制器(SVC2)20,以通知該第二儲存虛擬化控制器(SVC2)20:確認該寫入資料已經成功儲存至該第一記憶體(memory 1)(107)之該一或多個第一資料儲存位址(ADDR1)處。
  19. 依據申請專利範圍第10項所述之方法,其中該第二群播表(MT2)(2031)包含有複數個欄位,包括:一第一欄位用以記錄該一或多個虛擬群播位址(virtual multicast ADDR)、一第二欄位用以記錄該一或多個第一資料儲存位址(ADDR1)、及一第三欄位用以記錄該一或多個第二資料儲存位址(ADDR2)。
  20. 依據申請專利範圍第10項所述之方法,其中該第一儲存虛擬化控制器(SVC1)(10)更具有一第一群播表(MT1)(1031),該第一群播表(MT1)(1031)包含有複數個欄位,包括:一第一欄位用以記錄該一或多個虛擬群播位址(virtual multicast ADDR)、一第二欄位用以記錄該一或多個第一資料儲存位址(ADDR1)、及一第三欄位用以記錄該一或多個第二資料儲存位址(ADDR2)。
  21. 一種於一資料儲存系統架構(1)下存取資料之方法,該資料儲存系 統架構(1)包含有一第一儲存虛擬化控制器(SVC1)(10)、一第二儲存虛擬化控制器(SVC2)(20)及一儲存池(storage pool)(4),其中,該第一儲存虛擬化控制器(SVC1)(10)包含有一第一中央處理電路(CPC1)(105)、與一第一記憶體(memory 1)(107),該第二儲存虛擬化控制器(SVC2)(20)包含有一第二中央處理電路(CPC2)(205)、與一第二記憶體(memory 2)(207),該第一中央處理電路(CPC1)(105)經由一傳輸介面連接至該第二中央處理電路(CPC2)(205),該第一記憶體(memory 1)(107)包含有複數個第一儲存空間,該第二記憶體(memory 2)(207)包含有複數個第二儲存空間,其中該方法包含:該第一儲存虛擬化控制器(SVC1)(10)管理該儲存池(storage pool)(4)中一第一邏輯碟(LD1)(12);該第二儲存虛擬化控制器(SVC2)(20)接收來自一主機(15)之一讀取要求(read request),其中該讀取要求(read request)係要求讀取該第一邏輯碟(LD1)(12)上儲存的一讀取資料;該第二儲存虛擬化控制器(SVC2)(20)經由該傳輸介面詢問該第一儲存虛擬化控制器(SVC1)(10)有關一位址訊息;該第一儲存虛擬化控制器(SVC1)(10)經由該傳輸介面回覆該位址訊息給該第二儲存虛擬化控制器(SVC2)(20),其中該位址訊息包含該第一記憶體(memory 1)(107)之一或多個第一資料儲存位址(ADDR1),其位於該複數個第一儲存空間中,用以儲存該讀取要求(read request)所欲讀取之該讀取資料;該第二儲存虛擬化控制器(SVC2)(20)接收並儲存該位址訊息;該第二儲存虛擬化控制器(SVC2)(20)傳送一訊息給該主機(15),以通知該主機(15)可以接收該讀取要求(read request)之該讀取資料;該第二儲存虛擬化控制器(SVC2)(20)根據該位址訊息,經由該傳輸介面至該第一記憶體(memory 1)(107)之該一或多個第一資料儲存位址(ADDR1)處 讀取該讀取資料;以及該第二儲存虛擬化控制器(SVC2)(20)通知該主機(15),該讀取要求(read request)已執行完成。
  22. 依據申請專利範圍第21項所述之方法,其中該傳輸介面是經由一冗餘控制器通訊(RCC)連結控制器(9)所建立之一控制器間通訊通道(ICC)而達成。
  23. 依據申請專利範圍第21項所述之方法,其中更包含以下步驟:該第一儲存虛擬化控制器(SVC1)10先確認該第一記憶體107(memory 1)(107)中是否有該讀取要求(read request)所欲讀取之該讀取資料。
  24. 依據申請專利範圍第21項所述之方法,其中更包含以下步驟:該第一儲存虛擬化控制器(SVC1)10從該第一邏輯碟(LD1)(12)讀取並暫存該讀取資料(DATA-H’)在該第一記憶體(memory 1)(107)之該一或多個第一資料儲存位址(ADDR1)處。
  25. 依據申請專利範圍第21項所述之方法,其中至該第一記憶體(memory 1)(107)之該一或多個第一資料儲存位址(ADDR1)處讀取該讀取資料,是由該第二儲存虛擬化控制器(SVC2)(20)中之一第二主機端輸出入控制器(201)所執行。
  26. 依據申請專利範圍第21項所述之方法,其中該第一儲存虛擬化控制器(SVC1)(10)是藉由一第一交換器(switch 1)(103)與該傳輸介面連接,該 第二儲存虛擬化控制器(SVC2)(20)是藉由一第二交換器(switch 2)(203)與該傳輸介面連接。
  27. 依據申請專利範圍第26項所述之方法,其中該第一交換器(switch 1)(103)與該第二交換器(switch 2)(203)更具有一非透明橋接功能(Non-transparent bridge,NTB)(1033、2033)。
  28. 依據申請專利範圍第21項所述之方法,其中更包含以下步驟:該第二儲存虛擬化控制器(SVC2)20通知該第一儲存虛擬化控制器(SVC1)10,該讀取資料已經傳送給該主機(15)。
  29. 一種資料儲存系統架構(1),包含有:一儲存池(storage pool)(4),包含一第一邏輯碟(LD1)(12),其中該第一邏輯碟(LD1)(12)係由一或多個實體儲存裝置(PSD)映射而成;一第一儲存虛擬化控制器(SVC1)(10),耦接於該儲存池與一主機(15),該第一儲存虛擬化控制器(SVC1)(10)包含一第一中央處理電路(CPC1)(105)、與一第一記憶體(memory 1)(107),其中該第一中央處理電路(CPC1)(105)用以管理該儲存池之該第一邏輯碟(LD1)(12)並呈現給一主機(15),該第一記憶體(memory 1)(107)包含複數個第一儲存空間;以及一第二儲存虛擬化控制器(SVC2)(20),耦接於該儲存池與該主機(15),該第二儲存虛擬化控制器(SVC2)(20)包含一第二中央處理電路(CPC2)(205)、與一第二記憶體(memory 2)(207),其中該第二中央處理電路(CPC2)(205)經由一傳輸介面連接至該第一儲存虛擬化控制器(SVC1)(10)之該第一中央處理電路(CPC1)(105),該第二記憶體(memory 2)(207)包含複 數個第二儲存空間;其中,當該第二儲存虛擬化控制器(SVC2)(20)從該主機(15)接收到欲存取該第一邏輯碟(LD1)(12)之一輸出入要求(I/O request)時,該第二儲存虛擬化控制器(SVC2)(20)中之該第二中央處理電路(CPC2)(205)經由該傳輸介面詢問該第一儲存虛擬化控制器(SVC1)(10)有關一位址訊息;其中,該第一儲存虛擬化控制器(SVC1)(10)經由該傳輸介面回覆該位址訊息給該第二儲存虛擬化控制器(SVC2)(20),該位址訊息包含該第一記憶體(memory 1)(107)中一或多個第一資料儲存位址(ADDR1);以及其中,該第二儲存虛擬化控制器(SVC2)(20)根據該一或多個第一資料儲存位址(ADDR1)完成該輸出入要求(I/O request)。
  30. 依據申請專利範圍第29項所述之資料儲存系統架構(1),其中該第一記憶體(memory 1)(107)更包含一第一快取緩衝單元(1071),提供對應於該一或多個第一資料儲存位址(ADDR1)的一或多個保留的第一儲存空間;其中該第二記憶體(memory 2)(207)更包含一第二快取緩衝單元(2071),提供對應於一或多個第二資料儲存位址(ADDR2)的一或多個保留的第二儲存空間。
  31. 依據申請專利範圍第29項所述之資料儲存系統架構(1),其中該第一儲存虛擬化控制器(SVC1)(10)更包含一第一主機端輸出入控制器(host-side I/O controller 1)(101),做為該第一儲存虛擬化控制器(SVC1)(10)與該主機(15)之間的傳輸介面;其中該第二儲存虛擬化控制器(SVC2)(20)更包含一第二主機端輸出入控制器(host-side I/O controller 2)(201),做為該第二儲存虛擬化控制器(SVC2)(20)與該主機(15)之間的傳輸介面。
  32. 依據申請專利範圍第31項所述之資料儲存系統架構(1),其中該第一儲存虛擬化控制器(SVC1)(10)更包含一第一交換器(switch 1)(103),其具有非透明橋接功能(Non-transparent bridge,NTB)(1033),對內連接至該第一中央處理電路(CPC1)(105)與該第一主機端輸出入控制器(host-side I/O controller 1)(101),對外則透過該傳輸介面連接至該第二儲存虛擬化控制器(SVC2)(20);其中該第二儲存虛擬化控制器(SVC2)(20)更包含一第二交換器(switch 2)(203),其具有非透明橋接功能(Non-transparent bridge,NTB)(2033),對內連接至該第二中央處理電路(CPC2)(205)與該第二主機端輸出入控制器(host-side I/O controller 2)(201),對外則透過該傳輸介面連接至該第一儲存虛擬化控制器(SVC1)(10)。
  33. 依據申請專利範圍第32項所述之資料儲存系統架構(1),其中該第一中央處理電路(CPC1)(105)與該第一交換器(switch 1)(103)係整合在同一晶片上、或是各自獨立的電路模組;其中該第二中央處理電路(CPC2)(205)與該第二交換器(switch 2)(203)係整合在同一晶片上、或是各自獨立的電路模組。
  34. 依據申請專利範圍第32項所述之資料儲存系統架構(1),其中該第一主機端輸出入控制器(host-side I/O controller 1)(101)與該第一交換器(switch 1)(103)係整合在同一晶片上、或是各自獨立的電路模組;其中該第二主機端輸出入控制器(host-side I/O controller 2)(201)與該第二交換器(switch 2)(203)係整合在同一晶片上、或是各自獨立的電路模組。
  35. 依據申請專利範圍第32項所述之資料儲存系統架構(1),其中該第一主機端輸出入控制器(host-side I/O controller 1)(101)與該第一中央處理電路 (CPC1)(105)係整合在同一晶片上、或是各自獨立的電路模組;其中該第二主機端輸出入控制器(host-side I/O controller 2)(201)與該第二中央處理電路(CPC2)(205)係整合在同一晶片上、或是各自獨立的電路模組。
  36. 依據申請專利範圍第29項所述之資料儲存系統架構(1),其中該傳輸介面是經由一冗餘控制器通訊(RCC)連結控制器(9)所建立之一控制器間通訊通道(ICC)而達成。
  37. 依據申請專利範圍第29項所述之資料儲存系統架構(1),其中當該輸出入要求(I/O request)為一寫入要求(write request)時,該第二儲存虛擬化控制器(SVC2)(20)依據接收到的該位址訊息安排對應於該一或多個第一資料儲存位址(ADDR1)之該第二記憶體(memory 2)(207)中之一或多個第二資料儲存位址(ADDR2),或是參考一第二群播表(MT2)(2031)以得知與該一或多個第一資料儲存位址(ADDR1)相對應之一或多個虛擬群播位址(virtual multicast ADDR)。
  38. 依據申請專利範圍第37項所述之資料儲存系統架構(1),其中該第二儲存虛擬化控制器(SVC2)(20)更具有一第二主機端輸出入控制器(host-side I/O controller 2)(201)與一第二交換器(switch 2)(203),該第二主機端輸出入控制器(host-side I/O controller 2)(201)用以接收來自該主機(15)之該寫入要求(write request)之一寫入資料,以及附加該一或多個第二資料儲存位址(ADDR2)、或該一或多個虛擬群播位址(virtual multicast ADDR)在該寫入資料,然後傳送已附加該一或多個第二資料儲存位址(ADDR2)、或該一或多個虛擬群播位址(virtual multicast ADDR)的該寫入資料至該第二交換器(switch 2)(203)。
  39. 依據申請專利範圍第38項所述之資料儲存系統架構(1),其中當該第二交換器(switch 2)(203)接收到該寫入資料後,將該寫入資料儲存於該第二記憶體(memory 2)(207)之該一或多個第二資料儲存位址(ADDR2)處,且該第二交換器(switch 2)(203)經由該傳輸介面將該寫入資料儲存於該第一記憶體(memory 1)(107)之該一或多個第一資料儲存位址(ADDR1)處。
  40. 依據申請專利範圍第38項所述之資料儲存系統架構(1),其中該第二交換器(switch 2)(203)接收到該寫入資料後,根據該寫入資料中附加的該一或多個虛擬群播位址(virtual multicast ADDR),查詢該第二群播表(MT2)(2031)以得到相對應的該一或多個虛擬群播位址(virtual multicast ADDR)的該一或多個第一資料儲存位址(ADDR1)與該一或多個第二資料儲存位址(ADDR2),進而執行一多點播送(multicast)操作,將該寫入資料同時儲存至該第二記憶體(memory 2)(207)之該一或多個第二資料儲存位址(ADDR2)處、以及同時傳送至該第一記憶體(memory 1)(107)之該一或多個第一資料儲存位址(ADDR1)處。
  41. 依據申請專利範圍第29項所述之資料儲存系統架構(1),其中當該輸出入要求(I/O request)為一讀取要求(read request)時,該第二儲存虛擬化控制器(SVC2)(20)根據該位址訊息,經由該傳輸介面至該第一記憶體(memory 1)(107)之該一或多個第一資料儲存位址(ADDR1)處讀取一讀取資料。
TW111103118A 2021-02-03 2022-01-25 具有雙儲存虛擬化控制器之資料儲存系統架構及其資料存取方法 TWI829080B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202163144992P 2021-02-03 2021-02-03
US63/144,992 2021-02-03

Publications (2)

Publication Number Publication Date
TW202232328A TW202232328A (zh) 2022-08-16
TWI829080B true TWI829080B (zh) 2024-01-11

Family

ID=81770908

Family Applications (1)

Application Number Title Priority Date Filing Date
TW111103118A TWI829080B (zh) 2021-02-03 2022-01-25 具有雙儲存虛擬化控制器之資料儲存系統架構及其資料存取方法

Country Status (3)

Country Link
US (1) US11842083B2 (zh)
CN (1) CN114579047B (zh)
TW (1) TWI829080B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130054846A1 (en) * 2011-08-31 2013-02-28 International Business Machines Corporation Non-disruptive configuration of a virtualization cotroller in a data storage system
US20140040410A1 (en) * 2012-07-31 2014-02-06 Jonathan Andrew McDowell Storage Array Reservation Forwarding
TW202031021A (zh) * 2018-11-26 2020-08-16 美商阿爾克斯股份有限公司 具有分解式網路元件的邏輯路由器
US20210026653A1 (en) * 2019-07-24 2021-01-28 EMC IP Holding Company LLC Automatic configuration of multiple virtual storage processors

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI344602B (en) 2005-01-13 2011-07-01 Infortrend Technology Inc Redundant storage virtualization computer system
TWI307034B (en) 2005-11-23 2009-03-01 Infortrend Technology Inc Storage virtualization subsystem and system with host-side redundancy via sas connectivity
JP5159421B2 (ja) 2008-05-14 2013-03-06 株式会社日立製作所 ストレージシステム及び管理装置を用いたストレージシステムの管理方法
US8612679B2 (en) 2009-01-23 2013-12-17 Infortrend Technology, Inc. Storage subsystem and storage system architecture performing storage virtualization and method thereof
US9142272B2 (en) 2013-03-15 2015-09-22 International Business Machines Corporation Dual asynchronous and synchronous memory system
US9720838B2 (en) 2015-03-27 2017-08-01 Intel Corporation Shared buffered memory routing
US10911225B2 (en) * 2015-06-05 2021-02-02 Nutanix, Inc. Optimizable full-path encryption in a virtualization environment
US10503434B2 (en) 2017-04-12 2019-12-10 Micron Technology, Inc. Scalable low-latency storage interface
CN109213702B (zh) 2017-06-30 2022-08-30 伊姆西Ip控股有限责任公司 虚拟机环境中的虚拟双控制模块之间的通信
TWI636366B (zh) 2017-11-22 2018-09-21 緯穎科技服務股份有限公司 資料冗餘的處理方法及其相關電腦系統
US10409511B1 (en) 2018-06-30 2019-09-10 Western Digital Technologies, Inc. Multi-device storage system with distributed read/write processing

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130054846A1 (en) * 2011-08-31 2013-02-28 International Business Machines Corporation Non-disruptive configuration of a virtualization cotroller in a data storage system
US20140040410A1 (en) * 2012-07-31 2014-02-06 Jonathan Andrew McDowell Storage Array Reservation Forwarding
TW202031021A (zh) * 2018-11-26 2020-08-16 美商阿爾克斯股份有限公司 具有分解式網路元件的邏輯路由器
US20210026653A1 (en) * 2019-07-24 2021-01-28 EMC IP Holding Company LLC Automatic configuration of multiple virtual storage processors

Also Published As

Publication number Publication date
CN114579047B (zh) 2024-03-29
US20230034049A1 (en) 2023-02-02
CN114579047A (zh) 2022-06-03
TW202232328A (zh) 2022-08-16
US11842083B2 (en) 2023-12-12

Similar Documents

Publication Publication Date Title
KR101455016B1 (ko) 고가용성 솔리드 스테이트 드라이브를 제공하는 방법 및 장치
CA2473832C (en) Methods and apparatus for implementing virtualization of storage within a storage area network
JP4500057B2 (ja) データ移行方法
JP5132720B2 (ja) 記憶装置システム
EP2113843B1 (en) Information system and I/O processing method
JP5087249B2 (ja) ストレージシステムおよびストレージシステムの制御方法
JP5620614B1 (ja) ストレージシステム
US9009427B2 (en) Mirroring mechanisms for storage area networks and network based virtualization
CN104981788B (zh) 存储系统及存储系统的控制方法
US20070094466A1 (en) Techniques for improving mirroring operations implemented in storage area networks and network based virtualization
US20070094465A1 (en) Mirroring mechanisms for storage area networks and network based virtualization
WO2013046273A1 (en) Reservation of volumes having a copy pair relationship
US9823955B2 (en) Storage system which is capable of processing file access requests and block access requests, and which can manage failures in A and storage system failure management method having a cluster configuration
US20080104193A1 (en) Clustered Storage System with External Storage Systems
WO2016101287A1 (zh) 一种存储系统数据分发的方法、分发装置与存储系统
JP4338075B2 (ja) 記憶装置システム
US20090259816A1 (en) Techniques for Improving Mirroring Operations Implemented In Storage Area Networks and Network Based Virtualization
JP2004199420A (ja) 計算機システム、磁気ディスク装置、および、ディスクキャッシュ制御方法
JP2007286946A (ja) 計算機システム、アクセス制御方法及び管理計算機
JP2008112399A (ja) ストレージ仮想化スイッチおよびコンピュータシステム
CN100447731C (zh) 冗余存储虚拟化计算机系统
US20090228672A1 (en) Remote copy system and check method
TWI829080B (zh) 具有雙儲存虛擬化控制器之資料儲存系統架構及其資料存取方法
US12014067B2 (en) Remote replication data efficiency optimization with host extended copy commands
JP4874515B2 (ja) 記憶装置システム