亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

存儲(chǔ)數(shù)據(jù)的讀寫方法及裝置與流程

文檔序號(hào):12063281閱讀:262來源:國知局
存儲(chǔ)數(shù)據(jù)的讀寫方法及裝置與流程

本發(fā)明涉及存儲(chǔ)技術(shù)領(lǐng)域,尤其涉及存儲(chǔ)數(shù)據(jù)的讀寫方法及裝置。



背景技術(shù):

近年來,超融合技術(shù)迅速崛起。超融合的核心在于集群存儲(chǔ),即多臺(tái)存儲(chǔ)設(shè)備中的存儲(chǔ)空間聚合成一個(gè)存儲(chǔ)資源池,再向虛擬化管理軟件提供存儲(chǔ)服務(wù)。

目前,超融合在硬件配置上通常采用“SSD+HDD”的混合磁盤,數(shù)據(jù)均勻的分布在多臺(tái)X86服務(wù)器的HDD(Hard Disk Drive,硬盤驅(qū)動(dòng)器)或SSD(Solid State Drive,固態(tài)硬盤)上,軟件上采用緩存、分層等優(yōu)化手段,能夠以較低的價(jià)格提供較高性能和較大容量,性價(jià)比較高。然而由于硬件的技術(shù)特征限制,SSD的使用壽命是有限且較短的,比如只能全盤擦除1000次,5000次等,當(dāng)達(dá)到擦除次數(shù),SSD里面的閃存顆粒將不能再寫入,此時(shí)需要更換新的SSD,由于X86服務(wù)器的機(jī)箱空間緊張,往往所有的硬盤盤位都已被使用,無法再拔掉舊的SSD之前插入新的SSD,因此為防止數(shù)據(jù)丟失,需要將SSD中的數(shù)據(jù)寫入至HDD中進(jìn)行存儲(chǔ),然后再拔掉舊的SSD并插入新的SSD進(jìn)行更換。

但是,SSD上存儲(chǔ)的是熱點(diǎn)數(shù)據(jù),其數(shù)據(jù)對應(yīng)于HDD上的存儲(chǔ)位置是零散的,把數(shù)據(jù)刷入到HDD中都是隨機(jī)讀寫操作,速度很慢,導(dǎo)致更換SSD時(shí)間過長,影響了用戶體驗(yàn)。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明的主要目的在于提出一種存儲(chǔ)數(shù)據(jù)的讀寫方法及裝置,旨在實(shí)現(xiàn)更換SDD硬盤過程中數(shù)據(jù)的快速讀寫,從而提升SDD硬盤的更換速度,提升用戶體驗(yàn)。

為實(shí)現(xiàn)上述目的,本發(fā)明提供一種存儲(chǔ)數(shù)據(jù)的讀寫方法,所述方法包括如下步驟:

獲取待更換的固態(tài)硬盤的容量大小,根據(jù)所述容量大小將所述待更換的固態(tài)硬盤中存儲(chǔ)的數(shù)據(jù)劃分為N等份;

為預(yù)設(shè)的N個(gè)硬盤驅(qū)動(dòng)器分別劃分一塊連續(xù)的存儲(chǔ)空間;

從所述待更換的固態(tài)硬盤中讀取劃分好的N等份數(shù)據(jù),將讀取到的所述N等份數(shù)據(jù)分別對應(yīng)地寫入所述N個(gè)硬盤驅(qū)動(dòng)器的連續(xù)存儲(chǔ)空間中。

可選地,所述從所述待更換的固態(tài)硬盤中讀取劃分好的N等份數(shù)據(jù),將讀取到的所述N等份數(shù)據(jù)分別對應(yīng)地寫入所述N個(gè)硬盤驅(qū)動(dòng)器的連續(xù)存儲(chǔ)空間中的步驟之后,還包括:

檢測是否存在新的固態(tài)硬盤插入;

若是,則從所述N個(gè)硬盤驅(qū)動(dòng)器中讀取寫入的所述N等份數(shù)據(jù),將讀取到的所述N等份數(shù)據(jù)寫入所述新的固態(tài)硬盤中。

可選地,所述檢測是否存在新的固態(tài)硬盤插入的步驟之前,還包括:

建立地址轉(zhuǎn)換關(guān)系映射表;

當(dāng)所述待更換的固態(tài)硬盤中的數(shù)據(jù)被訪問時(shí),根據(jù)所述地址轉(zhuǎn)換關(guān)系映射表從對應(yīng)的硬盤驅(qū)動(dòng)器中讀取所述被訪問的數(shù)據(jù)。

可選地,所述建立地址轉(zhuǎn)換關(guān)系映射表的步驟包括:

將存儲(chǔ)在所述待更換的固態(tài)硬盤中的數(shù)據(jù)地址作為原地址,將所述原地址中的數(shù)據(jù)寫入至對應(yīng)的硬盤驅(qū)動(dòng)器中的地址作為新地址;

根據(jù)所述原地址和所述新地址的對應(yīng)關(guān)系建立地址轉(zhuǎn)換關(guān)系映射表。

可選地,所述獲取待更換的固態(tài)硬盤的容量大小,根據(jù)所述容量大小將所述待更換的固態(tài)硬盤中存儲(chǔ)的數(shù)據(jù)劃分為N等份的步驟之前,還包括:

