文件系統的維護
A、ext2/ext3文件系統的優化與高級特性
B、磁盤檢查
C、磁盤配額
D、自動掛載分區
文件的存放形式,可以根據文件的大小來分配塊的大小。
如一個分區,主要是存放小的文件,文件大小爲3K的,那麼我們可以將此分區以1K的大小劃分塊的大小,這樣只分配給此文件3個模塊即可。如果是以4K 的大小來劃分一個塊的話,一個3K大小的文件就浪費了3/4的空間,即分配給它一個4K大小的塊,但僅存放了3K大小的文件,有1K的大小浪費。。所以可以根據硬盤裏存放的文件類型的大小尺寸來決定到底使用多大的數據塊(Block size)常用的有三種塊大小:1024、2048和4096
例: #fdisk /dev/sdb
#mkfs.ext3 –b 1024 /dev/sdb1
#mkfs.ext3 –b 4096 /dev/sdb4
#mount /dev/sdb1 /mnt/d1
#mount /dev/sdb4 /mnt/d2
#mkdir /mnt/d1/dir
#mkdir /mnt/d2/dir
#echo “hi”>/mnt/d1/dir/test
#echo “hi”>/mnt/d2/dir/test
[root@localhost root]# ls -lh /mnt/d[1-2]/dir
/mnt/d1:
total 13K
drwxr-xr-x 3 root root 1.0K Mar 12 15:14 dir
drwx------ 2 root root 12K Mar 12 15:13 lost+found
/mnt/d1:
total 13K
drwxr-xr-x 3 root root 1.0K Mar 12 15:14 dir
drwx------ 2 root root 12K Mar 12 15:13 lost+found
/mnt/d1:
total 20K
drwxr-xr-x 3 root root 4.0K Mar 12 15:14 dir
drwx------ 2 root root 16K Mar 12 15:13 lost+found
total 20K
drwxr-xr-x 3 root root 4.0K Mar 12 15:14 dir
drwx------ 2 root root 16K Mar 12 15:13 lost+found
#ls –lh /mnt/d[1-2]/dir/test
[root@localhost root]# ls -lh /mnt/d[12]/dir/test
-rw-r--r-- 1 root root 3 Mar 12 15:20 /mnt/d1/dir/test
-rw-r--r-- 1 root root 3 Mar 12 15:20 /mnt/d2/dir/test
-rw-r--r-- 1 root root 3 Mar 12 15:20 /mnt/d1/dir/test
-rw-r--r-- 1 root root 3 Mar 12 15:20 /mnt/d2/dir/test
[root@localhost root]# du -sh /mnt/d[12]/dir
2.0K /mnt/b1/dir
8.0K /mnt/c1/dir <----------------------浪費磁盤空間
2.0K /mnt/b1/dir
8.0K /mnt/c1/dir <----------------------浪費磁盤空間
文件索引區(index)的優化
將文件的索引節點由2個合併成一個以提高一點訪問的速度
#mkfs.ext3 –b 4096 –i 4096 /dev/sda2
例:#mkfs.ext3 –b 4096 –i 4096 /dev/sdb1
#mkfs.ext3 –b 4096 –i 8192 /dev/sdb4
#tune2fs –l /dev/sdb1 |more
[root@localhost root]# tune2fs -l /dev/sdb1
tune2fs 1.32 (09-Nov-2002)
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem UUID: 4a81dac9-2f55-4393-99bd-36d82a6aa1bd
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal filetype sparse_super
Default mount options: (none)
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 548352 <--------- 1
Block count: 548218 <--------- 1 <兩者之比接近1:1 比較適合存放小文件>
Reserved block count: 27410
Free blocks: 522829
Free inodes: 548341
First block: 0
Block size: 4096
Fragment size: 4096
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 32256
Inode blocks per group: 1008
tune2fs 1.32 (09-Nov-2002)
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem UUID: 4a81dac9-2f55-4393-99bd-36d82a6aa1bd
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal filetype sparse_super
Default mount options: (none)
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 548352 <--------- 1
Block count: 548218 <--------- 1 <兩者之比接近1:1 比較適合存放小文件>
Reserved block count: 27410
Free blocks: 522829
Free inodes: 548341
First block: 0
Block size: 4096
Fragment size: 4096
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 32256
Inode blocks per group: 1008
[root@localhost root]# tune2fs -l /dev/sdb4
tune2fs 1.32 (09-Nov-2002)
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem UUID: 323807f2-9f40-4706-82a6-02a5083ef69b
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal filetype sparse_super
Default mount options: (none)
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 274176 <------------ 1
Block count: 548218 <------------ 2 <兩者之比接近1:2 比較適合存放大文件>
Reserved block count: 27410
Free blocks: 531397
Free inodes: 274165
First block: 0
Block size: 4096
Fragment size: 4096
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 16128
Inode blocks per group: 504
Filesystem created: Thu Mar 12 16:26:04 2009
Last mount time: n/a
Last write time: Thu Mar 12 16:26:04 2009
Mount count: 0
Maximum mount count: 29
Last checked: Thu Mar 12 16:26:04 2009
Check interval: 15552000 (6 months)
Next check after: Tue Sep 8 16:26:04 2009
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 128
Journal UUID: <none>
Journal inode: 8
Journal device: 0x0000
First orphan inode: 0
tune2fs 1.32 (09-Nov-2002)
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem UUID: 323807f2-9f40-4706-82a6-02a5083ef69b
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal filetype sparse_super
Default mount options: (none)
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 274176 <------------ 1
Block count: 548218 <------------ 2 <兩者之比接近1:2 比較適合存放大文件>
Reserved block count: 27410
Free blocks: 531397
Free inodes: 274165
First block: 0
Block size: 4096
Fragment size: 4096
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 16128
Inode blocks per group: 504
Filesystem created: Thu Mar 12 16:26:04 2009
Last mount time: n/a
Last write time: Thu Mar 12 16:26:04 2009
Mount count: 0
Maximum mount count: 29
Last checked: Thu Mar 12 16:26:04 2009
Check interval: 15552000 (6 months)
Next check after: Tue Sep 8 16:26:04 2009
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 128
Journal UUID: <none>
Journal inode: 8
Journal device: 0x0000
First orphan inode: 0
保留塊:爲管理員保留的磁盤管理空間,默認爲總數據塊的5%
用法:mkfs.ext3 –b 4096 –i 8192 –m /dev/sda2 設置保留塊的數量佔總數量的2%
如:#mkfs.ext3 –b 4096 –i8192 –m 5 /dev/sdb1
[root@localhost root]# tune2fs -l /dev/sdb1 |grep Reserved
Reserved block count: 27410
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
[root@localhost root]# tune2fs -l /dev/sdb1
tune2fs 1.32 (09-Nov-2002)
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem UUID: 5ae1c6e2-93b9-4775-b575-abc3d48f588e
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal filetype sparse_super
Default mount options: (none)
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 274176
Block count: 548218
Reserved block count: 27410 <------------27410/548218 ~~=5%約等於5%
Free blocks: 531397
Free inodes: 274165
First block: 0
Block size: 4096
Fragment size: 4096
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 16128
Inode blocks per group: 504
[root@localhost root]# tune2fs -l /dev/sdb1 |grep count
Inode count: 274176
Block count: 548218
Reserved block count: 27410
Mount count: 0
Maximum mount count: 28
[root@localhost root]# tune2fs -l /dev/sdb1 |grep Reserved
Reserved block count: 27410
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
[root@localhost root]# mkfs.ext3 -b 4096 -i 8192 -m 2 /dev/sdb1
[root@localhost root]# tune2fs -l /dev/sdb1 |grep Reserved
Reserved block count: 10964
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
Reserved block count: 27410
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
[root@localhost root]# tune2fs -l /dev/sdb1
tune2fs 1.32 (09-Nov-2002)
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem UUID: 5ae1c6e2-93b9-4775-b575-abc3d48f588e
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal filetype sparse_super
Default mount options: (none)
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 274176
Block count: 548218
Reserved block count: 27410 <------------27410/548218 ~~=5%約等於5%
Free blocks: 531397
Free inodes: 274165
First block: 0
Block size: 4096
Fragment size: 4096
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 16128
Inode blocks per group: 504
[root@localhost root]# tune2fs -l /dev/sdb1 |grep count
Inode count: 274176
Block count: 548218
Reserved block count: 27410
Mount count: 0
Maximum mount count: 28
[root@localhost root]# tune2fs -l /dev/sdb1 |grep Reserved
Reserved block count: 27410
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
[root@localhost root]# mkfs.ext3 -b 4096 -i 8192 -m 2 /dev/sdb1
[root@localhost root]# tune2fs -l /dev/sdb1 |grep Reserved
Reserved block count: 10964
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
#df –lh
#df –l
1)、tune2fs:調整ext2/ext3文件系統特性的工具
-l <device 設備> 查看文件系統信息
-c <count 數量> 設置掛載時硬盤強制自檢的次數
-i <n day 天數> 設置強制自檢的間隔時間
-m <percentage 百分比> 保留塊的百分比
-j <journal 日誌> 將ext2文件系統轉換成ext3的文件格式(Ext3比Ext3增加了日誌的功能)
文件系統檢查工具
a)、fsck <------------檢查文件系統完整性工具
用法一:fsck –t ext2 /dev/sdb1
用法二:fsck.ext2 /dev/sdb1
b)、e2fsck 檢查ext2/ext3文件系統的工具(建議不要採用此工具進行檢查)
例:#tune2fs –l /dev/sdb1 |grep mount
[root@localhost root]# tune2fs -l /dev/sdb1
tune2fs 1.32 (09-Nov-2002)
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem UUID: c6bfdc65-1053-4523-b15c-1cf4223b7a7d
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal filetype sparse_super
Default mount options: (none)
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 274176
Block count: 548218
Reserved block count: 10964
Free blocks: 531397
Free inodes: 274165
First block: 0
Block size: 4096
Fragment size: 4096
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 16128
Inode blocks per group: 504
Filesystem created: Thu Mar 12 16:42:36 2009
Last mount time: n/a
Last write time: Thu Mar 12 16:42:37 2009
Mount count: 0
Maximum mount count: 34
tune2fs 1.32 (09-Nov-2002)
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem UUID: c6bfdc65-1053-4523-b15c-1cf4223b7a7d
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal filetype sparse_super
Default mount options: (none)
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 274176
Block count: 548218
Reserved block count: 10964
Free blocks: 531397
Free inodes: 274165
First block: 0
Block size: 4096
Fragment size: 4096
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 16128
Inode blocks per group: 504
Filesystem created: Thu Mar 12 16:42:36 2009
Last mount time: n/a
Last write time: Thu Mar 12 16:42:37 2009
Mount count: 0
Maximum mount count: 34
[root@localhost root]# mount /dev/sdb1 /mnt/b1/
[root@localhost root]# tune2fs -l /dev/sdb1
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 274176
Block count: 548218
Reserved block count: 10964
Free blocks: 531397
Free inodes: 274165
First block: 0
Block size: 4096
Fragment size: 4096
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 16128
Inode blocks per group: 504
Filesystem created: Thu Mar 12 16:42:36 2009
Last mount time: Thu Mar 12 18:35:13 2009
Last write time: Thu Mar 12 18:35:13 2009
Mount count: 1
Maximum mount count: 34
(當掛載次數達到最大的次數限制時,分區會強制進行自檢)
[root@localhost root]# tune2fs -l /dev/sdb1
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 274176
Block count: 548218
Reserved block count: 10964
Free blocks: 531397
Free inodes: 274165
First block: 0
Block size: 4096
Fragment size: 4096
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 16128
Inode blocks per group: 504
Filesystem created: Thu Mar 12 16:42:36 2009
Last mount time: Thu Mar 12 18:35:13 2009
Last write time: Thu Mar 12 18:35:13 2009
Mount count: 1
Maximum mount count: 34
(當掛載次數達到最大的次數限制時,分區會強制進行自檢)
[root@localhost root]#umount /dev/sdb1
[root@localhost root]# tune2fs -c -1 /dev/sdb1
tune2fs 1.32 (09-Nov-2002)
Setting maximal mount count to –1 <將最大掛載次數設爲-1,這樣此文件系統永不會自檢>
tune2fs 1.32 (09-Nov-2002)
Setting maximal mount count to –1 <將最大掛載次數設爲-1,這樣此文件系統永不會自檢>
#umount /dev/sdb1
[root@localhost root]# tune2fs -l /dev/sdb1 |grep interval
Check interval: 15552000 (6 months)
Check interval: 15552000 (6 months)
[root@localhost root]# tune2fs -c -1 -i 0 /dev/sdb1 <---這樣就不會自檢,如果想自檢,可手工運行命令進行自檢。
tune2fs 1.32 (09-Nov-2002)
Setting maximal mount count to -1
Setting interval between check 0 seconds
tune2fs 1.32 (09-Nov-2002)
Setting maximal mount count to -1
Setting interval between check 0 seconds
[root@localhost root]# tune2fs -m 10 /dev/sdb1 <--------設置保留塊爲10%
tune2fs 1.32 (09-Nov-2002)
Setting reserved blocks percentage to 10 (54820 blocks)
tune2fs 1.32 (09-Nov-2002)
Setting reserved blocks percentage to 10 (54820 blocks)
[root@localhost root]# tune2fs -l /dev/sdb1 |grep -i "Reserved"
Reserved block count: 54820
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
Reserved block count: 54820
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
例子:#mkfs.ext2 /dev/sdc1
#mount /dev/sdc1 /mnt/c1
[root@localhost root]# df –T (分區類型)
Filesystem Type 1K-blocks Used Available Use% Mounted on
/dev/sda1 ext3 5154852 1127532 3765464 24% /
none tmpfs 79152 0 79152 0% /dev/shm
/dev/sdc1 ext2 2158416 20 2048756 1% /mnt/c1
Filesystem Type 1K-blocks Used Available Use% Mounted on
/dev/sda1 ext3 5154852 1127532 3765464 24% /
none tmpfs 79152 0 79152 0% /dev/shm
/dev/sdc1 ext2 2158416 20 2048756 1% /mnt/c1
[root@localhost root]# cp /etc/services /mnt/c1
[root@localhost root]# ls /mnt/c1
lost+found services
[root@localhost root]# tune2fs -j /dev/sdc1
tune2fs 1.32 (09-Nov-2002)
Creating journal inode: done
This filesystem will be automatically checked every 37 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
[root@localhost root]# ls /mnt/c1
lost+found services
[root@localhost root]# tune2fs -j /dev/sdc1
tune2fs 1.32 (09-Nov-2002)
Creating journal inode: done
This filesystem will be automatically checked every 37 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
[root@localhost root]# umount /dev/sdc1
[root@localhost root]# mount /dev/sdc1 /mnt/c1
[root@localhost root]# ls /mnt/c1
lost+found services
[root@localhost root]# df –T 查看分區類型
Filesystem Type 1K-blocks Used Available Use% Mounted on
/dev/sda1 ext3 5154852 1127532 3765464 24% /
none tmpfs 79152 0 79152 0% /dev/shm
/dev/sdc1 ext3 2158416 32844 2015932 2% /mnt/c1
[root@localhost root]# mount /dev/sdc1 /mnt/c1
[root@localhost root]# ls /mnt/c1
lost+found services
[root@localhost root]# df –T 查看分區類型
Filesystem Type 1K-blocks Used Available Use% Mounted on
/dev/sda1 ext3 5154852 1127532 3765464 24% /
none tmpfs 79152 0 79152 0% /dev/shm
/dev/sdc1 ext3 2158416 32844 2015932 2% /mnt/c1
[root@localhost root]# tune2fs -l /dev/sdc1 |grep features
Filesystem features: has_journal filetype needs_recovery sparse_super <----------已經添加了日誌功能
Filesystem features: has_journal filetype needs_recovery sparse_super <----------已經添加了日誌功能
Ext2文件系統與Ext3文件系統的區別就是:Ext3比Ext2多了日誌功能,ext2可以通過tune2fs –j 加上日誌功能,變成Ext3文件系統,但是Ext3 不能再次轉換成Ext2文件系統。
自檢工具:fsck 在使用fsck命令自檢文件系統的時候,要看清楚是哪一種文件系統的文件(Ext2還是Ext3),不要用錯參數。
#fsck.ext2 /dev/sdb4
#fsck.ext3 –y /dev/sdc1 <----加入-y參數表示自動修復,不用確認。
©著作權歸作者所有:來自51CTO博客作者leekwen的原創作品,如需轉載,請註明出處,否則將追究法律責任
0
收藏
Ctrl+Enter 發佈
發佈
取消