硬盤基礎知多少

前言

今天,發現自己原來已經很久寫Blog了,慚愧……這段時間看了一些關於硬盤的東東,順便整理一下。

園子裏的牛們對WEB應用,LINQ等等肯定比較瞭解的,但硬盤這玩意兒,大家就未必關心了。做企業級數據庫應用的人都會清楚,磁盤I/O對於數據庫性能的影響是致命的,所以經常會看到企業級的數據庫後面都帶一個幾百萬RMB的盤櫃,鑑於硬盤的重要性,程序員實在很有必要了解這東西。

一.硬盤分類

首先想先說說硬盤的分類,硬盤分類和硬盤發展史息息相關,在不同時期,主流硬盤的種類各有不同,而劃分硬盤種類的標準有很多,其中最常見的是根據硬盤“接口類型”進行劃分。平常我們經常說“SATA硬盤”和“SCSI硬盤”,就是以此標準分類的。下表列舉了一些曾經主流的硬盤類型(接口類型)。

all_kind_of_disk

(1)ST-506/412和ESDI在九十年代後就基本被淘汰了,ST-506/412是早期希捷開發的一種硬盤接口,早期IBM PC/XT和PC/AT機器就使用這種硬盤。而ESDI是邁拓在1983開發的硬件接口,但由於成本過高,在後來與IDE的較量中敗下陣來,最終被淘汰。

(2)IDE(Integrated Drive Electronics),也叫ATA(Advanced Technology Attachment)/PATA,ATA是最早的IDE標準的正式名稱。對比之前的其他接口,IDE將控制器電路就駐留在驅動器中,不再需要單獨的適配器卡。

在IDE(ATA)家族中,有7個不同的標準:ATA-1~ATA-7(都屬於“並行ATA”標準)。都如果嚴格來算,只有ATA-1能稱之爲IDE,因爲ATA-1之後版本,我們都稱之爲EIDE(Enhanced IDE/Fast ATA,IDE加強版,呵呵),但實際生活中,我們還是統稱它們爲IDE(ATA)。在2003年初,曾經風頭一時無兩的IDE(ATA)開始逐漸被Serial ATA替代,至今,在市場上已經很難找到“並行的ATA硬盤”了。

(3)Serial ATA(Serial Advanced Technology Attachment,串行ATA,簡稱SATA),是英特爾公司在2000年提出的硬件接口標準,2001年,幾大硬盤生產商正式確立Serial ATA 1.0規範,至此,SATA正式登上歷史的大舞臺。

對比之前的並行ATA,SATA的優勢在於:電力消耗降低,發熱量小,支持熱插拔 ,傳輸速度快......

而SATA家族,也分了N個不同標準,而其中的SATA 2.0就是現役主流的硬盤類型之一。我的筆記本硬盤就是SATA2.0接口:>

SATA硬盤實例圖:

sata2.0

(4)SCSI(Small Computer System Interface),SCSI其實不是什麼玩意兒,該接口早在1986年就已經出現,那時的標準還是SCSI1.0。而現役主流的SCSI硬盤一般採用第三代的Ultra 320/640標準。

從上圖我們看到,雖然SCSI Ultra 320的外部傳輸速率理論值和SATA 2.0差不多,但實際上,SCSI硬盤的整體性能要比SATA要好(硬盤性能不能單看外部傳輸速率),於其性能好,因此服務器上通常採用此類硬盤產品,但同時它的價格也不菲,所以在普通PC上幾乎不常看到SCSI的蹤影。

SCSI硬盤實例圖:

SCSI-3

(5)其他硬盤接口

其實USB也是標準的硬盤接口之一,自從1998年,WIN98支持USB之後,USB開始逐漸流行。但由於USB傳輸速率比較低,所以很少在PC機看到單用USB硬盤。

二.SCSI VS SATA

(1)總體性能上,SCSI一般能比SATA快上2倍以上。

(2)硬盤轉數上,SATA一般是7200~10000rpm,而SCSI一般是10000~15000rpm。

(3)價錢上,每GB容量的價格,SCSI是SATA的4倍以上,真要命...

三.硬盤的組成

disk_struct

可以說,硬盤主要由以下幾部分組成:接口(數據接口,電源接口),盤片,磁頭,電機主軸,其他(如:集成電路……)。

(1)接口

數據接口,即俗稱:硬盤接口,上面的“硬盤分類”已經說的比較清楚,這裏就不羅嗦了。而電源接口沒什麼好說的:>

(2)盤片

我們先來看看盤片的歷史:

disk_disk

自從2000年IBM“玻璃材料”盤片的硬盤面世後,現在硬盤一般都採用這種更高效,低造價的技術了。

(3)磁頭

