磁盘配额技术的分析与实现

2015-01-20 03:16刘春李淑芝
电脑知识与技术 2014年36期

刘春 李淑芝

摘要:磁盘配额技术是linux操作系统具有的限制用户或组文件数量与磁盘容量的的特性,也支持网页空间、每个用户邮件空间、每个用户最大的可用网络硬盘限制,从而实现维护所有用户对硬盘空间的合理使用。该文阐述了文件系统创建,磁盘分区,挂载以及磁盘配额技术配置、使用。

关键词:文件系统;挂载;内存交换空间;磁盘配额

中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2014)36-8808-02

1 文件系统介绍

1.1 linux文件系统种类

文件系统是指文件在硬盘上的存储方法和排列顺序。Linux 系统最重要的特征之一是支持多种文件系统,可以和多种文件系统并存。在Linux文件系统中,ext2/ext3文件系统、虚拟文件系统、/proc文件系统是三个具有代表性的文件系统。

ext2文件系统是二级扩展文件系统,是使用最多的格式。存取文件性能很好,对中小型文件进行存取时尤为突出优点。可以支持256字节的长文件名。但是EXT2文件系统在写入文件内容同时,并没有写入文件的mete-date与文件相关的权限、所有者、创建和访问时间。先写入文件的内容,等到空闲时间才会写入文件的mete-date,但是如果在未写入mete-date前系统突然断电,就有可能造成文件系统处于不一致的状态,生产文件的缺失。

Ext3是日志文件系统,由于通过日志解决任何改变的数据的记录工作。具有可伸缩性和健壮性。记录元数据的任何改变,当系统运行过程中在某个阶段被中断时,Ext3文件系统可以根据历史记录直接回溯到并重整被中断的部分,回复工作速度相当快。

虚拟文件系统VFS并不是一种实际的文件系统。它只存在于内存中,不存在于任何外存空间。VFS在系统启动时建立,在系统关闭时消亡。VFS可以支持linux多个不同的文件系统,允许用户同时能透明地使用。

/proc是虚拟文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。用户或应用程序读取proc文件时,proc文件系统是动态从系统内核读出所需信息并提交的。

1.2 linux文件系统运行

与操作系统密切相关,linux操作系统的文件权限与文件属性,权限与属性放到inode中,其中一个文件占用一个inode,并记录该文件的数据存放的block号,block的大小数量在格式化时就固定了,文件的数据存入block中,每个block内最多只能放一个文件的数据,如果文件过大,就会占用多个block,若文件小于block,那么block剩余空间就不能使用,产生浪费。而文件的整体信息存放到superblock超级块,包括数据块的总量、使用量、剩余量等信息。

linux文件系统为索引式文件系统,数据访问的方式为索引式,系统一开始就规划好inode与block,每个inode与datablock都有编号,每一个文件的inode里先存放的文件数据存放放的block号,系统在读取文件时需要先找到inode,并分析inode所记录的权限与用户是否相符,若符合在根据inode编号读取block,那么就能够读出该文件的实际数据,可以再短时间内读取文件的全部数据。由于ext2/ ext3是索引式文件系统,具有不需要整理碎片的优点。

2 磁盘配额技术的实现

2.1 磁盘分区

硬盘由磁道、扇区、柱面、簇等构成物理结构,硬盘分区就是指定分区的起始与结束柱面,可以访问的区域是由A柱面到B柱面之间的块。主要分为主分区、扩展分区、逻辑分区三种。由于主引导扇区只有64bytes,最多只能记录四条分区信息,因此这四条记录成为主分区,每个主分区的记录在主分区表里占14bytes;如果要建多于四个的分区,就要拿出一个主分区做为扩展分区,再在扩展分区里面进行其它的分区操作。在建扩展分区的时候需要建立一张对应的扩展分区表,它记录了在这个扩展分区里的分区的相关信息;理论上没有分区数量的限制,在扩展分区内部的分区叫做逻辑分区,如/dev/hda5,/dev/hda6/等;分好区后,分区没有任何文件。只用向分区里写入相应格式的数据,操作系统才能够识别,比如,NTFS,ext2,ext3等文件系统。

2.2 挂载点

文件系统由inode与block,superblock构成,但是文件系统必须链接到目录树,与目录树结合起来,用户才可以使用,这个操作过程就是文件系统挂载过程。如下所示查看挂载目录/、/home, 可得到对应系统的设备文件名为/dev/hda2,/dev/hda1,系统显示的每一行的文件属性不相同,而且这二个目录的挂载点也不相同,其inode也不相同,所以/、/home为二个不同的文件系统。

