LVM 逻辑卷管理(Logical Volume Manager)

LVM 逻辑卷管理(Logical Volume Manager)

许多Linux操作系统的使用者在安装操作系统时都会遇到这样的困境:如何精确评估和 分配各个硬盘分区的容量。如果当初估计不准确, 一旦系统分区不够用就可能不得不备份、删除相关数据,甚至被迫重新规划分区并重装操作系统,以满足应用系统的需要。

LVM 概述

LVM 是 Linux 操作系统中对磁盘分区进行管理的一种逻辑机制,它是建立在硬盘和分 区之上、文件系统之下的一个逻辑层,在建立文件系统时屏蔽了下层的磁盘分区布局,因此能够在保持现有数

据不变的情况下动态调整磁盘容量,从而增强磁盘管理的灵活性。

在安装 CentOS 系统的过程中选择自动分区时,就会默认采用LVM 分区方案,不需要 再进行手动配置。如果有特殊需要,也可以使用安装向导提供的磁盘定制工具调整LVM 分区。需要注意的

是, /boot 分区不能基于 LVM 创建,必须独立出来。

1.PV(Physical   Volume, 物理卷)

物理卷是LVM 机制的基本存储设备,通常对应为一个普通分区或整个硬盘。创建物理 卷时,会在分区或硬盘的头部创建一个保留区块,用于记录 LVM 的属性,并把存储空间分 割成默认大小为4

MB 的基本单元 ( Physical  Extent,PE), 从而构成物理卷

2.VG(Volume     Group, 卷组)

由一个或多个物理卷组成一个整体,即称为卷组,在卷组中可以动态地添加或移除物理卷。许多个物理卷可以分别组成不同的卷组,卷组的名称由用户自行定义。

3.LV(Logical     Volume, 逻辑卷)

逻辑卷建立在卷组之上,与物理卷没有直接关系。对于逻辑卷来说,每一个卷组就是一 个整体,从这个整体中“切出”一小块空间,作为用户创建文件系统的基础,这一小块空间就 称为逻辑卷。

使用 mkfs 等工具在逻辑卷上创建文件系统以后,就可以挂载到Linux 操作系统中的目录下使用。

通过上述对物理卷、卷组、逻辑卷的解释可以看出,建立 LVM 分区管理机制的过程如 下:首先,将普通分区或整个硬盘创建为物理卷;然后,将物理上比较分散的各物理卷的 存储空间组成一个逻辑整体,即卷组;最后,基于卷组这个整体,分割出不同的数据存储空间,形成逻辑卷。逻辑卷才是最终用户可以格式化并挂载使用的存储单位。

LVM 的管理命令

LVM 管理命令主要包括三大类:物理卷 (PV)  管理、卷组(VG)  管理、逻辑卷 (LV)管理,对应的命令程序文件分别以“pv” 、“vg” 、“IV”开头。

常用的LVM 管理命令

功能              PV管理命令               VG管理命令               LV管理命令

Scan(扫描)

pvscan

vgscan

lvscan

Create(建立)

pvcreate

vgcreate

lvcreate

