前言:本人從事存儲研發多年,最近整理存儲系列相關文檔,敬請期待。
大規模存儲系統中目前主要以SATA硬盤為主,SSD盤為輔。所以本文主要介紹存儲介質和磁盤尋址方式及原理。
一、存儲系統常見的介質
1.磁帶
記錄的是模擬信號,流式記錄,無扇區概念。
2.軟盤
也稱作,軟磁盤。
記錄的是數字信號,0和1,N極1,S極0。被設計成塊式,而不是流式。所以需要進行扇區划分等操作。
3.硬盤
也稱作,硬磁盤。
一個硬盤通常由2-14片不等的盤片組成的一個盤組。本文主要介紹的對象。
4.固態硬盤
即SSD,由控制單元和存儲單元(FLSH芯片、DRAM芯片)組成。固態硬盤在接口的規范和定義、功能及使用方法上與普通硬盤的完全相同,在產品外形和尺寸上也完全與普通硬盤一致。
固態硬盤具有傳統機械硬盤不具備的快速讀寫、質量輕、能耗低以及體積小等特點,同時其劣勢也較為明顯。其價格仍較為昂貴,容量較低,一旦硬件損壞,數據較難恢復等;並且亦有人認為固態硬盤的耐用性(壽命)相對較短。
二、硬盤的邏輯組織
(圖片來自https://www.cnblogs.com/sparkdev/p/11200395.html)
再對硬盤從邏輯上進行介紹:
1.磁頭,Header
每個盤片都有上下兩個面,即上、下盤面。每個盤面都有一個讀寫磁頭(又叫磁頭臂),每個盤面都有一個盤面號,所以又叫磁頭號。
磁頭號由上而下從0開始編號,也就是說,n個盤片就有2*n的磁頭數。硬盤的盤片組在2-14片不等,通常2-3個盤片,即4-6個磁頭數。
2.磁道,Track
每個盤面都是由同心圓組成,這些同心圓軌跡就叫磁道。
磁頭起初都停在盤片的最內圈,這是一個特殊的區域,不存放任何數據,稱為啟停區或者着陸區(Landing Zone)。
啟停區外就是數據區。
在最外圈,即離主軸最遠的地方是0磁道。有一個0磁道檢測器,來完成硬盤的初始定位。系統啟動時,總是默認從0磁盤讀取BIOS程序來運行。
每個盤面一般有30-1024個磁道,新式大容量硬盤磁道數更多。
這些同心圓的角速度一樣,所以線速度不同,所以外圈數據的讀寫速度比內圈快。
3.柱面,Cylinder
所有盤面上的同一磁道,在垂直方向上形成一個圓柱。每個圓柱上的磁頭由上而下從0開始編號(上面已提及)。而有多少個磁道即有多少個柱面。
4.扇區,Sector
將每個環形磁道等距離切割,形成等長度的弧形。每段圓弧叫做一個扇區。扇區從1開始編號,最大分成63段。
每個扇區的數據作為一個單元同時讀出或寫入,是讀寫的最小單元。所以一個扇區內的數據是連續流式記錄的。
5.格式化與尋道機制
低級格式化:划分磁道和扇區的過程叫做低級格式化,通道在硬盤出廠的時候就已經格式化完畢了。這是物理的。
高級格式化:對磁盤上所存儲的數據進行文件系統的標記,而不是對扇區和磁道進行磁盤標記。這是邏輯的,即平時我們所進行的格式化操作。
數據讀寫過程和尋道:數據的讀寫按柱面進行,即磁頭讀寫數據時首先在同一柱面內從0磁頭開始進行操作,當讀寫完該磁道數據后,再依次向下在同一柱面的不同盤面(磁頭)上進行操作。只有同一柱面所有的磁頭全部讀寫完成后磁頭才轉到下一個柱面。因為選取磁頭只需經過電子切換即可,而選取柱面則必須通過機械切換,即尋道。
三、磁盤尋址
CHS編址:早期,扇區的地址,由Cylinder柱面、Header磁頭、Sector扇區三者組成,簡稱CHS編址。由CHS可以計算到扇區的位置。
LBA編址: Logic Block Address,邏輯區塊地址,也叫扇區編號。線性的地址,從1開始無限增加。不再划分柱面和磁頭號,這些數據由硬盤自身保留。目前普遍采用這種抽象簡單的編制方式,便於編程。
ZBR 區位記錄:Zoned-bit recording,根據等密度記錄方式,將同心圓磁道分區,分成幾個環形;內環磁道的扇區數目較少,外環磁道的扇區數目較多。從概念上看,屬於物理優化,邏輯編址依然可以采用LBA方式。
參考資料:《大話存儲II》和百度百科。