天天看點

Linux運維——檔案系統管理Linux運維——檔案系統管理

文章目錄

  • Linux運維——檔案系統管理
    • 一、硬碟結構
      • 1、硬碟的邏輯結構
      • 2、硬碟接口
    • 二、檔案系統
      • 1、Linux檔案系統的特性
      • 2、Linux常見檔案系統
    • 三、常用的硬碟管理指令
      • 1、df指令
      • 2、du指令
      • 3、fsck檔案系統修複指令
      • 4、顯示磁盤狀态dump2fs
      • 5、檢視檔案的詳細時間
      • 6、判斷檔案類型
    • 四、fdisk指令手工分區
      • 1、檢視系統所有硬碟及分區
      • 2、開始磁盤分區
      • 3、格式化建立檔案系統
      • 4、挂載分區
      • 5、自動挂載
    • 五、parted指令分區
      • 1、parted互動模式
      • 2、切換分區表
      • 3、建立分區
      • 4、格式化挂載分區
    • 六、配置設定swap分區
      • 1、分區,修改為swap分區ID
      • 2、格式化分區
      • 3、使用swap分區

Linux運維——檔案系統管理

一、硬碟結構

1、硬碟的邏輯結構

Linux運維——檔案系統管理Linux運維——檔案系統管理

每個扇區的大小是固定的,為

512Byte

。扇區也是磁盤的最小存儲機關

硬碟的大小是使用“磁頭數*柱面*扇區數*每個扇區的大小”計算的,其中磁頭數(Heads)表示硬碟總共有幾個磁頭,也可以了解成為硬碟有幾個盤面,然後乘以二;柱面數(Cylinders)表示硬碟每一面盤片有幾條磁道;扇區數(Sectors)表示每條磁道上有幾個扇區;每個扇區的大小一般是

512Byte

2、硬碟接口

  • IDE

    硬碟接口(Integrated Drive Electronics,并口,即電子內建驅動器)也稱作“

    ATA

    硬碟”或“

    PATA

    硬碟”,是早期機械硬碟的主要接口,

    ATA133

    硬碟的理論速度可以達到

    133MB/s

    (此速度為理論平均值),

    IDE

    硬碟接口
  • SATA

    接口(

    Serial ATA

    ,序列槽)是速度更高的硬碟标準,具備了更高的傳輸速度,并具備了更強的糾錯能力。目前已經是

    SATA

    三代,理論傳輸速度達到了

    600MB/s

    (此速度為理論平均值)
  • SCSI接口(Small Computer System Interface,小型計算機系統接口)廣泛應用在伺服器中,具有應用範圍廣、多任務、帶寬大、CPU占用率低及支援熱插拔等優點,理論傳輸速度達到了

    320MB/s

二、檔案系統

1、Linux檔案系統的特性

  • super block(超級塊):記錄整個檔案的資訊,包括block與inode的總量,已經使用的inode和block的數量,未使用的inode和block的數量,block與inode的大小,檔案系統的挂載時間,最近一次寫入的時間,最近一次的磁盤檢驗時間等。
  • data block(資料塊,也稱作block):用來實際儲存資料,block的大小(1KB、2KB或4KB)和數量在格式化後就已經決定,不能改變,除非重新格式化。每個block隻能儲存一個檔案的資料,要是檔案資料大于一個block塊,則占用多個block塊。Windows中磁盤碎片整理工具的原理就是把一個檔案占用的多個block塊盡量整理到一起,這樣可以加快讀寫速度。
  • inode(i節點):用來記錄檔案的權限(r、w、x),檔案的所有者和所屬組,檔案的大小,檔案的狀态改變時間(ctime),檔案的最近一次讀取時間(atime),檔案的最近一次修改時間(mtime),檔案的資料真正儲存的block編号每個檔案需要占用一個inode。

