LVM与磁盘配额

77 篇文章 0 订阅
46 篇文章 3 订阅

1.LVM

1.1 LVM概述

Logical Volume Manager,逻辑卷管理

能够在保持现有数据不变的情况下动态调整磁盘容量,从而提高磁盘管理的灵活性.

/boot分区用于存放引导文件,不能基于LVM创建

LVM可以用于给绝大部分的分区使用,但是/boot分区除外.

在这里插入图片描述

1.2 LVM机制

在这里插入图片描述

PV (Physical Volume,物理卷)

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

VG (Volume Group,卷组)

一个或多个物理卷组成一个整体,即称为卷组,在卷组中可以动态地添加或移除物理卷。
在这里插入图片描述

LV (Logical Volume,逻辑卷)

卷组中分割出的一块空间,形成逻辑卷。使用mkfs等工具可在逻辑卷上创建文件系统。

在这里插入图片描述

类比理解:
PV、VG(也就是PV池)、LV之间的关系,可以形象的理解为做狮子头的过程——PV是一块一块的猪肉,PE是剁碎的肉沫,VG是将所有肉沫揉成一堆的肉团,LV是从一堆肉沫中挖出一部分,捏成众多的狮子头。

在这里插入图片描述

1.3 LVM管理命令

主要命令

在这里插入图片描述

注意: 创建逻辑卷的时候,是从前往后,也就是先创建物理卷,在创建卷组,最后创建逻辑卷;但是删除逻辑卷的时候,是从后往前删除,也就是先删除逻辑卷,在删除卷组,最后删除物理卷

建立物理卷:pvcreate 设备名1 [设备名2…](分区或磁盘)

建立卷组:==vgcreate 卷组名 物理卷名1 物理卷名2

建立逻辑卷:lvcreate -L 指定容量大小 -l 指定PV数量 -n 逻辑卷名 卷组名

扩容卷组:vgextend -L +大小 /dev/卷组名
扩容逻辑卷:lvextend -L +大小 /dev/卷组名/逻辑卷名

在这里插入图片描述

2. 实战演练:创建并扩容逻辑卷

2.1 创建并扩容逻辑卷步骤

在这里插入图片描述

(1)关闭主机,添加三块新硬盘,重启主机;

(2)先使用fdisk工具将其中的两块磁盘设备/dev/sdb、/dev/sdc划分出主分区sdb1、sdc1,并且把分区类型的ID标记号改为"8e";

fdisk /dev/sdb /dev/sdc
n
#第一次回车,创建主分区
#第二次回车,选择分区号,默认为1
#第三次回车,填写起始扇区,默认为2048
#第四次回车,填写终止扇区,默认为41943039
t 
8e  #更改分区类型为'8e',Linux LVM类型
w 

fdisk -l

在这里插入图片描述

(3)创建物理卷;

pvcreate /dev/sdb1 /dev/sdc1
pvscan  #物理卷由分区/dev/sdc1和/dev/sdb1构成
pvdisplay  

在这里插入图片描述

(4)创建卷组,卷组名为vg01;

vgcreate vg01 /dev/sd[bc]1    #在物理卷[/dev/sdb1 /dev/sdc1]基础上创建卷组vg01
vgdisplay   #已成功创建卷组vg01

在这里插入图片描述

(5)创建逻辑卷,逻辑卷名为lv01,容量为30GB,生成的文件路径为/dev/vg01/lv01;

lvcreate -L 30G -n lv01 vg01 #在卷组vg01基础上创建逻辑卷lv01
lvdisplay 

在这里插入图片描述

(6)对逻辑卷进行格式化,创建XFS文件系统,并挂载到/data目录下;

mkfs -t xfs /dev/vg01/lv01   #将新创建的逻辑卷/dev/vg01/lv01格式化为xfs类型
mkdir /data
mount /dev/vg01/lv01 /data   #将xfs文件系统挂载到/data目录下
df -hT

在这里插入图片描述

(7)逻辑卷再扩容

先将可以进行扩容的设备进行分区,然后再扩容;

