管理LVM逻辑卷组及LVM划分磁盘配额

一、LVM概述

1. 基本概念

LVM是Linux环境中对磁盘分区进行管理的一种机制,是建立在硬盘和分区之上、文件系统之下的一个逻辑层,可提高磁盘分区管理的灵活性。RHEL5默认安装的分区格式就是LVM逻辑卷的格式,需要注意的是/boot分区不能基于LVM创建,必须独立出来。

2.PV、VG和LV

PV(Physical Volume,物理卷)
物理卷是LVM机制的基本存储设备,通常对应为一个普通分区或整个硬盘。
将我们的物理硬盘格式化成PV(Physical Volume),我们看到,这里有两块硬盘,一块是sda,另一块是sdb,在LVM磁盘管理里,我首先要将这两块硬盘格式化为我们的PV(Physical Volume),也就是我们的物理卷,其实格式化物理卷的过程中LVM是将底层的硬盘划分为了一个一个的PE(Physical Extend),我们的LVM磁盘管理中PE的默认大小是4M大小,其实PE就是我们逻辑卷管理的最基本单位。比如说我有一个400M的硬盘,那么在将其格式化成PV的时候,其实际就是将这块物理硬盘划分成了100个的PE,因为PE默认的大小就是4M。这个就是我们的第一步操作。
管理LVM逻辑卷组及LVM划分磁盘配额
VG(Volume Group,卷组)
由一个或多个物理卷组成一个整体,即为卷组。
创建一个VG(Volume Group),在将硬盘格式化成PV以后,我们第二步操作就是创建一个卷组,也就是VG(Volume Group),卷组在这里我们可以将其抽象化成一个空间池,VG的作用就是用来装PE的,我们可以把一个或者多个PV加到VG当中,因为在第一步操作时就已经将该硬盘划分成了多个PE,所以将多个PV加到VG里面后,VG里面就存放了许许多多来自不同PV中的PE。通常创建一个卷组的时候我们会为其取一个名字,也就是该VG的名字。
管理LVM逻辑卷组及LVM划分磁盘配额
LV(Logical Volume,逻辑卷)
逻辑卷建立在卷组之上,从卷组中划出一小块空间,作为用户创建文件的基础,这一小块空间就称为逻辑卷。
基于VG创建我们最后要使用的LV(Logical Volume)
【注意】PV以及VG创建好以后我们是不能够直接使用的,因为PV、VG是我们逻辑卷底层的东西,我们其实最后使用的是在VG基础上创建的LV(Logical Volume),所以第三步操作就是基于VG来创建我们最终要使用的LV。
当我们创建好我们的VG以后,这个时候我们创建LV其实就是从VG中拿出我们指定数量的PE,所以创建逻辑卷其实就是我们从VG中拿出我们指定数量的PE,VG中的PE可以来自不同的PV,我们可以创建的逻辑卷的大小取决于VG当中PE存在的数量,并且我们创建的逻辑卷其大小一定是PE的整数倍(即逻辑卷的大小一定要是4M的整数倍)
管理LVM逻辑卷组及LVM划分磁盘配额

二、管理LVM相关命令

具体应用见下文实验部分
pvscan命令用于查看系统中的PV
pvcreate命令用于将磁盘转换成物理卷
pvcreate /dev/sdb /dev/sdc ##可以将sdb和sdc两块磁盘转换成物理卷PV
vgcreate命令用于创建卷组
vgscan命令用于查看系统中卷组
lvscan命令用于查看系统中逻辑卷
lvcreate命令用于创建LV逻辑卷组
管理LVM逻辑卷组及LVM划分磁盘配额

三、其他

磁盘配额中各字段含义
管理LVM逻辑卷组及LVM划分磁盘配额
blocks :目前使用者(quota:uid=5011)在/dev/hda7所使用的空间,单位:KB (不要修改)
soft :soft limit 磁盘空间限定值 单位:KB (需要设定)
hard :hard limit 磁盘空间限定值 单位: KB (需要设定)
inodes :目前使用者使用掉的inodes,由于不容易使用inode控制,所以不要修改它。
soft :soft limit 文件限制数量 (根据需要修改)
hard :hard limit 文件限制数量 (根据需要修改)
soft limit :最低限制容量,在宽限期(grace period)之内,使用容量可以超过soft limit,但必须在宽限期之内将使用容量降低到soft limit以下。
hard limit :最终限制容量,如果使用者在宽限期内继续写入数据,到达hard limit将无法再写入。
宽限时间:使用容量超过soft limit,宽限时间自动启动,使用者将容量降低到soft limit以下,宽限时间自动关闭,如果使用者没有在宽限时间内将容量降低到soft limit,那么他将无法再写入数据,即使使用容量没有到达hard limit

四、实验部分

PV、VG和LV的创建及相关操作

