知识结构:
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扫描 |
pvscan | vgscan | lvscan |
Create建立 | pvcreate | vgcreate | lvcreate |
Display显示 | pvdisplay | vgdisplay | lvdisplay |
Remove删除 | pvremove | vgremove | lvremove |
Extend扩展 | —— | vgextend | lvextend |
Reduce减少 | —— | vgreduce | lvreduce |
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中不可或缺的技能
谢谢阅读!!!