Linux之磁盤管理及文件系統管理

存儲設備----U盤、光盤、軟盤、硬件、磁帶、硬盤

目前硬盤比較普遍的有機械式硬盤(HDD)、固態硬盤(SSD)、混合硬盤(HHD)。按數據的接口類型,又分類IDE、STAT、SCSI、USB。

磁盤由衆多盤片構成,將磁粉濺鍍到基板上就形成了盤片,基板要求極高,不可有任何瑕疵。磁粉通過N\S磁極來表示0和1,這個數據需要磁頭來讀取和寫入。磁頭在讀取數據時不與盤片接觸,但是又要越近越好,因爲太遠無法感應到磁粉的極性,這個距離現在已經可以做到人類頭髮絲的千分之一了,真是足夠精密了!盤片有電機帶動做高速旋轉,通常聽見的7200轉/分,就是指盤片每分鐘轉過的圈數,這樣磁頭就相對盤片做圓周運動,也就能夠按磁道來讀取數據。除此之外,磁頭的機械臂還由步進電機控制,沿盤片半徑做直線運動,以讀取不同磁道的數據。一塊磁盤擁有多個盤片,每個盤片的上下面都可以讀寫數據,而且每個盤面都有對應的磁頭讀寫。例如,如果一塊磁盤有4個盤面,那麼磁頭就有8個,分別編號0-7。雖然有多個磁頭在工作,但是同一時刻只能有一個磁頭在讀寫數據。 在整個數據的讀取過程中,機械臂的移動稱爲尋道,尋道的時間和盤片旋轉的時間遠大於半導體電路的數據傳輸時間,是阻礙磁盤讀寫性能的最大因素。

機械硬盤的物理結構:

  • 磁道:上面提到了磁道的概念,磁道就是盤面上的一個個同心圓,一個盤面可以有成百上千個磁道。磁道從最外圈向內圈從0開始編號。每個磁道的寬度取決於磁頭的大小,磁頭如果能夠做到原子級別的話,那麼磁道的數量將可以大大增加,存儲容量將幾何倍數提升。
  • 扇區:磁道又被劃分爲一段段的圓弧,稱爲扇區,每個扇區中的數據總是同時讀取或寫入,是磁盤的最小讀寫單位。由於外圈的扇區擁有更高的線速度,所以外圈的數據讀寫要比內圈快一些。
  • 低級格式化:在盤片上劃分磁道和扇區稱爲低級格式化(一般出廠完成低格)。
  • 高級格式化:對磁盤上的數據進行文件系統標記稱爲高級格式化。

MBR----我們將包含MBR引導代碼的扇區稱爲主引導扇區。因這一扇區中,引導代碼佔有絕大部分的空間,故而將習慣將該扇區稱爲MBR扇區(簡稱MBR)。由於這一扇區承擔有不同於磁盤上其他普通存儲空間的特殊管理職能,作爲管理整個磁盤空間的一個特殊空間,它不屬於磁盤上的任何分區,因而分區空間內的格式化命令不能清除主引導記錄的任何信息。主引導扇區由三個部分組成(共佔用512個字節)

  • Main Boot Record主引導記錄位於整個硬盤的0磁道0柱面1扇區。
    • 446bytes:BootLoader,程序
    • 64bytes:分區標識
      • 16bytes:標識一個分區,因此主+擴展<=4
    • 2bytes:Magic Number(標記MBR是否有效)

硬鏈接與軟件鏈接

硬鏈接示圖                                                   軟鏈接示圖

硬鏈接只能作用於文件,不能對目錄進入硬鏈接,且不能跨文件系統,而軟件軟鏈接則可以。

創建鏈接的命令ln

[root@shitouji shell]# ln test.sh abc     #創建硬鏈接

[root@shitouji shell]# ls -i
655375 abc 655386 log 1314251 test 655375 test.sh 658767 word 938509 xiti

ln -s 用於創建軟件鏈接

設備文件分爲字符設備和塊設備

