天天看點

Linux之磁盤管理及檔案系統管理

儲存設備----U盤、CD光牒、軟碟、硬體、錄音帶、硬碟

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

磁盤由衆多盤片構成,将磁粉濺鍍到基闆上就形成了盤片,基闆要求極高,不可有任何瑕疵。磁粉通過N\S磁極來表示0和1,這個資料需要磁頭來讀取和寫入。磁頭在讀取資料時不與盤片接觸,但是又要越近越好,因為太遠無法感應到磁粉的極性,這個距離現在已經可以做到人類頭發絲的千分之一了,真是足夠精密了!盤片有電機帶動做高速旋轉,通常聽見的7200轉/分,就是指盤片每分鐘轉過的圈數,這樣磁頭就相對盤片做圓周運動,也就能夠按磁道來讀取資料。除此之外,磁頭的機械臂還由步進電機控制,沿盤片半徑做直線運動,以讀取不同磁道的資料。一塊磁盤擁有多個盤片,每個盤片的上下面都可以讀寫資料,而且每個盤面都有對應的磁頭讀寫。例如,如果一塊磁盤有4個盤面,那麼磁頭就有8個,分别編号0-7。

雖然有多個磁頭在工作,但是同一時刻隻能有一個磁頭在讀寫資料

。 在整個資料的讀取過程中,機械臂的移動稱為

尋道

,尋道的時間和盤片旋轉的時間遠大于半導體電路的資料傳輸時間,是阻礙磁盤讀寫性能的最大因素。

機械硬碟的實體結構:

Linux之磁盤管理及檔案系統管理
  • 磁道:上面提到了磁道的概念,磁道就是盤面上的一個個同心圓,一個盤面可以有成百上千個磁道。磁道從最外圈向内圈從0開始編号。每個磁道的寬度取決于磁頭的大小,磁頭如果能夠做到原子級别的話,那麼磁道的數量将可以大大增加,存儲容量将幾何倍數提升。
  • 扇區:磁道又被劃分為一段段的圓弧,稱為扇區,每個扇區中的資料總是同時讀取或寫入,是磁盤的最小讀寫機關。由于外圈的扇區擁有更高的線速度,是以外圈的資料讀寫要比内圈快一些。
  • 低級格式化:在盤片上劃分磁道和扇區稱為低級格式化(一般出廠完成低格)。
  • 進階格式化:對磁盤上的資料進行檔案系統标記稱為進階格式化。

MBR----我們将包含MBR引導代碼的扇區稱為主引導扇區。因這一扇區中,引導代碼占有絕大部分的空間,故而将習慣将該扇區稱為MBR扇區(簡稱MBR)。由于這一扇區承擔有不同于磁盤上其他普通存儲空間的特殊管理職能,作為管理整個磁盤空間的一個特殊空間,它不屬于磁盤上的任何分區,因而分區空間内的格式化指令不能清除主引導記錄的任何資訊。主引導扇區由三個部分組成(共占用512個位元組)

  • Main Boot Record主引導記錄位于整個硬碟的0磁道0柱面1扇區。
    • 446bytes:BootLoader,程式
    • 64bytes:分區辨別
      • 16bytes:辨別一個分區,是以主+擴充<=4
    • 2bytes:Magic Number(标記MBR是否有效)

硬連結與軟體連結

Linux之磁盤管理及檔案系統管理

硬連結隻能作用于檔案,不能對目錄進入硬連結,且不能跨檔案系統,而軟體軟連結則可以。

建立連結的指令ln

[[email protected] shell]# ln test.sh abc     #建立硬連結

[[email protected] shell]# ls -i

655375 abc 655386 log 1314251 test 655375 test.sh 658767 word 938509 xiti

ln -s 用于建立軟體連結

裝置檔案分為字元裝置和塊裝置

字元裝置:以字元為機關,線性裝置,是一個順序流的裝置,如終端、錄音帶機。

塊裝置:以塊為機關,這裡的塊一般是邏輯塊,随機存儲

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

Linux之磁盤管理及檔案系統管理
Linux之磁盤管理及檔案系統管理
Linux之磁盤管理及檔案系統管理

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檔案系統之後,磁盤會被格式化成如下格式:

Linux之磁盤管理及檔案系統管理

在CentOS7上預設的是建立4個AG。每個AG都相當于是1個獨立的檔案系統,維護着自己的free space以及inode,其主要包括以下資訊:

  • superblock:描述整個檔案系統的資訊。
  • 空閑空間管理。
  • inode的配置設定和記錄管理

結構如下:

Linux之磁盤管理及檔案系統管理

解析上面的圖,發現一個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