Linux的磁盘配额(Quota)与进阶文件系统管理(学习笔记)

        首先,我们都知道Linux是多用户多任务的操作系统。所以可能出现多人共用一块磁盘的情况,如果其中有几个少数使用者占用了大量的硬盘空间的话,那势必会压缩其他使用者的使用空间。因此管理员因该适当的限制硬盘的容量给使用者,以妥善分配系统资源。

一、如何进行磁盘配额(Quota)

  • Quota 的一般用途

quota 比较常使用的几个情况是:

  • 针对 WWW server ,例如:每个人的网页空间的容量限制!
  • 针对 mail server,例如:每个人的邮件空间限制。
  • 针对 file server,例如:每个人最大的可用网络硬盘空间 (教学环境中最常见)

新版的 CentOS 使用的 xfs 不但无须额外的 quota 纪录档,也能够针对文件 系统内的不同目录进行配置。

  • Quota 的规范设置项目:

quota 这玩意儿针对 XFS filesystem 的限制项目主要分为下面几个部分:

  • 分别针对使用者、群组或个别目录 (user, group & project):

XFS 文件系统的 quota 限制中,主要是针对群组、个人或单独的目录进行磁盘使用率的限 制!

  • 容量限制或文件数量限制 (block 或 inode):

说到文件系统主要规划为存放属性的 inode 与实际文件数据 的 block 区块,Quota 既然是管理文件系统,所以当然也可以管理 inode 或 block ! 这两 个管理的功能为:

  • 限制 inode 用量:可以管理使用者可以创建的“文件数量”;
  • 限制 block 用量:管理使用者磁盘容量的限制,较常见为这种方式。
  • 柔性劝导与硬性规定 (soft/hard):

既然是规范,当然就有限制值。不管是 inode/block ,限制值都有两个,分别是 soft 与 hard。 通常 hard 限制值要比 soft 还要高。举例来说,若限制项目为 block ,可以限制 hard 为 500MBytes 而 soft 为 400MBytes。这两个限值的意义为:

  • hard:表示使用者的用量绝对不会超过这个限制值,以上面的设置为例, 使用者所能使 用的磁盘容量绝对不会超过 500MBytes ,若超过这个值则系统会锁住该用户的磁盘使用 权;
  • soft:表示使用者在低于 soft 限值时 (此例中为 400MBytes),可以正常使用磁盘,但 若超过 soft 且低于 hard 的限值 (介于 400~500MBytes 之间时),每次使用者登陆系统 时,系统会主动发出磁盘即将爆满的警告讯息, 且会给予一个宽限时间 (grace time)。不过,若使用者在宽限时间倒数期间就将容量再次降低于 soft 限值之下, 则宽 限时间会停止。
  • 会倒数计时的宽限时间 (grace time):

1、限制用户和群组磁盘空间

修改文件系统:

语法格式:xfs_quota -x -c "指令" [挂载点]

选项与参数:

-x :专家模式,后续才能够加入 -c 的指令参数!

-c :后面加的就是指令,这个小节我们先来谈谈数据回报的指令

指令:

        print :单纯的列出目前主机内的文件系统参数等数据

        df :与原本的 df 一样的功能,可以加上 -b (block) -i (inode) -h (加上单位) 等

        report:列出目前的 quota 项目,有 -ugr (user/group/project) 及 -bi 等数据

        state :说明目前支持 quota 的文件系统的信息,有没有起动相关项目等

语法格式:xfs_quota -x -c "limit [-ug] b[soft|hard]=N i[soft|hard]=N name"

语法格式:xfs_quota -x -c "timer [-ug] [-bir] Ndays"

选项与参数:

limit :实际限制的项目,可以针对 user/group 来限制,限制的项目有

                bsoft/bhard : block 的 soft/hard 限制值,可以加单位   

                isoft/ihard : inode 的 soft/hard 限制值

                name : 就是用户/群组的名称啊!

timer :用来设置 grace time 的项目喔,也是可以针对 user/group 以及 block/inode 设置

/dev/mapper/centos-home on /home type xfs (rw,relatime,seclabel,attr2,inode64,usrquota,grpquota)

eg1:设置好用户们的 block 限制值

eg2:设置好 myquotagrp群组 的 block 限制值

eg3: 设置一下 grace time 变成 14 天

2、限制目录磁盘空间

修改配置文件

规范目录、专案名称(project)与专案 ID

        指定专案识别码与目录的对应在 /etc/projects

         规范专案名称与识别码的对应在 /etc/projid

         初始化专案名称

        实际设置规范与测试: 要将 /home/myquota 指定为 500M 的容量限制,那假设到 450M 为 soft 的限制好了

 3、XFS quota 的管理与额外的指令

  • disable:暂时取消 quota 的限制,但其实系统还是在计算 quota 中,只是没有管制而已!应该算最有用的功能!
  • enable:就是回复到正常管制的状态中,与 disable 可以互相取消、启用!
  • off:完全关闭 quota 的限制,使用了这个状态后,你只有卸载再重新挂载才能够再次的启动 quota !也就是说, 用了 off 状态后,你无法使用 enable 再次复原 quota 的管制!注意不要乱用这个状态!一般建议用 disable 即可,除非你需要执行 remove 的动作!
  • remove:必须要在 off 的状态下才能够执行的指令~这个 remove 可以“移除”quota 的限制设置,例如要取消 project 的设置, 无须重新设置为 0 。只要 remove -p 就可以 了!

