LVM与磁盘配额

  • LVM概述
  • logical volume manager 逻辑卷管理
  • LVM机制的基本概念
  • PV(物理卷)
  • VG(卷组)
  • LV(逻辑卷)
  • LVM管理命令
  • 主要命令
  • LVM应用实例
  • 创建LVM流程:
  • 删除LVM流程:
  • 磁盘配额概述
  • 实现磁盘限额的条件
  • linux磁盘限额的特点
  • 1.磁盘配额的作用范围
  • 2.磁盘配额的限制对象
  • 3.磁盘配额的限制类型
  • 4.磁盘配额的限制方法
  • 磁盘配额流程
  • 设置磁盘配额
  • 启用磁盘配额支持
  • 启用文件系统的配额支持
  • 磁盘配额管理
  • 编辑用户和组账号的配额设置
  • 使用xfs_quota命令编辑配额设置
  • 常用选项
  • 限制字段
  • 验证磁盘配额功能
  • 查看配额使用情况
  • 总结


LVM属于动态分区可以运行环境中进行分区,就相当于边运行边分区

磁盘配额对于用户去限制磁盘大小,相当于百度网盘,空间越多越花钱

LVM概述

logical volume manager 逻辑卷管理

  • 能够再爆出现有数据不变的情况下动态调整磁盘容量,从而提高磁盘管理的灵活性
  • /boot分区用于存放引导文件,不能基于LVM创建

LVM机制的基本概念

PV(物理卷)

  • 物理卷是LVM机制的基本存储设备,通常对应为一个普通分区或整个硬盘。创建物理卷时,会在分区或硬盘的头部创建一个保留区块,用于记录Ivw的属性,并把存储空间分割成默认大小为4MB的基本单元(Physical Extent,PE) ,从而构成物理卷。
  • 每一个物理卷被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。
  • 由于vg是多个PE(块)组成的,而且每个vg块的PE最大数量是65534。默认每个PE的大小是4m
  • 也就是说默认的每个vg最大也就是4m乘65534=256G,因此PE块的大小决定了最终vg的大小。
  • PE的值可以是4,8,16,32,64(M)。PE越小硬盘利于率越高,但是每个VG块的最大数量是65534,所以PE大小决定了VG卷组的大小。

VG(卷组)

  • 由一个或多个物理卷组成一个整体,即称为卷组,在卷组中可以动态地添加或移除物理卷

LV(逻辑卷)

  • 逻辑卷建立在卷组之上,与物理卷没有直接关系。对于逻辑卷来说,每一个卷组就是一个整体,从这个整体中"切出"一小块空间,作为用户创建文件系统的基础,这一小块空间就称为逻辑卷。使用mkfs等工具在逻辑卷上创建文件系统

LVM管理命令

功能

PV物理卷管理

VG卷组管理

LV逻辑卷股那里

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/卷组名/逻辑卷名

推荐步骤

1.关闭主机,添加两块新硬盘,重启主机或

echo “- - -”  > /sys/class/scsi_host/host0/scan 扫描

2.先使用fdisk工具将磁盘设备/dev/sdb、/dev/sdc划分主分区sdb1、sdc1,并且把分区类型的ID标记号改为“8e”

fdisk /dev/sdb
fdisk /dev/sdc

3.创建物理卷

pvcreate /dev/sdbl /dev/sdc1

4.创建卷组,卷组名为vgname1

vgcreate vgname1 /dev/sdb1 /dev/sdc1

5.创建逻辑卷,逻辑卷名为lvname1,容量为20GB,生产的文件路径为/dev/vgname1/lvname1

lvcreate -L 20G -n lvname1 vgname1

6.对逻辑卷进行格式化,创建XFS文件系统,并且挂载到/opt目录下

mkfs -t xfs /dev/vgname1/lvname1
mount /dev/vgname1/lvname1 /opt目录下
df -Th

7.再扩容

vgextend vgname1 /dev/sd2
lvextend -L +10G /dev/vgname1/lvname1
xfs_growfs /dev/vgname1/lvname1   //刷新xfs文件系统容量
resize2fs /dev/vgname1/lvname1    //刷新ext4类型文件系统容量

LVM应用实例

创建LVM流程:

pvcreate 创建 pv -> vgcreate 创建卷组 -> lvcreate 创建逻辑卷 -> mkfs.xfs lv 格式化-> mount 挂载

删除LVM流程:

umount 卸载 -> lvremove lv 移出卷组中所有逻辑卷 ->  vgremove vg 移出卷组 -> pvremove 移出 pv

调整xfs分区大小(只能增大):

lvextend -L 120G /dev/mapper/contos-root #增大至120G
lvextend -L +20G /dev/mapper/centos-root #增加20G
xfs_growfs /dev/mapper/centos-root       #执行调整
注:ext2/ext3/ext4的调整命令是resize2fs,如下:
lvextend -L 120G /dev/mapper/centos-root #增大值120G
lvextend -L +20G /dev/mapper/centos-root #增加20G
lvreduce -L 50G  /dev/mapper/centos-root #减小至50G
lvreduce -L -8G  /dev/mapper/centos-root #减小8G
resize2fs /dev/mapper/centos-root        #执行调整

