本文共 5837 字,大约阅读时间需要 19 分钟。
Logical Volume Manager,逻辑卷管理 作用:
● 能够在保持现有数据不变的情况下 动态调整磁盘容量(动态增加、减少磁盘的容量),从而提高磁盘管理的灵活性;
● 注意 :/boot
分区用于存放引导文件,不能用于 LVM 创建;
由于 /boot 中有系统内核、启动文件目录、引导文件,所以不能基于LVM创建;
LVM 机制基本概念,由三部分组成:
PV ( Physical Volume,物理卷)
物理卷是 LVM机制 的基本存储设备,通常对应为一个普通分区或整个硬盘。创建物理卷时,会在分区或硬盘的头部创建一个保留区块,用于记录 LVM 的属性,并 把存储空间分割成默认大小为 4MB 的基本单元(PE),从而构成物理卷。一般需要使用两个及以上硬盘。
VG (Volume Group,卷组)
由一个或多个物理卷组成一个整体,即称为卷组,在 卷组中可以动态地添加或移除物理卷。
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 |
LVM操作主要命令步骤:
建立:先创建 物理卷 → 再创建卷组 → 最后创建逻辑卷;
删除:先删除 逻辑卷 → 再删除卷组 → 最后删除物理卷。
1、关闭主机,添加两块新硬盘,重启主机2、先使用fdisk 工具将磁盘设备/dev/sdb、/dev/sdc划分出主分区sdb1、sdc1,并且把分区尖型的ID标记号改为"8e":fdisk /dev/sdbfdisk /dev/sdc~~n p 1 回车 +5G p t 8e w~~ 3、创建物理卷pvcreate /dev/sdb1 /dev/sdc1 或 pvcreate /dev/sd[b-c]14、创建卷组,卷组名为vgname1vgcreate vgname1 /dev/sdb1 /dev/sdc15、创建逻辑卷,逻辑卷名为lvnamel,容量为20GB,生成的文件路径为 /dev/vgname1/lvname1:lvcreate -L 20G -n lvname1 vgname16、对逻辑卷进行格式化,创建XFS 文件系统,并挂载到/opt目录下:mkfs -t xfs /dev/vgname1/lvname1mount /dev/vgname1/lvname1 /optdf -hT7、再扩容vgextend vgname1 /dev/sdc2vgdisplay vgname1lvextend -L+10G /dev/vgname1/lvname1lvdisplay /dev/vgname1/lvname1xfs_growfs /dev/vgname1/lvname1 #刷新xfs文件系统容量resize2fs /dev/vgname1/lvname1 #刷新ext4类型文件系统容量
第一步:分区
给虚拟机新增两块磁盘,每块大小10G。启动系统, fdisk -l
查看新增的两块硬盘 /dev/sdc /dev/sdd
:
/dev/sdc
磁盘分区类型设置为 Linux LVM ( 8e )
,执行命令 fdisk /dev/sdc
: /dev/sdd
磁盘分区类型设置为 Linux LVM ( 8e )
,不过只先分配5G,留着5G空间后面进行 扩展LVM实验 用。执行命令 fdisk /dev/sdd
: /dev/sdd
剩下的5G空间也设置为 Linux LVM ( 8e )
。执行命令 fdisk /dev/sdd
: /dev/sdc1 10G /dev/sdd1 5G /dev/sdd2 5G,都是Linux LVM 类型
第二步:创建物理卷
创建物理卷 pvcreat,/dev/sdc1 /dev/sdd1 两个设备都创建物理卷。
pvscan
命令,可以看到目前有两个物理卷了。 创建一个卷组 vgcreat 卷组名 物理卷设备名,
vgcreat vgabc /dev/adc1 /dev/add1 命令等同于 vgcreat vgabc /dev/ad[cd]1
创建逻辑卷,创建逻辑卷名为 abc01,使用卷组vgabc,容量为12GB,生成的 文件路径为 /dev/vgabc/abc01
:
【命令格式 lvcreat -L 大小 -n 逻辑卷名 卷组名】执行 lvcreat 时如果提示: 【Volume group "vgabc" has insufficient free space (3838 extents): 3840 required.】意思是:卷组“vgabc”的可用空间不足(3838个扩展数据块):需要3840。说明卷组空间没有 15G。上面用命令 vgdisplay vgabc 看到了空间就 14.99G,分配少一点即可。
我们现在创建号了逻辑卷,导师不能直接使用,需要 对逻辑卷进行格式化,创建 XFS 文件系统,并挂载到 目录下,设备名格式是:/dev/vg名/lv名
。
组卷扩容、逻辑卷扩容
如果我12G觉得不够,想进行扩容该怎么操作呢?这时候就要用到 LVM再扩容命令vgextend 与 lvextend
。注:之前分区的 /dev/sdd2 还有5G没使用,在这里做扩展用。
第一步:创建物理卷
首先对 /dev/sdd2 进行 创建物理卷:
格式:vgextend 卷组名 物理卷设备名
格式:lvextend -L +大小 /dev/组卷名/逻辑卷名
-L 换成 -l 的话,以PE的4M为单位添加的,+5G 是添加5G的大小,不加+,代表覆盖后总大小为5G。
但是这时候执行 df -h 发现挂载的目录大小还是之前的 12G,所以我们需要刷新下 xfs 文件系统容量。刷新前:
xfs_growfs /dev/vgabc/abc01
后,发现逻辑卷的容量已经变成我们扩展后的大小了。 如果是ext4类型文件系统:则需要执行 resize2fs /dev/vgname1/lvname1
,两个文件类型执行的命令不一样。刷新后: 磁盘配额:规定某个用户账号、某个组账号 只能创建一定空间限额的文件/目录大小。
为什么要设置磁盘配额?
因为当Linux根分区的磁盘空间耗尽时,Linux操作系统将无法再建立新的文件,同时也可能会出现 服务程序崩溃、系统无法启动 等故障。
为了避免在服务器中出现类似因 操作不当或黑客攻击等 导致的磁盘空间不足的问题,可以启用 磁盘配额功能,对用户/组 在指定文件系统(分区)中使用的磁盘空间、文件数量进行限制,以防止个别用户恶意或无意间占用大量磁盘空间,从而保持系统存储空间的稳定性和持续可用性。
在Centos系统中,不同的文件系统 使用不同的磁盘配额配置管理工具。例如,XFS文件系统通过 xfs_quota 工具 进行管理;EXT3/4 文件系统通过 quota 工具 进行管理。Centos 7 使用 XFS 文件系统,Centos 6 使用 EXT4 文件系统。
实现磁盘限额的条件:
Linux磁盘限额的特点:
软限制意思是创建的目录大小超过的配额,会进行提示,但是仍然可以继续创建;而硬限制是,创建的目录大小超过的配额,就会报错,不允许创建。
可以执行 mount
命令查看磁盘限额情况,noquota 表示没有配置限额。
mount 查看,如下图,需要将有些不支持磁盘配额的 noquota 改成支持配额 quota。
Centos7中设置磁盘配额步骤:
第一步:检查系统是否已安装 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 0umount /dev/vgname1/lvname1mount -a #一a选项,将/etc/fstab 的所有内容重新挂载
第三步:编辑 用户和组账号 的配额设置
useradd zhangsanpasswd zhangsanxfs_quota -x -c 'limit -u bsoft=80M bhard=100M isoft=40 ihard=50 zhangsan' /opt/
xfs_quota
命令来查看配额信息 以及 为用户和目录分配配额,并验证配额限制是否生效。
选项与属性:
对于管理员命令选项有:
#/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 zhangsancd /opt#验证磁盘容量超限dd if=/dev/zero of=/opt/ddtest.txt bs=10M count=12#验证磁盘文件数超限touch { aa, bb, cc, dd,ee,ff}.txt
dd 命令是一个 设备转换和连续复制命令:
第五步:查看配额使用情况
#查看所有可用分区的磁盘容量配额使用情况xfs_quota -x -c 'report -a'#查看磁盘容量和文件数的报告xfs_quota -x -c 'report -abih'
xfsprogs 和 xfs_quota 软件包 已经安装了。
加粗样式 先解挂 ,再将添加到自动挂载文件 /etc/fstab 中。
格式: /卷组名 /挂载目录 xfs defaults, usrquota, grpquota 0 0
wq 保存并退出后,执行命令 mount -a
,全部挂载 fstab 中的文件,在执行命令 mount 查看,发现该设备已经设置了配额:
给 chenlei 用户设置配额限制:软限制磁盘容量80M,硬限制磁盘容量100M,文件数量8个,软限制硬限制10个。
为了能够用 chenlei 的非管理员账户操作 /lvmdata 目录,需要给设置目录的权限。
chmod 777 /lvmdata/
#赋予用户所有权限,验证用
查看配额使用情况
转载地址:http://qnxd.baihongyu.com/