本申請涉及固態(tài)硬盤管理技術(shù)領(lǐng)域,特別涉及一種固態(tài)硬盤低級格式化的方法及系統(tǒng)。
背景技術(shù):
隨著數(shù)據(jù)存儲技術(shù)的不斷提高,讀寫速度更快的固態(tài)硬盤逐漸進(jìn)入了我們的視野,顧名思義,固態(tài)硬盤是用固態(tài)電子存儲芯片陣列而制成的硬盤,由控制單元和存儲單元,即flash芯片和dram芯片組成。同時,大多固態(tài)硬盤都支持多namespace(命名空間),或多專屬分區(qū)來將原本完整的存儲空間按照namespace的不同劃分為相對獨(dú)立的存儲空間,而實(shí)際應(yīng)用中經(jīng)常會出現(xiàn)要求按照namespace的不同單獨(dú)進(jìn)行低級格式化操作的場景。
現(xiàn)有的針對不同namespace單獨(dú)進(jìn)行低級格式化操作的方法,因在數(shù)據(jù)存放時都將所有namespace的數(shù)據(jù)不加區(qū)分的存放在固態(tài)硬盤的所有block(物理邏輯塊)上,這樣會造成不同namespace的數(shù)據(jù)會落在同一block上,且在按namespace進(jìn)行低級格式化操作時不能破壞其它namespace的數(shù)據(jù),所以會需要對每個block上的數(shù)據(jù)進(jìn)行識別并執(zhí)行回收操作,步驟繁瑣、耗時長、效率低。
所以,如何為固態(tài)硬盤中的多個namespace,分配專屬于該namespace的物理邏輯塊,提供一種在不同namespace間數(shù)據(jù)存儲相互獨(dú)立、無需再識別和回收步驟、按namespace進(jìn)行低級格式化時能夠直接擦除的固態(tài)硬盤低級格式化機(jī)制是本領(lǐng)域技術(shù)人員亟待解決的問題。
技術(shù)實(shí)現(xiàn)要素:
本申請的目的是提供一種固態(tài)硬盤低級格式化的方法及系統(tǒng),通過為固態(tài)硬盤中的多個namespace,分配專屬于該namespace的物理邏輯塊,提高了數(shù)據(jù)存儲時的獨(dú)立性、簡化了低級格式化的流程和步驟,提升了低級格式化的效率。
為解決上述技術(shù)問題,本申請?zhí)峁┮环N固態(tài)硬盤低級格式化的方法,該方法包括:
獲取固態(tài)硬盤中namespace的數(shù)量,并識別得到每一個所述namespace對應(yīng)的容量大小;
為所述namespace根據(jù)其對應(yīng)的容量大小分配物理邏輯塊;其中,所述物理邏輯塊的數(shù)量與所述容量大小成正比關(guān)系;
將主機(jī)下發(fā)的寫請求寫入相應(yīng)的所述物理邏輯塊;
根據(jù)接收到的低級格式化命令,擦除所述物理邏輯塊上的所有數(shù)據(jù)。
可選的,將主機(jī)下發(fā)的寫請求寫入相應(yīng)的所述物理邏輯塊,包括:
接收主機(jī)下發(fā)的寫請求,并從所述寫請求中提取攜帶的namespace信息;
根據(jù)所述namespace信息將所述寫請求寫入相應(yīng)的所述物理邏輯塊。
可選的,該方法還包括:
所述namespace的總?cè)萘啃∮趯?yīng)的所述物理邏輯塊的總?cè)萘俊?/p>
可選的,根據(jù)接收到的低級格式化命令,擦除所述物理邏輯塊上的所有數(shù)據(jù),包括:
獲取所述低級格式化命令,并從所述低級格式化命令中提取攜帶的所述namespace信息;
根據(jù)所述namespace信息擦除對應(yīng)所述物理邏輯區(qū)塊上的所有數(shù)據(jù)。
本申請還提供了一種固態(tài)硬盤低級格式化的系統(tǒng),該系統(tǒng)包括:
數(shù)量容量獲取單元,用于獲取固態(tài)硬盤中namespace的數(shù)量,并識別得到每一個所述namespace對應(yīng)的容量大?。?/p>
物理邏輯塊指定單元,用于為所述namespace根據(jù)其對應(yīng)的容量大小分配物理邏輯塊;其中,所述物理邏輯塊的數(shù)量與所述容量大小成正比關(guān)系;
寫入單元,用于將主機(jī)下發(fā)的寫請求寫入相應(yīng)的所述物理邏輯塊;
擦除單元,用于根據(jù)接收到的低級格式化命令,擦除所述物理邏輯塊上的所有數(shù)據(jù)。
可選的,所述寫入單元包括:
第一提取子單元,用于接收主機(jī)下發(fā)的寫請求,并從所述寫請求中提取攜帶的namespace信息;
寫入子單元,用于根據(jù)所述namespace信息將所述寫請求寫入相應(yīng)的所述物理邏輯塊。
可選的,該系統(tǒng)還包括:
限制單元,用于所述namespace的總?cè)萘啃∮趯?yīng)的所述物理邏輯塊的總?cè)萘俊?/p>
可選的,所述擦除單元包括:
第二提取子單元,用于獲取所述低級格式化命令,并從所述低級格式化命令中提取攜帶的所述namespace信息;
擦除子單元,用于根據(jù)所述namespace信息擦除對應(yīng)所述物理邏輯區(qū)塊上的所有數(shù)據(jù)。
本申請所提供的一種固態(tài)硬盤低級格式化的方法,通過獲取固態(tài)硬盤中namespace的數(shù)量,并識別得到每一個所述namespace對應(yīng)的容量大??;為所述namespace根據(jù)其對應(yīng)的容量大小分配物理邏輯塊;其中,所述物理邏輯塊的數(shù)量與所述容量大小成正比關(guān)系;將主機(jī)下發(fā)的寫請求寫入相應(yīng)的所述物理邏輯塊;根據(jù)接收到的低級格式化命令,擦除所述物理邏輯塊上的所有數(shù)據(jù)。
顯然,本申請所提供的技術(shù)方案,通過為固態(tài)硬盤中的多個namespace分配專屬于該namespace的物理邏輯塊,使得在按namespace存儲時,只會存儲進(jìn)該namespace專屬的物理邏輯塊當(dāng)中,相應(yīng)的,在進(jìn)行低級格式化時,也就可以直接擦除該namespace專屬的物理邏輯塊。該方法提高了數(shù)據(jù)存儲時的獨(dú)立性、簡化了低級格式化的流程和步驟,提升了低級格式化的效率。本申請同時還提供了一種固態(tài)硬盤低級格式化的系統(tǒng),具有上述有益效果,在此不再贅述。
附圖說明
為了更清楚地說明本申請實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請的實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本申請實(shí)施例所提供的一種固態(tài)硬盤低級格式化的方法的流程圖;
圖2為本申請實(shí)施例所提供的另一種固態(tài)硬盤低級格式化的方法的流程圖;
圖3為本申請實(shí)施例所提供的又一種固態(tài)硬盤低級格式化的方法的流程圖;
圖4為本申請實(shí)施例所提供的一種固態(tài)硬盤低級格式化的系統(tǒng)的結(jié)構(gòu)框圖。
具體實(shí)施方式
本申請的核心是提供一種固態(tài)硬盤低級格式化的方法及系統(tǒng),通過為固態(tài)硬盤中的多個namespace,分配專屬于該namespace的物理邏輯塊,提高了數(shù)據(jù)存儲時的獨(dú)立性、簡化了低級格式化的流程和步驟,提升了低級格式化的效率。
為使本申請實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本申請實(shí)施例中的附圖,對本申請實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本申請一部分實(shí)施例,而不是全部的實(shí)施例?;诒旧暾堉械膶?shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其它實(shí)施例,都屬于本申請保護(hù)的范圍。
以下結(jié)合圖1,圖1為本申請實(shí)施例所提供的一種固態(tài)硬盤低級格式化的方法的流程圖。
其具體包括以下步驟:
s101:獲取固態(tài)硬盤中namespace的數(shù)量,并識別得到每一個namespace對應(yīng)的容量大??;
本步驟旨在獲取固態(tài)硬盤中已經(jīng)創(chuàng)建成功的命名空間或?qū)俜謪^(qū)的數(shù)量,并提取得到每一個專屬分區(qū)對應(yīng)的容量大小數(shù)據(jù)。
例如,一個擁有100g存儲空間的固態(tài)硬盤,并劃分為3個專屬分區(qū),其分別擁有30g、30g、40g的容量大小,本步驟的目的就是獲取到這些數(shù)據(jù)。以便在后續(xù)其它步驟中結(jié)合每個專屬分區(qū)擁有的容量大小來為其分配相應(yīng)的物理邏輯塊。
當(dāng)然如何獲取到這些想要的數(shù)據(jù)方式多種多樣,例如,訪問當(dāng)時創(chuàng)建這些專屬分區(qū)留下來的創(chuàng)建信息或配置文件;也可以以更高的權(quán)限直接讀取專屬分區(qū)的參數(shù)信息來獲得想要的數(shù)據(jù)等等方法,此處并不做具體限定,應(yīng)視具體固態(tài)硬盤的型號、生產(chǎn)廠家、固件版本號以及使用用途做出最符合使用者自身利益的選擇。
s102:為namespace根據(jù)其對應(yīng)的容量大小分配物理邏輯塊;其中,物理邏輯塊的數(shù)量與容量大小成正比關(guān)系;
在s101的基礎(chǔ)上,本步驟旨在根據(jù)已經(jīng)獲得的每個專屬分區(qū)的容量大小來為其分配專屬的物理邏輯塊,因?yàn)槊總€物理邏輯塊的大小在生產(chǎn)之初已有生產(chǎn)廠家所固定,所以顯而易見的是,物理邏輯塊的數(shù)量與專屬分區(qū)的容量大小成正比關(guān)系。
說到這里,需要說明一下固態(tài)硬盤的存儲和擦除機(jī)制,與普通機(jī)械硬盤所不同的是,固態(tài)硬盤用來存儲數(shù)據(jù)的最小單元是page(物理邏輯頁),通常大小在4kb或者8kb,而由128個或者256個物理邏輯也組成的block(物理邏輯塊),數(shù)據(jù)在寫入時,是按照一個個的物理邏輯頁為單位進(jìn)行寫入,而擦除時則是按照一個物理邏輯塊為單位進(jìn)行擦除,也就是說并非與寫入方式相同進(jìn)行1:1的擦除,而是一次性擦除由多個物理邏輯頁組成的物理邏輯塊,所以才會存在背景技術(shù)所說的,即使為固態(tài)硬盤進(jìn)行了分區(qū),還會存在不同分區(qū)的數(shù)據(jù)存放在同一個物理邏輯塊的現(xiàn)象。
一旦出現(xiàn)此種現(xiàn)象,當(dāng)然不能簡簡單單、不顧后果的直接擦除,很有可能丟失珍貴的數(shù)據(jù)文件,所以就需要使用更復(fù)雜的識別算法,識別出這個物理邏輯塊上的物理邏輯頁上存放的數(shù)據(jù)分別都是哪些不同專屬分區(qū)的,在得到識別結(jié)果后,再將不同專屬分區(qū)的數(shù)據(jù)轉(zhuǎn)移至不同的物理邏輯塊上,才能進(jìn)行擦除。這樣一來就會耗費(fèi)大量的計算和處理能力來做這些工作,降低了固態(tài)硬盤快速讀取和寫入的設(shè)計初衷。
本步驟的目的就是為已經(jīng)創(chuàng)建完成的不同專屬分區(qū)分配其專屬的物理邏輯塊,以使后續(xù)存放在該專屬分區(qū)的數(shù)據(jù)文件直接存儲在專屬的物理邏輯塊中,避免出現(xiàn)上面提到的諸多問題。
s103:將主機(jī)下發(fā)的寫請求寫入相應(yīng)的物理邏輯塊;
在s102的基礎(chǔ)上,本步驟旨在將主機(jī)下發(fā)的寫請求寫入專屬分區(qū)的專屬物理邏輯塊當(dāng)中。為實(shí)現(xiàn)本步驟的目的,會存在很多的具體實(shí)現(xiàn)方式,此處并不做具體限定,應(yīng)視具體固態(tài)硬盤的型號、生產(chǎn)廠家、固件版本號以及使用用途做出最符合使用者自身利益的選擇,同時會在后續(xù)的其它實(shí)施例中進(jìn)行詳細(xì)介紹。
s104:根據(jù)接收到的低級格式化命令,擦除物理邏輯塊上的所有數(shù)據(jù)。
在s103的基礎(chǔ)上,本步驟旨在根據(jù)接收到主機(jī)下發(fā)的對專屬分區(qū)的低級格式化命令,直接擦除該專屬分區(qū)下專屬的物理邏輯塊上的所有數(shù)據(jù)。為實(shí)現(xiàn)本步驟的目的,可以采用很多的具體實(shí)現(xiàn)方式,此處并不做具體限定,應(yīng)視具體固態(tài)硬盤的型號、生產(chǎn)廠家、固件版本號以及使用用途做出最符合使用者自身利益的選擇,同時會在后續(xù)的其它實(shí)施例中進(jìn)行詳細(xì)介紹
基于上述技術(shù)方案,本申請實(shí)施例提供的一種固態(tài)硬盤低級格式化的方法,通過為固態(tài)硬盤中的多個namespace,分配專屬于該namespace的物理邏輯塊,相應(yīng)的,在根據(jù)下發(fā)的低級格式化命令對該namespace進(jìn)行低級格式化時,可以直接擦除該namespace專屬的物理邏輯塊,提高了數(shù)據(jù)存儲時的獨(dú)立性、簡化了低級格式化的流程和步驟,提升了低級格式化的效率。
以下結(jié)合圖2,圖2為本申請實(shí)施例所提供的另一種固態(tài)硬盤低級格式化的方法的流程圖。
本實(shí)施例是針對上一實(shí)施例中s103中如何將主機(jī)下發(fā)的寫請求寫入相應(yīng)的物理邏輯塊所做出的一個具體限定,其它步驟與上一實(shí)施例大體相同,相同部分可參見上一實(shí)施例相關(guān)部分,在此不再贅述。
其具體包括以下步驟:
s201:接收主機(jī)下發(fā)的寫請求,并從寫請求中提取攜帶的namespace信息;
本步驟旨在從接收到的寫請求進(jìn)行提取攜帶的專屬分區(qū)信息的操作。要想能夠根據(jù)該寫請求實(shí)現(xiàn)找到專屬分區(qū)的目的,該寫請求至少要包含目的專屬分區(qū)的信息,也可以包含其它的信息,例如,分區(qū)名稱信息、編號信息、分區(qū)存儲格式、是否加密等等額外的信息,此處并不做具體限定,應(yīng)根據(jù)具體固態(tài)硬盤的型號、生產(chǎn)廠家、固件版本號以及使用用途做出最適合使用者的選擇。只要能夠從寫請求中提取到該寫請求的目的專屬分區(qū)信息即可。
s202:根據(jù)namespace信息將寫請求寫入相應(yīng)的物理邏輯塊。
在s201的基礎(chǔ)上,根據(jù)提取到的專屬分區(qū)的信息以及為其分配的專屬物理邏輯塊,將該寫請求所需要寫入的數(shù)據(jù)文件寫入這些專屬的物理邏輯塊當(dāng)中。因?yàn)橥ǔG闆r下為專屬分區(qū)分配的專屬物理邏輯塊數(shù)量很多,那么將需要寫入的數(shù)據(jù)文件寫入物理邏輯塊的順序就存在多種選擇,可以根據(jù)這些物理邏輯塊本身擁有的一些規(guī)律可尋的參數(shù)來基于一定的寫入優(yōu)先原則進(jìn)行寫入;也可以根據(jù)一些其它的方式來達(dá)成一些特有的效果,例如加密算法等。此處并不做具體限定,應(yīng)根據(jù)具體固態(tài)硬盤的型號、生產(chǎn)廠家、固件版本號以及使用用途做出最適合使用者的選擇。
以下結(jié)合圖3,圖3為本申請實(shí)施例所提供的又一種區(qū)塊鏈大文件存儲及校驗(yàn)的方法的流程圖。
本實(shí)施例是針對實(shí)施一例s102中具體如何在中間件層進(jìn)行校驗(yàn)所做出的一個限定,其它步驟與其它實(shí)施例大體相同,相同部分可參見其它實(shí)施例中相關(guān)部分,在此不再贅述。
其具體包括以下步驟:
s301:獲取低級格式化命令,并從低級格式化命令中提取攜帶的namespace信息;
本步驟與s201大體相同,不同的只是從攜帶有目的專屬分區(qū)信息的低級格式化命令中,將目的專屬分區(qū)信息提取出出來,其它部分可參見s201相關(guān)部分,在此不再贅述。
s302:根據(jù)namespace信息擦除對應(yīng)物理邏輯區(qū)塊上的所有數(shù)據(jù)。
在s301的基礎(chǔ)上,已經(jīng)得到目的專屬分區(qū)的信息,只需要執(zhí)行對該目的專屬分區(qū)下的專屬物理邏輯塊上所有數(shù)據(jù)直接進(jìn)行擦除即可,因?yàn)檫@些物理邏輯塊都是該專屬分區(qū)所專有的,存儲的也都是這個應(yīng)屬于這個專屬分區(qū)的數(shù)據(jù),所以不存在現(xiàn)有技術(shù)中的諸多問題和疑慮。
基于上述技術(shù)方案,本申請實(shí)施例提供的一種固態(tài)硬盤低級格式化的方法,通過為固態(tài)硬盤中的多個namespace,根據(jù)不同namespace的容量大小不同,為其分配專屬于該namespace的不同數(shù)量的物理邏輯塊,接下來只需從下發(fā)的寫請求中提取出目的專屬分區(qū)信息,并將寫入數(shù)據(jù)寫入專屬的物理邏輯塊當(dāng)中即可,并在根據(jù)下發(fā)的低級格式化命令對該namespace進(jìn)行低級格式化時,可以直接擦除該namespace專屬的物理邏輯塊,提高了數(shù)據(jù)存儲時的獨(dú)立性、簡化了低級格式化的流程和步驟,提升了低級格式化的效率。
因?yàn)榍闆r復(fù)雜,無法一一列舉進(jìn)行闡述,本領(lǐng)域技術(shù)人員應(yīng)能意識到更具本申請?zhí)峁┑幕痉椒ㄔ斫Y(jié)合實(shí)際情況可以存在很多的例子,在不付出足夠的創(chuàng)造性勞動下,應(yīng)均在本申請的保護(hù)范圍內(nèi)。
下面請參見圖4,圖4為本申請實(shí)施例所提供的一種區(qū)塊鏈大文件存儲及校驗(yàn)的系統(tǒng)的結(jié)構(gòu)框圖。
該系統(tǒng)可以包括:
數(shù)量容量獲取單元100,用于獲取固態(tài)硬盤中namespace的數(shù)量,并識別得到每一個namespace對應(yīng)的容量大??;
物理邏輯塊指定單元200,用于為namespace根據(jù)其對應(yīng)的容量大小分配物理邏輯塊;其中,物理邏輯塊的數(shù)量與容量大小成正比關(guān)系;
寫入單元300,用于將主機(jī)下發(fā)的寫請求寫入相應(yīng)的物理邏輯塊;
擦除單元400,用于根據(jù)接收到的低級格式化命令,擦除物理邏輯塊上的所有數(shù)據(jù)。
其中,該寫入單元300包括:
第一提取子單元,用于接收主機(jī)下發(fā)的寫請求,并從寫請求中提取攜帶的namespace信息;
寫入子單元,用于根據(jù)namespace信息將寫請求寫入相應(yīng)的物理邏輯塊。
進(jìn)一步的,該系統(tǒng)還包括:
限制單元,用于namespace的總?cè)萘啃∮趯?yīng)的物理邏輯塊的總?cè)萘?。跟進(jìn)一步的,還可以使得各namespace占總存儲空間的比例與專屬于各namespace的物理邏輯塊占總物理邏輯塊的比例一致。
其中,該擦除單元400包括:
第二提取子單元,用于獲取低級格式化命令,并從低級格式化命令中提取攜帶的namespace信息;
擦除子單元,用于根據(jù)namespace信息擦除對應(yīng)物理邏輯區(qū)塊上的所有數(shù)據(jù)。
說明書中各個實(shí)施例采用遞進(jìn)的方式描述,每個實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個實(shí)施例之間相同相似部分互相參見即可。對于實(shí)施例公開的裝置而言,由于其與實(shí)施例公開的方法相對應(yīng),所以描述的比較簡單,相關(guān)之處參見方法部分說明即可。
專業(yè)人員還可以進(jìn)一步意識到,結(jié)合本文中所公開的實(shí)施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機(jī)軟件或者二者的結(jié)合來實(shí)現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計約束條件。專業(yè)技術(shù)人員可以對每個特定的應(yīng)用來使用不同方法來實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本申請的范圍。
本文中應(yīng)用了具體個例對本申請的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本申請的方法及其核心思想。應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本申請原理的前提下,還可以對本申請進(jìn)行若干改進(jìn)和修飾,這些改進(jìn)和修飾也落入本申請權(quán)利要求的保護(hù)范圍內(nèi)。
還需要說明的是,在本說明書中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實(shí)體或者操作與另一個實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其它變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其它要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。