LVM与磁盘配额!

Posted 龙少。

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LVM与磁盘配额!相关的知识,希望对你有一定的参考价值。

一.LVM概述

1.Logical Volume Manager,逻辑卷管理

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

/boot分区用于存放引导文件,不能基于LVM创建,必须独立出来。

2.LVM机制的基本概念

PV 物理卷

VG 卷组 把多个物理卷加在一起组成物理卷

LV 逻辑卷

PE lvm 的最小存储单元,默认大小为4M

在这里插入图片描述

二.LVM的管理命令

1.PV物理卷管理

(1)pvscan命令

扫描系统中的所有物理卷并输出相关信息

[root@localhost ~]# pvscan
  PV /dev/sdc                      lvm2 [20.00 GiB]
  PV /dev/sdb                      lvm2 [20.00 GiB]
  Total: 2 [40.00 GiB] / in use: 0 [0   ] / in no VG: 2 [40.00 GiB]

(2)pvcreate

创建物理卷,将分区转换成物理卷

[root@localhost ~]# pvcreate /dev/sdb /dev/sdc
  Physical volume "/dev/sdb" successfully created.
  Physical volume "/dev/sdc" successfully created.

(3)pvdisplay

显示物理卷的详细信息

[root@localhost ~]# pvdisplay
  "/dev/sdc" is a new physical volume of "20.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdc
  VG Name               
  PV Size               20.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               tgEfLZ-QDZc-Evc7-io9g-Jz1q-y8CE-MNkSQE
   
  "/dev/sdb" is a new physical volume of "20.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb
  VG Name               
  PV Size               20.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               p0Hn5B-cvWg-vAR6-zWyu-5QBT-zr9T-S7KB8g

(4)pvremove

删除物理卷,将物理卷还原成普通分区

[root@localhost ~]# pvremove /dev/sdc
  Labels on physical volume "/dev/sdc" successfully wiped.

2.VG卷组管理

(1)vgscan命令

扫描系统中已建立的卷组相关信息

[root@localhost ~]# vgscan
  Reading volume groups from cache.
  Found volume group "juanzu1" using metadata type lvm2

(2)vgcreate

创建卷组,将一个或者多个物理创建到一个卷组
vgcreate 卷组名 物理卷

[root@localhost ~]# vgcreate juanzu1 /dev/sdb
  Volume group "juanzu1" successfully created

(3)vgdisplay

显示卷组的详细信息

[root@localhost ~]# vgdisplay
  --- Volume group ---
  VG Name               juanzu1
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <20.00 GiB
  PE Size               4.00 MiB
  Total PE              5119
  Alloc PE / Size       0 / 0   
  Free  PE / Size       5119 / <20.00 GiB
  VG UUID               pOM1CA-PgFn-Od81-mFjg-aCtB-szFa-4rudrM

(4)vgremove

用于删除指定的卷组

vgremove 卷组名

[root@localhost ~]# vgremove juanzu1
  Volume group "juanzu1" successfully removed

(5)vgextend

用于扩展卷组的磁盘空间

vgextend 需要扩展的卷组名 需要添加到卷组中的物理卷

[root@localhost ~]# vgcreate juanzu1 /dev/sdb /dev/sdc
  Volume group "juanzu1" successfully created
[root@localhost ~]# vgscan
  Reading volume groups from cache.
  Found volume group "juanzu1" using metadata type lvm2
[root@localhost ~]# vgdisplay
  --- Volume group ---
  VG Name               juanzu1
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               39.99 GiB
  PE Size               4.00 MiB
  Total PE              10238
  Alloc PE / Size       0 / 0   
  Free  PE / Size       10238 / 39.99 GiB
  VG UUID               tl5ksJ-QsdO-2pn8-5d5c-1viQ-HnKf-RosqKI
   
[root@localhost ~]# vgextend juanzu1 /dev/sde
  Volume group "juanzu1" successfully extended

