Linux的LVM系统与磁盘配额
Posted 他和晚风一样温柔
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux的LVM系统与磁盘配额相关的知识,希望对你有一定的参考价值。
LVM
全名:Logical Volume Manager
作用:
- 能够在保持现有数据不变的情况下 动态调整磁盘容量(动态增加、减少磁盘的容量),从而提高磁盘管理的灵活性
- 注意 :/boot 分区用于存放引导文件,不能用于 LVM 创建
注:由于 /boot 中有系统内核、启动文件目录、引导文件,所以不能基于LVM创建
LVM 机制基本概念,由三部分组成:
- VG(Volume Group,卷组)
- 由一个或多个物理卷组成一个整体,即称为卷组,在卷组中可以动态地添加或移除物理卷
- PV ( Physical Volume,物理卷)
- 物理卷是 LVM机制 的基本存储设备,通常对应为一个普通分区或整个硬盘。创建物理卷时,会在分区或硬盘的头部创建一个保留区块,用于记录 LVM 的属性,并 把存储空间分割成默认大小为 4MB 的基本单元(PE),从而构成物理卷。一般需要使用两个及以上硬盘。
- LV (Logical Volume,逻辑卷)
- 从卷组中分割出的一块空间(基于PE进行分割),形成逻辑卷。使用 mkfs 等工具可在逻辑卷上创建文件系统。
LVM的管理命令
功能 | 物理卷管理命令 | 卷组管理命令 | 逻辑卷管理命令 |
---|---|---|---|
Scan 扫描 | pvscan | vgscan | lvscan |
Create 建立 | pvcreate | vgcreate | lvcreate |
Display 显示 | pvdisplay | vgdisplay | lvdisplay |
Remove 删除 | pvremove | vgremove | lvremove |
Extend 扩展 | - | vgextend | lvextend |
Reduce 减少 | - | vgreduce | lvreduce |
注:物理卷的命令都是以pv开头,卷组是以vg开头,逻辑卷是以lv开头。一般来说我们用不到减少,因为我们绝大部分应该都是磁盘不够用才去使用LVM来实现动态调整磁盘容量
LVM 实现步骤
- 建立:先创建 物理卷 → 再创建卷组 → 最后创建逻辑卷
- 删除:先删除 逻辑卷 → 再删除卷组 → 最后删除物理卷
如图:
命令
关闭主机,添加两块新硬盘,重启主机
先使用fdisk 工具将磁盘设备/dev/sdb、/dev/sdc划分出主分区sdb1、sdc1,并且把分区尖型的ID标记号改为"8e":
fdisk /dev/sdb
fdisk /dev/sdc
n p 1 回车 +5G p t 8e w
创建物理卷
pvcreate /dev/sdb1 /dev/sdc1 或 pvcreate /dev/sd[b-c]1
创建卷组,卷组名为vgname1
vgcreate vgname1 /dev/sdb1 /dev/sdc1
创建逻辑卷,逻辑卷名为lvnamel,容量为20GB,生成的文件路径为 /dev/vgname1/lvname1
lvcreate -L 20G -n lvname1 vgname1
对逻辑卷进行格式化,创建XFS 文件系统,并挂载到/opt目录下
mkfs -t xfs /dev/vgname1/lvname1
mount /dev/vgname1/lvname1 /opt
df -hT
再扩容
vgextend vgname1 /dev/sdc2
vgdisplay vgname1
lvextend -L+10G /dev/vgname1/lvname1
lvdisplay /dev/vgname1/lvname1
xfs_growfs /dev/vgname1/lvname1 #刷新xfs文件系统容量
resize2fs /dev/vgname1/lvname1 #刷新ext4类型文件系统容量
LVM实验
第一步:分区
1.给虚拟机新增两块磁盘,每块大小10G。启动系统, fdisk -l 查看新增的两块硬盘 /dev/sdc /dev/sdd
2.先将 /dev/sdc 磁盘分区类型设置为 Linux LVM ( 8e ),执行命令 fdisk /dev/sdc
3.同样的设置 /dev/sdd 磁盘分区类型设置为 Linux LVM ( 8e ),不过只先分配5G,留着5G空间后面进行 扩展LVM实验 用。执行命令 fdisk /dev/sdd
4.将 /dev/sdd 剩下的5G空间也设置为 Linux LVM ( 8e )。执行命令 fdisk /dev/sdd
5.现在有
- /dev/sdc1 10G
- /dev/sdd1 5G
- /dev/sdd2 5G,都是Linux LVM 类型
第二步:创建物理卷
1.创建物理卷 pvcreat,/dev/sdc1 /dev/sdd1 两个设备都创建物理卷
2.执行 pvscan 命令,可以看到目前有两个物理卷了
第三步:创建卷组
1.创建一个卷组 vgcreat 卷组名 物理卷设备名
命令:vgcreat vgabc /dev/adc1 /dev/add1 命令等同于 vgcreat vgabc /dev/ad[cd]1
如图:
第四步:创建逻辑卷
1.创建逻辑卷,创建逻辑卷名为 abc01,使用卷组vgabc,容量为12GB,生成的 文件路径为 /dev/vgabc/abc01
第五步:创建文件系统、挂载逻辑卷
1.我们现在创建号了逻辑卷,不能直接使用,需要 对逻辑卷进行格式化,创建 XFS 文件系统,并挂载到 目录下,设备名格式是:/dev/vg名/lv名
此时LVM逻辑卷的12G空间可以进行使用
磁盘限额
1.为什么要用磁盘限额
1.我们使用的Linux系统是可以多用户同时登录使用,如果同时有多个用户一起写文件,可能会导致根目录的容量被占满,会出现服务器崩溃不断重启的情况,为了防止这种情况,这时候就需要我们去设置磁盘限额,去控制多用户环境下限制每个用户的磁盘空间,规定某个用户最多只能创建多少个文件,最大使用多少容量
2.为了避免在服务器中出现类似因 操作不当或黑客攻击等 导致的磁盘空间不足的问题,可以启用 磁盘配额功能,对用户/组 在指定文件系统(分区)中使用的磁盘空间、文件数量进行限制,以防止个别用户恶意或无意间占用大量磁盘空间,从而保持系统存储空间的稳定性和持续可用性
3. 在Centos系统中,不同的文件系统 使用不同的磁盘配额配置管理工具。例如,XFS文件系统通过 xfs_quota 工具 进行管理;EXT3/4 文件系统通过 quota 工具 进行管理。Centos 7 使用 XFS 文件系统,Centos 6 使用 EXT4 文件系统
2.磁盘限额的概述
实现磁盘限额的条件:
1、需要Linux内核的支持。
2、需要安装xfsprogs与quota软件包,一般来说Linux系统都是自带的,可以通过rpm -q [软件包名]来查看,如果没有安装,可以通过 yum install -y 进行安装。
Linux磁盘限额的特点
- 作用范围是针对指定的文件系统
- 限制对象为用户账号、组账号
- 限制类型分为:磁盘容量、文件数量
- 限制方法:软限制和硬限制
- 软限制:假如我设置了软限制文件数量为16,当你文件数量超过16的时候,会出现提示,但是你还能继续创建文件
- 硬限制:如果你硬限制了文件数量为20,当你文件数量超过20时,将不允许继续创建
- 可以执行 mount 命令查看磁盘限额情况,noquota 表示没有配置限额
设置磁盘配额步骤
第一步:检查系统是否已安装 xfsprogs 和 xfs_quota 软件包
命令:rpm -q xfsprogs quota 查看软件包是否已安装
如图:
如果安装的话
执行这个命令安装:yum install -y xfsprogs quota.
第二部:以支持配额功能的方式挂载文件系统
表示支持用户,组的配额功能
umount /dev/vgname1/lvname1 #先将正在使用 LVM 的磁盘进行解挂载
#添加挂载参数 "usrquota, grpquota"
#用于增加对用户、组配额功能的支持,(暂时生效,重启失效)
mount -o usrquota,grpquota /dev/vgname1/lvname1 /opt
进行永久设置
vim /etc/fstab
#在启动文件fstab中添加一行配置,【重启也生效】
/dev/vgname1/lvname1 /opt xfs defaults, usrquota, grpquota 0 0
umount /dev/vgname1/lvname1
mount -a #一a选项,将/etc/fstab 的所有内容重新挂载
第三步:编辑 用户和组账号 的配额设置
useradd zhangsan
passwd zhangsan
xfs_quota -x -c 'limit -u bsoft=80M bhard=100M isoft=40 ihard=50 zhangsan' /opt/
注: xfs_quota 命令来查看配额信息 以及 为用户和目录分配配额,并验证配额限制是否生效
选项与属性:
- -x:表示启动专家模式,在当前模式下允许对配额系统进行修改的所有管理命令可用
- -c:表示直接调用 管理员命令,后面跟 ‘命令体’。(也可以不用-c,而去配置文件中修改)
对于管理员命令选项有
- -u:指定用户账号对象
- -g:指定组账号对象
- -v:显示详细信息
- bsoft:设置 磁盘容量 的 软限制大小值(默认单位为KB)
- bhard:设置 磁盘容量 的 硬限制大小值(默认单位为KB)
- isoft:设置 磁盘文件数 的 软限制数量值
- ihard:设置 磁盘文件数 的 硬限制数量值
#/opt/ 是磁盘挂载目录
限制磁盘容量
xfs_quota -x -c 'limit -u bsoft=80M bhard=100M zhangsan' /opt/
限制文件数
xfs_quota -x -c 'limit -u isoft=4 ihard=5 zhangsan' /opt/
查看zhangsan 磁盘容量限制
xfs_quota -c 'quota -uv zhangsan' /opt/
查看zhangsan 文件数限制
xfs_quota -c 'quota -i -uv zhangsan' /opt/
第四步:验证磁盘配额功能
chmod 777 / opt #修改用户权限 写的权限,用来去认证
su zhangsan
cd /opt
验证磁盘容量超限
dd if=/dev/zero of=/opt/ddtest.txt bs=10M count=12
验证磁盘文件数超限
touch {aa, bb, cc, dd,ee,ff}.txt
注:dd 命令是一个 设备转换和连续复制命令
- "if=” :指定输入设备(或文件)
- "of=”:指定输出设备(或文件)
- "bs=”:指定读取数据块的大小
- "count=”:指定读取数据块的数量
- /dev/zero: "零"设备文件,可以无限的提供空字符。常用来生成一个特定大小的文件
第五步:查看配额使用情况
查看所有可用分区的磁盘容量配额使用情况
xfs_quota -x -c 'report -a'
查看磁盘容量和文件数的报告
xfs_quota -x -c 'report -abih'
实验
先将xfsprogs 和 xfs_quota 软件包 已经安装了
1.对磁盘容量进行配额设置,先解挂 ,再将添加到自动挂载文件 /etc/fstab 中
命令:格式: /卷组名 /挂载目录 xfs defaults, usrquota, grpquota 0 0
注:wq 保存并退出后,执行命令 mount -a,全部挂载 fstab 中的文件,在执行命令 mount 查看,发现该设备已经设置了配额
2 用户和组账号的配额设置,给 chenlei 用户设置配额限制:软限制磁盘容量80M,硬限制磁盘容量100M,文件数量8个,软限制硬限制10个
3 验证配额功能,为了能够用 chenlei 的非管理员账户操作 /lvmdata 目录,需要给设置目录的权限
命令: chmod 777 /lvmdata/ 赋予用户所有权限,验证用
注:格式是 touch {1…11 }.txt 联系创建多个文件,如果多敲一个点 ,那么就会被当成一个文件去创建
4 查看配额使用情况
以上是关于Linux的LVM系统与磁盘配额的主要内容,如果未能解决你的问题,请参考以下文章