如果問“硬盤容量和硬盤的哪部分有關係”,估計不少人回答“盤片的數量”。嘿嘿,如果你的答案也是這樣,你可能忽略“磁頭”的作用了。其實,磁頭技術非常重要,它和單張盤片的容量直接掛鉤。我們知道,盤片上磁性物質存儲着我們的數據,硬盤通過“磁頭”感應盤片上“磁性物質”讀/寫數據,所謂“磁頭技術”指的就是磁頭讀取盤片磁性物質的技術。爲什麼說“磁頭技術”會和單片磁碟的容量掛鉤?試想下,如果磁頭的靈敏度高,那麼單位面積上可存儲的數據量自然就多了!

在磁頭技術歷史上,IBM可謂功不可沒,來看看磁頭的發展史:   

disk_readhead

想想97年在廣州買電腦配的還是1G硬盤,可到2003年,主流硬盤一般都50~100G了,呵呵,這就是“磁頭技術”革命帶來的質的飛躍:>

(4)電機主軸

“電機主軸”這詞可能大家不熟悉,但如果說“硬盤轉數”相信大家應該都瞭解了,對,“電機主軸”決定着“硬盤轉數”!

“電機主軸”的任務是帶動盤片高速旋轉併產生浮力,使磁頭飄浮在盤片上方,然後把磁頭帶到目標扇區上方,讓其進行數據讀/寫!“電機主軸”轉速越快,磁頭等待讀/寫時間也就越短,所以它在很大程度上決定了硬盤性能!理論上說,“電機主軸”轉速越快越好,但實際上,轉速越快發熱量,振動和噪音都會隨之增大,這些對整個硬盤都非常不利。

早期的硬盤,由於電機的限制,轉速一般只有4000rpm左右,隨着電機技術革新,後來的IDE硬盤轉速達到5400rpm,而現在主流硬盤轉速一般是7200rpm,高端產品則一般是10000~15000rpm(始終未能超過15000rpm)。雖然電機技術一直髮展,但相對“盤片技術”和“磁頭技術”,“電機技術”方面的發展算是比較慢的了(10年前和現在的差別不大)。

四.硬盤性能指標

(1)平均尋道時間(Average seek time)

平均尋道時間是指硬盤的磁頭從初始位置移動到盤面指定磁道所需的時間。平均尋道時間是影響硬盤讀寫效率的最重要指標。平均尋道時間越小硬盤的性能越高。而平均尋道時間實際上是由轉速、單碟容量等多個因素綜合決定的一個參數。一般來說,硬盤的轉速越高,其平均尋道時間就越低;單碟容量越大,其平均尋道時間就越低。

除了“平均尋道時間”外,還有概念我們需要了解下,分別是“平均等待時間”和“平均訪問時間”。

“平均等待時間”,尋道完成後,要讀取的數據塊可能還沒有轉過來,等待這個數據塊的時間就是“平均等待時間”。由於現在硬盤轉速都比較快,所以這個相對於“平均尋道時間”一般要小得多。

“平均訪問時間”是指從硬盤收到訪問命令,到完成所有操作並返回最終結果所花費的時間。它是衡量硬盤整體讀寫效率的標準。

平均訪問時間 = 平均尋道時間 +  平均等待時間 +  電子信號消耗時間。由於“尋道”和“等待”屬於機械操作,和光速的電子信號相比之下,電子信號消耗時間完全可以忽略不計!所以,平均訪問時間 = 平均尋道時間 +  平均等待時間。而“平均尋道時間”佔據了絕大部分的“平均訪問時間”!這就是爲什麼平均尋道時間是硬盤讀寫效率最重要指標的原因!這也是爲什麼我們的磁盤定時要做下“磁盤碎片整理”的原因,因爲分散的碎片會引起較長的“平均尋道時間”。

(2)最大內部數據傳輸率(internal data transfer rate)

指磁頭至硬盤緩存間的最大數據傳輸率,一般取決於硬盤的盤片轉速和盤片數據線密度。目前大多數家用硬盤的內部傳輸率在60MB/s~90MB/s,內部數據傳輸率纔是系統真正的瓶頸(“最大內部數據傳輸率”比“最大外部傳輸速率”要小很多,所以不要迷戀“最大外部傳輸速率”,它只是個傳說),硬盤的轉速相同時,單碟容量大的內部傳輸率高;在單碟容量相同時,轉速高的硬盤的內部傳輸率高。

(3)緩存

緩存確實是個好東東!爲什麼這麼說?先看看相關的工作原理:硬盤讀取完指定扇區的數據之後、接到系統的下一條指令之前,磁頭接着讀取相鄰的若干扇區的數據並存入緩存中。如果系統接下來所需的數據正好就是相鄰扇區的數據,那麼便可以直接從緩存中讀取而不用磁頭再尋址(緩存命中),從而極大提高數據訪問速度。所以,爲什麼硬盤的緩存大有好處?就是這個原因,並且這也涉及到剛纔說的“磁盤碎片整理”的問題。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章