[root@localhost ~]# vgdisplay
  --- Volume group ---
  VG Name               juanzu1
  System ID             
  Format                lvm2
  Metadata Areas        3
  Metadata Sequence No  2
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                3
  Act PV                3
  VG Size               <59.99 GiB
  PE Size               4.00 MiB
  Total PE              15357
  Alloc PE / Size       0 / 0   
  Free  PE / Size       15357 / <59.99 GiB
  VG UUID               tl5ksJ-QsdO-2pn8-5d5c-1viQ-HnKf-RosqKI

3.LV逻辑卷管理

(1)lvscan命令

扫描系统中的所有逻辑卷及相关信息

[root@localhost ~]# lvscan
  ACTIVE            '/dev/juanzu1/ljg' [1.00 GiB] inherit

(2)lvcreate

从指定的卷组中分隔空间,创建新的逻辑卷
lvcreate -L 容量大小 -n 逻辑卷名 卷组名

[root@localhost ~]# lvcreate -L 1G -n ljg juanzu1
  Logical volume "ljg" created.

(3)lvdisplay

[root@localhost ~]# lvdisplay
  --- Logical volume ---
  LV Path                /dev/juanzu1/ljg
  LV Name                ljg
  VG Name                juanzu1
  LV UUID                TCViF2-3vod-e6K7-IhhF-GFsz-JvNk-QxtXy6
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2021-05-16 16:29:24 +0800
  LV Status              available
  # open                 0
  LV Size                1.00 GiB
  Current LE             256
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0

(4)lvextend

用于动态扩展逻辑卷的空间
lvextend -L +容量大小 /dev/卷组名/逻辑卷名
-l 是pe的数量

[root@localhost ~]# lvextend -L +1G /dev/juanzu1/ljg
  Size of logical volume juanzu1/ljg changed from 1.00 GiB (256 extents) to 2.00 GiB (512 extents).
  Logical volume juanzu1/ljg successfully resized.


[root@localhost ~]# lvdisplay /dev/juanzu1/ljg
  --- Logical volume ---
  LV Path                /dev/juanzu1/ljg
  LV Name                ljg
  VG Name                juanzu1
  LV UUID                TCViF2-3vod-e6K7-IhhF-GFsz-JvNk-QxtXy6
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2021-05-16 16:29:24 +0800
  LV Status              available
  # open                 0
  LV Size                2.00 GiB
  Current LE             512
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0

扩展后需要激活调整逻辑卷大小
xfs.growfs /dev/juanzu1/ljg 对xfs文件类型操作
如果是ext4文件类型用resize2fs进行刷新调整

[root@localhost ~]# lvcreate -L 1G -n lv1 juanzu1
  Logical volume "lv1" created.
[root@localhost ~]# lvdisplay
  --- Logical volume ---
  LV Path                /dev/juanzu1/lv1
  LV Name                lv1
  VG Name                juanzu1
  LV UUID                R8rV4k-fXpm-EbRp-FSH0-IzTW-pYec-Y9UFlU
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2021-05-16 18:49:41 +0800
  LV Status              available
  # open                 0
  LV Size                1.00 GiB
  Current LE             256
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0
   
