磁盘系统管理-2 LVM和磁盘配额

LVM概述

了解查看
LVM 概述#
全称Logical Volume Manager,可以动态调整磁盘容量,提高磁盘管理灵活性。

在安装CentOS 7的过程中选择自动分区时,默认就是以LVM的方案安装的系统。

但是/boot分区必须独立出来,不能基于LVM创建。

PV 物理卷#
物理卷,Physical Volume,是LVM机制的基本存储设备,通常对应一个普通分区或是整个硬盘。

创建物理卷时,会在分区或磁盘头部创建一个用于记录LVM属性的保留区块,并把存储空间分割成默认大小为4MB的基本单元(Physical Extend,PE),从而构成物理卷。

普通分区先转换分区类型为8e;整块硬盘,可以将所有的空间划分为一个主分区再做调整。

VG 卷组#
卷组,Volume Group,是由一个或多个物理卷组成的一个整体。可以动态添加、移除物理卷,创建时可以指定PE大小。

LV 逻辑卷#
逻辑卷,Logical Volume,建立在卷组之上,与物理卷没有直接关系。格式化后,即可挂载使用。

三者关系#

通过以上对三者的解释可以看出,建立LVM的过程。首先,将普通分区或整个硬盘创建为物理卷;然后,将一个或多个物理卷创建为卷组;最后,在卷组上分割不同的数据存储空间形成逻辑卷。有了逻辑卷,就可以格式化、挂载使用了。

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

LVM实验

添加2块20G磁盘,分区,ID为8e

fdisk -l | grep -i "linux lvm"
image

转换物理卷

pvcreate /dev/sd{b,c}1
image

创建juanzu1卷组,添加sdb1和sdc1

vgcreate juanzu1 /dev/sd{b,c}1
image

划分大小为15G,名称为luojijuan1的逻辑卷,再扩容10G,剩下的空间创建名称为luojijuan2的逻辑卷

lvcreate -L 15G -n luojijuan1 juanzu1
lvextend -L +10G /dev/juanzu1/luojijuan1
lvcreate -l 100%free -n luojijuan2 juanzu1

image

格式化逻辑卷,luojijuan1为xfs,luojijuan2为ext4

mkfs.xfs /dev/juanzu1/luojijuan1
mkfs.ext4 /dev/juanzu1/luojijuan2

image

设置自动挂载,挂载后就可以使用了。

mkdir /mnt/luojijuan{1,2}
vim /etc/fstab
/dev/juanzu1/luojijuan1 /mnt/luojijuan1 xfs defaults 0 0
/dev/juanzu1/luojijuan2 ext4 defaults 0 0
image

扩容实验

添加一块20G磁盘,ID为8e

fdisk -l|grep -i "linux lvm"
image

将/dev/sdd1转换物理卷

pvcreate /dev/sdd1
image

查看juan01卷组,进行扩容并再次查看

vgdisplay juanzu1
vgextend juanzu1 /dev/sdd1
vgdisplay juanzu1
image
image

对luojijuan1扩容5G,剩余空间分配给luojijuan2

lvextend -L +5G /dev/juanzu1/luojijuan1
lvextend -l 100%free /dev/juanzu1/luojijuan2
image

使用xfs_growfs和resize2fs在线调整大小并查看

xfs_growfs /dev/juanzu1/luojijuan1
resize2fs /dev/luojijuan2
df -Th
image
image

卸载实验

umount卸载挂载并查看

umount /mnt/luojijuan{1,2}
df -Th
image

lvremove移出juanzu1卷组中所有逻辑卷

lvremove -y /dev/juanzu1/luojijuan{1,2}
image

vgremove移出卷组

vgremove -y juanzu1
image

pvremove移出物理卷

pvremove /dev/sd{b..d}
image

磁盘配额

磁盘配额概述

1.作用范围:只在指定的分区有效。

2.限制对象:主要针对用户、组进行限制,对组账号限制,组内所有用户的使用总和不能超过限制。

3.限制类型:磁盘容量限制(Block),默认单位KB、文件数量限制(Inode)。

4.限制方法:软限制、硬限制。软限制默认7天内允许超过,会有警告。硬限制不允许超过,硬限制应当比软限制大,否者软限制失效。

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

xfs实验

关闭SELinux,若启用SELinux功能,不是所有的目录都能设定quota,默认quota仅能对/home进行设定。

setenforce 0
image

分区sdb1,xfs格式化,挂载

临时添加挂载
mkfs.xfs -f /dev/sdb1
mount -o usrquota,grpquota /dev/sdb1 /data/
image

查看sdb1的磁盘配额是否生效

mount | grep sdb1
image

如果未成功重新挂载
umount /data
mount -a
mount -o usrquota,grpquota /dev/sdb1 /data/
df -Th

设置磁盘配额数据

xfs_quota -x -c 'linit -u bsoft=10M bhard=20M isoft=5 ihard=8 ceshi' /data
image

创建名为ceshi的测试用户

创建名为ceshi的测试用户,方便测试,放开权限,切换到ceshi用户
useradd ceshi && echo "000000" | passwd --stdin ceshi
chmod 777 /data/
su - ceshi

image

文件数量配额测试

[ceshi@gh1 shiya]$ touch {1..8}.txt
touch: 无法创建"8.txt": 超出磁盘限额
[ceshi@gh1 shiya]$ ls
1.txt  2.txt  3.txt  4.txt  5.txt  6.txt  7.txt
[ceshi@gh1 shiya]$ rm -f *

磁盘空间配额测试

[ceshi@gh1 shiya]$ dd if=/dev/zero of=/data/shiya/1.txt bs=10M count=25
dd: 写入"/data/shiya/1.txt" 出错: 超出磁盘限额
记录了21+0 的读入
记录了20+0 的写出
209715200字节(210 MB)已复制,0.628763 秒,334 MB/秒
[ceshi@gh1 shiya]$ ls -lh
总用量 200M
-rw-rw-r-- 1 ceshi ceshi 200M 7月   5 18:00 1.txt
[ceshi@gh1 shiya]$ touch 2.txt
touch: 无法创建"2.txt": 超出磁盘限额

查看配额使用情况

[ceshi@gh1 shiya]$ su root
密码:
[root@gh1 shiya]# xfs_quota -x -c 'report -abi' /data/shiya/
User quota on /data/shiya (/dev/sdb1)
                               Blocks                                          Inodes                     
User ID          Used       Soft       Hard    Warn/Grace           Used       Soft       Hard    Warn/ Grace     
---------- -------------------------------------------------- -------------------------------------------------- 
root                0          0          0     00 [--------]          3          0          0     00 [--------]
ceshi          204800     102400     204800     00  [6 days]          1          5          7     00 [--------]

Group quota on /data/shiya (/dev/sdb1)
                               Blocks                                          Inodes                     
Group ID         Used       Soft       Hard    Warn/Grace           Used       Soft       Hard    Warn/ Grace     
---------- -------------------------------------------------- -------------------------------------------------- 
root                0          0          0     00 [--------]          3          0          0     00 [--------]
ceshi          204800          0          0     00 [--------]          1          0          0     00 [--------]
posted @ 2022-07-05 18:58  玖拾一  阅读(214)  评论(0编辑  收藏  举报