第四章 管理文件系统
目标要求:
描述solaris 文件系统
创建一个新的UFS文件系统
使用fsck来检验文件系统
解决文件系统不连续
监视文件系统的使用
首先来描述一下solaris文件系统,solaris支持3种类型的文件系统:
基于磁盘的文件系统
分布式文件系统
Pseudo文件系统
基于磁盘的文件系统又可以分为:
UFS:在10的时候UFS可以达到TB。
Hsfs:支持CDROM的高密数据
Pcfs:支持DOS的FAT32文件系统
Udfs:支持DVD和CDROM的通用文件系统格式。
分布式文件系统
NFS:我们通常所说的网络文件系统共享方式。
Pseudo文件系统
Pseudo文件系统是一种基于内存的文件系统方式。它包括:
Tmpfs : 临时文件系统是基于内存而存在的。当机器重新启动的时候它会创建新的数据,而将以前存储的数据清除。
Swapfs: 是用于swap管理的。
Fdfs: 文件描述器文件系统又/dev/fd下的文件描述器为打开的文件提供一个明确的名字。
Procfs:进程文件系统在/proc下为每一个运行的进程提供一个描述。
Mntfs:为本地已经mount的文件系统提供一个只读的信息。
Objfs:kernel object 文件系统。这个文件系统是描述当前kernel已经加载的module的相关详细信息。存储在/system/object。
Devfs:设备文件系统。使用/devices下的信息。
Ctfs:契约文件系统。来源于/system/contract目录。使用SMF跟踪进程。 以便对进程的错误等等进行及时的处理。
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编号
文件类型和访问模式
用户的UID和GID
文件的大小
连接数
文件最后一次的访问和修改接点的时间
分配给文件使用的数据块的总体数量
两种指针:直接指针和间接指针
直接指针:
共有12个对数据块直接访问的直接指针,这12个直接指针可以为一直到96K字节的容量的文件直接引用数据块。
间接指针:
有3中类型的间接指针:
。单间接指针:一个单间接指针查找一个文件系统块包含到数据块的指针。这个文件系统块包含2048个8K字节数据块的附加地址(即2048个指针),可以指向一个附加的16M字节的数据。
。双间接指针:一个双间接指针查找一个文件系统块包含单间接指针。每个间接指针查找一个文件系统块中包含的数据块指针。双间接指针可以指向的32G字节的数据。
。三倍间接指针:一个三倍间接指针可以查找超过70T字节的数据。可是,在一个ufs文件系统中的最大的文件容量是64T。
在文件系统上静止的空间称为数据块,也叫做存储块
数据块是已经分配的,在默认的情况下,在8K字节逻辑块长度中,并且更进一步的分割成1K字节的片段。
对于一个普通文件,数据块包括文件的内容。
对于目录,数据块包括在那个目录中的那些文件的文件名和他们的inode编号。
建立一个ufs文件系统
1.Root权限,在一个重新分区后的磁盘的第一个Slice上建立文件系统
# newfs /dev/rdsk/c1t3d0s7
2.Newfs命令会在检测正确的磁盘Slice之前提问确认信息。
继续则输入y,中断则输入n
newfs命令会显示关于已经被建立的文件系统的信息
第一行显示的是磁盘的基本表面数据的描述
第二行显示在这个Slice上已经建立的ufs文件系统
第三行和剩余的行列出备份的超级块的位置。
3.在其他需要包含文件系统的Slice上重复第一步和第二步
Newfs保存了1-10%的磁盘空间。可以通过newfs –m进行预先的调整minfree。(记得8的时候直接newfs的时候,minfree好象是1%)
可以通过fstyp来看minfree的情况。
Fstyp –v /dev/dsk/c0t1d0s6 |head
Newfs –m 2 /dev/dsk/c0t1d0s6
对于已经存在的文件系统可以用
Tunefs –m 1 /dev/rdsk/c0t0d0s0来进行调整。
使用fsck来解决文件系统不连续的问题。
可以采用交互模式进行fsck
Fsck /dev/rdsk/c0t0d0s7
相关的一些关于超级块的修复等等在这里就不在详细描述了。(论坛中这样的帖子很多)
对于文件使用情况的检测,可以使用df du quot来查看。
Df 我们常用的参数有k ,h ,-o i –F fstye 几个参数。
Du 我们常用的几个参数是k s a
Quot我们常用参数是a f。
另外,以上的操作都可以通过SMC来完成
阅读(969) | 评论(0) | 转发(0) |