[root@localhost ~]# li —lid / boot /home

2 drwrx-xr-x 23 root root 4096 oct 20 07:32 /

2 drwrx-xr-x 4 root root 1024 oct 15 09:04 /boot

195649 drwrx-xr-x 3 root root 4096 oct 15 09:10 /home

[root@localhost ~]# df

Filesystem 1K-blocks Used Available Use% Mounted on

/dev/hda2 7827412 1947036 5476344 27% /

/dev/hda1 256661 16074 264227 6% /boot

2.3 挂载与卸载endprint

挂载点是进入磁盘分区的入口,单一的文件系统不能被重复挂载在不同的目录上,同样单一的目录不能重复挂载多个文件系统,挂载点的目录若原先不是空目录,那挂载了文件系统后,原来的目录下的文件就会暂时被掩藏,并不是覆盖,等到新分区被卸载后,隐藏的目录就再次显示出来。

根目录是整个目录是重要目录,无法卸载。但是当进入单用户维护模式时当根目录显示“只读”状态需要重新挂载时,就需要重新启动。

可以挂载文件系统到某一目录下,也可以利用mount实现某个目录挂载到另外一个目录,也可以挂载光盘、软盘、U盘。

[root@localhost ~]#mkdir /mnt/wenjian

[root@localhost ~]#mount /dev/hda5 /mnt/wenjian

[root@localhost ~]#mkdir /mnt/upan

[root@localhost ~]#mount —t vfat —o iocharset=cp950 /dev/hda6 /mnt/upan

2.4 内存交换空间构建

安装linux时,必须具备的两个分区,一是根分区,一是内存交换分区swap,swap解决在物理内存不足的情况下所造成的内存扩展功能。swap不会使用到目录树的挂载,不需要指定挂载点。当内存不足时, 为了让后台程序继续工作,暂时将不用的内存数据存放到swap中,内存把空出来的空间加载需要执行的程序,提高内存运行速度。

构建swap分区的可以采用物理分区方法构建,也可以使用文件构建,运用物理分区构建方法:

1) 运用fdiskh划分分区给 swap,需要设置system ID。

2) 利用新建swap格式的“mkswap 设备文件名”格式化成swap分区格式。

3) 运行“swapon 设备文件名”将swap分区设备启动。 尽管闪回完成,删除的原表已经复原,但它在回收站站用的空间数据库没有立即收回,必须使用PURGE RECYCLEBI命令来清空。在恢复一个表时,Oracle将恢复依赖对象,比如索引等,但依赖对象保留隐晦的系统生成名,需要对它们进行重新命名。

2.5 quota分配磁盘配额

quota 配置文件首先分析整个文件系统中每个用户或组的文件总数与总容量,再将数据记录在文件系统中,在配置文件中使用户或组账号的限制值规定容量限制或文件数量限制,分别都有2个限制值,分别是soft与hard,,其中hard表示用户的用量绝对不会超过这个限制值,soft表示用户在低于soft值时,可以正常使用磁盘,若超过soft,x系统给用户警告,并给出宽限时间,具体步骤为:

1) 查看系统是否装了quota软件包;

2) 使用userquota选项将要做磁盘配额的分区挂载到某个目录上;

3) 创建磁盘配额管理的数据库文件;

4) 激活要做磁盘配额的分区;

5) 根据用户需求来设置配置文件,设定磁盘配额限制;

3 结束语

由于多用户、多任务的Linux系统中,为了维护所有用户对硬盘空间的合理使用,避免少数用户大量占用磁盘空间,影响其他用户的使用权限,因此系统需要限制磁盘空间给用户,妥善分配资源,运用文件系统建立、磁盘配额技术可以实现限制某一用户组或用户所能使用的最大磁盘容量,实现维护硬盘空间的合理使用。

参考文献:

[1] 谭子军,何连跃.分布式存储系统中用户磁盘空间分配策略[J].计算机工程,2010(9).

[2] 李国峰. Linux ext3文件系统磁盘配额[J].廊坊师范学院学报,2004(4).

[3] 曲广平,郭迎递.利用quota在RHEL6系统中实现磁盘配额管理[J].潍坊学院学报,2013(4).

[4] 刘刚.Linux系统移植[M].机械工业出版社,2011.

[5] 郝伟.浅谈管理服务器磁盘的方法[J].电子技术与软件工程,2013(23).endprint