數(shù)據(jù)鏡像控制設(shè)備和方法
【專利摘要】提供一種數(shù)據(jù)鏡像控制設(shè)備和方法。所述數(shù)據(jù)鏡像控制設(shè)備包括:命令分發(fā)單元,被構(gòu)造為將第一寫入命令發(fā)送到多個鏡像存儲裝置,第一寫入命令包括用于主機(jī)所請求寫入的數(shù)據(jù)的指令;內(nèi)存鎖定設(shè)置單元,被構(gòu)造為對存儲在主機(jī)存儲器中的數(shù)據(jù)之中主機(jī)所請求寫入的數(shù)據(jù)設(shè)置內(nèi)存鎖定,并被構(gòu)造為在具有內(nèi)存鎖定的數(shù)據(jù)被寫入到所述多個鏡像存儲裝置之后解除對數(shù)據(jù)的內(nèi)存鎖定。
【專利說明】數(shù)據(jù)鏡像控制設(shè)備和方法
[0001]本申請要求于2013年9月27日提交到韓國知識產(chǎn)權(quán)局的第10_2013_0115579號韓國專利申請的優(yōu)先權(quán),所述專利申請的公開內(nèi)容通過引用全部合并于此。
【技術(shù)領(lǐng)域】
[0002]本發(fā)明構(gòu)思的至少一個示例實(shí)施例涉及數(shù)據(jù)鏡像技術(shù)。
【背景技術(shù)】
[0003]幾十年來,硬盤驅(qū)動器(HDD)已經(jīng)被用作典型存儲裝置。HDD的示例是使用以特定速度旋轉(zhuǎn)的磁盤的磁頭執(zhí)行讀取/寫入操作的機(jī)械裝置。考慮到其容量,HDD可以相對地便宜。然而,由于HDD的讀取/寫入性能取決于磁盤的旋轉(zhuǎn)速度,因此HDD的讀取/寫入性能(特別是隨機(jī)讀取/寫入性能)可比基于半導(dǎo)體的存儲裝置的讀取/寫入性能(特別是隨機(jī)讀取/寫入性能)更加受限。另外,HDD可比基于半導(dǎo)體的存儲裝置具有更高的故障率。存儲裝置中的故障是有害的,因?yàn)槠淠軌驅(qū)е掠脩魯?shù)據(jù)的丟失。
[0004]為了克服HDD的受限制的性能和可靠性,已經(jīng)廣泛地使用了獨(dú)立磁盤冗余陣列(RAID)技術(shù)。RAID技術(shù)通過連接多個HDD裝置形成HDD陣列,并將讀取/寫入操作適當(dāng)?shù)胤植荚贖DD陣列中。RAID技術(shù)根據(jù)HDD裝置之間的數(shù)據(jù)排列策略被分類為多種具體技術(shù),例如,RAID O (條帶化)、RAID I (鏡像)、RAID 5 (具有分布式奇偶校驗(yàn)的條帶化)、RAID10(鏡像和條帶化)等。具體地講,鏡像技術(shù)可包括將相同的數(shù)據(jù)存儲在兩個或更多個HDD中。因此,即使所述兩個或更多個HDD中的一個HDD發(fā)生故障,也可因?yàn)檫€沒有發(fā)生故障的HDD能夠持續(xù)地提供數(shù)據(jù)服務(wù)而防止數(shù)據(jù)丟失。
[0005]同時,對固態(tài)驅(qū)動器(SSD)的利用正在持續(xù)地增加。SSD與HDD兼容,并可比HDD具有更好的性能和可靠性。與HDD不同,SSD可不具有機(jī)械裝置。因此,SSD可比HDD具有更低的故障率。此外,SSD的讀取/寫入性能(具體地講,隨機(jī)讀取/寫入性能)可高于HDD的讀取/寫入性能。雖然SSD可在性能和可靠性方面優(yōu)于HDD,但是RAID技術(shù)也能夠通過形成SSD陣列而應(yīng)用于SSD,以實(shí)現(xiàn)額外性能提高或者防止由于SSD的故障而導(dǎo)致的數(shù)據(jù)丟失。
【發(fā)明內(nèi)容】
[0006]本發(fā)明構(gòu)思的至少一個示例實(shí)施例提供一種數(shù)據(jù)鏡像控制設(shè)備和方法。
[0007]本發(fā)明構(gòu)思的至少一個示例實(shí)施例提供一種數(shù)據(jù)鏡像控制設(shè)備,包括:命令分發(fā)單元,將主機(jī)所請求寫入的數(shù)據(jù)的寫入命令發(fā)送到多個鏡像存儲裝置;內(nèi)存鎖定設(shè)置單元,對存儲在主機(jī)存儲器中的數(shù)據(jù)之中主機(jī)所請求寫入的數(shù)據(jù)設(shè)置內(nèi)存鎖定,并且在具有內(nèi)存鎖定的數(shù)據(jù)被寫入到所述多個鏡像存儲裝置之后解除對數(shù)據(jù)的內(nèi)存鎖定。
[0008]本發(fā)明構(gòu)思的至少一個示例實(shí)施例提供一種數(shù)據(jù)鏡像控制設(shè)備,包括:快速存儲裝置設(shè)置單元,將多個鏡像存儲裝置中的至少一個設(shè)置為快速存儲裝置;命令分發(fā)單元,將主機(jī)所請求寫入的數(shù)據(jù)的寫入命令發(fā)送到快速存儲裝置;內(nèi)存鎖定設(shè)置單元,對存儲在主機(jī)存儲器中的數(shù)據(jù)之中主機(jī)所請求寫入的數(shù)據(jù)設(shè)置內(nèi)存鎖定,并且在具有內(nèi)存鎖定的數(shù)據(jù)被寫入到所述多個鏡像存儲裝置之后解除對數(shù)據(jù)的內(nèi)存鎖定。
[0009]本發(fā)明構(gòu)思的至少一個示例實(shí)施例提供一種數(shù)據(jù)鏡像控制方法,包括:將主機(jī)所請求寫入的數(shù)據(jù)的寫入命令發(fā)送到多個鏡像存儲裝置;對存儲在主機(jī)存儲器中的數(shù)據(jù)之中主機(jī)所請求寫入的數(shù)據(jù)設(shè)置內(nèi)存鎖定,并且在具有內(nèi)存鎖定的數(shù)據(jù)被寫入到所述多個鏡像存儲裝置之后解除對數(shù)據(jù)的內(nèi)存鎖定。
[0010]本發(fā)明構(gòu)思的至少一個示例實(shí)施例提供一種數(shù)據(jù)鏡像控制方法,包括:將多個鏡像存儲裝置中的至少一個設(shè)置為快速存儲裝置;將主機(jī)所請求寫入的數(shù)據(jù)的寫入命令發(fā)送到快速存儲裝置;對存儲在主機(jī)存儲器中的數(shù)據(jù)之中主機(jī)所請求寫入的數(shù)據(jù)設(shè)置內(nèi)存鎖定,并且在具有內(nèi)存鎖定的數(shù)據(jù)被寫入到所述多個鏡像存儲裝置之后解除對數(shù)據(jù)的內(nèi)存鎖定。
[0011]本發(fā)明構(gòu)思的至少一個示例實(shí)施例提供一種數(shù)據(jù)鏡像控制設(shè)備,包括:命令分發(fā)單元,將主機(jī)所請求寫入的數(shù)據(jù)的寫入命令發(fā)送到多個鏡像存儲裝置,并在請求的數(shù)據(jù)被寫入到所述多個鏡像存儲裝置之一之后,發(fā)送請求的數(shù)據(jù)的寫入完成消息;修剪命令發(fā)送單元,基于與將請求的數(shù)據(jù)寫入到所述多個鏡像存儲裝置之一的寫入有關(guān)的信息,將修剪命令發(fā)送到未接收到請求的數(shù)據(jù)的寫入命令的存儲裝置。
[0012]本發(fā)明構(gòu)思的至少一個示例實(shí)施例提供一種數(shù)據(jù)鏡像控制設(shè)備,包括:命令分發(fā)單元,被構(gòu)造為響應(yīng)于來自主機(jī)的寫入請求將第一寫入命令發(fā)送到多個鏡像存儲裝置,其中,第一寫入命令指示所述多個鏡像存儲裝置存儲請求的數(shù)據(jù),請求的數(shù)據(jù)是在主機(jī)存儲的第一數(shù)據(jù),寫入請求表示第一數(shù)據(jù)被寫入到所述多個鏡像存儲裝置中的至少一個存儲裝置的請求;內(nèi)存鎖定設(shè)置單元,被構(gòu)造為響應(yīng)于寫入請求對位于主機(jī)中的第一數(shù)據(jù)設(shè)置內(nèi)存鎖定,并被構(gòu)造為響應(yīng)于第一數(shù)據(jù)被寫入到所述多個鏡像存儲裝置,解除對位于主機(jī)中的第一數(shù)據(jù)的內(nèi)存鎖定。
[0013]命令分發(fā)單元可被構(gòu)造為在接收到表示所述多個鏡像存儲裝置中的第一鏡像存儲裝置完成第一數(shù)據(jù)的寫入的寫入完成消息之后,將第二寫入命令發(fā)送到第一鏡像存儲裝置,其中,第一鏡像存儲裝置是所述多個鏡像存儲裝置中的相對于所述多個鏡像存儲裝置中的其余鏡像存儲裝置在最早的時間點(diǎn)完成第一數(shù)據(jù)的寫入的存儲裝置。
[0014]內(nèi)存鎖定設(shè)置單元可被構(gòu)造為響應(yīng)于確定所述多個鏡像存儲裝置中的接收到第一寫入命令且未被禁用的每個裝置已經(jīng)完成第一數(shù)據(jù)的寫入,解除對位于主機(jī)中的第一數(shù)據(jù)的內(nèi)存鎖定。
【專利附圖】
【附圖說明】
[0015]通過參照附圖詳細(xì)地描述本發(fā)明構(gòu)思的示例實(shí)施例,本發(fā)明構(gòu)思的示例實(shí)施例的上述和其他特征和優(yōu)點(diǎn)將變得更加清楚。附圖意圖描繪本發(fā)明構(gòu)思的示例實(shí)施例,不應(yīng)被解釋為限制權(quán)利要求的預(yù)期范圍。附圖不用被視為按比例繪制,除非明確地指出。
[0016]圖1是示出根據(jù)本發(fā)明構(gòu)思的至少一個示例實(shí)施例的數(shù)據(jù)鏡像存儲系統(tǒng)的配置的示圖。
[0017]圖2是示出根據(jù)本發(fā)明構(gòu)思的至少一個示例實(shí)施例的數(shù)據(jù)鏡像控制設(shè)備的配置的示圖。
[0018]圖3A至圖3C是示出在沒有應(yīng)用內(nèi)存鎖定的情況下數(shù)據(jù)丟失的示圖。
[0019]圖4A和圖4B是示出設(shè)置內(nèi)存鎖定和發(fā)送寫入完成消息的處理的示圖。
[0020]圖5A和圖5B是示出在以非阻止方式(non-blocking manner)發(fā)送寫入命令的情況下設(shè)置內(nèi)存鎖定和發(fā)送寫入完成消息的處理的示圖。
[0021]圖6A和圖6B是示出發(fā)送修剪命令(trim command)的處理的示圖。
[0022]圖7A至圖7C是示出快速存儲裝置的示圖。
[0023]圖8是示出在主機(jī)發(fā)生故障的情況下數(shù)據(jù)恢復(fù)的示圖。
[0024]圖9是示出在多個存儲裝置包括固態(tài)驅(qū)動器(SSD)和硬盤驅(qū)動器(HDD)的情況下數(shù)據(jù)鏡像控制的示圖。
[0025]圖10是示出根據(jù)本發(fā)明構(gòu)思的至少一個示例實(shí)施例的設(shè)置內(nèi)存鎖定的處理的流程圖。
[0026]圖11是示出根據(jù)本發(fā)明構(gòu)思的至少一個示例實(shí)施例的發(fā)送寫入命令和寫入完成消息的處理的流程圖。
[0027]圖12是示出根據(jù)本發(fā)明構(gòu)思的至少一個示例實(shí)施例的發(fā)送寫入命令和寫入完成消息的處理的流程圖。
[0028]圖13是示出根據(jù)本發(fā)明構(gòu)思的至少一個示例實(shí)施例的改變快速存儲裝置的處理的流程圖。
[0029]圖14是示出根據(jù)本發(fā)明構(gòu)思的至少一個示例實(shí)施例的改變快速存儲裝置的處理的流程圖。
[0030]圖15是示出根據(jù)本發(fā)明構(gòu)思的至少一個示例實(shí)施例的改變快速存儲裝置的處理的流程圖。
[0031]圖16是示出根據(jù)本發(fā)明構(gòu)思的至少一個示例實(shí)施例的在快速存儲裝置發(fā)生故障的情況下數(shù)據(jù)恢復(fù)處理的流程圖。
[0032]圖17是示出根據(jù)本發(fā)明構(gòu)思的至少一個示例實(shí)施例的在主機(jī)發(fā)生故障的情況下數(shù)據(jù)恢復(fù)處理的流程圖。
【具體實(shí)施方式】
[0033]這里公開本發(fā)明構(gòu)思的詳細(xì)示例實(shí)施例。然而,出于描述本發(fā)明構(gòu)思的示例實(shí)施例的目的,這里公開的特定結(jié)構(gòu)和功能細(xì)節(jié)僅是代表。然而,本發(fā)明構(gòu)思的示例實(shí)施例可以以多種替代形式實(shí)現(xiàn),并且不應(yīng)被解釋為僅限于這里闡述的實(shí)施例。
[0034]因此,雖然本發(fā)明構(gòu)思的示例實(shí)施例能夠具有各種修改和替代形式,但是本發(fā)明構(gòu)思的實(shí)施例在附圖中通過示例的方式被示出并且將在這里被詳細(xì)地描述。然而,應(yīng)當(dāng)理解的是,不意圖將本發(fā)明構(gòu)思的示例實(shí)施例限制到所公開的具體形式,而是相反,本發(fā)明構(gòu)思的示例實(shí)施例將涵蓋落入本發(fā)明構(gòu)思的示例實(shí)施例的范圍內(nèi)的所有修改、等同物和替代。貫穿附圖的描述,相同的標(biāo)號表示相同的元件。
[0035]將理解的是,雖然術(shù)語“第一”、“第二”等可在這里用于描述各種元件,但是這些元件不應(yīng)受這些術(shù)語限制。這些術(shù)語僅用于區(qū)分一個元件與另一元件。例如,在不脫離本發(fā)明構(gòu)思的示例實(shí)施例的范圍的情況下,第一元件可被命名為第二元件,類似地,第二元件可被命名為第一元件。如這里使用的,術(shù)語“和/或”包括相關(guān)聯(lián)列出項目中的一個或更多個的任何和所有組合。
[0036]將理解的是,當(dāng)元件被稱為“連接”或“耦合”到另一元件時,其可直接連接或耦合到該另一元件,或者可存在中間元件。相反,當(dāng)元件被稱為“直接連接”或“直接耦合”到另一元件時,不存在中間元件。用于描述元件之間的關(guān)系的其他詞語應(yīng)以類似的方式被解釋(例如,“在…之間”對“直接在…之間”、“相鄰”對“直接相鄰”等)。
[0037]這里使用的術(shù)語僅是為了描述特定實(shí)施例的目的,不意圖限制本發(fā)明構(gòu)思的示例實(shí)施例。如這里使用的,除非上下文另外明確地指示,否則單數(shù)形式還意圖包括復(fù)數(shù)形式。將進(jìn)一步理解的是,當(dāng)在這里使用時,術(shù)語“包括”和/或“包含”指定存在所陳述的特征、整體、步驟、操作、元件和/或組件,但是不排除存在或添加一個或更多個其他特征、整體、步驟、操作、元件、組件和/或它們的組。
[0038]還應(yīng)注意的是,在一些替代實(shí)施方式中,所記錄的功能/動作可以不按附圖中所述的順序發(fā)生。例如,根據(jù)涉及的功能/動作,連續(xù)示出的兩幅附圖事實(shí)上可以基本上同時被執(zhí)行或者有時可以按相反的順序被執(zhí)行。
[0039]為了便于描述,諸如“在…之下”、“在…下方”、“下面”、“在…上方”、“上面”等的空間相對術(shù)語可在這里用于描述附圖中示出的一個元件或特征與另一元件或特征的關(guān)系。將理解的是,除了附圖中描繪的方位之外,空間相對術(shù)語還意圖包含裝置在使用或操作中的不同方位。例如,如果附圖中的裝置被翻轉(zhuǎn),則被描述為“在”其他元件或特征“下方”或“在”其他元件或特征“之下”的元件將隨后被定向?yàn)椤霸凇彼銎渌蛱卣鳌吧戏健薄R虼?,示例性術(shù)語“在…下方”可包含上方和下方兩個方位。裝置可另外被定向(旋轉(zhuǎn)90度或在其他方位)并且這里使用的空間相對描述符被相應(yīng)地解釋。
[0040]這里參照截面圖示(和中間結(jié)構(gòu))描述實(shí)施例,所述截面圖示是理想化實(shí)施例的示意性圖示。如此,將預(yù)期由例如制造技術(shù)和/或容差導(dǎo)致的圖示的形狀的變化。因此,這些實(shí)施例不應(yīng)被解釋為限于這里示出的區(qū)域的特定形狀,而是應(yīng)包括例如制造所導(dǎo)致的形狀上的偏差。例如,通常,被示出為矩形的注入?yún)^(qū)域?qū)⒃谄溥吘壘哂袌A形或彎曲的特征和/或注入濃度的梯度,而不是從注入到非注入?yún)^(qū)域的二元變化。同樣地,通過注入形成的掩埋區(qū)域可在掩埋區(qū)域和注入發(fā)生的表面之間的區(qū)域中導(dǎo)致一些注入。因此,附圖中示出的區(qū)域本質(zhì)上是示意性的,它們的形狀不意圖示出裝置的區(qū)域的實(shí)際形狀,也不意圖限制本發(fā)明構(gòu)思的示例實(shí)施例的范圍。
[0041]除非另外定義,否則這里使用的所有術(shù)語(包括技術(shù)和科學(xué)術(shù)語)具有與本發(fā)明構(gòu)思的示例實(shí)施例所屬領(lǐng)域的普通技術(shù)人員通常理解的含義相同的含義。將進(jìn)一步理解的是,除非這里明確地這樣定義,否則諸如在通用字典中定義的那些術(shù)語應(yīng)被解釋為具有與在相關(guān)領(lǐng)域的上下文和本說明書中的含義一致的含義,并且將不被解釋為理想化或過于形式化的意義。下文中,將參照附圖詳細(xì)地描述本發(fā)明構(gòu)思的至少一些示例實(shí)施例。
[0042]圖1是示出根據(jù)本發(fā)明構(gòu)思的至少一個示例實(shí)施例的數(shù)據(jù)鏡像存儲系統(tǒng)的配置的示圖。參照圖1,數(shù)據(jù)鏡像存儲系統(tǒng)可包括數(shù)據(jù)鏡像控制設(shè)備110、主機(jī)120和多個存儲裝置130。
[0043]多個存儲裝置130通過數(shù)據(jù)鏡像重復(fù)地存儲相同的數(shù)據(jù),以防止數(shù)據(jù)在多個存儲裝置130中的一個存儲裝置發(fā)生故障時丟失。根據(jù)本發(fā)明構(gòu)思的至少一個示例實(shí)施例,存儲裝置130可包括固態(tài)驅(qū)動器(SSD)的陣列。然而,本發(fā)明構(gòu)思的示例實(shí)施例不限于此,存儲裝置130還可包括一個或更多個SSD以及一個或更多個硬盤驅(qū)動器(HDD)。
[0044]主機(jī)120可將對存儲在主機(jī)存儲器中的數(shù)據(jù)的寫入請求發(fā)送到數(shù)據(jù)鏡像控制設(shè)備110。這里,主機(jī)120可以以阻止方式(blocking manner)或非阻止方式將寫入請求發(fā)送到數(shù)據(jù)鏡像控制設(shè)備110。具體地講,利用非阻止方式,主機(jī)120可不管是否已經(jīng)接收到主機(jī)120先前請求寫入的數(shù)據(jù)的寫入完成消息而將對數(shù)據(jù)的寫入請求發(fā)送到數(shù)據(jù)鏡像控制設(shè)備110。另一方面,利用阻止方式,主機(jī)120不做出對數(shù)據(jù)的寫入請求,直到接收到主機(jī)120先前請求寫入的數(shù)據(jù)的寫入完成消息為止。
[0045]數(shù)據(jù)鏡像控制設(shè)備110可對存儲在主機(jī)存儲器(host memory,主機(jī)內(nèi)存)中的數(shù)據(jù)之中主機(jī)120所請求寫入的數(shù)據(jù)設(shè)置內(nèi)存鎖定(存儲鎖定)。
[0046]另外,在具有內(nèi)存鎖定的數(shù)據(jù)被寫入到所有的鏡像存儲裝置130之后,數(shù)據(jù)鏡像控制設(shè)備110可解除對數(shù)據(jù)的內(nèi)存鎖定。
[0047]內(nèi)存鎖定可防止存儲在主機(jī)存儲器的特定地址處的數(shù)據(jù)之中主機(jī)120所請求寫入的數(shù)據(jù)從主機(jī)存儲器被擦除或在數(shù)據(jù)被寫入到存儲裝置130之前被修改。
[0048]根據(jù)本發(fā)明構(gòu)思的至少一個示例實(shí)施例,數(shù)據(jù)鏡像控制設(shè)備110可將主機(jī)120所請求寫入的數(shù)據(jù)的寫入命令發(fā)送到存儲裝置130。
[0049]這里,寫入命令可以以阻止方式或非阻止方式被發(fā)送到存儲裝置130中的每個存儲裝置。具體地講,利用阻止方式,當(dāng)其他數(shù)據(jù)當(dāng)前正被寫入到存儲裝置130時,數(shù)據(jù)鏡像控制設(shè)備110可不發(fā)送數(shù)據(jù)的寫入命令。一旦其他數(shù)據(jù)被寫入到存儲裝置130,數(shù)據(jù)鏡像控制設(shè)備110就可發(fā)送數(shù)據(jù)的寫入命令。
[0050]另一方面,利用非阻止方式,數(shù)據(jù)鏡像控制設(shè)備110可不管其他數(shù)據(jù)是否正被寫入到存儲裝置130而將另一數(shù)據(jù)的寫入命令發(fā)送到存儲裝置130中的每個存儲裝置。存儲裝置130中的每個存儲裝置按照命令隊列存儲接收到的寫入命令,完成當(dāng)前數(shù)據(jù)的寫入,然后,通過執(zhí)行存儲在命令隊列中的寫入命令來寫入其他數(shù)據(jù)。
[0051]在主機(jī)120所請求寫入的數(shù)據(jù)被寫入到存儲裝置130之一時,數(shù)據(jù)鏡像控制設(shè)備110可將數(shù)據(jù)的寫入完成消息發(fā)送到主機(jī)120。
[0052]根據(jù)本發(fā)明構(gòu)思的至少一個示例實(shí)施例,數(shù)據(jù)鏡像控制設(shè)備110可將主機(jī)120所請求寫入的數(shù)據(jù)的寫入命令發(fā)送到存儲裝置130之中被設(shè)置為快速存儲裝置的存儲裝置。具體地講,數(shù)據(jù)鏡像控制設(shè)備110可將寫入命令發(fā)送到存儲裝置130中的每個存儲裝置。然后,當(dāng)存儲裝置130之一完成對寫入命令的執(zhí)行時,數(shù)據(jù)鏡像控制設(shè)備110可將寫入完成消息發(fā)送到主機(jī)120。
[0053]根據(jù)本發(fā)明構(gòu)思的至少一個其他示例實(shí)施例,數(shù)據(jù)鏡像控制設(shè)備110可將寫入命令發(fā)送到存儲裝置130之中的快速存儲裝置,并且當(dāng)快速存儲裝置完成對寫入命令的執(zhí)行時,將寫入完成消息發(fā)送到主機(jī)120。
[0054]數(shù)據(jù)鏡像控制設(shè)備110可被實(shí)現(xiàn)為與主機(jī)120分開的設(shè)備。然而,本發(fā)明構(gòu)思的示例實(shí)施例不限于此,數(shù)據(jù)鏡像控制設(shè)備I1還可包括在主機(jī)120中。
[0055]圖2是示出根據(jù)本發(fā)明構(gòu)思的至少一個示例實(shí)施例的數(shù)據(jù)鏡像控制設(shè)備110的配置的不圖。
[0056]參照圖2,內(nèi)存鎖定設(shè)置單元112可對存儲在主機(jī)存儲器中的數(shù)據(jù)之中主機(jī)120所請求寫入的數(shù)據(jù)設(shè)置內(nèi)存鎖定。
[0057]另外,在具有內(nèi)存鎖定的數(shù)據(jù)被寫入到所有的存儲裝置130之后,內(nèi)存鎖定設(shè)置單元112可解除對數(shù)據(jù)的內(nèi)存鎖定。
[0058]換言之,在數(shù)據(jù)被寫入到所有的存儲裝置130 (不只是存儲裝置130中的任何一個存儲裝置)之后,可解除對主機(jī)120所請求寫入的數(shù)據(jù)的內(nèi)存鎖定。
[0059]根據(jù)本發(fā)明構(gòu)思的至少一個示例實(shí)施例,當(dāng)從主機(jī)120接收到對數(shù)據(jù)的寫入請求時,命令分發(fā)單元111可將請求的數(shù)據(jù)的寫入命令發(fā)送到存儲裝置130中的每個存儲裝置。
[0060]當(dāng)存儲裝置130之一完成對寫入命令的執(zhí)行時,命令分發(fā)單元111可將寫入完成消息發(fā)送到主機(jī)120。
[0061]根據(jù)本發(fā)明構(gòu)思的至少一個示例實(shí)施例,命令分發(fā)單元111可將主機(jī)120所請求寫入的數(shù)據(jù)的寫入命令發(fā)送到存儲裝置130之中被設(shè)置為快速存儲裝置的存儲裝置。
[0062]在此情況下,在請求的數(shù)據(jù)被寫入到快速存儲裝置之后,命令分發(fā)單元111可將數(shù)據(jù)的寫入完成消息發(fā)送到主機(jī)120。
[0063]快速存儲裝置設(shè)置單元113可將存儲裝置130中的至少一個存儲裝置設(shè)置為快速存儲裝置。這里,快速存儲裝置可以是存儲裝置130之中存儲最新的數(shù)據(jù)的存儲裝置。
[0064]根據(jù)本發(fā)明構(gòu)思的至少一個示例實(shí)施例,快速存儲裝置設(shè)置單元113可基于響應(yīng)于寫入命令的寫入完成速度來將存儲裝置130之中的存儲裝置設(shè)置為快速存儲裝置。
[0065]具體地講,快速存儲裝置設(shè)置單元113可將存儲裝置130之中的以最高速度寫入相同數(shù)據(jù)的存儲裝置設(shè)置為快速存儲裝置。
[0066]另外,如果首先完成相同數(shù)據(jù)的寫入的存儲裝置不是快速存儲裝置,則快速存儲裝置設(shè)置單元113可將該存儲裝置改變?yōu)榭焖俅鎯ρb置。
[0067]根據(jù)本發(fā)明構(gòu)思的至少一個示例實(shí)施例,快速存儲裝置設(shè)置單元113可將存儲裝置130之中的任意存儲裝置設(shè)置為快速存儲裝置,并且周期性地或非周期性地改變快速存儲裝置。
[0068]例如,快速存儲裝置設(shè)置單元113可從存儲裝置130中的每個存儲裝置周期性地接收寫入加速因子(WAF)值,并將具有最高WAF值的存儲裝置設(shè)置為快速存儲裝置。WAF意指存儲裝置的寫入速度。
[0069]作為另一示例,當(dāng)快速存儲裝置具有寫入延遲時,快速存儲裝置設(shè)置單元113可改變快速存儲裝置。
[0070]作為另一示例,當(dāng)自由塊由于通過快速存儲裝置執(zhí)行寫入命令而減小到預(yù)定大小或(可選地)參考大小或者更小時,快速存儲裝置設(shè)置單元113可改變快速存儲裝置。
[0071]根據(jù)本發(fā)明構(gòu)思的至少一個示例實(shí)施例,可使用在存儲裝置130中的每個存儲裝置中存儲的快速存儲裝置指示符來設(shè)置快速存儲裝置。具體地講,快速存儲裝置設(shè)置單元113可通過將在存儲裝置130中的每個存儲裝置中存儲的快速存儲裝置指示符的值設(shè)置為一或零來設(shè)置或改變快速存儲裝置。
[0072]根據(jù)本發(fā)明構(gòu)思的至少一個示例實(shí)施例,當(dāng)快速存儲裝置發(fā)生故障時,命令分發(fā)單元111可將具有內(nèi)存鎖定的數(shù)據(jù)的寫入命令發(fā)送到?jīng)]有發(fā)生故障的另一存儲裝置。
[0073]對數(shù)據(jù)設(shè)置的內(nèi)存鎖定表示數(shù)據(jù)尚未被寫入到存儲裝置130中的至少一個存儲裝置。因此,當(dāng)快速存儲裝置發(fā)生故障時,如果具有內(nèi)存鎖定的數(shù)據(jù)被發(fā)送到?jīng)]有發(fā)生故障的另一存儲裝置,則可防止由于快速存儲裝置的故障而導(dǎo)致的數(shù)據(jù)的丟失。
[0074]根據(jù)本發(fā)明構(gòu)思的至少一個示例實(shí)施例,當(dāng)主機(jī)120發(fā)生故障時,命令分發(fā)單元111可對存儲在存儲裝置130中的數(shù)據(jù)進(jìn)行匹配。
[0075]具體地講,當(dāng)主機(jī)120由于意外故障而重新啟動時,命令分發(fā)單元111可將存儲在快速存儲裝置中的數(shù)據(jù)與存儲在其他存儲裝置130中的數(shù)據(jù)進(jìn)行比較,以確定存儲在快速存儲裝置中的數(shù)據(jù)是否與存儲在其他存儲裝置130中的數(shù)據(jù)匹配。
[0076]當(dāng)存儲在快速存儲裝置中的數(shù)據(jù)不與存儲在其他存儲裝置130中的數(shù)據(jù)匹配時,命令分發(fā)單元111可基于存儲在快速存儲裝置中的數(shù)據(jù)將重寫(overwrite)命令發(fā)送到其他存儲裝置130,以便與存儲在快速存儲裝置中的數(shù)據(jù)匹配。
[0077]修剪命令發(fā)送單元114可基于與將數(shù)據(jù)寫入到存儲裝置130之一的寫入有關(guān)的信息將修剪命令發(fā)送到尚未接收到數(shù)據(jù)的寫入命令的存儲裝置。
[0078]具體地講,可能難以或者不可能就地更新作為SSD的組件的NAND閃存。因此,為了在特定位置執(zhí)行寫入操作,包括所述位置的整個塊應(yīng)當(dāng)被預(yù)先擦除。這里,不再使用的無效數(shù)據(jù)被擦除,有效數(shù)據(jù)被傳送到另一塊。
[0079]因此,當(dāng)存儲裝置130之一完成數(shù)據(jù)寫入時,修剪命令發(fā)送單元114通過使用修剪命令向未接收到數(shù)據(jù)的寫入命令的存儲裝置通知無效數(shù)據(jù)區(qū)域,從而提高存儲裝置的性能并減少存儲裝置的損耗。
[0080]當(dāng)被設(shè)置為快速存儲裝置的存儲裝置被改變?yōu)槁俅鎯ρb置時,垃圾回收命令發(fā)送單元115可將垃圾回收命令發(fā)送到被改變?yōu)槁俅鎯ρb置的存儲裝置。
[0081]具體地講,在主機(jī)120所請求寫入的數(shù)據(jù)的寫入命令僅被發(fā)送到快速存儲裝置的情況下,寫入命令不被發(fā)送到已經(jīng)被改變?yōu)槁俅鎯ρb置的存儲裝置。在此情況下,使被改變?yōu)槁俅鎯ρb置的存儲裝置執(zhí)行垃圾回收,以預(yù)先確保備用空間(spare space)。因此,這提高了當(dāng)存儲裝置被再次設(shè)置為快速存儲裝置時存儲裝置的寫入性能。
[0082]慢速存儲裝置可以是沒有被設(shè)置為快速存儲裝置的存儲裝置。
[0083]圖3A至圖3C是示出在沒有應(yīng)用內(nèi)存鎖定的情況下數(shù)據(jù)丟失的示圖。
[0084]圖3A示出在主機(jī)所請求寫入的數(shù)據(jù)被寫入到所有鏡像存儲裝置之后寫入完成消息被發(fā)送到主機(jī)的情況的示例。在圖3A的示例中,當(dāng)SSD I和SSD2完成主機(jī)所請求寫入的數(shù)據(jù)的寫入的時候,寫入完成消息被發(fā)送到主機(jī)。
[0085]具體地講,當(dāng)具有慢寫入完成速度的SSD 2完成數(shù)據(jù)I的寫入時,數(shù)據(jù)I的寫入完成消息被發(fā)送到主機(jī)。同樣地,當(dāng)具有慢寫入完成速度的SSD 2完成數(shù)據(jù)2的寫入時,數(shù)據(jù)2的寫入完成消息被發(fā)送到主機(jī)。
[0086]主機(jī)可以以阻止方式將數(shù)據(jù)寫入請求發(fā)送到SSD I和SSD 2。具體地講,主機(jī)可僅在接收到主機(jī)先前請求寫入的數(shù)據(jù)的寫入完成消息之后將對數(shù)據(jù)的寫入請求發(fā)送到SSD I和 SSD 2。
[0087]在圖3A的示例中,在SSD 2完成數(shù)據(jù)I的寫入之后,主機(jī)將對數(shù)據(jù)2的寫入請求發(fā)送到SSD I和SSD 2。在圖3A中示出的示例中,即使SSD I在完成數(shù)據(jù)I的寫入之后發(fā)生故障,由于數(shù)據(jù)I的寫入完成消息未被發(fā)送到主機(jī)直到SSD 2完成數(shù)據(jù)I的寫入為止,因此主機(jī)存儲器中的數(shù)據(jù)I不被擦除或修改。因此,數(shù)據(jù)2的寫入命令可被發(fā)送到SSD 2,從而防止數(shù)據(jù)2的丟失。
[0088]然而,即使SSD I較早地完成數(shù)據(jù)寫入,也不發(fā)送對下一數(shù)據(jù)的寫入請求,直到SSD 2完成數(shù)據(jù)寫入為止。因此,整個存儲裝置的寫入完成速度降低。
[0089]圖3B示出在多個鏡像存儲裝置之一完成數(shù)據(jù)寫入之后寫入完成消息被立即發(fā)送到主機(jī)的情況的示例。
[0090]與圖3A的情況不同,在圖3B的情況下,在SSD I和SSD 2中的任一個完成數(shù)據(jù)寫入之后,寫入完成消息被立即發(fā)送到主機(jī)。另外,當(dāng)接收到寫入完成消息時,主機(jī)發(fā)送對另一數(shù)據(jù)的寫入請求(因而以阻止方式操作)。
[0091]具體地講,由于對于主機(jī)所請求寫入的數(shù)據(jù)1、2和3,SSD I的寫入完成速度快于SSD 2寫入完成速度,因此,當(dāng)SSD I完成數(shù)據(jù)1、數(shù)據(jù)2和數(shù)據(jù)3中的每個數(shù)據(jù)的寫入的時候,數(shù)據(jù)1、數(shù)據(jù)2和數(shù)據(jù)3中的每個數(shù)據(jù)的寫入完成消息被發(fā)送到主機(jī)。
[0092]當(dāng)接收到數(shù)據(jù)I的寫入完成消息時,主機(jī)做出對數(shù)據(jù)2的寫入請求,數(shù)據(jù)2的寫入命令被發(fā)送到SSD I。另外,當(dāng)接收到數(shù)據(jù)2的寫入完成消息時,主機(jī)做出對數(shù)據(jù)3的寫入請求,數(shù)據(jù)3的寫入命令被發(fā)送到SSD I。
[0093]在此情況下,與圖3A的情況相比,整個存儲裝置的寫入完成速度提高。然而,如果在數(shù)據(jù)2和數(shù)據(jù)3中的每個數(shù)據(jù)的寫入命令被發(fā)送到SSD 2之前SSD I發(fā)生故障,則數(shù)據(jù)2和數(shù)據(jù)3會丟失。
[0094]具體地講,如果主機(jī)已經(jīng)接收到數(shù)據(jù)1、數(shù)據(jù)2和數(shù)據(jù)3中的每個數(shù)據(jù)的寫入完成消息,則存儲在主機(jī)存儲器中的數(shù)據(jù)2和數(shù)據(jù)3可被擦除或修改。因此,當(dāng)如圖3B的示例中SSD I在完成數(shù)據(jù)3的寫入之后發(fā)生故障時,如果數(shù)據(jù)2和數(shù)據(jù)3未被保持在主機(jī)存儲器中,則數(shù)據(jù)2和數(shù)據(jù)3的寫入命令不能被發(fā)送到尚未接收到數(shù)據(jù)2和數(shù)據(jù)3的寫入命令的SSD 2。在此情況下,數(shù)據(jù)2和數(shù)據(jù)3會丟失。
[0095]圖3C示出以非阻止方式發(fā)送寫入請求的情況的示例。
[0096]參照圖3C,主機(jī)可在接收到寫入完成消息之前做出對另一數(shù)據(jù)的寫入請求。如圖3C的示例中,主機(jī)可在接收到請求寫入的數(shù)據(jù)I的寫入完成消息之前做出與每個SSD的命令隊列的深度相應(yīng)的對另一數(shù)據(jù)的寫入請求。
[0097]SSD I和SSD 2中的每一個可將主機(jī)所請求寫入的數(shù)據(jù)的寫入命令存儲在其命令隊列中,然后,寫入數(shù)據(jù)。另外,當(dāng)SSD I和SSD 2之一完成數(shù)據(jù)寫入時,其可將寫入完成消息發(fā)送到主機(jī)。
[0098]即使在此情況下,仍然存在超過命令隊列的深度的數(shù)據(jù)丟失的風(fēng)險。在圖3C中,假設(shè)SSD I和SSD 2中的每一個的命令隊列的深度是四。在此情況下,當(dāng)SSD I完成數(shù)據(jù)I的寫入時,數(shù)據(jù)I的寫入完成消息被發(fā)送到主機(jī),數(shù)據(jù)5的寫入命令被發(fā)送到SSD I的命令隊列。另外,當(dāng)SSD I完成數(shù)據(jù)2的寫入時,數(shù)據(jù)2的寫入完成消息被發(fā)送到主機(jī),數(shù)據(jù)6的寫入命令被發(fā)送到SSD I的命令隊列。
[0099]然而,由于當(dāng)SSD I完成數(shù)據(jù)6的寫入并且SSD 2的命令隊列的深度是四的時候SSD 2正在寫入數(shù)據(jù)1,因此數(shù)據(jù)5和數(shù)據(jù)6的寫入命令不能被發(fā)送到SSD 2。
[0100]因此,當(dāng)SSD I在完成數(shù)據(jù)5和數(shù)據(jù)6的寫入之后發(fā)生故障時,如果數(shù)據(jù)5和數(shù)據(jù)6未被存儲在主機(jī)存儲器中,則數(shù)據(jù)5和數(shù)據(jù)6的寫入命令不能被發(fā)送到SSD 2。在此情況下,數(shù)據(jù)5和數(shù)據(jù)6會丟失。
[0101]圖4A和圖4B是示出設(shè)置內(nèi)存鎖定和發(fā)送寫入完成消息的處理的示圖。
[0102]在圖4A和圖4B的示例中,為了便于描述而假設(shè)多個鏡像存儲裝置包括兩個SSD。然而,本發(fā)明構(gòu)思的示例實(shí)施例不限于該假設(shè),鏡像存儲裝置也可包括兩個或更多個SSD,或者也可包括一個或更多個SSD以及一個或更多個HDD。
[0103]參照圖4A,當(dāng)從主機(jī)120接收到數(shù)據(jù)寫入請求時,數(shù)據(jù)鏡像控制設(shè)備110可對存儲在主機(jī)存儲器中的數(shù)據(jù)之中主機(jī)120所請求寫入的數(shù)據(jù)設(shè)置內(nèi)存鎖定。
[0104]例如,在圖4A中,當(dāng)從主機(jī)120接收到對數(shù)據(jù)I的寫入請求時,數(shù)據(jù)鏡像控制設(shè)備110可對存儲在主機(jī)存儲器中的數(shù)據(jù)I設(shè)置內(nèi)存鎖定。同樣地,當(dāng)從主機(jī)120接收到對數(shù)據(jù)2至數(shù)據(jù)4中的每個數(shù)據(jù)的寫入請求時,數(shù)據(jù)鏡像控制設(shè)備110可對數(shù)據(jù)2至數(shù)據(jù)4中的每個數(shù)據(jù)設(shè)置內(nèi)存鎖定。
[0105]當(dāng)SSD I和SSD 2完成數(shù)據(jù)寫入時,解除對數(shù)據(jù)的內(nèi)存鎖定。在圖4A的示例中,由于SSD 2的數(shù)據(jù)寫入完成速度慢于SSD I的數(shù)據(jù)寫入完成速度,因此數(shù)據(jù)鏡像控制設(shè)備110可在SSD 2完成數(shù)據(jù)I的寫入之后解除對數(shù)據(jù)I的內(nèi)存鎖定。另外,可在SSD 2完成數(shù)據(jù)2至數(shù)據(jù)4中的每個數(shù)據(jù)的寫入之后解除對數(shù)據(jù)2至數(shù)據(jù)4中的每個數(shù)據(jù)的內(nèi)存鎖定。
[0106]當(dāng)SSD I和SSD 2之一完成數(shù)據(jù)寫入時,數(shù)據(jù)鏡像控制設(shè)備110可將數(shù)據(jù)的寫入完成消息立即發(fā)送到主機(jī)120。在圖4A的示例中,由于對于數(shù)據(jù)I至數(shù)據(jù)4中的每個數(shù)據(jù),SSD I的寫入完成速度快于SSD 2的寫入完成速度,因此當(dāng)SSD I完成數(shù)據(jù)I的寫入時,數(shù)據(jù)鏡像控制設(shè)備110將數(shù)據(jù)I的寫入完成消息發(fā)送到主機(jī)120。同樣地,當(dāng)SSD I完成數(shù)據(jù)2至數(shù)據(jù)4中的每個數(shù)據(jù)的寫入時,數(shù)據(jù)鏡像控制設(shè)備110將數(shù)據(jù)2至數(shù)據(jù)4中的每個數(shù)據(jù)的寫入完成消息發(fā)送到主機(jī)120。
[0107]主機(jī)120不發(fā)送對另一數(shù)據(jù)的寫入請求,直到其接收到請求寫入的數(shù)據(jù)的寫入完成消息為止(因而以阻止方式操作)。具體地講,主機(jī)120僅在從數(shù)據(jù)鏡像控制設(shè)備110接收到數(shù)據(jù)I的寫入完成消息之后將對數(shù)據(jù)2的寫入請求發(fā)送到數(shù)據(jù)鏡像控制設(shè)備110。同樣地,主機(jī)120僅在接收到數(shù)據(jù)2的寫入完成消息之后將對數(shù)據(jù)3的寫入請求發(fā)送到數(shù)據(jù)鏡像控制設(shè)備110,并且僅在接收到數(shù)據(jù)3的寫入完成消息之后將對數(shù)據(jù)4的寫入請求發(fā)送到數(shù)據(jù)鏡像控制設(shè)備HO。
[0108]數(shù)據(jù)鏡像控制設(shè)備110將主機(jī)120所請求寫入的數(shù)據(jù)的寫入命令發(fā)送到SSD I和SSD 2。具體地講,數(shù)據(jù)鏡像控制設(shè)備110不發(fā)送下一數(shù)據(jù)的寫入命令,直到先前接收的寫入命令的執(zhí)行完成為止(因而以阻止方式操作)。在圖4A的示例中,在SSD I完成數(shù)據(jù)I的寫入之后,數(shù)據(jù)2的寫入命令被發(fā)送到SSD I。同樣地,在SSD 2完成數(shù)據(jù)I的寫入之后,數(shù)據(jù)2的寫入命令被發(fā)送到SSD 2。
[0109]參照圖4B,假設(shè)在數(shù)據(jù)2至數(shù)據(jù)4的寫入命令被發(fā)送到SSD 2之前SSDl發(fā)生故障。
[0110]在此情況下,不解除對數(shù)據(jù)2至數(shù)據(jù)4中的每個數(shù)據(jù)設(shè)置的內(nèi)存鎖定,直到SSD 2完成數(shù)據(jù)2至數(shù)據(jù)4的寫入為止。因此,數(shù)據(jù)鏡像控制設(shè)備110可將存儲在主機(jī)存儲器中的數(shù)據(jù)2至數(shù)據(jù)4的寫入命令發(fā)送到SSD 2。因此,與圖3B的情況不同,可防止由于SSD I的故障而導(dǎo)致的數(shù)據(jù)丟失。
[0111]換言之,保持對正被寫入的數(shù)據(jù)的內(nèi)存鎖定,直到兩個SSD全部完成對數(shù)據(jù)的寫入命令的執(zhí)行為止。因此,即使處理寫入命令的SSD首先發(fā)生故障,也可防止數(shù)據(jù)丟失。
[0112]另外,當(dāng)兩個SSD之一完成數(shù)據(jù)寫入時,寫入完成消息被立即發(fā)送到主機(jī)120,從而可寫入下一數(shù)據(jù)。這可提高整個存儲裝置的寫入完成速度。
[0113]圖5A和圖5B是示出在以非阻止方式發(fā)送寫入命令的情況下設(shè)置內(nèi)存鎖定和發(fā)送寫入完成消息的處理的示圖。
[0114]參照圖5A,主機(jī)120可不管是否已經(jīng)接收到主機(jī)120先前請求寫入的其他數(shù)據(jù)的寫入完成消息而將對數(shù)據(jù)的寫入請求發(fā)送到數(shù)據(jù)鏡像控制設(shè)備110。
[0115]另外,數(shù)據(jù)鏡像控制設(shè)備110可不管SSD I和SSD 2是否正在寫入數(shù)據(jù)而將主機(jī)120所請求寫入的數(shù)據(jù)的寫入命令發(fā)送到SSD I和SSD 2中的每一個。
[0116]具體地講,主機(jī)120所請求寫入的數(shù)據(jù)的寫入命令被存儲在SSD I和SSD2中的每一個的命令隊列中。另外,SSD I和SSD 2中的每一個使用存儲在命令隊列中的寫入命令來寫入數(shù)據(jù)。
[0117]根據(jù)本發(fā)明構(gòu)思的至少一個示例實(shí)施例,可考慮SSD I和SSD 2中的每一個的命令隊列的深度來將寫入命令發(fā)送到SSD I和SSD 2中的每一個。
[0118]在圖5A的示例中,SSD I和SSD 2中的每一個的命令隊列的深度是四,數(shù)據(jù)I至數(shù)據(jù)4的寫入命令首先被發(fā)送到SSD I和SSD 2的命令隊列。在SSDl完成對數(shù)據(jù)I的寫入命令的執(zhí)行之后,數(shù)據(jù)5的寫入命令被發(fā)送到SSD I的命令隊列。另外,在SSD I完成對數(shù)據(jù)2的寫入命令的執(zhí)行之后,數(shù)據(jù)6的寫入命令被發(fā)送到SSD I的命令隊列。
[0119]同樣地,當(dāng)SSD 2完成對數(shù)據(jù)I的寫入命令的執(zhí)行時,數(shù)據(jù)5的寫入命令被發(fā)送到SSD 2的命令隊列。另外,在SSD 2完成對數(shù)據(jù)2的寫入命令的執(zhí)行之后,數(shù)據(jù)6的寫入命令被發(fā)送到SSD 2的命令隊列。
[0120]當(dāng)從主機(jī)120發(fā)送了對數(shù)據(jù)I至數(shù)據(jù)6中的每個數(shù)據(jù)的寫入請求時,對存儲在主機(jī)存儲器中的數(shù)據(jù)I至數(shù)據(jù)6中的每個數(shù)據(jù)設(shè)置內(nèi)存鎖定,并且當(dāng)SSD I和SSD 2完成數(shù)據(jù)I至數(shù)據(jù)6中的每個數(shù)據(jù)的寫入時,解除內(nèi)存鎖定。
[0121]另外,當(dāng)SSD I和SSD 2之一完成主機(jī)120所請求寫入的數(shù)據(jù)的寫入時,數(shù)據(jù)鏡像控制設(shè)備110可將數(shù)據(jù)的寫入完成消息發(fā)送到主機(jī)120。
[0122]具體地講,在圖5A的示例中,當(dāng)SSD I完成數(shù)據(jù)I至數(shù)據(jù)6中的每個數(shù)據(jù)的寫入時,數(shù)據(jù)鏡像控制設(shè)備110可將數(shù)據(jù)I至數(shù)據(jù)6中的每個數(shù)據(jù)的寫入完成消息發(fā)送到主機(jī)120。
[0123]另一方面,當(dāng)所有存儲裝置完成數(shù)據(jù)I至數(shù)據(jù)6中的每個數(shù)據(jù)的寫入時(也就是說,當(dāng)在圖5A中示出的示例中相對于SSD I較慢的裝置SSD 2完成數(shù)據(jù)I至數(shù)據(jù)6中的每個數(shù)據(jù)的寫入時),解除對數(shù)據(jù)I至數(shù)據(jù)6中的每個數(shù)據(jù)設(shè)置的內(nèi)存鎖定。
[0124]參照圖5B,在數(shù)據(jù)5和數(shù)據(jù)6的寫入命令被發(fā)送到SSD 2的命令隊列之前,SSD I
發(fā)生故障。
[0125]在此情況下,不解除對存儲在主機(jī)存儲器中的數(shù)據(jù)5和數(shù)據(jù)6中的每個數(shù)據(jù)設(shè)置的內(nèi)存鎖定,直到SSD 2完成數(shù)據(jù)5和數(shù)據(jù)6中的每個數(shù)據(jù)的寫入為止。因此,數(shù)據(jù)鏡像控制設(shè)備110可通過將具有內(nèi)存鎖定的數(shù)據(jù)5和數(shù)據(jù)6的寫入命令發(fā)送到SSD 2來控制SSD2寫入數(shù)據(jù)5和數(shù)據(jù)6。
[0126]也就是說,與圖3C的情況不同,即使SSD I發(fā)生故障,由于對存儲在主機(jī)存儲器中的數(shù)據(jù)5和數(shù)據(jù)6中的每個數(shù)據(jù)設(shè)置的內(nèi)存鎖定被保持,因此具有內(nèi)存鎖定的數(shù)據(jù)5和數(shù)據(jù)6的寫入命令也可被發(fā)送到SSD 2,從而防止數(shù)據(jù)5和數(shù)據(jù)6的丟失。
[0127]另外,當(dāng)兩個SSD之一完成數(shù)據(jù)寫入時,數(shù)據(jù)的寫入完成消息被立即發(fā)送到主機(jī)120,從而可寫入下一數(shù)據(jù)。這可提高整個存儲裝置的寫入完成速度。
[0128]圖6A和圖6B是示出發(fā)送修剪命令(trim command)的處理的示圖。
[0129]參照圖6A,在數(shù)據(jù)2的寫入命令被發(fā)送到SSD 2之前,SSD I完成數(shù)據(jù)I至數(shù)據(jù)4的與入。
[0130]這里,數(shù)據(jù)鏡像控制設(shè)備110可基于與將數(shù)據(jù)2至數(shù)據(jù)4寫入到SSD I的寫入有關(guān)的信息來將修剪命令發(fā)送到SSD 2。
[0131]與HDD不同,諸如SSD的基于閃存的存儲裝置不能立即將數(shù)據(jù)記錄在非空的頁中。這樣的存儲裝置可僅在現(xiàn)有數(shù)據(jù)被擦除之后記錄數(shù)據(jù)。具體地講,以逐塊為基礎(chǔ)擦除SSD。因此,為了將數(shù)據(jù)重寫到非空的塊,從存儲在該塊中的數(shù)據(jù)排除了無效數(shù)據(jù)之外的數(shù)據(jù)應(yīng)當(dāng)被傳送到另一塊或SSD內(nèi)的緩存,然后,存儲在該塊中的數(shù)據(jù)應(yīng)當(dāng)被擦除。
[0132]這里,如果通過使用修剪命令能夠明確地通知哪個數(shù)據(jù)是無效數(shù)據(jù),則可減小在為了重寫的擦除操作期間應(yīng)當(dāng)被傳送到另一塊的數(shù)據(jù)的量。具體地講,將相同的數(shù)據(jù)存儲在SSD I和SSD 2中。因此,如果數(shù)據(jù)2至數(shù)據(jù)4被重寫到SSD 1,則在SSD 2的將寫入數(shù)據(jù)2至數(shù)據(jù)4的塊中存儲的數(shù)據(jù)可被理解為無效數(shù)據(jù)。
[0133]例如,如果數(shù)據(jù)被重寫到SSD I的第1000塊至第1500塊,則在尚未執(zhí)行數(shù)據(jù)2至數(shù)據(jù)4的寫入命令的SSD 2的第1000塊至第1500塊中存儲的數(shù)據(jù)是無效數(shù)據(jù)。
[0134]因此,在數(shù)據(jù)2至數(shù)據(jù)4的寫入命令被發(fā)送到SSD 2之前,數(shù)據(jù)鏡像控制設(shè)備110可使用修剪命令明確地通知SSD 2在數(shù)據(jù)2至數(shù)據(jù)4將被寫入到的地址存儲的數(shù)據(jù)是無效數(shù)據(jù)。修剪命令使SSD 2能夠減小在為了重寫的擦除操作期間應(yīng)當(dāng)被傳送到其他塊的數(shù)據(jù)的量,從而提高SSD 2的性能并減少SSD 2的損耗。
[0135]參照圖6B,當(dāng)尚未接收到數(shù)據(jù)5和數(shù)據(jù)6的寫入命令的SSD 2完成對數(shù)據(jù)I的寫入命令的執(zhí)行的時候,SSD I完成數(shù)據(jù)5和數(shù)據(jù)6的寫入。
[0136]因此,數(shù)據(jù)鏡像控制設(shè)備110可基于與將數(shù)據(jù)5和數(shù)據(jù)6寫入到SSD I的寫入有關(guān)的信息來將修剪命令發(fā)送到SSD 2。
[0137]圖7A至圖7C是示出快速存儲裝置的示圖。
[0138]參照圖7A,數(shù)據(jù)鏡像控制設(shè)備110可將對于完成主機(jī)120所請求寫入的數(shù)據(jù)的寫入最快的存儲裝置設(shè)置為快速存儲裝置。
[0139]具體地講,在圖7A中,由于SSD I首先完成數(shù)據(jù)I和數(shù)據(jù)2的寫入,因此SSD I可被設(shè)置為快速存儲裝置。
[0140]另一方面,由于SSD 2首先完成數(shù)據(jù)3和數(shù)據(jù)4的寫入,因此當(dāng)SSD 2完成數(shù)據(jù)3的寫入的時候,數(shù)據(jù)鏡像控制設(shè)備110可將快速存儲裝置改變?yōu)镾SD 2。
[0141]參照圖7B,數(shù)據(jù)鏡像控制設(shè)備110可將寫入命令發(fā)送到被設(shè)置為快速存儲裝置的SSD 1,將讀取命令發(fā)送到SSD 2。例如,根據(jù)至少一個示例實(shí)施例,當(dāng)讀取和寫入命令被同時發(fā)送時,寫入命令可被發(fā)送到被設(shè)置為快速存儲裝置的存儲裝置,讀取命令可被發(fā)送到被設(shè)置為慢速存儲裝置(或未被設(shè)置為快速存儲裝置)的存儲裝置。
[0142]可根據(jù)(例如)WAF、自由塊的大小、寫入延遲的發(fā)生等,周期性地或非周期性地設(shè)置和改變快速存儲裝置。
[0143]在圖7B的示例中,當(dāng)初始被設(shè)置為快速存儲裝置的SSD I的WAF值低于SSD 2的WAF值時,快速存儲裝置可改變?yōu)镾SD 2。
[0144]此外,根據(jù)本發(fā)明構(gòu)思的至少一個示例實(shí)施例,當(dāng)SSD I具有寫入延遲時或者當(dāng)自由塊的大小由于通過SSD I執(zhí)行寫入命令而減小到預(yù)定大小或(可選地)參考大小或更小時,快速存儲裝置可改變?yōu)镾SD 2。
[0145]在圖7B的示例中,在SSD I完成數(shù)據(jù)2的寫入之后,快速存儲裝置改變?yōu)镾SD 2。因此,寫入命令可被發(fā)送到SSD 2。
[0146]這里,數(shù)據(jù)鏡像控制設(shè)備110可將具有內(nèi)存鎖定的數(shù)據(jù)I和數(shù)據(jù)2的寫入命令發(fā)送到SSD 2。
[0147]在此情況下,在快速存儲裝置改變之后,數(shù)據(jù)I和數(shù)據(jù)2的寫入命令可與主機(jī)120所請求寫入的數(shù)據(jù)3和數(shù)據(jù)4的寫入命令交替地發(fā)送。然而,根據(jù)本發(fā)明構(gòu)思的至少一個示例實(shí)施例,在圖7B中示出的示例的替代示例中,寫入到SSD I的數(shù)據(jù)I和數(shù)據(jù)2的寫入命令可被優(yōu)先發(fā)送到SSD 2。
[0148]當(dāng)快速存儲裝置改變?yōu)镾SD 2時,數(shù)據(jù)鏡像控制設(shè)備110可在將數(shù)據(jù)I和數(shù)據(jù)2的寫入命令發(fā)送到SSD 2之前,基于與將數(shù)據(jù)I和數(shù)據(jù)2寫入到SSDl的寫入有關(guān)的信息來將修剪命令發(fā)送到SSD 2。具體地講,如果數(shù)據(jù)I和數(shù)據(jù)2的寫入命令是重寫命令,則可以理解的是,在數(shù)據(jù)I和數(shù)據(jù)2被寫入到的SSD I中的地址先前存儲的數(shù)據(jù)是無效數(shù)據(jù)。因此,數(shù)據(jù)鏡像控制設(shè)備110可使用修剪命令明確地通知SSD 2在數(shù)據(jù)I和數(shù)據(jù)2將被寫入到的SSD 2中的地址存儲的數(shù)據(jù)是無效數(shù)據(jù)。接收修剪命令的SSD 2可減小在重寫數(shù)據(jù)2至數(shù)據(jù)4所需的擦除操作期間應(yīng)當(dāng)被傳送到其他塊的數(shù)據(jù)的量。結(jié)果,可提高SSD 2的性能,并可減少SSD 2的損耗。
[0149]當(dāng)快速存儲裝置改變?yōu)镾SD 2時,數(shù)據(jù)鏡像控制設(shè)備110可通過將垃圾回收命令發(fā)送到SSD I來控制SSD I執(zhí)行垃圾回收。
[0150]例如,當(dāng)快速存儲裝置改變?yōu)镾SD 2時,寫入命令被發(fā)送到SSD 2,讀取命令被發(fā)送到SSD I。因此,SSD I不執(zhí)行寫入操作。這里,在快速存儲裝置再次改變?yōu)镾SD I之前,數(shù)據(jù)鏡像控制設(shè)備110控制SSD I執(zhí)行垃圾回收。由于存儲無效數(shù)據(jù)的頁通過垃圾回收而被回收和擦除,因此可預(yù)先確保自由空間。這可提高在快速存儲裝置再次改變?yōu)镾SD I時SSD I的寫入性能。
[0151]在圖7B的示例中,即使快速存儲裝置改變?yōu)镾SD 2,最新的數(shù)據(jù)也被存儲在SSD I中,直到SSD 2完成數(shù)據(jù)I和數(shù)據(jù)2的寫入為止。
[0152]因此,如圖7C的示例中,數(shù)據(jù)鏡像控制設(shè)備110可通過在將快速存儲裝置改變?yōu)镾SD 2之前將具有內(nèi)存鎖定的數(shù)據(jù)I和數(shù)據(jù)2的寫入命令發(fā)送到SSD 2,來對存儲在SSD 2中的數(shù)據(jù)和存儲在SSD I中的數(shù)據(jù)進(jìn)行匹配。
[0153]然后,當(dāng)SSD 2完成數(shù)據(jù)I和數(shù)據(jù)2的寫入時,數(shù)據(jù)鏡像控制設(shè)備110可將快速存儲裝置改變?yōu)镾SD 2。
[0154]在此情況下,與圖7B的情況不同,最新的數(shù)據(jù)可被一直存儲在快速存儲裝置中。
[0155]數(shù)據(jù)鏡像控制設(shè)備110可在將數(shù)據(jù)I和數(shù)據(jù)2的寫入命令發(fā)送到SSD 2之前,基于與將數(shù)據(jù)I和數(shù)據(jù)2寫入到SSD I的寫入有關(guān)的信息來將修剪命令發(fā)送到SSD 2。
[0156]另外,當(dāng)快速存儲裝置改變?yōu)镾SD 2時,數(shù)據(jù)鏡像控制設(shè)備110可通過將垃圾回收命令發(fā)送到SSD I來控制SSD I執(zhí)行垃圾回收。
[0157]在圖7B和圖7C中,只有寫入命令被發(fā)送到快速存儲裝置,讀取命令被發(fā)送到其他存儲裝置。然而,本發(fā)明構(gòu)思的示例實(shí)施例不限于此。
[0158]例如,當(dāng)負(fù)載平衡在存儲裝置之間是必需的或期望的時或者當(dāng)存在對最近寫入到快速存儲裝置的數(shù)據(jù)的讀取請求時,讀取命令可被發(fā)送到快速存儲裝置。
[0159]圖8是示出在主機(jī)120發(fā)生故障的情況下數(shù)據(jù)恢復(fù)的示圖。
[0160]參照圖8,當(dāng)主機(jī)120由于意外故障而重新啟動時,數(shù)據(jù)鏡像控制設(shè)備110可基于存儲在快速存儲裝置中的數(shù)據(jù),對存儲在多個存儲裝置中的數(shù)據(jù)進(jìn)行匹配。
[0161]由于最新的數(shù)據(jù)被存儲在快速存儲裝置中,因此存儲在存儲裝置中的數(shù)據(jù)可與存儲在快速存儲裝置中的數(shù)據(jù)匹配。
[0162]具體地講,當(dāng)主機(jī)120重新啟動時,可將存儲在快速存儲裝置中的數(shù)據(jù)與存儲在其他存儲裝置中的數(shù)據(jù)進(jìn)行比較,以確定這兩組存儲的數(shù)據(jù)是否匹配。
[0163]這里,可通過存儲在每個存儲裝置中的快速存儲裝置指示符710識別存儲裝置中的哪個存儲裝置是快速存儲裝置。在圖8的示例中,具有設(shè)置為一的快速存儲裝置指示符710的SSD I是快速存儲裝置。
[0164]可使用更新位圖720確定在SSD I和SSD 2之間是否存在不匹配的數(shù)據(jù)。
[0165]具體地講,數(shù)據(jù)鏡像控制設(shè)備110可將多個存儲裝置130中的每個存儲裝置的整個數(shù)據(jù)區(qū)域劃分為N個塊(chunk),并通過使用與N個塊中的每個塊相應(yīng)的更新比特來確定在每個存儲裝置130的N個塊中的每個塊中存儲的數(shù)據(jù)是否與在另一存儲裝置130的N個塊中的相應(yīng)塊中存儲的數(shù)據(jù)匹配。
[0166]在圖8的示例中,SSD I和SSD 2中的每一個的數(shù)據(jù)區(qū)域被劃分為八個塊,并示出了用于八個塊的更新位圖720。
[0167]包括在更新位圖720中的每個比特對應(yīng)于一個塊,并表示在SSD I的塊中存儲的數(shù)據(jù)是否與在SSD 2的相應(yīng)塊中存儲的數(shù)據(jù)匹配。
[0168]具體地講,如果數(shù)據(jù)僅被寫入到SSD I和SSD 2中的SSD I (即,快速存儲裝置),則用于數(shù)據(jù)被寫入到的塊730和740的更新比特可被設(shè)置為一。
[0169]另一方面,如果數(shù)據(jù)被寫入到SSD I和SSD 2兩者,則用于數(shù)據(jù)被寫入到的塊的更新比特可被設(shè)置為零。此外,沒有數(shù)據(jù)寫入到的塊可被設(shè)置為零。
[0170]因此,不需要比較存儲在SSD I和SSD 2中的全部數(shù)據(jù)。而是可比較僅僅存儲在更新位圖720中的更新比特被設(shè)置為一的塊中的數(shù)據(jù),從而減少數(shù)據(jù)恢復(fù)時間。
[0171]當(dāng)主機(jī)120發(fā)生故障時對存儲在多個存儲裝置中的數(shù)據(jù)進(jìn)行匹配的方法不限于以上使用圖8中示出的更新位圖720的方法。
[0172]例如,由于對存儲在主機(jī)存儲器中的數(shù)據(jù)之中寫入到快速存儲裝置(而不是寫入到慢速存儲裝置)的數(shù)據(jù)保持內(nèi)存鎖定,因此具有內(nèi)存鎖定的數(shù)據(jù)不被擦除或修改,直到其被寫入到慢速存儲裝置為止。因此,數(shù)據(jù)鏡像控制設(shè)備110可記錄存儲在主機(jī)存儲器中的具有內(nèi)存鎖定的數(shù)據(jù)的列表,并將數(shù)據(jù)的列表存儲在非易失性存儲器或存儲裝置的區(qū)域中。然后,當(dāng)主機(jī)120重新啟動時,數(shù)據(jù)鏡像控制設(shè)備110可將列表上的數(shù)據(jù)的寫入命令發(fā)送到慢速存儲裝置,以對存儲在慢速存儲裝置中的數(shù)據(jù)與存儲在快速存儲裝置中的數(shù)據(jù)進(jìn)行匹配。
[0173]圖9是示出在多個存儲裝置包括SSD和HDD的情況下數(shù)據(jù)鏡像控制的示圖。
[0174]參照圖9,多個鏡像存儲裝置可包括至少一個HDD和至少一個SSD。
[0175]數(shù)據(jù)鏡像控制設(shè)備110可將HDD設(shè)置為快速存儲裝置,使得數(shù)據(jù)可被首先寫入到HDD。然后,數(shù)據(jù)鏡像控制設(shè)備110可將快速存儲裝置改變?yōu)镾SD,使得與寫入到HDD的數(shù)據(jù)相同的數(shù)據(jù)可被寫入到SSD。
[0176]數(shù)據(jù)鏡像控制設(shè)備110可將主機(jī)120隨機(jī)地請求寫入的數(shù)據(jù)的寫入命令轉(zhuǎn)換為順序?qū)懭朊?,并將順序?qū)懭朊畎l(fā)送到HDD。
[0177]具體地講,在圖9的示例中,寫入請求I’、2’和3’是對存儲了數(shù)據(jù)1、2和3的地址的重寫請求。這里,數(shù)據(jù)鏡像控制設(shè)備I1可將與對主機(jī)120所請求的數(shù)據(jù)的寫入請求1’、2’和3’相應(yīng)的寫入命令轉(zhuǎn)換為順序的寫入命令4、5和6,并將順序的寫入命令4、5和6發(fā)送到HDD。
[0178]通常,HDD比SSD具有更大的可用空間。因此,如果在HDD和SSD之間應(yīng)用數(shù)據(jù)鏡像,則在HDD中創(chuàng)建更多的可用空間。另外,根據(jù)HDD的物理屬性,HDD的順序?qū)懭胄阅軆?yōu)于HDD的隨機(jī)寫入性能。因此,數(shù)據(jù)鏡像控制設(shè)備110可將主機(jī)120隨機(jī)地請求寫入的數(shù)據(jù)轉(zhuǎn)換為日志形式(log form),使得數(shù)據(jù)可被連續(xù)地存儲。相應(yīng)地,HDD的寫入性能可提高。
[0179]當(dāng)快速存儲裝置被改變?yōu)镾SD時,數(shù)據(jù)鏡像控制設(shè)備110可基于與將數(shù)據(jù)寫入到HDD的寫入有關(guān)的信息,使用修剪命令將關(guān)于無效數(shù)據(jù)的信息發(fā)送到SSD。
[0180]在圖9的示例中,數(shù)據(jù)鏡像控制設(shè)備110可將表示存儲在HDD中的數(shù)據(jù)之中的數(shù)據(jù)1、2和3是無效數(shù)據(jù)的修剪命令發(fā)送到SSD,然后,將數(shù)據(jù)1、2和3的寫入命令發(fā)送到SSD。
[0181]以上方法可提聞HDD的與入性能并減少SSD的損耗。
[0182]圖10是示出根據(jù)本發(fā)明構(gòu)思的至少一個示例實(shí)施例的設(shè)置內(nèi)存鎖定的處理的流程圖。
[0183]參照圖10,當(dāng)從主機(jī)120接收到寫入請求(步驟910)時,數(shù)據(jù)鏡像控制設(shè)備110可對存儲在主機(jī)存儲器中的數(shù)據(jù)之中主機(jī)120所請求寫入的數(shù)據(jù)設(shè)置內(nèi)存鎖定(步驟920)。
[0184]在具有內(nèi)存鎖定的數(shù)據(jù)被寫入到全部的多個存儲裝置130 (步驟930)之后,數(shù)據(jù)鏡像控制設(shè)備110可解除對數(shù)據(jù)的內(nèi)存鎖定(步驟940)。
[0185]換言之,不解除對數(shù)據(jù)的內(nèi)存鎖定,直到數(shù)據(jù)被寫入到全部的存儲裝置130為止。
[0186]圖11是示出根據(jù)本發(fā)明構(gòu)思的至少一個示例實(shí)施例的發(fā)送寫入命令和寫入完成消息的處理的流程圖。參照圖11,數(shù)據(jù)鏡像控制設(shè)備110可將主機(jī)120所請求寫入的數(shù)據(jù)的寫入命令發(fā)送到多個存儲裝置130 (步驟1010)。
[0187]這里,主機(jī)120的寫入請求和主機(jī)120所請求寫入的數(shù)據(jù)的寫入命令可以以阻止方式或非阻止方式被發(fā)送到存儲裝置130中的每個存儲裝置。
[0188]當(dāng)存儲裝置130中的至少一個存儲裝置完成主機(jī)120所請求寫入的數(shù)據(jù)的寫入(步驟1020)時,數(shù)據(jù)鏡像控制設(shè)備110可將數(shù)據(jù)的寫入完成消息發(fā)送到主機(jī)120 (步驟1030)。
[0189]根據(jù)本發(fā)明構(gòu)思的至少一個示例實(shí)施例,當(dāng)存儲裝置130中的至少一個存儲裝置完成主機(jī)120所請求寫入的數(shù)據(jù)的寫入時,數(shù)據(jù)鏡像控制設(shè)備110可基于與將數(shù)據(jù)寫入到完成了寫入數(shù)據(jù)的存儲裝置的寫入有關(guān)的信息,將修剪命令發(fā)送到尚未接收到數(shù)據(jù)的寫入命令的存儲裝置(步驟1040)。
[0190]圖12是示出根據(jù)本發(fā)明構(gòu)思的至少一個示例實(shí)施例中的另一實(shí)施例的發(fā)送寫入命令和寫入完成消息的處理的流程圖。
[0191]參照圖12,數(shù)據(jù)鏡像控制設(shè)備110可將主機(jī)120所請求寫入的數(shù)據(jù)的寫入命令發(fā)送到快速存儲裝置(步驟1110)。
[0192]換言之,數(shù)據(jù)鏡像控制設(shè)備110可將寫入命令僅發(fā)送到多個存儲裝置130之中被設(shè)置為快速存儲裝置的存儲裝置。
[0193]根據(jù)本發(fā)明構(gòu)思的至少一個示例實(shí)施例,如果存儲裝置130包括至少一個HDD和至少一個SSD,則數(shù)據(jù)鏡像控制設(shè)備110可將HDD設(shè)置為快速存儲裝置,將主機(jī)120所請求的數(shù)據(jù)的寫入命令轉(zhuǎn)換為順序?qū)懭朊?,并將順序?qū)懭朊畎l(fā)送到HDD。
[0194]數(shù)據(jù)鏡像控制設(shè)備110可將存儲裝置130中的至少一個存儲裝置設(shè)置為快速存儲裝置,并且周期性地或非周期性地改變快速存儲裝置。
[0195]另外,根據(jù)本發(fā)明構(gòu)思的至少一個示例實(shí)施例,數(shù)據(jù)鏡像控制設(shè)備110可將讀取命令發(fā)送到存儲裝置130之中未被設(shè)置為快速存儲裝置的每個存儲裝置。
[0196]然而,本發(fā)明構(gòu)思的示例實(shí)施例不限于此。當(dāng)在存儲裝置130之間需要或期望負(fù)載平衡時或者當(dāng)存在對最近寫入到快速存儲裝置的數(shù)據(jù)的讀取請求時,讀取命令可被發(fā)送到快速存儲裝置。
[0197]當(dāng)快速存儲裝置完成主機(jī)120所請求寫入的數(shù)據(jù)的寫入(步驟1120)時,數(shù)據(jù)鏡像控制設(shè)備I1可將寫入完成消息發(fā)送到主機(jī)120 (步驟1130)。
[0198]圖13是示出根據(jù)本發(fā)明構(gòu)思的至少一個示例實(shí)施例的改變快速存儲裝置的處理的流程圖。參照圖13,數(shù)據(jù)鏡像控制設(shè)備110可將主機(jī)120所請求寫入的數(shù)據(jù)的寫入命令發(fā)送到多個鏡像存儲裝置130 (步驟1210)。
[0199]根據(jù)本發(fā)明構(gòu)思的至少一個示例實(shí)施例,最快地寫入請求的數(shù)據(jù)的存儲裝置可被設(shè)置為快速存儲裝置。
[0200]因此,當(dāng)存儲裝置130中的一個存儲裝置完成主機(jī)120所請求寫入的數(shù)據(jù)的寫入(步驟1220)時,可確定該存儲裝置是否是快速存儲裝置(步驟1230)。
[0201]如果多個存儲裝置中的首先完成請求的數(shù)據(jù)的寫入的存儲裝置當(dāng)前未被設(shè)置為快速存儲裝置,則可由例如數(shù)據(jù)鏡像控制設(shè)備110將快速存儲裝置改變?yōu)槭紫韧瓿烧埱蟮臄?shù)據(jù)的寫入的存儲裝置(步驟1240)。
[0202]圖14是示出根據(jù)本發(fā)明構(gòu)思的至少一個示例實(shí)施例的改變快速存儲裝置的處理的流程圖。
[0203]參照圖14,數(shù)據(jù)鏡像控制設(shè)備110可將主機(jī)120所請求寫入的數(shù)據(jù)的寫入命令發(fā)送到快速存儲裝置(步驟1310)。
[0204]然后,數(shù)據(jù)鏡像控制設(shè)備110可周期性地或非周期性地確定是否需要改變快速存儲裝置(步驟1320),并基于確定結(jié)果改變快速存儲裝置(步驟1330)。
[0205]具體地講,與圖12的情況不同,可根據(jù)例如WAF、自由塊的大小、寫入延遲的發(fā)生等來周期性地或非周期性地確定是否需要改變快速存儲裝置。
[0206]例如,當(dāng)快速存儲裝置的WAF值低于另一存儲裝置的WAF值時,數(shù)據(jù)鏡像控制設(shè)備110可改變快速存儲裝置。
[0207]在另一示例中,當(dāng)快速存儲裝置具有寫入延遲時或者當(dāng)自由塊的大小由于通過快速存儲裝置執(zhí)行寫入命令而減小到預(yù)定大小或(可選地)參考大小或更小時,數(shù)據(jù)鏡像控制設(shè)備110可改變快速存儲裝置。
[0208]當(dāng)快速存儲裝置改變?yōu)镾SD時,數(shù)據(jù)鏡像控制設(shè)備110可基于與將數(shù)據(jù)寫入到先前快速存儲裝置的寫入有關(guān)的信息來將修剪命令發(fā)送到SSD (步驟1340)。
[0209]另外,當(dāng)被設(shè)置為快速存儲裝置的SSD變?yōu)槁俅鎯ρb置時,數(shù)據(jù)鏡像控制設(shè)備110可將垃圾回收命令發(fā)送到SSD (步驟1350)。
[0210]圖15是是示出根據(jù)本發(fā)明構(gòu)思的至少一個示例實(shí)施例的改變快速存儲裝置的處理的流程圖。
[0211]參照圖15,數(shù)據(jù)鏡像控制設(shè)備110可將主機(jī)120所請求寫入的數(shù)據(jù)的寫入命令發(fā)送到快速存儲裝置(步驟1410)。
[0212]然后,數(shù)據(jù)鏡像控制設(shè)備110可周期性地或非周期性地確定是否需要改變快速存儲裝置(步驟1420)。
[0213]具體地講,可根據(jù)WAF、自由塊的大小、寫入延遲的發(fā)生等來周期性地或非周期性地確定是否需要改變快速存儲裝置。
[0214]例如,當(dāng)快速存儲裝置的WAF值低于另一存儲裝置的WAF值時,數(shù)據(jù)鏡像控制設(shè)備110可確定需要改變快速存儲裝置。
[0215]在另一示例中,當(dāng)快速存儲裝置具有寫入延遲時或者當(dāng)自由塊的大小由于通過快速存儲裝置執(zhí)行寫入命令而減小到預(yù)定大小或(可選地)參考大小或更小時,數(shù)據(jù)鏡像控制設(shè)備110可確定需要改變快速存儲裝置。
[0216]然后,數(shù)據(jù)鏡像控制設(shè)備110可將具有內(nèi)存鎖定的數(shù)據(jù)的寫入命令發(fā)送到將被設(shè)置為快速存儲裝置的存儲裝置(步驟1440)。
[0217]根據(jù)本發(fā)明構(gòu)思的至少一個示例實(shí)施例,如果將被設(shè)置為快速存儲裝置的存儲裝置是SSD,則數(shù)據(jù)鏡像控制設(shè)備110可在將具有內(nèi)存鎖定的數(shù)據(jù)的寫入命令發(fā)送到將被設(shè)置為快速存儲裝置的SSD之前,基于與將數(shù)據(jù)寫入到當(dāng)前快速存儲裝置的寫入有關(guān)的信息來將修剪命令發(fā)送到SSD (步驟1430)。
[0218]當(dāng)將被設(shè)置為快速存儲裝置的存儲裝置完成具有內(nèi)存鎖定的數(shù)據(jù)的寫入(步驟1450)時,數(shù)據(jù)鏡像控制設(shè)備110可將快速存儲裝置改變?yōu)樵摯鎯ρb置(步驟1460)。
[0219]這里,根據(jù)本發(fā)明構(gòu)思的至少一個示例實(shí)施例,當(dāng)被設(shè)置為快速存儲裝置的SSD變?yōu)槁俅鎯ρb置時,數(shù)據(jù)鏡像控制設(shè)備110可將垃圾回收命令發(fā)送到SSD (步驟1470)。
[0220]圖16是示出根據(jù)本發(fā)明構(gòu)思的至少一個示例實(shí)施例的在快速存儲裝置發(fā)生故障的情況下數(shù)據(jù)恢復(fù)處理的流程圖。參照圖16,當(dāng)多個存儲裝置130之一發(fā)生故障(步驟1510)時,數(shù)據(jù)鏡像控制設(shè)備110可確定發(fā)生故障的存儲裝置是否是快速存儲裝置(步驟1520)。
[0221]如果發(fā)生故障的存儲裝置是快速存儲裝置,則數(shù)據(jù)鏡像控制設(shè)備110可將具有內(nèi)存鎖定的數(shù)據(jù)的寫入命令發(fā)送到?jīng)]有發(fā)生故障的另一存儲裝置(步驟1530)。
[0222]對主機(jī)存儲器中數(shù)據(jù)的內(nèi)存鎖定表示數(shù)據(jù)尚未被寫入到存儲裝置130中的至少一個存儲裝置。
[0223]因此,數(shù)據(jù)鏡像控制設(shè)備110將具有內(nèi)存鎖定的數(shù)據(jù)的寫入命令發(fā)送到尚未接收到數(shù)據(jù)的寫入命令的存儲裝置,從而防止由于快速存儲裝置的故障而導(dǎo)致的數(shù)據(jù)的丟失。
[0224]對數(shù)據(jù)設(shè)置的內(nèi)存鎖定還表示數(shù)據(jù)的寫入命令已經(jīng)被發(fā)送到快速存儲裝置。因此,如果發(fā)生故障的存儲裝置不是快速存儲裝置,則不需要數(shù)據(jù)恢復(fù)過程。
[0225]圖17是示出根據(jù)本發(fā)明構(gòu)思的至少一個示例實(shí)施例的在主機(jī)120發(fā)生故障的情況下數(shù)據(jù)恢復(fù)處理的流程圖。
[0226]參照圖17,當(dāng)主機(jī)120由于故障(例如,意外故障)而重新啟動(步驟1610)時,數(shù)據(jù)鏡像控制設(shè)備110可確定存儲在多個存儲裝置130中的數(shù)據(jù)是否匹配(步驟1620)。
[0227]這里,根據(jù)本發(fā)明構(gòu)思的至少一個示例實(shí)施例,數(shù)據(jù)鏡像控制設(shè)備110可將存儲裝置130中的每個存儲裝置的整個數(shù)據(jù)區(qū)域劃分為多個塊,并通過使用與每個塊相應(yīng)的更新比特來確定存儲在存儲裝置130中的數(shù)據(jù)是否匹配。
[0228]根據(jù)另一實(shí)施例,數(shù)據(jù)鏡像控制設(shè)備110可記錄存儲在主機(jī)存儲器中的具有內(nèi)存鎖定的數(shù)據(jù)的列表,并將數(shù)據(jù)的列表存儲在非易失性存儲器或快速存儲裝置的區(qū)域中。因此,當(dāng)主機(jī)120重新啟動時,數(shù)據(jù)鏡像控制設(shè)備110可通過參考列表來確定存儲在存儲裝置130中的數(shù)據(jù)是否匹配。
[0229]當(dāng)存儲在存儲裝置130中的數(shù)據(jù)不匹配(步驟1630)時,數(shù)據(jù)鏡像控制設(shè)備110可基于存儲在快速存儲裝置中的數(shù)據(jù)將重寫命令發(fā)送到其他存儲裝置(步驟1640)。
[0230]具體地講,由于最新的數(shù)據(jù)被存儲在快速存儲裝置中,因此當(dāng)在快速存儲裝置的塊中存儲的數(shù)據(jù)與在另一存儲裝置的相應(yīng)塊中存儲的數(shù)據(jù)不匹配時,數(shù)據(jù)鏡像控制設(shè)備110可將在快速存儲裝置的塊中存儲的數(shù)據(jù)重寫到該另一存儲裝置的相應(yīng)塊,從而使在快速存儲裝置的塊中存儲的數(shù)據(jù)與在該另一存儲裝置的相應(yīng)塊中存儲的數(shù)據(jù)匹配。
[0231]根據(jù)本發(fā)明構(gòu)思的至少一個示例實(shí)施例,主機(jī)所請求寫入的數(shù)據(jù)被存儲在主機(jī)存儲器中,直到該數(shù)據(jù)被寫入到所有鏡像存儲裝置。因此,可防止由于存儲裝置中的任何一個的故障而導(dǎo)致的數(shù)據(jù)丟失。
[0232]另外,當(dāng)多個鏡像存儲裝置之一完成數(shù)據(jù)寫入時,數(shù)據(jù)的寫入完成消息被立即發(fā)送到主機(jī)。這可提高寫入性能。
[0233]此外,在適當(dāng)?shù)臅r候發(fā)送修剪命令和垃圾回收命令。因此,SSD的性能和壽命可提聞。
[0234]本發(fā)明構(gòu)思的至少一個示例實(shí)施例還可被實(shí)現(xiàn)為計算機(jī)可讀記錄介質(zhì)上的計算機(jī)可讀代碼。計算機(jī)可讀記錄介質(zhì)可以是能夠存儲之后可由計算機(jī)系統(tǒng)讀取的數(shù)據(jù)的任何數(shù)據(jù)存儲裝置。計算機(jī)可讀記錄介質(zhì)的示例包括只讀存儲器(ROM)、隨機(jī)存取存儲器(RAM)、⑶-ROM、磁帶、軟盤和光學(xué)數(shù)據(jù)存儲裝置。此外,用于完成實(shí)施本發(fā)明構(gòu)思的示例實(shí)施例的功能程序、代碼和代碼段可由本發(fā)明構(gòu)思的示例實(shí)施例所屬領(lǐng)域的編程技術(shù)人員容易地解釋。
[0235]根據(jù)至少一個示例實(shí)施例,數(shù)據(jù)鏡像控制設(shè)備110可包括控制數(shù)據(jù)鏡像控制設(shè)備110的操作的處理器。如這里使用的,術(shù)語“處理器”表示包括在結(jié)構(gòu)上被構(gòu)造為實(shí)施特定操作或在結(jié)構(gòu)上被構(gòu)造為執(zhí)行從計算機(jī)可讀代碼讀取的指令的電路的機(jī)器。上述處理器的示例包括(但不限于)微處理器、多處理器、中央處理單元(CPU)、數(shù)字信號處理器(DSP)、專用集成電路(ASIC)和場可編程門陣列(FPGA)。
[0236]根據(jù)至少一個示例實(shí)施例,控制主機(jī)120的操作的處理器也可以是控制數(shù)據(jù)鏡像控制設(shè)備110的處理器。根據(jù)至少一個示例實(shí)施例,控制主機(jī)120的操作的處理器可與控制數(shù)據(jù)鏡像控制設(shè)備110的處理器分開。
[0237]根據(jù)至少一個示例實(shí)施例,由數(shù)據(jù)鏡像控制設(shè)備110或其組件之一執(zhí)行的在此例如參照圖1至圖17中的任何一個描述的任何操作可由包括在數(shù)據(jù)鏡像控制設(shè)備110中的上述處理器執(zhí)行。例如,根據(jù)至少一個示例實(shí)施例,數(shù)據(jù)鏡像控制設(shè)備110可在軟件和/或硬件方面被編程,以執(zhí)行由數(shù)據(jù)鏡像控制設(shè)備110執(zhí)行的在此描述的功能中的任何或所有功能。
[0238]現(xiàn)在,將在下面論述數(shù)據(jù)鏡像控制設(shè)備110在軟件方面被編程以執(zhí)行由數(shù)據(jù)鏡像控制設(shè)備110執(zhí)行的在此描述的功能中的任何或所有功能的示例。例如,數(shù)據(jù)鏡像控制設(shè)備110可包括程序存儲單元,程序存儲單元可存儲包括與由數(shù)據(jù)鏡像控制設(shè)備110執(zhí)行的參照圖1至圖15描述的操作中的任何或所有操作相應(yīng)的可執(zhí)行指令的程序。根據(jù)至少一個示例實(shí)施例,除了被存儲在程序存儲單元中之外或者作為被存儲在程序存儲單元中的替代,可執(zhí)行指令可被存儲在計算機(jī)可讀介質(zhì)中,計算機(jī)可讀介質(zhì)包括例如光盤、閃存驅(qū)動器、SD卡等,并且數(shù)據(jù)鏡像控制設(shè)備110可包括用于讀取存儲在計算機(jī)可讀介質(zhì)上的數(shù)據(jù)的硬件。此外,包括在數(shù)據(jù)鏡像控制設(shè)備110中的處理器可被構(gòu)造為例如通過讀取和執(zhí)行在上述程序存儲單元和計算機(jī)可讀存儲介質(zhì)中的至少一個中存儲的可執(zhí)行指令,來執(zhí)行由數(shù)據(jù)鏡像控制設(shè)備110執(zhí)行的參照圖1至圖15描述的操作中的任何或所有操作,其中,計算機(jī)可讀存儲介質(zhì)被裝載到在數(shù)據(jù)鏡像控制設(shè)備110中包括的用于讀取計算機(jī)可讀介質(zhì)的硬件中。
[0239]現(xiàn)在,將在下面論述數(shù)據(jù)鏡像控制設(shè)備110在硬件方面被編程以執(zhí)行由數(shù)據(jù)鏡像控制設(shè)備110執(zhí)行的在此描述的功能中的任何或所有功能的示例。除了如上所述與由數(shù)據(jù)鏡像控制設(shè)備110執(zhí)行的參照圖1至圖17描述的功能對應(yīng)的存儲在程序存儲單元或計算機(jī)可讀介質(zhì)中的可執(zhí)行指令之外或作為其替代,包括在數(shù)據(jù)鏡像控制設(shè)備110中的處理器可包括具有專門用于執(zhí)行由數(shù)據(jù)鏡像控制設(shè)備110執(zhí)行的參照圖1至圖17描述的操作中的任何或所有操作的結(jié)構(gòu)設(shè)計的電路。例如,包括在數(shù)據(jù)鏡像控制設(shè)備I1的處理器中的上述電路可以是在物理上被編程為執(zhí)行由數(shù)據(jù)鏡像控制設(shè)備110執(zhí)行的參照圖1至圖17描述的操作中的任何或所有操作的FPGA或ASIC。
[0240]已經(jīng)這樣描述了示例實(shí)施例,將顯然的是,示例實(shí)施例可以以多種方式變化。這樣的變化不應(yīng)被視為脫離本發(fā)明構(gòu)思的示例實(shí)施例的期望的精神和范圍,并且將對本領(lǐng)域技術(shù)人員顯然的所有這樣的修改意在被包括在權(quán)利要求的范圍內(nèi)。
【權(quán)利要求】
1.一種數(shù)據(jù)鏡像控制設(shè)備,包括: 命令分發(fā)單元,被構(gòu)造為將第一寫入命令發(fā)送到多個鏡像存儲裝置,第一寫入命令包括用于主機(jī)所請求寫入的數(shù)據(jù)的指令; 內(nèi)存鎖定設(shè)置單元,被構(gòu)造為對存儲在主機(jī)存儲器中的數(shù)據(jù)之中主機(jī)所請求寫入的數(shù)據(jù)設(shè)置內(nèi)存鎖定,并被構(gòu)造為在具有內(nèi)存鎖定的數(shù)據(jù)被寫入到所述多個鏡像存儲裝置之后解除對數(shù)據(jù)的內(nèi)存鎖定。
2.如權(quán)利要求1所述的數(shù)據(jù)鏡像控制設(shè)備,其中,命令分發(fā)單元被構(gòu)造為當(dāng)所述多個鏡像存儲裝置之一完成請求的數(shù)據(jù)的寫入時,將請求的數(shù)據(jù)的寫入完成消息發(fā)送到主機(jī)。
3.如權(quán)利要求1所述的數(shù)據(jù)鏡像控制設(shè)備,還包括:修剪命令發(fā)送單元,被構(gòu)造為基于與將請求的數(shù)據(jù)寫入到所述多個鏡像存儲裝置之一的寫入有關(guān)的信息,將修剪命令發(fā)送到尚未接收到用于請求的數(shù)據(jù)的第一寫入命令的存儲裝置。
4.如權(quán)利要求1所述的數(shù)據(jù)鏡像控制設(shè)備,其中,命令分發(fā)單元被構(gòu)造為將用于具有內(nèi)存鎖定的數(shù)據(jù)的第一寫入命令發(fā)送到尚未接收到用于具有內(nèi)存鎖定的數(shù)據(jù)的第一寫入命令的存儲裝置。
5.如權(quán)利要求1所述的數(shù)據(jù)鏡像控制設(shè)備,還包括: 快速存儲裝置設(shè)置單元,被構(gòu)造為將所述多個鏡像存儲裝置中的至少一個設(shè)置為快速存儲裝置, 其中,命令分發(fā)單元被構(gòu)造為將第一寫入命令發(fā)送到快速存儲裝置。
6.如權(quán)利要求5所述的數(shù)據(jù)鏡像控制設(shè)備,其中,快速存儲裝置設(shè)置單元被構(gòu)造為基于響應(yīng)于寫入命令的寫入完成速度來設(shè)置快速存儲裝置。
7.如權(quán)利要求5所述的數(shù)據(jù)鏡像控制設(shè)備,其中,命令分發(fā)單元被構(gòu)造為在請求的數(shù)據(jù)被寫入到快速存儲裝置之后將寫入完成消息發(fā)送到主機(jī),寫入完成消息表示請求的數(shù)據(jù)已經(jīng)被寫入。
8.如權(quán)利要求5所述的數(shù)據(jù)鏡像控制設(shè)備,其中,快速存儲裝置設(shè)置單元被構(gòu)造為周期性地或非周期性地改變快速存儲裝置。
9.如權(quán)利要求8所述的數(shù)據(jù)鏡像控制設(shè)備,其中,所述設(shè)備被構(gòu)造為使得當(dāng)快速存儲裝置改變時,命令分發(fā)單元將用于具有內(nèi)存鎖定的數(shù)據(jù)的第一寫入命令發(fā)送到新的快速存儲裝置。
10.如權(quán)利要求8所述的數(shù)據(jù)鏡像控制設(shè)備,其中,所述設(shè)備被構(gòu)造為使得當(dāng)所述設(shè)備確定改變快速存儲裝置的條件已經(jīng)滿足時,命令分發(fā)單元將用于具有內(nèi)存鎖定的數(shù)據(jù)的第一寫入命令發(fā)送到第一存儲裝置,并且當(dāng)?shù)谝淮鎯ρb置完成具有內(nèi)存鎖定的數(shù)據(jù)的寫入時,快速存儲裝置設(shè)置單元通過將第一存儲裝置設(shè)置為快速存儲裝置來改變快速存儲裝置。
11.如權(quán)利要求5所述的數(shù)據(jù)鏡像控制設(shè)備,其中,所述設(shè)備被構(gòu)造為使得當(dāng)快速存儲裝置發(fā)生故障時,命令分發(fā)單元將用于具有內(nèi)存鎖定的數(shù)據(jù)的第一寫入命令發(fā)送到?jīng)]有發(fā)生故障的另一存儲裝置。
12.如權(quán)利要求5所述的數(shù)據(jù)鏡像控制設(shè)備,其中,所述設(shè)備被構(gòu)造為使得當(dāng)主機(jī)發(fā)生故障時,命令分發(fā)單元確定在所述多個鏡像存儲裝置的每個鏡像存儲裝置中存儲的數(shù)據(jù)是否相同,如果在所述多個鏡像存儲裝置中存儲的數(shù)據(jù)不相同,則基于存儲在快速存儲裝置中的數(shù)據(jù)將寫入命令發(fā)送到一個或更多個其他存儲裝置,其中,所述一個或更多個其他存儲裝置是所述多個鏡像存儲裝置中的未被設(shè)置為快速存儲裝置的存儲裝置。
13.如權(quán)利要求5所述的數(shù)據(jù)鏡像控制設(shè)備,其中, 所述多個鏡像存儲裝置包括至少一個硬盤驅(qū)動器HDD, 所述設(shè)備被構(gòu)造為使得當(dāng)HDD是由快速存儲裝置設(shè)置單元設(shè)置為快速存儲裝置的鏡像存儲裝置時,命令分發(fā)單元將隨機(jī)寫入命令轉(zhuǎn)換為順序?qū)懭朊?,并將順序?qū)懭朊畎l(fā)送到HDD,其中,隨機(jī)寫入命令包括用于主機(jī)請求隨機(jī)地寫入的數(shù)據(jù)的指令,順序?qū)懭朊畎ㄓ糜谥鳈C(jī)請求順序地寫入的數(shù)據(jù)的指令。
14.一種數(shù)據(jù)鏡像控制設(shè)備,包括: 命令分發(fā)單元,被構(gòu)造為將主機(jī)所請求寫入的數(shù)據(jù)的寫入命令發(fā)送到多個鏡像存儲裝置,并在請求的數(shù)據(jù)被寫入到所述多個鏡像存儲裝置之一之后,發(fā)送請求的數(shù)據(jù)的寫入完成消息; 修剪命令發(fā)送單元,被構(gòu)造為基于與將請求的數(shù)據(jù)寫入到所述多個鏡像存儲裝置之一的寫入有關(guān)的信息,將修剪命令發(fā)送到未接收到請求的數(shù)據(jù)的寫入命令的存儲裝置。
15.如權(quán)利要求14所述的數(shù)據(jù)鏡像控制設(shè)備,還包括: 快速存儲裝置設(shè)置單元,被構(gòu)造為將所述多個鏡像存儲裝置中的至少一個設(shè)置為快速存儲裝置,并被構(gòu)造為周期性地或非周期性地改變快速存儲裝置,其中,命令分發(fā)單元被構(gòu)造為將主機(jī)所請求寫入的數(shù)據(jù)的寫入命令發(fā)送到快速存儲裝置。
16.如權(quán)利要求15所述的數(shù)據(jù)鏡像控制設(shè)備,其中,所述設(shè)備被構(gòu)造為使得當(dāng)快速存儲裝置從所述多個鏡像存儲裝置中的第一鏡像存儲裝置改變?yōu)樗龆鄠€鏡像存儲裝置中的不同的鏡像存儲裝置時,修剪命令發(fā)送單元基于與將請求的數(shù)據(jù)寫入到先前快速存儲裝置的寫入有關(guān)的信息,將修剪命令發(fā)送到新的快速存儲裝置。
17.如權(quán)利要求15所述的數(shù)據(jù)鏡像控制設(shè)備,還包括: 垃圾回收命令發(fā)送單元,被構(gòu)造為使得當(dāng)快速存儲裝置從所述多個鏡像存儲裝置中的第一鏡像存儲裝置改變?yōu)樗龆鄠€鏡像存儲裝置中的不同的鏡像存儲裝置時,垃圾回收命令發(fā)送單元將垃圾回收命令發(fā)送到不再是快速存儲裝置的存儲裝置。
18.一種數(shù)據(jù)鏡像控制設(shè)備,包括: 命令分發(fā)單元,被構(gòu)造為響應(yīng)于來自主機(jī)的寫入請求將第一寫入命令發(fā)送到多個鏡像存儲裝置,其中,第一寫入命令指示所述多個鏡像存儲裝置存儲請求的數(shù)據(jù),請求的數(shù)據(jù)是在主機(jī)存儲的第一數(shù)據(jù),寫入請求表示第一數(shù)據(jù)被寫入到所述多個鏡像存儲裝置中的至少一個鏡像存儲裝置的請求; 內(nèi)存鎖定設(shè)置單元,被構(gòu)造為響應(yīng)于寫入請求對位于主機(jī)中的第一數(shù)據(jù)設(shè)置內(nèi)存鎖定,并被構(gòu)造為響應(yīng)于第一數(shù)據(jù)被寫入到所述多個鏡像存儲裝置,解除對位于主機(jī)中的第一數(shù)據(jù)的內(nèi)存鎖定。
19.如權(quán)利要求18所述的數(shù)據(jù)鏡像控制設(shè)備,其中,命令分發(fā)單元被構(gòu)造為在接收到表示所述多個鏡像存儲裝置中的第一鏡像存儲裝置完成第一數(shù)據(jù)的寫入的寫入完成消息之后,將第二寫入命令發(fā)送到第一鏡像存儲裝置,其中,第一鏡像存儲裝置是所述多個鏡像存儲裝置中的相對于所述多個鏡像存儲裝置中的其余存儲裝置在最早的時間點(diǎn)完成第一數(shù)據(jù)的寫入的存儲裝置。
20.如權(quán)利要求18所述的數(shù)據(jù)鏡像控制設(shè)備,其中,內(nèi)存鎖定設(shè)置單元被構(gòu)造為響應(yīng)于確定所述多個鏡像存儲裝置中的接收到第一寫入命令且未被禁用的每個裝置已經(jīng)完成第一數(shù)據(jù)的寫入,解除對位于主機(jī)中的第一數(shù)據(jù)的內(nèi)存鎖定。
【文檔編號】G06F12/02GK104516793SQ201410509938
【公開日】2015年4月15日 申請日期:2014年9月28日 優(yōu)先權(quán)日:2013年9月27日
【發(fā)明者】李柱坪 申請人:三星電子株式會社