SCSI Disk Medium Defects

Overview

直接從SBC-4文檔中摘錄一段吧槽华,原文描述非常清晰:
Any medium has the potential for medium defects that cause data to be lost. Therefore, physical blocks and/or logical blocks may contain additional information that allows the detection of changes to the logical block data caused by medium defect or other phenomena. The additional information may also allow the logical block data to be reconstructed following the detection of such a change (e.g., ECC bytes).

A medium defect causes:
a) a recovered error if the device server is able to read or write a logical block within the logical unit’s
recovery limits; or
b) an unrecovered error if the device server is unable to read or write a logical block within the logical
unit’s recovery limits,
where the logical unit’s recovery limits are:
a) specified in the Read-Write Error Recovery mode page (see 6.5.10);
b) specified in the Verify Error Recovery mode page (see 6.5.11); or
c) vendor specific, if the device server does not implement the Read-Write Error Recovery mode page or the Verify Error Recovery mode page.

上面實(shí)際上也定義了recovered error和unrecovered error的區(qū)別:在規(guī)定的限制內(nèi),如果logical block中的內(nèi)容可讀或者可寫(視操作而定)肮柜,那么就算是recovered棍弄。如果做不到望薄,那么就是unrecovered。這個(gè)限制(recovery limits)指的是Read-Write Error Recovery mode page呼畸、Verify Error Recovery mode page或者vendor自定義的page中規(guī)定的限制(比如最多重試次數(shù)痕支、recovery時(shí)間限制等等)。

塊壞恢復(fù)

硬盤本身的支持

Medium defects可能會(huì)造成潛在的數(shù)據(jù)丟失蛮原。硬盤可能會(huì)提供恢復(fù)的機(jī)制卧须,但也可能不提供。理想情況下儒陨,硬盤可以自動(dòng)修復(fù)這些壞塊花嘶,將LBA重新映射到好的物理塊上。這種機(jī)制稱為塊壞自動(dòng)重分配(automatic reassignment of defects)蹦漠。硬盤是否支持這種機(jī)制椭员,可以看一下Read-Write Error Recovery mode page。

> sginfo -a /dev/sdc
... # 省略一些輸出
Read-Write Error Recovery mode page (0x1)
-----------------------------------------
AWRE                               1
ARRE                               1
TB                                 0
RC                                 0
EER                                0
PER                                0
DTE                                0
DCR                                0
Read Retry Count                   1
Correction Span                    0
Head Offset Count                  0
Data Strobe Offset Count           0
Write Retry Count                  1
Recovery Time Limit (ms)           0
... # 省略一些輸出

AWRE:AWRE為0表示硬盤不應(yīng)該執(zhí)行automatic write reassignment笛园。AWRE為1表示當(dāng)硬盤在寫過程中遇到recovered或者unrecovered error的時(shí)候隘击,會(huì)嘗試對(duì)壞塊進(jìn)行reassignment。
ARRE:ARRE為0表示硬盤不應(yīng)該執(zhí)行automatic read reassignment研铆。ARRE為1表示當(dāng)硬盤在讀過程中遇到recovered的時(shí)候埋同,會(huì)嘗試對(duì)壞塊進(jìn)行reassignment。注意蚜印,讀請求與寫請求不一樣的是莺禁,讀請求只有遇到recovered error的時(shí)候(且ARRE為1),才會(huì)嘗試reassignment窄赋,對(duì)于unrecovered error哟冬,讀請求是不會(huì)自動(dòng)reassign的楼熄。
Write Retry Count:這個(gè)參數(shù)指的不是write的重試次數(shù)(雖然看起來特別像),而是指的對(duì)于write請求浩峡,如果出錯(cuò)了可岂,硬盤的recovery次數(shù)。也就是說比如write請求出錯(cuò)了翰灾,硬盤嘗試進(jìn)行recovery的次數(shù)缕粹,最多不超過Write Retry Count規(guī)定的次數(shù)。
Read Retry Count:跟Write Retry Count類似纸淮,針對(duì)讀請求平斩。

讀請求故障處理(Read with unrecovered Medium error)

當(dāng)讀請求不可恢復(fù)(unrecovered)的錯(cuò)誤時(shí)(例如scsi status是CHECK CONDITION,sense key是MEDIUM ERROR咽块,ASC是UNRECOVERED READ ERROR)绘面,硬盤是不會(huì)觸發(fā)自動(dòng)重分配的。需要由上層的應(yīng)用程序做顯式的處理:
a) 如果應(yīng)用程序可以重新生成相關(guān)的數(shù)據(jù)(例如從RAID的其它硬盤中重新構(gòu)造出來)侈沪,并且AWRE bit是1揭璃,那么應(yīng)用程序可以發(fā)送一個(gè)write命令將數(shù)據(jù)寫入,這個(gè)write命令會(huì)觸發(fā)automatic write reassignment亭罪。
b) 如果應(yīng)用程序可以重新生成相關(guān)的數(shù)據(jù)瘦馍,并且AWRE bit是0,那么應(yīng)用程序需要先發(fā)送REASSIGN BLOCKS命令為故障的LBA重新分配物理塊应役,然后再發(fā)送WRITE命令將數(shù)據(jù)寫入情组。
c) 如果應(yīng)用程序無法重新生成相關(guān)的數(shù)據(jù),那么應(yīng)用程序可以嘗試使用REASSIGN BLOCKS命令來重新為LBA分配物理塊扛吞。但是由于數(shù)據(jù)無法再生成呻惕,所以這些數(shù)據(jù)就丟失了。