字符設備:以字符爲單位,線性設備,是一個順序流的設備,如終端、磁帶機。

塊設備:以塊爲單位,這裏的塊一般是邏輯塊,隨機存儲

 

磁盤格式化----低級格式化和高級格式化。低級格式化一般由廠商出廠時進行格式化,低級格式化速度較慢,它會重新劃分扇區,寫入引導程序建立分區機制;高級格式化是用來建分區,創建文件系統。以ext2爲例,

ext2最大支持16T的分區,2T的文件,

ext3最大支持16T的分區,2T的文件,但分區的時候,在數據區和元數據區上多了個日誌功能區

ext4最大支持1EB的分區,16TB的文件,且做了很大的改變。爲增加新的信息,大小由EXT3的128字節增加到默認的256字節,同時inode尋址索引不再使用EXT3的"12個直接尋址塊+1個一級間接尋址塊+1個二級間接尋址塊+1個三級間接尋址塊"的索引模式,而改爲4個Extent片斷流,每個片斷流設定片斷的起始block號及連續的block數量(有可能直接指向數據區,也有可能指向索引塊區)。

xfs,單個磁盤支持128分區,最大支持8EB,最大分區128EB。XFS是一個64位文件系統,最大支持 8exbibytes 減1字節的單個文件系統,實際部署時取決於宿主操作系統的最大塊限制。

分配組是XFS抽象程度最高的概念。XFS文件系統內部被分爲多個“分配組”,它們是文件系統中的等長線性存儲區。每個分配組各自管理自己的inode和剩餘空間。文件和文件夾可以跨越分配組。這一機制爲XFS提供了可伸縮性和並行特性——多個線程和進程可以同時在同一個文件系統上並行執行I/O操作。這種由分配組帶來的內部分區機制在一個文件系統跨越多個物理設備時特別有用,使得優化對下級存儲部件的吞吐量利用率成爲可能。

在一個磁盤上創建XFS文件系統之後,磁盤會被格式化成如下格式:

在CentOS7上默認的是創建4個AG。每個AG都相當於是1個獨立的文件系統,維護着自己的free space以及inode,其主要包括以下信息:

  • superblock:描述整個文件系統的信息。
  • 空閒空間管理。
  • inode的分配和記錄管理

結構如下:

解析上面的圖,發現一個AG可以分爲5個部分:

1) 第一個區(共1個block):全局信息描述區,包括:superblock、free space描述(AGF)、inode信息描述(AGI)、預留free space信息描述(AGFL)。每一部分都對應一個結構,用於描述其整體信息。

2) 第二個區(共3個block):B+樹根節點描述區,包括:inode對應的B+樹的根節點(通過AGI中對應字段指向)、管理free space對應的兩顆B+樹的根節點(AGF中對應的字段指向),這兩顆B+樹的索引key不同,一個以block number爲key,一個以block count爲key。

3) 第三個區(共4個block):存放預留freespace節點數據的區域,由AGFL中對應的字段指向。

4) 第四個區:存放inode樹型節點的區域。

5) 第五個區:存放文件系統具體數據和元數據的區域。

所以從整個結構來看,核心的結構爲superblock、AGF以及AGF中指向的管理freespace的B+樹、AGI以及AGI所包含的inode的B+樹以及AGFL和其對應的B+樹。
摘自原文:https://blog.csdn.net/scaleqiao/article/details/52098546

注意:大於2T的分區,只能使用gpt的分區類型,硬件上需要設置UEFI模式

分區工具fdisk/parted用法介紹

fdisk命令參數介紹

  • -l、列出磁盤分區信息

fdisk 設備(/dev/sda)----進入分區交互模式

  •  p、打印分區表。
  •  n、新建一個新分區。
  •  d、刪除一個分區。
  •  q、退出不保存。
  •  w、把分區寫進分區表,保存並退出。

