目录
一、LVM
1.LVM概述
LVM(Logical Volume Manager 逻辑卷管理)
- 能够在保持现有数据不变的情况下动态调整磁盘容量,从而提高磁盘管理的灵活性。
- /boot分区用于存放引导文件, 不能基于LVM创建
2.LVM机制的基本概念
PV(物理卷)、VG(卷组)、LV(逻辑卷)
定义物理卷 ---> 将多个物理卷定义为一个卷组 ---> 按需从卷组中提取PE存储空间,组成逻辑卷
3.LVM的管理命令
功能 | 物理卷管理 | 卷组管理 | 逻辑卷管理 |
---|---|---|---|
扫描 | pvscan | vgscan | lvscan |
建立 | pvcreate | vgcreate | lvvreate |
显示 | pvdisplay | vgdisplay | lvdisplay |
删除 | pvremove | vgremove | lvremove |
扩展 | - | vgextend | lvextend |
缩小 | - | vgreduce | lvreduce |
主要命令:
pvcreate "设备名1" "设备2名" "..."
vgcreate "卷组名" "物理卷名1" "物理卷名2" "..."
lvcreate -L +"容量大小" -n "逻辑卷名" "卷组名"
lvreduce -L +"容量大小" -n "逻辑卷名" "卷组名"
4.创建步骤与演示
4.1 推荐步骤:
PV --> VG --> LV --> 格式化并创建文件系统 --> 挂载
/dev/sdb、/dev/sdc(硬盘)--> /dev/sdb1、/dev/sdc1(创建物理卷) --> volumegroup1(创建卷组)--> /dev/volumegroup1(创建逻辑卷)--> 格式化并转为xfs文件系统挂载到挂载点
4.2 演示
- 将sdb1与sdb2组成为一个逻辑卷并挂载到/abc/lao6
1.创建物理卷
[root@wzx ~]# pvcreate /dev/sdb1 /dev/sdb2 #创建为物理卷
Physical volume "/dev/sdb1" successfully created.
Physical volume "/dev/sdb2" successfully created.
2.创建卷组
[root@wzx ~]# vgcreate test1 /dev/sdb1 /dev/sdb2 #将sdb1和sdb2创建为一个名为test的卷组
Volume group "test1" successfully created
3.创建逻辑卷
[root@wzx ~]# lvcreate -n nb -L +20G test1 #从卷组test1中拿出20G的PE储存空间组成一个名为nb的逻辑卷
Logical volume "nb" created.
4.格式化逻辑卷并创建xfs文件系统
[root@wzx ~]# mkfs.xfs /dev/test1/nb #将nb逻辑卷格式化并建立xfs文件系统
meta-data=/dev/test1/nb isize=512 agcount=4, agsize=1310720 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=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 log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
5.挂载
[root@wzx ~]# mount /dev/test1/nb /abc/lao6/ #把nb挂载到lao6
[root@wzx ~]# df -hT #查看挂载信息
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/centos-root xfs 295G 2.1G 293G 1% /
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 12M 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda1 xfs 1014M 146M 869M 15% /boot
tmpfs tmpfs 378M 0 378M 0% /run/user/0
/dev/mapper/test1-nb xfs 20G 33M 20G 1% /abc/lao6
二、磁盘配额
1.概述
当Linux根分区的磁盘空间耗尽时,Linux操作系统将无法再建立新的文件同时也可能会出现服务程序崩溃、系统无法启动等故障。为了避免在服务器中出现类似磁盘空间不足的问题,可以启用磁盘配额功能对用户在指定文件系统(分区)中使用的磁盘空间、文件数量进行限制,以防止个别用户恶意或无意间占用大量磁盘空间,从而保持系统存储空间的稳定性和持续可用性。在Centos系统中,不同的文件系统使用不同磁盘配配置管理工具。例如,XFS文件系统通过xfs_quota工具进行管理,EXT3/4 文件系统通过quota工具进行管理。
ps:在使用前请确保Linux中安装了xfs_progs与quota软件包
2.磁盘配额命令
xfs_quota -x -c 'limit -u bsoft=10M bhard=20M lao6' /abc/123
限制lao6用户在/abc/123目录下存放的文件大小软性要求不可超过10M(可以临时超过),硬性要求不可超过20M。
-x | 启动专家模式,在当前模式下允许对配额系统进行修改的所有管理命令可用 |
-c | 表示直接调用管理命令 |
-u | 指定用户账号对象 |
-g | 指定用户组对象 |
bsoft | 设置磁盘容量的软限制 |
bhard | 设置磁盘容量的硬限制 |
isoft | 设置磁盘文件数量的软限制 |
ihard | 设置磁盘文件数量的硬限制 |
ps:
- 软限制指可以在短时间内超过限制
- 硬限制指不可超过限制
3.演示
1.挂载并启用quota功能
- 临时挂载:
[root@wzx ~]# mount -o usrquota,grpquota /dev/test1/nb /abc/lao6/ #将nb挂载到lao6并支持quota配额管理
[root@wzx ~]# df -h #查看挂载信息
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 295G 2.1G 293G 1% /
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 12M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda1 1014M 146M 869M 15% /boot
tmpfs 378M 0 378M 0% /run/user/0
/dev/mapper/test1-nb 20G 33M 20G 1% /abc/lao6
- 永久挂载(自动挂载):
[root@wzx ~]# vi /etc/fstab
#
# /etc/fstab
# Created by anaconda on Tue Aug 6 23:01:48 2024
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root / xfs defaults 0 0
UUID=a5c4a1b3-63c5-4037-a4dc-b68c5ea86502 /boot xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
/dev/test1/nb /abc/lao6 xfs defaults,usrquota,grpquota 0 0
2.刷新挂载:
[root@wzx ~]# mount -a
3.设置配额
[root@wzx ~]# xfs_quota -x -c 'limit bsoft=10M bhard=15M isoft=3 ihard=5 lao6' /abc/lao6
#对lao6用户在/abc/lao6目录内进行限制,容量大小软限制为10M,硬限制为15M ; 文件数量软限制为3个,硬限制为5个
4.验证
[root@wzx ~]# chmod 777 /abc/lao6 #给予/abc/lao6目录所有权限
#以lao6用户进入Linux
[lao6@wzx ~]$ cd /abc/lao6/
[lao6@wzx lao6]$ touch {1..4}.txt #创建4个.txt文件
[lao6@wzx lao6]$ ls
1.txt 2.txt 3.txt 4.txt
[lao6@wzx lao6]$ touch {5..7}.txt
touch: cannot touch ‘6.txt’: Disk quota exceeded #被限制
touch: cannot touch ‘7.txt’: Disk quota exceeded
[lao6@wzx lao6]$ dd if=/dev/zero of=/abc/lao6/1.txt bs=10M count=1 #将1.txt的大小增加10M
1+0 records in
1+0 records out
10485760 bytes (10 MB) copied, 0.016785 s, 625 MB/s
[lao6@wzx lao6]$ ll -h
total 10M
-rw-rw-r--. 1 lao6 lao6 10M Aug 7 01:19 1.txt
-rw-rw-r--. 1 lao6 lao6 0 Aug 7 01:16 2.txt
-rw-rw-r--. 1 lao6 lao6 0 Aug 7 01:16 3.txt
-rw-rw-r--. 1 lao6 lao6 0 Aug 7 01:16 4.txt
-rw-rw-r--. 1 lao6 lao6 0 Aug 7 01:16 5.txt
[lao6@wzx lao6]$ dd if=/dev/zero of=/abc/lao6/1.txt bs=10M count=2
#将1.txt的大小改为20M
dd: error writing ‘/abc/lao6/1.txt’: Disk quota exceeded #被限制
2+0 records in
1+0 records out
14614528 bytes (15 MB) copied, 0.0148393 s, 985 MB/s