獲取defect列表

硬盤為了記錄這些有故障的壞塊滥比,就需要一個(gè)列表亚脆,這個(gè)列表就是PLIST(primary defect list)和GLIST(grown defect list)。使用sginfo命令可以查看硬盤的PLIST和GLIST列表盲泛。

[root@node100 ~]# sginfo -d /dev/sdc
INQUIRY response (cmd: 0x12)
----------------------------
Device Type                        0
Vendor:                    HGST    
Product:                   HUS728T8TAL5204 
Revision level:            C414

>>> Unable to read primary (PLIST) defect data.
Defect Lists
------------
0 entries (0 bytes) in grown (GLIST) table.
Format (4) is: bytes from index [Cyl:Head:Off]
Offset -1 marks whole track as bad.

這個(gè)PLIST和GLIST有什么區(qū)別呢濒持?簡單的說PLIST記錄出廠時(shí)發(fā)現(xiàn)的壞塊,在映射LBA的時(shí)候會(huì)自動(dòng)跳過這些壞塊寺滚,不影響性能柑营。而GLIST是使用過程中發(fā)現(xiàn)的壞塊,這些LBA可能會(huì)被重分配到其它的物理塊上村视,訪問這些壞塊就會(huì)影響性能官套。具體的可以參考這篇文檔PLIST基本缺陷列表與GLIST 成長缺陷列表

如何制造硬盤故障(軟件)

SBC文檔中提到,可以使用WRITE LONG命令來制造假的不可恢復(fù)的故障奶赔。

參考資料

SBC-4

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末惋嚎,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子站刑,更是在濱河造成了極大的恐慌另伍,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,729評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件绞旅,死亡現(xiàn)場離奇詭異摆尝,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)因悲,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門堕汞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人晃琳,你說我怎么就攤上這事臼朗。” “怎么了蝎土?”我有些...
    開封第一講書人閱讀 169,461評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長绣否。 經(jīng)常有香客問我誊涯,道長,這世上最難降的妖魔是什么蒜撮? 我笑而不...
    開封第一講書人閱讀 60,135評(píng)論 1 300
  • 正文 為了忘掉前任暴构,我火速辦了婚禮,結(jié)果婚禮上段磨,老公的妹妹穿的比我還像新娘取逾。我一直安慰自己,他們只是感情好苹支,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,130評(píng)論 6 398
  • 文/花漫 我一把揭開白布砾隅。 她就那樣靜靜地躺著,像睡著了一般债蜜。 火紅的嫁衣襯著肌膚如雪晴埂。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,736評(píng)論 1 312
  • 那天寻定,我揣著相機(jī)與錄音儒洛,去河邊找鬼。 笑死狼速,一個(gè)胖子當(dāng)著我的面吹牛琅锻,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 41,179評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼恼蓬,長吁一口氣:“原來是場噩夢啊……” “哼惊完!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起滚秩,我...
    開封第一講書人閱讀 40,124評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤专执,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后郁油,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體本股,經(jīng)...
    沈念sama閱讀 46,657評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,723評(píng)論 3 342
  • 正文 我和宋清朗相戀三年桐腌,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了拄显。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,872評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡案站,死狀恐怖躬审,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蟆盐,我是刑警寧澤承边,帶...
    沈念sama閱讀 36,533評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站石挂,受9級(jí)特大地震影響博助,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜痹愚,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,213評(píng)論 3 336
  • 文/蒙蒙 一富岳、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧拯腮,春花似錦窖式、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至狼电,卻和暖如春蜒灰,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背肩碟。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評(píng)論 1 274
  • 我被黑心中介騙來泰國打工强窖, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人削祈。 一個(gè)月前我還...
    沈念sama閱讀 49,304評(píng)論 3 379
  • 正文 我出身青樓翅溺,卻偏偏與公主長得像脑漫,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子咙崎,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,876評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • 一优幸、源題QUESTION 36Your database is open and the LISTENER lis...
    貓貓_tomluo閱讀 1,244評(píng)論 0 2
  • Software Requirements Specifications Document CS330 Softw...
    鹵蛋Aunm閱讀 259評(píng)論 0 0
  • The Great A.I. Awakening How Google used artificial intel...
    圖羽閱讀 1,214評(píng)論 0 3
  • 馬瑩花是前一天和爸爸住在親戚家,爸爸的表妹那里褪猛。爸爸路過那里网杆,正好看了看自己的病,胸膜炎已經(jīng)好久了伊滋√既矗看了之...
    何亦群閱讀 263評(píng)論 2 2
  • 昨天,女兒去朋友家玩兒笑旺,回來感慨地說:“還是我們家好昼浦。” 我問“怎么了筒主?” 她說关噪,“朋友在家不管做什么,她媽媽總是...
    昕明閱讀 323評(píng)論 1 2