parted命令參數

  • -h, ––help — 顯示求助信息
  • -i, ––interactive — 在必要時提示用戶
  • -l, ––list — 顯示所有磁盤設備的分區表
  • -s, ––script — 從不提示用戶
  • -v, ––version — 顯示版本

parted 設備(/dev/sda)----進入分區交互模式

  • help [COMMAND],打印命令的幫助信息,或指定命令的幫助信息
  • print [free|NUMBER|all] ,顯示分區表, 指定編號的分區, 或所有設備的分區表
  • mkpart PART-TYPE [FSTYPE] START END 創建新分區。PART-TYPE 是以下類型之一:primary(主分 區)、extended(擴展分區)、logical(邏輯分區)。START 和 END 是新分區開始和結束的具體位置。
  • rm NUMBER ,刪除指定編號 NUMBER 的分區。
  • set NUMBER FLAG STATE 對指定編號 NUMBER 的分區設置分區標記 FLAG。對於 PC 常用的 msdos 分區表來說,分區標記 FLAG 可有如下值:”boot”(引導), “hidden”(隱藏), “raid”(軟RAID磁盤陣), “lvm”(邏輯卷), “lba” (LBA,Logic Block Addressing模式)。 狀態STATE 的取值是:on 或 off
  • unit UNIT 設置默認輸出時表示磁盤大小的單位爲 UNIT,UNIT 的常用取值可以爲:‘MB’、‘GB’、‘%’(佔整個磁盤設備的百分之多少)、‘compact’(人類易讀方式,類似於 df 命令中 -h 參數的用)、‘s’(扇區)、‘cyl’ (柱面)、‘chs’ (柱面cylinders:磁頭 heads:扇區 sectors 的地址)
  • mkfs NUMBER FS-TYPE 對指定編號 NUMBER 的分區創建指定類型 FS-TYPE 的文件系統。
  • mkpartfs PART-TYPE FSTYPE START END 創建新分區同時創建文件系統。FS-TYPE 是以下類型一:ext2、fat16、fat32、linuxswap、NTFS、reiserfs、ufs 等
  • cp [FROM-DEVICE] FROM-NUMBER TONUMBER 將分區 FROM-NUMBER 上的文件系統完整地複製到分區TO-NUMBER 中,作爲可選項還可以指定一個來源硬盤的設備名稱FROM-DEVICE,若省略則在當前設備上進行復制。
  • move NUMBER START END 將指定編號 NUMBER 的分區移動到從 START 開始 END 結束的位置上。注意:(1)只能將分區移動到空閒空間中。(2)雖然分區被移動了,但它的分區編號是不會改變的
  • resize NUMBER START END 對指定編號 NUMBER 的分區調整大小。分區的開始位置和結束位置由 START 和 END 決定
  • check NUMBER,檢查指定編號 NUMBER 分區中的文件系統是否有什麼錯誤
  • rescue START END 恢復靠近位置 START 和 END 之間的分區
  • mklabel,mktable LABELTYPE 創建一個新的 LABEL-TYPE 類型的空磁盤分區表,對於PC而言 msdos 是常用的 LABELTYPE。 若是用 GUID 分區表,LABEL-TYPE 應該爲 gpt

mkfs 創建文件系統,對分區進行格式化
-t FSTYPE
mkfs -t ext2 = mkfs.ext2
ext3 是日誌文件系統(journal file system)

blkid:查看或查詢磁盤設備的相關屬性
UUID、TYPE、LABEL

lsblk:查看磁盤

partprobe /dev/sda  重新讀取加載分區列表信息,或者重啓纔會把新分區加載進來

分區格式化完成後,需要掛載,如果需要開機自動掛載,需要更改/etc/fstab,其格式如下

  • UUID=eb448abb-3012-4ded-bcde-94434d586a39 / ext4 defaults 1 1
    /swap swap swap defaults 0 0      #swap分區不能使用UUID
  • 掛載方式 mount 掛載設備 掛載路徑,而掛載交換分區時,用swapon 掛載設備 的方式,卸載時用swapoff

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章