您的位置:首页 > 运维架构 > Linux

Linux中LVM与磁盘配额(内含详细操作)(六)

2019-08-20 19:51 1746 查看

知识结构:

  • LVM概述

  • LVM的管理命令

  • LVM的应用实例

  • 磁盘配额概述

  • 磁盘配额管理




(一)LVM概述

逻辑卷管理(Logical Volume Manager)

  • 动态调整磁盘容量,从而提高磁盘管理的灵活性

  • /boot分区用于存放引导文件,不能基于LVM创建

  • 图形界面管理工具——sysytem-config-lvm

LVM机制的基本概念

  • PV(物理卷)

  • VG(卷组)

  • LV(逻辑卷)

物理卷是 LVM 机制的基本存储设备,通常对应为一个普通分区或整个硬盘。创建物理卷时,会在分区或硬盘的头部创建一个保留区块,用于记录 LVM 的属性,并把存储空间分割成默认大小为 4MB 的基本单元(Physical Extent,PE),从而构成物理卷,物理卷一般直接使用设备文件名称,如/dev/sdb1、/dev/sdb2、/dev/sdd 等。对用于转换成物理卷的普通分区,建议先使用 fdisk 工具将分区类型的 ID 标记号改为“8e”。若是整块硬盘,可以将所有磁盘空间划分为一个主分区后再做相应调整。

卷组由一个或多个物理卷组成一个整体,即称为卷组,在卷组中可以动态地添加或移除物理卷,许多个物理卷可以分别组成不同的卷组,卷组的名称由用户自行定义。

逻辑卷建立在卷组之上,与物理卷没有直接关系。对于逻辑卷来说,每一个卷组就是一 个整体,从这个整体中“切出”一小块空间,作为用户创建文件系统的基础,这一小块空间 就称为逻辑卷使用 mkfs 等工具在逻辑卷上创建文件系统以后,就可以挂 载到 Linux 操作系统中的目录下使用。

建立 LVM 分区管理机制的过程如下: 首先,将普通分区或整个硬盘创建为物理卷;然后,将物理上比较分散的各物理卷的存储 空间组成一个逻辑整体,即卷组;最后,基于卷组这个整体,分割出不同的数据存储空 间,形成逻辑卷。逻辑卷才是最终用户可以格式化并挂载使用的存储单位。

(二)LVM的管理命令

主要命令

功能物理卷管理卷组管理逻辑卷管理
Scan扫描
pvscanvgscanlvscan
Create建立pvcreatevgcreatelvcreate
Display显示pvdisplayvgdisplaylvdisplay
Remove删除pvremovevgremovelvremove
Extend扩展——vgextendlvextend
Reduce减少——vgreducelvreduce
pvcreate 设备名1 [设备名2 .. ..]
vgcreate 卷组名 物理卷名1 物理卷名2
lvcreate -L 容量大小 -n 逻辑卷名 卷组名
lvextend -L +大小 /dev/卷组名/逻辑卷名

(三)LVM的应用实例

案例环境

公司准备在Internet中搭建邮件服务器(Centos7.3系统平台),面向全国各地的员工及部分VIP客户提供电子邮箱空间

需求描述

由于用户数量众多,邮件存储需要大量的空间,考虑到动态扩容的需要,计划增加两块SCSI硬盘并构建LVM逻辑卷(挂载到“/mailbox”目录下)专门用于存放邮件数据

实验步骤

(1)关闭服务器主机,打开机箱,正确挂接两块 SCSI 新硬盘。 

(2)开启服务器主机,并执行“fdisk -l”命令进行检查,确认已识别新增的硬盘(sdb、 sdc)。 

(3)在新磁盘中进行分区,将每块硬盘的所有空间划分为一个独立的主分区,并将分区 类型更改为“8e”。完成分区后使用“fdisk -l”命令查看。

[root@localhost ~]#fdisk -l /dev/sdb /dev/sdc

(4)将/dev/sdb1 和/dev/sdc1 分区转换为物理卷

[root@localhost ~]# pvcreate /dev/sdb1 /dev/sdc1

(5)创建卷组mail_store

[root@localhost ~]# vgcreate mail_store /dev/sdb1 /dev/sdc1

(6)创建逻辑卷-在 mail_store 卷组中创建一个名为 mbox 的逻辑卷,容量设置为 30GB

[root@localhost ~]# lvcreate -L +30G -n mbox mail_store

(7)格式化为xfs文件系统,并挂载到/mailbox目录

[root@localhost ~]# mkfs.xfs /dev/mail_store/mbox 格式化
...
[root@localhost ~]# mkdir /mailbox   创建挂载点目录
[root@localhost ~]# mount /dev/mail_store/mbox /mailbox/  挂载
[root@localhost ~]# df -hT /mailbox  查看磁盘信息

(四)磁盘配额概述

实现磁盘限额的条件

  • 需要Linux内核支持

  • 安装xfsprogs与quota软件包

Linux磁盘配额的特点

  • 作用范围:针对指定的文件系统(分区)

  • 限制对象:用户账号,组账号

  • 限制类型:磁盘容量,文件数量

磁盘容量:限制用户能够使用的磁盘数据块(Block)大小,也就是限制磁盘空间大小,默认单位为 KB。

文件数量:限制用户能够拥有的文件个数。在 Linux 操作系统中,每一个文件都有一个对应的数字标记,称为 i 结点(Inode)编号,这个编号在同一个文件系统内是唯一的,因此 xfs_quota 通过限制 i 结点的数量来实现对文件数量的限制。

  • 限制方法:软限制,硬限制

