61 FreeBSD连载:其他内核设置选项( 四 )


磁盘设置
FreeBSD提供了对磁盘上的文件系统和交换空间的管理能力,可以供使用者进行设置 。FreeBSD的使用者可以设置对用户的磁盘空间设置,建立伪磁盘设备等,以更好的方式管理磁盘和文件 。
磁盘空间限制
FreeBSD提供了强大的系统管理功能,除了可以在/etc/login.conf中使用登录类别对用户占用的处理器资源进行限制之外,还可以对用户占用的磁盘资源进行限制 。用户磁盘空间的限制是通过quota来完成的 。这样就可以控制用户对硬盘资源的使用,防止硬盘空间被无意或恶意用光而造成系统故障 。这对于提供公共访问的计算机比较重要 。quota需要内核支持,在编译内核时必须加入选项:
optionsQUOTA接下来是决定对哪个文件系统使用quota来限制用户磁盘资源,要更改/etc/fstab中该文件系统对应的行,从而更改分区安装时使用的参数,例如要对wd0s1e进行限制,则更改fstab中的对应行为:
/dev/wd0s1e/usrufsrw,userquota,groupquota11然后更改/etc/rc.conf中的有关quota的设置check_quotas的值为”YES”,使用新内核重新启动计算机之后,就可以使用下列命令打开用户磁盘设置 。
# quotacheck-av# repquota-a这些命令在第一次启动支持quota的系统时使用,用来检查磁盘上的quota状态 。如果一切正常,就可以使用edquota来更改每个用户的磁盘限制了 。
# edquota-u user1# edquota-p user1user2user3第一个命令就为更改user1的磁盘空间限制,第二行将user1的quota限制复制给user2和user3 。
日常维护要使用quota命令,例如来检查user1的quota设置可以使用下面的命令 。
# quota -v user1为了避免出现问题,需要每天执行一次quotacheck命令,来检查全部设定是否正常,因此这个命令可以放入/etc/daily或crontab中,定期执行 。
# quotacheck -a伪磁盘设备
交换设备的数量是受内核设置的限制,内核中的NSWAPDEV的值就确定了最多可使用的交换设备的数量,而NO_SWAPPING选项可以用来屏蔽任何交换设备 。
optionsNSWAPDEV=20#options NO_SWAPPINGpseudo-device vn 4pseudo-device ccd 4当增加了交换设备的数量之后,就能增加交换空间,更好的发挥FreeBSD的虚拟内存机制 。
FreeBSD支持的vn伪磁盘设备可用于设置交换文件 。缺省内核支持的vn伪设备数量为一个,因此仅可以设置一个交换文件 。一般仅需要更改/etc/rc.conf文件中的swapfile选项为交换文件的名字,系统自动使用vnconfig命令来将文件和虚拟设备联系在一起 。
为了增加对多个交换文件或多个镜像文件的支持,可以增加内核中伪设备vn的数量,然后还需要创建相应数量的vn设备 。此后就可以使用这多个伪磁盘设备,并使用vnconfig命令管理多个磁盘镜像文件或交换文件 。
除了伪磁盘设备vn之外,FreeBSD系统还提供一个将多个磁盘文件系统映射为一个磁盘的伪设备ccd,这样原有的小磁盘分区就能联合起来,形成一个大的文件系统 。ccd要求内核中支持ccd这个伪设备,当内核中支持了ccd伪设备之后,就可以通过设备文件/dev/ccd0c等来使用这个伪磁盘了(缺省/dev下只有ccd0的设备文件,可以根据需要建立其他的设备文件) 。
将多个磁盘分区与单一的ccd设备联系起来,还需要使用ccdconfig进行配置,最基本的ccdconfig使用例子为:
# ccdcofnig -c ccd1 0 0 /dev/da0s2g /dev/da1s2e这个例子使用-c参数对ccd1设备进行配置,指出ccd1由/dev/da0s2g和/dev/da1s2e两个分区联合组成 。如果这两个磁盘分区都是100M大小,那么新的设备/dev/ccd1c就有200M大小 。然后就可以在ccd1设备上建立文件系统,并使用这个设备了 。
# newfs /dev/ccd1c
# mount /dev/ccd1c /mnt这是一个对ccd进行配置并使用的最简单的例子,这里没有对ccdconfig命令中紧跟ccd设备的两个数字参数的意义进行解释 。而通过选择这两个参数的不同数值,能将多个磁盘文件系统采用不同的RAID方式映射为单个设备 。

推荐阅读