Solaris 10 文件系统磁盘配额攻略
UFS文件系统是所有Unix系统的基本文件系统。Solaris 10也不例外。本文介绍一下如何为Solaris 10 UFS文件系统设置磁盘配额。为UFS文件系统设置quota的步骤和Linux 下建立磁盘配额基本一致,请查看相关文章:网管实战:Linux服务器磁盘配额详解,链接:http://publish.it168.com/2007/0410/20070410005301.shtml 。
一、 Solaris 10支持的文件系统
Solaris 10支持三种文件系统:
1. 基于磁盘的文件系统
基于磁盘的文件系统存储在硬盘、CD-ROM 和软盘等物理介质上。可以按不同的格式向基于磁盘的文件系统中进行写入。表1 是几种常见文件系统的功能说明。
从表1 可以看到UFS位列基于磁盘的文件系统之首,所以UFS是Solaris 10的基本文件系统。和以前版本的UFS文件系统相比,Solaris 10所有 UFS 文件系统均缺省启用日志记录,而早期的 Solaris 发行版中,必须手动启用 UFS 日志记录。Solaris 10发行版在运行 64 位 Solaris 内核的系统上提供对多 TB UFS 文件系统的支持。以前,UFS 文件系统在 64 位系统和 32 位系统上的大小都仅限于 1 TB 左右。所有 UFS 文件系统命令和实用程序都已更新,可支持多 TB UFS 文件系统。
2. 基于网络的文件系统
网络文件系统即NFS文件系统。Solaris 发行版的网络文件系统是NFS 版本 4 分布式文件访问协议。NFS 版本 4 将文件访问、文件锁定和挂载协议集成到一个统一的协议中,从而使穿越防火墙进行遍历更为容易,并提高了安全性。Solaris 实现的 NFS 版本 4 与 Kerberos V5 完全集成(也称作 SEAM),因此可以提供验证机制、完整性和保密性。使用 NFS 版本 4,还可在客户机和服务器之间协商要使用的安全特性。使用 NFS 4.0 版,服务器可以为不同的文件系统提供不同的安全特性。
3. 虚拟文件系统
虚拟文件系统是基于内存的文件系统,该文件系统提供对特殊内核信息和工具的访问。大多数虚拟文件系统不占用文件系统磁盘空间。但是,CacheFS 文件系统使用磁盘上的文件系统以包含高速缓存。另外,一些虚拟文件系统(如临时文件系统 (temporary file system, TMPFS))还会使用磁盘上的交换空间。
二、 UFS文件系统的结构
Solaris UFS 文件系统是一个分层文件系统,从根目录 (/) 开始,向下延伸出许多目录。在 Solaris 安装过程中,可以安装一组缺省目录,并使用一组约定将类似的文件类型组合在一起。
1.UFS 文件系统的柱面组结构
一个UFS 文件系统的柱面组结构包括四个部分:
(1)引导块(boot block)
引导块存储在引导系统时使用的对象。如果文件系统不用于引导,则将引导块保留为空。引导块仅出现在第一个柱面组(柱面组 0)中,它是片中的前 8 KB。
(2)超级块(super block)
超级块存储有关文件系统的大多数信息,其中包括:文件系统的大小和状态、标号,包括文件系统名称和卷名称 、文件系统逻辑块的大小 、上次更新的日期和时间、柱面组的大小 、柱面组中的数据块数 、摘要数据块、文件系统状态、最后一个挂载点的路径名。
(3)i节点(inode)
inode 包含有关文件的所有信息,但文件的名称(保存在目录中)除外。一个 inode 为 128 字节。inode 信息保存在柱面信息块中。
(4)数据块(date block)
数据块也称为存储块,它包含为文件系统分配的其余空间。这些数据块的大小是在创建文件系统时确定的。缺省情况下,为数据块分配以下两种大小:8 KB 的逻辑块大小和 1 KB 的段大小 (fragment size)。对于常规文件,数据块包含文件的内容。对于目录,数据块包含提供目录中文件的 inode 编号和文件名的项。
2 . Solaris UFS 分层文件系统
Solaris UFS 文件系统是一个分层文件系统,从根目录(/) 开始,向下延伸出许多目录。在Solaris 安装过程中,可以安装一组缺省目录,并使用一组约定将类似的文件类型组合在一起。下表汇总了缺省的Solaris 文件系统。
缺省的 Solaris 文件系统
三、 为UFS文件系统设置配额quota
利用配额系统管理员可以控制 UFS 文件系统的大小。配额会限制磁盘空间量和 inode 数量,这些数量与各个用户可以获取的文件数量大致对应。因此,配额在用户起始目录驻留的文件系统中特别有用。通常不要对public 和 /tmp文件系统建立配额。为UFS文件系统设置quota的步骤和Linux 下建立磁盘配额基本一致,下面直接进行操作:
例如在磁盘c0t4d0s0的mount挂载点/work 建立磁盘配额
1. 切换到管理员权限;
2. 使用vi编辑/etc/vfstab 文件,并向 mount options 字段中添加 rq。加入一行:
dev/dsk/c0t4d0s0 /dev/rdsk/c0t4d0s0 /work ufs 3 yes rq
3. 在 /export/home目录下建立一个创建一个名为 quotas 的文件,命令如下:
# touch quotas
4. 更改读取/写入权限,以便仅供超级用户访问,命令如下:
# chmod 600 quotas
5. 使用 edquota 命令为单个用户帐户创建磁盘配额和 inode 配额,,命令如下:
edquota bok
说明:bok是用户名称。
系统生成一行:
fs /export/home blocks (soft = 50, hard = 60) inodes (soft = 90, hard = 100)
6. 检查配额一致性
重新引导系统时会自动运行 quotacheck 命令。如果要在包含现有文件的文件系统中设置配额,则需要运行 quotacheck 命令,以使配额数据库与文件系统中已存在的文件或 inode 同步。例外在大型文件系统中运行 quotacheck 命令会非常耗时,请耐心等待。命令格式:
quotacheck –va
参数说明:
-v :报告所有用户的配额,包括那些不占用资源的用户。
-a :报告所有文件系统。
7. 启用配额,命令如下:
# quotaon /export/home
8.检查配额设置是否生效
以下示例显示在仅对一个文件系统 (/export/home) 启用配额的系统中repquota 命令的输出。
# repquota -va
/dev/dsk/c0t3d0s7 (/export/home):
Block limits File limits
User used soft hard timeleft used soft hard timeleft
#301 -- 0 1 2.0 days 0 2 3
#341 -- 57 50 60 7.0 days 2 90 100 2
参数说明:
Block limits 部分:
used :当前的块使用情况。
Soft :软限制。
Hard :硬限制。
Timeleft :配额计时器中剩余的时间,以天为单位。
File limits部分:
used :当前的 inode 使用情况。
Soft :软 inode 限制。
Hard :硬 inode 限制。
Timeleft :配额计时器中剩余的时间,以天为单位。
9.修改或者删除配额
您可以更改配额,以调整用户可以占用的磁盘空间量或 inode 数量。还可以根据需要,为个别用户或从整个文件系统中删除配额。
(1) 改变配额时间设置
# edquota -t
(2) 关闭配额
以下示例说明如何为 /export/home 文件系统关闭配额。
# quotaoff -v /export/home
/export/home: quotas turned off
总结:
利用配额,系统管理员可以控制 UFS 文件系统的大小。配额会限制磁盘空间量和 inode 数量,这些数量与各个用户可以获取的文件数量大致对应。因此,配额在用户起始目录驻留的文件系统中特别有用。设置配额后,即可更改配额,以调整用户可以占用的磁盘空间量或 inode 数量。此外,随着系统需要的变化,还可以添加或删除配额。此外,还可以监视配额状态。使用配额命令,管理员可以显示有关文件系统中配额的信息,或搜索已超过配额的用户。