首先来看看在Solaris操作系统下对于UFS文件系统及单个文件大小的限制,参考下表.
Solaris 版本 ‖ 允许创建最大的单个文件 ‖ 允许创建最大的文件系统
Solaris 2.5.1 ‖ 2 GB ‖ 1 TB
Solaris 2.6 - 9 12/02(U3) ‖ ~ 1012 GB ‖ 1 TB
Solaris 9 08/03 (U4)- Solaris 10 ‖ ~ 1023 GB ‖ 16 TB
对于1T或以上的UFS文件系统,为了减少在fsck期间检查文件系统inode健康状态所花的时间(尽管此文件系统打开了logging选项,对于一个1T或更大的文件系统,执行fsck是一个考验和挑战),在文件系统创建时(使用”newfs”或”mkfs”命令),两个关键参数”nbpi”和”fragsize”的默认值将有所变化,参见下表.
当创建1T以下的文件系统 | 当创建1T或以上的文件系统
nbpi = 2048 - 8192 byte | nbpi = 1048576 (即1M);
fragsize = bsize / 8 | fragsize = bsize
说明:
在创建1T或以上的文件系统时,如果手工指定的nbpi(命令行中使用-i选项)或fragsize(命令行中使用-f选项)值不合理,则被系统忽略而使用默认值.
fragsize参数指定分配给一个常规UNIX文件的最小空间大小,该值与文件系统的逻辑页大小(block size,bsize)有关,指定的值必须能被bsize整除,且两者之间的商必须为1,2,4,8.如Solaris 9的block size为8K,则fragsize可能的取值为:
1024,2048,4096,8192
默认将取最小值即1024字节,意即,在Solaris 9操作系统下,每创建一个常规的UNIX文件,将至少占用1K的空间.(即使文件大小小于1K).
在创建1T或以上的文件系统时,fragsize默认值将被强制设置成1M,这也是为什么对于1T或以上的文件系统,其所能容纳的小文件数反而锐减的原因之一.
在用newfs命令创建1T或以上的文件系统时,需要使用”-T”选项,该选项有如下作用:
- 使fragsize等于当前的bsize值
- 将nbpi设置成1M
- 允许将创建的文件系统在线增长到最大可能的大小
如创建了一个1.2T左右的卷,在用newfs创建文件系统时,实际创建的文件系统大小将不会超过1T,而需要配合”growfs”命令将其扩展到最大值(即1.2T).
# newfs -T /dev/md/rdsk/d99 (卷d99实际大小为1.2T)
newfs: construct a new file system /dev/md/rdsk/d99: (y/n)? y
/dev/md/rdsk/d99: 1677754368 sectors in 45512 cylinders of
144 tracks, 256 sectors
819216.0MB in 1821 cyl groups (25 c/g, 450.00MB/g, 448 i/g) ...
# growfs -v /dev/md/rdsk/d99
/usr/lib/fs/ufs/mkfs -G /dev/md/rdsk/d99 2516631552 /dev/md/rdsk/d99:
2516631552 sectors in 68268 cylinders of 144 tracks, 256 sectors
1228824.0MB in 2731 cyl groups (25 c/g, 450.00MB/g, 448 i/g)...
阅读(970) | 评论(0) | 转发(0) |