软限制:指定一个软性的配额数值(如 480MB 磁盘空间、180 个文件),在固定的宽限期(默认为七天)内允许暂时超过这个限制,但系统会给出警告信息。

硬限制:指定一个硬性的配额数值(如 500MB 磁盘空间、200 个文件),是绝对禁止用户超过的限制值,当达到硬限制值时,系统也会给出警告并禁止继续写入数据。硬限制的配额值应大于相应的软限制值,否则软限制将失效。

(五)磁盘配额管理

把之前创建的 mbox 逻辑卷/dev/mail_store/mbox 挂载到/mailbox 目录下,然后 在该文件系统中进行配置,以实现磁盘配额功能。

1,以支持配额功能的方式挂载文件系统

[root@localhost ~]# umount /mailbox/
[root@localhost ~]# mount -o usrquota,grpquota /dev/mail_store/mbox /mailbox/
[root@localhost ~]# mount | grep "mail_store"
/dev/mapper/mail_store-mbox on /mailbox type xfs (rw,relatime,seclabel,attr2,inode64,usrquota,grpquota)
[root@localhost ~]# chmod 777 /mailbox/

若需要在每次开机后自动以支持配额功能的方式挂载该分区, 可以将 “usrquota,grpquota”挂载参数写入“/etc/fstab”文件中。

2,编辑用户和组账号的配额设置

使用xfs_quota命令编辑配额设置

xfs_quota -x -c 'limit -u bsoft=N bhard=N isoft=N ihard=N 用户名' 挂载点

结合“limit”命令可以设置磁盘容量,以及文件数的软、 硬限制数值。

常用选项

  • -u:指定用户配额设置

  • -g:指定用户组配额设置

  • -x:启动专家模式

  • -c:直接调用管理命令

限制字段

  • bsoft:设置磁盘容量的软限制数值

  • bhard:设置磁盘容量的硬限制数值

  • isoft:设置磁盘文件数的软限制数值

  • ihard:设置磁盘文件的硬限制数值

3,验证磁盘配额功能

  • 切换到设置配额的分区(挂载分区)

  • 创建指定数量的文件:使用touch命令,或cp命令

  • 创建指定容量的文件:使用dd命令,或cp命令

实验:设置zhangsan用户软限制10M硬限制容量30M,文件数量软限制4硬限制6

1)测试超过文件数量和文件容量是是否可以被写入

[root@localhost ~]# xfs_quota -x -c 'limit -u bsoft=10M bhard=30M isoft=4 ihard=6 zhangsan' /mailbox/  设置配额
[root@localhost ~]# su - zhangsan     切换到zhangsan用户
[zhangsan@localhost ~]$ cd /mailbox/   切换到/mailbox目录
[zhangsan@localhost mailbox]$ touch demo{1..5}.txt  创建五个文件
[zhangsan@localhost mailbox]$ ls
demo1.txt  demo2.txt  demo3.txt  demo4.txt  demo5.txt
[zhangsan@localhost mailbox]$ touch demo6.txt   创建第六个文件
[zhangsan@localhost mailbox]$ touch demo7.txt   创建第七个文件失败
touch: 无法创建"demo7.txt": 超出磁盘限额

[zhangsan@localhost mailbox]$ dd if=/dev/zero of=/mailbox/demo1.txt bs=1M count=20  从/dev/zero复制20M数据到demo1.txt中
记录了20+0 的读入
记录了20+0 的写出
20971520字节(21 MB)已复制,0.0824487 秒,254 MB/秒
[zhangsan@localhost mailbox]$ ll
总用量 20480
-rw-rw-r--. 1 zhangsan zhangsan 20971520 8月  20 18:54 demo1.txt
[zhangsan@localhost mailbox]$ dd if=/dev/zero of=/mailbox/demo2.txt bs=1M count=20  在复制20M到demo2.txt中超出限额所以只复制10M
dd: 写入"/mailbox/demo2.txt" 出错: 超出磁盘限额
记录了11+0 的读入
记录了10+0 的写出
10485760字节(10 MB)已复制,0.059165 秒,177 MB/秒
[zhangsan@localhost mailbox]$ touch demo3.txt   再创建新的文件也显示超额
touch: 无法创建"demo3.txt": 超出磁盘限额

结论:超额设置只要一条满足了超额另一个条件就无法执行


2)设置用户的磁盘配额后可使用“xfs_quota -c 'quota -uv zhangsan' /mailbox/“命 令查看用户 zhangsan 的磁盘容量限制。结果输出后”Quota”字段对应的是软限制,“Limit” 字段对应的是硬限制

[root@localhost ~]# xfs_quota -x -c 'quota -uv zhangsan' /mailbox/

3)结合”-i“选项可以查看 zhangsan 用户的磁盘文件数限制

[root@localhost ~]# xfs_quota -x -c 'quota -i -uv zhangsan' /mailbox/


4,查看配额使用情况

xfs_quota -x -c 'report 选项' 挂载点

report常用选项

  • -a:可以查看所有可用分区的配额使用情况

  • -i:详细信息

  • -b:文件输出报告

  • -u:指定账号

  • -g:指定组

[zhangsan@localhost mailbox]$ su - root  切换回root
密码:
上一次登录:二 8月 20 18:23:57 CST 2019从 192.168.109.10pts/1 上
[root@localhost ~]# xfs_quota -x -c 'report -abi'  查看配额的使用情况

总结:

如何使用逻辑卷创建逻辑卷,限制磁盘配额和管理也是Linux中不可或缺的技能

谢谢阅读!!!

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: