1. 程式人生 > >linux系統ext文件系統知識

linux系統ext文件系統知識

數據庫 locks sda 大小 不同 sata node 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文件系統知識