1.添加硬盘
添加三个1G硬盘我们来练习相关命令
管理LVM逻辑卷组及LVM划分磁盘配额
2.查看硬盘
关机状态下添加硬盘后,打开虚拟机查看我们添加的硬盘
fdisk -l ##可以看到我们添加的sdb、sdc和sdd
管理LVM逻辑卷组及LVM划分磁盘配额
3.pvcreate将硬盘转换成物理卷
pvcreate用于将分区或整个硬盘转换成物理卷
pvcreate /dev/sdb /dev/sdc
管理LVM逻辑卷组及LVM划分磁盘配额
pvdisplay 用于显示物理卷的详细信息
pvdisplay
后可跟指定的物理卷做参数,如: pvdisplay /dev/sdb
管理LVM逻辑卷组及LVM划分磁盘配额
pvscan 可用于扫描系统中的所有物理卷,并显示相关信息
pvscan
管理LVM逻辑卷组及LVM划分磁盘配额
pvremove 可以用于将物理卷转换成普通卷,如:pvremove /dev/sdb
4.创建卷组
vgcreate可以用于将一个或多个物理卷创建为一个卷组
vgcreate 卷组名称 加入卷组的物理卷
vgcreate vg01 /dev/sdb /dev/sdc
管理LVM逻辑卷组及LVM划分磁盘配额
vgscan 可以用于扫描系统中已建立的LVM卷组
管理LVM逻辑卷组及LVM划分磁盘配额
vgdisplay 用于显示系统中个卷组的详细信息
管理LVM逻辑卷组及LVM划分磁盘配额
vgremove用于将删除指定卷组,如:vgremove vg01
vgextend用于扩展卷组的磁盘空间,可以使用此命令将物理卷添加到卷组中,如:vgextend vg01 /dev/sdc
5.创建逻辑卷组
lvcreate可以用于从指定卷组中分割空间,以创建新的逻辑卷
lvcreate -L容量大小 -n 逻辑卷组名称 卷组名称
lvcreate -L 500M -n lv01 vg01
lvdisplay可以用于显示逻辑卷的详细信息
管理LVM逻辑卷组及LVM划分磁盘配额
lvscan用于查看系统中已建立的逻辑卷及相关信息
管理LVM逻辑卷组及LVM划分磁盘配额
lvextend可以用于拓展逻辑卷的空间,可拓展的逻辑卷的空间取决于卷组中剩余未使用的空间
lvextend -L +大小 /dev/卷组名/逻辑卷名,如:lvextend -L +500M /dev/vg01/lv01
lvremove 可以用于将删除指定的逻辑卷删除,如:lvremove /dev/vg01/lv01
6.挂载逻辑卷
1)格式化
mkfs.ext4 /dev/vg01/lv01
管理LVM逻辑卷组及LVM划分磁盘配额
2)挂载
vi /etc/fstab
/dev/vg01/lv01 /mnt ext4 defaults 0 0
管理LVM逻辑卷组及LVM划分磁盘配额
mount -a ##一般没有问题,就不会爆出信息
df -Th ##查看挂载情况
管理LVM逻辑卷组及LVM划分磁盘配额
7.其他相关操作
给逻辑卷扩容
lvextend -L +50M n /dev/vg01/lv01
resize2fs /dev/vg01/lv01 ##resize后容量会刷新
管理LVM逻辑卷组及LVM划分磁盘配额
给卷组扩容
vgextend vg01 /dev/sdd
管理LVM逻辑卷组及LVM划分磁盘配额

磁盘配额

  1. 磁盘配额
    1)开启磁盘配额
    mount -o remount,usrquota,grpquota /dev/vg01/lv01
    mount //查看
    管理LVM逻辑卷组及LVM划分磁盘配额
    yum -y install quota
    setenforce 0 ##关闭防火墙,否则下一步报错
    quotacheck -cvug /mnt
    quotaon /mnt ##开启磁盘配额功能
    quotaon -p /mnt ##查看是否已开启On表示开始
    管理LVM逻辑卷组及LVM划分磁盘配额
    2)创建用户添加限制
    useradd tom
    edquota -u tom
    在末行添加
    /dev/mapper/vg01/lv01 0 10000 10240 0 5 6 ##tom 用户在mnt目录软件最大是10M 最大文件个数6
    保存退出
    管理LVM逻辑卷组及LVM划分磁盘配额
    给权限
    chmod 777 /mnt ##不在root下给权限,切换到Tom时无法创建文件,无法操作
    管理LVM逻辑卷组及LVM划分磁盘配额
    3)测试
    测试创建文件个数
    切用户Tom,在/mnt目录下创建文件
    我们可以看到只能创建6个文件,具体5个还是6个,见个字段含义
    管理LVM逻辑卷组及LVM划分磁盘配额
    测试容量
    删除刚刚创建的文件
    管理LVM逻辑卷组及LVM划分磁盘配额
    dd if=/dev/zero of=/mnt/tom1 bs=1k count=10000
    dd if=/dev/zero of=/mnt/tom2 bs=1k count=240
    我们可以看到不能超过10M
    管理LVM逻辑卷组及LVM划分磁盘配额

五、总结

当我们在开启磁盘配额功能的时候要先执行quotacheck -cvug /mnt,quotacheck -avug以生成 aquota.qroup文档和 aquota.user,执行时需要关闭selinux,缺少执行quotacheck -avug直接执行quotaon时会报错quotaon: cannot find /data1/aquota.group,之后在执行quotaon /mnt;
给创建用户权限才可以测试创建文件个数等功能;
其实,如果简化步骤来看划分LVM只有几步:添加磁盘;创建PV物理卷pvcreate /dev/sdb /dev/sdc,磁盘名称根据自己的写;创建VG卷组gvcreate vg01 /dev/sdb /dev/sdc;创建LV逻辑卷lvcreate -L 30G -n lv01 vg01;格式化后,挂载。