當(dāng)偵測到上層應(yīng)用的數(shù)據(jù)寫入指令對,控制所述上層應(yīng)用的待寫入數(shù)據(jù)寫入至非所述待更換的固態(tài)硬盤中。

此外,為實(shí)現(xiàn)上述目的,本發(fā)明還提供一種存儲(chǔ)數(shù)據(jù)的讀寫裝置,所述裝置包括:

第一劃分模塊,用于獲取待更換的固態(tài)硬盤的容量大小,根據(jù)所述容量大小將所述待更換的固態(tài)硬盤中存儲(chǔ)的數(shù)據(jù)劃分為N等份;

第二劃分模塊,用于為預(yù)設(shè)的N個(gè)硬盤驅(qū)動(dòng)器分別劃分一塊連續(xù)的存儲(chǔ)空間;

第一讀寫模塊,用于從所述待更換的固態(tài)硬盤中讀取劃分好的N等份數(shù)據(jù),將讀取到的所述N等份數(shù)據(jù)分別對應(yīng)地寫入所述N個(gè)硬盤驅(qū)動(dòng)器的連續(xù)存儲(chǔ)空間中。

可選地,所述裝置還包括:

檢測模塊,用于檢測是否存在新的固態(tài)硬盤插入;

第二讀寫模塊,用于若存在新的固態(tài)硬盤插入,則從所述N個(gè)硬盤驅(qū)動(dòng)器中讀取寫入的所述N等份數(shù)據(jù),將讀取到的所述N等份數(shù)據(jù)寫入所述新的固態(tài)硬盤中。

可選地,所述裝置還包括:

建立模塊,用于建立地址轉(zhuǎn)換關(guān)系映射表;

讀取模塊,用于當(dāng)所述待更換的固態(tài)硬盤中的數(shù)據(jù)被訪問時(shí),根據(jù)所述地址轉(zhuǎn)換關(guān)系映射表從對應(yīng)的硬盤驅(qū)動(dòng)器中讀取所述被訪問的數(shù)據(jù)。

可選地,所述建立模塊還用于:

將存儲(chǔ)在所述待更換的固態(tài)硬盤中的數(shù)據(jù)地址作為原地址,將所述原地址中的數(shù)據(jù)寫入至對應(yīng)的硬盤驅(qū)動(dòng)器中的地址作為新地址;

根據(jù)所述原地址和所述新地址的對應(yīng)關(guān)系建立地址轉(zhuǎn)換關(guān)系映射表。

可選地,所述裝置還包括:

控制模塊,用于當(dāng)偵測到上層應(yīng)用的數(shù)據(jù)寫入指令對,控制所述上層應(yīng)用的待寫入數(shù)據(jù)寫入至非所述待更換的固態(tài)硬盤中。

本發(fā)明獲取待更換的固態(tài)硬盤的容量大小,根據(jù)所述容量大小將所述待更換的固態(tài)硬盤中存儲(chǔ)的數(shù)據(jù)劃分為N等份;為預(yù)設(shè)的N個(gè)硬盤驅(qū)動(dòng)器分別劃分一塊連續(xù)的存儲(chǔ)空間;從所述待更換的固態(tài)硬盤中讀取劃分好的N等份數(shù)據(jù),將讀取到的所述N等份數(shù)據(jù)分別對應(yīng)地寫入所述N個(gè)硬盤驅(qū)動(dòng)器的連續(xù)存儲(chǔ)空間中。本發(fā)明考慮了固態(tài)硬盤和硬盤驅(qū)動(dòng)器的讀寫特性,啟動(dòng)N個(gè)任務(wù),通過這N個(gè)任務(wù)將待更換的固態(tài)硬盤中的數(shù)據(jù)定向地寫入硬盤驅(qū)動(dòng)器的連續(xù)存儲(chǔ)空間中,從而能夠?qū)崿F(xiàn)更換SDD硬盤過程中數(shù)據(jù)的快速讀寫,提升SDD硬盤的更換速度,提升用戶體驗(yàn)。

附圖說明

圖1為本發(fā)明存儲(chǔ)數(shù)據(jù)的讀寫方法第一實(shí)施例的流程示意圖;

圖2為存儲(chǔ)數(shù)據(jù)從SSD對應(yīng)寫入HDD的應(yīng)用場景示意圖;

圖3為本發(fā)明存儲(chǔ)數(shù)據(jù)的讀寫方法第二實(shí)施例的流程示意圖;

圖4為本發(fā)明存儲(chǔ)數(shù)據(jù)的讀寫方法第三實(shí)施例的流程示意圖;

圖5為本發(fā)明存儲(chǔ)數(shù)據(jù)的讀寫方法第四實(shí)施例的流程示意圖;

圖6為本發(fā)明存儲(chǔ)數(shù)據(jù)的讀寫裝置第一實(shí)施例的功能模塊示意圖;

圖7為本發(fā)明存儲(chǔ)數(shù)據(jù)的讀寫裝置第二實(shí)施例的功能模塊示意圖;

圖8為本發(fā)明存儲(chǔ)數(shù)據(jù)的讀寫裝置第三實(shí)施例的功能模塊示意圖;

圖9為本發(fā)明存儲(chǔ)數(shù)據(jù)的讀寫裝置第四實(shí)施例的功能模塊示意圖。

本發(fā)明目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做進(jìn)一步說明。

具體實(shí)施方式

應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。

本發(fā)明提供一種存儲(chǔ)數(shù)據(jù)的讀寫方法。