2、Linux常見檔案系統

  • ext

    :linux中最早的檔案系統,由于在性能和相容性上具有很多缺陷,現在已經很少使用
  • ext2

    :是ext檔案系統的更新版本,Red Hat Linux 7.2版本以前的系統預設都是ext2檔案系統。于1993年釋出,支援最大16TB的分區和最大2TB的檔案
  • ext3

    :是ext2檔案系統的更新版本,最大的差別就是帶日志功能,以便在系統突然停止時提高檔案系統的可靠性。支援最大16TB的分區和最大2TB的檔案
  • ext4

    :是ext3檔案系統的更新版。ext4在性能、伸縮性和可靠性方面進行了大量改進。ext4新增的向下相容ext3、最大1EB檔案系統和16TB檔案、無限數量子目錄、Extents連續資料塊概念、多塊配置設定、延遲配置設定、持久預配置設定、快速FSCK、日志校驗、無日志模式、線上碎片整理、inode增強、預設啟用barrier等。
  • xfs

    :XFS最早針對IRIX作業系統開發,是一個高性能的日志型檔案系統,能夠在斷電以及作業系統奔潰的情況下保證檔案系統資料的一緻性。它是一個64位的檔案系統,背景進行開源并且移植到了linux系統中,目前

    CentOS7.x

    将XFS+LVM作為預設的檔案系統。

三、常用的硬碟管理指令

1、df指令

df -ahT
-a	顯示特殊檔案系統,這些檔案系統幾乎都是儲存在記憶體中。
-h	機關不再隻用KB,而是換算成習慣機關
-T	多出了檔案系統類型一列
           

2、du指令

du [選項] [目錄或檔案名]
-a	顯示每個子檔案的磁盤占用量。預設隻統計子目錄的磁盤占用量
-h	使用習慣機關顯示磁盤占用量,如KB,MB或GB
-s	統計總占用量,而不列出子目錄和子檔案的占用量
           
  • du

    df

    的差別:

    du

    是用于統計檔案大小的,統計的檔案大小是準确的;df是用于統計空間大小的,統計的剩餘空間是準确的。
  • lsof|grep deleted

    :檢視被删除的檔案,然後手動kill也是可以的

3、fsck檔案系統修複指令

fsck -y /dev/sdb1
# 自動修複
           

4、顯示磁盤狀态dump2fs

[[email protected] ~]# dumpe2fs -h /dev/vda1
dumpe2fs 1.42.9 (28-Dec-2013)
Filesystem volume name:   <none>
Last mounted on:          /
Filesystem UUID:          b98386f1-e6a8-44e3-9ce1-a50e59d9a170
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags:         signed_directory_hash 
Default mount options:    user_xattr acl
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              1310720
Block count:              5242624
Reserved block count:     262131
Free blocks:              4033665
Free inodes:              1182776
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      1022
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         8192
Inode blocks per group:   512
Flex block group size:    16
Filesystem created:       Thu Nov 29 11:34:09 2018
Last mount time:          Wed Feb 12 16:54:34 2020
Last write time:          Thu Feb 13 00:54:31 2020
Mount count:              22
Maximum mount count:      -1
Last checked:             Thu Nov 29 11:34:09 2018
Check interval:           0 (<none>)
Lifetime writes:          78 GB
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:	          256
Required extra isize:     28
Desired extra isize:      28
Journal inode:            8
First orphan inode:       1192671
Default directory hash:   half_md4
Directory Hash Seed:      64c050c5-05fb-4ed0-9f92-f5abefc12cc4
Journal backup:           inode blocks
Journal features:         journal_incompat_revoke
Journal size:             128M
Journal length:           32768
Journal sequence:         0x001e0fae
Journal start:            1
           

5、檢視檔案的詳細時間

stat 檔案名
           

6、判斷檔案類型

file 檔案名	# 判斷檔案類型
type 指令名	# 判斷指令類型
           

四、fdisk指令手工分區

1、檢視系統所有硬碟及分區

fdisk -l
           

2、開始磁盤分區

fdisk /dev/sdb	進行磁盤分區(分區還沒有分區号)
           
  • 指令幫助
