磁盤(pán)重映射方法和裝置制造方法
【專(zhuān)利摘要】本發(fā)明實(shí)施例提供一種磁盤(pán)重映射方法和裝置,方法包括:當(dāng)讀取到各碟片上的壞道扇區(qū)時(shí),根據(jù)壞道扇區(qū)的邏輯地址獲取壞道扇區(qū)的位置;若壞道扇區(qū)位于內(nèi)道區(qū)域中,則將將壞道扇區(qū)中的數(shù)據(jù)遷移到原始預(yù)留區(qū)域中,并將壞道扇區(qū)的邏輯地址對(duì)應(yīng)的物理地址重新指向到壞道扇區(qū)中的數(shù)據(jù)遷移后的物理地址;若壞道扇區(qū)位于非內(nèi)道區(qū)域中,則將滿足預(yù)設(shè)的區(qū)域映射條件的壞道扇區(qū)所在壞道區(qū)域中的數(shù)據(jù)遷移到預(yù)設(shè)的新增預(yù)留區(qū)域中,并將壞道區(qū)域中數(shù)據(jù)的邏輯地址對(duì)應(yīng)的物理地址分別重新指向到壞道區(qū)域中的數(shù)據(jù)遷移后的物理地址;根據(jù)數(shù)據(jù)的邏輯地址從邏輯地址對(duì)應(yīng)的扇區(qū)讀取數(shù)據(jù)。本發(fā)明實(shí)施例還提供了一種磁盤(pán)映射裝置。本發(fā)明實(shí)施例減少了磁頭擺動(dòng)帶來(lái)的延時(shí)。
【專(zhuān)利說(shuō)明】磁盤(pán)重映射方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信技術(shù),尤其涉及一種磁盤(pán)重映射方法和裝置。
【背景技術(shù)】
[0002]硬盤(pán)壞道問(wèn)題是存儲(chǔ)領(lǐng)域的常見(jiàn)問(wèn)題,硬盤(pán)壞道分為邏輯壞道和物理壞道。其中, 物理壞道無(wú)法修復(fù),邏輯壞道可以通過(guò)寫(xiě)操作進(jìn)行修復(fù),即按照硬盤(pán)重映射機(jī)制,將邏輯壞 道的地址重映射到硬盤(pán)固有的預(yù)留區(qū)域中。硬盤(pán)邏輯塊尋址(Logic Block Addressing;以 下簡(jiǎn)稱(chēng):LBA)按照柱面-磁頭-扇區(qū)(Cylinder-Head-Sector ;以下簡(jiǎn)稱(chēng):CHS)對(duì)應(yīng)到硬盤(pán) 盤(pán)體,并按同心圓的磁盤(pán)軌道(track)進(jìn)行分布,最外面的稱(chēng)為外道?,F(xiàn)有的1T/2T硬盤(pán)通 常預(yù)留4096個(gè)扇區(qū),3T硬盤(pán)通常預(yù)留8192個(gè)扇區(qū)。
[0003]在現(xiàn)有技術(shù)中,在順序讀取硬盤(pán)中的數(shù)據(jù)時(shí),當(dāng)讀取到壞道I時(shí),讀磁頭自動(dòng)擺到 預(yù)留區(qū)域中讀取壞道I對(duì)應(yīng)的重映射地址的信息,然后讀磁頭再返回讀取壞道I和壞道2 之間的良好扇區(qū);當(dāng)讀到壞道2時(shí),讀磁頭自動(dòng)擺到預(yù)留區(qū)域中讀取壞道2對(duì)應(yīng)的重映射地 址的信息,然后讀磁頭再返回讀取壞道2和壞道3之間的良好扇區(qū),以此類(lèi)推,完成包含壞 道的整個(gè)硬盤(pán)的數(shù)據(jù)讀取。
[0004]然而,現(xiàn)有技術(shù)中讀磁頭反復(fù)擺動(dòng),造成較大的磁盤(pán)讀寫(xiě)延時(shí)。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實(shí)施例提供一種磁盤(pán)重映射方法和裝置,減少磁盤(pán)讀寫(xiě)延時(shí)。
[0006]本發(fā)明實(shí)施例的第一方面提供了一種磁盤(pán)重映射方法,包括:
[0007]當(dāng)讀取到各碟片上的壞道扇區(qū)時(shí),根據(jù)所述壞道扇區(qū)的邏輯地址獲取所述壞道扇 區(qū)的位置;
[0008]若所述壞道扇區(qū)位于內(nèi)道區(qū)域中,則將所述壞道扇區(qū)中的數(shù)據(jù)遷移到原始預(yù)留區(qū) 域中,并將所述壞道扇區(qū)的邏輯地址對(duì)應(yīng)的物理地址重新指向到所述壞道扇區(qū)中的數(shù)據(jù)遷 移后的物理地址;
[0009]若所述壞道扇區(qū)位于非內(nèi)道區(qū)域中,則將滿足預(yù)設(shè)的區(qū)域映射條件的壞道扇區(qū)所 在壞道區(qū)域中的數(shù)據(jù)遷移到預(yù)設(shè)的新增預(yù)留區(qū)域中,并將所述壞道區(qū)域中數(shù)據(jù)對(duì)應(yīng)的邏輯 地址對(duì)應(yīng)的物理地址分別重新指向到所述壞道區(qū)域中的數(shù)據(jù)遷移后的物理地址;
[0010]根據(jù)數(shù)據(jù)的邏輯地址從所述邏輯地址對(duì)應(yīng)的扇區(qū)讀取所述數(shù)據(jù);
[0011]其中,所述內(nèi)道區(qū)域?yàn)榈幸訰/P為半徑的同心圓對(duì)應(yīng)的磁軌以?xún)?nèi)的區(qū)域,其 中,R為所述碟片的半徑,P為預(yù)設(shè)的大于I且小于R的實(shí)數(shù);所述非內(nèi)道區(qū)域?yàn)樗龅?上除所述內(nèi)道區(qū)域外的區(qū)域。
[0012]結(jié)合第一方面,在第一方面的第一種可能的實(shí)現(xiàn)方式中,所述將滿足預(yù)設(shè)的區(qū)域 映射條件的壞道扇區(qū)所在壞道區(qū)域中的數(shù)據(jù)遷移到預(yù)設(shè)的新增預(yù)留區(qū)域中包括:
[0013]對(duì)所述壞道扇區(qū)所在壞道區(qū)域進(jìn)行掃描,所述壞道扇區(qū)所在壞道區(qū)域?yàn)橛晌锢淼?址為[X-Q,X+Q]的扇區(qū)構(gòu)成的區(qū)域,其中,X為所述壞道扇區(qū)的物理地址,Q為預(yù)設(shè)的正整數(shù);
[0014]當(dāng)所述壞道區(qū)域中存在其他壞道扇區(qū)時(shí),則所述壞道區(qū)域滿足預(yù)設(shè)的區(qū)域映射條 件,將所述壞道區(qū)域中的數(shù)據(jù)遷移到預(yù)設(shè)的新增預(yù)留區(qū)域中。
[0015]結(jié)合第一方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述將滿 足預(yù)設(shè)的區(qū)域映射條件的壞道扇區(qū)所在壞道區(qū)域中的數(shù)據(jù)遷移到預(yù)設(shè)的新增預(yù)留區(qū)域中 還包括:
[0016]當(dāng)所述壞道區(qū)域中不存在其他壞道扇區(qū)時(shí),則所述壞道區(qū)域不滿足預(yù)設(shè)的區(qū)域映 射條件,將所述壞道扇區(qū)中的數(shù)據(jù)遷移到預(yù)設(shè)的新增預(yù)留區(qū)域中,并將所述壞道扇區(qū)中的 數(shù)據(jù)的邏輯地址對(duì)應(yīng)的物理地址重新指向到所述壞道扇區(qū)中的數(shù)據(jù)遷移后的物理地址。
[0017]結(jié)合第一方面或第一方面的第一種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式 中,本發(fā)明實(shí)施例提供的磁盤(pán)重映射方法還包括:
[0018]預(yù)配置所述新增預(yù)留區(qū)域,所述新增預(yù)留區(qū)域均勻分布在各碟片上,所述各碟片 中的新增預(yù)留區(qū)域分別分布在所述各碟片中由半徑為[R/N,R/M]的同心圓組成的區(qū)域,所 述新增預(yù)留區(qū)域中的邏輯地址總數(shù)為所述原始預(yù)留區(qū)域中的邏輯地址總數(shù)的n倍,M和N為 預(yù)設(shè)的大于I且小于2的實(shí)數(shù),M〈N,n為預(yù)設(shè)的大于I的正整數(shù)。
[0019]結(jié)合第一方面或第一方面的第一種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式 中,本發(fā)明實(shí)施例提供的磁盤(pán)重映射方法還包括:
[0020]獲取各硬盤(pán)所包含的碟片數(shù)、各碟片所包含的磁軌數(shù)以及各磁軌所包含的扇區(qū)個(gè) 數(shù);
[0021]根據(jù)所述各硬盤(pán)所包含的碟片數(shù)、各碟片所包含的磁軌數(shù)、各磁軌所包含的扇區(qū) 個(gè)數(shù)以及各磁軌中首尾扇區(qū)對(duì)應(yīng)的首尾邏輯地址,生成各磁軌與所述磁軌中首尾邏輯地址 的對(duì)應(yīng)關(guān)系。
[0022]本發(fā)明實(shí)施例的第二方面提供了一種磁盤(pán)重映射裝置,包括:
[0023]第一獲取單元,用于當(dāng)讀取到各碟片上的壞道扇區(qū)時(shí),根據(jù)所述壞道扇區(qū)的邏輯 地址獲取所述壞道扇區(qū)的位置;
[0024]第一遷移單元,用于若所述第一獲取單元獲取到的所述壞道扇區(qū)位于內(nèi)道區(qū)域 中,則將所述壞道扇區(qū)中的數(shù)據(jù)遷移到原始預(yù)留區(qū)域中,并將所述壞道扇區(qū)的邏輯地址對(duì) 應(yīng)的物理地址重新指向到所述壞道扇區(qū)中的數(shù)據(jù)遷移后的物理地址;
[0025]第二遷移單元,用于若所述第一獲取單元獲取到的所述壞道扇區(qū)位于非內(nèi)道區(qū)域 中,則將滿足預(yù)設(shè)的區(qū)域映射條件的壞道扇區(qū)所在壞道區(qū)域中的數(shù)據(jù)遷移到預(yù)設(shè)的新增預(yù) 留區(qū)域中,并將所述壞道區(qū)域中數(shù)據(jù)的邏輯地址對(duì)應(yīng)的物理地址分別重新指向到所述壞道 區(qū)域中的數(shù)據(jù)遷移后的物理地址;
[0026]讀取模塊,用于根據(jù)所述第一遷移單元和所述第二遷移單元重新指向的數(shù)據(jù)的邏 輯地址從所述邏輯地址對(duì)應(yīng)的扇區(qū)讀取所述數(shù)據(jù);
[0027]其中,所述內(nèi)道區(qū)域?yàn)榈幸訰/P為半徑的同心圓對(duì)應(yīng)的磁軌以?xún)?nèi)的區(qū)域,其 中,R為所述碟片的半徑,P為預(yù)設(shè)的I且小于R的實(shí)數(shù);所述非內(nèi)道區(qū)域?yàn)樗龅铣?所述內(nèi)道區(qū)域外的區(qū)域。
[0028]結(jié)合第二方面,在第二方面的第一種可能的實(shí)現(xiàn)方式中,所述第二遷移單元包 括:[0029]掃描子單元,用于若所述第一獲取單元獲取到的所述壞道扇區(qū)位于非內(nèi)道區(qū)域 中,則對(duì)所述壞道扇區(qū)所在壞道區(qū)域進(jìn)行掃描,所述壞道扇區(qū)所在壞道區(qū)域?yàn)橛晌锢淼刂?為[X-Q,X+Q]的扇區(qū)構(gòu)成的區(qū)域,其中,X為所述壞道扇區(qū)的物理地址,Q為預(yù)設(shè)的正整數(shù);
[0030]遷移子單元,用于當(dāng)所述掃描子單元掃描的結(jié)果為所述壞道區(qū)域中存在其他壞道 扇區(qū)時(shí),所述壞道區(qū)域滿足預(yù)設(shè)的區(qū)域映射條件,將所述壞道區(qū)域中的數(shù)據(jù)遷移到預(yù)設(shè)的 新增預(yù)留區(qū)域中。
[0031]結(jié)合第二方面的第一種可能的實(shí)現(xiàn)方式,在第二方面的第二種可能的實(shí)現(xiàn)方式 中,所述第二遷移單元還包括:
[0032]處理子單元,用于當(dāng)所述掃描子單元掃描的結(jié)果為所述壞道區(qū)域中不存在其他壞 道扇區(qū)時(shí),所述壞道區(qū)域不滿足預(yù)設(shè)的區(qū)域映射條件,將所述壞道扇區(qū)中的數(shù)據(jù)遷移到預(yù) 設(shè)的新增預(yù)留區(qū)域中,并將所述壞道扇區(qū)中的數(shù)據(jù)的邏輯地址對(duì)應(yīng)的物理地址重新指向到 所述壞道扇區(qū)中的數(shù)據(jù)遷移后的物理地址。
[0033]結(jié)合第二方面或第二方面的第一種可能的實(shí)現(xiàn)方式,在第二方面的第三種可能的 實(shí)現(xiàn)方式中,本實(shí)施例提供的磁盤(pán)重映射裝置還包括:
[0034]預(yù)配置模塊,用于在所述第一獲取模塊獲取所述壞道扇區(qū)的位置之前,預(yù)配置所 述新增預(yù)留區(qū)域,所述新增預(yù)留區(qū)域均勻分布在各碟片上,所述各碟片中的新增預(yù)留區(qū)域 分別分布在所述各碟片中由半徑為[R/N,R/M]的同心圓組成的區(qū)域,所述新增預(yù)留區(qū)域中 的邏輯地址總數(shù)為所述原始預(yù)留區(qū)域中的邏輯地址總數(shù)的n倍,M和N為預(yù)設(shè)的大于I且 小于2的實(shí)數(shù),M〈N,n為預(yù)設(shè)的大于I的正整數(shù)。
[0035]結(jié)合第二方面或第二方面的第一種可能的實(shí)現(xiàn)方式,在第二方面的第四種可能的 實(shí)現(xiàn)方式中,本實(shí)施例提供的磁盤(pán)重映射裝置還包括:
[0036]第二獲取模塊,用于在所述第一獲取模塊獲取所述壞道扇區(qū)的位置之前,獲取各 硬盤(pán)所包含的碟片數(shù)、各碟片所包含的磁軌數(shù)以及各磁軌所包含的扇區(qū)個(gè)數(shù);
[0037]生成模塊,用于根據(jù)所述第二獲取模塊獲取的所述各硬盤(pán)所包含的碟片數(shù)、各碟 片所包含的磁軌數(shù)、各磁軌所包含的扇區(qū)個(gè)數(shù)以及各磁軌中首尾扇區(qū)對(duì)應(yīng)的首尾邏輯地 址,生成各磁軌與所述磁軌中首尾邏輯地址的對(duì)應(yīng)關(guān)系。
[0038]本發(fā)明實(shí)施例的技術(shù)效果是:通過(guò)對(duì)壞道扇區(qū)的位置進(jìn)行區(qū)分,采用就近的原則 將內(nèi)道區(qū)域中的壞道扇區(qū)的邏輯地址對(duì)應(yīng)的物理地址重新指向到原始預(yù)留區(qū)域中數(shù)據(jù)遷 移后的物理地址,將非內(nèi)道區(qū)域中的壞道扇區(qū)的邏輯地址對(duì)應(yīng)的物理地址重新指向到新增 預(yù)留區(qū)域中數(shù)據(jù)遷移后的物理地址,減少了磁頭從良好扇區(qū)向預(yù)留區(qū)域擺動(dòng)的距離,從而 減少了磁頭擺動(dòng)帶來(lái)了延時(shí);通過(guò)將滿足預(yù)設(shè)的區(qū)域映射條件的壞道區(qū)域中的數(shù)據(jù)整體遷 移到新增預(yù)留區(qū)域中,使得當(dāng)讀取到該壞道區(qū)域中的數(shù)據(jù)時(shí),直接從新增預(yù)留區(qū)域中進(jìn)行 整體讀取,避免了由于某個(gè)區(qū)域中存在多個(gè)相近但不連續(xù)的壞道扇區(qū)導(dǎo)致磁頭反復(fù)擺動(dòng), 從而大大減少了因磁頭反復(fù)擺動(dòng)帶來(lái)的延時(shí)。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0039]為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作一簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖是本發(fā) 明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0040]圖1為本發(fā)明磁盤(pán)重映射方法實(shí)施例一的流程圖;
[0041]圖2為本發(fā)明磁盤(pán)重映射方法實(shí)施例一中碟片的結(jié)構(gòu)示意圖;
[0042]圖3為本發(fā)明磁盤(pán)重映射方法實(shí)施例二的流程圖;
[0043]圖4為本發(fā)明磁盤(pán)重映射裝置實(shí)施例一的結(jié)構(gòu)示意圖;
[0044]圖5為本發(fā)明磁盤(pán)重映射裝置實(shí)施例二的結(jié)構(gòu)示意圖;
[0045]圖6為本發(fā)明磁盤(pán)重映射裝置實(shí)施例三的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0046]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例 中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是 本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員 在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0047]圖1為本發(fā)明磁盤(pán)重映射方法實(shí)施例一的流程圖,如圖1所示,本實(shí)施例提供了一 種磁盤(pán)重映射方法,可以包括如下步驟:
[0048]步驟101,當(dāng)讀取到各碟片上的壞道扇區(qū)時(shí),根據(jù)所述壞道扇區(qū)的邏輯地址獲取所 述壞道扇區(qū)的位置。
[0049]本步驟為當(dāng)讀取到各碟片上存在壞道扇區(qū),則通過(guò)數(shù)據(jù)讀取可以讀取到各碟片上 的壞道扇區(qū),可以根據(jù)該壞道扇區(qū)的邏輯地址獲取到該壞道扇區(qū)的位置,此處的邏輯地址 可以為L(zhǎng)BA,通過(guò)邏輯地址可以獲取到壞道扇區(qū)所處的位置。本實(shí)施例提供的磁盤(pán)重映射方 法可以應(yīng)用于使用傳統(tǒng)硬盤(pán)建立磁盤(pán)陣列(Redundant Arrays of Inexpensive Disks;以 下簡(jiǎn)稱(chēng):RAID)組的各種存儲(chǔ)軟件產(chǎn)品,包括電腦操作系統(tǒng)、存儲(chǔ)控制軟件等。在對(duì)創(chuàng)建的 RAID組中的數(shù)據(jù)進(jìn)行輸入輸出(Input Output ;以下簡(jiǎn)稱(chēng):10)操作時(shí),如果RAID組中各硬 盤(pán)中各碟片上存在壞道扇區(qū),則通過(guò)數(shù)據(jù)讀取可以讀取到RAID組中各碟片上的壞道扇區(qū)。 當(dāng)讀取到RAID組中的壞道扇區(qū)時(shí),可以根據(jù)該壞道扇區(qū)的邏輯地址獲取到該壞道扇區(qū)的 位置,此處的邏輯地址可以為L(zhǎng)BA,通過(guò)邏輯地址可以獲取到壞道扇區(qū)所處的位置,可以為 獲取到壞道扇區(qū)位于哪個(gè)磁軌上。在本實(shí)施例中,一個(gè)RAID組由多個(gè)硬盤(pán)組成,一個(gè)硬盤(pán) 由多個(gè)碟片組成,一個(gè)碟片由多個(gè)磁軌組成,每個(gè)磁軌包含多個(gè)扇區(qū)。其中,磁軌可以為碟 片上以碟片中心為圓心的同心圓,碟片上的一個(gè)同心圓可以對(duì)應(yīng)一個(gè)磁軌(track),即以碟 片中心為圓心,不同半徑對(duì)應(yīng)不同的磁軌。由于同一碟片上的各扇區(qū)是連續(xù)的,即同一碟片 上不同半徑的同心圓對(duì)應(yīng)的磁軌中扇區(qū)對(duì)應(yīng)的邏輯地址可以按照半徑從大到小或從小到 大的順序連續(xù)排列,而同一磁軌中扇區(qū)對(duì)應(yīng)的邏輯地址可以按照逆時(shí)針或順時(shí)針的順序連 續(xù)排列,則通過(guò)邏輯地址可以獲取到壞道扇區(qū)所處的位置。
[0050]步驟102,根據(jù)壞道扇區(qū)的位置判斷壞道扇區(qū)是否位于內(nèi)道區(qū)域中,如果是,則執(zhí) 行步驟103,否則執(zhí)行步驟104。
[0051]在獲取到壞道扇區(qū)的位置,即獲取到壞道扇區(qū)所處的磁軌后,根據(jù)壞道扇區(qū)的位 置判斷壞道扇區(qū)是否位于內(nèi)道區(qū)域中,可以根據(jù)磁軌所在的同心圓的半徑來(lái)判斷壞道扇區(qū) 是否位于內(nèi)道區(qū)域中,如果是,則執(zhí)行步驟103,否則執(zhí)行步驟104。本實(shí)施例中的內(nèi)道區(qū)域 可以為碟片中以R/P為半徑的同心圓對(duì)應(yīng)的磁軌以?xún)?nèi)的區(qū)域,其中,R為所述碟片的半徑,P為預(yù)設(shè)的大于I且小于R的實(shí)數(shù),優(yōu)選地可以將P設(shè)置為大于2 ;非內(nèi)道區(qū)域?yàn)樗龅?除所述內(nèi)道區(qū)域外的區(qū)域。圖2為本發(fā)明磁盤(pán)重映射方法實(shí)施例一中碟片的結(jié)構(gòu)示意圖, 如圖2所示,由于一個(gè)碟片包含上萬(wàn)個(gè)磁軌,每個(gè)磁軌與碟片中的一個(gè)同心圓相對(duì)應(yīng)。本 實(shí)施例通過(guò)設(shè)置參數(shù)P的值來(lái)將碟片的存儲(chǔ)區(qū)域分為內(nèi)道區(qū)域與外道區(qū)域,通常情況下,P 可以取值為3,即將碟片中以R/3為半徑的同心圓對(duì)應(yīng)的磁軌以?xún)?nèi)的扇區(qū)設(shè)為內(nèi)道區(qū)域,以 R/3為半徑的同心圓對(duì)應(yīng)的磁軌以外的扇區(qū)設(shè)為非內(nèi)道區(qū)域。需要指出的是,R/P的值不一 定恰好等于某個(gè)磁軌對(duì)應(yīng)的同心圓的半徑的大小,此處可以選擇半徑值與R/P最接近的磁 軌。
[0052]步驟103,將所述壞道扇區(qū)中的數(shù)據(jù)遷移到原始預(yù)留區(qū)域中,并將壞道扇區(qū)的邏輯 地址對(duì)應(yīng)的物理地址重新指向到所述壞道扇區(qū)中的數(shù)據(jù)遷移后的物理地址。
[0053]當(dāng)壞道扇區(qū)的邏輯地址位于內(nèi)道區(qū)域中時(shí),將所述壞道扇區(qū)中的數(shù)據(jù)遷移到原始 預(yù)留區(qū)域中,并將壞道扇區(qū)的邏輯地址對(duì)應(yīng)的物理地址重新指向到所述壞道扇區(qū)中的數(shù)據(jù) 遷移后的物理地址,即采用硬盤(pán)自帶的重映射機(jī)制,將壞道扇區(qū)的邏輯地址重映射到原始 預(yù)留區(qū)域中。此處的原始預(yù)留區(qū)域?yàn)橛脖P(pán)自帶的預(yù)留區(qū)域,通常位于碟片的內(nèi)道中。
[0054]步驟104,將滿足預(yù)設(shè)的區(qū)域映射條件的壞道扇區(qū)所在壞道區(qū)域中的數(shù)據(jù),遷移到 預(yù)設(shè)的新增預(yù)留區(qū)域中,并將壞道區(qū)域中數(shù)據(jù)的邏輯地址對(duì)應(yīng)的物理地址分別重新指向到 所述壞道區(qū)域中的數(shù)據(jù)遷移后的物理地址。
[0055]當(dāng)壞道扇區(qū)的邏輯地址位于非內(nèi)道區(qū)域中時(shí),將滿足預(yù)設(shè)的區(qū)域映射條件的壞道 扇區(qū)所在壞道區(qū)域中的數(shù)據(jù),遷移到預(yù)設(shè)的新增預(yù)留區(qū)域中,并將所述壞道區(qū)域中數(shù)據(jù)的 邏輯地址對(duì)應(yīng)的物理地址分別重新指向到所述壞道區(qū)域中的數(shù)據(jù)遷移后的物理地址。此處 的壞道扇區(qū)所在的壞道區(qū)域可以指該壞道扇區(qū)附近的區(qū)域,區(qū)域范圍可以根據(jù)實(shí)際情況來(lái) 設(shè)定。此處所指的區(qū)域映射條件可以為該壞道扇區(qū)所在的壞道區(qū)域中還存在其他壞道扇 區(qū),還可以為相鄰的多個(gè)track上組成的壞道區(qū)域中存在多個(gè)壞道扇區(qū)。新增預(yù)留區(qū)域?yàn)?本實(shí)施例自定義的用于邏輯地址重新指向的預(yù)留區(qū)域,該新增預(yù)留區(qū)域可以位于碟片中存 儲(chǔ)區(qū)域的中間位置,而非內(nèi)道位置。當(dāng)壞道扇區(qū)所在的壞道區(qū)域中還存在其他壞道扇區(qū)時(shí), 表明該壞道區(qū)域滿足預(yù)設(shè)的區(qū)域映射條件,否則該壞道區(qū)域不滿足預(yù)設(shè)的區(qū)域映射條件。 本實(shí)施例將滿足預(yù)設(shè)的區(qū)域映射條件的壞道區(qū)域中的數(shù)據(jù)整體遷移到新增預(yù)留區(qū)域中,可 以將這些數(shù)據(jù)整體遷移到新增預(yù)留區(qū)域中與該壞道區(qū)域距離最近的空閑區(qū)域。當(dāng)壞道區(qū)域 不滿足預(yù)設(shè)的區(qū)域映射條件時(shí),可以將壞道扇區(qū)的邏輯地址對(duì)應(yīng)的物理地址重新指向到所 述壞道扇區(qū)中的數(shù)據(jù)遷移后的物理地址。
[0056]步驟105,根據(jù)數(shù)據(jù)的邏輯地址從邏輯地址對(duì)應(yīng)的區(qū)域讀取所述數(shù)據(jù)。
[0057]在完成數(shù)據(jù)的遷移和邏輯地址的重新指向后,當(dāng)后續(xù)再對(duì)該RAID組中的數(shù)據(jù)進(jìn) 行IO操作時(shí),則根據(jù)重新指向后的邏輯地址來(lái)從邏輯地址對(duì)應(yīng)的區(qū)域中讀取數(shù)據(jù)。由于硬 盤(pán)中壞道扇區(qū)的邏輯地址已被重新指向,在讀取RAID組中的數(shù)據(jù)時(shí),良好扇區(qū)中數(shù)據(jù)的邏 輯地址未被重新指向,則仍從良好扇區(qū)中讀取數(shù)據(jù);出現(xiàn)壞道扇區(qū)的扇區(qū)中的數(shù)據(jù)的邏輯 地址被重新指向,對(duì)于內(nèi)道區(qū)域中的數(shù)據(jù),則從原始預(yù)留區(qū)域中讀取重新指向后的邏輯地 址對(duì)應(yīng)的數(shù)據(jù),對(duì)于非內(nèi)道區(qū)域中的數(shù)據(jù),則從新增預(yù)留區(qū)域中讀取數(shù)據(jù)。在本實(shí)施例中, 當(dāng)掃描出一個(gè)壞道扇區(qū)附近還存在其余壞道扇區(qū)時(shí),將多個(gè)相近但不連續(xù)的壞道扇區(qū)所在 的整個(gè)壞道區(qū)域中的數(shù)據(jù)進(jìn)行整體遷移,以及該壞道區(qū)域中邏輯地址的整體重新指向,從而當(dāng)讀取到該壞道區(qū)域中的數(shù)據(jù)時(shí),直接從新增預(yù)留區(qū)域中進(jìn)行整體讀取,避免了由于某 個(gè)區(qū)域中存在多個(gè)相近但不連續(xù)的壞道扇區(qū)導(dǎo)致磁頭反復(fù)擺動(dòng),從而大大減少了因磁頭反 復(fù)擺動(dòng)帶來(lái)的磁盤(pán)讀寫(xiě)延時(shí)。
[0058]本實(shí)施例提供了一種磁盤(pán)重映射方法,通過(guò)對(duì)壞道扇區(qū)的位置進(jìn)行區(qū)分,采用就 近的原則將內(nèi)道區(qū)域中的壞道扇區(qū)的邏輯地址對(duì)應(yīng)的物理地址重新指向到原始預(yù)留區(qū)域 中數(shù)據(jù)遷移后的物理地址,將非內(nèi)道區(qū)域中的壞道扇區(qū)的邏輯地址對(duì)應(yīng)的物理地址重新指 向到新增預(yù)留區(qū)域中數(shù)據(jù)遷移后的物理地址,減少了磁頭從良好扇區(qū)向預(yù)留區(qū)域擺動(dòng)的距 離,從而減少了磁頭擺動(dòng)帶來(lái)了延時(shí);通過(guò)將滿足預(yù)設(shè)的區(qū)域映射條件的壞道區(qū)域中的數(shù) 據(jù)整體遷移到新增預(yù)留區(qū)域中,使得當(dāng)讀取到該壞道區(qū)域中的數(shù)據(jù)時(shí),直接從新增預(yù)留區(qū) 域中進(jìn)行整體讀取,避免了由于某個(gè)區(qū)域中存在多個(gè)相近但不連續(xù)的壞道扇區(qū)導(dǎo)致磁頭反 復(fù)擺動(dòng),從而大大減少了因磁頭反復(fù)擺動(dòng)帶來(lái)的延時(shí)。
[0059]圖3為本發(fā)明磁盤(pán)重映射方法實(shí)施例二的流程圖,如圖3所示,本實(shí)施例提供了一 種磁盤(pán)重映射方法,可以包括如下步驟:
[0060]步驟301,獲取RAID組中各硬盤(pán)所包含的碟片數(shù)、各碟片所包含的磁軌數(shù)以及各 磁軌所包含的扇區(qū)個(gè)數(shù)。
[0061 ] 在本實(shí)施例中,一個(gè)RAID組由多個(gè)硬盤(pán)組成,一個(gè)硬盤(pán)由多個(gè)碟片組成,一個(gè)碟 片由多個(gè)磁軌組成,每個(gè)磁軌包含多個(gè)扇區(qū)。本步驟可以為通過(guò)模式頁(yè)(Mode Page)或 規(guī)格說(shuō)明書(shū)查出一個(gè)硬盤(pán)所包含的碟片數(shù)、磁頭數(shù),每個(gè)碟片所包含的磁軌數(shù),一個(gè)磁軌 所包含的扇區(qū)數(shù),并可以得到硬盤(pán)本身預(yù)留的原始預(yù)留區(qū)域,此處假設(shè)一個(gè)硬盤(pán)中本身預(yù) 留的原始預(yù)留區(qū)域中包含G個(gè)扇區(qū),即預(yù)留有G個(gè)LBA?,F(xiàn)在已知的硬盤(pán)中單個(gè)碟片包 含100K-200K個(gè)磁軌,每個(gè)磁軌包含2K-3K個(gè)扇區(qū),硬盤(pán)本身預(yù)留的原始預(yù)留區(qū)域包含 2048-8192個(gè)扇區(qū),每個(gè)扇區(qū)對(duì)應(yīng)一個(gè)LBA,即原始預(yù)留區(qū)域包含2048-8192個(gè)LBA。
[0062]步驟302,根據(jù)各硬盤(pán)所包含的碟片數(shù)、各碟片所包含的磁軌數(shù)、各磁軌所包含的 扇區(qū)個(gè)數(shù)以及各磁軌中首尾扇區(qū)對(duì)應(yīng)的首尾邏輯地址,生成各磁軌與所述磁軌中首尾邏輯 地址的對(duì)應(yīng)關(guān)系。
[0063]當(dāng)獲取到各硬盤(pán)所包含的碟片數(shù)、各碟片所包含的磁軌數(shù)、各磁軌所包含的扇區(qū) 個(gè)數(shù)后,由于磁軌中各扇區(qū)的邏輯地址按照順序排列,根據(jù)各硬盤(pán)所包含的碟片數(shù)、各碟片 所包含的磁軌數(shù)、各磁軌所包含的扇區(qū)個(gè)數(shù)便可以計(jì)算出每個(gè)磁軌中各首尾扇區(qū)對(duì)應(yīng)的首 尾邏輯地址,此處的首尾邏輯地址可以為磁軌中首扇區(qū)對(duì)應(yīng)的邏輯地址和尾扇區(qū)對(duì)應(yīng)的邏 輯地址。在計(jì)算出各磁軌中首尾扇區(qū)對(duì)應(yīng)的首尾邏輯地址后,便可以生成各磁軌與磁軌中 首尾邏輯地址的對(duì)應(yīng)關(guān)系。
[0064]步驟303,在創(chuàng)建所述RAID組時(shí),在所述RAID組中預(yù)設(shè)所述新增預(yù)留區(qū)域,所述新 增預(yù)留區(qū)域均勻分布在所述RAID組中的各碟片上。
[0065]在創(chuàng)建陣列產(chǎn)品的RAID組時(shí),存儲(chǔ)空間按照條帶化分布在RAID組中的各硬盤(pán)中, 在該RAID組中自定義一個(gè)新增預(yù)留區(qū)域。在本實(shí)施例中,新增預(yù)留區(qū)域均勻分布在RAID組 中的各碟片上,使得各碟片上一定數(shù)量的磁軌之間共用新增預(yù)留區(qū)域中的一些預(yù)留扇區(qū)。 在本實(shí)施例中,新增預(yù)留區(qū)域與原始預(yù)留區(qū)域的位置不同,各碟片中的新增預(yù)留區(qū)域分別 分布在所述各碟片中由半徑為[R/N,R/M]的同心圓組成的區(qū)域,即該新增預(yù)留區(qū)域?yàn)橛啥?個(gè)同心圓組成的一個(gè)條帶區(qū)域,其中最小半徑為R/N,最大半徑為R/M,M和N均為預(yù)設(shè)的大于I且小于2的實(shí)數(shù),例如N可以取值為1.6,M可以取值為2,。可見(jiàn),本實(shí)施例將新增預(yù) 留區(qū)域設(shè)置在碟片的中心區(qū)域,從而相比于現(xiàn)有技術(shù)中位于內(nèi)道的預(yù)留區(qū)域,減小了各磁 軌與預(yù)留區(qū)域之間的距離。本實(shí)施例中的新增預(yù)留區(qū)域中的邏輯地址總數(shù)為所述原始預(yù)留 區(qū)域中的邏輯地址總數(shù)的n倍,假設(shè)一個(gè)硬盤(pán)中包含A塊碟片,則每個(gè)碟片中的新增預(yù)留區(qū) 域中可以包含nG/A個(gè)邏輯地址,n為預(yù)設(shè)的大于I的正整數(shù)。
[0066]步驟304,當(dāng)讀取到RAID組中各碟片上的壞道扇區(qū)時(shí),根據(jù)所述壞道扇區(qū)的邏輯 地址獲取所述壞道扇區(qū)的位置。
[0067]在本實(shí)施例中,當(dāng)首次讀取RAID組中的數(shù)據(jù)時(shí),可以在讀取到RAID組中的壞道扇 區(qū)時(shí),先降低完成IO操作,并記錄壞道扇區(qū)的邏輯地址。然后采用RAID組校驗(yàn)算法進(jìn)行數(shù) 據(jù)重構(gòu),若通過(guò)數(shù)據(jù)重構(gòu)無(wú)法修復(fù)該壞道扇區(qū),則可以先根據(jù)壞道扇區(qū)的邏輯地址獲取該 壞道扇區(qū)的位置,即獲取該壞道扇區(qū)位于哪個(gè)磁軌上??梢愿鶕?jù)上述步驟302生成的各磁 軌與磁軌中首尾邏輯地址的對(duì)應(yīng)關(guān)系來(lái)獲取壞道扇區(qū)的位置,即判斷該壞道扇區(qū)的邏輯地 址位于那組首尾邏輯地址構(gòu)成的地址區(qū)間內(nèi),則表明該壞道扇區(qū)位于該首尾邏輯地址對(duì)應(yīng) 的磁軌上。
[0068]步驟305,根據(jù)壞道扇區(qū)的位置判斷壞道扇區(qū)是否位于內(nèi)道區(qū)域中,如果是,則執(zhí) 行步驟306,否則執(zhí)行步驟307。
[0069]在獲取到壞道扇區(qū)的位置,即獲取到壞道扇區(qū)所處的磁軌后,根據(jù)壞道扇區(qū)的位 置判斷壞道扇區(qū)是否位于內(nèi)道區(qū)域中,可以根據(jù)磁軌所在的同心圓的半徑來(lái)判斷壞道扇區(qū) 是否位于內(nèi)道區(qū)域中,如果是,則執(zhí)行步驟306,否則執(zhí)行步驟307。本實(shí)施例中的內(nèi)道區(qū)域 可以為碟片中以R/P為半徑的同心圓對(duì)應(yīng)的磁軌以?xún)?nèi)的區(qū)域,其中,R為碟片的半徑,P為預(yù) 設(shè)的大于I且小于R的實(shí)數(shù);非內(nèi)道區(qū)域?yàn)榈铣齼?nèi)道區(qū)域外的區(qū)域。
[0070]步驟306,將所述壞道扇區(qū)中的數(shù)據(jù)遷移到原始預(yù)留區(qū)域中,并將壞道扇區(qū)的邏輯 地址對(duì)應(yīng)的物理地址重新指向到所述壞道扇區(qū)中的數(shù)據(jù)遷移后的物理地址。
[0071]當(dāng)壞道扇區(qū)的邏輯地址位于內(nèi)道區(qū)域中時(shí),將所述壞道扇區(qū)中的數(shù)據(jù)遷移到原始 預(yù)留區(qū)域中,并將壞道扇區(qū)的邏輯地址對(duì)應(yīng)的物理地址重新指向到所述壞道扇區(qū)中的數(shù)據(jù) 遷移后的物理地址,即采用硬盤(pán)自帶的重映射機(jī)制,將壞道扇區(qū)的邏輯地址對(duì)應(yīng)的物理地 址重新指向到原始預(yù)留區(qū)域中。此處的原始預(yù)留區(qū)域?yàn)橛脖P(pán)自帶的預(yù)留區(qū)域,通常位于碟 片的內(nèi)道中。
[0072]步驟307,判斷該壞道扇區(qū)所在壞道區(qū)域是否滿足預(yù)設(shè)的區(qū)域映射條件,如果是, 則執(zhí)行步驟308,否則執(zhí)行步驟309。
[0073]當(dāng)壞道扇區(qū)的邏輯地址位于非內(nèi)道區(qū)域中時(shí),繼續(xù)判斷該壞道扇區(qū)所在壞道區(qū)域 是否滿足預(yù)設(shè)的區(qū)域映射條件,如果是,則執(zhí)行步驟308,否則執(zhí)行步驟309。本步驟可以為 對(duì)壞道扇區(qū)所在壞道區(qū)域進(jìn)行掃描,判斷該壞道區(qū)域中是否存在其他壞道扇區(qū),此處的壞 道區(qū)域只是為了定義壞道扇區(qū)附近的區(qū)域而命名的,并不代表其他含義,如并非壞道區(qū)域 中所有扇區(qū)均為壞道扇區(qū)。其中,壞道扇區(qū)所在壞道區(qū)域?yàn)橛晌锢淼刂窞閇X-Q,X+Q]的扇 區(qū)構(gòu)成的區(qū)域,其中,X為所述壞道扇區(qū)的物理地址,Q為預(yù)設(shè)的正整數(shù)。即本步驟通過(guò)對(duì)物 理地址X周?chē)纳葏^(qū)進(jìn)行掃描,以判斷其周?chē)欠翊嬖谂c其相近的其他壞道扇區(qū)。此處的 相近可以是指扇區(qū)在物理位置上的相近。本實(shí)施例可以通過(guò)設(shè)定參數(shù)Q,來(lái)決定所要遷移的 區(qū)域大小。[0074]步驟308,將壞道區(qū)域中的數(shù)據(jù)遷移到預(yù)設(shè)的新增預(yù)留區(qū)域中,并將所述壞道區(qū)域 中數(shù)據(jù)對(duì)應(yīng)的邏輯地址對(duì)應(yīng)的物理地址分別重新指向到所述壞道區(qū)域中的數(shù)據(jù)遷移后的 物理地址。
[0075]如果壞道扇區(qū)所在壞道區(qū)域滿足預(yù)設(shè)的區(qū)域映射條件,即該壞道區(qū)域中存在至少 兩個(gè)壞道扇區(qū),這兩個(gè)壞道扇區(qū)可能相近但不連續(xù),本實(shí)施例將該壞道區(qū)域中的數(shù)據(jù)整體 遷移到預(yù)設(shè)的新增預(yù)留區(qū)域中,并將壞道區(qū)域中數(shù)據(jù)的邏輯地址對(duì)應(yīng)的物理地址分別重新 指向到所述壞道區(qū)域中的數(shù)據(jù)遷移后的物理地址。即當(dāng)在物理地址為[X-Q,X+Q]的扇區(qū) 構(gòu)成的壞道區(qū)域中掃描到至少兩個(gè)壞道扇區(qū)時(shí),本實(shí)施例不僅將至少兩個(gè)壞道扇區(qū)的數(shù)據(jù) 遷移到新增預(yù)留區(qū)域,還將壞道扇區(qū)周?chē)钠渌己蒙葏^(qū)的數(shù)據(jù)也一起遷移到新增預(yù)留區(qū) 域,從而當(dāng)需要讀取物理地址為[X-Q,X+Q]的扇區(qū)中的數(shù)據(jù)時(shí),不會(huì)因其中數(shù)據(jù)不在同一 區(qū)域而使得磁頭來(lái)回?cái)[動(dòng)。
[0076]步驟309,將壞道扇區(qū)中的數(shù)據(jù)遷移到新增預(yù)留區(qū)域中,并將壞道扇區(qū)中的數(shù)據(jù)的 邏輯地址對(duì)應(yīng)的物理地址重新指向到所述壞道扇區(qū)中的數(shù)據(jù)遷移后的物理地址。
[0077]如果壞道扇區(qū)所在壞道區(qū)域不滿足預(yù)設(shè)的區(qū)域映射條件,即該壞道區(qū)域中只存在 一個(gè)壞道扇區(qū),則無(wú)需對(duì)該壞道區(qū)域中的數(shù)據(jù)進(jìn)行整體遷移,而只將壞道扇區(qū)中的數(shù)據(jù)遷 移到新增預(yù)留區(qū)域中,并將該壞道扇區(qū)中的數(shù)據(jù)的邏輯地址對(duì)應(yīng)的物理地址重新指向到所 述壞道扇區(qū)中的數(shù)據(jù)遷移后的物理地址,從而可以降低新增預(yù)留區(qū)域的負(fù)擔(dān)。
[0078]步驟310,根據(jù)數(shù)據(jù)的邏輯地址從邏輯地址對(duì)應(yīng)的扇區(qū)讀取數(shù)據(jù)。
[0079]在完成數(shù)據(jù)的遷移和邏輯地址的重新指向后,當(dāng)后續(xù)再對(duì)該RAID組中的數(shù)據(jù)進(jìn) 行IO操作時(shí),則根據(jù)重新指向后的邏輯地址來(lái)從邏輯地址對(duì)應(yīng)的區(qū)域中讀取數(shù)據(jù)。在讀取 RAID組中的數(shù)據(jù)時(shí),良好扇區(qū)中數(shù)據(jù)的邏輯地址未被重映射,則仍從良好扇區(qū)中讀取數(shù)據(jù)。 出現(xiàn)壞道扇區(qū)的扇區(qū)中的數(shù)據(jù)的邏輯地址被重新指向,對(duì)于內(nèi)道區(qū)域中的數(shù)據(jù),則從原始 預(yù)留區(qū)域中讀取重新指向后的邏輯地址對(duì)應(yīng)的數(shù)據(jù);對(duì)于非內(nèi)道區(qū)域中的數(shù)據(jù),如果一個(gè) 邏輯地址周?chē)膮^(qū)域中的邏輯地址被整體重新指向,則直接訪問(wèn)新增預(yù)留區(qū)域中,如果一 個(gè)邏輯地址被單個(gè)重新指向,則從新增預(yù)留區(qū)域中讀取數(shù)據(jù)。
[0080]本實(shí)施例提供了一種磁盤(pán)重映射方法,通過(guò)對(duì)壞道扇區(qū)的位置進(jìn)行區(qū)分,采用就 近的原則將內(nèi)道區(qū)域中的壞道扇區(qū)的邏輯地址對(duì)應(yīng)的物理地址重新指向到原始預(yù)留區(qū)域 中數(shù)據(jù)遷移后的物理地址,將非內(nèi)道區(qū)域中的壞道扇區(qū)的邏輯地址對(duì)應(yīng)的物理地址重新指 向到新增預(yù)留區(qū)域中數(shù)據(jù)遷移后的物理地址;通過(guò)將滿足預(yù)設(shè)的區(qū)域映射條件的壞道區(qū)域 中的數(shù)據(jù)整體遷移到新增預(yù)留區(qū)域中,使得當(dāng)讀取到該壞道區(qū)域中的數(shù)據(jù)時(shí),直接從新增 預(yù)留區(qū)域中進(jìn)行整體讀取,避免了由于某個(gè)區(qū)域中存在多個(gè)相近但不連續(xù)的壞道扇區(qū)導(dǎo)致 磁頭反復(fù)擺動(dòng),從而大大減少了因磁頭反復(fù)擺動(dòng)帶來(lái)的延時(shí)。
[0081]本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述各方法實(shí)施例的全部或部分步驟可以通 過(guò)程序指令相關(guān)的硬件來(lái)完成。前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。該程 序在執(zhí)行時(shí),執(zhí)行包括上述各方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:R0M、RAM、磁碟 或者光盤(pán)等各種可以存儲(chǔ)程序代碼的介質(zhì)。
[0082]圖4為本發(fā)明磁盤(pán)重映射裝置實(shí)施例一的結(jié)構(gòu)示意圖,如圖4所示,本實(shí)施例提 供了一種磁盤(pán)重映射裝置,可以執(zhí)行上述方法實(shí)施例一中的各個(gè)步驟,此處不再贅述。本 實(shí)施例提供的磁盤(pán)重映射裝置可以包括第一獲取單元401、第一遷移單元402、第二遷移單元403和讀取單元404。其中,第一獲取單元401用于當(dāng)讀取到各碟片上的壞道扇區(qū)時(shí),根 據(jù)所述壞道扇區(qū)的邏輯地址獲取所述壞道扇區(qū)的位置。第一遷移單元402用于若第一獲取 單元401獲取到的所述壞道扇區(qū)位于內(nèi)道區(qū)域中,則將所述壞道扇區(qū)中的數(shù)據(jù)遷移到原始 預(yù)留區(qū)域中,并將所述壞道扇區(qū)的邏輯地址對(duì)應(yīng)的物理地址重新指向到所述壞道扇區(qū)中的 數(shù)據(jù)遷移后的物理地址。第二遷移單元403用于若第一獲取單元401獲取到的所述壞道扇 區(qū)位于非內(nèi)道區(qū)域中,則將滿足預(yù)設(shè)的區(qū)域映射條件的壞道扇區(qū)所在壞道區(qū)域中的數(shù)據(jù)遷 移到預(yù)設(shè)的新增預(yù)留區(qū)域中,并將所述壞道區(qū)域中數(shù)據(jù)的邏輯地址對(duì)應(yīng)的物理地址分別重 新指向到所述壞道區(qū)域中的數(shù)據(jù)遷移后的物理地址。讀取單元404用于根據(jù)第一遷移單元 402和第二遷移單元403重新指向的數(shù)據(jù)的邏輯地址從所述邏輯地址對(duì)應(yīng)的扇區(qū)讀取所述 數(shù)據(jù)。其中,所述內(nèi)道區(qū)域?yàn)榈幸訰/P為半徑的同心圓對(duì)應(yīng)的磁軌以?xún)?nèi)的區(qū)域,其中, R為所述碟片的半徑,P為預(yù)設(shè)的大于I且小于R的實(shí)數(shù);所述非內(nèi)道區(qū)域?yàn)樗龅铣?所述內(nèi)道區(qū)域外的區(qū)域。
[0083]圖5為本發(fā)明磁盤(pán)重映射裝置實(shí)施例二的結(jié)構(gòu)示意圖,如圖5所示,本實(shí)施例提供 了一種磁盤(pán)重映射裝置,可以執(zhí)行上述方法實(shí)施例二中的各個(gè)步驟,此處不再贅述。本實(shí)施 例提供的磁盤(pán)重映射裝置在上述圖4所示的基礎(chǔ)之上,第二遷移單元403可以包括掃描子 單元413和遷移子單元423。其中,掃描子單元413用于若第一獲取單元401獲取到的所述 壞道扇區(qū)位于非內(nèi)道區(qū)域中,則對(duì)所述壞道扇區(qū)所在壞道區(qū)域進(jìn)行掃描,所述壞道扇區(qū)所 在壞道區(qū)域?yàn)橛晌锢淼刂窞閇X-Q,X+Q]的扇區(qū)構(gòu)成的區(qū)域,其中,X為所述壞道扇區(qū)的物理 地址,Q為預(yù)設(shè)的正整數(shù)。遷移子單元423用于當(dāng)掃描子單元413掃描的結(jié)果為所述壞道 區(qū)域中存在其他壞道扇區(qū)時(shí),所述壞道區(qū)域滿足預(yù)設(shè)的區(qū)域映射條件,將所述壞道區(qū)域中 的數(shù)據(jù)遷移到預(yù)設(shè)的新增預(yù)留區(qū)域中,并將所述壞道區(qū)域中數(shù)據(jù)的邏輯地址對(duì)應(yīng)的物理地 址分別重新指向到所述壞道區(qū)域中的數(shù)據(jù)遷移后的物理地址。
[0084]進(jìn)一步地,本實(shí)施例提供的磁盤(pán)重映射裝置還可以包括處理單元501。處理單元 501用于當(dāng)掃描子單元413掃描的結(jié)果為所述壞道區(qū)域中不存在其他壞道扇區(qū)時(shí),所述壞 道區(qū)域不滿足預(yù)設(shè)的區(qū)域映射條件,將所述壞道扇區(qū)的邏輯地址對(duì)應(yīng)的物理地址重新指向 到所述壞道扇區(qū)中的數(shù)據(jù)遷移后的物理地址。
[0085]進(jìn)一步地,本實(shí)施例提供的磁盤(pán)重映射裝置還可以包括預(yù)配置單元502,預(yù)配置單 元502用于在第一獲取單元401獲取所述壞道扇區(qū)的位置之前,預(yù)配置所述新增預(yù)留區(qū)域, 所述新增預(yù)留區(qū)域均勻分布在各碟片上,所述各碟片中的新增預(yù)留區(qū)域分別分布在所述各 碟片中由半徑為[R/N,R/M]的同心圓組成的區(qū)域,所述新增預(yù)留區(qū)域中的邏輯地址總數(shù)為 所述原始預(yù)留區(qū)域中的邏輯地址總數(shù)的n倍,M和N為預(yù)設(shè)的大于I且小于2的實(shí)數(shù),M〈N, n為預(yù)設(shè)的大于I的正整數(shù)。
[0086]進(jìn)一步地,本實(shí)施例提供的磁盤(pán)重映射裝置還可以包括第二獲取單元503和生成 單元504。其中,第二獲取單元503用于在第一獲取單元401獲取所述壞道扇區(qū)的位置之 前,獲取各硬盤(pán)所包含的碟片數(shù)、各碟片所包含的磁軌數(shù)以及各磁軌所包含的扇區(qū)個(gè)數(shù)。生 成單元504用于根據(jù)第二獲取單元503獲取的所述各硬盤(pán)所包含的碟片數(shù)、各碟片所包含 的磁軌數(shù)、各磁軌所包含的扇區(qū)個(gè)數(shù)以及各磁軌中首尾扇區(qū)對(duì)應(yīng)的首尾邏輯地址,生成各 磁軌與所述磁軌中首尾邏輯地址的對(duì)應(yīng)關(guān)系。
[0087]本實(shí)施例提供了一種磁盤(pán)重映射裝置,通過(guò)對(duì)壞道扇區(qū)的位置進(jìn)行區(qū)分,采用就近的原則將內(nèi)道區(qū)域中的壞道扇區(qū)的邏輯地址對(duì)應(yīng)的物理地址重新指向到原始預(yù)留區(qū)域 中數(shù)據(jù)遷移后的物理地址,將非內(nèi)道區(qū)域中的壞道扇區(qū)的邏輯地址對(duì)應(yīng)的物理地址重新指 向到新增預(yù)留區(qū)域中數(shù)據(jù)遷移后的物理地址;通過(guò)將滿足預(yù)設(shè)的區(qū)域映射條件的壞道區(qū)域 中的數(shù)據(jù)整體遷移到新增預(yù)留區(qū)域中,使得當(dāng)讀取到該壞道區(qū)域中的數(shù)據(jù)時(shí),直接從新增 預(yù)留區(qū)域中進(jìn)行整體讀取,避免了由于某個(gè)區(qū)域中存在多個(gè)相近但不連續(xù)的壞道扇區(qū)導(dǎo)致 磁頭反復(fù)擺動(dòng),從而大大減少了因磁頭反復(fù)擺動(dòng)帶來(lái)的延時(shí)。
[0088]本發(fā)明實(shí)施例還提供了一種機(jī)器可讀介質(zhì),其上存儲(chǔ)有指令集合,當(dāng)該指令集合 被執(zhí)行時(shí),使得該機(jī)器可執(zhí)行上述方法實(shí)施例一或方法實(shí)施例二所述的磁盤(pán)重映射方法。
[0089]圖6為本發(fā)明磁盤(pán)重映射裝置實(shí)施例三的結(jié)構(gòu)示意圖,如圖6所示,本發(fā)明實(shí)施例 還提供了一種磁盤(pán)重映射裝置,該磁盤(pán)重映射裝置可以包括存儲(chǔ)器601和處理器602。其 中,存儲(chǔ)器601用于存儲(chǔ)指令。處理器602與所述存儲(chǔ)器601耦合,該處理器602被配置為 執(zhí)行存儲(chǔ)在所述存儲(chǔ)器601中的指令。其中,處理器602被配置為用于:當(dāng)讀取到各碟片上 的壞道扇區(qū)時(shí),根據(jù)所述壞道扇區(qū)的邏輯地址獲取所述壞道扇區(qū)的位置;若所述壞道扇區(qū) 位于內(nèi)道區(qū)域中,則將所述壞道扇區(qū)中的數(shù)據(jù)遷移到原始預(yù)留區(qū)域中,并將所述壞道扇區(qū) 的邏輯地址對(duì)應(yīng)的物理地址重新指向到所述壞道扇區(qū)中的數(shù)據(jù)遷移后的物理地址;若所述 壞道扇區(qū)位于非內(nèi)道區(qū)域中,則將滿足預(yù)設(shè)的區(qū)域映射條件的壞道扇區(qū)所在壞道區(qū)域中的 數(shù)據(jù)遷移到預(yù)設(shè)的新增預(yù)留區(qū)域中,并將所述壞道區(qū)域中數(shù)據(jù)的邏輯地址對(duì)應(yīng)的物理地址 分別重新指向到所述壞道區(qū)域中的數(shù)據(jù)遷移后的物理地址;根據(jù)數(shù)據(jù)的邏輯地址從所述邏 輯地址對(duì)應(yīng)的扇區(qū)讀取所述數(shù)據(jù);其中,所述內(nèi)道區(qū)域?yàn)榈幸訰/P為半徑的同心圓對(duì) 應(yīng)的磁軌以?xún)?nèi)的區(qū)域,其中,R為所述碟片的半徑,P為預(yù)設(shè)的大于I且小于R的實(shí)數(shù);所述 非內(nèi)道區(qū)域?yàn)樗龅铣鰞?nèi)道區(qū)域外的區(qū)域。
[0090]最后應(yīng)說(shuō)明的是:以上各實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制; 盡管參照前述各實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其 依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分或者全部技術(shù)特征 進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技 術(shù)方案的范圍。
【權(quán)利要求】
1.一種磁盤(pán)重映射方法,其特征在于,包括:當(dāng)讀取到各碟片上的壞道扇區(qū)時(shí),根據(jù)所述壞道扇區(qū)的邏輯地址獲取所述壞道扇區(qū)的位置;若所述壞道扇區(qū)位于內(nèi)道區(qū)域中,則將所述壞道扇區(qū)中的數(shù)據(jù)遷移到原始預(yù)留區(qū)域中,并將所述壞道扇區(qū)的邏輯地址對(duì)應(yīng)的物理地址重新指向到所述壞道扇區(qū)中的數(shù)據(jù)遷移后的物理地址;若所述壞道扇區(qū)位于非內(nèi)道區(qū)域中,則將滿足預(yù)設(shè)的區(qū)域映射條件的壞道扇區(qū)所在壞道區(qū)域中的數(shù)據(jù)遷移到預(yù)設(shè)的新增預(yù)留區(qū)域中,并將所述壞道區(qū)域中數(shù)據(jù)的邏輯地址對(duì)應(yīng)的物理地址分別重新指向到所述壞道區(qū)域中的數(shù)據(jù)遷移后的物理地址;根據(jù)數(shù)據(jù)的邏輯地址從所述邏輯地址對(duì)應(yīng)的扇區(qū)讀取所述數(shù)據(jù);其中, 所述內(nèi)道區(qū)域?yàn)榈幸訰/P為半徑的同心圓對(duì)應(yīng)的磁軌以?xún)?nèi)的區(qū)域,其中,R 為所述碟片的半徑,P為預(yù)設(shè)的大于I且小于R的實(shí)數(shù);所述非內(nèi)道區(qū)域?yàn)樗龅铣鰞?nèi)道區(qū)域外的區(qū)域。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將滿足預(yù)設(shè)的區(qū)域映射條件的壞道扇區(qū)所在壞道區(qū)域中的數(shù)據(jù)遷移到預(yù)設(shè)的新增預(yù)留區(qū)域中包括:對(duì)所述壞道扇區(qū)所在壞道區(qū)域進(jìn)行掃描,所述壞道扇區(qū)所在壞道區(qū)域?yàn)橛晌锢淼刂窞?[X-Q, X+Q]的扇區(qū)構(gòu)成的區(qū)域,其中,X為所述壞道扇區(qū)的物理地址,Q為預(yù)設(shè)的正整數(shù);當(dāng)所述壞道區(qū)域中存在其他壞道扇區(qū)時(shí),則所述壞道區(qū)域滿足預(yù)設(shè)的區(qū)域映射條件, 將所述壞道區(qū)域中的數(shù)據(jù)遷移到預(yù)設(shè)的新增預(yù)留區(qū)域中。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,還包括:當(dāng)所述壞道區(qū)域中不存在其他壞道扇區(qū)時(shí),則所述壞道區(qū)域不滿足預(yù)設(shè)的區(qū)域映射條件,將所述壞道扇區(qū)中的數(shù)據(jù)遷移到預(yù)設(shè)的新增預(yù)留區(qū)域中,并將所述壞道扇區(qū)中的數(shù)據(jù)的邏輯地址對(duì)應(yīng)的物理地址重新指向到所述壞道扇區(qū)中的數(shù)據(jù)遷移后的物理地址。
4.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,還包括:預(yù)配置所述新增預(yù)留區(qū)域,所述新增預(yù)留區(qū)域均勻分布在各碟片上,所述各碟片中的新增預(yù)留區(qū)域分別分布在所述各碟片中由半徑為[R/N,R/M]的同心圓組成的區(qū)域,所述新增預(yù)留區(qū)域中的邏輯地址總數(shù)為所述原始預(yù)留區(qū)域中的邏輯地址總數(shù)的n倍,M和N為預(yù)設(shè)的大于I且小于2的實(shí)數(shù),M〈N,n為預(yù)設(shè)的大于I的正整數(shù)。
5.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,還包括:獲取各硬盤(pán)所包含的碟片數(shù)、各碟片所包含的磁軌數(shù)以及各磁軌所包含的扇區(qū)個(gè)數(shù);根據(jù)所述各硬盤(pán)所包含的碟片數(shù)、各碟片所包含的磁軌數(shù)、各磁軌所包含的扇區(qū)個(gè)數(shù)以及各磁軌中首尾扇區(qū)對(duì)應(yīng)的首尾邏輯地址,生成各磁軌與所述磁軌中首尾邏輯地址的對(duì)應(yīng)關(guān)系。
6.一種磁盤(pán)重映射裝置,其特征在于,包括:第一獲取單元, 用于當(dāng)讀取到各碟片上的壞道扇區(qū)時(shí),根據(jù)所述壞道扇區(qū)的邏輯地址獲取所述壞道扇區(qū)的位置;第一遷移單元,用于若所述第一獲取單元獲取到的所述壞道扇區(qū)位于內(nèi)道區(qū)域中,則將所述壞道扇區(qū)中的數(shù)據(jù)遷移到原始預(yù)留區(qū)域中,并將所述壞道扇區(qū)的邏輯地址對(duì)應(yīng)的物理地址重新指向到所述壞道扇區(qū)中的數(shù)據(jù)遷移后的物理地址;第二遷移單元,用于若所述第一獲取單元獲取到的所述壞道扇區(qū)位于非內(nèi)道區(qū)域中, 則將滿足預(yù)設(shè)的區(qū)域映射條件的壞道扇區(qū)所在壞道區(qū)域中的數(shù)據(jù)遷移到預(yù)設(shè)的新增預(yù)留區(qū)域中,并將所述壞道區(qū)域中數(shù)據(jù)的邏輯地址對(duì)應(yīng)的物理地址分別重新指向到所述壞道區(qū)域中的數(shù)據(jù)遷移后的物理地址;讀取單元,用于根據(jù)所述第一遷移單元和所述第二遷移單元重新指向的數(shù)據(jù)的邏輯地址從所述邏輯地址對(duì)應(yīng)的扇區(qū)讀取所述數(shù)據(jù);其中,所述內(nèi)道區(qū)域?yàn)榈幸訰/P為半徑的同心圓對(duì)應(yīng)的磁軌以?xún)?nèi)的區(qū)域,其中,R 為所述碟片的半徑,P為預(yù)設(shè)的大于I且小于R的實(shí)數(shù);所述非內(nèi)道區(qū)域?yàn)樗龅铣鰞?nèi)道區(qū)域外的區(qū)域。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述第二遷移單元包括:掃描子單元,用于若所述第一獲取單元獲取到的所述壞道扇區(qū)位于非內(nèi)道區(qū)域中, 則對(duì)所述壞道扇區(qū)所在壞道區(qū)域進(jìn)行掃描,所述壞道扇區(qū)所在壞道區(qū)域?yàn)橛晌锢淼刂窞?[X-Q, X+Q]的扇區(qū)構(gòu)成的區(qū)域,其中,X為所述壞道扇區(qū)的物理地址,Q為預(yù)設(shè)的正整數(shù);遷移子單元,用于當(dāng)所述掃描子單元掃描的結(jié)果為所述壞道區(qū)域中存在其他壞道扇區(qū)時(shí),所述壞道區(qū)域滿足預(yù)設(shè)的區(qū)域映射條件,將所述壞道區(qū)域中的數(shù)據(jù)遷移到預(yù)設(shè)的新增預(yù)留區(qū)域中,并將所述壞道區(qū)域中數(shù)據(jù)的邏輯地址對(duì)應(yīng)的物理地址分別重新指向到所述壞道區(qū)域中的數(shù)據(jù)遷移后的物理地址。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,還包括:處理單元,用于當(dāng)所述掃描子單元掃描的結(jié)果為所述壞道區(qū)域中不存在其他壞道扇區(qū)時(shí),所述壞道區(qū)域不滿足預(yù)設(shè)的區(qū)域映射條件,將所述壞道扇區(qū)中的數(shù)據(jù)遷移到預(yù)設(shè)的新增預(yù)留區(qū)域中,并將所述壞道扇區(qū)中的數(shù)據(jù)的邏輯地址對(duì)應(yīng)的物理地址重新指向到所述壞道扇區(qū)中的數(shù)據(jù)遷移后的物理地址。
9.根據(jù)權(quán)利要求6或7所述的裝置,其特征在于,還包括:預(yù)配置單元,用于在所述第一獲取單元獲取所述壞道扇區(qū)的位置之前,預(yù)配置所述新增預(yù)留區(qū)域,所述新增預(yù)留區(qū)域均勻分布在各碟片上,所述各碟片中的新增預(yù)留區(qū)域分別分布在所述各碟片中由半徑為[R/N,R/M]的同心圓組成的區(qū)域,所述新增預(yù)留區(qū)域中的邏輯地址總數(shù)為所述原始預(yù)留區(qū)域中的邏輯地址總數(shù)的n倍,M和N為預(yù)設(shè)的大于I且小于2 的實(shí)數(shù),M〈N,n為預(yù)設(shè)的大于I的正整數(shù)。
10.根據(jù)權(quán)利要求6或7所述的裝置,其特征在于,還包括:第二獲取單元,用于在所述第一獲取單元獲取所述壞道扇區(qū)的位置之前,獲取各硬盤(pán)所包含的碟片數(shù)、各碟片所包含的磁軌數(shù)以及各磁軌所包含的扇區(qū)個(gè)數(shù);生成單元,用于根據(jù)所述第二獲取單元獲取的所述各硬盤(pán)所包含的碟片數(shù)、各碟片所包含的磁軌數(shù)、各磁軌所包含的扇區(qū)個(gè)數(shù)以及各磁軌中首尾扇區(qū)對(duì)應(yīng)的首尾邏輯地址,生成各磁軌與所述磁軌中首尾邏輯地址的對(duì)應(yīng)關(guān)系。
【文檔編號(hào)】G06F12/06GK103577114SQ201210268767
【公開(kāi)日】2014年2月12日 申請(qǐng)日期:2012年7月31日 優(yōu)先權(quán)日:2012年7月31日
【發(fā)明者】黃賢園 申請(qǐng)人:華為技術(shù)有限公司