非易失性存儲(chǔ)器系統(tǒng)中的同步鏡像的制作方法
【專利說(shuō)明】非易失性存儲(chǔ)器系統(tǒng)中的同步鏡像
[0001]相關(guān)申請(qǐng)的交叉引用
[0002]本申請(qǐng)要求2013年3月15日提交的US 13/842,079的優(yōu)先權(quán),其全部?jī)?nèi)容在此引入以供參考。
技術(shù)領(lǐng)域
[0003]本文獻(xiàn)通常涉及非易失性存儲(chǔ)器系統(tǒng)。
【背景技術(shù)】
[0004]計(jì)算機(jī)系統(tǒng)通常使用存儲(chǔ)器模塊來(lái)存儲(chǔ)數(shù)據(jù)。一些存儲(chǔ)器模塊由包括非易失性存儲(chǔ)器,諸如閃存的存儲(chǔ)卡實(shí)現(xiàn)。
【發(fā)明內(nèi)容】
[0005]本公開(kāi)內(nèi)容描述用于通過(guò)跟蹤最近寫入存儲(chǔ)段的序號(hào),在非易失性存儲(chǔ)設(shè)備中執(zhí)行同步鏡像的方法、系統(tǒng)和設(shè)備。在一些實(shí)現(xiàn)中,主存儲(chǔ)設(shè)備定期地與用于同步鏡像的輔助存儲(chǔ)設(shè)備共享最近寫入的存儲(chǔ)段的序號(hào)。所共享的信息在輔助存儲(chǔ)設(shè)備中存儲(chǔ)為邏輯結(jié)構(gòu),稱為標(biāo)記。當(dāng)輔助存儲(chǔ)設(shè)備從崩潰恢復(fù)時(shí),恢復(fù)存儲(chǔ)設(shè)備已知的標(biāo)記與可用在主存儲(chǔ)設(shè)備的最近更新段的信息比較來(lái)確定自輔助存儲(chǔ)設(shè)備崩潰以來(lái),在主存儲(chǔ)設(shè)備更新的存儲(chǔ)塊。
[0006]在一個(gè)方面,接收第一數(shù)據(jù)使得存儲(chǔ)在第一不對(duì)稱存儲(chǔ)設(shè)備中,其中,不對(duì)稱存儲(chǔ)設(shè)備中讀操作的延遲(latency)不同于寫操作的延遲。將第一寫入階段識(shí)別為當(dāng)前寫入階段。將包括在第一不對(duì)稱存儲(chǔ)設(shè)備中的第一段識(shí)別為可用于寫入數(shù)據(jù)的下一段,其中,段包括不對(duì)稱存儲(chǔ)設(shè)備中的物理存儲(chǔ)位置的邏輯映射并且與在單一操作中被擦除的物理存儲(chǔ)位置的一部分有關(guān)。將第一數(shù)據(jù)寫入第一段,其中,第一數(shù)據(jù)被寫入包括在第一段中的下一可用于寫入數(shù)據(jù)的第一存儲(chǔ)塊。與把第一數(shù)據(jù)寫入第一段中的下一可用存儲(chǔ)塊相關(guān),存儲(chǔ)與第一段和第一存儲(chǔ)塊有關(guān)的信息連同指示第一段和存儲(chǔ)塊在第一寫入階段被寫入的信息。
[0007]接收第二數(shù)據(jù)以使得存儲(chǔ)在不對(duì)稱存儲(chǔ)器中。識(shí)別第一寫入階段已經(jīng)完成并且第二寫入階段是當(dāng)前寫入階段。將包括在第一不對(duì)稱存儲(chǔ)設(shè)備中的第二段識(shí)別為可用于寫入數(shù)據(jù)的下一段。將第二數(shù)據(jù)寫入第二段,其中,數(shù)據(jù)被寫入包括在第二段中的下一可用于寫入數(shù)據(jù)的第二存儲(chǔ)塊。與把第二數(shù)據(jù)寫入第二段中的下一可用存儲(chǔ)塊相關(guān),存儲(chǔ)與第二段和第二存儲(chǔ)塊有關(guān)的信息連同指示第二段和第二存儲(chǔ)塊在第二寫入階段被寫入的信息。
[0008]實(shí)現(xiàn)可以包括下述特征的一個(gè)或多個(gè)。可以從同步鏡像模塊接收關(guān)于最近被填充數(shù)據(jù)的段的信息的請(qǐng)求。響應(yīng)請(qǐng)求,可以確定第一寫入階段和第二寫入階段的哪一個(gè)已經(jīng)完成以及哪一個(gè)是當(dāng)前寫入階段?;诖_定第一寫入階段已經(jīng)完成而且第二寫入階段是當(dāng)前寫入階段,可以檢索所存儲(chǔ)的與第一段和第一存儲(chǔ)塊有關(guān)的信息??梢詫⑴c第一段和第一存儲(chǔ)塊有關(guān)的信息連同指示第一段和第一存儲(chǔ)塊在第一寫入階段被寫入的信息發(fā)送到同步鏡像模塊。
[0009]同步鏡像模塊可以發(fā)送關(guān)于最近被填充數(shù)據(jù)的段的信息的第一查詢。響應(yīng)第一查詢,可以接收與第一段和第一存儲(chǔ)塊有關(guān)的信息??梢詫⑴c第一段和第一存儲(chǔ)塊有關(guān)的信息連同指示第一段和第一存儲(chǔ)塊在第一寫入階段被寫入的信息發(fā)送到第二不對(duì)稱存儲(chǔ)設(shè)備。第二不對(duì)稱存儲(chǔ)設(shè)備可以被配置成與第一不對(duì)稱存儲(chǔ)設(shè)備類似地存儲(chǔ)數(shù)據(jù),并且通過(guò)網(wǎng)絡(luò)連接,連接到第一不對(duì)稱存儲(chǔ)設(shè)備。與第一段和第一存儲(chǔ)塊有關(guān)的信息被存儲(chǔ)在第二不對(duì)稱存儲(chǔ)設(shè)備中,作為不同于配置用于存儲(chǔ)數(shù)據(jù)的存儲(chǔ)位置的第一存儲(chǔ)位置中的第一標(biāo)記。
[0010]同步鏡像模塊可以發(fā)送關(guān)于最近被填充數(shù)據(jù)的段的信息的第二查詢,其中,在發(fā)送第一查詢之后發(fā)送第二查詢。響應(yīng)第一查詢,接收與第二段和第二存儲(chǔ)塊有關(guān)的信息??梢耘c將與第二段和第二存儲(chǔ)塊有關(guān)的信息連同指示第二段和第二存儲(chǔ)塊在第二寫入階段被寫入的信息發(fā)送到第二不對(duì)稱存儲(chǔ)設(shè)備。與第二段和第二存儲(chǔ)塊有關(guān)的信息被存儲(chǔ)在第二不對(duì)稱存儲(chǔ)設(shè)備中,作為不同于配置用于存儲(chǔ)數(shù)據(jù)的存儲(chǔ)位置的第二存儲(chǔ)位置中的第二
ο
[0011]發(fā)送第一查詢或第二查詢可以包括由同步鏡像模塊確定是否已經(jīng)達(dá)到用于查詢有關(guān)最近填充數(shù)據(jù)的段的信息的閾值。基于確定已經(jīng)達(dá)到閾值,可以發(fā)送第一查詢或第二查詢。
[0012]指示第一段和第一存儲(chǔ)塊在第一寫入階段被寫入的信息可以連同第一標(biāo)記一起,存儲(chǔ)在第二不對(duì)稱存儲(chǔ)設(shè)備中,以及指示第二段和第二存儲(chǔ)塊在第二寫入階段被寫入的信息可以連同第二標(biāo)記一起,存儲(chǔ)在第二不對(duì)稱存儲(chǔ)設(shè)備中??梢詮挠呻S機(jī)存取存儲(chǔ)器(RAM)和非易失性不對(duì)稱存儲(chǔ)器組成的組,選擇第一和第二存儲(chǔ)位置。
[0013]可以在同步鏡像模塊處并且從第二不對(duì)稱存儲(chǔ)器接收包括第一標(biāo)記的副本的消息。消息可以指示第二不對(duì)稱存儲(chǔ)設(shè)備已經(jīng)從故障恢復(fù)?;诮邮盏较?,可以發(fā)送關(guān)于最近被填充數(shù)據(jù)的段的信息的新查詢。響應(yīng)新查詢,可以接收與新段和新存儲(chǔ)塊有關(guān)的信息,其中,在第一寫入階段期間寫入新段??梢詫乃邮盏牡谝粯?biāo)記的副本提取的與第一段和第一存儲(chǔ)塊有關(guān)的信息和與新段和新存儲(chǔ)塊有關(guān)的信息比較,當(dāng)在第一寫入階段或第二寫入階段中寫入數(shù)據(jù)時(shí),執(zhí)行這種比較?;诒容^,可以識(shí)別存儲(chǔ)在第一不對(duì)稱存儲(chǔ)設(shè)備中但未存儲(chǔ)在第二不對(duì)稱存儲(chǔ)設(shè)備中的數(shù)據(jù)。可以將所識(shí)別的數(shù)據(jù)發(fā)送到第二不對(duì)稱存儲(chǔ)設(shè)備。
[0014]從第二不對(duì)稱存儲(chǔ)設(shè)備接收的第一標(biāo)記的副本可以包括指示第一段和第一存儲(chǔ)塊在第一寫入階段被寫入的信息。發(fā)送新查詢可以包括發(fā)送有關(guān)在第一寫入階段中最近被填充數(shù)據(jù)的段的信息的新查詢。
[0015]與寫入第一段和第一存儲(chǔ)塊的數(shù)據(jù)相比,可以在較晚的時(shí)間,將數(shù)據(jù)寫入新段和新存儲(chǔ)塊。識(shí)別存儲(chǔ)在第一不對(duì)稱存儲(chǔ)設(shè)備中但未存儲(chǔ)在第二不對(duì)稱存儲(chǔ)設(shè)備中的數(shù)據(jù)可以包括基于與第一段和第一存儲(chǔ)塊有關(guān)的信息和與新段和新存儲(chǔ)塊有關(guān)的信息的比較,識(shí)別自第一標(biāo)記被發(fā)送到第二不對(duì)稱存儲(chǔ)設(shè)備以來(lái)并且在第二不對(duì)稱存儲(chǔ)設(shè)備接收第一標(biāo)記的副本前,已經(jīng)在第一不對(duì)稱存儲(chǔ)設(shè)備中寫入的物理存儲(chǔ)塊。可以使用與第一不對(duì)稱存儲(chǔ)設(shè)備有關(guān)的轉(zhuǎn)換表,執(zhí)行對(duì)應(yīng)于所識(shí)別的物理存儲(chǔ)塊的第一不對(duì)稱存儲(chǔ)設(shè)備中的邏輯存儲(chǔ)塊的查找,可以確定邏輯存儲(chǔ)塊是否保存有效數(shù)據(jù)?;谶壿嫶鎯?chǔ)塊保存有效數(shù)據(jù)的確定,可以將所識(shí)別的物理存儲(chǔ)塊和相應(yīng)的邏輯存儲(chǔ)塊發(fā)送到第二不對(duì)稱存儲(chǔ)設(shè)備。
[0016]物理存儲(chǔ)塊可以包括寫入頁(yè)。不對(duì)稱存儲(chǔ)設(shè)備中,轉(zhuǎn)換表提供段和寫入頁(yè)與邏輯存儲(chǔ)塊的映射。選擇第一段和第二段中的一個(gè)或多個(gè),用于在第一寫入階段和第二寫入階段中存儲(chǔ)數(shù)據(jù)。
[0017]與第一段和第一存儲(chǔ)塊有關(guān)的信息可以包括與第一段有關(guān)的第一序號(hào)和與第一段中的第一塊有關(guān)的第二序號(hào)。第二序號(hào)是從第一段中的初始?jí)K的偏移量。
[0018]第一和第二不對(duì)稱存儲(chǔ)設(shè)備的每一個(gè)包括基于閃存的系統(tǒng)。
[0019]另一方面,接收第一數(shù)據(jù)以存儲(chǔ)在第一不對(duì)稱存儲(chǔ)設(shè)備中,其中,不對(duì)稱存儲(chǔ)設(shè)備中讀操作的延遲不同于寫操作的延遲。將包括在第一不對(duì)稱存儲(chǔ)設(shè)備中的第一段識(shí)別為可用于寫入數(shù)據(jù)的下一段,其中,第一段作為第一段組的一部分被寫入,以及其中,段包括不對(duì)稱存儲(chǔ)設(shè)備中的物理存儲(chǔ)位置的邏輯映射并且與在單一操作中被擦除的物理存儲(chǔ)位置的一部分有關(guān)。將第一數(shù)據(jù)寫入第一段,其中,第一數(shù)據(jù)被寫入包括在第一段中的下一可用于寫入數(shù)據(jù)的第一存儲(chǔ)塊。與將第一數(shù)據(jù)寫入第一段中的下一可用存儲(chǔ)塊相關(guān),存儲(chǔ)與第一段和第一存儲(chǔ)塊有關(guān)的信息。
[0020]接收用于存儲(chǔ)在不對(duì)稱存儲(chǔ)器中的第二數(shù)據(jù)。確定第一段被該第一段中存儲(chǔ)的數(shù)據(jù)充滿。基于第一段被充滿的確定,選擇第一不對(duì)稱存儲(chǔ)設(shè)備中的第二段組,其中,將數(shù)據(jù)交替寫入第一段組和第二段組。將包括在第二段組中的第二段識(shí)別為可用于寫入數(shù)據(jù)的下一段。將第二數(shù)據(jù)寫入第二段,其中,數(shù)據(jù)被寫入包括在第二段中的下一可用于寫入數(shù)據(jù)的第二存儲(chǔ)塊。與將第二數(shù)據(jù)寫入第二段中的下一可用存儲(chǔ)塊相關(guān),存儲(chǔ)與第二段和第二存儲(chǔ)塊有關(guān)的信息。
[0021]實(shí)現(xiàn)可以包括下述特征的一個(gè)或多個(gè)??梢詮耐界R像模塊接收有關(guān)最近被填充數(shù)據(jù)的段的信息的請(qǐng)求。響應(yīng)請(qǐng)求,可以確定第一段和第二段中的哪一個(gè)最近填充數(shù)據(jù)。基于第一段最近被填充數(shù)據(jù)的確定,可以檢索與第一段和第一存儲(chǔ)塊有關(guān)的所存儲(chǔ)的信息??梢詫⑴c第一段和第一存儲(chǔ)塊有關(guān)的信息發(fā)送到同步鏡像模塊。
[0022]同步鏡像模塊可以將第一數(shù)據(jù)和第二數(shù)據(jù)發(fā)送到第二不對(duì)稱存儲(chǔ)設(shè)備,其中,第二不對(duì)稱存儲(chǔ)設(shè)備被配置成與第一不對(duì)稱存儲(chǔ)設(shè)備類似地存儲(chǔ)數(shù)據(jù),以及其中,通過(guò)網(wǎng)絡(luò)連接,連接第一不對(duì)稱存儲(chǔ)設(shè)備和第二不對(duì)稱存儲(chǔ)設(shè)備。同步鏡像模塊可以確定是否已經(jīng)達(dá)到用于查詢有關(guān)最近填充數(shù)據(jù)的段的信息的閾值?;诖_定已經(jīng)達(dá)到閾值,可以發(fā)送有關(guān)最近被填充數(shù)據(jù)的段的信息的請(qǐng)求。響應(yīng)請(qǐng)求,可以接收與第一段和第一存儲(chǔ)塊有關(guān)的信息。可以將與第一段和第一存儲(chǔ)塊有關(guān)的信息發(fā)送到第二不對(duì)稱存儲(chǔ)設(shè)備。與第一段和第一存儲(chǔ)塊有關(guān)的信息可以被存儲(chǔ)在第二不對(duì)稱存儲(chǔ)設(shè)備中,作為與被配置用于存儲(chǔ)數(shù)據(jù)的存儲(chǔ)位置不同的存儲(chǔ)位置中的第一標(biāo)記。
[0023]可以在同步鏡像模塊處并且從第二不對(duì)稱存儲(chǔ)器接收包括第一標(biāo)記的副本的消息。消息指示第二不對(duì)稱存儲(chǔ)設(shè)備已經(jīng)從故障恢復(fù)?;诮邮盏较ⅲ梢园l(fā)送有關(guān)最近被填充數(shù)據(jù)的段的信息的新請(qǐng)求。可以響應(yīng)新請(qǐng)求,接收與新段和新存儲(chǔ)塊有關(guān)的信息,其中,新段包括在第一段組中??梢詫乃邮盏牡谝粯?biāo)記的副本提取的、與第一段和第一存儲(chǔ)塊有關(guān)的信息和與新段和新存儲(chǔ)塊有關(guān)的信息比較。當(dāng)將數(shù)據(jù)寫入包括在第二段組中的段時(shí),可以執(zhí)行該比較?;诒容^,可以識(shí)別存儲(chǔ)在第一不對(duì)稱存儲(chǔ)設(shè)備的第一段組中但未存儲(chǔ)在第二不對(duì)稱存儲(chǔ)設(shè)備中的數(shù)據(jù)??梢詫⑺R(shí)別的數(shù)據(jù)發(fā)送到第二不對(duì)稱存儲(chǔ)設(shè)備。
[0024]與寫入第一段和第一存儲(chǔ)塊的數(shù)據(jù)相比,可以在較晚的時(shí)間,將數(shù)據(jù)寫入新段和新存儲(chǔ)塊。識(shí)別存儲(chǔ)在第一不對(duì)稱存儲(chǔ)設(shè)備的第一段組中但未存儲(chǔ)在第二不對(duì)稱存儲(chǔ)設(shè)備中的數(shù)據(jù)可以包括基于與第一段和第一存儲(chǔ)塊有關(guān)的信息和與新段和新存儲(chǔ)塊有關(guān)的信息的比較,識(shí)別自第一標(biāo)記被發(fā)送到第二不對(duì)稱存儲(chǔ)設(shè)備以來(lái)并且在第二不對(duì)稱存儲(chǔ)設(shè)備接收第一標(biāo)記的副本前,包括在已經(jīng)在第一不對(duì)稱存儲(chǔ)設(shè)備中寫入的第一段組中的段的存儲(chǔ)塊。可以使用與第一不對(duì)稱存儲(chǔ)設(shè)備有關(guān)的轉(zhuǎn)換表,執(zhí)行對(duì)應(yīng)于所識(shí)別的第一段組中的存儲(chǔ)塊的第一不對(duì)稱存儲(chǔ)設(shè)備中的物理存儲(chǔ)塊的查找??梢源_定物理存儲(chǔ)位置是否保存有效數(shù)據(jù)??梢詮奈锢泶鎯?chǔ)位置檢索有效數(shù)據(jù)。
[0025]存儲(chǔ)塊可以包括寫入頁(yè)。不對(duì)稱存儲(chǔ)設(shè)備中,轉(zhuǎn)換表提供段和寫入頁(yè)與物理存儲(chǔ)位置的映射。可以僅當(dāng)包括在最近存儲(chǔ)數(shù)據(jù)的第一段組中的段被充滿時(shí),才將數(shù)據(jù)存儲(chǔ)在包括在第二段組中的段中。
[0026]與第一段和第一存儲(chǔ)塊有關(guān)的信息可以包括與第一段有關(guān)的第一序號(hào)和與第一段中的第一塊有關(guān)的第二序號(hào)。第二序號(hào)是從第一段中的初始?jí)K的偏移量。
[0027]另一方面,接收用于在第一不對(duì)稱存儲(chǔ)設(shè)備中存儲(chǔ)的第一數(shù)據(jù),其中,不對(duì)稱存儲(chǔ)設(shè)備中讀操作的延遲不同于寫操作的延遲。將包括在第一不對(duì)稱存儲(chǔ)設(shè)備中的第一段識(shí)別為可用于寫入數(shù)據(jù)的下一段。段包括不對(duì)稱存儲(chǔ)設(shè)備中的物理存儲(chǔ)位置的邏輯映射并且與在單一操作中被擦除的物理存儲(chǔ)位置的一部分有關(guān)。
[0028]將第一數(shù)據(jù)寫入第一段,其中,第一數(shù)據(jù)被寫入包括在第一段中的下一可用于寫入數(shù)據(jù)的第一存儲(chǔ)塊。與將第一數(shù)據(jù)寫入第一段中的下一可用存儲(chǔ)塊相關(guān),存儲(chǔ)與第一段和第一存儲(chǔ)塊有關(guān)的信息。
[0029]具體實(shí)現(xiàn)可以包括下述特征的一個(gè)或多個(gè)??梢詮耐界R像模塊接收有關(guān)最近被填充數(shù)據(jù)的段的信息的請(qǐng)求。響應(yīng)請(qǐng)求,可以檢索所存儲(chǔ)的與第一段和第一存儲(chǔ)塊有關(guān)的信息??梢詫⑴c第一段和第一存儲(chǔ)塊有關(guān)的信息發(fā)送到同步鏡像模塊。
[0030]同步鏡像模塊可以發(fā)送有關(guān)最近被填充數(shù)據(jù)的段的信息的第一查詢。響應(yīng)第一查詢,可以接收與第一段和第一存儲(chǔ)塊有關(guān)的信息。可以將與第一段和第一存儲(chǔ)塊有關(guān)的信息發(fā)送到第二不對(duì)稱存儲(chǔ)設(shè)備。第二不對(duì)稱存儲(chǔ)設(shè)備可以被配置成存儲(chǔ)與第一不對(duì)稱存儲(chǔ)設(shè)備類似的數(shù)據(jù),并且通過(guò)網(wǎng)絡(luò)連接,連接到第一不對(duì)稱存儲(chǔ)設(shè)備。與第一段和第一存儲(chǔ)塊有關(guān)的信息被存儲(chǔ)在第二不對(duì)稱存儲(chǔ)設(shè)備中,作為第一存儲(chǔ)位置中的第一標(biāo)記。
[0031]發(fā)送第一查詢可以包括由同步鏡像模塊確定是否已經(jīng)達(dá)到用于查詢有關(guān)最近填充數(shù)據(jù)的段的信息的閾值。基于確定已經(jīng)達(dá)到閾值,可以發(fā)送第一查詢。
[0032]第一和第二不對(duì)稱存儲(chǔ)設(shè)備的每一個(gè)包括基于閃存的系統(tǒng)。
[0033]可以在同步鏡像模塊處并且從第二不對(duì)稱存儲(chǔ)器接收包括第一標(biāo)記的副本的消息。消息可以指示第二不對(duì)稱存儲(chǔ)設(shè)備已經(jīng)從故障恢復(fù)。基于接收到消息,可以發(fā)送有關(guān)最近被填充數(shù)據(jù)的段的信息的新查詢。響應(yīng)新查詢,可以接收與新段和新存儲(chǔ)塊有關(guān)的信息??梢詫乃邮盏牡谝粯?biāo)記的副本提取的、與第一段和第一存儲(chǔ)塊有關(guān)的信息和與新段和新存儲(chǔ)塊有關(guān)的信息比較?;诒容^,可以識(shí)別存儲(chǔ)在第一不對(duì)稱存儲(chǔ)設(shè)備中但未存儲(chǔ)在第二不對(duì)稱存儲(chǔ)設(shè)備中的數(shù)據(jù)。可以將所識(shí)別的數(shù)據(jù)發(fā)送到第二不對(duì)稱存儲(chǔ)設(shè)備。
[0034]與寫入第一段和第一存儲(chǔ)塊的數(shù)據(jù)相比,可以在較晚的時(shí)間,將數(shù)據(jù)寫入新段和新存儲(chǔ)塊。識(shí)別存儲(chǔ)在第一不對(duì)稱存儲(chǔ)設(shè)備中但未存儲(chǔ)在第二不對(duì)稱存儲(chǔ)設(shè)備中的數(shù)據(jù)可以包括基于與第一段和第一存儲(chǔ)塊有關(guān)的信息和與新段和新存儲(chǔ)塊有關(guān)的信息的比較,識(shí)別自第一標(biāo)記被發(fā)送到第二不對(duì)稱存儲(chǔ)設(shè)備以來(lái)并且在第二不對(duì)稱存儲(chǔ)設(shè)備接收第一標(biāo)記的副本前,已經(jīng)在第一不對(duì)稱存儲(chǔ)設(shè)備中寫入的物理存儲(chǔ)塊??梢允褂门c第一不對(duì)稱存儲(chǔ)設(shè)備有關(guān)的轉(zhuǎn)換表,查找對(duì)應(yīng)于所識(shí)別的物理存儲(chǔ)塊的第一不對(duì)稱存儲(chǔ)設(shè)備中的邏輯存儲(chǔ)塊??梢源_定邏輯存儲(chǔ)塊是否保存有效數(shù)據(jù)?;谶壿嫶鎯?chǔ)塊保存有效數(shù)據(jù)的確定,可以將所識(shí)別的物理存儲(chǔ)塊和相應(yīng)的邏輯存儲(chǔ)塊發(fā)送到第二不對(duì)稱存儲(chǔ)設(shè)備。
[0035]物理存儲(chǔ)塊可以包括寫入頁(yè)。不對(duì)稱存儲(chǔ)設(shè)備中,轉(zhuǎn)換表提供段和寫入頁(yè)與邏輯存儲(chǔ)塊的映射。與第一段和第一存儲(chǔ)塊有關(guān)的信息可以包括與第一段有關(guān)的第一序號(hào),以及與第一段中的第一塊有關(guān)的第二序號(hào)。第二序號(hào)可以是與第一段中的初始?jí)K的偏移量。
[0036]實(shí)現(xiàn)上述技術(shù)包括一個(gè)或多個(gè)方法、計(jì)算機(jī)程序產(chǎn)品和系統(tǒng)。在非瞬態(tài)機(jī)器可讀介質(zhì)中適當(dāng)?shù)貙?shí)現(xiàn)計(jì)算機(jī)程序產(chǎn)品并且包括可由一個(gè)或多個(gè)處理器執(zhí)行的指令。指令被配置成使一個(gè)或多個(gè)處理器執(zhí)行上述動(dòng)作。
[0037]系統(tǒng)包括一個(gè)或多個(gè)處理器和可由一個(gè)或多個(gè)處理器執(zhí)行的、在非瞬態(tài)機(jī)器可讀介質(zhì)中實(shí)現(xiàn)的指令。指令當(dāng)被執(zhí)行時(shí),被配置成使一個(gè)或多個(gè)處理器執(zhí)行上述動(dòng)作。系統(tǒng)還包括被配置成執(zhí)行上述動(dòng)作的一個(gè)或多個(gè)模塊。模塊可以與可由一個(gè)或多個(gè)處理器執(zhí)行的、在非瞬態(tài)機(jī)器可讀介質(zhì)中實(shí)現(xiàn)的指令有關(guān)。
[0038]在下述附圖和描述中闡述了在本說(shuō)明書中所述的主題的一個(gè)或多個(gè)方面的細(xì)節(jié)。從說(shuō)明書、附圖和權(quán)利要求,本主題的其他特征、方面和優(yōu)點(diǎn)將是顯而易見(jiàn)的。
【附圖說(shuō)明】
[0039]圖1示例將閃存用于存儲(chǔ)數(shù)據(jù)的系統(tǒng)的實(shí)例。
[0040]圖2A-2B示例包括閃存晶片(dice)的存儲(chǔ)設(shè)備的實(shí)例。
[0041]圖3示例在閃存晶片中存儲(chǔ)的存儲(chǔ)頁(yè)面的實(shí)例。
[0042]圖4示例在閃存晶片組上分布的數(shù)據(jù)分條中,冗余地存儲(chǔ)數(shù)據(jù)的一組閃存晶片的實(shí)例。
[0043]圖5使用段序號(hào),執(zhí)行同步鏡像的存儲(chǔ)器服務(wù)器的實(shí)例。
[0044]圖6示例可以用于將數(shù)據(jù)寫入存儲(chǔ)器服務(wù)器的存儲(chǔ)塊的示例性過(guò)程。
[0045]圖7示例可以用于識(shí)別實(shí)現(xiàn)同步鏡像的存儲(chǔ)器服務(wù)器中的活動(dòng)閃存段的示例性過(guò)程。
[0046]圖8示例可以用于執(zhí)行使用基于閃存存儲(chǔ)的主動(dòng)和被動(dòng)存儲(chǔ)器服務(wù)器之間的同步鏡像的示例性過(guò)程。
[0047]不同圖中相同的參考符號(hào)表示相同的元件。
【具體實(shí)施方式】
[0048]計(jì)算機(jī)系統(tǒng)通常包括用在數(shù)據(jù)和指令的存儲(chǔ)中的存儲(chǔ)器模塊。存儲(chǔ)器模塊包括通常用于在處理期間,臨時(shí)數(shù)據(jù)存儲(chǔ)的易失性存儲(chǔ)器和用于長(zhǎng)期數(shù)據(jù)存儲(chǔ)的磁存儲(chǔ)盤的動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)集成電路(ICs)。在一些計(jì)算機(jī)系統(tǒng)中,除或替代DRAM和磁存儲(chǔ)盤,非易失性隨機(jī)存取存儲(chǔ)器(NVRAM)系統(tǒng)用于數(shù)據(jù)存儲(chǔ)。NVRAM可以被配置成提供具有可與DRAM相比的存取粒度的高性能讀訪問(wèn)。同時(shí),NVRAM可以提供可與磁存儲(chǔ)盤相比的大的非易失性存儲(chǔ)容量,同時(shí)提供利用與磁存儲(chǔ)盤更少物理空間的高密度存儲(chǔ)。此外,NVRAM會(huì)消耗比DRAM和磁存儲(chǔ)盤更少的功率。計(jì)算機(jī)系統(tǒng)的NVRAM實(shí)現(xiàn)其中,包括閃存,諸如NAND閃存和NOR閃存,以及相變存儲(chǔ)器。
[0049]在一些實(shí)現(xiàn)中,閃存設(shè)備包括在其上貼作為集成電路存儲(chǔ)器芯片的閃存晶片的一個(gè)或多個(gè)存儲(chǔ)卡。在該上下文中,存儲(chǔ)器晶片可以表示或稱為存儲(chǔ)器芯片,以及可以互換地使用兩個(gè)術(shù)語(yǔ)“晶片”或“芯片”。閃存設(shè)備可以表示或稱為在其上貼閃存晶片的一個(gè)存儲(chǔ)卡,以及可以互換地使用術(shù)語(yǔ)“閃存設(shè)備”、“閃存卡” “存儲(chǔ)器設(shè)備”和“存儲(chǔ)卡”。
[0050]大規(guī)模處理數(shù)據(jù)的一些計(jì)算機(jī)系統(tǒng),諸如企業(yè)計(jì)算機(jī)系統(tǒng)或服務(wù)器群可以使用大量存儲(chǔ)器。這些系統(tǒng)可以使用托管多個(gè)存儲(chǔ)卡的存儲(chǔ)器設(shè)備,每一卡上具有大量閃存晶片或芯片。計(jì)算機(jī)系統(tǒng)可以實(shí)現(xiàn)如數(shù)據(jù)分條、數(shù)據(jù)鏡像和奇偶編碼(類似獨(dú)立磁盤冗余陣列)以便提供性能改進(jìn)和數(shù)據(jù)可靠性。
[0051]在某種意義上,數(shù)據(jù)分條(data striping)可以指邏輯地拆分順序數(shù)據(jù),例如文件,使得從不同物理存儲(chǔ)設(shè)備如安裝在存儲(chǔ)卡上的不同閃存晶片來(lái)存儲(chǔ)和訪問(wèn)順序邏輯段的管理和訪問(wèn)。由此通過(guò)分條創(chuàng)建的數(shù)據(jù)的每一邏輯部分稱為數(shù)據(jù)分條。
[0052]數(shù)據(jù)鏡像(data mirroring)是將邏輯存儲(chǔ)器卷實(shí)時(shí)復(fù)制到單獨(dú)的物理存儲(chǔ)器以確保連續(xù)可用性。鏡像卷是單獨(dú)卷副本的完整邏輯表示。用在閃存設(shè)備中的一種數(shù)據(jù)鏡像是同步鏡像,其中,用在主存儲(chǔ)器設(shè)備中的一種數(shù)據(jù)鏡像是同步鏡像,其中,在一個(gè)或多個(gè)輔助存儲(chǔ)器設(shè)備中克隆或復(fù)制在主存儲(chǔ)器設(shè)備中存儲(chǔ)的數(shù)據(jù)。在一些實(shí)現(xiàn)中,使用兩個(gè)服務(wù)器系統(tǒng)或多服務(wù)器系統(tǒng),實(shí)現(xiàn)同步鏡像,當(dāng)正在位于服務(wù)器的一個(gè)中的存儲(chǔ)卡中進(jìn)行寫入時(shí),將正在寫入的數(shù)據(jù)發(fā)送到網(wǎng)絡(luò)鏈路上的第二服務(wù)器,其中,在相對(duì)于第二服務(wù)器上的存儲(chǔ)卡,相同操作被執(zhí)行,使得如果第一服務(wù)器故障,第二服務(wù)器能接管并且恢復(fù)操作,而不丟失任何正在進(jìn)行的寫入。兩個(gè)服務(wù)器上的寫入操作同時(shí)發(fā)生。
[0053]在同步鏡像系統(tǒng)中,主存儲(chǔ)器設(shè)備可以稱為主動(dòng)服務(wù)器,而輔助存儲(chǔ)器設(shè)備可以稱為被動(dòng)服務(wù)器。主動(dòng)和被動(dòng)服務(wù)器上的邏輯相對(duì)于主動(dòng)服務(wù)器的本地存儲(chǔ)和被動(dòng)服務(wù)器的遠(yuǎn)程存儲(chǔ),協(xié)調(diào)用于存儲(chǔ)應(yīng)用數(shù)據(jù)的寫入操作。該系統(tǒng)必須相對(duì)于主動(dòng)服務(wù)器的本地存儲(chǔ)以及被動(dòng)服務(wù)器的遠(yuǎn)程存儲(chǔ),等待寫入操作完成。僅當(dāng)操作均完成時(shí),向發(fā)布應(yīng)用或操作系統(tǒng)確認(rèn)寫入操作。由于同步鏡像,存儲(chǔ)器寫入操作看來(lái)花費(fèi)更長(zhǎng)時(shí)間,因?yàn)樵诒镜卮鎯?chǔ)和遠(yuǎn)程存儲(chǔ)上執(zhí)行寫入操作。
[0054]故障可能發(fā)生在同步鏡像系統(tǒng)中并且能采用許多形式。例如,主動(dòng)服務(wù)器中的本地存儲(chǔ)元件可能崩潰,但與被動(dòng)服務(wù)器的網(wǎng)絡(luò)連接可用,因?yàn)槭潜粍?dòng)服務(wù)器和遠(yuǎn)程存儲(chǔ)元件。作為另一例子,網(wǎng)絡(luò)連接可能故障,使得僅在主動(dòng)服務(wù)器的本地存儲(chǔ)上,而不在被動(dòng)服務(wù)器的遠(yuǎn)程存儲(chǔ)上執(zhí)行寫入操作?;蛘?,可以在網(wǎng)絡(luò)上傳輸寫入操作,但在由遠(yuǎn)程端接收操作前,被動(dòng)服務(wù)器崩潰。
[0055]同步鏡像系統(tǒng)應(yīng)當(dāng)能重新創(chuàng)建當(dāng)崩潰發(fā)生并且已經(jīng)替換故障的存儲(chǔ)器設(shè)備或已經(jīng)重啟服務(wù)器后,主動(dòng)和被動(dòng)服務(wù)器上的存儲(chǔ)元件繼續(xù)同步的狀態(tài)。在該上下文中,處于同步是指當(dāng)在主動(dòng)和被動(dòng)服務(wù)器上查詢對(duì)應(yīng)于存儲(chǔ)器塊的特定邏輯塊地址時(shí),應(yīng)用或操作系統(tǒng)在主動(dòng)和被動(dòng)服務(wù)器中均能有效地獲得相同數(shù)據(jù)內(nèi)容,由該系統(tǒng)提供