硬盘基础知识&&分区
學習記錄的筆記,雖然毫無章法
硬盤基礎知識
磁盤的物理組成
如下圖所示:
有關磁盤物理知識的詳細介紹請看硬盤的存儲原理和內部架構這篇博文
硬盤接口類型
IDE
SATA
SCSI
SAS
光纖通道
IDE(Integrated Drive Electronic,電子集成驅動器)
用途:家用+部分服務器
特點:價格低、兼容性強
傳輸模式:PIODMAUDMA
如下圖所示:
SATA(Serial Advanced Technology Attachment,串行高級技術附件)
用途:PC機主流趨勢
特點:可以對傳輸指令進行檢查,具備自動糾錯能力。
如下圖所示:
SCSI(Small Computer System Interface,小型計算機系統接口)
用途:服務器
特點:應用范圍廣、多任務、帶寬大、CPU占用率低、熱插拔
如下圖所示:
SAS(Serial Attached SCSI,串行連接SCSI接口,串行連接小型計算機系統接口)
介紹:新一代的SCSI的技術
用途:服務器
特點:改善存儲系統的效能、可用性和擴充性,與SATA硬盤的兼容性
如下圖所示:
光纖通道(Fiber Channel)
用途:專門為網絡系統設計的接口技術
特點:熱插拔性、高速帶寬、遠程連接、連接設備數量大等
如下圖所示:
硬盤種類
SSD
HHD
HDD
SSD(Solid State Drive,固態硬盤)
優點:讀寫速度快;防震抗摔性;低功耗;無噪音;工作溫度范圍大;輕便
缺點:容量小;壽命有限;售價高
HHD(hybrid hard drive,混合硬盤)
優點:
1. 系統啟動時間減少
2. 功耗降低
3. 生成熱量減少
4. 硬盤壽命延長
5. 筆記本和PAD的電池壽命延長
6. 工作噪聲級別降低
缺點:
1. 硬盤中數據的尋道時間更長
2. 硬盤的自旋變化更頻繁
3. 閃存模塊處理失敗,不可能進行其中的數據恢復
4. 系統的硬件總成本更高
HDD(Hard Disk Drive,傳統硬盤)
優點:略
缺點:略
磁盤分區
磁盤分區類型
MBR
GPT
MBR
第一分區
開機管理程序(Bootloader)(512bytes,開機記錄區[446bytes]+存放表[64bytes])
例如/dev/sda[1,2,3,4]
主分區、延伸分區
四個主分區或延伸分區
邏輯分區
由延伸分區繼續分割出的分區
下標從5開始,如/dev/sda[5,...]
分區的最小單位是:柱面
總結
主分區與延伸分區最多可以有四筆(磁盤的限制);
延伸分區最多只能有一個;
邏輯分區是由延伸分區持續切割出來的分割槽;
能夠被格式化后,作為資料存取的分割槽為主分區與邏輯分區。延伸分區無法格式化;
邏輯分區的數量因操作系統而不同,在Linux系統中SATA硬盤已經可以突破63個以上的分割限制。
GPT
以LBA(Logical Block Address)分區
LBA默認扇區大小為512bytes,目前有4K大的扇區
前34個LBA(即LBA(0~33))記錄分區信息表,最后33個LBA用來備份分區信息,如下圖所示:
LBA0:開機管理程序+GPT分區標識
LBA1:分區表位置、大小、備份GPT分區位置、分區表檢驗機制碼(CRC32)
LBA2~LBA32:記錄分區信息處
從LBA2開始:每個LBA可以記錄4筆分區記錄,4*32=128筆。512bytes=128bytes(分區)+相關信息+64bytes(記錄開始/結束扇區號碼)
開機啟動程序
文件系統
磁盤格式
Windows98之前: FAT (或 FAT16)
Window2000之后:NTFS
Linux:Ext2(正統文件系統)
相關概念
superblock:記錄此 filesystem 的整體資訊,包括inode/block的總量、使用量、剩餘量, 以及檔案系統的格式與相關資訊等;
inode:記錄檔案的屬性,一個檔案佔用一個inode,同時記錄此檔案的資料所在的 block 號碼;
block:實際記錄檔案的內容,若檔案太大時,會佔用多個 block 。[目錄block記錄了該目錄下文件名和inode編號]
分類
索引式文件系統
日志式文件系統
Ext2文件系統介紹
Ext2格式化后如下圖所示:
block group下內容介紹
data block
原則上,block 的大小與數量在格式化完就不能夠再改變了(除非重新格式化);
每個 block 內最多只能夠放置一個檔案的資料;
承上,如果檔案大於 block 的大小,則一個檔案會佔用多個 block 數量;
承上,若檔案小於 block ,則該 block 的剩餘容量就不能夠再被使用了(磁碟空間會浪費)
inode table
inode存放內容
該檔案的存取模式(read/write/excute);
該檔案的擁有者與群組(owner/group);
該檔案的容量;
該檔案建立或狀態改變的時間(ctime);
最近一次的讀取時間(atime);
最近修改的時間(mtime);
定義檔案特性的旗標(flag),如 SetUID...;
該檔案真正內容的指向 (pointer);
總結
每個 inode 大小均固定為 128 bytes (新的 ext4 與 xfs 可設定到 256 bytes);
每個檔案都僅會佔用一個 inode 而已;
承上,因此檔案系統能夠建立的檔案數量與 inode 的數量有關;
系統讀取檔案時需要先找到 inode,並分析 inode 所記錄的權限與使用者是否符合,若符合才能夠開始實際讀取 block 的內容。
inode記錄一個block編號需要4bytes
思考:如果一個文件有400M,假設默認block大小為1K,磁盤是如何讀取這個文件的?
inode 記錄 block 號碼的區域定義為12個直接,一個間接, 一個雙間接與一個三間接記錄區
12個直接: 121K = 12K;1個間接:(1K/4bytes)1K = 256K;1個雙間接:((1K/4bytes)^2)1K = (2562)K;1個三間接:(((1K/4bytes)2)256)1K = (256^3)K; 12 + 256 + 256256 + 256256256 (K) = 16GB
2K,4K不能這么計算,因為會受到Ext2文件系統的限制
Superblock(1024bytes)
block 與 inode 的總量;
未使用與已使用的 inode / block 數量;
block 與 inode 的大小 (block 為 1, 2, 4K,inode 為 128bytes 或 256bytes);
filesystem 的掛載時間、最近一次寫入資料的時間、最近一次檢驗磁碟 (fsck) 的時間等檔案系統的相關資訊;
一個 valid bit 數值,若此檔案系統已被掛載,則 valid bit 為 0 ,若未被掛載,則 valid bit 為 1 。
Filesystem Description
描述每個 block group 的開始與結束的 block 號碼,以及說明每個區段 (superblock, bitmap, inodemap, data block) 分別介於哪一個 block 號碼之間
block bitmap
未使用中,使用中,空的
inode bitmap
記錄使用與未使用的 inode 號碼
創建一個文件的流程
先確定使用者對於欲新增檔案的目錄是否具有 w 與 x 的權限,若有的話才能新增;
根據 inode bitmap 找到沒有使用的 inode 號碼,並將新檔案的權限/屬性寫入;
根據 block bitmap 找到沒有使用中的 block 號碼,並將實際的資料寫入 block 中,且更新 inode 的 block 指向資料;
將剛剛寫入的 inode 與 block 資料同步更新 inode bitmap 與 block bitmap,並更新 superblock 的內容。
問題:寫入文件時,第三步執行完畢后,突然斷電了,該怎么解決?
<table>
<tr>
<td>1.索引式文件系統</td>
<td>2.日志式文件系統</td>
</tr>
</table>
XFS文件系統介紹
資料區 (data section)
一個檔案系統活動登錄區 (log section)
即時運作區 (realtime section)
資料區
inode/data block/superblock
登錄區
即時運作區
命令xfs_info
類似 ext家族的 dumpe2fs命令
磁盤分區、格式化
分區類型
查看設備列表lsblk
查看設備唯一號blkid
查看文件系統分區類型parted device_name print
分區工具
gdisk:xfs分區
fdisk:ext分區
parted:兩者都可以
格式化
xfs分區:mkfs.xfs
Ext4分區:mkfs.ext4
通用:mkfs -t
| mkfs -t vfat /dev/sda5 | mkfs -t ext2 /dev/sda5 |
檢驗文件系統
xfs:xfs_repair dev_name
ext4:fsck.ext4 dev_name
總結
以上是生活随笔為你收集整理的硬盘基础知识&&分区的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JAVA圣诞代码,圣诞节(示例代码)
- 下一篇: 【交换机】交换机RLDP(环路检测&am