互聯(lián)網(wǎng)時代機械硬盤的發(fā)展史

      網(wǎng)友投稿 1059 2022-05-28

      無論是作為個人電腦的數(shù)據(jù)盤,還是在數(shù)據(jù)中心里面用作海量數(shù)據(jù)的存儲,機械硬盤仍然在被大量使用。隨著成本下降,機械硬盤還替代掉了很多傳統(tǒng)的存儲設(shè)備,如以前常用來備份冷數(shù)據(jù)的磁帶。

      拆解機械硬盤

      機械硬盤的IOPS大概只能做到每秒100次左右。機械硬盤拆開,自然知道為什么它的IOPS是100左右了。

      硬盤的構(gòu)造,里面有接口,有對應(yīng)的控制電路版,以及實際的I/O設(shè)備(也就是我們的機械硬盤)。

      一塊機械硬盤是由盤面、磁頭和懸臂三個部件組成的。

      盤面(Disk Platter)

      實際存儲數(shù)據(jù)的盤片。

      本身通常是用的鋁、玻璃或者陶瓷這樣的材質(zhì)做成的光滑盤片。有層磁性涂層。數(shù)據(jù)就存儲在這個磁性的涂層上。

      中間有個受電機控制的轉(zhuǎn)軸。控制盤面去旋轉(zhuǎn)。

      硬盤的轉(zhuǎn)速5400轉(zhuǎn)的、7200轉(zhuǎn),指的就是盤面中間電機控制的轉(zhuǎn)軸的旋轉(zhuǎn)速度,英文單位叫RPM,也就是每分鐘的旋轉(zhuǎn)圈數(shù)(Rotations Per Minute)。所謂7200轉(zhuǎn),其實更準確地說是7200RPM,指的就是一旦電腦開機供電之后,我們的硬盤就可以一直做到每分鐘轉(zhuǎn)上7200圈。如果折算到每一秒鐘,就是120圈。

      磁頭(Drive Head)

      數(shù)據(jù)并不能直接從盤面?zhèn)鬏數(shù)娇偩€上,而是通過磁頭,從盤面上讀取到,然后再通過電路信號傳輸給控制電路、接口,再到總線。

      一個盤面有兩個磁頭,分別在盤面的正反面。盤面在正反兩面都有對應(yīng)的磁性涂層來存儲數(shù)據(jù),而且一塊硬盤也不是只有一個盤面,而是上下堆疊了很多個盤面,各個盤面之間是平行的。每個盤面的正反兩面都有對應(yīng)的磁頭。

      懸臂(Actutor Arm)

      懸臂鏈接在磁頭上,并且在一定范圍內(nèi)會去把磁頭定位到盤面的某個特定的磁道(Track)。

      磁道

      一個盤面通常圓形,由很多同心圓,每個“甜甜圈”就是個磁道。每個磁道都有自己的編號。

      懸臂只是控制到底讀最里面那個“甜甜圈”,還是最外面的“甜甜圈”數(shù)據(jù)。

      扇區(qū)(Sector)

      一個磁道,會分成一個個扇區(qū)。

      柱面(Cylinder)

      上下平行的一個個盤面的相同扇區(qū)叫一個柱面。

      讀取數(shù)據(jù)

      兩個步驟:

      把盤面旋轉(zhuǎn)到某個位置

      在這個位置,懸臂可定位到整個盤面的某個子區(qū)間。該子區(qū)間像塊披薩餅,叫幾何扇區(qū)(Geometrical Sector),即“幾何位置上”,所有這些扇區(qū)都可以被懸臂訪問到。

      把懸臂移動到特定磁道的特定扇區(qū),即在這個“幾何扇區(qū)”里,找到實際扇區(qū)。找到后,磁頭會落下,即可讀取到正對著扇區(qū)的數(shù)據(jù)。

      一次硬盤的隨機訪問所需時間

      平均延時(Average Latency)

      盤面旋轉(zhuǎn),把幾何扇區(qū)對準懸臂位置的時間。

      和機械硬盤轉(zhuǎn)速相關(guān)。隨機情況下,平均找到一個幾何扇區(qū),需旋轉(zhuǎn)半圈盤面。

      7200r硬盤,1s可旋轉(zhuǎn)240個半圈,平均延時:

      1s / 240 = 4.17ms

      1

      平均尋道時間(Average Seek Time)

      盤面選轉(zhuǎn)之后,我們的懸臂定位到扇區(qū)的的時間。我們現(xiàn)在用的HDD硬盤的平均尋道時間一般在4-10ms。

      若隨機在硬盤找個數(shù)據(jù),需 8~14 ms。硬盤只有一個電機轉(zhuǎn)軸,也只有一個懸臂,所以無法并行定位或讀數(shù)據(jù)。那一塊7200r硬盤,1s隨機的I/O訪問次數(shù)就是:

      1s / 8 ms = 125 IOPS 或 1s / 14ms = 70 IOPS

      1

      2

      3

      若不是隨機的數(shù)據(jù)訪問,而是順序的數(shù)據(jù)讀寫,應(yīng)如何最大化讀取效率?

      順序存放的數(shù)據(jù),盡可能存放在同一柱面。這就只需旋轉(zhuǎn)一次盤面,進行一次尋道,就可寫或讀,同一個垂直空間上的多個盤面的數(shù)據(jù)。

      若一個柱面上的數(shù)據(jù)不夠,也不要去動懸臂,而是通過電機轉(zhuǎn)動盤面,即可順序讀完一個磁道上的所有數(shù)據(jù)。所以,對HDD的順序數(shù)據(jù)讀寫,吞吐率還不錯,約200MB/s。

      Partial Stroking:根據(jù)場景提升性能

      100 IOPS,難以滿足現(xiàn)在互聯(lián)網(wǎng)海量高并發(fā)請求。所以,DB都會將數(shù)據(jù)存在SSD。

      但20年前,沒有現(xiàn)在這么便宜的SSD硬盤。DB數(shù)據(jù)只能存放在HDD。

      即便如今數(shù)據(jù)中心用的HDD,也是7200r,要更快隨機訪問速度,會選擇SSD。但當時,SSD非常貴,還沒能商業(yè)化。硬盤廠商們在不斷研發(fā)轉(zhuǎn)得更快的硬盤。數(shù)據(jù)中心往往用10000轉(zhuǎn),乃至15000轉(zhuǎn)的硬盤。

      直到2010年,SSD開始逐步進入市場,西數(shù)還在嘗試研發(fā)20000轉(zhuǎn)硬盤。轉(zhuǎn)速更高、尋道時間更短的機械硬盤,才能滿足實際DB需求。

      但10000r,乃至15000r硬盤也更貴,想節(jié)約成本,提高性價比,就得想它法。Google早年用家用PC乃至二手硬件,通過軟件層面設(shè)計解決了可靠性和性能。那有辦法提高機械硬盤的IOPS嗎?這就是Partial Stroking或者Short Stroking,“縮短行程”技術(shù)。

      既然訪問一次數(shù)據(jù)的時間:“平均延時+尋道時間”,只要能縮短其一,就能提升IOPS!

      一般 硬 盤 的 尋 道 時 間 > 平 均 延 時 硬盤的尋道時間 > 平均延時 硬盤的尋道時間>平均延時,如何縮短平均尋道時間?

      最極端的:不需要尋道,即將所有數(shù)據(jù)都放在一個磁道。比如始終把磁頭放在最外道磁道。尋道時間就基本為0,訪問時間就只剩平均延時。

      IOPS就變成:

      1s / 4ms = 250 IOPS

      1

      但只用一個磁道,能存的數(shù)據(jù)就很有限了!可能我們還不如把這些數(shù)據(jù)直接都放到內(nèi)存呢!

      所以,實踐可只用 1 / 2 1/2 1/2或 1 / 4 1/4 1/4磁道,即最外面1/4或1/2的磁道。

      如此,硬盤可使用的容量可能變成1/2或1/4。但尋道時間也變成1/4或1/2,因為懸臂需移動的“行程”也變成原來1/2或者1/4,IOPS大幅提升!

      比如7200r硬盤,正常平均延時4.17ms,尋道時間9ms。原本IOPS:

      1s / (4.17ms + 9ms) = 75.9 IOPS

      1

      若只用其中1/4磁道,則IOPS變成:

      1s / (4.17ms + 9ms/4) = 155.8 IOPS

      1

      IOPS提升一倍,和塊15000r硬盤性能差不多。但這時硬盤可用空間也只有原1/4。所以,這樣通過軟件去格式化硬盤,只保留部分磁道讓系統(tǒng)可用的情況,可大大提升硬件性價比。

      總結(jié)

      互聯(lián)網(wǎng)時代下機械硬盤的發(fā)展史

      機械硬盤的硬件主要由:盤面、磁頭和懸臂組成。

      數(shù)據(jù)在盤面上的位置,可通過磁道、扇區(qū)和柱面來定位。

      實際的一次對于硬盤的訪問,需要把盤面旋轉(zhuǎn)到某一個“幾何扇區(qū)”,對準懸臂的位置。然后,懸臂通過尋道,把磁頭放到我們實際要讀取的扇區(qū)上。

      受制于機械硬盤的結(jié)構(gòu),對隨機數(shù)據(jù)的訪問速度,就要包含旋轉(zhuǎn)盤面的平均延時和移動懸臂的尋道時間。通過這倆時間,能計得機械硬盤IOPS。

      7200轉(zhuǎn)機械硬盤的IOPS,只能做到100。早期沒有SSD,所以想出Partial Stroking這個浪費存儲空間,但能縮短尋道時間以提高硬盤IOPS的方案。

      Linux

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應(yīng)法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:Linux常用磁盤管理命令詳解
      下一篇:linux系統(tǒng)下添加新硬盤、分區(qū)及掛載全過程詳解
      相關(guān)文章
      777亚洲精品乱码久久久久久| 亚洲精品无码日韩国产不卡?V| 国产亚洲精品无码成人| 亚洲精品尤物yw在线影院| 亚洲丁香婷婷综合久久| 亚洲日韩看片无码电影| 亚洲AV成人影视在线观看| 亚洲免费福利在线视频| 中文字幕无码亚洲欧洲日韩| 一本色道久久88—综合亚洲精品 | 亚洲国产最大av| 2017亚洲男人天堂一| 亚洲熟妇AV日韩熟妇在线| 亚洲欧洲av综合色无码| 国产精品亚洲专区无码牛牛| 日批日出水久久亚洲精品tv| 亚洲国产成人精品91久久久| 久久精品国产亚洲7777| 亚洲人精品午夜射精日韩| 亚洲AV日韩AV永久无码久久| 337p日本欧洲亚洲大胆色噜噜| 亚洲精品国产成人中文| 亚洲AV无码国产精品色| 亚洲综合精品第一页| 亚洲av无码一区二区三区四区| 精品国产日韩亚洲一区在线| 亚洲国产人成中文幕一级二级| 国产亚洲精久久久久久无码AV| 亚洲人精品午夜射精日韩 | 亚洲国产一区国产亚洲| 亚洲黄色网站视频| 亚洲国产韩国一区二区| 亚洲性色精品一区二区在线| 国产精品亚洲va在线观看 | 亚洲精品伊人久久久久| 337P日本欧洲亚洲大胆精品| 久久久久亚洲AV成人网| 亚洲精品天天影视综合网| 亚洲一区电影在线观看| 亚洲AV成人无码网天堂| 亚洲一区视频在线播放|