一種設(shè)備掉電時(shí)的數(shù)據(jù)保存方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及存儲(chǔ)領(lǐng)域,尤其涉及一種設(shè)備掉電時(shí)的數(shù)據(jù)保存方法及裝置。
【背景技術(shù)】
[0002] 固態(tài)硬盤(Solid State Drive,SSD)作為系統(tǒng)盤已應(yīng)用的越來越廣泛。當(dāng)電源斷 電時(shí),系統(tǒng)盤還可以用來保存內(nèi)存數(shù)據(jù)。
[0003] 現(xiàn)有技術(shù)中,系統(tǒng)盤通??刹捎么笕萘俊⒏邘?、性能穩(wěn)定的企業(yè)級(jí)SSD或者小容 量、高帶寬的mSATA(mini-SATA,迷你版本SATA)接口 SSD。二者的優(yōu)缺點(diǎn)比較可如表1所 示:
[0005] 表 1
[0006] 由于企業(yè)級(jí)SSD的成本較高,通常是mSATA接口 SSD成本的2-3倍,因此,實(shí)際應(yīng) 用中,用戶通常使用小容量的mSATA接口 SSD替代大容量的企業(yè)級(jí)SSD,以降低硬件設(shè)計(jì)成 本和減小設(shè)計(jì)空間。
[0007] 但是,mSATA接口 SSD的寫性能波動(dòng)大,寫入速度下降明顯。當(dāng)電源斷電時(shí),很難 保證能快速的將內(nèi)存中的數(shù)據(jù)寫入mSATA接口 SSD中,有可能會(huì)導(dǎo)致內(nèi)存數(shù)據(jù)丟失。
【發(fā)明內(nèi)容】
[0008] 本發(fā)明實(shí)施例提供了一種設(shè)備掉電時(shí)的數(shù)據(jù)保存方法及裝置,當(dāng)電源上電時(shí),對(duì) 系統(tǒng)盤中的緩存區(qū)進(jìn)行Trim操作,并通過順序?qū)懙姆绞綄憹M所述緩存區(qū),可實(shí)現(xiàn)占用所述 系統(tǒng)盤內(nèi)的大段的連續(xù)可寫空間;當(dāng)電源斷電時(shí),對(duì)寫滿的所述緩存區(qū)進(jìn)行Trim操作,將 內(nèi)存中的數(shù)據(jù)寫入所述緩存區(qū),可實(shí)現(xiàn)將內(nèi)存數(shù)據(jù)快速的寫入所述系統(tǒng)盤。
[0009] 第一方面,提供了一種設(shè)備掉電時(shí)的數(shù)據(jù)保存方法,包括:
[0010] 當(dāng)檢測到設(shè)備的上電信號(hào)時(shí),將系統(tǒng)盤的緩存區(qū)內(nèi)的數(shù)據(jù)保存到第一備份位置; 所述系統(tǒng)盤是固態(tài)硬盤,包括:所述緩存區(qū)、操作系統(tǒng)存儲(chǔ)區(qū)和日志存儲(chǔ)區(qū),其中,所述操作 系統(tǒng)存儲(chǔ)區(qū)用于存儲(chǔ)操作系統(tǒng),所述日志存儲(chǔ)區(qū)用于存儲(chǔ)所述操作系統(tǒng)的系統(tǒng)日志;
[0011] 響應(yīng)所述上電信號(hào),對(duì)所述緩存區(qū)進(jìn)行Trim操作,并通過順序?qū)懙姆绞?,利用預(yù) 設(shè)大小的數(shù)據(jù)塊寫滿所述緩存區(qū);
[0012] 當(dāng)檢測到所述設(shè)備的斷電信號(hào)時(shí),對(duì)寫滿的所述緩存區(qū)進(jìn)行Trim操作,將內(nèi)存中 的數(shù)據(jù)寫入所述緩存區(qū)。
[0013] 結(jié)合第一方面,在第一種可能的實(shí)現(xiàn)方式中,所述系統(tǒng)盤還包括:預(yù)留區(qū);在所述 對(duì)所述緩存區(qū)進(jìn)行Trim操作時(shí),還包括:對(duì)所述預(yù)留區(qū)進(jìn)行Trim操作。
[0014] 結(jié)合第一方面,或者,結(jié)合第一方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí) 現(xiàn)方式中,在所述對(duì)所述緩存區(qū)進(jìn)行Trim操作時(shí),所述方法還包括:對(duì)所述操作系統(tǒng)存儲(chǔ) 區(qū)和所述日志存儲(chǔ)區(qū)進(jìn)行Trim操作;
[0015] 在所述對(duì)所述操作系統(tǒng)存儲(chǔ)區(qū)和所述日志存儲(chǔ)區(qū)進(jìn)行Trim操作之前,還包括:
[0016] 將所述操作系統(tǒng)存儲(chǔ)區(qū)中的數(shù)據(jù)和所述日志存儲(chǔ)區(qū)中的數(shù)據(jù)保存到第二備份位 置;
[0017] 在所述通過順序?qū)懙姆绞剑妙A(yù)設(shè)大小的數(shù)據(jù)塊寫滿所述緩存區(qū)之后,還包括: 將保存到所述第二備份位置處的所述操作系統(tǒng)存儲(chǔ)區(qū)中的數(shù)據(jù)和所述日志存儲(chǔ)區(qū)中的數(shù) 據(jù)分別重新寫入所述操作系統(tǒng)存儲(chǔ)區(qū)和所述日志存儲(chǔ)區(qū)。
[0018] 結(jié)合第一方面的第二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,所述第二 備份位置是所述內(nèi)存。
[0019] 結(jié)合第一方面,在第四種可能的實(shí)現(xiàn)方式中,在所述將系統(tǒng)盤的緩存區(qū)內(nèi)的數(shù)據(jù) 保存到第一備份位置之前,所述方法還包括:對(duì)所述系統(tǒng)盤進(jìn)行邏輯分區(qū),分區(qū)后的所述系 統(tǒng)盤包括:所述緩存區(qū)、所述操作系統(tǒng)存儲(chǔ)區(qū)和所述日志存儲(chǔ)區(qū)。
[0020] 第二方面,提供了一種數(shù)據(jù)保存裝置,包括:
[0021] 第一保存單元,用于當(dāng)檢測到設(shè)備的上電信號(hào)時(shí),將系統(tǒng)盤的緩存區(qū)內(nèi)的數(shù)據(jù)保 存到第一備份位置;所述系統(tǒng)盤是固態(tài)硬盤,包括:所述緩存區(qū)、操作系統(tǒng)存儲(chǔ)區(qū)和日志存 儲(chǔ)區(qū),其中,所述操作系統(tǒng)存儲(chǔ)區(qū)用于存儲(chǔ)操作系統(tǒng),所述日志存儲(chǔ)區(qū)用于存儲(chǔ)所述操作系 統(tǒng)的系統(tǒng)日志;
[0022] 第一 Trim單元,用于響應(yīng)所述上電信號(hào),對(duì)所述緩存區(qū)進(jìn)行Trim操作;
[0023] 第一寫單元,用于在所述第一 Trim單元對(duì)所述緩存區(qū)進(jìn)行Trim操作之后,通過順 序?qū)懙姆绞?,利用預(yù)設(shè)大小的數(shù)據(jù)塊寫滿所述緩存區(qū);
[0024] 第二Trim單元,用于當(dāng)檢測到所述設(shè)備的斷電信號(hào)時(shí),對(duì)寫滿的所述緩存區(qū)進(jìn)行 Trim操作;
[0025] 第二寫單元,用于當(dāng)所述第二Trim單元對(duì)寫滿的所述緩存區(qū)進(jìn)行Trim操作之后, 將內(nèi)存中的數(shù)據(jù)寫入所述緩存區(qū)。
[0026] 結(jié)合第二方面,在第一種可能的實(shí)現(xiàn)方式中,所述系統(tǒng)盤還包括:預(yù)留區(qū);所述第 一 Trim單元還用于:在所述對(duì)所述緩存區(qū)進(jìn)行Trim操作時(shí),對(duì)所述預(yù)留區(qū)進(jìn)行Trim操作。
[0027] 結(jié)合第二方面,或者,結(jié)合第二方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí) 現(xiàn)方式中,所述第一 Trim單元還用于:在所述對(duì)所述緩存區(qū)進(jìn)行Trim操作時(shí),對(duì)所述操作 系統(tǒng)存儲(chǔ)區(qū)和所述日志存儲(chǔ)區(qū)進(jìn)行Trim操作;
[0028] 所述裝置還包括:第二保存單元和第三寫單元,其中:
[0029] 所述第二保存單元,用于在所述第一 Trim單元對(duì)所述操作系統(tǒng)存儲(chǔ)區(qū)和所述日 志存儲(chǔ)區(qū)進(jìn)行Trim操作之前,將所述操作系統(tǒng)存儲(chǔ)區(qū)中的數(shù)據(jù)和所述日志存儲(chǔ)區(qū)中的數(shù) 據(jù)保存到第二備份位置;
[0030] 所述第三寫單元,用于在所述第一寫單元通過順序?qū)懙姆绞?,利用預(yù)設(shè)大小的數(shù) 據(jù)塊寫滿所述緩存區(qū)之后,將保存到所述第二備份位置處的所述操作系統(tǒng)存儲(chǔ)區(qū)中的數(shù)據(jù) 和所述日志存儲(chǔ)區(qū)中的數(shù)據(jù)分別重新寫入所述操作系統(tǒng)存儲(chǔ)區(qū)和所述日志存儲(chǔ)區(qū)。
[0031] 結(jié)合第二方面的第二種可能的實(shí)現(xiàn)方式中,在第三種可能的實(shí)現(xiàn)方式中,所述第 二備份位置是所述內(nèi)存。
[0032] 結(jié)合第二方面,在第四種可能的實(shí)現(xiàn)方式中,所述裝置還包括:分區(qū)單元,用于在 所述第一保存單元將系統(tǒng)盤的緩存區(qū)內(nèi)的數(shù)據(jù)保存到第一備份位置之前,對(duì)所述系統(tǒng)盤進(jìn) 行邏輯分區(qū),分區(qū)后的所述系統(tǒng)盤包括:所述緩存區(qū)、所述操作系統(tǒng)存儲(chǔ)區(qū)和所述日志存儲(chǔ) 區(qū)。
[0033] 實(shí)施本發(fā)明實(shí)施例,當(dāng)電源上電時(shí),對(duì)系統(tǒng)盤中的緩存區(qū)進(jìn)行Trim操作,并通過 順序?qū)懙姆绞綄憹M所述緩存區(qū),可實(shí)現(xiàn)占用所述系統(tǒng)盤內(nèi)的大段的連續(xù)可寫空間;當(dāng)電源 斷電時(shí),對(duì)寫滿的所述緩存區(qū)進(jìn)行Trim操作,為內(nèi)存中的數(shù)據(jù)騰出所述大段的連續(xù)可寫空 間,可實(shí)現(xiàn)將內(nèi)存數(shù)據(jù)快速的寫入所述系統(tǒng)盤,最終實(shí)現(xiàn)對(duì)內(nèi)存中的數(shù)據(jù)進(jìn)行有效保存。
【附圖說明】
[0034] 為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使 用的附圖作簡單地介紹。
[0035] 圖1是本發(fā)明實(shí)施例提供的一種應(yīng)用場景的示意圖;
[0036] 圖2A是本發(fā)明實(shí)施例涉及的第一種寫性能問題的測試示意圖;
[0037] 圖2B是本發(fā)明實(shí)施例涉及的第二種寫性能問題的測試示意圖;
[0038] 圖3是本發(fā)明實(shí)施例提供的一種設(shè)備掉電時(shí)的數(shù)據(jù)保存方法的流程示意圖;
[0039] 圖4是本發(fā)明實(shí)施例提供的系統(tǒng)盤的分區(qū)示意圖;
[0040] 圖5A是本發(fā)明實(shí)施例提供的解決上述第一種寫性能問題的測試示意圖;
[0041] 圖5B是本發(fā)明實(shí)施例提供的解決上述第二種寫性能問題的測試示意圖;
[0042] 圖6是本發(fā)明實(shí)施例提供的另一種設(shè)備掉電時(shí)的數(shù)據(jù)保存方法的流程示意圖;
[0043] 圖7是本發(fā)明實(shí)施例提供的一種數(shù)據(jù)保存裝置的結(jié)構(gòu)示意圖;
[0044] 圖8是本發(fā)明實(shí)施例提供的一種存儲(chǔ)陣列的結(jié)構(gòu)示意圖;
[0045] 圖9是本發(fā)明實(shí)施例提供的圖8所示存儲(chǔ)陣列涉及的應(yīng)用場景。
【具體實(shí)施方式】
[0046] 下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚地描 述。顯然,所描述的實(shí)施例僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中 的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例, 都屬于本發(fā)明保護(hù)的范圍。實(shí)施例中涉及到多個(gè)術(shù)語。
[0047] 本發(fā)明實(shí)施例提供了一種設(shè)備掉電時(shí)的數(shù)據(jù)保存方法及裝置,當(dāng)電源上電時(shí),對(duì) 系統(tǒng)盤中的緩存區(qū)進(jìn)行Trim操作,并通過順序?qū)懙姆绞綄憹M所述緩存區(qū),可實(shí)現(xiàn)占用所述 系統(tǒng)盤內(nèi)的大段的連續(xù)可寫空間;當(dāng)電源斷電時(shí),對(duì)寫滿的所述緩存區(qū)進(jìn)行Trim操作,為 內(nèi)存中的數(shù)據(jù)騰出所述大段的連續(xù)可寫空間,可實(shí)現(xiàn)將內(nèi)存數(shù)據(jù)快速的寫入所述系統(tǒng)盤。
[0048] 應(yīng)當(dāng)理解的,由于SSD與傳統(tǒng)的硬盤不同,不支持?jǐn)?shù)據(jù)的直接覆蓋。SSD只支持對(duì) 空白數(shù)據(jù)塊的執(zhí)行直接寫入操作,而對(duì)于非空白數(shù)據(jù)塊需要先進(jìn)行擦除操作之后才能執(zhí)行 寫入操作。為了解決前述的數(shù)據(jù)擦除問題,SSD支持Trim操作。具體的,操作系統(tǒng)在擦除 數(shù)據(jù)時(shí)可以通過向SSD發(fā)送Trim命令告訴SSD哪些數(shù)據(jù)塊中的數(shù)據(jù)已經(jīng)不再使用了。SSD 在收到Trim命令后,通常會(huì)在定期的垃圾收集操作中重新組織這些數(shù)據(jù)塊,使得這些數(shù)據(jù) 塊可寫,為將來寫入數(shù)據(jù)做好準(zhǔn)備。
[0049] 為了便于理解本發(fā)明實(shí)施例,下面先詳細(xì)介紹本發(fā)明實(shí)施例涉及的應(yīng)用場景以及 所述應(yīng)用場景存在的技術(shù)問題。
[0050] 由于企業(yè)級(jí)SSD的成本較高,通常是mSATA接口 SSD成本的2-3倍,因此,本發(fā)明 實(shí)施例采用小容量的mSATA接口 SSD替代大容量的企業(yè)級(jí)SSD,以降低硬件設(shè)計(jì)成本和減小 設(shè)計(jì)空間。
[0051] 圖1示出了磁盤陣列中的單板,該單板上設(shè)置有CPU、內(nèi)存(DDR3)以及用作系統(tǒng) 盤的mSATA接口 SSD,其中,所述系統(tǒng)盤可用于引導(dǎo)啟動(dòng)操作系統(tǒng)。當(dāng)電源斷電時(shí),BBU可以 提供一段時(shí)