1. 程式人生 > >Linux 系統的磁盤設備_【all】

Linux 系統的磁盤設備_【all】

依次 軌跡 進行 不用 緩存技術 接口 另一個 移動 磁盤容量

磁盤 ->RAID ->分區 ->格式化 ->掛載

基本的框架

a.硬盤的外部以及內部硬件結構,工作原理和讀寫原理
b.RAID的劃分(一塊盤劃分為一塊或者多塊的小虛擬磁盤,可以冗余,可以)
c.磁盤名詞知識以及分區的知識體系
d.格式化,創建文件系統,初始化inode和block; 了解文件系統名詞知識以及體系
e.掛在到Linux文件系統中使用; 掌握系統命令操作知識

磁盤內部結構

正面:產地,大小,生成日期,條形碼,品牌等
反面:綠色電路板,芯片,電容,電阻,氣孔
        buffer 寫入緩沖器   cache讀取緩存區
側面:數據轉換器,電源線,接口(SATA,SAS,ide,scsi)
內部結構:盤片(2-14,每個面都可以存放數據),磁頭,盤片主軸,控制電機,磁頭控制器等
    所有的盤片都固定在一個旋轉軸上,即盤片主軸,
    所有的盤片直接都是平行的,每隔盤片的每個存儲面都有一個磁頭,磁頭有盤片之間的距離很小
磁盤的主軸的轉數是衡量磁盤讀寫性能重要參考之一;
磁盤的接口決定讀取性能
SATA 串口磁盤,結構簡單,可靠,性能高
SAS  結合SATA和SCSI優點而生
SSD固態盤:solid state driver 
    分類:
        基於閃存(FLASH芯片)的SSD:可以移動,數據保護不受電源控制,適用各種環境  -->平時所用的U盤等
        基於DRAM的SSD:采用DRAM作為存儲介質,高性能,需要電源支持
    優點:
        啟動快,碎片不影響讀取時間,寫入快,無噪音,發熱低,無故障,抗振動
    缺點;
        成本高,容量小,壽命有限,數據難恢復

磁盤工作的過程:
自己理解:

    磁盤工作的時候,磁盤會高速運動,當達到一定速度的時候,氣流很強,足夠將磁頭托起並保持微小的距離(距離越小,磁頭讀取數據的靈活性越高),磁頭會慢慢地由啟停區向外移動,磁頭讀取最外面的0磁道的數據(由0磁道檢測器進行引導)
        磁頭沿著直徑做徑向運動,盤片旋轉,轉一圈讀取一圈的數據。·不工作的時候回到啟停區。
 規範版本:
        1.磁盤的讀寫是按照柱面為單位進行的;從0盤面開始,讀取完數據後,讀取1盤面相同半徑的數據,以此類推,讀取半徑相同的磁盤的數據到結束後讀取另一個半徑的數據
        2.不同磁頭之間的切換是電子切換,不同半徑直接的切換是機械的(依靠電機移動磁頭手臂)

磁盤存取數據的原理:電脈沖信號轉換為電腦可識別的信息

1.利用特定的磁粒子的極性來記錄數據。
2.磁頭在讀取數據時,將磁裏自帶不同極性轉換成不同的電脈沖信號,再利用數據轉換器將原有的初始信號變成電腦可用的數據。
    寫與此相反
    磁盤讀寫數據的時候,應盡可能的讓磁頭不動,這樣才能盡可能多的讀取更多的數據

磁盤的相關知識

