千家信息网

8.31_Linux高级文件系统管理之磁盘配额、RAID和LVM的使用

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,磁盘配额Quota磁盘配额(Quota)的作用:在Linux系统中,由于是多用户、多任务的环境,所以会有多用户共同使用一个硬盘空间的情况发生,如果其中有少数几个用户大量占掉了硬盘空间的话,那肯定影响其
千家信息网最后更新 2026年11月02日8.31_Linux高级文件系统管理之磁盘配额、RAID和LVM的使用

磁盘配额Quota

磁盘配额(Quota)的作用:

在Linux系统中,由于是多用户、多任务的环境,所以会有多用户共同使用一个硬盘空间的情况发生,如果其中有少数几个用户大量占掉了硬盘空间的话,那肯定影响其他用户的使用权限。因此管理员应该适当限制硬盘的空间给用户,以妥善分配系统资源。


磁盘配额的一般用途

比较常使用的几种用途:

针对www server,例如:每个人的网页空间的容量限制。

针对mail server,例如:每个人的邮件空间限制。

针对file server,例如:每个人最大的可用网络磁盘空间。

限制某一用户组所能使用的最大磁盘配额


配置配额系统:

在内核中执行

以整个文件系统为单位启用(即该目录必须有独立的挂载目录)

对不同组或者用户的策略不同

根据块或者节点进行限制

执行软限制(soft limit)

硬限制(hard limit)


初始化命令:

分区挂载选项:usrquota、grpquota

初始化数据库:quotacheck


为用户设定配额

开启或者取消配额:quotaon、quotaoff

直接编辑配额:edquota username

在shell中直接编辑:

etquota usename 4096 5120 40 50 /foo

定义原始标准用户

edquota -p user1 user2


配额选项意义:

User:用户名

---Block limits

used:已使用的磁盘空间

soft:软上限,默认7天内可以超过这个磁盘上限

hard:硬上限,一定不能超过的磁盘上限

grace:当存储超过soft的上限的时候,这个就是倒计时


---File limits

used:已经存放的文件的数量

soft:文件的软上限,跟上面的soft差不多意思

hard:文件的硬上限,跟上面的soft差不多意思

grace:当文件超过soft的上限的时候,这个就是倒计时


报告配额状态

用户调查:quota USERNAME

配额概述:repquota /MOUNTZ_POINT

其它工具:warnquota


示例:给/home目录创建一个磁盘配额

确认/home目录是否为独立分区,此处不为独立分区,所以需要先把家目录设置成独立分区

此处创建一个/dev/sda6的分区,并且挂载到/mnt/home,然后赋值/home目录的所有文件到/mnt/home目录下面,然后把/dev/sda6目录挂载到/home,之后取消挂载/mnt/home,然后切换到普通用户测试家目录是否正常,如果一切正常就可以进行下一步的操作

启用配额挂载选项

vim /etc/fstab 加上,usrquota,grpquota

创建配额数据库

quotacheck -cug /home,-c表示创建配额数据,-u表示user,-g表示组

如图,centos6创建的时候提示权限受限,这个时候输入setenforce 0可以暂时解除限制,这个限制是SeLinux限制的

启用数据库

quotaon -p /home 查看是否启用数据库

quotaon /home 启用数据库

配置配额项

edquota wan

编辑soft为100000,约为100m,hard为120000约为120m

edquota -p wan mage 让mage的用户复制wan用户的数据

setquota wangcai 80000 120000 0 0 /home

测试磁盘配额是否生效

查看用户的磁盘配额设置 quota wan

查看整个目录的磁盘配额设置repquota /home

用dd工具创建大文件写入数据测试

因为该用户限制的文件大小是,软的100M,硬的120M

当创建80M大小的文件的时候,系统不会有任何提示

当创建大于100M小于120M的文件的时候,系统会提示配额的块超标,但是依然能把文件写入

当创建大于120M的文件的时候,因为硬设置上限是120M,写入文件失败

取消quota


磁盘阵列---RAID


什么是RAID?

RAID:Redundant Arrays of Inexpensive(Independent)Disks

1988年由加利福尼亚大学伯克利分校(University of California-Berkeley)"A Case for Redundant Arrays of Inexpensive Disks"。

多个磁盘合成一个"阵列"来提供更好的性能、冗余,或者两者都提供


常用级别:RAID-0, RAID-1, RAID-5, RAID-10, RAID-50, JBOD


RAID作用

提高IO能力:

磁盘并行读写

提高耐用性;

磁盘冗余来实现

级别:多块磁盘组织在一起的工作方式有所不同


RAID实现的方式:

外接式磁盘阵列:通过扩展卡提供适配能力

内接式RAID:主板集成RAID控制器

安装OS前在BIOS里配置

