Linux--LVM与磁盘配额

一 LVM 逻辑卷管理

1.1 LVM概述

  • LVM 是 Linux 操作系统中对磁盘分区进行管理的一种逻辑机制,它是建立在硬盘和分区之上、文件系统之下的一个逻辑层,在建立文件系统时屏蔽了下层的磁盘分区布局,因此 能够在保持现有数据不变的情况下动态调整磁盘容量,从而增强磁盘管理的灵活性。
  • 在安装 CentOS 系统的过程中选择自动分区时,就会默认采用 LVM 分区方案,不需要再进行手动配置。如果有特殊需要,也可以使用安装向导提供的磁盘定制工具调整 LVM 分区。需要注意的是,/boot 分区不能基于 LVM 创建,必须独立出来。
  • 在学习 LVM 的管理操作之前需要了解 LVM 的几个基本术语。
    -
    在这里插入图片描述

1. PV(Physical Volume,物理卷)

物理卷是LVM机制的基本存储设备,通常对应为一个普通分区或整个硬盘。创建物理卷时,会在分区或硬盘的头部创建一个保留区块,用于记录LVM的属性,并把存储空间分割成默认大小为4MB的基本单元(Physical Extent,PE),从而构成物理卷

2. VG(Volume Group,卷组)

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

3. LV(Logical Volume,逻辑卷 )

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

二 LVM 的管理命令

  • LVM管理命令主要包括三大类:PV物理卷管理、VG卷组管理和LV逻辑卷管理

  • 对应的命令程序文件分别以“PV”“VG”“LV”开头,如图所示

功能PV 管理命令VG 管理命令LV 管理命令
Scan(扫描)pvscanvgscanlvscan
Create(建立)pvcreatevgcreatelvcreate
Display(显示)pvdisplayvgdisplaylvdisplay
Remove(移除)pvremovevgremovelvremove
Extend(扩展)vgextendlvextend
Reduce(减少)vgreducelvreduce

2.1 物理卷管理

1 pvscan 命令

pvscan 命令用于扫描系统中所有的物理卷,并输出相关信息。使用自动分区方案安装的 CentOS,其系统盘 sda 被划分为 sda1 和 sda2 两个分区,其中 sda2 分区被转换为物理卷,并基于该物理卷创建 cl 卷组

[root@localhost ~]# pvscan
PV /dev/sda2	VG cl	lvm2 [99.00 GiB / 4.00 MiB free]
 Total: 1 [99.00 GiB] / in use: 1 [99.00 GiB] / in no VG: 0 [0	]

2 pvcreate 命令

pvcreate 命令用于将分区或整个硬盘转换成物理卷,主要是添加 LVM 属性信息并划分
PE 存储单位。该命令需要使用硬盘或分区的设备文件作为参数(可以有多个)。例如,执
行以下操作将把分区/dev/sdb1、/dev/sdb2、/dev/sdb3 转换成物理卷。

[root@localhost ~]# pvcreate /dev/sdb1 /dev/sdb2 /dev/sdb3
WARNING: xfs signature detected on /dev/sdb1 at offset 0. Wipe it? [y/n]: y 
Wiping xfs signature on /dev/sdb1.	//分区签名的警告提示
WARNING: xfs signature detected on /dev/sdb2 at offset 0. Wipe it? [y/n]: y 
Wiping xfs signature on /dev/sdb2.
WARNING: dos signature detected on /dev/sdb3 at offset 510. Wipe it? [y/n]: y 
Wiping dos signature on /dev/sdb3.
Physical volume "/dev/sdb1" successfully created. 
Physical volume "/dev/sdb2" successfully created. 
Physical volume "/dev/sdb3" successfully created.

3 pvdisplay 命令

pvdisplay 命令用于显示物理卷的详细信息,需要使用指定的物理卷作为命令参数,默认时将显示所有物理卷的信息。例如,执行以下“pvdisplay /dev/sdb3”命令可以查看物理卷
/dev/sdb3 的详细信息

[root@localhost ~]# pvdisplay /dev/sdb3
"/dev/sdb3" is a new physical volume of "20.00 GiB"
--- NEW Physical volume ---
PV Name	/dev/sdb3 VG Name
PV Size	20.00 GiB
Allocatable	NO PE Size		0
Total PE	0
Free PE	0
Allocated PE	0
PV UUID	rxXULc-L7ov-FTlF-rj7s-XZAr-ysHE-rhJTww

4 pvremove 命令

