磁盤的內部結構前端
磁頭組件,磁盤的驅動結構,磁盤片(platter),主軸組件,前端控制電路node
磁頭(Head),磁頭是磁盤中最爲昂貴的部件,是磁盤技術中最爲重要的一環,採用了給接觸式結構,加電後懸浮在高速旋轉的磁盤表面,分爲讀寫合一磁頭(Read/Write Head)和分離式磁頭。linux
The read/write heads for all of the platters in the drive in a dirve are attached to one actuator arm assembly and move across the platter simultaneously. there are two read/write heads per platter,one for each surface.緩存
磁道(Track),當磁盤旋轉時,磁頭若保持在一個位置上,則每一個磁頭都會在磁盤便面劃出一個圓形軌跡,這些圓形軌跡就是磁道。服務器
Data is recorded in track. A track is a concentric ring around the spindle which contains information.A trarck can hold a large amount of information. Track density decribes how tightly packed the track are on a platter.網絡
扇區(Sector),磁盤上每一個磁道被等分爲若干弧段,這些弧段被稱爲磁盤的扇區。ide
Every sectors store user data along with its own location data: sector number, head number, or platter number and track number. 512 bytes per sector.性能
柱面(Cylinder),磁盤一般由重疊的一組盤片構成,每一個盤面都被劃分爲數據相等的磁道,而且從外邊緣的"0"開始編號,具備相同編號的磁道造成的一個圓柱,稱之爲磁盤的柱面。spa
A cylinder is the set of identical tracks on both surfaces of each of the drives's platters. Often the location of drives are referred to by cylinder number rather than by track number.操作系統
磁盤的主要參數
磁盤容量(Capacity),做爲計算機系統的數據存儲器,容量是磁盤最主要的參數,磁盤的容量以兆字節(MB)或千兆字節(GB)爲單位。
磁盤轉速(Rotationl Speed),轉速是指磁盤盤片每分鐘轉動的圈數,單位爲rpm(Revolutions Per Minute)。
平均尋道時間(Average Seek Time),指磁頭移動到數據所在磁道須要的時間,這是衡量磁盤機械性能的重要指標 。
平均潛伏期 (Average Latency),指當磁頭移動到數據所在的磁道之後,等待指定的數據扇區轉動到磁頭下方的時間。
平均訪問時間(Average Access Time),指從讀/寫指令發出到第一筆數據讀/寫實際開始所用的平均時間。
數據傳輸率(Data Transfer Rate ),指磁盤讀寫數據的速度,單位爲兆字節每秒(MB/s).
磁盤緩衝區,也稱之爲緩存(Cache)緩衝區的基本做用是平衡內部與外部的數據傳輸率,爲了減小主機的等待時間,磁盤會將讀取的資料先存入緩衝區,等所有讀完或緩衝區填滿後再以接口速率快速向主機發送。
磁盤接口
IDE(Integrated Drive Electronics),即「電子集成驅動器」,它的本意是指把「硬盤控制器」與「盤體」集成在一塊兒的硬盤驅動器。把盤體與控制器集成在一塊兒的作法減小了硬盤接口的電纜數目與長度,數據傳輸的可靠性獲得了加強,硬盤製造起來變得更容易,所以硬盤生產廠商不須要再擔憂本身的硬盤是否與其它廠商生產的控制器兼容。對用戶而言,硬盤安裝起來也更爲方便。IDE這一接口技術從誕生至今就一直在不斷髮展,性能也不斷地提升,其擁有的價格低廉、兼容性強的特色,爲其造就了其它類型硬盤沒法替代的地位。
SCSI(Small Computer System Interface ),一種用於計算機和智能設備之間(硬盤、軟驅、光驅、打印機、掃描儀等)系統級接口的獨立處理器標準。
FC(Fibre Channel ),就是網狀信道,光纖接口,最初是專門爲網絡系統設計的,隨着存儲系統對速度的需求,逐漸應用到硬盤系統中。一般用於鏈接一個SCSI RAID(或其它一些比較經常使用的RAID類型),以知足高端工做或服務器對高數據傳輸率的要求。
SATA(Serial Advanced Technology Attachment),ATAZ中文簡稱硬盤接口技術,SATA,是串行ATA,一種徹底不一樣於並行ATA的新型硬盤接口類型,因爲採用串行方式傳輸數據而得名。如今,SATA分別有SATA 1.5Gbit/s、SATA 3Gbit/s和SATA 6Gbit/s三種規格。
SAS(Serial Attached SCSI ),即串行鏈接SCSI,是新一代的SCSI技術,和如今流行的Serial ATA(SATA)硬盤相同,都是採用串行技術以得到更高的傳輸速度,並經過縮短連結線改善內部空間等。SAS是並行SCSI接口以後開發出的全新接口。此接口的設計是爲了改善存儲系統的效能、可用性和擴充性,而且提供與SATA硬盤的兼容性。
SAS的接口技術能夠向下兼容SATA。具體來講,兩者的兼容性主要體如今物理層和協議層的兼容。在物理層,SAS接口和SATA接口徹底兼容,SATA硬盤能夠直接使用在SAS的環境中,從接口標準上而言,SATA是SAS的一個子標準,所以SAS控制器能夠直接操控SATA硬盤,可是SAS卻不能直接使用在SATA的環境中,由於SATA控制器並不能對SAS硬盤進行控制;在協議層,SAS由3種類型協議組成,根據鏈接的不一樣設備使用相應的協議進行數據傳輸。其中串行SCSI協議(SSP)用於傳輸SCSI命令;SCSI管理協議(SMP)用於對鏈接設備的維護和管理;SATA通道協議(STP)用於SAS和SATA之間數據的傳輸。所以在這3種協議的配合下,SAS能夠和SATA以及部分SCSI設備無縫結合。
分區(Partition)
低級格式化:實現劃分好磁道扇區等。
高級格式化:建立文件系統。
分區就是把整這個磁盤劃分紅多個邏輯組成結構。每一個邏輯組成結構裏能夠建立一個獨立的文件系統,於是一個磁盤上能夠建立多個獨立的文件系統。
MBR:主引導記錄(Master Boot Record) (512byte 0,0,0)0platter 0Track,0Sector
前446btyes BootLoader程序,可以引導某個分區上的操做系統讓它啓動起來。
後64bytes:per 16 bytes:表示一個分區,於是主分區+擴展分區<=4。
最後2bytes,Magic Number: 標記MBR是否有效。
BIOS中的數據rom中的一段程序代碼,檢查自身健康情況, 開機之後,會映射到內存的最低端,cpu開始執行這段代碼,開始檢查自身的健康情況,自檢沒有任何問題了,BIOS依據在BIOS中設定的啓動次序,挨個去找啓動設備的MBR(多是光盤,usb設備,硬盤設備)。因而,BIOS把MBR中的bootloader映射到內存,BISO把執行指令交給cpu,bootloader最開始執行,BIOS退出,bootloader讀取分區表,找到的分區找操做系統的內核,操做系統內核加載到內存,boorloader將管理權交給操做系統內核。
對磁盤分區:
磁盤是按柱面cylinder分區的。由於在存儲一個文件時,爲了加速文件存儲,數據存儲也是按柱面存儲的。
Since a platter is made up of concentric tracks, the outer trackes can hold more data than the inner ones beacause they are physically longer than ther inner trackes. However,in older disk drivers the outer tracks had the same number of sectors as the inner tracks, which means that the data density was low on the outer tracks. This was an inefficent use of the availables space.
磁盤分區後(platter with zone)就能夠存儲數據,可是存儲的數據須要邏輯的邊界,尋址定位的功能,要能分類,編號,創建索引。所以就須要在分區上創建一個叫作文件系統的東西。文件系統就是一個管理軟件,存儲在磁盤的某個位置上,並非直接在分區上,可是存儲的數據在分區上。文件系統可以把一個分區中的存儲空間劃分爲兩個部分:一塊是Metadata,一塊是數據存儲區,數據存儲區劃分爲邏輯存儲單元,稱爲磁盤塊block,邏輯概念。
元數據區:
指定一段固定區域,存儲條目:能夠指向磁盤塊編號。每一個文件佔一個條目,新建一個文件就要分配空間來存儲文件對應得信息。每用來引用的一個文件的條目有一個獨特的稱呼,索引節點,index node,簡寫爲inode,每個inide有一個全局惟一的編號,每一個inode號對應的條目用來引用一個文件。inode條目中存放inode號,對應文件的權限,時間戳,屬主 ,屬組,擴展屬性,大小,存儲的block信息,沒有文件名。存儲一個文件在一個對應的條目要指向這個文件所佔據的磁盤塊,這個文件很是大,須要佔據成千上萬個磁盤塊,文件對應的條目不可能指向全部的磁盤塊,沒有這麼多空間。其實這裏和擴展分區同樣,在指向磁盤塊的時候使用的是指針,有直接指向磁盤塊的路徑,還有間接指向磁盤塊的路徑,也就是分級指向,一會兒能夠引用許許多多磁盤塊。分級指向能夠擴展到其餘的位置。能夠這麼來理解,一個擴展到的其餘位置來標識額外的磁盤塊,因此它有間接目錄,二級間接目錄,三級間接目錄來指向磁盤塊的位置。這樣一個inode條目不管是直接的仍是間接的引用的磁盤塊的多少決定了單個文件的大小。某些文件系統上指定某個文件的大小不能超過多少G.FAT32中一個文件最多不能超過4G.所以某一個文件系統所支持的單個文件有多大,事實上對一個文件系統來說仍是相當重要的。也應該是一個文件系統最基本的衡量標準。
條目存儲對應的inode位圖區:在inode bitmap中的每一位與條目存放塊一一對應,1爲已使用,0爲空閒。
塊位圖bitmap,block bitmap。數據區每一個磁盤塊block有一個位在bitmap中,只有一位,1爲已使用,0爲空閒。bitmap對應每個磁盤塊,用來加速空閒磁盤塊的查找。文件名存放,目錄也是文件,linux上全部的文件從/開始,那麼/在什麼地方,內核,linux在啓動的時候,linux操做系統會知道/在什麼地方。操做系統會本身引用到/,也就是所根目錄是自引用的,/目錄必定會找到本身,只要能找到/,其餘的文件就都能找到。文件名實際上是存放在目錄上的,而目錄也是一個文件,所以一個目錄也是要佔據磁盤塊,目錄不是容器也是個磁盤塊,分紅兩部分,一部分存放inode號,一部分存放文件名,叫目錄項(dentry)。
引入軟連接和硬連接文件的概念:
連接文件:
軟連接,也叫符號連接:直接指向同一個inode的兩個不一樣路徑,就能夠叫作軟鏈接
符號連接;
一、能夠應用於目錄,
二、能夠跨文件系統
三、不會增長被鏈接文件的次數;
四、其大小爲指定的路徑所包含的字符的個數。
硬連接,
指向的inode連接,存儲着inode號和一個文件存儲路徑,大小爲文件存儲路徑字符的個數,經過文件存儲路徑找到文件數據存儲的位置
一、只能指向文件,不能用於目錄;
二、不能跨文件系統;
三、 建立硬連接會怎家文件被連接的次數;
硬連接的次數:只有次數小於1,才能完全刪除,不然只是刪除了文件存儲路徑,inode號和數據依然存在
ln [-s -v] SRC