1. 程式人生 > >磁盤存儲、文件系統的知識概括

磁盤存儲、文件系統的知識概括

字節 gpt分區表 wap 系列 ces 引導 比較 管理員 RoCE

磁盤存儲與文件系統

分區

兩種分區格式:MBR、GPT

MBR分區

MBR分區磁盤的分區表信息存放在硬盤0磁道第0個扇區內總共512字節
前446字節為bootloader
中間64位為磁盤分區表信息,每個分區信息占16個字節,總計存放4個分區。(這段就是需要備份出來的數據)
最後的55AA為結束標誌位

MBR分區結構

  1. 硬盤主引導記錄MBR由4個部分組成
  2. 主引導程序(偏移地址0000H--0088H),它負責從活動分區中裝載,並運行
    系統引導程序
  3. 出錯信息數據區,偏移地址0089H--00E1H為出錯信息,00E2H--01BDH全為
    0字節
  4. 分區表(DPT,Disk Partition Table)含4個分區項,偏移地址01BEH--01FDH,
    每個分區表項長16個字節,共64字節為分區項1、分區項2、分區項3、分區項4
  5. 結束標誌字,偏移地址01FE--01FF的2個字節值為結束標誌55AA

MBR結構

技術分享圖片

GPT分區

支持128個分區,使用64位,支持8Z( 512Byte/block )64Z ( 4096Byte/block)
使用128位UUID表示磁盤和分區 GPT分區表
自動備份在頭和尾兩份,並有CRC校驗位
UEFI (統一擴展固件接口)硬件支持GPT,使操作系統啟動

GPT分區結構

技術分享圖片

管理分區的命令

列出塊設備

lsblk

列出所有可用塊設備的信息,而且還能顯示它們之間的依賴關系

?-a:顯示所有設備
?-b:以bytes方式顯示設備大小

?-f:顯示文件系統信息

創建分區工具

fdisk 創建MBR分區

?-l [-u] [device...] 查看分區

子命令

p 分區列表
t 更改分區類型
n 創建新分區
d 刪除分區
v 校驗分區
u 轉換單位
w 保存並退出
q 不保存並退出

gdisk 創建GPT分區

??類fdisk 的GPT分區工具

parted 高級分區操作

??parted操作是實時生效的,請小心使用。

?–l:列出分區信息

同步分區表

1. 查看內核是否已經識別新的分區

cat /proc/partations

2. centos6通知內核重新讀取硬盤分區表

新增分區用
partx -a /dev/DEVICE

kpartx -a /dev/DEVICE -f: force
刪除分區用
partx -d --nr M-N /dev/DEVICE

3. CentOS5,7使用partprobe

partprobe [/dev/DEVICE]
重讀分區表,當出現刪除文件後,出現仍然占用空間。可以partprobe在不重啟的情況下重讀分區。

文件系統

定義

文件系統是操作系統用於明確存儲設備或分區上的文件的方法和數據結構;即在存儲設備上組織文件的方法。操作系統中負責管理和存儲文件信息的軟件結構稱為文件管理系統,簡稱文件系統
從系統角度來看,文件系統是對文件存儲設備的空間進行組織和分配,負責文
件存儲並對存入的文件進行保護和檢索的系統。具體地說,它負責為用戶建立
文件,存入、讀出、修改、轉儲文件,控制文件的存取,安全控制,日誌,壓
縮,加密等
Linux中支持的文件系統

?ll /lib/modules/uname –r/kernel/fs

創建文件系統

mkfs

mkfs.FS_TYPE /dev/DEVICE

?-t:指定文件系統

創建ext文件系統

mke2fs:ext系列文件系統專用管理工具

?-t {ext2|ext3|ext4} 指定文件系統類型
?-b {1024|2048|4096} 指定塊大小
?-L ‘LABEL’ 設置卷標
?-j 相當於 -t ext3
??mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3
?-i # 為數據空間中每多少個字節創建一個 inode;不應該小於block大小
?-N # 指定分區中創建多少個inode
?-I 一個inode記錄占用的磁盤空間大小,128---4096
?-m # 默認5%,為管理人員預留空間占總空間的百分比
?-O FEATURE[,...] 啟用指定特性
?-O ^FEATURE 關閉指定特性

文件系統的標簽

blkid:塊設備屬性信息查看

?-U UUID 根據指定的UUID來查找對應的設備
?-L LABEL 根據指定的LABEL來查找對應的設備