软件RAID:通过OS实现


RAID级别及其作用

RAID-0:条带卷,strip

读、写性能提升;

可用空间:100%全部磁盘总容量

无容错能力

最少磁盘数:2, 2

工作原理:把数据平分放在各硬盘空间,RAID-0磁盘当其中一个磁盘坏掉的时候,所以的数据都会丢失



RAID-1: 镜像卷,mirror

读性能提升、写性能略有下降;

可用空间:50%磁盘总容量

有冗余能力

最少磁盘数:2, 2N

工作原理:把数据同时存放在多个硬盘冗余备份


RAID-4:

多块数据盘异或运算值,存于专用校验盘

有容错能力

最少磁盘数:3

容量:N-1

工作原理:其中一块硬盘用来做校验,其他盘用户分散存储数据,但是当有磁盘坏的时候,更换新的硬盘上面,需要校验同步数据,压力较大,校验盘压力较大容易坏


RAID-5:

读、写性能提升

可用空间:(N-1)*min(S1,S2,...)

有容错能力:允许最多1块磁盘损坏

最少磁盘数:3, 3+

工作原理:把数据和校验数据平分存放在各硬盘,但是当有磁盘坏的时候,更换新的硬盘上面,需要校验同步数据,压力较大

RAID-6

读、写性能提升

可用空间:(N-2)*min(S1,S2,...)

有容错能力:允许最多2块磁盘损坏

最少磁盘数:4, 4+

工作原理:把两个校验的数据和数据平分存放在其他硬盘

RAID-10

读、写性能提升

可用空间:50%

有容错能力:每组镜像最多只能坏一块

最少磁盘数:4, 4+

工作原理:先做RAID1,再做RAID0

RAID-01

读、写性能提升

可用空间:50%

有容错能力:每组镜像最多只能坏一块

最少磁盘数:4, 4+


RAID-50

读、写性能提升

有容错能力,每组镜像最多只能坏一块

可用空间:N-2

最少磁盘数:6, 6+

工作原理:先做RAID5,再做RAID0



RAID7:可以理解为一个独立存储计算机,自身带有操作系统和管理工具,可以独立运行,理论上性能最高的RAID模式


JBOD:Just a Bunch Of Disks

功能:将多块磁盘的空间合并一个大的连续空间使用

可用空间:sum(S1,S2,...)


软RAID

mdadm:为软RAID提供管理界面

为空余磁盘添加冗余

结合内核中的md(multi devices)

RAID设备可命名为/dev/md0、/dev/md1、/dev/md2、/dev/md3等等


软件RAID的实现

mdadm:模式化的工具

命令的语法格式:mdadm[mode] [options]

支持的RAID级别:LINEAR, RAID0, RAID1, RAID4, RAID5, RAID6, RAID10

模式:

创建:-C

装配: -A

监控: -F

管理:-f, -r, -a

: /dev/md#

: 任意块设备


madam常用选项

-C: 创建模式

-n #: 使用#个块设备来创建此RAID

-l #:指明要创建的RAID的级别

-a {yes|no}:自动创建目标RAID设备的设备文件

-c CHUNK_SIZE: 指明块大小

-x #: 指明空闲盘的个数

-D:显示raid的详细信息;

mdadm -D /dev/md#

管理模式:

-f: 标记指定磁盘为损坏

-a: 添加磁盘

-r: 移除磁盘

观察md的状态:

cat /proc/mdstat


软RAID配置示例

使用mdadm创建并定义RAID设备

#mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1

用文件系统对每个RAID设备进行格式化

#mke2fs -j /dev/md0

使用mdadm检查RAID设备的状况

#mdadm --detail|D /dev/md0

增加新的成员

#mdadm -G /dev/md0 -n4 -a /dev/sdf1


软RAID测试和修复

模拟磁盘故障

#mdadm /dev/md0 -f /dev/sda1

移除磁盘

#mdadm /dev/md0 -r /dev/sda1

从软件RAID磁盘修复磁盘故障

替换出故障的磁盘然后开机

在备用驱动器上重建分区

mdadm /dev/md0 -a /dev/sda1

mdadm、cat /proc/mdstat及系统日志信息


示例1:创建一个可用空间为1G的RAID1设备,文件系统为ext4,有一个空闲盘,开机可自动挂载至/backup目录


1.首先创建3个1G的磁盘,System ID为fd,如下图所示

2.创建RAID1,-l 1表示raid 1,-n 2b表示使用两个磁盘,-x 1表示其中一个是备用的。

3.格式化成ext4格式 mkfs.ext4 /dev/md0

4.写入/etc/fstab

5.写入/etc目录下配置raid的信息,不然下次登陆的时候raid就没了


