(一)磁盘限额管理

     经验表明,一个多用户操作系统用户越多,浪费的磁盘空间也越多,同时系统的可靠性也会大

     幅降低。保证系统有效利用磁盘空间的最好方法就是对用户使用的磁盘空间进行限制,此时就

     可以使用Linux的磁盘配额。


1、磁盘配额的系统配置

  首先,磁盘配额是区域性的,因此可以决定哪块分区进行磁盘配额,哪块分区不用。

  磁盘限额命令下达目标必须是硬盘或分区或格式化过的分区文件。

  磁盘的配额可以按用户进行限制,也可以对用户组进行限制。磁盘配额是否开启可以在/etc/fstab

  中配置。

  man mount

  :/quota

  clip_p_w_picpath002[1]

  usrquota 相应的用户磁盘限额

  grpquota 相应的用户组磁盘限额


(二)、磁盘限额常用命令

     quota一系列命令。

1、vi /etc/fstab

  添加

  /dev/sda5 /home ext3 usrquota,grpquota,defaults 0 0

  clip_p_w_picpath004[1]

2、mount –a 重新挂接

  mount 查看显示已挂接成功

  EBB-14、Linux磁盘管理2_第1张图片

3、quotaon /home 执行显示无效

  clip_p_w_picpath008[1]

4、为了使系统按照配额进行工作,必须在相应的目录建立磁盘配额文件aquota.group和

  aquota.user。

1)quotacheck命令会自动建立磁盘配额文件aquota.group和aquota.user两个文件。

2)quotacheck命令主要参数及说明

  -a 扫描在/etc/mtab文件中所有挂载的文件系统

  /etc/mtab文件内容和执行mount命令输出的内容一样

  vi /etc/mtab

  EBB-14、Linux磁盘管理2_第2张图片

  -d 启用调试模式

  -u 计算每个用户占用的目录和文件数目,并创建aquota.user文件

  -g 计算每个用户组占用的目录和文件数目,并创建aquota.group文件

  -c 忽略现有的配置文件,重新扫描相应对应目录的新的配额文件

  -b 备份旧的配额文件

  -v Verbose互动模式

3)执行quotacheck –cvug /home/,创建aquota.group aquota.user

  clip_p_w_picpath012[1]

4)file aquota.user查看文件类型,显示是二进制数据文件

  clip_p_w_picpath014[1]

5)设置磁盘配额的限制可以用edquota命令,不能用vi编辑。其常用参数及说明-g对用户组设置磁盘

  配额

  -u 对用户设置磁盘配额。

  -p 对磁盘配额设置进行复制

  -t 对文件系统设置软时间设置

6)执行edquota –u afu(username用户名),进入如下界面

  clip_p_w_picpath016[1]

  Disk quotas for user afu (uid 500): afu用户的磁盘限额

  Filesystem 文件系统名称

  blocks 磁盘块的数量,注意单位不是个,是KB。

  现在是18X1KB

  soft blocks软限额

  hard blocks硬限额

  inodes 文件inodes数量,文件个数限额

  soft inodes软限额

  hard inodes硬限额

  对磁盘配额的限制一般是从占用磁盘大小和所有文件的数量两个方面来进行的。限制主要分为软限

  制和硬限制两种。

<1>软限制:一个用户在文件系统可拥有的最大磁盘空间和最多文件数量,在某个宽限期内可以暂时超

          过这个限制,但是系统会发出警告。如果超过宽限期后,超过后的软限额的容量将变成硬  

          限额。

<2>硬限制:一个用户可拥有的磁盘空间或文件的绝对数量,

          绝对不允许超过这个限制。


  将edquota –u afu编辑的结果如下,

  clip_p_w_picpath018[1]

7)执行quotaon /home/ 开启磁盘限额功能