[root@localhost ~]# df -Th
文件系统       类型      容量  已用  可用 已用% 挂载点
/dev/sda3      xfs       297G  5.4G  292G    2% /
devtmpfs       devtmpfs  895M     0  895M    0% /dev
tmpfs          tmpfs     910M     0  910M    0% /dev/shm
tmpfs          tmpfs     910M   11M  900M    2% /run
tmpfs          tmpfs     910M     0  910M    0% /sys/fs/cgroup
/dev/sda1      xfs       197M  152M   45M   78% /boot
tmpfs          tmpfs     182M  8.0K  182M    1% /run/user/42
tmpfs          tmpfs     182M   36K  182M    1% /run/user/0
/dev/sr0       iso9660   4.3G  4.3G     0  100% /run/media/root/CentOS 7 x86_64
/dev/sdd1      xfs       2.0G   33M  2.0G    2% /root/tom
[root@localhost ~]# mkdir /abc
[root@localhost ~]# mkfs.xfs /dev/juanzu1/lv1
meta-data=/dev/juanzu1/lv1       isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@localhost ~]# mount /dev/juanzu1/lv1 /abc
[root@localhost ~]# df -Th
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/sda3               xfs       297G  5.4G  292G    2% /
devtmpfs                devtmpfs  895M     0  895M    0% /dev
tmpfs                   tmpfs     910M     0  910M    0% /dev/shm
tmpfs                   tmpfs     910M   11M  900M    2% /run
tmpfs                   tmpfs     910M     0  910M    0% /sys/fs/cgroup
/dev/sda1               xfs       197M  152M   45M   78% /boot
tmpfs                   tmpfs     182M  8.0K  182M    1% /run/user/42
tmpfs                   tmpfs     182M   36K  182M    1% /run/user/0
/dev/sr0                iso9660   4.3G  4.3G     0  100% /run/media/root/CentOS 7 x86_64
/dev/sdd1               xfs       2.0G   33M  2.0G    2% /root/tom
/dev/mapper/juanzu1-lv1 xfs      1014M   33M  982M    4% /abc
[root@localhost ~]# lvextend -L +1G /dev/juanzu1/lv1
  Size of logical volume juanzu1/lv1 changed from 1.00 GiB (256 extents) to 2.00 GiB (512 extents).
  Logical volume juanzu1/lv1 successfully resized.
[root@localhost ~]# df -Th
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/sda3               xfs       297G  5.4G  292G    2% /
devtmpfs                devtmpfs  895M     0  895M    0% /dev
tmpfs                   tmpfs     910M     0  910M    0% /dev/shm
tmpfs                   tmpfs     910M   11M  900M    2% /run
tmpfs                   tmpfs     910M     0  910M    0% /sys/fs/cgroup
/dev/sda1               xfs       197M  152M   45M   78% /boot
tmpfs                   tmpfs     182M  8.0K  182M    1% /run/user/42
tmpfs                   tmpfs     182M   36K  182M    1% /run/user/0
/dev/sr0                iso9660   4.3G  4.3G     0  100% /run/media/root/CentOS 7 x86_64
/dev/sdd1               xfs       2.0G   33M  2.0G    2% /root/tom
/dev/mapper/juanzu1-lv1 xfs      1014M   33M  982M    4% /abc
[root@localhost ~]# xfs_growfs /dev/juanzu1/lv1
meta-data=/dev/mapper/juanzu1-lv1 isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288
[root@localhost ~]# df -Th
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/sda3               xfs       297G  5.4G  292G    2% /
devtmpfs                devtmpfs  895M     0  895M    0% /dev
tmpfs                   tmpfs     910M     0  910M    0% /dev/shm
tmpfs                   tmpfs     910M   11M  900M    2% /run
tmpfs                   tmpfs     910M     0  910M    0% /sys/fs/cgroup
/dev/sda1               xfs       197M  152M   45M   78% /boot
tmpfs                   tmpfs     182M  8.0K  182M    1% /run/user/42
tmpfs                   tmpfs     182M   36K  182M    1% /run/user/0
/dev/sr0                iso9660   4.3G  4.3G     0  100% /run/media/root/CentOS 7 x86_64
/dev/sdd1               xfs       2.0G   33M  2.0G    2% /root/tom
/dev/mapper/juanzu1-lv1 xfs       2.0G   33M  2.0G    2% /abc

vim /etc/fstab 写入 /dev/juznzu1/lv1 /abc defaults 0 0
mount -a 立即生效

(5)lvremove

用于删除指定的逻辑卷

[root@localhost ~]# lvremove /dev/juanzu1/ljg
Do you really want to remove active logical volume juanzu1/ljg? [y/n]: y
  Logical volume "ljg" successfully removed

三.LVM 应用

步骤:
1.转化PV

2.建立VG卷组

3.建立LV逻辑卷

4.格式化挂载使用文件系统

四.磁盘配额概述

1.实现磁盘限额的条件

需要linux内核支持

使用quata软件包

2.linux磁盘限额的特点

(1)作用范围

针对指定的文件系统(分区)

(2)限制对象

用户账号、组账号

(3)限制类型

磁盘容量、文件数量

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

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

(4)限制方法