示例2:创建由三块硬盘组成的可用空间为2G的RAID5设备,要求其chunk大小为256k,文件系统为ext4,开机可自动挂载至/mydata目录

  1. 创建3个2G大小的磁盘,system ID 为fd

2.创建raid5,-a yes自动创建raid设备文件,-l 5表示raid 5 ,-n 3表示使用3个磁盘,-c 256表示chunk块大小为256k

3.格式化/dev/md1

4.写入/etc/fstab配置挂载目录

5.写入/etc/mdadm.conf文件


逻辑卷管理器(LVM)

什么是LVM?

LVM(Logical Volume Manager,逻辑卷管理)的重点在于可以弹性的调整filesystem的容量!而并非在于数据的存储效率及安全上面。需要文件的读写效能或者是数据的可靠性是RAID所考虑的问题。LVM可以整合多个尸体partition在一起,让这些partition看起来就像是一个磁盘一样。而且,还可以在未来新增或移除其他的实体partition到这个LVM管理的磁盘当中,如此一来,整个磁盘空间的使用上,具有相当的弹性。

LVM允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小

LVM允许在多个物理设备间重新组织文件系统

将设备指定为物理卷

用一个或者多个物理卷来创建一个卷组

物理卷是用固定大小的物理区域(Physical Extent,PE)来定义的

在物理卷上创建的逻辑卷是由物理区域(PE)组成

可以在逻辑卷上创建文件系统


LVM介绍

LVM: Logical Volume Manager,Version: 2

dm: device mapper:将一个或多个底层块设备组织成一个逻辑设备的模块

设备名:/dev/dm-#

软链接:

/dev/mapper/VG_NAME-LV_NAME

/dev/mapper/vol0-root

/dev/VG_NAME/LV_NAME

/dev/vol0/root

LVM可以弹性的更改LVM的容量

通过交换PE来进行资料的转换,将原来LV内的PE转移到其他的设备中以降低LV的容量,或将其他设备中的PE加到LV中以加大容量


删除逻辑卷

注意:删除逻辑卷必须先删除LV,再删除VG,最后删除PV


pv管理工具


显示pv信息

pvs:简要pv信息显示

pvdisplay


创建pv

pvcreate /dev/DEVICE


复制老卷组的内容到其他卷组

pvmove PhysicalDevicePath


删除pv

pvremove


vg管理工具


显示卷组

vgs

vgdisplay


创建卷组

vgcreate [-s #[kKmMgGtTpPeE]] VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]

-s 指定块大小,默认是4Mib


管理卷组

扩容 vgextend VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]

减容 vgreduce VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]


删除卷组

先做vgmove,再做pvremove


lv管理工具


显示逻辑卷

lvs

Lvdisplay


创建逻辑卷

lvcreate -L #[mMgGtT] -n NAME VolumeGroup


删除逻辑卷

lvremove /dev/VG_NAME/LV_NAME


重设文件系统大小

fsadm [options] resize device [new_size[BKMGTEP]]

resize2fs [-f] [-F] [-M] [-P] [-p] device [new_size]


lv扩展和缩减逻辑卷

扩展逻辑卷:

lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME

此处-L可以指定容量,或者使用+1G这种表示方式来扩容

resize2fs /dev/VG_NAME/LV_NAME

扩容后需要同步磁盘,不然df挂载显示里面还是扩容前的容量


缩减逻辑卷:(必须按照以下步骤先后来操作,不然会丢失数据)

1.umount /dev/VG_NAME/LV_NAME

2.e2fsck -f /dev/VG_NAME/LV_NAME

3.resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT]

4.lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME


创建逻辑卷实例

创建物理卷

pvcreate /dev/sda3

为卷组分配物理卷

vgcreate vg0 /dev/sda3

从卷组创建逻辑卷

lvcreate -L 256M -n data vg0

mke2fs -t ext4 /dev/vg0/data

mount /dev/vg0/data /mnt/data


逻辑卷管理器快照


快照是特殊的逻辑卷,它是在生成快照时存在的逻辑卷的准确拷贝

对于需要备份或者复制的现有数据集临时拷贝以及其它操作来说,快照是最合适的选择。

快照只有在它们和原来的逻辑卷不同时才会消耗空间。

在生成快照时会分配给它一定的空间,但只有在原来的逻辑卷或者快照有所改变才会使用这些空间

当原来的逻辑卷中有所改变时,会将旧的数据复制到快照中。

快照中只含有原来的逻辑卷中更改的数据或者自生成快照后的快照中更改的数据

建立快照的卷大小只需要原始逻辑卷的15%~20%就够了。也可以使用lvextend放大快照。


快照就是将当时的系统信息记录下来,就好像照相一般,若将来有任何数据改动了,则原始数据会被移动到快照区,没有改动的区域则由快照区和文件系统共享。

