第八章LVM逻辑卷管理
LVM机制的基本概念
Pv(Physical Volume,物理卷)
整个硬盘,或使用fdisk等工具建立的普通分区
包括许多默认4MB大小的PE(Physical Extent,基本单元)
VG(Volume Group,卷组)
一个或多个物理卷组合而成的整体
LV(Logical Volume,逻辑卷)
从卷组中分割出的一块空间,用于建立文件系统
(创建物理卷--创建卷组--从卷组中创建逻辑卷)
相关命令
pvcreate 设备名
vgcreate 卷组名 物理卷名1 物理卷名2
lvcreate -L 大小 -n 逻辑卷名 卷组名
lvextend -L +大小 /dev/卷组名/逻辑卷名
步骤:
一.新插入两块磁盘,使用fdisk命令将两块新磁盘各分一个10G大小的分区,并将ID号更改为8e(逻辑卷)。如图所示:
二.建立逻辑卷mbox,格式化为EXT3文件系统,挂载到/mailbox目录下。
步骤:
1. 使用pvcreate命令将新建的两个分区(也可以是整块硬盘)创建为逻辑卷。如图所示:
PV物理卷管理
pvscan命令:用于扫描系统中的所有物理卷,并输出相关信息。使用自动分区方案安装的RHEL 5 系统,系统盘sda被划分为sda1和sda2两个分区,其中sda2分区被转换为物理卷,并基于该物理卷创建VolGroup00卷组,在VolGroup00卷组中创建了逻辑卷LogVol00。如图所示:
pvcreate命令:用于将分区或整个硬盘转换成物理卷,主要是添加LVM属性信息并划分PE存储单位。该命令需要使用硬盘或分区的设备文件作为参数(可以有多个)。
pvdisplay命令:用于显示物理卷的详细信息,需要使用指定的物理卷作为命令参数,缺省时将显示所有物理卷的信息如图所示:
pvremove命令:用于将物理卷还原成普通分区或磁盘,不再用于LVM体系,被移除的物理卷将无法被pvscan识别。如图所示:
2. 使用vgcreate命令将新建的两个分区创建为一个名为mail的卷组。如图所示:
VG卷组管理
vgscan命令:用于扫描系统中已建立的LVM卷组及相关信息。如图所示:
vgcreate命令:用于将一个或多个物理卷创建为一个卷组,第一个命令参数用于设置新卷组的名称,其后依次指定需要加入到该卷组的物理卷作为参数。
vgdisplay命令:用于显示系统中各卷组的详细信息,需要使用指定卷组名作为命令参数(未指定卷组时将显示所有卷组的信息)。如图所示:
vgremove命令:用于删除指定的卷组,指定卷组名称作为参数即可。删除时应确保该卷组中没有正在使用的逻辑卷。如图所示:
vgextend命令:用于扩展卷组的磁盘空间。当创建了新的物理卷,并需要将其添加到已有卷组中,就可以使用vgextend命令。该命令的第一个参数为需要扩展容量的卷组名称,其后为需要添加到该卷组中的各物理卷。如图所示:
3. 使用命令lvcreate命令在mail卷组中建立一个新的名为mbox的逻辑卷。如图所示:
LV逻辑卷管理
lvscan命令:用于扫描系统中已建立的逻辑卷及相关信息。如图所示:
lvcreate命令:用于从指定的卷组中分割空间,以创建新的逻辑卷。需要指定逻辑卷的大小、名称及所在的卷组名作为参数。逻辑卷创建好以后,可以通过"/dev/卷组名/逻辑卷名"形式的设备文件进行访问(或者"/dev/mapper/卷组名--;逻辑卷名")。此命令的基本格式如下所示:
lvcreate -L 容量大小 -n 逻辑卷名 卷组名
lvdisplay命令:用于显示逻辑卷的详细信息,需要指定逻辑卷的设备文件作为参数,也可以使用卷组名作为参数,以显示该卷组中所有逻辑卷的信息。如图所示:
lvextend命令:用于动态扩展逻辑卷的空间,当目前使用的逻辑卷空间不足时,可以从所在卷组中分割额外的空间进行扩展。只要指定需增加的容量大小及逻辑卷文件位置即可。前提条件是该卷组中还有尚未分配的磁盘空间,否则需要先扩展卷组容量。另外,调整逻辑卷的容量后,需要执行"resize2fs /dev/卷组名/逻辑卷名"命令以便Linux系统重新识别文件系统的大小(resize2fs命令用于在线调整文件系统大小)。
使用lvextend命令的基本格式如下所示:
lvextend -L +大小 /dev/卷组名/逻辑卷名
如图所示:
执行"resize2fs /dev/卷组名/逻辑卷名"命令。如图所示:
lvremove命令:用于删除指定的逻辑卷,直接使用逻辑卷的设备文件作为参数即可。需要注意,在删除逻辑卷之前,应确保该逻辑卷已不再使用,且必要的数据已做好备份。如图所示:
在为逻辑卷扩展容量时,能够扩展的大小受限于所在卷组剩余空间(未被其他逻辑卷使用)的大小。
4. 使用mkfs.ext3命令将新建的mbox逻辑卷格式化。如图所示:
5. 创建/mailbox目录,将新建的mbox逻辑卷挂载到/mailbox目录下。如图所示:
设置并启用磁盘配额
一.为挂载到/mailbox目录的文件系统启用配额支持
步骤:
1. 以支持配额功能的方式挂载文件系统
除了内核和quota软件的支持以外,实施磁盘配额功能还有一个前提条件,即指定的分区必须已经挂载且支持磁盘配额功能。
在配置调试过程中,可以使用带"o usrquota,grpquota"选项的mount命令重新挂载指定的分区,以便增加对用户、组配额功能的支持。对于支持配额功能的文件系统,将在mount信息中显示"usrquota,grpquota"。如图所示:
为后续测试方便,允许任何用户写入数据。如图所示:
若需要在每次开机后自动以支持配额功能的方式挂载该分区,可以将"usrquota,grpquota"挂载参数写入到"/etc/fstab"文件中。如图所示:
2. 检测磁盘配额并生成配额文件
使用quotacheck命令可以对指定的文件系统进行磁盘配额检测,也可以用来建立配额文件,以便保存用户、组在该分区中的配额设置。若要自动扫描可用的文件系统,可以不指定检测对象。如图所示:
以上操作中,选项"-a"表示扫描所有分区,"-u"和"-g"分别表示检测用户和组配额信息,"-c"表示创建新的配额文件,"-v"表示显示命令执行过程中的细节信息。未使用"-a"选项时,必须指定一个分区(设备文件或挂载点目录)作为命令参数。
由于/mailbox文件系统中并未使用较早版本的配额文件,因此出现"Old file not found"之类的提示信息是正常的。新建立的配额文件包括"aquota.user"、"aquota.group",分别用于保存用户、组的配额设置。配额文件保存在该文件系统的根目录下,默认权限为600。如图所示:
三.限制用户jerry最多只能使用100MB磁盘空间,限制accp组的用户合计最多只能使用500MB磁盘空间
步骤:
1. 创建用户zhangsan和lisi、组accp,然后将用户lisi加入到accp组中。如图所示:
2. 编辑用户和组账号的配额设置
配额设置是实现磁盘配额功能中最重要的环节,使用edquota命令结合"-u"、"-g"选项可用于编辑用户或组的配额设置。正确执行edquota命令后,将进入到文本编辑界面(默认调用vi作为编辑程序),可以设置磁盘设置、文件大小的软、硬限制数值。
对用户zhangsan的配额进行编辑。如图所示:
对组accp的配额进行编辑。如图所示:
一般来说,对磁盘容量进行限额的情况更为常见,而限制文件数量的情况较少。所设置的限额数值不应该小于该用户已经使用的数量,否则可能导致该用户无法正常登录系统。另外,建议不要对root用户设置磁盘配额,以免对程序及系统的运行和稳定性带来不可预知的风险。
用户在使用文件系统的过程中,超过软限制后的默认宽限期为7天,在宽限期内仍然允许用户继续使用(只要不超过硬限制)。若需要修改宽限期,可以执行"edquota -t"命令进行调整。宽限期的时间单位可以是天、小时、分钟或秒。如图所示:
3. 启动文件系统的磁盘配额功能
启动和关闭文件系统的磁盘功能分别使用quotaon、quotaoff命令进行,需要指定设备文件名或文件系统的挂载点目录作为命令参数。quotaon命令使用的选项与quotacheck的选项类似。
实际上,RHEL 5 系统每次开机后自动检查是否有支持磁盘配额的文件系统,如果找到,则启用该文件系统的磁盘配额功能(通过系统初始化脚本"/etc/rc.d/rc.sysinit"来完成相关操作)。因此,下次开机后无需再动手执行quotaon命令。
4. 验证磁盘配额功能
使用受配额限制的用户账号登录Linux系统,并切换到应用了配额的文件系统中,进行复制文件等写入操作,测试所设置的磁盘配额项是否有效。
在测试过程中,为了快速看到效果,可以使用dd转换工具。dd命令是一个设备转换和复制命令,分别使用"if="选项指定输入设备(或文件),"of="选项指定输出设备(或文件),"bs="选项指定读取数据块的大小,"count="指定读取数据块的数量。
切换用户zhangsan登录系统,进入/mailbox目录里,然后使用dd命令测试。如图所示:
切换用户lisi登录系统,进入/mailbox目录里,然后使用dd命令测试。如图所示:
查看两个用户在/mailbox目录里各写入了多大容量的文件。如图所示:
5. 查看用户或分区的配额使用情况
若需要了解在文件系统中用户或组的配额使用情况,可以使用quota命令、repquota命令。其中,quota命令可以结合"-u"、 "-g"选项分别查看指定用户和组的配额使用情况,而repquota命令主要针对指定的文件系统输出配额使用情况报告,结合"-a"选项时可以查看所有可用分区的配额使用报告。如图所示:
注意:对组设置配额时,要让用户生效,就得让这个组是个用户的基本组(只对基本组生效)。
先设置配额,后设置权限。
Linux系统中,对组设置的配额是组内的用户共同使用的空间。
Windows系统中,对组设置的配额是组内的用户各自使用的空间。