Display(显示

pvdisplay

vgdisplay

lydisplay

Remove(移除)

Extend(扩展)

pvremove

vgremove

vgextend

lvremove

lvextend

Reduce(减少)

vgreduce

lvreduce

下面分别介绍其中常用的几个管理命令。

1. 物理卷管理

(1) pvscan 命令

pvscan  命令用于扫描系统中所有的物理卷,并输出相关信息。使用自动分区方案安装 的 CentOS,  其系统盘 sda 被划分为sda1 和 sda2 两个分区,其中 sda2 分区被转换为

物理卷,并基于该物理卷创建 cl 卷 组 。pvscan  命令的操作如下:

(2) pvcreate 命令

pvcreate   命令用于将分区或整个硬盘转换成物理卷,主要是添加 LVM 属性信息并划分PE 存储单位。该命令需要使用硬盘或分区的设备文件作为参数(可以有多个)。

(3) pvdisplay 命令

pvdisplay    命令用于显示物理卷的详细信息,需要使用指定的物理卷作为命令参数,默 认时将显示所有物理卷的信息。

(4)pvremove     命令

pvremove     命令用于将物理卷还原成普通分区或磁盘,不再用于LVM  体系,被移除的物 理 卷 将 无 法 被 pvscan    识 别 。 例 如 , 执 行 以 下“pvremove           /dev/sdb3”命 令 可 以 将 物 理 卷

/dev/sdb3     从 LVM 体系中移除。

2. 卷组管理

(1) vgscan 命令

vgscan    命令用于扫描系统中已建立的LVM 卷组及相关信息。

(2) vgcreate    命令

vgcreate    命令用于将一个或多个物理卷创建为一个卷组,第一个命令参数用于设置新 卷组的名称,其后依次指定需要加入该卷组的物理卷作为参数。

(3)vgdisplay        命令

vgdisplay   命令用于显示系统中各卷组的详细信息,需要使用指定卷组名作为命令参数 (未指定卷组时将显示所有卷组的信息)。

(4) vgremove 命令

vgremove    命令用于删除指定的卷组,将指定卷组名称作为参数即可。删除时应确保该 卷组中没有正在使用的逻辑卷。

(5) vgextend 命令

vgextend    命令用于扩展卷组的磁盘空间。当创建了新的物理卷,并需要将其添加到已 有卷组中时,就可以使用 vgextend  命令。该命令的第 一个参数为需要扩展容量的卷组名称,其后为需要添加到该卷组中的各物理卷。

3. 逻辑卷管理

(1) Ivscan  命 令

lvscan 命令用于扫描系统中已建立的逻辑卷及相关信息。

(2)lvcreate   命令

lvcreate   命令用于从指定的卷组中分割空间,以创建新的逻辑卷。需要指定逻辑卷大小、 名称及所在的卷组名作为参数。逻辑卷创建完成以后,可以通过“/dev/ 卷组名/逻辑卷名”(或“/dev/mapper/    卷组名-逻辑卷名”)形式的设备文件进行访问。此命令的基本格式如下:

Ivcreate -L    容量大小 -n  逻辑卷名  卷组名

(3)lvdisplay 命令

lvdisplay   命令用于显示逻辑卷的详细信息,可以指定逻辑卷的设备文件作为参数,也可以使用卷组名作为参数,以显示该卷组中所有逻辑卷的信息。

(4)l vextend 命令

lvextend    命令用于动态扩展逻辑卷的空间,当目前使用的逻辑卷空间不足时,可以从所在卷组中分割额外的空间进行扩展。只要指定需增加的容量大小及逻辑卷设备文件位置即可,前提条件是该卷组中还有尚未分配的磁盘空间,否则需要先扩展卷组容量。另外,调整逻辑卷的容量后,需要执行“xfs_growfs /dev/卷组名/逻辑卷名”命令以便Linux 操作系统重新识别 文 件 系 统 的 大 小 。xfs_growfs     是 针 对XFS    文件系统的在线调整文件系统大小的命令。使 用 Ivextend  命令时,基本的命令格式如下:

lvextend  -L  +大小  /dev/卷组名/逻辑卷名

(5) lvremove    命 令

lvremove  命令用于删除指定的逻辑卷,直接使用逻辑卷的设备文件作为参数即可。例 如,执行以下操作可以删除名为 bdqn  的逻辑卷。需要注意的是,在删除逻辑卷之前,应确保该逻辑卷不再使用,且必要的数据已做好备份。

设置磁盘配额

当 Linux  根分区的磁盘空间耗尽时, Linux  操作系统将无法再建立新的文件(包括程序 运行的临时文件),从而出现服务程序崩溃、系统无法启动等故障。为了避免在服务器中出 现类似磁盘空间不足的问题,可以启用磁盘配额功能,对用户在指定文件系统(分区)中使 用的磁盘空间、文件数量进行限制,以防止个别用户恶意或无意间占用大量磁盘空间,从而保持系统存储空间的稳定性和持续可用性。

在 CentOS    系统中,内核已经定制了支持Linux   文件系统的磁盘配额功能,并且在系统 中配置和管理磁盘配额的工具由xfsprogs     软件包的 xfs_quota     配额管理程序提供。

注意:在 CentOS 系统中,不同的文件系统使用不同磁盘配额配置管理工具。例 如,XFS 文件系统通过xfs_quota工具进行管理; EXT3/4 文件系统通过 quota 工具进

行管理。针对 EXT3/4 文件系统进行磁盘配额管理的相关知识请参考相关文档。

通过以下操作可以确认xfsprogs 软件包的安装情况,并列表查看 xfsprogs 软件包安装 的 xfs_quota 配额管理程序。

[root@localhost ~]# rpm-q xfsprogs

xfsprogs-4.5.0-8.el7.x86_64

root@localhost  ~]# rpm -ql xfsprogs I grep xfs_quota

/usr/sbin/xfs_quota

/usr/share/man/man8/xfs_quota.8.gz

磁盘配额概述

磁盘配额相关的几个概念。

1. 磁盘配额的作用范围

xfs_quota  设置的磁盘配额功能,只在指定的文件系统(分区)内有效,用户使用其他未设置配额的文件系统时,将不会受到限制。