參照圖1,圖1為本發(fā)明存儲(chǔ)數(shù)據(jù)的讀寫方法第一實(shí)施例的流程示意圖。所述方法包括如下步驟:

步驟S10,獲取待更換的固態(tài)硬盤的容量大小,根據(jù)所述容量大小將所述待更換的固態(tài)硬盤中存儲(chǔ)的數(shù)據(jù)劃分為N等份。

在本實(shí)施例中,固態(tài)硬盤即SSD(Solid State Drive),SSD是利用半導(dǎo)體器件flash作為存儲(chǔ)介質(zhì)的一種硬盤,相對于傳統(tǒng)硬盤而言,SSD擁有更快的讀寫速度、更小更輕薄,并且具有省電、低功耗和抗震等特性,但是由于其價(jià)格較高且擦寫次數(shù)有限,因此在超融合系統(tǒng)中一般采用“SSD+HDD”的混合磁盤,以獲取較高的性價(jià)比。其中,HDD(Hard Disk Drive)即硬盤驅(qū)動(dòng)器,也即常說的電腦硬盤。

具體地,超融合是采用標(biāo)準(zhǔn)X86架構(gòu)的服務(wù)器,每臺(tái)X86服務(wù)器都可以插若干塊磁盤,例如2U的機(jī)架式服務(wù)器就可以插8塊或者12塊3.5寸的磁盤,超融合系統(tǒng)通過分布式存儲(chǔ)把集群內(nèi)所有服務(wù)器上的磁盤整合起來,虛擬成存儲(chǔ)資源池,再向虛擬化管理軟件提供存儲(chǔ)服務(wù)。超融合產(chǎn)品由于通常采用機(jī)架式服務(wù)器,磁盤盤位都很有限,很多時(shí)候所有的盤位都已經(jīng)插上了磁盤,而一般SSD中存儲(chǔ)的數(shù)據(jù)為熱數(shù)據(jù),HDD中存儲(chǔ)的數(shù)據(jù)為冷數(shù)據(jù),在更換SSD的過程中,為防止SSD中存儲(chǔ)的熱數(shù)據(jù)丟失,必須將舊SSD上的數(shù)據(jù)遷走并撥掉舊SSD,才能插入新的SSD。

在本實(shí)施例中,用戶可以在服務(wù)器的顯示頁面上選中本批次要更換的SSD,執(zhí)行更換命令。為了保證更換SSD期間服務(wù)器不中斷業(yè)務(wù),IO性能不會(huì)下降太多,整個(gè)集群中的SSD可以分成若干批(>=3批)進(jìn)行更換。

在確定待更換的SSD后,服務(wù)器獲取待更換的固態(tài)硬盤SSD的容量大小,不同類型的SSD容量大小不同,如64G,128G,256G等等,根據(jù)不同SSD的容量大小將SSD中存儲(chǔ)的數(shù)據(jù)劃分為N等份,以容量為128G的SSD為例,若將其數(shù)據(jù)劃分為4等份,則每塊數(shù)據(jù)的大小為32G。

步驟S20,為預(yù)設(shè)的N個(gè)硬盤驅(qū)動(dòng)器分別劃分一塊連續(xù)的存儲(chǔ)空間。

服務(wù)器劃分好SSD中的數(shù)據(jù)之后,再為預(yù)設(shè)的N個(gè)硬盤驅(qū)動(dòng)器分別劃分一塊連續(xù)的存儲(chǔ)空間,為保證連續(xù)的存儲(chǔ)空間足夠容納待寫入的存儲(chǔ)數(shù)據(jù),其中,每個(gè)硬盤驅(qū)動(dòng)器中連續(xù)的存儲(chǔ)空間的大小應(yīng)大于或等于待更換SSD容量大小的1/N。相對于分散的存儲(chǔ)空間,數(shù)據(jù)寫入連續(xù)存儲(chǔ)空間的寫入速度更快,能夠更好地發(fā)揮HDD的寫入性能。

步驟S30,從所述待更換的固態(tài)硬盤中讀取劃分好的N等份數(shù)據(jù),將讀取到的所述N等份數(shù)據(jù)分別對應(yīng)地寫入所述N個(gè)硬盤驅(qū)動(dòng)器的連續(xù)存儲(chǔ)空間中。

在劃分好SSD中的數(shù)據(jù)和HDD中的存儲(chǔ)空間后,服務(wù)器再將數(shù)據(jù)從SSD拷貝到HDD,其過程為:從所述待更換的固態(tài)硬盤中讀取劃分好的N等份數(shù)據(jù),將讀取到的所述N等份數(shù)據(jù)分別對應(yīng)地寫入所述N個(gè)硬盤驅(qū)動(dòng)器的連續(xù)存儲(chǔ)空間中。

對整個(gè)超融合系統(tǒng)而言,為提高數(shù)據(jù)從SSD拷貝到HDD的速度,可以只將SSD的數(shù)據(jù)拷貝到本節(jié)點(diǎn)的HDD里面,而不跨節(jié)點(diǎn)拷貝。通常超融合SSD的HDD的配置,一塊SSD會(huì)對應(yīng)若干塊HDD,例如:2U 8盤位的節(jié)點(diǎn)通常采用2塊SSD+6塊HDD的配置,1塊SSD對應(yīng)3塊HDD。