指令 描述
a 設定可引導标記
b 編輯bsd磁盤标簽
c 設定dos作業系統相容标記
d 删除一個分區
l 顯示已知的檔案系統類型。82為Linux swap分區,83為Linux分區
m 顯示幫助菜單
n 建立分區
o 建立空白dos分區表
p 顯示分區清單
q 不儲存退出
s 建立空白sun磁盤标簽
t 改變一個分區的系統id
u 改變顯示記錄機關
v 驗證分區表
w 儲存退出
x 附加功能
  • 有時會因為系統的分區表正忙,則會報錯需要重新啟動系統之後才能使新的分區表生效

3、格式化建立檔案系統

mkfs -t ext4 /dev/sdb1
           
  • mkfs指令非常簡單易用,但是不可以調整分區的預設參數的。
mke3fs [選項] [分區裝置檔案名]
-t	指定格式化的檔案系統
-b	指定block塊的大小
-i	指定“位元組/inode”的比例,也就是多少個位元組配置設定一個inode
-j	建立帶有ext3日志功能的檔案系統
-L	給檔案系統設定卷标名
           

4、挂載分區

mkdir 檔案夾  # 建立檔案夾
mount [目标分區檔案] [需要挂載到的檔案夾]  # 挂載分區
mount	# 檢視所有已經挂載的分區和CD光牒
           

5、自動挂載

  • 打開

    /etc/fstab

    • 第一列:裝置檔案名(建議使用UUID)
    • 第二列:挂載點
    • 第三列:檔案系統
    • 第四列:挂載選項
      • 是否可以被備份:0不備份、1每天備份、2不定期備份
      • 是否檢測磁盤fsck :0不檢測、1啟動時檢測、2啟動後檢測
  • 檢視分區的uuid
dumpe2fs [分區檔案路徑] | grep UUID
ls -l /dev/disk/by-uuid/
           
  • 挂載錯誤修複
    • 報錯後輸入root使用者密碼進入系統
    • 使用

      mount -o remount,rw /

      指令重新挂載根目錄
    • 打開

      /etc/fstab

      修改錯誤位置
    • 重新啟動

五、parted指令分區

Linux系統中有兩種常見的分區表MBR分區表(主引導記錄分區表)和GPT分區表(GUID分區表),其中:

  • MBR分區表:支援的最大分區為2TB;最多支援4個主分區,或3個主分區1個擴充分區
  • GPT分區表:支援最大

    18EB

    的分區(

    1EB=1024PB=1024*1024TB

1、parted互動模式

parted [需要分區的磁盤檔案路徑]
           
互動指令 描述

help [COMMAND]

顯示所有的指令幫助

mklabel, mktable LABEL-TYPE

建立新的磁盤卷标(分區表)

mkpart PART-TYPE [FS-TYPE] START END

建立一個分區

name NUMBER NAME

給分區命名

print [devices|free|list,all|NUMBER]

顯示分區表,活動裝置,空閑空間,所有分區

quit

退出

rescue START END

修複丢失的分區

rm NUMBER

删除分區

select DEVICE

選擇需要編輯的裝置

set NUMBER FLAG STATE

改變分區标記

toggle [NUMBER [FLAG]]

切換分區表的狀态

unit UNIT

設定預設的機關

version

顯示版本

2、切換分區表

mklabel gpt
           

3、建立分區

mkpart
           

4、格式化挂載分區

  • 使用bash中的mkfs指令将分區格式化為ext4檔案系統
mkfs -t ext4 /dev/sdb1
           
  • 挂載分區
mount /dev/sdb1 /disk1
           

六、配置設定swap分區

1、分區,修改為swap分區ID

  • 檢視swap分區資訊
free -h
           
  • 分區
fdisk /dev/sdb  # 建立分區并使用t指令修改分區格式為swap分區
           

2、格式化分區

mkswap /dev/sdb1
           

3、使用swap分區

swapon 分區裝置檔案名
           
  • swap分區開機自動挂載
/dev/sdb1  swap  swap  defaults  0 0
           

繼續閱讀