iT邦幫忙

DAY 4
3

檔案系統的設計與效能系列 第 4

檔案系統的設計與效能 - 磁碟系統的運作

  • 分享至 

  • xImage
  •  

檔案系統的任務就是管理儲存在媒體上的資料,所以基本上跟儲存媒體的性質是息息相關的。譬如說媒體儲存的基本單位、動作等等,這牽涉到媒體要如何呈現檔案;而檔案系統要如何運作。就像是磁帶他是循序的動作來進行讀取與寫入,這跟磁碟隨機存取的方式不同,因此兩者的檔案系統的設計也就會不同。我們大部分接觸到的儲存媒體是以硬碟為主,所以大部分的檔案系統也是針對硬碟系統,在這裡我也想將檔案系統著重在磁碟這個範圍裡。因此在討論檔案系統之前,我們有必要對磁碟系統的運作有一番了解才行。
檔案系統的任務就是管理儲存在媒體上的資料,所以基本上跟儲存媒體的性質是息息相關的。譬如說媒體儲存的基本單位、動作等等,這牽涉到媒體要如何呈現檔案;而檔案系統要如何運作。就像是磁帶他是循序的動作來進行讀取與寫入,這跟磁碟隨機存取的方式不同,因此兩者的檔案系統的設計也就會不同。我們大部分接觸到的儲存媒體是以硬碟為主,所以大部分的檔案系統也是針對硬碟系統,在這裡我也想將檔案系統著重在磁碟這個範圍裡。因此在討論檔案系統之前,我們有必要對磁碟系統的運作有一番了解才行。

大家都看過硬碟,也大概知道硬碟裡主要有磁碟與磁頭等元件,碟片會旋轉,磁頭可以一定方向移動,資料就是如此的透過磁頭隨機的放置在碟片上,細節我想就不用贅訴了。但是有幾個重要的關鍵是一定要了解的:磁區(Sector)、磁軌(Track)、磁柱(Cylinder)、磁碟分割(Partition)與格式化(Format)。想像把碟片畫出一個個同心圓,形成像黑膠唱片般的軌道,稱為track;而多個並列碟片的相同位置上的track,合起來稱為 cylinder。cylinder是parition時的最小單位,因為每個碟片上的磁頭是固定再一起的,磁頭移動時是同時讀取不同碟片上相同的磁軌,千萬不要以為是一片讀完再接續下一片。磁軌上可以細分為一個個的區塊,稱之為sector。sector是每次磁頭在讀寫時的最小單位,通常是512 Bytes。這也可以說是檔案系統所要處理的最基本單位block。一個大的檔案會被拆解成數個block,而簡單的說檔案系統就是要用來管理、追蹤這些 block到底位在哪些sector之上,而那些sector又是屬於哪些檔案所有。今天如果我們的檔案都很小,都小於等於sector的大小,那麼我們的檔案系統將會非常簡單,因為你不會遇到跨sector的檔案,每個sector就是一個檔案。

磁碟分割(Partition)的目的在於將磁柱劃分出來,訂出某個存取區域(或說磁碟分割)是占用哪些cylinder(起始和結束cylinder);而格式化(Format)就是在磁碟上建立檔案系統的動作。在磁碟中有一個最重要的sector,所有partition的記錄都被放在那裡,這個 sector稱之為MBR(主要開機磁區,Master Boot Recoder),他位在第一片磁片的第零軌的一個sector,也就是硬碟第一個被讀取到的地方。因為他同時也可以記錄開機程式,所以被稱為主要開機磁區。

MBR 是磁碟系統運作最重要的地方,因為所有partition的結構都記錄在這裡,這個sector壞了,妳就不知道partition的分布,也就無從存取檔案了。下圖用以描述MBR的構造,頭446 Bytes是開機程式(Boot Code),後64 Bytes是partition。

(http://www.pjrc.com/tech/8051/ide/mbr.gif)
可以看得出來硬碟只能記錄4個主要(Primary)分割區,所以當你有需要分隔4個以上的partition時,就必須借用一個主要分割區作為延伸(Extended)分割區來使用。IDE介面的硬碟,允許你最多有63個可用的分割;而SCSI介面的硬碟則最多有15 個。最後2 Bytes: 55 AA,是一個標準的註記,代表這是MBR磁區。這個0xAA55很重要,電腦在開機時,BIOS會去識別這個值,以判定他是否為 MBR,而進行boot的動作(將Boot Code載入記憶體執行,進而完成開機動作)。其實除了MBR之外,每個partition的第一個sector也可以作為開機磁區。因為每個 partition就算是一個檔案系統,每個partition的第一個sector稱之為Superblock,專門用來記錄檔案系統的資訊,所以如果 Superblock損壞,檔案系統也一樣就無法運作了。

我們簡單的歸納一下,硬碟中的第一磁碟上的第零軌的第一個sector存有開機與partition的資訊;而每一個partition就是一個檔案系統;而檔案系統的資訊都存方在每個partition上的第一個sector,又稱Superblock上。硬碟上的partition實際上來講就是磁柱的範圍;磁柱由磁軌而組成;磁軌上是磁碟記錄資料的基本單位 -- 磁區。


上一篇
檔案系統的設計與效能 - 檔案系統的構成
下一篇
檔案系統的設計與效能 - 磁碟結構對檔案系統效能的影響
系列文
檔案系統的設計與效能32
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
timloo
iT邦研究生 2 級 ‧ 2010-10-08 08:56:10

會提到 grub,syslinux

這些boot loader嗎?

最近發現usb 隨身碟,可以幾乎和硬碟一樣,也可在上面做多重開機,

最近慢慢往usb 隨身碟上做多重開機作業系統,這個主題很讚哦!!

chiounan iT邦研究生 1 級 ‧ 2010-10-08 10:00:28 檢舉

謝謝您的支持與回應。我會找適當的機會加上boot loader的主題,我也很喜歡研究這部分。

我知道有usb隨身碟可以建立虛擬光碟,到是還不曉得usb上的多重開機怎麼進行,聽起來蠻有趣的,我也來研究看看。

我要留言

立即登入留言