前面文章提到了硬碟有二種缺陷表,一個是Primary Defect List(簡稱P-LIST),另外一個是Grown Defect List(簡稱G-LIST)。這2張缺陷列表的作用是隱藏碟片表面所產生的缺陷扇區,以確保硬碟能正常工作。然而這2種缺陷的運行機制卻大為不同。


按照現在的製造工藝,無法實現碟片0缺陷生產。不同材料的成分、磁層雜質、濺射工藝等都會導致碟片出現瑕疵,以至於扇區讀寫出錯。早期的硬碟將缺陷磁軌表寫在盤體外面的標籤上,並且每個硬碟都有一些保留空間,例如早期 ST225(20 Mb)實際容量為21,5 Mb,也就是說,有1,5 Mb的額外空間分配給缺陷扇區和磁軌。現代硬碟也有額外的空間,不過對於用戶來說是無法訪問的,只有對硬碟發送特殊指令纔可以訪問。這些額外空間的一部分分配給硬碟適配信息、配置表、 S.M.A.R.T、工廠信息、缺陷表等等。其他部分被保留用於以後代替缺陷扇區。


Primary Defect List

任何一塊硬碟在生產的時候,碟片磁介質分佈不均勻,或者有損壞的區域,對於這部分有瑕疵的區域,在運行SELF-TEST的時候就會將它們的地址標註出來,然後放入P-LST。這就是所說的「基本缺陷表」,這些記錄地址在硬碟運行時候自動被丟棄,所以P-list不影響硬碟的存取速度。

運行機制如下圖:

在SEFL-TEST的時候,會對所有扇區進行編號,只有被正式編號的扇區才會被使用。因此,如果SEFL-TEST程序探測到某扇區存在缺陷,便不對其進行編號。當使用此方法時,缺陷扇區被忽略,它的編號被分配給其後的扇區(等等),而最後一個扇區被順序移位到保留區。

Grown Defect List

G-list的職責是隱藏硬碟使用過程中出現的缺陷,也叫做「成長」缺陷表。在用戶使用硬碟的過程中,會因為各種各樣的原因導致碟片表面產生新的缺陷扇區,當硬碟探測到某些扇區存在缺陷,將自動把該扇區重新定位到硬碟保留區。由於G列表是「指派」,而非丟棄。

見下圖:

當對缺陷扇區進行訪問操作時,硬碟讀出扇區標記和指派地址,然後將磁頭重定位到保留區,從保留區的好扇區中讀/寫數據。缺陷扇區對用戶說是不可見的,不過在每次重定位到保留區之前仍然要先定址到缺陷扇區。這一過程會伴隨咔噠聲和輕微的減速。「指派」過程只允許對數據欄位有缺陷的扇區重定向,若ID欄位損壞或伺服欄位損壞時就不能使用「指派」的方法調整扇區。

這種方式雖然有弊端,但是好處也是顯而易見的。這種操作模式可以在不改變用戶數據的連續性的情況下達到隱藏缺陷的目的,可以保障用戶數據的完整性。如果採用P-LIST的方式隱藏缺陷扇區,扇區將錯位從而導致數據結構全部錯亂。


為什麼說壞道會自動蔓延?

壞道蔓延這種情況在某些情況下是存在的。因為很多時候在用戶毫無察覺的情況下,硬碟自動重定位了缺陷扇區,然而每次訪問的時候就會先讀缺陷扇區再跳到保留區讀備用扇區,這樣一來一去的對缺陷扇區反覆讀寫,次數越多該扇區磨損就會越嚴重(缺陷分二種類型,1介質失磁,2碟片與磁頭碰撞。如果是因為碰撞原因導致的缺陷,那麼碟片表面就會有不同程度的破損,破損周邊會有凸起,磁頭訪問時就要產生碰撞,碰撞越多破損就會越嚴重。工廠在執行SELF-TEST測試程序的時候,發現有破損凸起的地方便會調高磁頭飛行高度避開碰撞,然後記錄下缺陷位置)從而蔓延到周邊扇區。工廠處理P-LIST的時候為了穩妥起見往往會把周邊相鄰的幾個扇區一起列入P-LIST。如果某條磁軌上的缺陷扇區數量超標,則直接將該磁軌列入P-LIST徹底封閉,永不使用。從根本上杜絕了繼續磨損缺陷扇區的動作,有效阻止了缺陷的蔓延。

如圖所示:

圖中帶顏色的便是因為缺陷太多被封閉的磁軌。綠色代表0頭管轄面的缺陷磁軌,亮藍代表1頭管轄面的缺陷磁軌.....

再如:

圖片中帶顏色的區域,表示單獨的缺陷扇區,這些缺陷扇區呈徑向分佈。很容易推斷出這些缺陷扇區是由於磁頭做歸位動作的時候,與碟片產生接觸而產生的。

專業硬碟公眾號正式上線,更多乾貨等你拿


推薦閱讀:
相關文章