LVM与磁盘配额
文章目录
一、LVM概述
-
LVM(Logical Volume Manager)逻辑卷管理
逻辑卷管理是在硬盘分区和文件系统之间添加的一个逻辑层,为文件系统屏蔽下层硬盘分区布局,并提供一个抽象的盘卷,在盘卷上建立文件系统。当服务器添加了新的硬盘后,管理员不必将原有的文件移动到新的硬盘上,而是通过LVM直接扩展文件系统来跨越物理硬盘。LVM能够在保持现有数据不变的情况下动态调整磁盘容量,从而提高磁盘管理的灵活性。
注:/boot分区用于存放引导文件,不能基于LVM创建。
二、LVM机制的基本概念
1.LVM的构成
物理卷PV(physical volume):物理卷是LVM机制的基本存储设备,通常对应为一个普通分区或整个硬盘。创建物理卷时,会在分区或硬盘的头部创建一个保留区块,用于记录LVM的属性,并把存储空间分割成默认大小为4MB的基本单元(PE),从而构成物理卷。
物理块PE(physical Extent):物理卷PV中可以分配的最小存储单元,PE的大小可以指定,默认为4M。
逻辑卷LV(logical volume):从卷组中分割出的一块空间,形成逻辑卷。在逻辑卷LV之上使用mkfs等工具建立文件系统。
卷组VG(Volume Group):LVM卷组类似于非LVM系统中的物理硬盘,一个卷组VG由一个或多个物理卷PV组成。可以在卷组VG上建立逻辑卷LV。
2.LVM图形详解
LVM就是通过将底层的物理硬盘封装,然后以逻辑卷的方式呈现给上层应用。当我们对底层的物理硬盘进行操作时,不再是针对分区进行操作,而是通过逻辑卷对底层硬盘进行管理操作。如下图,可留下部分物理卷硬盘空间以防空间不足时随时可加入逻辑卷,且当服务器新加硬盘时,可直接通过LVM直接进行管理操作。
三、LVM的管理命令
1.主要命令及其功能
功能 | 物理卷管理 | 卷组管理 | 逻辑卷 |
---|---|---|---|
Scan(扫描) | pvscan | vgscan | lvscan |
Create(建立) | pvcreate | vgcreate | lvcreate |
Display(显示) | pvdisplay | vgdisplay | lvdisplay |
Remove(移除) | pvremove | vgremove | lvremove |
Extend(扩展) | vgextend | lvextend | |
Reduce(减少) | vgreduce | lvreduce |
2.命令格式
pvcreate 设备名1 [设备名2……]
vgcreate 卷组名 物理卷名1 物理卷名2
lvcreate -L 容量大小 -n 逻辑卷名 卷组名
lvextend - L +大小 /dev/卷组名/逻辑卷名
四、创建LVM
1)关闭虚拟机之后,点编辑虚拟机设置→添加硬盘
2)默认选择SCSI磁盘类型,默认创建新虚拟盘(V)
3)磁盘大小选择10G,指定磁盘文件默认不变
4)创建3个新硬盘每个硬盘大小为10G,可在硬件处看到多了3个新硬盘。
5)开启虚拟机,打开Xshell并连接至虚拟机,可看到如下图,新增sdb、sdc、sdd三个磁盘。
6)创建三个分区,每个直接使用全部的硬盘大小,这里我演示下sdb,sdc和sdd步骤一样不再演示。
7)然后用fdisk -l查看分区表信息,可看到sdb1、sdc1、sdd1三个分区类型都已经设置为LVM
8)创建物理卷,并查看
9)也可用vgcreate abc /dev/sd[b-d]1创建卷组abc,此卷组包含sdb1、sdc1、sdd1三个物理卷。并查看
10)创建逻辑卷,并查看
11)如果想要使用逻辑卷需要先进行格式化,然后挂载,挂载之后才能使用。下面是具体步骤:
五、扩展逻辑卷
两种方法扩容
1)在线扩容
无需解挂载和格式化,扩容完成以后,直接刷新xfs类型文件系统就可直接使用
2)解挂载,扩容,格式化(如有重要文件需提前备份),挂载
如果新增硬盘sde,经过前面硬盘管理之后分区类型改为LVM,然后创建物理卷/dev/sde1然后使用vgextend命令给卷组abc扩容
我先通过方法1扩容了2G,目前31G。再通过方法2进行解挂载,逻辑卷扩容。
再挂载发现逻辑卷容量并没增加,是因为还未进行格式化。
先解挂载,再格式化。(一般解挂载后扩容,再格式化,最后挂载,查看文件系统使用情况。)
扩容前面已进行操作,现在只需挂载和查看文件系统使用情况就会发现已扩容成功。
六、磁盘配额
1.实现磁盘限额的条件
1)需要Linux内核支持
2)检查是否安装xfsprogs与quota软件包,如未安装进行安装
- 用rpm - q或rpm - qa | grep 查xfsprogs和quota是否已安装
如上图,查询发现这两个软件包已安装。
2.Linux磁盘限额的特点
1)作用范围:针对指定的文件系统(分区)
2)限制对象:用户账号、组账号
3)限制类型:磁盘容量、文件数量
4)限制方法:软限制、硬限制
3.设置磁盘配额步骤
1)检查是否已安装xfsprogs和xfs_quota软件包,已在实现条件里说明,这里不再赘述。
2)以支持配额功能的方式挂载文件系统
umount /dev/vgname1/lvname1
mount -o usrquota,grpquota /dev/vgname1/lvname1 #添加挂载参数“usrquota,grpquota”用于增加对用户、组配额功能的支持
或者
vim /etc/fstab
/dev/vgname1/lvname1 /opt xfs defaults,usrquota,grpquota 0 0
mount -a #-a选项,将/etc/fstab的所有内容重新加载
①进入/etc/fstab磁盘列表vi编辑器,加入挂载参数“usrquota,grpquota”用于增加对用户、组配额功能的支持。然后:wq保存退出。mount -a是将/etc/fstab磁盘列表重新加载一次。重启虚拟机
②磁盘列表编辑器里加入挂载参数。最后两个0分别代表不做dumb备份和不检验扇区是否完整。
③重启后查看文件系统使用情况,人性化展示使用情况及类型。
3)编辑用户和组账号的配额设置
useradd lisi
passwd lisi
xfs_quota -x -c 'limit -u bsoft=80M bhard=100M isoft=40 ihard=50 lisi' /abc01/
查看指定用户磁盘容量限制(/abc01为挂载目录)
xfs_quota -c 'quota -uv lisi' /abc01
查看指定用户文件数限制(/abc01为挂载目录)
xfs_quota -c 'quota -i -uv lisi' /abc01
相应选项及功能
选项 | 功能/作用 |
---|---|
-x | 表示启动专家模式,在当前模式下允许对配额系统进行修改的所有管理命令可用。 |
-c | 表示直接调用管理命令。 |
-u | 指定用户账号对象 |
-g | 指定组账号对象 |
bsoft | 设置磁盘容量的软限制数值(默认单位为 KB)。 |
bhard | 设置磁盘容量的硬限制数值(默认单位为 KB)。 |
isoft | 设置磁盘文件数的软限制数值。 |
ihard | 设置磁盘文件数的硬限制数值。 |
①添加用户并设置密码。
②设置容量和文件数限额,以及查看相应设置
4)验证磁盘配额功能
chmod 777 /abc01 #给挂载目录/abc01最大权限
su lisi #切换到用户lisi
cd /abc01 #切换到挂载目录
验证磁盘容量超限
dd if=/dev/zero of=/abc01/test.txt bs=10M count=12 #一次发个10M的test.txt文件,发12次
验证磁盘文件数超限
touch {1..52}.txt #创建连续的多个文件,".."表示连续的。
补充:
- dd 命令是一个设备转换和连续复制命令
“if=” 指定输入设备(或文件)
“of=” 指定输出设备(或文件)
“bs=” 指定读取数据块的大小
“count=” 指定读取数据块的数量
/dev/zero “零”设备文件,可以无限的提供空字符。常用来生成一个特定大小的文件。
5)查看配额使用情况
- 查看所有可用分区的磁盘容量配额使用情况
xfs_quota -x -c 'report -a'
- 查看磁盘容量和文件数的报告
xfs_quota -x -c 'report -abih'