8)现在切换到afu用户下

  su - afu

  dd if=/dev/zero of=/home/afu/test.img bs=1M count=11

  创建一个11M的文件

  clip_p_w_picpath020[1]

  出现警告,超过软限额;

  执行

  dd if=/dev/zero of=/home/afu/test.img bs=1M count=20

  创建一个20M的文件

  clip_p_w_picpath022[1]

  不仅显示警告超过软限额,而且写入失败,用户磁盘数据已经达到硬限额。查看test.img文件,显

  示20M

  clip_p_w_picpath024[1]

  现在试验一下inode的软限额和硬限额、

  先创建80个文件,然后再创建一个,

  clip_p_w_picpath026[1]

  显示警告,超过文件数量软限额

  clip_p_w_picpath028[1]

  显示文件数量达到文件数量硬限额,无法创建。

  总结:设置磁盘限额,首先编辑/etc/fstab以特殊的方式进行挂接,例如例子中的

        usrquota,grpquota两个参数;使用这两个参数的分区具有的属性才能在这个分区上使用

        quota;分区挂接后,要让对应的目录相应的磁盘限额功能生效,需要在对应的目录创建磁  

        盘的配置文件(aquota.group(用户组配额文件),aquota.user(用户配额文件)),这  

        两个文件是通过quotacheck命令创建的(quotacheck -cvug dir)。使用edquota命令

       (edquota -u(g) username)编辑用户或用户组的配额;编辑完毕使用quotaon dir开启  

        quota功能(quotaoff dir关闭quota功能)。

  磁盘限额的实践使用:如个人网站租用的服务器虚拟主机


(三)autofs

1、使用autofs 自动挂接文件系统的原因

1)对于某些网络文件系统而言,用户不一定随时需要。如果一直挂载会造成资源浪费,例如NFS挂接

  的客户端超过12个,性能就会显著下降;所以要求用户需要使用时自动挂载;当用户不用时一段时

  间后自动卸载。

2)mount权限的局限性:只有root用户才能使用,普通用户无权限使用

  whereis mount

  clip_p_w_picpath030[1]

  所以需要一套机制,能智能化判断用户的使用,帮助用户屏蔽root用户与普通用指尖的隔阂,任何  

  用户使用资源的时候自动挂接进行使用,当用户不需要时,一段时间之后自动卸载。

  使用autofs可以实现这一功能。

2、组成部分

1)后台服务 /etc/ini.d/autofs 在后台持续不断的运行,负责监控用户的操作,监测到用户需要

  挂接时就会自动挂接,长时间不用后,自动卸载。

2)服务相应的配置文件

  /etc/auto.master(autofs的主要配置文件)

  在文件中添加一行

  /mnt /etc/auto.mnt

  EBB-14、Linux磁盘管理2_第3张图片

3)编辑auto.mnt

  参照auto.misc范例文件

  EBB-14、Linux磁盘管理2_第4张图片

4)

  现在使用autofs后,

  在进入到/mnt目录下的时候,切换到abc目录的时候自动挂载/dev/sda5挂接到abc目录下。

(1)卸载/dev/sda5分区,卸载/mnt

    umount /dev/sda5

    umount /mnt

    mount查看没有任何关于/mnt目录的挂接

    EBB-14、Linux磁盘管理2_第5张图片

(2)vi auto.master

    EBB-14、Linux磁盘管理2_第6张图片

    指定/mnt /etc/auto.mnt

(3)vi auto.mnt 编辑进入以下内容

    abc     -fstype=ext3           :/dev/sda5

  (目录)(指定的文件系统为ext3)(对应的设备/dev/sda5)

(4)service autofs restart 重新启动autofs服务,避免服务已经开启无法重新读取配置文件,新

    配置文件无法生效。

    clip_p_w_picpath040[1]

(5)

    EBB-14、Linux磁盘管理2_第7张图片

    现在/dev/sda5自动挂载到/mnt/abc目录

    如果现在cd .. 退出/abc目录,一段时间之后将会自动卸载。


    当我们在/mnt目录下操作时,autofs检测到用户在/mnt目录的操作,当cd abc/的时候,执行

    auto.mnt下的配置,即进入abc目录时,系统会将/dev/sda5分区以ext3的文件系统挂载。