vgdisplay
lsblk  #列出系统中所有可用块设备信息 

fdisk /dev/sdd   #可扩容设备
n
#第一次回车,创建主分区
#第二次回车,选择分区号,默认为1
#第三次回车,填写起始扇区,默认为2048
#第四次回车,填写终止扇区,默认为41943039
t 
8e  #更改分区类型为'8e',Linux LVM类型
w 

fdisk /dev/sdd -l

在这里插入图片描述
先创建物理卷,再扩展卷组;

pvcreate /dev/sdd1  #为分区/dev/sdd1创建物理卷
vgextend vg01 /dev/sdd1  #将/dev/sdd1作为卷组abc的扩展卷组
vgdisplay

在这里插入图片描述
扩容逻辑卷;

lvextend -L +20G /dev/vg01/lv01 #将逻辑卷/dev/vg01/lv01再扩容20G,+号代表再原来基础上扩展增加20G大小,不带+号代表指定大小
 
lvdisplay /dev/vg01/lv01 #查看指定逻辑卷/dev/abc/abc01的扩容情况
  LV Size                50.00 GiB  #逻辑卷已扩容

在这里插入图片描述
刷新XFS文件系统;

df -hT
/dev/vg01/lv01 xfs        30G #(此处显示并未扩容成功)   33M   30G    1% /data

xfs_growfs /dev/vg01/lv01   #刷新XFS文件系统容量

df -hT
/dev/vg01/lv01 xfs        50G #(再次查看已经扩容成功)  33M   50G    1% /data

lsblk #查看系统中所有可用块设备信息

在这里插入图片描述在这里插入图片描述

2.2 例题演练:创建LVM逻辑卷

写出用2块50G的新硬盘创建100G容量大小的LVM逻辑卷/dev/abc/abc01的步骤,并通过自动挂载的方式正常使用。

fdisk /dev/sdb    fdisk /dev/sdc   #并且把分区类型的ID标记号改为“8e”
pvcreate /dev/sdb1 /dev/sdc1
vgcreate abc /dev/sdb1 /dev/sdc1
lvcreate -L 100G -n abc01 abc
mkfs -t xfs /dev/abc/abc01

vim /etc/fstab
/dev/abc/abc01      /opt        xfs   	 defaults   0  0

mount -a

2.3 逻辑卷再扩容总结

pvcreate /dev/sdd1                              #先创建物理卷/dev/sdd1
vgextend vgname1 /dev/sdd1                      #扩容卷组vgname1
lvextend -L +20G [-r] /dev/vgname1/lvname1      #扩容逻辑卷lvname1
xfs_growfs /dev/vgname1/lvname1                 #刷新XFS文件系统容量  (上一步中加入-r选项,也可以起到刷新系统容量的效果,那么该句可以省略)
resize2fs  /dev/vgname1/lvnamei1                #刷新EXT4类型文件系统容量(上一步中加入-r选项,也可以起到刷新系统容量的效果,那么该句可以省略)

3. 磁盘配额

3.1 磁盘配额概述

当Linux根分区的磁盘空间耗尽时,Linux操作系统将无法再建立新的文件,同时也可能会出现服务程序崩溃、系统无法启动等故障。
为了避免在服务器中出现类似磁盘空间不足的问题,可以启用磁盘配额功能,对用户在指定文件系统(分区)中使用的磁盘空间、文件数量进行限制,以防止个别用户恶意或无意间占用大量磁盘空间,从而保持系统存储空间的稳定性和持续可用性

在CentOS系统中,不同的文件系统使用不同磁盘配额配置管理工具。例如,XFS文件系统通过xfs_quota工具进行管理,EXT3/4文件系统通过quota工具进行管理。

实现磁盘限额的条件

● 需要Linux内核支持

● 安装xfsprogsquota软件包

Linux磁盘限额的特点

作用范围:针对指定的文件系统(分区)

限制对象:用户帐号、组帐号

限制类型:磁盘容量、文件数量

限制方法:软限制、硬限制

在这里插入图片描述

3.2 磁盘配额管理

验证磁盘配额功能

