Linux分區&格式化&文件系統&LVM&擴容

硬件

  1. 磁盤由 盤片組、主軸馬達、機械臂、磁頭、驅動芯片和電路、接口等構成 2. 磁盤的分割
    • 每一個盤片不少同心圓分割爲磁道 Trace
    • 一組盤片的同徑磁道叫作一個柱面 Cylinder
    • 每一個磁道又被分爲不少小扇面 Sector,一個扇區是 512字節
    • 磁頭在讀寫的時候,先找磁道,而後每次讀一個Sector,因此扇區是磁盤讀寫的基本傳輸單位
    • 很顯然對於同一柱面上的數據,不須要從新找道,因此在讀寫看來具備連續性,因此將柱面當中磁盤分區的基本單位
  2. 磁盤接口
    • IDE 排線寬,主從,通常主板上是兩個接口,每一個排線有兩個接口,能夠接兩個IDE硬盤,分爲主從。IDE的速度理論最大133M/s
    • SATA 如今最多見的磁盤,接口比較窄,有 1.0、2.0、3.0 三代接口,速度分別是 150/300/600M/s
    • SCSI 比較貴,用於大公司,磁盤上有獨立處理器加速,甚至可能有cache。

操做系統

  1. 分區
    • 爲何分區?你家房子不分爲多個小房間嗎?固然是用起來更爽啊
    • 分區作了些啥?
      • 磁盤的第一扇區相當重要的,有446字節存放MBR用於引導啓動,還有64字節用於存放分區表。
      • 簡單的說,分區就是在分區表裏記錄每一個區的開始和結尾柱面號。
      • 說複雜點,第一扇區只能最多記錄4個區的分區表,可是咱們能夠在其中創建一個拓展分區,而後在拓展分區的首扇區繼續去寫分區表,這樣就能夠獲得超過4個的分區。
  2. 文件系統
    • 爲何格式化?磁盤那麼大,你用了哪些沒用那些這些數據確定要存起來吧,存哪裏呢?就要有個格式吧。
    • 格式化作了啥?
      • 將一個分區劃分爲了兩個部分,一部分存磁盤狀態和文件的索引,另外一部分存數據。
      • 存磁盤狀態的叫作超級塊 SuperBlock,記錄了那些塊可用,那些不可用,還有總大小,剩餘空間
      • 每一個文件有一個inode,對應映射表,還記錄了文件的元數據,如權限等
    • 文件系統分類
      • Linux:Ext 2/3/4, XFS
      • Window: Fat32, NFS
      • Ext的文件格式用多級索引的方式去找文件,好比一個文件比較小,就把它的所有塊號存在inode的映射表裏。若是太大就存一級的,而後一級去找二級,二級存放在數據塊裏某個位置,相似還有三級。。。。。
      • Fat32 文件系統是windows比較老的文件系統,採用線索查找,inode只記錄第一個數據塊的位置,而後再第一個數據塊中保存下一個位置,依次類推找到整個文件。因此須要常常整理磁盤碎片,否則查找會愈來愈慢。
    • 文件系統 是按塊Block來保存數據的。
      1. 顯然Block應該是扇區的整數倍大小
      2. Block定得太大會使得小文件佔更多空間,定得過小,使得大文件的記錄開銷和讀寫變慢。
  3. 新技術 LVM 和Software RAID
    • 上面說的格式化,是針對一個分區,這就是說咱們若是想擴大一個文件系統是不可能的,只能從新分區。
    • 新技術LVM的出現,使得一個文件系統再也不是直接對應一個分區,而是在物理分區和格式化之間加了一個LVM層,物理分區被LVM管理,而後提供邏輯卷給目錄掛載,而格式化的定義就變成了針對一個掛載對象創建文件系統。
    • RAID技術利用數據分塊和並行處理的技術減小I/O排隊,更高效的利用I/O總線帶寬。利用多塊硬盤來提速。軟磁盤陣列是將RAID管理軟件跑在操做系統之上,相比硬件芯片,速度慢,可是便宜。軟RAID將多塊磁盤合併成一個磁盤,因而提供了更靈活的使用,也在物理分區和文件系統之技安進行了隔離,加入了RAID層。

實踐——動態擴容

  1. 場景:咱們裝系統的時候進行了分區,而後掛了一個區到 / 下,可是使用的過程當中發現該目錄剩餘空間不夠,這時候咱們想擴容
  2. 很差的解決方案:在一塊更大磁盤上從新分區,而後將原先磁盤 /的東西拷貝過來
  3. 好的解決方案:LVM
    • 如今的linux都是用LVM在管理磁盤和掛載,因此直接用LVM來將空閒空間分給 /,或者新增磁盤,分區以後加入LVM的管理,並將它的空間分給 /
  4. 命令
    • 準備命令:node

      • df 查看加載了的各個文件系統的使用狀況
      • df -T 能夠看到文件系統的類型
      • du 進入到某個目錄對應的文件系統,列出這個目錄或其文件在文件系統中佔用的空間
      • fdisk -l 查看各物理盤,和分區狀況,是否分區也能夠看出來,磁盤必須分區纔可使用
      • fdisk 物理盤,進行分區,或修改分區
    • 用不到,可是別出有用的命令:linux

      • mkfs* 這些mkfs開頭的命令用於格式化,建立可掛載的文件系統,基於LVM,可格式化的是一個邏輯卷,而不基於LVM,可格式化的就是一個分區。基於LVM拓展一個邏輯卷,並不要求新加入卷組的物理卷是一個文件系統,由於只是新增了數據塊,而前面的超級塊,inode塊只需簡單修改。
      • mount 用於掛載一個文件系統到某個路徑
      • fsck 用於檢查某個文件系統,如壞道等待
    • 關鍵命令,LVM的命令windows

      • pvcreate 一個分區 這條命令用來將一個磁盤的分區對應到一個物理卷
      • pvdisplay 查看所有物理卷
      • vgextend 卷組名 物理卷 這條命令將一個物理卷加入一個卷組
      • lvextend -L 大小 邏輯卷名字 這條命令拓展一個邏輯卷的大小,要求是剩餘空間足夠
      • 上面完成以後並無生效,要進行下面操做
      • 若是邏輯卷是 ext2/3/4 類型的文件系統,執行 resize2fs 邏輯卷名
      • 若是邏輯卷是 xfs 類型的文件系統,執行 xfs_growfs 邏輯卷名
相關文章
相關標籤/搜索