參照圖2,圖2為存儲(chǔ)數(shù)據(jù)從SSD對應(yīng)寫入HDD的應(yīng)用場景示意圖。假定1塊SSD對應(yīng)N塊HDD,為了保證拷貝速度達(dá)到最大,服務(wù)器可以并發(fā)地啟動(dòng)N個(gè)任務(wù),這N個(gè)任務(wù)分別從SSD里面讀取第1,2,…N塊數(shù)據(jù),再將讀取出來的數(shù)據(jù)寫入到對應(yīng)的HDD的連續(xù)存儲(chǔ)空間中,由于SSD的性能更高,一塊SSD的順序IO性能相當(dāng)于若干塊HDD的順序IO性能,以SATA(串行ATA)接口和400GB的SSD為例,讀取速度可以達(dá)到500MB/s,如果1塊SSD對應(yīng)3塊HDD,10000轉(zhuǎn)的HDD可以達(dá)到150MB/s的寫入速度,3個(gè)任務(wù)并發(fā)進(jìn)行,可以達(dá)到450MB/s的寫入速度,這樣只需15分鐘左右就可以把SSD中的數(shù)據(jù)拷貝到HDD中去。當(dāng)然,N個(gè)拷貝任務(wù)也可以不同時(shí)進(jìn)行,比如,先執(zhí)行N/2個(gè)任務(wù),再執(zhí)行剩余的N/2個(gè)任務(wù),具體實(shí)施中可以進(jìn)行靈活設(shè)置。

在本實(shí)施例中,服務(wù)器獲取待更換的固態(tài)硬盤的容量大小,根據(jù)所述容量大小將所述待更換的固態(tài)硬盤中存儲(chǔ)的數(shù)據(jù)劃分為N等份;為預(yù)設(shè)的N個(gè)硬盤驅(qū)動(dòng)器分別劃分一塊連續(xù)的存儲(chǔ)空間;從所述待更換的固態(tài)硬盤中讀取劃分好的N等份數(shù)據(jù),將讀取到的所述N等份數(shù)據(jù)分別對應(yīng)地寫入所述N個(gè)硬盤驅(qū)動(dòng)器的連續(xù)存儲(chǔ)空間中。本實(shí)施例考慮了固態(tài)硬盤和硬盤驅(qū)動(dòng)器的讀寫特性,啟動(dòng)N個(gè)任務(wù),通過這N個(gè)任務(wù)將待更換的固態(tài)硬盤中的數(shù)據(jù)定向地寫入硬盤驅(qū)動(dòng)器的連續(xù)存儲(chǔ)空間中,從而能夠?qū)崿F(xiàn)更換SDD硬盤過程中數(shù)據(jù)的快速讀寫,提升SDD硬盤的更換速度,提升用戶體驗(yàn)。

進(jìn)一步地,參照圖3,圖3為本發(fā)明存儲(chǔ)數(shù)據(jù)的讀寫方法第二實(shí)施例的流程示意圖?;谏鲜鰣D1所示的實(shí)施例,在步驟S30之后,還可以包括:

步驟S40,檢測是否存在新的固態(tài)硬盤插入;

步驟S50,若存在新的固態(tài)硬盤插入,則從所述N個(gè)硬盤驅(qū)動(dòng)器中讀取寫入的所述N等份數(shù)據(jù),將讀取到的所述N等份數(shù)據(jù)寫入所述新的固態(tài)硬盤中。

在本實(shí)施例中,在數(shù)據(jù)從SSD拷貝至HDD拷貝完成后,服務(wù)器通過界面輸出提示信息,提示用戶將舊的SSD拔掉并插入新的SSD,待客戶完成更換SSD的操作后,服務(wù)器檢測新的SSD固態(tài)硬盤,對新插入的SSD完成必要的初始化工作,如分區(qū)、按照緩存和分層模塊的需要對新的SSD作格式化處理等。完成后初始化工作后,服務(wù)器再啟動(dòng)N個(gè)任務(wù),這N個(gè)任務(wù)分別將之前拷貝至N個(gè)HDD的連續(xù)存儲(chǔ)空間中的數(shù)據(jù)寫入到新的SSD中的對應(yīng)位置,以將數(shù)據(jù)恢復(fù)到SSD。數(shù)據(jù)恢復(fù)完畢后,新的SSD即替代了舊SSD,新寫入的數(shù)據(jù)可以寫入該新SSD的緩存和分層空間,讀取的數(shù)據(jù)可以直接從該新SSD讀取。同樣地,存儲(chǔ)數(shù)據(jù)回寫至新的SSD的過程中,N個(gè)拷貝任務(wù)可以同時(shí)進(jìn)行,也可以分批進(jìn)行,具體實(shí)施中可以進(jìn)行靈活設(shè)置。

在本實(shí)施例中,通過啟用和之前的讀寫過程相反的過程,在檢測到新的固態(tài)硬盤插入時(shí),將HDD中的數(shù)據(jù)回寫至新的固態(tài)硬盤中,從而使得新的SSD替代了舊的SSD,保證了SSD中存儲(chǔ)的數(shù)據(jù)不會(huì)丟失。

進(jìn)一步地,參照圖4,圖4為本發(fā)明存儲(chǔ)數(shù)據(jù)的讀寫方法第三實(shí)施例的流程示意圖?;谏鲜鰣D3所示的實(shí)施例,在步驟S40之前,還可以包括:

步驟S60,建立地址轉(zhuǎn)換關(guān)系映射表;

