文件系統(tǒng)
文件系統(tǒng)是操作系統(tǒng)用于明確存儲(chǔ)設(shè)備或分區(qū)上的文件的方法和數(shù)據(jù)結(jié)構(gòu)瓤介;
即在存儲(chǔ)設(shè)備上組織文件的方法;
操作系統(tǒng)中負(fù)責(zé)管理和存儲(chǔ)文件信息的軟件結(jié)構(gòu)稱為文件管理系統(tǒng)斑粱, 簡稱文件系統(tǒng)。
無文件系統(tǒng),就沒有文件杠河、目錄和目錄結(jié)構(gòu)的概念氢架;軟件結(jié)構(gòu)——邏輯層面傻咖;
系統(tǒng)角度
文件系統(tǒng)——對(duì)文件存儲(chǔ)設(shè)備的空間進(jìn)行組織和分配;
文件系統(tǒng)——負(fù)責(zé)文件存儲(chǔ)并對(duì)存入的文件進(jìn)行保護(hù)和檢索岖研;
文件系統(tǒng)——負(fù)責(zé)為用戶建立文件卿操,存入、讀出孙援、修改害淤、轉(zhuǎn)儲(chǔ)文件,
控制文件的存取拓售,安全控制窥摄,日志,壓縮础淤, 加密等溪王;
支持的文件系統(tǒng):/lib/modules/`uname –r`/kernel/fs
windows支持NTFS格式
文件系統(tǒng)的類型
Linux文件系統(tǒng):
ext2(Extended file system), ext3, ext4, xfs(SGI), btrfs(Oracle), reiserfs,
jfs( AIX), swap
swap介紹
Windows里swap是虛擬內(nèi)存;
如果系統(tǒng)內(nèi)存是8G值骇,那么swap文件(隱藏)大小是4G(系統(tǒng)內(nèi)存的一半)左右莹菱;
當(dāng)磁盤空間不夠時(shí),swap可當(dāng)做內(nèi)存使用吱瘩,這樣系統(tǒng)就有8+4=12G的內(nèi)存道伟,但是系統(tǒng)利用虛擬內(nèi)存,性能
會(huì)下降使碾;
光盤:iso9660
Windows:FAT32, exFAT,NTFS
Unix: FFS(fast), UFS(unix), JFS2
網(wǎng)絡(luò)文件系統(tǒng):NFS, CIFS
訪問本機(jī)文件(client)蜜徽,可以關(guān)聯(lián)到遠(yuǎn)程服務(wù)端(service);
把網(wǎng)站(WWW.magedu.com)掛載到服務(wù)器(apache)上票摇,數(shù)據(jù)存在服務(wù)器的
/var/www/html/index.html上拘鞋,為了同步,把數(shù)據(jù)共享在/nfsshare里矢门;
集群文件系統(tǒng):GFS2, OCFS2(oracle)
各個(gè)服務(wù)端之間進(jìn)行數(shù)據(jù)同步
分布式文件系統(tǒng): fastdfs,ceph, moosefs, mogilefs, glusterfs, Lustre
例如云盤盆色,1G數(shù)據(jù)——1M/block——數(shù)據(jù)分多塊存放,每塊都有備份——安全
RAW:未經(jīng)處理或者未經(jīng)格式化產(chǎn)生的文件系統(tǒng)
無文件系統(tǒng)分區(qū)祟剔,訪問數(shù)據(jù)=訪問二進(jìn)制隔躲,優(yōu)點(diǎn)是少了文件系統(tǒng)代理,速度快物延;Oracle
文件系統(tǒng)不同宣旱,各自的特性(功能)也不相同;
把/dev/sdd1格式化叛薯,變?yōu)関fat文件系統(tǒng)格式浑吟;
把/dev/sdd1掛載到/mnt下
vfat文件格式不支持修改權(quán)限笙纤、不支持更改所有者,其他文件系統(tǒng)可以支持更改權(quán)限和所有者
根據(jù)其是否支持"journal(日志)"功能:
日志型文件系統(tǒng): ext3, ext4, xfs, ...
非日志型文件系統(tǒng): ext2, vfat
ext文件系統(tǒng)介紹
(1)disk(磁盤)文件被內(nèi)核讀入內(nèi)存组力;
(2)在內(nèi)存中粪糙,修改disk文件;
(3)修改后:
ext2:內(nèi)存中被修改的文件覆蓋disk原文件忿项;
ext3蓉冈、4:文件中被修改之處存放到disk中的日志里;空閑時(shí)轩触,內(nèi)存中被修改的文件覆蓋disk原文件寞酿;
ext3、4的優(yōu)點(diǎn):保證原始文件不被破壞(傳輸過程斷電)脱柱; 缺點(diǎn):性能下降伐弹,占用disk空間;
日志的“寫操作”先于disk的“寫操作”:
有順序的寫:新增信息在日志最后處一行增加榨为;
獨(dú)立分區(qū):日志單獨(dú)放一個(gè)分區(qū) 惨好;
文件系統(tǒng)的組成部分:
內(nèi)核中的模塊:ext4, xfs, vfat
用戶空間的管理工具:mkfs.ext4, mkfs.xfs,mkfs.vfat
Linux的虛擬文件系統(tǒng):VFS (不同的文件系統(tǒng),用戶如何訪問)
用戶不是直接訪問文件系統(tǒng)随闺,用戶應(yīng)用程序→systemcall interface(系統(tǒng)調(diào)用)→VFS→不同文件系統(tǒng)
查前支持的文件系統(tǒng):cat /proc/filesystems
文件系統(tǒng)的區(qū)別
單節(jié)點(diǎn)
xfs 500TB 支持root分區(qū) 支持boot分區(qū)
ext4 50TB 支持root分區(qū) 支持boot分區(qū)
btrfs 50TB 支持root分區(qū) 支持boot分區(qū)
網(wǎng)絡(luò)/多節(jié)點(diǎn)
GFS2 2-16個(gè)節(jié)點(diǎn) 支持root分區(qū) 不支持boot分區(qū)
SPOF(單點(diǎn)失斎沾ā) 解決方案是數(shù)據(jù)備份多份
創(chuàng)建文件系統(tǒng)
mkfs命令:
(1)mkfs.FS_TYPE /dev/DEVICE
centos7.3 有xfs文件系統(tǒng)
centos6.9 有xfs文件系統(tǒng),缺少工具矩乐,需要安裝對(duì)應(yīng)的包
cd /lib/modules/`uname –r`/kernel/fs
查看是否有ntfs文件
(2) mkfs -t FS_TYPE /dev/DEVICE
-L 'LABEL': 設(shè)定卷標(biāo)
mke2fs命令:
ext系列文件系統(tǒng)專用管理工具
mke2fs /dev/sdb2 把/dev/sdb2分區(qū)變?yōu)閑xt2文件系統(tǒng)
mke2fs 默認(rèn)創(chuàng)建為ext2分區(qū)
mke2fs -t {ext2|ext3|ext4} /dev/DEVICE
mke2fs -j = mke2fs -t ext3
mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3
mke2fs(或mkfs.FS_TYPE) -b {1024|2048|4096}
b就是block龄句,在不同環(huán)境中,含義不同散罕;
mke2fs(或mkfs.FS_TYPE) -L 'LABEL'
mke2fs(或mkfs.FS_TYPE) -i #(數(shù)字)
為數(shù)據(jù)空間中每多少(#)個(gè)字節(jié)創(chuàng)建一個(gè)inode分歇;此大小不應(yīng)該小于block的大小欧漱;
mke2fs(或mkfs.FS_TYPE) -N # 指定分區(qū)中創(chuàng)建多少個(gè)inode
mke2fs(或mkfs.FS_TYPE) -I # 一個(gè)inode記錄占用的磁盤空間大小职抡,128---4096
mke2fs(或mkfs.FS_TYPE) -m #: 默認(rèn)5%,為管理人員預(yù)留空間占總空間的百分比
mke2fs(tune2fs) -O FEATURE[,...] 啟用指定特性
mke2fs(tune2fs) -O ^FEATURE 關(guān)閉指定特性
文件系統(tǒng)標(biāo)簽
指向設(shè)備的另一種方法;與設(shè)備無關(guān)误甚;
blkid 塊設(shè)備屬性信息查看
blkid [OPTION]... [DEVICE]
blkid -U UUID 根據(jù)指定的UUID來查找對(duì)應(yīng)的設(shè)備
blkid -L LABEL 根據(jù)指定的LABEL來查找對(duì)應(yīng)的設(shè)備
e2label:管理ext系列文件系統(tǒng)的LABEL
e2label DEVICE 查詢設(shè)備對(duì)應(yīng)的標(biāo)簽(卷標(biāo))
e2label DEVICE LABEL 修改設(shè)備的卷標(biāo)
findfs :查找分區(qū)
findfs [options] LABEL=<lable>
findfs [options] UUID=<uuid>
腳本(查詢掛載點(diǎn)對(duì)應(yīng)的設(shè)備名)
#!/bin/bash
dir=$1;findfs `egrep "$dir[[:space:]]+" /etc/fstab| cut -d " " -f1`
tune2fs命令
tune2fs 重新設(shè)定ext系列文件系統(tǒng)可調(diào)整參數(shù)的值
tune2fs -l 查看指定文件系統(tǒng)超級(jí)塊信息缚甩;super block
tune2fs -L 'LABEL' 修改卷標(biāo)
tune2fs -m # 修改預(yù)留給管理員的空間百分比
tune2fs -j 將ext2升級(jí)為ext3
tune2fs -O 文件系統(tǒng)屬性啟用或禁用, –O ^has_journal (前面有)
tune2fs -o 調(diào)整文件系統(tǒng)的默認(rèn)掛載選項(xiàng),–o ^acl
tune2fs -o acl /dev/sdb1 改變文件系統(tǒng)的屬性靶草;
mount -o acl /dev/sdb1 /mnt 掛載時(shí)蹄胰,就給予文件系統(tǒng)acl權(quán)限岳遥;
centos6.9:手動(dòng)創(chuàng)建的分區(qū)奕翔,ext文件系統(tǒng)默認(rèn)無acl權(quán)限;xfs有acl權(quán)限浩蓉;
tune2fs -U UUID 修改UUID號(hào)
ext文件系統(tǒng)互相轉(zhuǎn)化(ext2?ext3),UUID無變化派继;
重新創(chuàng)建文件系統(tǒng)時(shí)宾袜,UUID變化;
硬盤換到其他機(jī)子上驾窟,UUID無變化庆猫;
標(biāo)識(shí)一個(gè)分區(qū)(3類):設(shè)備名稱、UUID(建議用)绅络、Label月培、
super block
為了安全,通常會(huì)做備份恩急;
100G的數(shù)據(jù) → block的單位4096(4k) → 分為多個(gè)block → 分組:塊組(元數(shù)據(jù)+數(shù)據(jù))
dumpe2fs 塊分組管理杉畜,每個(gè)塊組有32768塊;
顯示分組信息和超級(jí)塊信息衷恭;
super block 存放在每個(gè)奇數(shù)塊組(0-1-3-5-7-9)的第一個(gè)塊中此叠;
這些塊是備份塊,文件被破壞后随珠,可以調(diào)用這些備份塊修復(fù)文件灭袁;
dumpe2fs -h 查看超級(jí)塊信息,不顯示分組信息
文件系統(tǒng)的檢測與修復(fù)
常發(fā)生于死機(jī)或者非正常關(guān)機(jī)之后窗看,掛載為文件系統(tǒng)標(biāo)記為“no clean”茸歧;
filesystem stat是文件系統(tǒng)狀態(tài),當(dāng)文件系統(tǒng)受損時(shí)显沈,tune2fs -l 命令不能查詢举娩;
文件系統(tǒng)修復(fù)是有風(fēng)險(xiǎn)的;
注意:一定不要在掛載狀態(tài)下修復(fù)构罗;
文件系統(tǒng)的檢測與修復(fù)(兩種方法)
1.手工的輸入命令铜涉,進(jìn)行檢查和修復(fù);
2.系統(tǒng)自發(fā)的進(jìn)行檢查和修復(fù):(需要兩個(gè)條件)
tune2fs -l 可以查看信息
(1)掛載數(shù)量 >(大于) 最大掛載數(shù)量遂唧;
(2)文件系統(tǒng)的使用時(shí)間達(dá)到規(guī)定的期限芙代;
fsck: File System Check
fsck.FS_TYPE 支持ext文件系統(tǒng),不支持xfs文件系統(tǒng)盖彭;
fsck -t FS_TYPE
fsck -p 自動(dòng)修復(fù)錯(cuò)誤
fsck -r 交互式修復(fù)錯(cuò)誤
FS_TYPE 一定要與分區(qū)上已有文件類型相同
e2fsck:ext系列文件專用的檢測修復(fù)工具
-y:自動(dòng)回答為yes
-f:強(qiáng)制修復(fù)(文件系統(tǒng)破壞程度小纹烹,利用此選項(xiàng),可以詳細(xì)檢查和修復(fù))
xfs系列的專用檢測修復(fù)工具
xfs_check
xfs_repair
tune2fs -l 不支持查詢xfs文件系統(tǒng)信息召边;
實(shí)驗(yàn):創(chuàng)建一個(gè)文件系統(tǒng)铺呵,破壞并修復(fù)
1.創(chuàng)建文件系統(tǒng)
2.掛載并復(fù)制文件到此文件系統(tǒng)
3.取消掛載
4.破壞文件系統(tǒng)
5.修復(fù)文件系統(tǒng)
6.檢測是否成功修復(fù)