pvremove 命令用于将物理卷还原成普通分区或磁盘,不再用于 LVM 体系,被移除的物理卷将无法被 pvscan 识别。例如,执行以下“pvremove /dev/sdb3”命令可以将物理卷
/dev/sdb3 从 LVM 体系中移除。

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

2.2 卷组管理

1 vgscan 命令

vgscan 命令用于扫描系统中已建立的 LVM 卷组及相关信息。例如,通过执行以下的
vgscan 命令后可以列出 cl 卷组

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

2 vgcreate 命令

vgcreate 命令用于将一个或多个物理卷创建为一个卷组,第一个命令参数用于设置新卷组的名称,其后依次指定需要加入该卷组的物理卷作为参数。例如,若要使用物理卷
/dev/sdb1 和/dev/sdb2 创建名为 web_document 的卷组,可以执行以下操作:

[root@localhost ~]# vgcreate web_document /dev/sdb1 /dev/sdb2
Volume group "web_document" successfully created

3 vgdisplay 命令

vgdisplay 命令用于显示系统中各卷组的详细信息,需要使用指定卷组名作为命令参数
(未指定卷组时将显示所有卷组的信息)。

[root@localhost ~]# vgdisplay web_document
--- Volume group ---
VG Name	web_document 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	Pk3kqd-1ydD-kvId-6E39-hTnD-592f-Q7DG22

4 vgremove 命令

vgremove 命令用于删除指定的卷组,将指定卷组名称作为参数即可。删除时应确保该卷组中没有正在使用的逻辑卷。

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

5 vgextend 命令

vgextend 命令用于扩展卷组的磁盘空间。当创建了新的物理卷,并需要将其添加到已有卷组中时,就可以使用 vgextend 命令。该命令的第一个参数为需要扩展容量的卷组名称, 其后为需要添加到该卷组中的各物理卷。

[root@localhost ~]# vgcreate web_document /dev/sdb1
 Volume group "web_document" successfully created 
[root@localhost ~]# vgextend web_document /dev/sdb2
 Volume group "web_document" successfully extended

2.3 逻辑卷管理

1 lvscan 命令

lvscan 命令用于扫描系统中已建立的逻辑卷及相关信息。

[root@localhost ~]# lvscan
ACTIVE	'/dev/cl/swap' [7.88 GiB] inherit
ACTIVE	'/dev/cl/home' [41.12 GiB] inherit
ACTIVE	'/dev/cl/root' [50.00 GiB] inherit

2 lvcreate 命令

lvcreate 命令用于从指定的卷组中分割空间,以创建新的逻辑卷。需要指定逻辑卷大小、名称及所在的卷组名作为参数。逻辑卷创建完成以后,可以通过“/dev/卷组名/逻辑卷名”(或“/dev/mapper/卷组名-逻辑卷名”)形式的设备文件进行访问。此命令的基本格式如下

  • lvcreate –L 容量大小 -n 逻辑卷名 卷组名
[root@localhost ~]# lvcreate -L 10G -n bdqn web_document
Logical volume "bdqn" created.
[root@localhost ~]# ls /dev/web_document/bdqn
/dev/web_document/bdqn	//逻辑卷bdqn 的链接文件
[root@localhost ~]# ls /dev/mapper/web_document-bdqn
/dev/mapper/web_document-bdqn	//逻辑卷bdqn 的设备文件

3 lvdisplay 命令

lvdisplay 命令用于显示逻辑卷的详细信息,可以指定逻辑卷的设备文件作为参数,也
可以使用卷组名作为参数,以显示该卷组中所有逻辑卷的信息。

[root@localhost ~]# lvdisplay /dev/web_document/bdqn
--- Logical volume ---
LV Path	/dev/web_document/bdqn
LV Name	bdqn
VG Name	web_document
LV UUID	I6IdqV-wTGz-Dg6o-6vwq-5D4h-E7VW-K2kmSh
LV Write Access	read/write
LV Creation host, time	localhost.localdomain, 2017-05-02 09:51:18 -0400 
LV Status	available
# open	0
LV Size	10.00 GiB
Current LE	2560
Segments	1
Allocation	inherit Read ahead sectors		auto
- currently set to	8192
Block device	253:3

4 lvextend 命令

lvextend命令用于动态扩展逻辑卷的空间,当目前使用的逻辑卷空间不足时,可以从所在卷组中分割额外的空间进行扩展。只要指定增加的容量大小和逻辑卷文件位置即可。前提是该卷组中还有尚未分配的磁盘空间,否则需要先扩展卷组容量

  • lvextend -L +大小 /dev/卷组名/逻辑卷名
