目录
LVM概述
Logical Volume Manager,逻辑卷管理
允许用多块磁盘,构成一个分区
分区:来自于一个单独的磁盘,给一个单独的磁盘分成若干区域
卷:卷的存储空间,可以来自多个磁盘
- 动态调整磁盘容量,从而提高磁盘管理的灵活性
- /boot分区用于存放引导文件,不能基于LVM创建
- 图形界面管理工具
- system-config-lvm
LVM机制的基本概念
- PV(物理卷;Physical Volume)
- PE(物理扩展;Physical Extend):针对物理卷的最小单元大小,默认为4MB
- VG(卷组;Volume group)
- LV(逻辑卷;Logical volume)
- LE(逻辑扩展;Logical Extend):针对逻辑卷的最小单元大小(LE大小=PE大小:根据创建LV时指定PV内部的PE大小)
PV相关命令
命令 | 说明 |
pvscan | 扫描本机包含的物理卷信息 |
pvdisplay [分区路径] | 列出指定分区的详细信息 |
pvs | 简要列出本机包含的物理卷信息 |
pvcreate 分区路径 分区路径 分区路径 | 指定若干分区创建为物理卷 |
pvremove 分区路径 | 删除物理卷的指定分区 |
pvdisplay信息解析
--- Physical volume ---
PV Name /dev/sda3 # 物理卷名
VG Name centos # 所属卷组名
PV Size <199.00 GiB / not usable 0 # 物理卷大小
Allocatable yes (but full) # 可分配的
PE Size 4.00 MiB # PE大小
Total PE 50943 # PE数量
Free PE 0 # 未分配的PE数量
Allocated PE 50943 # 已分配的PE数量
PV UUID KjxnXx-R5gj-fWaA-5T5O-voCG-QUrS-PovICO # 该物理卷唯一标识
VG相关命令
命令 | 说明 |
vgscan | 扫描本机包含的卷组信息 |
vgdisplay [卷组名] | 列出指定名称的卷组详细信息 |
vgs | 简要列出本机包含的卷组信息 |
vgcreate 卷组名 PV路径 PV路径 | 创建一个卷组 |
vgextend 卷组名 分区 | 指定一个分区添加到该卷组,扩展其空间 |
vgchange 卷组名 -s 8M | 修改PE值 -s:PE大小,只能设为2的n次方 1、2、4、8、16 |
vgdisplay信息解析
[root@localhost ~]# vgdisplay
--- Volume group ---
VG Name centos # VG的名称
System ID # 系统ID,一般留空
Format lvm2 # 格式
Metadata Areas 1 # 源数据区,代表该卷组有多少个物理卷
Metadata Sequence No 3 # 源数据序列号,当你对该卷组进行编辑后,每一次编辑,这个数字就+1
VG Access read/write # 访问状态,可读/可写
VG Status resizable # 卷组状态;resizable:可调大小的
MAX LV 0 # 最大逻辑卷数量
Cur LV 2 # 当前逻辑卷数量
Open LV 2 # 在该卷组中逻辑卷的打开数量
Max PV 0 # 最大PV(物理卷)数量
Cur PV 1 # 当前PV数量
Act PV 1 # 实际的PV数量
VG Size <199.00 GiB # 卷组大小
PE Size 4.00 MiB # 每个PE(最小单元)大小
Total PE 50943 # PE数量
Alloc PE / Size 50943 / <199.00 GiB # 已分配的PE数量
Free PE / Size 0 / 0 # 未分配的PE数量
VG UUID 7VRMru-7FOQ-3Qk9-8hTb-eT09-R3o5-QFDP1W # 该卷组的唯一标识
LV相关命令
命令 | 说明 |
lvscan | 扫描本机包含的逻辑卷信息 |
lvdisplay [LV-Name] | 列出指定名称的逻辑卷详细信息 |
lvs | 简要列出本机包含的逻辑卷信息 |
lvcreate -L 20G -n newname vgname | 创建逻辑卷 -L:指定大小 -n:指定名称 vgname:该逻辑卷从哪个卷组得到的 |
lvextend -L +20G LV-Path | 扩展逻辑卷,示例指定大小20G LV-Path:逻辑卷路径 |
lvreduce -L -10G LV-Path | 减少逻辑卷,示例指定大小10G 减少逻辑卷后要格式化,会清空数据 |
lvremove LV-Path | 删除逻辑卷 |
xfs_growfs LV-Path | 更新逻辑卷空间为扩展后的空间 —————————————————————— 在已经格式化且挂载上逻辑卷的情况下,再扩展其空间后,初始化更新挂载空间为扩展后的空间 |
mkfs -t xfs -f LV-Path | 减少逻辑卷空间后需要强制格式化才能挂载 所以减少逻辑卷空间会摧毁数据 |
lvdisplay信息解析
--- Logical volume ---
LV Path /dev/centos/root # 逻辑卷路径
LV Name root # 逻辑卷的名称
VG Name centos # 所属卷组的名称
LV UUID 8DVnQt-yufL-wFJJ-AlLL-Sl0U-BOFD-VSYf2V # 该逻辑卷的唯一标识
LV Write Access read/write # 逻辑卷的写访问状态,可读可写
LV Creation host, time localhost, 2024-05-28 00:35:06 +0800 # 创建该逻辑卷的主机和时间
LV Status available # 逻辑卷状态;available:可用的
# open 1 # 状态;1:已经打开
LV Size <195.00 GiB # 逻辑卷大小
Current LE 49919 # 当前LE数量;因为刚才创建的PV的PE是4MB,所以这里也是4MB(根据创建LV时指定PV内部的PE大小)
Segments 1 # 段的数量
Allocation inherit # 该逻辑卷的分配策略
Read ahead sectors auto # 预读取逻辑卷的扇区;auto:自动读取
- currently set to 8192 # 当前设置到8192
Block device 253:0 # 块设备信息;253:0 ——》 主设备名称:次设备名称
磁盘配额
为用户分配磁盘空间的使用额度
- 软限制
- 软限制是一个警告阈值,它允许用户或组超过其设定的磁盘配额,但在达到此限制时,系统会向用户发出警告信息。
- 硬限制
- 硬限制是一个严格的阈值,一旦达到,用户或组将无法再写入数据到文件系统中,除非释放一些空间。
挂载相关
要想让分区具备配额的功能,需要在挂载的时候指定功能
想让开机时也拥有配额的功能要在/etc/fstab文件添加 usrquota,grpquota
/dev/mapper/web-benet /aaa xfs defaults,usrquota,grpquota 0 0
命令 | 说明 |
mount -o usrquota,grpquota LV-Path | 挂载一个文件系统,并启用用户(usrquota)和组(grpquota)的磁盘配额 -o:用于指定挂载文件系统时要使用的选项或参数 |
xfs_quota -x -c 'limit -u [bsoft=80M bhard=100M] [isoft=40 ihard=50] 用户名' 目标配额分区 | 设置用户的磁盘空间配额 quota翻译:配额 xfs_quota:这是管理 XFS 文件系统配额的工具 -x:使用专家模式 -c:允许你传递一个或多个命令给 xfs_quota '':引号;执行的参数 limit:用于设置配额限制 -u:指定我们正在为用户(而不是组)设置配额 bsoft:设置空间的软限制 bhard:设置空间的硬限制 isoft:设置文件数量的软限制 ihard:设置文件数量的硬限制 目标配额分区:通常是 xfs 文件系统的挂载点或设备路径 |
xfs_quota -c 'quota -uv 用户名' 目标配额分区 | 查询 XFS 文件系统上特定用户的磁盘空间配额使用情况 quota:这是 xfs_quota 的一个子命令,用于显示配额使用情况。 -u:这个选项指定我们正在查询用户的配额(而不是组)。 -v:显示更详细的输出,包括已使用的配额和限制等。 |
xfs_quota -c 'quota -iuv 用户名' 目标配额分区 | 查询特定用户的 inode 配额使用情况(数量) -i:查询 inode 配额(数量) |
dd if=/dev/zero of=myfile bs=1M count=60 | 从 /dev/zero(白洞文件)读取 60 兆字节的零值字节,并将这些数据写入名为myfile的文件中 if:intput file /dev/zero:是一个特殊的设备文件,它提供了无限的空字节(即零值字节) of:output file myfile:dd命令要写入数据的文件名 bs:block size 1M:指定了dd命令在每次读取和写入操作中要处理的字节块的大小 count:指定了 dd 命令要复制的块的数量 |