磁盘配额概述

实现磁盘限额的条件

  • 需要linux内核的支持
  • 安装xfsprogs与quota软件包

linux磁盘限额的特点

  • 作用范围:针对指定的文件系统(分区)
  • 限制对象:用户账号、组账号
  • 限制类型:磁盘容量、文件数量
  • 限制方法:软限制、硬限制

1.磁盘配额的作用范围

xfs quota

设置的磁盘配额功能,只在指定的文件系统(分区)内有效,用户使用其他未设置配额的文件系统时,将不会受到限制。

2.磁盘配额的限制对象

xfs_quota

主要针对系统中指定的用户账号、组账号进行限制,没有被设置限额的用户或组将不受影响。对组账号设置配额后,组内所有用户使用的磁盘容量、文件数量的总和不能超过限制

3.磁盘配额的限制类型

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

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

4.磁盘配额的限制方法

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

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

以上描述中可以看出,在实施磁盘配额的实际过程中,只有当用户(或组)、文件系统(分区)及配额数值都满足限额条件时,xfs_quota才会对操作进行限制

磁盘配额流程

以支持配额功能的方式挂载文件系统 -> 编辑用户和组账号的配额设置 -> 验证磁盘配额功能 -> 查看磁盘配额使用情况

ssm

设置磁盘配额

当Linux根分区的磁盘空间耗尽时,Linux操作系统将无法再建立新的文件,同时也可能会出现服务程序崩溃、系统无法启动等故障。
为了避免在服务器中出现类似磁盘空间不足的问题,可以启用磁盘配额功能,对用户在指定文件系统(分区)中使用的磁盘空间、文件数量进行限制,以防止个别用户恶意或无意间占用大量磁盘空间,从而保持系统存储空间的稳定性和持续可在centos系统中,不同的文件系统使用不同磁盘配额配置管理工具。例如,XFS文件系统通过xfs_quota 工具进行管理;
EXT3/4文件系统通过quota工具进行管理。

启用磁盘配额支持

启用文件系统的配额支持

添加usrquota、grpquota挂载参数

[root@localhost~]#vi /etc/fstab
...... // 省略部分信息
/dev/mapper/mail_store-mbox /mailbox xfx default,usrquota,grpquota 0 0
[root@localhost~]#mount -o userquota,grpquota /dev/mail_store/mbox/mailbox/
[root@localhost~]#mount
...... //省略部分信息
/dev/mapper/mail_store-box on /mailbox type xfs(rw,relatime,attr2,inode64,usrquota,grpquota)
[root@localhost~]#chomd -R 777 /mailbox/

磁盘配额管理

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

使用xfs_quota命令编辑配额设置

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

常用选项

  • -u、-g、-x、-c
  • -x:表示启动专家模式,在当前模式下允许对配额系统进行修改的所有管理命令可用
  • -c:表示直接调用管理命令。
  • -u:指定用户账号对象
  • -g:指定账号对象
  • bsoft:设置磁盘容量的软限制数值(默认单位为KB)。
  • bhard:设置磁盘容量的硬限制数值(默认单位为KB)
  • isoft:设置磁盘文件数的软限制数值
  • ihard:设置磁盘文件数的硬限制数值
#仅限制磁盘容量
xfs_quota -x -c 'limit -u bsoft=80M bhard=100M lisi' /njzb_xm/
#仅限制文件数
xfs quota -X -c 'limit -u isoft=4 ihard=5 lisi' /njzb_xm/
#查看里斯磁盘:容量限制
xfs_quota -c 'quota -uv lisi' /njzb_xm/
#查看zhangsan文件数限制
xfs quota -c 'quota-i -uv lisi' /njzb_xm/

限制字段

  • bsoft、bhard、isoft、ihard

验证磁盘配额功能

chmod 777 /njzb_xm
Su lisi
cd /njzb_xm
#验证磁盘容量超限
dd if=/dev/zero of =/njzb_xm/kgc.txt bs=10M count=12
#验证磁盘文件数超限
touch {aa,bb,cc,dd,ee,ff} .txt
touch test{1...6} .txt
dd命令是一个设备转化该和连续复制命令
"if="指定输入设备(或文件)
"of="指定输出设备(或文件)
"bs="指定读取数据块的大小
"count="指定读取数据块的数量
/dev/zero "零"设备文件,可以无限的提供空字符。常用来生成一个特定大小的文件

查看配额使用情况

#查看所有可用分区的磁盘容量配额使用情况
xfs_ quota -x -c 'report-aibh' #report后面跟的是挂载点

report常用选项:

  • -u:对用户查看
  • -g:对组查看
  • -a:查看所有可用分区的配额使用报告
  • -b:查看磁盘容量
  • -i:查看文件数

总结

  • 物理卷管理
  • 卷组管理
  • 逻辑卷管理
  • 磁盘配额的作用范围、限制对象、限制类型、限制方法
  • 磁盘配额管理