2. 磁盘配额的限制对象

xfs_quota 主要针对系统中指定的用户账号、组账号进行限制,没有被设置限额的用户 或组将不受影响。对组账号设置配额后,组内所有用户使用的磁盘容量、文件数量的总和不能超过限制。

3. 磁盘配额的限制类型

磁盘容量:限制用户能够使用的磁盘数据块 ( Block)  大小,也就是限制磁盘空间大小,默认单位为 KB。

文件数量:限制用户能够拥有的文件个数。在Linux操作系统中,每一个文件都有 一个对应的数字标记,称为i 结点 (Inode)    编号,这个编号在同一个文件系统内是唯一的,因此xfs_quota  通过限制 i 结点的数量来实现对文件数量的限制。

4. 磁盘配额的限制方法

软限制:指定一个软性的配额数值(如480MB 磁盘空间、180个文件),在固定的宽限期(默认为七天)内允许暂时超过这个限制,但系统会给出警告信息。禁止用户超过的限制值,当达到硬限制值时,系统也会给出警告并禁止继续写入数据。硬限制的配额值应大于相应的软限制值,否则软限制将失效。从以上描述中可以看出,在实施磁盘配额的实际过程中,只有当用户(或组)、文件系统(分区)及配额数值都满足限额条件时,xfs_quota    才会对操作进行限制。

磁盘配额管理

1. 以 支 持 配 额 功 能 的 方 式 挂 载 文 件 系 统

除了内核和xfs_quota 软件的支持以外,实施磁盘配额功能还有一个前提条件,即指定的分区必须已经挂载且支持磁盘配额功能。在配置调试过程中,可以使用带“-o        usrquota,grpquota”选项的 mount  命令挂载指定的分区,以便增加对用户、组配额功能的支持。需要注意的是,XFS  文件系统只有在首次挂 载时才启动磁盘限额功能,所以不能使用“-o    remount”挂载选项。对于支持配额功能的文件 系统,将在 mount 信息中显示“usrquota,grpquota”。

2. 编辑用户和组账号的配额设置

配额设置是实现磁盘配额功能中最重要的环节,使用edquota   命令结合“-u”及“-g”选项可 用于指定用户或组的配额设置。结合“imit”命令可以设置磁盘容量,以及文件数的软、硬限制数值。配额设置的基本命令格式如下:

xfs_quota   -x-c   limit-u   bsoft=N   bhard=N   isoft=N   ihard=N    用户名’挂载点

其中,“-x”表示启动专家模式,在当前模式下允许对配额系统进行修改的所有管理命令 可用;“-c”表示直接调用管理命令。xfs_quota 命令可以以交互方式进行。如果上述设置其 用户磁盘配额的命令不加“-c”选项,那么命令执行后失败,并切入“xfs_quota>” 环境下,以交互方式配置管理磁盘配额。在本章,我们采用“-c”选项直接调用管理命令。除“-x”“-c”选项之外,limit命令后面还包含四个磁盘配额的限制字段,各字段的含义如下所述。

>   bsoft::   设置磁盘容量的软限制数值。

>  bhard:  设置磁盘容量的硬限制数值。

>  isoft:  设置磁盘文件数的硬限制数值。

>  ihard:  设置磁盘文件数的软限制数值。

一般来说,对磁盘容量进行限额的情况更为常见,而限制文件数量的情况较少。所设置 的限额数值不应该小于该用户已经使用的数量,否则可能导致该用户无法正常登录系统。另 外,建议不要对root 用户设置磁盘配额,以免对程序及系统的运行和稳定性带来不可预知的风险。

以上对用户账号设置磁盘配额的方法也同样适用于对组账号设置配额,只不过在进入编 辑环境时要使用“-g ”选项指定组账号对象。

3. 验证磁盘配额功能

使用受配额限制的用户账号登录Linux 操作系统,并切换到应用了配额的文件系统中,进行复制文件等写入操作,测试所设置的磁盘配额项是否有效。

在测试过程中,为了快速看到效果,可以使用 dd 转换工具。dd 命令是一个设备转换和 复制命令,分别使用“if=”选项指定输入设备(或文件)、“of=”选项指定输出设备(或文件)、“bs=” 选项指定读取数据块的大小、“count=   ”指 定 读 取 数 据 块 的 数 量 。 

4. 查 看 配 额 使 用 情 况

若需要了解在文件系统中用户或组的配额使用情况,可以使用report   命令查看。结合“-u” 和“-g” 选项分别查看指定用户和组的配额使用情况;结合“ -a” 选项可以查看所有可用分区的配额使用报告。

  • 24
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值