SA-238读书笔记11
发表于:2007-06-09来源:作者:点击数:
标签:
Solaris操作环境的ufs文件系统 Solaris操作系统支持的文件系统类型 Solari操作环境支持三种不同的文件系统类型 。基于磁盘的文件系统 。分布式文件系统 。伪文件系统 基于磁盘的文件系统 基于磁盘的文件系统包括硬盘,CD-ROMs,软盘和DVD ufs:标准的 UNIX
Solaris操作环境的ufs文件系统
Solaris操作系统支持的文件系统类型
Solari操作环境支持三种不同的文件系统类型
。基于磁盘的文件系统
。分布式文件系统
。伪文件系统
基于磁盘的文件系统
基于磁盘的文件系统包括硬盘,CD-ROMs,软盘和DVD
ufs:标准的
UNIX文件系统。在Solaris操作环境下,ufs文件系统是在Berkeley之上的快速文件系统
hsfs:High Sierra文件系统是一个专门用于使用CD-ROMs媒体而
开发的文件系统。
pcfs:PC文件系统是一个在UNIX上执行DOS文件分配表的文件系统。他允许Solaris操作环境访问PC-DOS格式的文件系统。使用户可以通过UNIX命令对PC-DOS文件进行直接读/写访问
udf:Universal Disk Format文件系统是为了在DVD和CD-ROM等光学存储介质而开发的,提供通用的数据交换和读写操作
分布式文件系统
分布式文件系统提供
网络访问到文件系统中的资源
nfs:网络文件系统允许用户在网络上的多种类型的系统中的文件共享。他提供一个在一个系统上通过连接到其他系统建立磁盘的方法。
tmpfs:临时文件系统是为了文件保存在内存中而不必写在基于磁盘的文件系统中。系统重新启动的时候,临时文件系统就会建立或者破坏掉。
swapfs:交换文件系统用于在核心上管理磁盘上的交换空间
fdfs:File Descriptor(文件描述符)文件系统为正在使用的文件描述符提供准确的名字。
Procfs:进程文件系统包括一个在进程编号上激活的进程的列表,在/proc目录中,目录中所包含的信息与ps命令是同样的结果。
介绍Solaris操作环境ufs文件系统
对于一个在Solaris操作环境中的用户,一个文件系统就是一个文件和目录的集合用于为系统和用户保存和组织数据
对于操作系统,一个文件系统就是通过分区和允许保存和管理的数据的一个控制结构和占用空间定义的数据块的集合。
Solaris操作环境将数据保存在一个逻辑文件体系中。这个文件体系引用了通过文件系统编号形成的Solaris目录树。
每个ufs文件系统在Solaris操作环境可以使用之前必须建立在磁盘Slice上。在磁盘Slice上建立文件系统可以使Solaris操作环境保存UNIX目录和文件。
基本磁盘结构
磁盘卷标(VTOC)
磁盘卷标包括在磁盘上的分区表,并且定位在第一个磁盘扇区。一个磁盘分区可以包括一个通常为Solaris操作环境认为是有组织的目录或者文件的文件系统。
启动块
bootstrap程序(bootblk)在下15个磁盘扇区中查找。只有root文件系统才有活动的启动块,虽然每个文件系统都定位这个空间。
超级块
文件系统是通过超级块进行描述的。超级块包含在启动块后面的16个扇区中。超级块是一个包含下列信息的文件系统信息表:
。数据块编号
。柱头组编号
。数据快和碎片的长度
。硬件的描述(从卷标中导出)
。mount点的名字
。文件系统状态标志:clean,stable,active,logging,unknown
备份超级块
因为超级块包含着临界数据,所以他被复制到每一个柱头组用来防止灾难发生。当文件系统被建立之后,这个工作就已经完成了。
柱头组
通过在柱头组中分割分区(每个组的最小默认长度是16个柱头),可以改善磁盘的访问。文件系统经常通过在一个柱头组中访问文件数据来优化磁盘。如果需要,文件系统通过几个柱头组来保存文件。
柱头组块
柱头组块是一个描述柱头组的表,包括:
。inode编号
。在柱头组中的数据块的编号
。目录的编号
。空余块,空余inode,和在柱头组中的空余段
。空余块的map
。已经使用的inode的map
Inode表
Inode表包括柱头组的inode。一个inode是一个文件的内在描述和他的数据块的位置。每个柱头组都包括一个inode总编号的一部分。
数据块
一个数据块是在Solaris 7操作环境中的数据的单元。数据块默认的长度是8192字节。
Inode(index node)
一个文件的Inode包括下列信息
。文件的类型和访问的模式
。文件的所有者和组的UID和GID编号
。文件的长度
。文件最后被访问或者改变和inode改变的时间
。使用的数据块的总数,或者文件的位置
inode包括2类指针:直接指针和间接指针
直接指针:
共有12个对数据块直接访问的直接指针,这12个直接指针可以为一直到96K字节的容量的文件直接引用数据块。
间接指针:
有3中类型的间接指针:
。单间接指针:一个单间接指针查找一个文件系统块包含到数据块的指针。这个文件系统块包含2048个8K字节数据块的附加地址(即2048个指针),可以指向一个附加的16M字节的数据。
。双间接指针:一个双间接指针查找一个文件系统块包含单间接指针。每个间接指针查找一个文件系统块中包含的数据块指针。双间接指针可以指向的32G字节的数据。
。三倍间接指针:一个三倍间接指针可以查找超过70T字节的数据。可是,在一个ufs文件系统中的最大的文件容量是1T。
数据块
在文件系统上静止的空间称为数据块,也叫做存储块
数据块是已经分配的,在默认的情况下,在8K字节逻辑块长度中,并且更进一步的分割成1K字节的片段。
对于一个普通文件,数据块包括文件的内容。
对于目录,数据块包括在那个目录中的那些文件的文件名和他们的inode编号。
空闲块
与ACL lists,间接地址块,或者在柱头组映射中有记号的存储块一样当前没有被使用的数据块。这个映射同样保持片段的轨道到防止在磁盘
性能的降低。
数据块和分裂
这个方法的使用是通过ufs文件系统到文件的保存内容的过程中,不能大到足够填充一个数据块时成为分裂。
数据块可以被分开到8个分裂中,每个1024字节,用于保存小文件。
如果一个文件,包含在一个分裂中,渐渐的需要更多的空间。他就会在同一数据块中加入一个或者多个分裂。
2个不同内容的文件可以保存在同一数据块的不同分裂中。
阴影Inode
文件和ACL list有2个inode,一个ufs的inode和一个阴影inode。
在磁盘上,ACL列表保存与文件数据用同样的方法保存,并且通过inode中的直接块指针来查询。
阴影inode指向包含真实ACL列表的数据块
建立ufs文件系统
在一个重新分区的磁盘上的每个用户保存目录或者文件的磁盘Slice之前,必须建立文件系统。
Root用户可以使用newfs命令在一个磁盘Slics上构造一个ufs文件系统
Newfs命令是mkfs的前端命令用于建立文件系统的系统文件。Newfs命令放在/usr/sbin目录中。
建立一个ufs文件系统
1.Root权限,在一个重新分区后的磁盘的第一个Slice上建立文件系统
# newfs /dev/rdsk/c1t3d0s0
2.Newfs命令会在检测正确的磁盘Slice之前提问确认信息。
继续则输入y,中断则输入n
newfs命令会显示关于已经被建立的文件系统的信息
第一行显示的是磁盘的基本表面数据的描述
第二行显示在这个Slice上已经建立的ufs文件系统
第三行和剩余的行列出备份的超级块的位置。
3.在其他需要包含文件系统的Slice上重复第一步和第二步
| sunboy 回复于:2002-10-29 09:54:08
|
天啊,都是你打出来的吗?真佩服你的打字速度
|
| littletiger 回复于:2002-10-29 09:54:47
|
科学球 辛苦! 请满饮此杯 !
|
| 天皇巨星:) 回复于:2002-10-29 09:55:14
|
我越来越喜欢你了。。
|
| keanewei 回复于:2002-10-29 10:22:11
|
真TMD的牛
|
| 萧筱筱 回复于:2002-11-01 14:09:38
|
补充: 恢复启动块的办法: ok boot -s #cd /usr/platform/`uname –i`/lib/fs/ufs #installboot bootblk /dev/rdsk/c0t0d0s0(安装启动块) #reboot
|
| libby 回复于:2002-11-01 14:44:17
|
致敬!
|
| fly796 回复于:2002-11-18 22:27:16
|
The ufs file system will not allow fragments of the same file to be stored in two different data blocks.
这里说到每个data block有8192byte ,如果一个文件大于8k,怎么办? 比如它有9k多,那肯定不能存在一个数据块中啊 我不明白 请解答
|
| YT 回复于:2002-11-18 23:11:18
|
存在2个块里。
|
| clearcase/" target="_blank" >cchmail 回复于:2003-04-05 23:42:42
|
很好
|
| blessfish 回复于:2003-08-15 13:29:02
|
感谢科学球师父和参与讨论问题以及捧场的朋友:)
|
原文转自:http://www.ltesting.net