步驟S70,當(dāng)所述待更換的固態(tài)硬盤中的數(shù)據(jù)被訪問時(shí),根據(jù)所述地址轉(zhuǎn)換關(guān)系映射表從對應(yīng)的硬盤驅(qū)動(dòng)器中讀取所述被訪問的數(shù)據(jù)。

在本實(shí)施例中,在將SSD中的數(shù)據(jù)拷貝至HDD中后,需要建立地址轉(zhuǎn)換關(guān)系映射表,在數(shù)據(jù)拷貝完成到新的固態(tài)硬盤插入之前的這段時(shí)間內(nèi),若上層應(yīng)用讀取的數(shù)據(jù)是待更換的SSD種存儲(chǔ)的數(shù)據(jù),則可以根據(jù)地址轉(zhuǎn)換關(guān)系映射表從HDD中讀取相應(yīng)的數(shù)據(jù)。其中,建立地址轉(zhuǎn)換關(guān)系映射表的具體步驟包括:

步驟S61,將存儲(chǔ)在所述待更換的固態(tài)硬盤中的數(shù)據(jù)地址作為原地址,將所述原地址中的數(shù)據(jù)寫入至對應(yīng)的硬盤驅(qū)動(dòng)器中的地址作為新地址;

步驟S62,根據(jù)所述原地址和所述新地址的對應(yīng)關(guān)系建立地址轉(zhuǎn)換關(guān)系映射表。

比如,上層應(yīng)用訪問的數(shù)據(jù)在SSD中的地址為0x1000,則將0x1000作為原地址,該原地址中的數(shù)據(jù)經(jīng)拷貝寫入至HDD中的0x1100位置,故將0x1100作為數(shù)據(jù)存儲(chǔ)的新地址,從而根據(jù)數(shù)據(jù)的原地址和新地址建立地址轉(zhuǎn)換關(guān)系映射表。當(dāng)上層應(yīng)用訪問SSD中的數(shù)據(jù)時(shí),由于SSD的數(shù)據(jù)已經(jīng)被切分成N塊分別存放到N個(gè)HDD的一塊連續(xù)存儲(chǔ)空間里了,此時(shí)通過地址轉(zhuǎn)換就可以知道SSD的0x1000的地址位于哪塊HDD的哪個(gè)偏移位置,然后從該HDD的偏移位置讀取相應(yīng)數(shù)據(jù)即可。

需要說明的是,服務(wù)器將N塊硬盤驅(qū)動(dòng)器的數(shù)據(jù)拷貝回新的SSD,此過程數(shù)據(jù)地址的轉(zhuǎn)換可以參考地址轉(zhuǎn)換關(guān)系映射表,使得每塊數(shù)據(jù)在新的SSD中的存儲(chǔ)地址和在舊的SSD中的地址保持一致,在數(shù)據(jù)寫入新的SSD之后,可以刪除地址轉(zhuǎn)換關(guān)系映射表,并將對舊的SSD的訪問變成對新的SSD的訪問,這樣完成新舊SSD的替換,由于每塊數(shù)據(jù)在舊的SSD和新的SSD中的地址是一樣的,所以只要修改一下盤符,就可以使得上層應(yīng)用正常訪問新的SSD中的數(shù)據(jù)。

本實(shí)施例通過建立地址轉(zhuǎn)換關(guān)系映射表,保證了SSD中存儲(chǔ)的數(shù)據(jù)在遷移之后能夠正常讀取,從而保證了超融合系統(tǒng)在SSD更換期間業(yè)務(wù)的不中斷。

進(jìn)一步地,參照圖5,圖5為本發(fā)明存儲(chǔ)數(shù)據(jù)的讀寫方法第四實(shí)施例的流程示意圖?;谏鲜龅膶?shí)施例,在步驟S10之前,還可以包括:

步驟S80,當(dāng)偵測到上層應(yīng)用的數(shù)據(jù)寫入指令對,控制所述上層應(yīng)用的待寫入數(shù)據(jù)寫入至非所述待更換的固態(tài)硬盤中。

在將SSD中的數(shù)據(jù)拷貝至HDD的過程中,為了避免待更換的SSD中的數(shù)據(jù)產(chǎn)生更新,需要對上層應(yīng)用新寫入的數(shù)據(jù)進(jìn)行重定向,讓新寫入的數(shù)據(jù)先緩存到其他的不在本批次更換的SSD中,即一旦用戶確定了待更換的固態(tài)硬盤,則服務(wù)器偵測到上層應(yīng)用的數(shù)據(jù)寫入指令時(shí),需控制上層應(yīng)用的待寫入數(shù)據(jù)寫入至非待更換的固態(tài)硬盤中。本實(shí)施例中數(shù)據(jù)的重定向可以通過預(yù)設(shè)程序?qū)崿F(xiàn),待寫入數(shù)據(jù)的寫入位置可以根據(jù)用戶需要進(jìn)行靈活設(shè)置。

在本實(shí)施例中,通過控制上層應(yīng)用的待寫入數(shù)據(jù)寫入至非待更換的固態(tài)硬盤中,不僅保證了上層應(yīng)用數(shù)據(jù)的快速寫入,也保證了更換SSD過程中不會(huì)有新的數(shù)據(jù)寫入SSD,進(jìn)一步提升了SSD硬盤的更換速度。

本發(fā)明還提供一種存儲(chǔ)數(shù)據(jù)的讀寫裝置。