[root@localhost ~]# lvextend -L +10G /dev/web_document/bdqn
Size of logical volume web_document/bdqn changed from 10.00 GiB (2560 extents) 
to 20.00 GiB (5120 extents).
Logical volume web_document/bdqn successfully resized.
[root@localhost ~]# lvdisplay /dev/web_document/bdqn
--- Logical volume ---
……
LV Size	20.00 GiB	//容量已由原来的 10GB 变为 20GB
……
[root@localhost ~]# xfs_growfs /dev/web_document/bdqn
meta-data=/dev/mapper/web_document-bdqn isize=512 agcount=8, agsize=655360 blks

	=
=	sectsz=512	attr=2, projid32bit=1
crc=1	finobt=0 spinodes=0
data	=	bsize=4096	blocks=5242880, 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

5 lvremove 命令

lvremove命令用于删除指定的逻辑卷,直接使用逻辑卷的设备文件作为参数即可

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

2.4 LVM应用实例

1 命令实操演示

  • 首先在VMware软件centos 7系统中添加两块10G大小的硬盘
    在这里插入图片描述
  • 将/dev/sdb 和/dev/dbc 分区转换为物理卷
    -
  • 将上述两个物理卷整合,创建名为vg01的卷组
    -
  • 在vg01卷组中创建一个名为lv01的逻辑卷,容量设置为15GB
    -
  • 使用mkfs命令对逻辑卷lv01进行格式化,创建xfs文件系统,并挂载到/maibox目录下
    在这里插入图片描述
  • 使用lvextend命令为逻辑卷lv01加2GB,再用xfs-grows命令更新系统识别的文件大小
    -
    在这里插入图片描述

三 磁盘配额

3.1 磁盘配额概述

1 磁盘配额的作用范围

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

2 磁盘配额的限制对象

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

3 磁盘配额的限制类型

  • 磁盘容量:限制用户能够使用的磁盘数据块(Block)大小,也就是限制磁盘空间大小,默认单位为 KB。
  • 文件数量:限制用户能够拥有的文件个数。在 Linux 操作系统中,每一个文件都有一个对应的数字标记,称为 i 结点(Inode)编号,这个编号在同一个文件系统内是唯一的,因此 xfs_quota 通过限制 i 结点的数量来实现对文件数量的限制。

4 磁盘配额的限制方法

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

  • 硬限制:指定一个硬性的配额数值(如 500MB 磁盘空间、200 个文件),是绝对禁止用户超过的限制值,当达到硬限制值时,系统也会给出警告并禁止继续写入数 据。硬限制的配额值应大于相应的软限制值,否则软限制将失效。
    从以上描述中可以看出,在实施磁盘配额的实际过程中,只有当用户(或组)、文件系统(分区)及配额数值都满足限额条件时,xfs_quota 才会对操作进行限制。

3.2 磁盘配额步骤

临时设置(大部分都是通过命令实现),永久设置(都是通过源码文件中配置)

大部分命令设置都是临时生效,重启失效

配置文件是永久生效

编辑用户和组账号的配额设置:组的配额是固定的,
在这里插入图片描述

3.3 启动磁盘配额支持

添加usrquota,grpquota挂载参数
临时设置需要加上 -o 参数

3.4 磁盘配额管理

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

使用xfs_quota命令编辑配额设置
xfs_quota -x -c’limit -u bsoft =N bhard=N isoft=N ihard=N 用户名’挂载点
常用选项
-u //user
-g //group
-x //专家模式
-c //命令(command)
限制字段
bsoft //容量软限制
bhard //容量硬限制 (block 块)
isoft //数量软限制
ihard //数量硬限制 (inode 节点)

验证磁盘配额功能

切换到设置配额的分区(挂载目录)
创建指定数量的文件:使用touch命令,或cp命令
创建指定容量的文件:使用dd命令,或cp命令 (dd命令等同于复制,一般用于验证)
查看配额使用情况


xfs_quota -x -c 'report 选项’挂载点
report常用选项
-a //all 所有
-i //节点,数量
-b //block 块,容量
-u //user
-g //group

查看所有用户配额
[root@localhost ~]# xfs_quota -x -c ‘report -a’ /挂载点

查看用户配额信息,看容量信息
[root@localhost ~]# xfs_quota -c ‘quota -uv 用户名’ /挂载点

查看用户配额信息,看节点信息
[root@localhost ~]# xfs_quota -c ‘quota -iuv 用户名’ /挂载点

连续复制文件(/mail/demo01.txt是自己刚刚创建的文件),每次复制1M,连续复制N次
[root@localhost ~]# dd if=/dev/zero of=/mail/demo01.txt bs=1M count=80
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值