1.基礎知識
系統啟動時候的引導程序是在 0柱面0磁道的1扇區的512字節 (第一個盤片的最外的的0號數據區)
給磁盤分區實際上就是劃分柱面號和扇區號
柱面數=一個盤的磁道數
Disk 磁盤 Head 磁頭 Sector 扇區 Track 磁道 Cylinder 柱面 Units 單元塊(一個柱面大小)
2.磁盤的盤面
1快磁盤 = 數個有效盤片(7個完整磁盤) 每隔盤片的有效盤面(2面)對應一個讀寫的磁頭,從上往下由0開始編號,不同的磁盤盤面在邏輯上被劃分為磁道,柱面以及扇區(出廠設定好)
一個磁頭對應一個有效盤面(磁頭數=2*盤片)
磁盤停止的時候,磁頭放在磁頭啟停區,啟停區以外都是數據區
磁盤工作的時候,磁盤會高速運動,當達到一定速度的時候,氣流很強,足夠將磁頭托起並保持微小的距離(距離越小,磁頭讀取數據的靈活性越高),磁頭會慢慢地由啟停區向外移動,磁頭讀取最外面的0磁道的數據(由0磁道檢測器進行引導)
磁頭沿著直徑做徑向運動,盤片旋轉,轉一圈讀取一圈的數據。·不工作的時候回到啟停區。
3.磁盤的磁道
磁盤(盤面)格式化的時候,被劃分成許多的同心圓,這些同心圓的軌跡叫做磁道
磁道的編號,由外向內進行編號,磁頭讀數據的時候由0磁道開始
4.磁盤的柱面
所有的盤面上同一個磁道的同心圓軌跡由上到下依次會形成一個圓柱體,叫做柱面
每個柱面上的磁頭由上而下從“0”開始編號
有多少個磁道對應多少個柱面
5.磁盤的扇區
操作系統是以扇區為單位將信息存儲在磁盤上的,一般情況下一個扇區的大小事512字節
定義:由圓心向周圍劃分直線,把磁道劃分為多個扇型區域,這個區域叫做扇區
一個扇區主要有2部分內容組成:標示符,數據段
存儲數據地點的標示符:扇區所在的磁頭(盤面),磁道(柱面號),扇區在磁道的位置(扇區號)
存儲數據的數據段:
多個扇區 == 一個磁道
每個扇區的大小都是512字節
每磁道的扇區數都是一樣的 ,扇區從1開始編號
6.磁盤的總結
1.一個磁盤有2-14個盤片,每個盤片有2個有效的面,每個面對應一個讀寫磁頭,用磁頭號來區分盤面
即盤面數就是讀寫磁頭數,盤片數*2=磁頭數(盤面數)
2.盤面格式化的時候,以盤片中心為圓心,會劃分多個同心圓,這些個同心圓就是我們說的磁道
磁道由外而內的進行編號0-n
3.不同磁道劃分了多個扇形區域,每個扇形區域叫一個扇面
扇面由標示符 + 數據段組成 每個512字節
4.不同的盤面相同半徑的磁道組成一個圓柱面叫做柱面
一個柱面包含多個磁道(半徑同),一個磁道包含多個扇面
5.數據信息記錄可表示為:
某磁頭(盤面) 某磁道(柱面) 某扇區
6.系統的引導磁盤是0柱面0磁道的第1扇區

磁盤容量的計算

fdisk -l    -->  查看磁盤分區
	Disk /dev/mapper/VolGroup-lv_root: 16.8 GB, 16752050176 bytes
	255 heads, 63 sectors/track, 2610 cylinders
	Units = cylinders of 16065 * 512 = 8225280 bytes        -->一個柱面的大小
方法1: 
	磁盤容量=512B * 扇區數 * 磁道數(每盤面) * 磁頭數
			=512  * 2636   * 63             * 255
			echo $((255*63*2036*512))          -->只能計算整數
				==>echo "255*2636*63*255"|bc   -->可以計算小數
方法2:
	磁盤容量=柱面數(磁道數) * 柱面大小(磁道大小 * 磁頭數)
			=512B*扇區數*磁道數*磁頭數
			=Units * 2610
			echo $((8225280*2036))  

機械磁盤讀取數據工作原理

1.磁盤的讀寫是按照柱面為單位進行的;從0盤面開始,讀取完數據後,讀取1盤面相同半徑的數據,以此類推,讀取半徑相同的磁盤的數據到結束後讀取另一個半徑的數據
2.不同磁頭之間的切換是電子切換,不同半徑直接的切換是機械的(依靠電機移動磁頭手臂)

磁盤命令的總結

1.提示
	1.Linux系統的特性是將系統不用的物理內存緩存起來
	2.buffers 為寫入緩沖區  sync將緩沖區數據寫入磁盤
	3.cache 為讀取數據的緩沖區
	4.機械硬盤的讀取和寫入都用到了緩存技術
2.命令
	free :
	    -m: 顯示經過計算的內存大小   如下所示,剩余內存為347M
	     [root@omc ~]# free -m
   		    		 total      	  used       free     shared    buffers     cached
				 Mem:             482        247        235          0         26         85
		/+ buffers/cache:         135        347

其他

問題: 不同磁道的扇區大小看起來不一樣,直觀感覺越靠外面,磁道扇面越大
答案: 1.數據的存儲密度在不同的磁道內不一樣
2.磁道間隙密度不同,外面小,裏面打

Linux 系統的磁盤設備_【all】