配置磁盘配额与管理RAID卷

当Linux根分区的磁盘空间耗尽时,系统将无法在建立新的文件,从而出现服务程序崩溃,系统无法启动等故障现象,为了避免在服务器中出现类似磁盘空间不足的问题,可以设置启用磁盘的配额的功能。对用户在指定文件系统中使用的磁盘空间、文件数量进行限制,以防止个别用户恶意或者无意间占用大量磁盘空间,保持系统存储空间的稳定性和持续可用性。

任务一

配置用户基本磁盘配额限制

背景一公司现有用户名为yhy的邮件用户,经常上传大量的邮件附件,占用服务器的硬盘资源,他的邮件存放路径为/mail目录,挂载分区为/dev/sdb1,现在需要限制yhy用户磁盘的最大使用量为10MB,超过7MB发出警告,超过10MB就不能再在/mail中存储数据。

确认quota软件包的安装情况

rpm -qa |grep quota
rpm -ql quota | grep sbin

(づ ̄3 ̄)づ╭❤~有信心返回则说明已安装,centos系统一般安装系统时已经默认安装。

创建用户

useradd yhy
passwd yhy

创建文件夹,并设置权限

mkdir /mail
chmod 777 /mail

磁盘分区,格式化

添加一块磁盘进行测试

fdisk  -l /dev/sdb    //查看磁盘使用情况
fdisk /dev/sdb            //磁盘分区
mkfs.ext4 /dev/sdb1     //创建文件系统并格式化

磁盘分区具体步骤,由于十分简单在这里省略

挂载

mount -o usrquota /dev/sdb1 /mail     //挂载
tail /etc/mtab        //查看系统挂载的分区

- o usrquota为用户的配额属性

开机自动挂载

vim /etc/fstab

在文件最后一行添加如下图所示内容

参数grpquota表示增加组的配额属性。