e2label:管理ext系列文件系統的LABEL

findfs :查找分區

?findfs [options] LABEL=\<label>
?findfs [options] UUID=\<uuid>

tune2fs:重新設定ext系列文件系統可調整參數的值

?-l 查看指定文件系統超級塊信息;super block
?-L ‘LABEL’ 修改卷標
?-m # 修預留給管理員的空間百分比
?-j 將ext2升級為ext3
?-O 文件系統屬性啟用或禁用, –O ^has_journal
?-o 調整文件系統的默認掛載選項,–o ^acl
?-U UUID 修改UUID號

dumpe2fs

將磁盤塊分組管理

?-h:查看超級塊信息,不顯示分組信息

文件系統檢測和修復

常發生於死機或者非正常關機之後,掛載文件系統標記的“no clean”
註意:一定不要在掛載狀態下進行修復

1. fsck: File System Check

?fsck.FS_TYPE
?fsck -t FS_TYPE

??-p 自動修復錯誤
??-r 交互式修復錯誤

?FS_TYPE 一定要與分區上已經文件類型相同

2. e2fsck:ext系列文件專用的檢測修復工具

??-y 自動回答為yes
??-f 強制修復

用mount命令掛載文件系統

掛載方法:mount DEVICE MOUNT_POINT
mount:通過查看/etc/mtab文件顯示當前已掛載的所有設備

mount 常用命令選項

?-t vsftype 指定要掛載的設備上的文件系統類型
?-r readonly,只讀掛載
?-w read and write, 讀寫掛載
?-n 不更新/etc/mtab,mount不可見
?-a 自動掛載所有支持自動掛載的設備(定義在了/etc/fstab文件中,且掛載選項中有auto功能)
?-L ‘LABEL‘ 以卷標指定掛載設備
?-U ‘UUID‘ 以UUID指定要掛載的設備
?-B, --bind 綁定目錄到另一個目錄上
?查看內核追蹤到的已掛載的所有設備
??cat /proc/mounts

?-o options:(掛載文件系統的選項),多個選項使用逗號分隔
>??async 異步模式 sync 同步模式,內存更改時,同時寫磁盤
??atime/noatime 包含目錄和文件
??diratime/nodiratime 目錄的訪問時間戳
??auto/noauto 是否支持自動掛載,是否支持-a選項
??exec/noexec 是否支持將文件系統上運行應用程序
??dev/nodev 是否支持在此文件系統上使用設備文件
??suid/nosuid 是否支持suid和sgid權限
??remount 重新掛載
??ro 只讀 rw 讀寫
??user/nouser 是否允許普通用戶掛載此設備,/etc/fstab使用
??acl 啟用此文件系統上的acl功能
??loop 使用loop設備

?defaults:相當於rw, suid, dev, exec, auto, nouser, async

卸載命令

  1. 查看掛載情況
    findmnt MOUNT_POINT|device
  2. 查看正在訪問指定文件系統的進程
    lsof MOUNT_POINT
    fuser -v MOUNT_POINT
  3. 終止所有在正訪問指定的文件系統的進程
    fuser -km MOUNT_POINT
  4. 卸載
    umount DEVICE
    umount MOUNT_POINT

swap交換分區

swap交換分區是系統RAM的補充,Swap 分區支持虛擬內存。當沒有足夠的RAM 保存系統處理的數據時會將數據寫入 swap 分區
當系統缺乏 swap 空間時,內核會因 RAM 內存耗盡而終止進程。配置過多swap 空間會造成存儲設備處於分配狀態但閑置,造成浪費,過多 swap 空間還會掩蓋內存泄露

啟用swap交換分區

swapon [OPTION]... [DEVICE]
-a:激活所有的交換分區
-p PRIORITY:指定優先級
??/etc/fstab 在第4列中:pri=value

禁用swap交換分區

swapoff [OPTION]... [DEVICE]

swap的優先級

可以指定swap分區0到32767的優先級,值越大優先級越高

如果用戶沒有指定,那麽核心會自動給swap指定一個優先級,這個優先級從-1開始,每加入一個新的沒有用戶指定優先級的swap,會給這個優先級減一

先添加的swap的缺省優先級比較高,除非用戶自己指定一個優先級,而用戶指定的優先級(是正數)永遠高於核心缺省指定的優先級(是負數)

優化性能:分布存放,高性能磁盤存放

磁盤存儲、文件系統的知識概括