/ 中存储网

UFS文件系统简介及Unix系统(Solaris,FreeBSD)的文件系统创建步骤

2014-07-05 17:37:49 来源:中存储网

UFS 是 Solaris OS 中缺省的基于磁盘的文件系统。管理基于磁盘的文件系统时,大多数情况下管理的是 UFS 文件系统。UFS 可提供以下功能。

UFS 功能

说明

扩展的基本类型 (extended fundamental type, EFT)

提供 32 位用户 ID (user ID, UID)、组 ID (group ID, GID) 和设备编号。

大文件系统

在最大大小可以为 16 TB 的文件系统中,允许大小约为 1 TB 的文件。可以在具有 EFI 磁盘标号的磁盘上创建多 TB UFS 文件系统。

日志记录

UFS 日志记录会将组成一个完整 UFS 操作的多个元数据更改打包成一个事务。事务集记录在盘上日志中,然后会应用于实际 UFS 文件系统的元数据。

多 TB 文件系统

通过多 TB 文件系统,可以创建最大可用空间约为 16 TB 的 UFS 文件系统,其中会减去约 1% 的开销。

状态标志

显示文件系统的状态:clean、stable、active、logging 或 unknown。 这些标志可避免不必要的文件系统检查。 如果文件系统的状态为“clean”、“stable” 或 “logging”,则不运行文件系统检查。

Solaris操作系统一般都会使用以下系列文件系统。

1 UFS文件系统: 基于BSD快速文件系统的传统UNIX文件系统是Solaris的默认文件系统。默认启用UFS 日志记录功能。在早期的Solaris 版本中,UFS 日志记录功能只能手动启用。 Solaris 10在运行64位Solaris内核的系统上支持多TB UFS文件系统。以前,UFS文件系统在64位系统和32位系统上的大小仅限于约1 TB(Tbyte)。现在,所有UFS文件系统命令和公用程序已更新为支持多TB UFS文件系统。

2 HSFS文件系统: 用于CD-ROM的只读文件系统

3 PCFS文件系统: PC文件系统,可以读写DOS型式磁盘的数据,如FAT32

4 UDF文件系统: DVD文件系统

Solaris 10典型的文件系统类型为UFS文件系统,但它也允许在/etc/default/fs中定义其他文件类型。在Solaris 10上,UFS文件系统驻留在硬盘上,这些硬盘同时具有原始设备接口和块设备接口,这两个接口分别位于/dev/rdsk目录和/dev/dsk目录中。Solaris 10文件系统所创建的每一个分区都在/dev/dsk和/dev/rdsk中有其自己的对应项。一个UFS文件系统的组成包括如下几部分。

引导块(boot block):在文件系统可引导的情况下,引导块中包含有引导数据。

超级块(super block):超级块中包含有关i节点的位置、文件系统大小、块数目,以及状态等信息。

i节点(inode):存储文件系统的文件细节信息。

数据块(data block):实际存储的文件。

Solaris操作系统下每个常规文件必须包含一个文件名和与之相关联的inode(信息节点),inode中存储文件的相关信息(如文件的所有者、权限和大小等信息),以及该文件所关联的数据块的指针。因此,inode数量的多少决定着一个UFS文件系统所允许创建的文件数。

一个UFS文件系统在其创建时,所允许最大的indoe数就已经固定,当该文件系统中有大量的(上千万甚至上亿个)小文件存在时,有可能出现inode数量不够用的情况,由于文件需要用inode来存储元数据(MetaData),inode数量超出将导致新文件无法被创建,尽管此时实际的存储空间还远远不到极限,所以在创建此类文件系统的时候需要考虑到这一点。

Unix Solaries UFS文件系统结构

inode数计算公式:

inode_number=文件系统大小/nbpi

nbpi:The number of bytes per inode,每个inode所占用的字节数,它是文件系统inode数多少的决定因素.

在创建文件系统时,如果不特别指定,Solaris将根据文件系统的大小使用不同的nbpi值来决定inode的密度,参见下表.

文件系统大小(GB) 缺省的nbpi大小(byte)

≤1 2048

1

2

3

≥1024(即1T) 1048576 (即1M)

根据上表,在默认情况下,对于一个1G的文件系统(在Solaris 9下,其可用的空间大约为961M),得到理论上的该文件系统所拥有的inode数:

1024 * 1024 / 2 ≌ 500000

而对于一个1T的文件系统,其可用的inode数将比略小于1T的文件(比如900G)系统锐减很多(因为nbpi值增大了好几倍):

900*1024*1024/8 = 117964800

1024*1024*1024/1024 ≌ 1000000 (一百万)

对于一个已创建的文件系统,可以通过下列命令得到该文件系统的可用inode数,从而得出在该文件系统下所能创建的最大文件数(不考虑实际的物理空间限制,理论值可能会与实际有些偏差,但可以作为一个参考):

# df -F ufs -oi

实验:

step1. 按缺省方式创建一个1G大小的UFS文件系统(nbpi=2048),挂接到/tmp/mnt目录下,实际可用的空间为961M:

# df -h /tmp/mnt

Filesystem size used avail capacity Mounted on

/dev/vx/dsk/oradg/lv_simon

961M 1.0M 903M 1% /tmp/mnt

# mkfs -m /dev/vx/dsk/oradg/lv_simon

mkfs -F ufs

-o nsect=64,ntrack=32,bsize=8192,fragsize=1024,cgsize=32,free=6,rps=120,nbpi=2054,

opt=t,apc=0,gap=0,nrpos=8,maxcontig=128 /dev/vx/dsk/oradg/lv_simon 2097152

# df -oi /tmp/mnt

Filesystem iused ifree %iused Mounted on

/dev/vx/dsk/oradg/lv_simon

4 507900 0% /tmp/mnt

在不考虑实际物理空间限制的情况下,该文件系统所允许创建的最大常规文件数理论值为: 507900个.

solaris 10 UFS文件系统的功能

扩展的基本类型(EFT) :提供32 位用户ID (user ID, UID)、组ID (group ID, GID) 和设备编号。

大文件系统:在最大大小可以为16 TB 的文件系统中,允许大小约为1TB的文件。可以在具有EFI 磁盘标号的磁盘上创建多TB UFS 文件系统。

日志记录 :UFS 日志记录会将组成一个完整UFS 操作的多个元数据更改打包成一个事务。事务集记录在盘上日志中,然后会应用于实际UFS 文件系统的元数据。

多TB 文件系统通过多TB 文件系统,可以创建最大可用空间约为16 TB 的UFS文件系统,其中会减去约1% 的开销。

状态标志显示文件系统的状态:clean、stable、active、logging 或unknown。这些标志可避免不必要的文件系统检查。如果文件系统的状态为“clean”、“stable” 或“logging”,则不运行文件系统检查。