eg1:暂时关闭 XFS 文件系统的 quota 限制功能

 二、软件磁盘列阵(RAID)

RAID-0 (等量模式, stripe):性能最佳

RAID-1 (映射模式, mirror):完整备份

RAID 1+0,RAID 0+1

RAID 5:性能与数据备份的均衡考虑

Spare Disk:预备磁盘的功能:

1、软件磁盘列阵的设置

语法格式:mdadm --detail /dev/md0

                  mdadm --create /dev/md[0-9] --auto=yes --level=[015] --chunk=NK  --raid-devices=N --spare-devices=N /dev/sdx /dev/hdx...

选项与参数:

--create :为创建 RAID 的选项;

--auto=yes :决定创建后面接的软件磁盘阵列设备,亦即 /dev/md0, /dev/md1...

--chunk=Nk :决定这个设备的 chunk 大小,也可以当成 stripe 大小,一般是 64K 或 512K。

--raid-devices=N :使用几个磁盘 (partition) 作为磁盘阵列的设备

--spare-devices=N :使用几个磁盘作为备用 (spare) 设备

--level=[015] :设置这组磁盘阵列的等级。支持很多,不过建议只要用 0, 1, 5 即可

--detail :后面所接的那个磁盘阵列设备的详细信息

三、逻辑卷管理

1、什么是 LVM: PV, PE, VG, LV 的意义

LVM 的全名是 Logical Volume Manager,中文可以翻译作逻辑卷轴管理员。LVM 的作法是将几个实体的 partitions (或 disk) 通过软件组合成为一块看起来是独立的大磁盘 (VG) ,然后将这块大 磁盘再经过分区成为可使用分区 (LV), 最终就能够挂载使用了。

  • Physical Volume, PV, 实体卷轴

实际的 partition (或 Disk) 需要调整系统识别码 (system ID) 成为 8e (LVM 的识别 码),然后再经过 pvcreate 的指令将他转成 LVM 最底层的实体卷轴 (PV),,之后才能够将 这些 PV 加以利用。

  • Volume Group, VG, 卷轴群组

所谓的 LVM 大磁盘就是将许多 PV 整合成这个 VG 的东西就是啦!所以 VG 就是 LVM 组合 起来的大磁盘!

  • Physical Extent, PE, 实体范围区块

LVM 默认使用 4MB 的 PE 区块,他是整个 LVM 最小的储存区块,也就是说,其实我们的文件数据都是借由写入 PE 来处理的。

  • Logical Volume, LV, 逻辑卷轴

最终的 VG 还会被切成 LV,这个 LV 就是最后可以被格式化使用的类似分区。LV 不可以随意指定大小,既然 PE 是整个 LVM 的最小储存单位,那么 LV 的大小就与在此 LV 内的 PE 总数有关。

2、LVM的实际操作

1. PV 阶段

要创建 PV 其实很简单,只要直接使用 pvcreate 即可

  • pvcreate :将实体 partition 创建成为 PV ;
  • pvscan :搜寻目前系统里面任何具有 PV 的磁盘;
  • pvdisplay :显示出目前系统上面的 PV 状态;
  • pvremove :将 PV 属性移除,让该 partition 不具有 PV 属性。

 2. VG 阶段
  • vgcreate :就是主要创建 VG 的指令!他的参数比较多。
  • vgscan :搜寻系统上面是否有 VG 存在?
  • vgdisplay :显示目前系统上面的 VG 状态;
  • vgextend :在 VG 内增加额外的 PV ;
  • vgreduce :在 VG 内移除 PV;
  • vgchange :设置 VG 是否启动 (active);
  • vgremove :删除一个 VG !

语法格式:vgcreate [-s N[mgt]] VG名称 PV名称

选项与参数:

-s :后面接 PE 的大小 (size) ,单位可以是 m, g, t (大小写均可)

 3. LV 阶段
  • lvcreate :创建 LV !
  • lvscan :查询系统上面的 LV ;
  • lvdisplay :显示系统上面的 LV 状态!
  • lvextend :在 LV 里面增加容量!
  • lvreduce :在 LV 里面减少容量;
  • lvremove :删除一个 LV !
  • lvresize :对 LV 进行容量大小的调整!

 语法格式:lvcreate [-L N[mgt]] [-n LV名称] VG名称

                   lvcreate [-l N] [-n LV名称] VG名称

选项与参数:

-L :后面接容量,容量的单位可以是 M,G,T 等,要注意的是,最小单位为 PE, 因此这个数量必须要是 PE 的倍数,若不相符,系统会自行计算最相近的容量。

-l :后面可以接 PE 的“个数”,而不是数量。若要这么做,得要自行计算 PE 数。

-n :后面接的就是 LV 的名称!

 4.文件系统阶段

 通过这样的功能,我们现在已经创建好一个 LV 了!你可以自由的应用 /srv/lvm 内的所有资源。

3、放大 LV 容量

放大文件系统时, 需要下面这些流程的:

  1. VG 阶段是否有剩余的容量,没有就加硬盘。
  2. LV 阶段产生更多的可用容量:如果 VG 的剩余容量足够了, 此时就可以利用 lvresize 这 个指令来将剩余容量加入到所需要增加的 LV 设备内。
  3. 文件系统阶段的放大。

文件系统的容量的更新可以线上直接处理,并不需要特别给他 umount,然后使用 xfs_growfs 来处理一下。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值