linux系統ext文件系統知識
ext2文件系統細節
我們都知道,操作系統中的數據分為文件內容和文件屬性兩部分,其中文件內容就是文件的實體數據,而文件屬性就是文件類型、權限、屬主、修改時間等信息。操作系統會將上述文件的內容放入磁盤文件系統的inode中,而把文件的實體數據存放於對應的block中。除了inode和block信息外,操作系統還會記錄文件系統的整體信息於superblock中,這個superblock包括整個文件系統的inode和block的總的數量,已經使用的數量,剩余數量等。
在linux支持的文件系統類型中,其中ext2、ext3、ext4是Red hat和Centos采用的默認文件系統類型,其中ext2、ext3、ext4是依次升級的ext文件系統版本,這些不同的文件系統的高版本是向下兼容的,因此,我們就從ext2文件系統開始給大家文件系統的相關知識體系。
相關操作系統使用的文件系統:
SUSE linux的默認文件系統ReiserFS文件系統
IBM的AIX使用的jfs日誌文件系統
Sun OS所用的文件系統ufs
Centos7采用XFS文件系統
Centos6采用ext4文件系統
Centos5采用ext3文件系統
一個ext2文件系統一般都會包含至少inode內容與block區域這兩個部分
mkfs -t ext2 -b 4096 -i 1024 /dev/sdb1
在inode中一般包括如下文件屬性信息:
文件的擁有者和所屬用戶組
文件的訪問權限
文件的類型
文件的訪問、修改等時間
文件的大小
文件的各種標誌,如SUID和SGID等
指向文件內容數據塊的指針。
一個inode的大小通常為128字節。(ext4中的inode大小將擴展到256字節)
inode表用於跟蹤定位每個文件,包括位置、大小等(但不包括文件名,文件名包含於dentry結構中),一個塊組只有一個inode表。
文件系統小結:
1、文件系統是對一個存儲設備上的數據和元數據進行組織的一種機制
2、分區必須格式化創建文件系統才能存放數據
3、一個分區只能有一種文件系統
4、linux下常見文件系統ext2、ext3、ext4、zfs、xfs(Centos7)和Reiserfs(單獨安裝)。windows下常見文件系統NTFS,FAT32
文件系統選型簡單介紹
1)SAS/SATA硬盤文件系統選擇:
a.reiserfs 大量小文件業務首選reiserfs(100K以內)
b.xfs 有的門戶的數據庫MySQL業務
c.ext4 視頻下載 ,流媒體,數據庫,小文件業務也OK,可以用默認的
d.ext2 沒有日誌,藍汛的cache業務,CDN網站加速服務的
常規應用:
對於Centos5.x系列,常規應用就默認的 ext3 文件系統即可
對於Centos6.x系列,常規應用就默認的 ext4 文件系統即可
對於Centos7.x系列,常規應用就默認的 xfs 文件系統即可
註意:如果服務器數量少,怎麽選擇都可以
如果海量服務器,考慮維護成本和性能,選一個折中
選擇小結:
a.Centos默認的文件系統都是比較優秀的
b.xfs、reiserfs需要單獨安裝。默認不支持的。海量服務器使用多種文件系統維護可能不方便
c.大並發做磁盤系統的優化是一方面,但更多的還是在網站前端增加緩存服務器(squid、vamish),存儲數據庫的前端增加緩存(memcache、redis),這是架構師的能力
2)SSD文件系統選擇
ext4/reiserfs可以作為SSD文件系統,但未對SSD做優化,不能充分發揮SSD性能,並影響SSD使用時間
btrfs對SSD作了優化,mount通過參數啟用。但btrfs仍處於實驗階段,生產環境謹慎使用
安裝 xfs 文件系統步驟:
yum install xfsprogs kmod-xfs xfsdump xfsprogs-devel
rpm -qa xfsprogs kmod-xfs xfsdump xfsprogs-devel
modprobe xfs
lsmod | grep xfs
mkfs.xfs /dev/sdc
dd if=/dev/zero of=/dev/sdc bs=1M count=100
mount -t xfs -o loop /dev/sdc /mnt
df -hT(查看當前掛載的文件系統)
普通ext4文件系統格式化及掛載:
mkfs -t ext4 -b 4096 -I 256 /dev/sdb1
tune2fs -c -1 /dev/sdb1(防止自動檢查)
[root@redhat~]# mount -t ext4 /dev/sdb1 /mnt
[root@redhat~]# df -hT
磁盤管理命令總結:
磁盤與目錄的容量:df,du
df:列出文件系統的整體磁盤使用量
du:評估文件系統的磁盤使用量(常用於評估目錄所占容量)
1、將容量結果以易讀的容量格式顯示出來:df -h
2、將 /etc 下面的可用的磁盤容量以易讀的容量格式顯示出來:df -h /etc
3、將目前各個分區當中可用的 inode 數量列出:df -ih
4、檢查根目錄下面每個目錄所占用的容量:du -sm /*
dumpe2fs /dev/sdb1:查看文件系統的內部細節
磁盤分區:fdisk
fdisk /dev/sda
parted /dev/sda(支持大於2T的硬盤分區)
swapon/swapoff 使用swap分區,例如:swapon /dev/sdb1
mkswap,格式化swap分區
磁盤格式化:mkfs -t ext3 /dev/sda6
磁盤檢驗:fsck,badblocks
fsck -C -f -t ext3 /dev/sda6 沒壞的磁盤一定不要用
badblocks -sv /dev/sda6 此命令可被fsck替代
設置開機掛載
1、開機掛載 /etc/fstab 及 /etc/mtab
將/dev/sdb2每次開機都自動掛載到/tmp/sdb2
編輯/etc/fstab
寫入:/dev/sdb2 /tmp/sdb2 ext3 dufaults 0 0
其他:
tune2fs 修改文件系統信息
megacli 查看raid信息
ipmitools 查看硬件信息工具
resize2fs 調整文件系統大小(LVM,drbd)
linux系統ext文件系統知識