參照圖6,圖6為本發(fā)明存儲(chǔ)數(shù)據(jù)的讀寫裝置第一實(shí)施例的功能模塊示意圖。所述裝置包括:

第一劃分模塊10,用于獲取待更換的固態(tài)硬盤的容量大小,根據(jù)所述容量大小將所述待更換的固態(tài)硬盤中存儲(chǔ)的數(shù)據(jù)劃分為N等份;

在本實(shí)施例中,固態(tài)硬盤即SSD(Solid State Drive),SSD是利用半導(dǎo)體器件flash作為存儲(chǔ)介質(zhì)的一種硬盤,相對于傳統(tǒng)硬盤而言,SSD擁有更快的讀寫速度、更小更輕薄,并且具有省電、低功耗和抗震等特性,但是由于其價(jià)格較高且擦寫次數(shù)有限,因此在超融合系統(tǒng)中一般采用“SSD+HDD”的混合磁盤,以獲取較高的性價(jià)比。其中,HDD(Hard Disk Drive)即硬盤驅(qū)動(dòng)器,也即常說的電腦硬盤。

具體地,超融合是采用標(biāo)準(zhǔn)X86架構(gòu)的服務(wù)器,每臺(tái)X86服務(wù)器都可以插若干塊磁盤,例如2U的機(jī)架式服務(wù)器就可以插8塊或者12塊3.5寸的磁盤,超融合系統(tǒng)通過分布式存儲(chǔ)把集群內(nèi)所有服務(wù)器上的磁盤整合起來,虛擬成存儲(chǔ)資源池,再向虛擬化管理軟件提供存儲(chǔ)服務(wù)。超融合產(chǎn)品由于通常采用機(jī)架式服務(wù)器,磁盤盤位都很有限,很多時(shí)候所有的盤位都已經(jīng)插上了磁盤,而一般SSD中存儲(chǔ)的數(shù)據(jù)為熱數(shù)據(jù),HDD中存儲(chǔ)的數(shù)據(jù)為冷數(shù)據(jù),在更換SSD的過程中,為防止SSD中存儲(chǔ)的熱數(shù)據(jù)丟失,必須將舊SSD上的數(shù)據(jù)遷走并撥掉舊SSD,才能插入新的SSD。

在本實(shí)施例中,用戶可以在服務(wù)器的顯示頁面上選中本批次要更換的SSD,執(zhí)行更換命令。為了保證更換SSD期間服務(wù)器不中斷業(yè)務(wù),IO性能不會(huì)下降太多,整個(gè)集群中的SSD可以分成若干批(>=3批)進(jìn)行更換。

在確定待更換的SSD后,第一劃分模塊10獲取待更換的固態(tài)硬盤SSD的容量大小,不同類型的SSD容量大小不同,如64G,128G,256G等等,根據(jù)不同SSD的容量大小將SSD中存儲(chǔ)的數(shù)據(jù)劃分為N等份,以容量為128G的SSD為例,若將其數(shù)據(jù)劃分為4等份,則每塊數(shù)據(jù)的大小為32G。

第二劃分模塊20,用于為預(yù)設(shè)的N個(gè)硬盤驅(qū)動(dòng)器分別劃分一塊連續(xù)的存儲(chǔ)空間;

第一劃分模塊10劃分好SSD中的數(shù)據(jù)之后,第二劃分模塊20再為預(yù)設(shè)的N個(gè)硬盤驅(qū)動(dòng)器分別劃分一塊連續(xù)的存儲(chǔ)空間,為保證連續(xù)的存儲(chǔ)空間足夠容納待寫入的存儲(chǔ)數(shù)據(jù),其中,每個(gè)硬盤驅(qū)動(dòng)器中連續(xù)的存儲(chǔ)空間的大小應(yīng)大于或等于待更換SSD容量大小的1/N。相對于分散的存儲(chǔ)空間,數(shù)據(jù)寫入連續(xù)存儲(chǔ)空間的寫入速度更快,能夠更好地發(fā)揮HDD的寫入性能。

第一讀寫模塊30,用于從所述待更換的固態(tài)硬盤中讀取劃分好的N等份數(shù)據(jù),將讀取到的所述N等份數(shù)據(jù)分別對應(yīng)地寫入所述N個(gè)硬盤驅(qū)動(dòng)器的連續(xù)存儲(chǔ)空間中。

在劃分好SSD中的數(shù)據(jù)和HDD中的存儲(chǔ)空間后,第一讀寫模塊30再將數(shù)據(jù)從SSD拷貝到HDD,其過程為:從所述待更換的固態(tài)硬盤中讀取劃分好的N等份數(shù)據(jù),將讀取到的所述N等份數(shù)據(jù)分別對應(yīng)地寫入所述N個(gè)硬盤驅(qū)動(dòng)器的連續(xù)存儲(chǔ)空間中。

對整個(gè)超融合系統(tǒng)而言,為提高數(shù)據(jù)從SSD拷貝到HDD的速度,可以只將SSD的數(shù)據(jù)拷貝到本節(jié)點(diǎn)的HDD里面,而不跨節(jié)點(diǎn)拷貝。通常超融合SSD的HDD的配置,一塊SSD會(huì)對應(yīng)若干塊HDD,例如:2U 8盤位的節(jié)點(diǎn)通常采用2塊SSD+6塊HDD的配置,1塊SSD對應(yīng)3塊HDD。