软限制、硬限制
磁盘容量:限制用户能够使用的磁盘数据块(Block)大小,也就是限制磁盘空间大小,默认单位为 KB
软限制:超出系统警告,仍可写入
硬限制:超出最高容量,无法再写入

假设软限制为5G,硬限制是8G;若系统指定的目录超过5G,系统会提示已超出,但是还可以继续录入,但是上限是8G,就无法再写入
文件数量:限制用户能够拥有的文件个数。在 Linux 操作系统中,每一个文件都有一个对应的数字标记,称为 i 结点(Inode)编号,这个编号在同一个文件系统内是唯一的,因此 xfs_quota 通过限制 i 结点的数量来实现对文件数量的限制
软限制:超出系统警告,仍可创建
硬限制:超出最高容量,无法再创建
假设软限制为5个,硬限制是10个;若系统创建目录超过5个,系统会提示已超出,但是还可以继续创建,但创建上限是10个,就无法再创建

五.磁盘配额管理

磁盘配额要求Linux内核支持磁盘配额技术,centos7默认支持

磁盘配额只对一般用户有效,对管理员(root)来说是没有任何作用限制的

1.ext4文件使用quota工具

(1)配置配额功能

查询当前分区支持的配额功能
mount | grep /dev/sdb1

增加分区/dev/sdb1用户和组的配额功能
mount -o remount,usrquota,grpquota /dev/sdb1

(2)激活配额选项

由于ext4文件系统,quota功能默认是不开启的,需要创建磁盘配额的配置文件(aquota.user 和 aquota.group),才可以去启动quota功能,使用 quotacheck 命令的-c创建选项

vim /etc/fstab写入配置
/dev/sdb1 /liuchun ext4 defaults,usrquota,grpquota 0 0

mount -a 激活

(3)生成配额文件quotacheck

创建配额的配置文件
quotacheck -cugv /dev/sdb1

选项说明:
-c: 创建磁盘配额的配置文件

-u: 用户,针对扫描用户的情况建立aquota.user

-g: 组,针对扫描用户的情况建立aquota.group

-v: 显示详情,显示扫描过程

(4)创建用户并设置限制edquota

edquota -u wuhao:对用户wuhao进行限制
选项说明
-u:用户名
-g:组名
-t:设定宽限时间
-p:复制磁盘配额规则,不需要每个用户或者组都手动设置一遍:edquota -p user1 -u user2

参数说明:
bloks:磁盘容量,单位是kb
inodes:文件数量
i进入输入模式
:wq 保存退出

(5)开启限额配置quotaon

-u /dev/sdb1:开启用户的磁盘配额

-g /dev/sdb1:开启组的磁盘配额

-a /dev/sdb1:开启所有分区的磁盘配额

-p /dev/sdb1:查看是否开启此功能

-p /dev/sdb1:查看是否开启此功能

(6)关闭配置quotaoff

-a:关闭所有分区的磁盘配置

-u:关闭用户的磁盘配额

-g:关闭组的磁盘配额

(7)查询配额情况quota

-u 用户名

-g 组名

-v 显示详情

-s 以常见耽误显示

-a 查询所有分区的磁盘配额

查看当前用户wuhao的配额情况:quota -u wuhao

参数说明
在这里插入图片描述

inode:可以创建文件或者目录的数量
block:可以存储的容量大小,*号代表超出
soft(软限制):最低限制容量,可以被超过,但会有警告信息,超过的部分会保存到宽限时期到期。一般是硬限制的80%,单位为KB
hard(硬限制):绝对不能被超过限制。达到hard时,系统会禁止继续增加新的文件
grace:宽限时间(一般为7天)单位为KB
当用户使用的空间超过了软限制但还没达到硬限制,在这个宽限的时间到期前必须将超过的数据降低到软限制以下(默认是7天),当宽限时间到期,系统将自动清除超过的数据。
0:表示不限制

2.配额操作配置

[root@

以上是关于LVM与磁盘配额!的主要内容,如果未能解决你的问题,请参考以下文章

LVM与磁盘配额

LVM与磁盘配额

lvm与磁盘配额

LVM与磁盘配额!

LVM与磁盘配额

Linux的LVM系统与磁盘配额