由于快照区与原本的LV共用很多PE的区块,因此快照去与被快照的LV必须要要在同一个VG上!系统恢复的时候的文件数量不能高于快照区的实际容量。


使用LVM快照

为现有逻辑卷创建快照

lvcreate -l 64 -s -n snap-data -p r /dev/vg0/data

挂载快照

mkdir -p /mnt/snap

mount -o ro /dev/vg0/snap-data /mnt/snap

删除快照

umount /mnt/databackup

lvremove /dev/vg0/databackup


LVM实战示例

示例1:创建一个至少有两个PV组成的大小为20G的名为testvg的VG;要求PE大小为16MB, 而后在卷组中创建大小为5G的逻辑卷testlv;挂载至/users目录

1.先找两个空的磁盘

2.创建pv盘

3.创建pe大小为16M,名为testvg的vg

4.从testvg空间里面创建名字为testlv,大小为5G的lv盘,

5.格式化新建的lv盘

6.挂载


示例2:新建用户archlinux,要求其家目录为/users/archlinux,而后su切换至archlinux用户,复制/etc/pam.d目录至自己的家目录


示例3:扩展testlv至7G,要求archlinux用户的文件不能丢失fr

-L 可以直接指定扩展至的容量,或者使用 +2G 这样的方式来执行

-l +100%FREE DEVICE 可以直接扩容所有的容量

-r 等于 resize2fs,这一步必须执行,不然硬盘挂载显示跟扩容显示会不一致。


示例4:收缩testlv至3G,要求archlinux用户的文件不能丢失


示例5:对testlv创建快照,并尝试基于快照备份数据,验正快照的功能

确认现有的lv卷


创建快照,并且-p r的意思是这个快照只读,然后把快照挂载到/mnt/testlv-snapsht目录下面

可以发现这个目录下面有文件了,这些文件是跟/users目录下面是一样的

查看一下快照,可以发现有两个快照

此时可以发现,testlv有一个test-snapshot的快照lv

此时查看快照lv,可以看见此快照是为testlv的做快照。虽然这个磁盘上面显示有东西,但是大家仔细看的话,会发现下面Allocated to snapshot是0,说明快照里面其实没有文件,文件夹里面的文件只是暂时映射/users里面的文件,好让用户能看见当前备份的文件。

此时查看两个目录,并且把testlv挂载的目录/users里面的所有文件删除掉。但是我们发现快照目录的文件依然存在!这就相当于做了备份,如果需要的话,我们只需要从快照的目录里面把备份文件复制出来即可。

此时查看快照的lv,会发现已经占用了一点空间,说明快照已经保存了我们已经修改过的文件,所以就占用掉了快照lv卷的一部分空间。此时,说明快照的实验已经成功!


示例6:删除容量小的pv,并且保留数据

创建3个pv

用/dev/sdd1创建一个testvg

创建一个lv

挂载lv到/users目录下面,并且复制文件到该目录下面

因为原有的1g的vg太小,现在再加一个1g的vg,一共2g的vg

lv卷扩容到最大的2g

由于2g的空间用完了,这时候,我们想着淘汰这两个 1g的磁盘,此时加入一个4g的磁盘/dev/sdb1

为了保留vgtest里面的数据,先把旧的pv卷里面/dev/sdc1的数据移动到其他盘

移动完数据以后,删除/dev/sdc1

删除/dev/sdc1以后,可以看到只剩下两个pv卷,vg卷也对应减少到4g

然后再把/dev/sdd1的数据移动到其他空闲的pv,然后再删除该pv

把其他盘删除以后,我们看看lv卷里面,发现数据还在,实验成功


磁盘 快照 文件 数据 空间 目录 逻辑 用户 配额 系统 设备 大小 容量 管理 时候 硬盘 示例 限制 性能 能力 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广东万易互联网科技有限公司惠州分公司 河南云网互联网络科技有限公司 厦门中拓互联网络科技有限公司 上海互联网科技有限公司 北京互联网科技有限公司 喔噻互联网科技 智网互联网科技 互联网科技论文 宜安科技 互联网金融 上游互联网科技 华中科技有哪些互联网大佬 哈尔滨新华互联网科技学院 互联网科技创新服务 花神(南京)互联网科技有限公司 消费医药和互联网科技 互联网科技和信息 互联网数据科技专业 恒生互联网科技业指数调整周期 有人说阿里系是互联网科技企业 东风日产互联网科技公司叫什么 为想互联网科技怎么样 电子科技大学互联网 互联网科技生活的内容 科技大学互联网专业好不好 本届互联网博览会上的黑科技 浙南科技城互联网大厦招聘 长沙渺峰互联网科技有限公司 互联网科技的前景 北京品多多互联网科技有限公司 互联网科技创业有什么好项目
0