重新挂载/dev/sdb1到/mail目录ლ(′◉❥◉`ლ)

mount -o remount /dev/sdb1
mount  //查看挂载分区情况

检测配额并生成配额文件

此处要关闭selinux,关闭selinux的命令是setenforce 0,不然可能无法创建aquota.user和aquota.group文件。

quotacheck -ugcv /dev/sdb1   //检测配额文件并生成配额文件
ls -l /mail/    

可以看到在/mail目录下自动生成aquota.group和aquota.user两个配置文件。

备注:上面参数具体含义如下

-u,检测用户的配额信息;

-g,检测组配额信息;

-c,创建新的配额文件;

-v,显示命令执行过程中的细节信息

编辑用户yhy的配额

setquota -u yhy 7000 10000 0 0 /dev/sdb1 //配置yhy用户的磁盘配额
edquota -u yhy

激活配额

quotaon /dev/sdb1

验证配额

(1)创建文件,把文件所有权给用户

mkdir /mail/quotayhy
chown yhy /mail/quotayhy

使用vim创建一个文件,写入任意内容。(只是后面测试用的)

(2)切换用户,查看结果

su - yhy
cd /mail/quotayhy
quota

(3)新建文件,查看具体情况

dd if=/dev/zero of=fileyhy bs=100K count=200

建立一个文件名为fileyhy、每块大小为100K、块数为200的20MB的文件

由上图可知,提示超出磁盘配额限制,只能建立10MB大小的文件,并且已经满了。

(4)再建立一个1K*200的文件

dd if=/dev/zero of=fileyhy1 bs=1K count=200

使用ll命令查看文件大小

关闭磁盘配额

quotaoff /dev/sdb1    //关闭磁盘配额
rm /etc/mtab        //删除配置文件

删除/ect/fstab里面最后一行

任务二

配置配额Samba服务器

背景公司有多个部门,有时候同一个部门要占用同一个共享硬盘空间,而文件服务器的空间是有限的,为了限制一个部门过多地占用共享空间而让其他部门的文件无法存放,就要给共享硬盘做一个配额,规定某一个部门最多占用一定的空间。现企业需要限制市场部的用户使用服务器的磁盘空间大小,设置用户yhy的最大使用量为100MB,超过70MB时警告。

重新设置挂载

vim /etc/fstab

修改开机自动挂载文件,并设置配额usrquota,groupquota

然后重启系统来完成上述设置的开机自动挂载,开机后使用mount命令来查看磁盘的挂载情况。

对用户和用户组建立配额文件

quotacheck -cumg /

系统会在根目录下自动生成两个文件’aquota.group’和’aquota.user’.

给用户配额

edquota -u yhy

参数-u表示为用户配置,若为用户组配置的话则加参数-g即可。具体配置内容如下

软限制为70MB,硬限制为100MB

启动配额项

quotaon -avug

修改配额

若想要修改磁盘的配额项必须先使用quotaoff -a命令来停止配额功能,然后才可以修改配置文件,配置完成后再使用quotaon -avug启动配额功能,使修改生效。

配额测试

首先使用su - yhy切换到yhy用户

dd if=/dev/zero of=yhy1 bs=1M count=20 //建立大小为20MB的yhy1文件
dd if=/dev/zero of=yhy2 bs=1M count=20 //建立大小为20MB的yhy1文件
dd if=/dev/zero of=yhy3 bs=1M count=20 //建立大小为20MB的yhy1文件
dd if=/dev/zero of=yhy4 bs=1M count=20 //建立大小为20MB的yhy1文件

当创建第四个文件时候,文件达到80MB,超过了所要求的70MB。系统给出提示警告dm-0: warning, user block quota exceeded.

继续使用命令创建文件,创建一个大小为66MB的文件yhy5,系统会提示超过磁盘配额限制。

dd if=/dev/zero of=yhy5 bs=1M count=66 

使用du -sh可以查看到用户使用的磁盘空间为98M.

配置Samba文件

使用vim /etc/samba/smb.conf命令编辑配置文件,内容如下

[global]
        workgroup=MYGROUP
        security=user
        passdb backend=tdbsam
        load printers=yes
        cups options= raw
[disk]
        path= /disk
        browseable=yes
        writable=yes
        guest ok=no
        valid users= yhy

创建/disk目录,并设置相关权限

mkdir /disk
chown yhy.yhy /disk
chmod 700 /disk

测试

在windows上使用\\serverIP\disk

找个大于100MB的文件来测试下,就拿b站后端源码好了,由于超过100MB所以文件并不能全部复制进去。

配置企业quota的组限定

因为在日常的实际工作之中并不会对于单独的某一个用户进行限定,而是给一个组。例如一个部门,每人都有自己的用户名,同时能访问到属于这个部门的共享空间。只要把这些用户名同属于一个组,然后对于组进行限定即可。

(1)建立用户组以及用户

groupadd markets        //建立市场部所在组
useradd -g markets mk1
useradd -g markets mk2
useradd -g markets mk3  //建立所属markets组下的用户mk3
useradd Tom
useradd Jane
useradd John

(2)设定配额

使用edquota -g markets命令来编辑用户组markets以及用户Tom、Jane、John的配额文件,设置为跟上面的一样。均为超过70MB警告,最大使用量为100MB。配置好后quotaoff -a关闭磁盘配额功能,再使用quotaon -avug命令开启磁盘的配额功能。

(3)设定Samba用户

smbpasswd -a mk1
smbpasswd -a mk2
smbpasswd -a mk3
smbpasswd -a Tom
smbpasswd -a Jane
smbpasswd -a John

(4)配置smb.conf文件

使用vim /etc/samba/smb.conf命令编辑配置文件,内容如下

[global]
        workgroup= MYGROUP
        security= user
        passdb backend= tdbsam
        load printers= yes
        cups options= raw

[disk]
        path= /disk
        browseable=yes
        writable=yes
        guest ok=no
        valid users= Tom,Jane,John,mk1,mk2,mk3

(5)改变共享目录所属组与权限

使用chown .markets /disk把共享目录的属组设置为markets,然后使用chmod 770 /disk命令给目录的属组加上完全控制的权限。

(6)重启服务service smb restart

测试

经过测试发现mk1,mk2,mk3三个用户共享的相同的空间,大小为100MB。Tom,Jane,John三个用户的空间为100MB。

在这里只是为了说明三个用户的空间为100MB,当然你也可以让1个用户使用100MB的空间,只不过其余两个用户无法再往里面写入数据。

思考在上面我们对markets组进行了配额,那么如果我们同时对属于markets组的用户mk1也进行配额那么会怎么样?

测试一

设定quota

edquota -u mk1
quotaoff -a 
quotaon -avug

在这设为30MB警告,最大可用空间为60MB。

在mk1用户使用60M以后mk2只能使用40MB。

测试二

edquota -u mk1
quotaoff -a 
quotaon -avug

在这设为80MB警告,最大可用空间为110MB。

mk1用户存储文件达到70MB时,系统警告。mk1用户最大的使用空间为100MB。

可见在对于组以及属于这个组的某个用户做了不同限定以后,系统采用最小化原则,让最小的生效。

任务三

配置系统用户的磁盘空间限制

Linux是一个多任务、多用户的操作系统,一般情况下每个用户都有一个自己的家目录,每个用户对自己的家目录都具有读写的权限,如果管理员不对用户的家目录进行磁盘限制,用户就可能会把磁盘塞满,这是任何一个管理员都不希望看到的,下面我们将采用quota来实现对系统用户使用磁盘空间的限制。

在一台Linux服务器上主要有以下几个用户,分别为wang、user1、user2、user3、user4五个用户。下面对其进行配置修改。

文件与权限

cd /home
touch quota.user
touch quota.group
chmod 600 quota.user quota.group

修改/etc/fstab

把文件内容中的/dev/sdb1修改为挂载到/home下并且在后面加上quota.user,quota.group.具体内容如下

/dev/sdb /home ext3 defaults,usrquota,grpquota 1 2 

重启电脑

使用`inin 6’和’reboot‘均可以重启电脑。然后以root身份登录系统

生成配额文件

setenforce 0
quotacheck  -ugcv /dev/sdb1  //生成配额文件
edquota -u wang   //为用户配置

在这里-u表示为用户配置,若想为组配置的话参数改为-g即可。

在这里限制用户的使用空间为5MB,最大不可超过10MB,文件总数为2000个,最多不能超过2500个。切换到wang用户,经过测试发现配额成功。

其余用户配置

可以使用edquota -p wang -u user1 user2 user3 user4复制wang用户的配置至user1 user2 user3 user4用户。经过测试同样可以发现空间限制是和wang用户一样的。

quota -u usrname可以用来查看某个用户当前的磁盘使用情况

repquota -a显示所有用户当前磁盘使用情况。


  转载请注明: 配置磁盘配额与管理RAID卷

 上一篇
vlan与路由 vlan与路由
本文主要介绍单臂路由,静态路由以及其配置和应用。 普通路由特点:需要多个路由器物理接口,成本高灵活性与拓展性较差 配置:路由器上在多个物理接口配置不同VLAN缺省网关IP地址,交换机上的端口设置为access port,分别属于不同的VLA
2019-04-23
下一篇 
Linux配置与应用NFS服务 Linux配置与应用NFS服务
NFS是SUN开发的,用于在不同的UNIX/Linux机器间进行资源共享,其设置相当容易,主要是配置/etc/exports文件,然后运行exportfs -a 命令来共享。现在NFS已经成为了UNIX/Linux上的标配。 从实际经验
2019-04-03
  目录