● 切换到设置配额的分区(挂载目录)

● 创建指定数量的文件:使用touch命令,或cp命令

● 创建指定容量的文件:使用dd命令,或cp命令

查看配额使用情况

xfs_quota -x -c ‘report选项’ ‘挂载点’

● report常用选项
-a、-i、-b、-u、-g

3.3 启用磁盘配额支持

启用文件系统的配额支持

添加usrquota、grpquota挂载参数

在这里插入图片描述

在这里插入图片描述

3.4 磁盘配额应用实例

CentOS 7中设置磁盘配额步聚

(1)检查是否己交装xfsprogs和xfs_quota软件包;

rpm -q xfsprogs quota  

在这里插入图片描述

(2)以支持配额功能的方式挂载文件系统;

umount /data/  #卸载原先没有添加配额参数的挂载
df -hT
mount -o usrquota,grpquota /dev/vg01/lv01 /data #添加挂载参数"usrquota,grpquota"用于增加对用户、组配额功能的支持

###或者采用下面永久挂载文件系统的方式
vim /etc/fstab  #永久添加挂载参数,增加对用户和组配额功能的支持
/dev/vg01/lv01    /data     xfs    defaults,usrquota,grpquota    0  

umount /dev/vg01/lv01    #卸载挂载目录
mount -a    #-a选项,将/etc/fstab的所有内容重新加载
df -hT            #查看是否挂载成功
mount             #查看配额参数设置
/dev/mapper/vg01-lv01 on /data type xfs (rw,relatime,seclabel,attr2,inode64,usrquota,grpquota)

在这里插入图片描述

(3)编辑用户和组账号的配额设置;

useradd zhangsan #创建用户zhangsan
echo '123' | passwd --stdin zhangsan

xfs_quota -x -c 'limit -u bsoft=80M bhard=100M isoft=8 ihard=10 zhangsan' /data/ #设置对zhangsan用户的配额要求

在这里插入图片描述

补充知识点

#同时限制磁盘容量和文件数
xfs_quota -x -c 'limit -u bsoft=80M bhard=100M isoft=8 ihard=10 zhangsan' /data/ #设置对zhangsan用户的配额要求

-x:表示启动专家模式,在当前模式下允许对配额系统进行修改的所有管理命令可用。
-c:表示直接调用管理命令。
-u:指定用户账号对象
-g:指定组账号对象
-v:显示详细信息
bsoft:设置磁盘容量的软限制数值(默认单位为KB)。
bhard:设置磁盘容量的硬限制数值(默认单位为KB)。
isoft:设置磁盘文件数的软限制数值。
ihard:设置磁盘文件数的硬限制数值。

#仅限制磁盘容量
xfs_quota -x -c 'limit -u bsoft=80M bhard=100M zhanqsan' /opt/

#仅限制文件数
xfs_quota -x -c 'limit -u isoft=4 ihard=5 zhangsan' /opt/

(4)查看磁盘容量和文件数限制;

xfs_quota -c 'quota -uvh zhangsan' /data/   #查看zhangsan用户的磁盘容量限制

xfs_quota -c 'quota -uvh -i  zhangsan' /data/  #查看zhangsan用户的文件数限制

在这里插入图片描述

(5)验证磁盘配额功能;

chmod 777 /data/
su - zhangsan   #直接切换到zhangsan用户的家目录中
cd /data/
dd if=/dev/zero of=./test1.txt bs=10M count=9 #指定文件输入输出设备,并指定拷贝块的大小90M
ll -h
exit

在这里插入图片描述

知识点补充:

#验证磁盘容量超限
dd if=/dev/zero  of=/data/test.txt  bs=10M  count=12
 
#验证磁盘文件数超限
touch {aa,bb,cc,cc,dd,ee,ff}.txt

dd命令是一个设备转换和连续复制命令
"if=”指定输入设备(或文件)
"of=”指定输出设备(或文件)
“bs=”指定读取数据块的大小
"count=”指定读取数据块的数量
/dev/zero “零“设备文件,可以无限的提供空字符。常用来生成一个特定大小的文件。