參照圖2,圖2為存儲(chǔ)數(shù)據(jù)從SSD對應(yīng)寫入HDD的應(yīng)用場景示意圖。假定1塊SSD對應(yīng)N塊HDD,為了保證拷貝速度達(dá)到最大,服務(wù)器可以并發(fā)地啟動(dòng)N個(gè)任務(wù),這N個(gè)任務(wù)分別從SSD里面讀取第1,2,…N塊數(shù)據(jù),再將讀取出來的數(shù)據(jù)寫入到對應(yīng)的HDD的連續(xù)存儲(chǔ)空間中,由于SSD的性能更高,一塊SSD的順序IO性能相當(dāng)于若干塊HDD的順序IO性能,以SATA(串行ATA)接口和400GB的SSD為例,讀取速度可以達(dá)到500MB/s,如果1塊SSD對應(yīng)3塊HDD,10000轉(zhuǎn)的HDD可以達(dá)到150MB/s的寫入速度,3個(gè)任務(wù)并發(fā)進(jìn)行,可以達(dá)到450MB/s的寫入速度,這樣只需15分鐘左右就可以把SSD中的數(shù)據(jù)拷貝到HDD中去。當(dāng)然,N個(gè)拷貝任務(wù)也可以不同時(shí)進(jìn)行,比如,先執(zhí)行N/2個(gè)任務(wù),再執(zhí)行剩余的N/2個(gè)任務(wù),具體實(shí)施中可以進(jìn)行靈活設(shè)置。

在本實(shí)施例中,第一劃分模塊10獲取待更換的固態(tài)硬盤的容量大小,根據(jù)所述容量大小將所述待更換的固態(tài)硬盤中存儲(chǔ)的數(shù)據(jù)劃分為N等份;第二劃分模塊20為預(yù)設(shè)的N個(gè)硬盤驅(qū)動(dòng)器分別劃分一塊連續(xù)的存儲(chǔ)空間;第一讀寫模塊30從所述待更換的固態(tài)硬盤中讀取劃分好的N等份數(shù)據(jù),將讀取到的所述N等份數(shù)據(jù)分別對應(yīng)地寫入所述N個(gè)硬盤驅(qū)動(dòng)器的連續(xù)存儲(chǔ)空間中。本實(shí)施例考慮了固態(tài)硬盤和硬盤驅(qū)動(dòng)器的讀寫特性,啟動(dòng)N個(gè)任務(wù),通過這N個(gè)任務(wù)將待更換的固態(tài)硬盤中的數(shù)據(jù)定向地寫入硬盤驅(qū)動(dòng)器的連續(xù)存儲(chǔ)空間中,從而能夠?qū)崿F(xiàn)更換SDD硬盤過程中數(shù)據(jù)的快速讀寫,提升SDD硬盤的更換速度,提升用戶體驗(yàn)。

進(jìn)一步地,參照圖7,圖7為本發(fā)明存儲(chǔ)數(shù)據(jù)的讀寫裝置第二實(shí)施例的功能模塊示意圖?;谏鲜鰣D6所示的實(shí)施例,所述裝置還包括:

檢測模塊40,用于檢測是否存在新的固態(tài)硬盤插入;

第二讀寫模塊50,用于若存在新的固態(tài)硬盤插入,則從所述N個(gè)硬盤驅(qū)動(dòng)器中讀取寫入的所述N等份數(shù)據(jù),將讀取到的所述N等份數(shù)據(jù)寫入所述新的固態(tài)硬盤中。

在本實(shí)施例中,在數(shù)據(jù)從SSD拷貝至HDD拷貝完成后,服務(wù)器通過界面輸出提示信息,提示用戶將舊的SSD拔掉并插入新的SSD,待客戶完成更換SSD的操作后,檢測模塊40檢測新的SSD固態(tài)硬盤,對新插入的SSD完成必要的初始化工作,如分區(qū)、按照緩存和分層模塊的需要對新的SSD作格式化處理等。完成后初始化工作后,第二讀寫模塊50再啟動(dòng)N個(gè)任務(wù),這N個(gè)任務(wù)分別將之前拷貝至N個(gè)HDD的連續(xù)存儲(chǔ)空間中的數(shù)據(jù)寫入到新的SSD中的對應(yīng)位置,以將數(shù)據(jù)恢復(fù)到SSD。數(shù)據(jù)恢復(fù)完畢后,新的SSD即替代了舊SSD,新寫入的數(shù)據(jù)可以寫入該新SSD的緩存和分層空間,讀取的數(shù)據(jù)可以直接從該新SSD讀取。同樣地,存儲(chǔ)數(shù)據(jù)回寫至新的SSD的過程中,N個(gè)拷貝任務(wù)可以同時(shí)進(jìn)行,也可以分批進(jìn)行,具體實(shí)施中可以進(jìn)行靈活設(shè)置。

在本實(shí)施例中,通過啟用和之前的讀寫過程相反的過程,在檢測到新的固態(tài)硬盤插入時(shí),將HDD中的數(shù)據(jù)回寫至新的固態(tài)硬盤中,從而使得新的SSD替代了舊的SSD,保證了SSD中存儲(chǔ)的數(shù)據(jù)不會(huì)丟失。

進(jìn)一步地,參照圖8,圖8為本發(fā)明存儲(chǔ)數(shù)據(jù)的讀寫裝置第三實(shí)施例的功能模塊示意圖。基于上述圖7所示的實(shí)施例,所述裝置還包括:

建立模塊60,用于建立地址轉(zhuǎn)換關(guān)系映射表;

讀取模塊70,用于當(dāng)所述待更換的固態(tài)硬盤中的數(shù)據(jù)被訪問時(shí),根據(jù)所述地址轉(zhuǎn)換關(guān)系映射表從對應(yīng)的硬盤驅(qū)動(dòng)器中讀取所述被訪問的數(shù)據(jù)。

在本實(shí)施例中,在將SSD中的數(shù)據(jù)拷貝至HDD中后,建立模塊60建立地址轉(zhuǎn)換關(guān)系映射表,在數(shù)據(jù)拷貝完成到新的固態(tài)硬盤插入之前的這段時(shí)間內(nèi),若上層應(yīng)用讀取的數(shù)據(jù)是待更換的SSD種存儲(chǔ)的數(shù)據(jù),則讀取模塊70可以根據(jù)地址轉(zhuǎn)換關(guān)系映射表從HDD中讀取相應(yīng)的數(shù)據(jù)。

所述建立模塊60還用于:

將存儲(chǔ)在所述待更換的固態(tài)硬盤中的數(shù)據(jù)地址作為原地址,將所述原地址中的數(shù)據(jù)寫入至對應(yīng)的硬盤驅(qū)動(dòng)器中的地址作為新地址;

根據(jù)所述原地址和所述新地址的對應(yīng)關(guān)系建立地址轉(zhuǎn)換關(guān)系映射表。

比如,上層應(yīng)用訪問的數(shù)據(jù)在SSD中的地址為0x1000,則將0x1000作為原地址,該原地址中的數(shù)據(jù)經(jīng)拷貝寫入至HDD中的0x1100位置,故將0x1100作為數(shù)據(jù)存儲(chǔ)的新地址,從而根據(jù)數(shù)據(jù)的原地址和新地址建立地址轉(zhuǎn)換關(guān)系映射表。當(dāng)上層應(yīng)用訪問SSD中的數(shù)據(jù)時(shí),由于SSD的數(shù)據(jù)已經(jīng)被切分成N塊分別存放到N個(gè)HDD的一塊連續(xù)存儲(chǔ)空間里了,此時(shí)通過地址轉(zhuǎn)換就可以知道SSD的0x1000的地址位于哪塊HDD的哪個(gè)偏移位置,然后從該HDD的偏移位置讀取相應(yīng)數(shù)據(jù)即可。

需要說明的是,服務(wù)器將N塊硬盤驅(qū)動(dòng)器的數(shù)據(jù)拷貝回新的SSD,此過程數(shù)據(jù)地址的轉(zhuǎn)換可以參考地址轉(zhuǎn)換關(guān)系映射表,使得每塊數(shù)據(jù)在新的SSD中的存儲(chǔ)地址和在舊的SSD中的地址保持一致,在數(shù)據(jù)寫入新的SSD之后,可以刪除地址轉(zhuǎn)換關(guān)系映射表,并將對舊的SSD的訪問變成對新的SSD的訪問,這樣完成新舊SSD的替換,由于每塊數(shù)據(jù)在舊的SSD和新的SSD中的地址是一樣的,所以只要修改一下盤符,就可以使得上層應(yīng)用正常訪問新的SSD中的數(shù)據(jù)。

本實(shí)施例通過建立地址轉(zhuǎn)換關(guān)系映射表,保證了SSD中存儲(chǔ)的數(shù)據(jù)在遷移之后能夠正常讀取,從而保證了超融合系統(tǒng)在SSD更換期間業(yè)務(wù)的不中斷。

進(jìn)一步地,參照圖9,圖9為本發(fā)明存儲(chǔ)數(shù)據(jù)的讀寫裝置第四實(shí)施例的功能模塊示意圖。基于上述的實(shí)施例,所述裝置還包括:

控制模塊80,用于當(dāng)偵測到上層應(yīng)用的數(shù)據(jù)寫入指令對,控制所述上層應(yīng)用的待寫入數(shù)據(jù)寫入至非所述待更換的固態(tài)硬盤中。

在將SSD中的數(shù)據(jù)拷貝至HDD的過程中,為了避免待更換的SSD中的數(shù)據(jù)產(chǎn)生更新,需要對上層應(yīng)用新寫入的數(shù)據(jù)進(jìn)行重定向,讓新寫入的數(shù)據(jù)先緩存到其他的不在本批次更換的SSD中,即一旦用戶確定了待更換的固態(tài)硬盤,則控制模塊80偵測到上層應(yīng)用的數(shù)據(jù)寫入指令時(shí),需控制上層應(yīng)用的待寫入數(shù)據(jù)寫入至非待更換的固態(tài)硬盤中。本實(shí)施例中數(shù)據(jù)的重定向可以通過預(yù)設(shè)程序?qū)崿F(xiàn),待寫入數(shù)據(jù)的寫入位置可以根據(jù)用戶需要進(jìn)行靈活設(shè)置。

在本實(shí)施例中,通過控制上層應(yīng)用的待寫入數(shù)據(jù)寫入至非待更換的固態(tài)硬盤中,不僅保證了上層應(yīng)用數(shù)據(jù)的快速寫入,也保證了更換SSD過程中不會(huì)有新的數(shù)據(jù)寫入SSD,進(jìn)一步提升了SSD硬盤的更換速度。

以上僅為本發(fā)明的優(yōu)選實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1