(6)查看配额使用情况;

root用户下查看对zhangsan用户的磁盘配额限制;

xfs_quota -c 'quota -uvh -i  zhangsan' /data/  #root用户下查看zhangsan用户对/data目录的磁盘文件数限制

xfs_quota -c 'quota -uvh zhangsan' /data/  #root用户下查看zhangsan用户对/data目录的配额容量限制

在这里插入图片描述
zhangsan用户下创建超出硬限制容量大小的零设备文件内容;

su - zhangsan  #再次切换到zhangsan用户
cd /data
ls
rm -rf test1.txt  #zhangsan用户删除test1.txt文件
dd if=/dev/zero of=./test1.txt bs=10M count=12 #指定文件输入输出设备,并指定拷贝块的大小120M
ll -h

在这里插入图片描述
zhangsan用户下创建超出硬限制文件数的文件;

rm -rf test1.txt  #删除test1.txt文件
touch file{1..10}
ll
touch file11
touch: 无法创建"file11": 超出磁盘限额
exit

在这里插入图片描述
root用户下查看磁盘容量和文件数的限制情况;

xfs_quota -x -c 'report -a' #root用户下查看所有用户的磁盘容量配额限制以及使用情况

xfs_quota -x -c 'report -abih' #root用户下以人性化方式,查看所有用户的磁盘容量b和文件数限制i以及配额使用情况

在这里插入图片描述
zhangsan用户下添加80M的文件内容;

su zhangsan
cd /data/
echo aaaaa > file1  #将aaaaa写入file1文件
ll
dd if=/dev/zero of=./file2 bs=10M count=8  #将80M的容量从零设备写入到当前目录下的file2文件
ll -h
exit

xfs_quota -x -c 'report -abih' #root用户下以人性化方式,查看所有用户的磁盘容量和文件数限制以及配额使用情况

在这里插入图片描述
在这里插入图片描述

3.5 磁盘配额总结

(1)安装软件 xfsprogs quota

yum install -y xfsprogs quota

(2)以支持配额功能挂载

mount -o usrquota,grpquota   /dev/vgname1/lvnamel /挂载点目录/

(3)配置磁盘配额

xfs_quota -x -c 'limit -u/-g bsoft=xxx bhard=XXX isoft=xxx ihard=XXX  用户名/组名' 挂载点目录/

(4)验证磁盘配额

容量验证 dd if=/dev/zero of=挂载点目录/XXX文件 bs=数据块大小 count=复制次数
文件数量验证  touch等命令创建文件

(5)查看配额使用情况

xfs_quota -x -c 'report -abih'

4.linux磁盘被占满,如何清理磁盘空间?

解决思路:
先检查磁盘为什么会被占满,找出占满磁盘空间的大文件;然后确定该文件是被什么进程使用,如果是业余进程正在使用该大文件,则不能删除该文件并杀死进程,需要用空数据内容重定向覆盖该大文件数据;如果是普通进程正在使用该大文件,可以直接删除该文件并杀死进程

(1) 使用df -hT查看磁盘空间大小,在’已用%’一栏,找出使用占比空间最大的分区文件;
在这里插入图片描述

(2) 在第一层根目录中使用du -h --max-depth=1命令,查找占用空间最大的文件;
在这里插入图片描述

或者使用du -a|sort -rn|head -5命令,直接查看并显示系统中占用空间最大的5个文件;
在这里插入图片描述

(3)使用find ./share/ -size +100G -type f命令,找出大于100G的文件名
(4)找到占用空间最大的文件,通过lsof 文件名,查看该文件是否正在被使用;
在这里插入图片描述

查询时,若返回了相应的pid,就表明有进程正在使用该文件。
(5)若是业务进程,就使用空数据内容重定向覆盖该大文件数据内;如果是普通进程正在使用该文件,可以直接删除该文件,使用lsof -n | grep deleted命令查找使用该文件进程的id号,然后根据id号杀死该进程(kill -9 pid),将磁盘空间释放出来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陌上花开,静待绽放!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值