一、前言

在实际生产中,有时会遇到磁盘分区空间不足的情况,这时候就需要对磁盘进行扩容,普通情况下需要新加一块磁盘,重分区、格式化、数据复制、卸载旧分区、挂载新分区等繁琐的步骤,而且有可能造成数据的丢失。其实,我们可以在安装系统时使用 LVM (Logical Volume Manager,逻辑卷管理器)来管理我们的文件系统,这样就可以弹性或者动态地调整文件系统的容量,而且是在不丢失数据和不停机的情况下调整分区大小。LVM 是 Linux 系统对磁盘分区的一种管理机制,是在磁盘分区之上建立一个逻辑层,这个逻辑层让多个硬盘或者分区看起来像一块逻辑硬盘,然后将这块逻辑硬盘分成逻辑卷之后使用,从而大大提高了分区的灵活性。

二、基本概念

PE(Physical Extend):物理拓展,PE 是用来保存数据的最小单元,数据实际上都是写到 PE 当中的,PE 的大小可以配置,默认是 4 MB。

PV(Physical Volume):物理卷,就是真正的物理硬盘或者分区。

VG(Volume Group):卷组,将多个物理卷组合起来就成了卷组,可以由一个多个物理卷组成。组成同一个卷组的物理卷可以是同一块硬盘的不同分区,也可以是不同硬盘上的不同分区,可以将卷组看做一块逻辑硬盘。

LV(Logical Volume):逻辑卷,卷组是一块逻辑硬盘,硬盘必须分区之后才能使用,我们把这个分区称作逻辑卷。逻辑卷可以被格式化和写入数据,我们可以将逻辑卷看做分区。

因此,我们在建立 LVM 的时候,需要按照如下步骤类进行:

(1)把物理硬盘分成分区,当然也可以是整块的物理硬盘。

(2)把物理分区建立为物理卷(PV),也可以直接把整块硬盘都建立为物理卷。

(3)把物理卷整合为卷组(VG)。卷组就已经可以动态地调整大小了,可以把物理分区加入卷组,也可以把物理分区从卷组中移除。

(4)把卷组再划分为逻辑卷(LV),当然逻辑卷也是可以直接调整大小的。

(5)将逻辑卷可以看做一个分区,所以也需要格式化。

(6)将格式化之后的分区挂载到指定的目录。

(7)修改 /etc/fstab,设置开机自动挂载新分区。

LVM 常用命令如下:

三、使用 LVM 创建逻辑卷

其实在安装 Linux 系统时,在采用的图形化安装界面中,就可以直接把硬盘配置成 LVM 或者 RAID,但是通常我们只分配了基本的标准分区。如下界面:

如果在安装系统时没有设置,可以在系统安装完之后,使用命令模式来设置 LVM 和 RAID。

首先需要添加物理硬盘,添加前分区情况:

添加一块新的磁盘,大小为 10GB:

重启系统后,磁盘情况为:

发现系统已经识别到了新的磁盘 /dev/sdb,然后我们开始分区。当然了,也可以不用分区,直接将整个硬盘 /dev/sdb 去创建物理卷。

3.1  硬盘分区

命令:fdisk /dev/sdb

如果不知道 fdisk 里面的具体操作,可输入 m 进行帮助。最常用的是 n(新建)、d(删除)、p(打印)、q(退出)、t(修改系统标识符)、w(写入并退出)

建立新的分区:

输入 p 打印现有分区情况(此时显示还没有分区)

输入 n 新建分区输入 p 为建立主分区(此时的 p 是在 n 后的,不是打印)

输入 1 为建立第一个主分区分区起始位置可以直接回车,默认是1

分区最后位置为 500(因为每个柱面约 8M,500 柱面约是 4 G,用来建立该磁盘的第一个分区 /dev/sdb1)

输入 p 打印分区情况,发现已建立一个分区 /dev/sdb1,但是此分区为 Linux 格式,而不是我们需要使用的 Linux LVM 格式

改变系统标识符:

输入 t 改变分区1的属性

输入 L 查看有个属性对应的命令

输入 8e 改变分区1为 Linux LVM 格式,83对应的分区系统 ID 为 83

输入 p 打印分区情况,发现建立的分区 /dev/sdb1 为 Linux LVM 格式

同样的方式去建立第二块分区 /dev/sdb2:

并修改分区系统标识 ID 为 8e,如下:

输入 w,保存分区设置并退出,重新查看分区情况,如下:

可以看到此时已经将磁盘 /dev/sdb 分了两个区,分别为 /dev/sdb1 和 /dev/sdb2

使用 partprobe 重新读取分区表,或者重启系统,可以忽略如下警告信息:

3.2 创建物理卷 PV

扫面系统 PV:pvscan

创建 PV:pvcreate /dev/sdb1 /dev/sdb2

查看 PV:pvdisplay

删除 PV:pvremove

这样我们就分别创建了 3.83 GB 和 3.06 GB 的 PV,注意 Allocatable 为 NO

首先检查系统中是否已经安装了 LVM 工具,如下:

[root@ryan yum.repos.d]# rpm -qa |grep lvm
mesa-private-llvm-3.6.-.el6.x86_64
[root@ryan yum.repos.d]# yum install lvm*
......
[root@ryan yum.repos.d]# rpm -qa |grep lvm
lvm2-2.02.-.el6_9..x86_64
lvm2-libs-2.02.-.el6_9..x86_64
lvm2-cluster-2.02.-.el6_9..x86_64
mesa-private-llvm-3.6.-.el6.x86_64
lvm2-devel-2.02.-.el6_9..x86_64

操作如下:

3.3 创建卷组 VG

扫面系统 VG:vgscan

创建 VG:vgcreate vg_ryan /dev/sdb1 /dev/sdb2

查看 VG:vgdisplay

删除 VG:vgremove

扩展 VG:vgextend

缩小 VG:vgreduce

这样我们就创建了一个 6.89G(1764 个PE,要记住这个数字,每个 PE 默认是 4 MB)的 VG(名字为 vg_ryan)

3.4 创建逻辑卷 LV

扫面系统LV:lvscan

创建LV:lvcreate -l 1280 -n lv_ryan vg_ryan (1280 是 VG 中 PE 的个数,此处划分出 5 GB 的逻辑卷),其中 -L 选项后可以指定容量,-l 选项后可以指定基本单元 PE 的个数,-n 后面跟 LV 的名称。

查看LV:lvdisplay

这样我们就创建了一个名字为 lv_ryan 的LV

3.5 格式化逻辑卷

将逻辑卷可以看成一个分区,所以也需要格式化,命令:mkfs -t ext4 /dev/vg_ryan/lv_ryan 或 mkfs.ext4 /dev/vg_ryan/lv_ryan

创建好 LV 之后,会在 /dev 目录下看到我们的 LV 信息,例如 /dev/vgname/vgname,我们每创建一个 VG,其会在 /dev 目录下创建一个以该 VG 名字命名的子目录,在该 VG 的基础上创建好 LV 以后,我们会在 VG 目录下看到以该 LV 名字命名的逻辑卷。

3.6 挂载逻辑卷

创建目录并挂载

创建目录:mkdir /opt/lvm_ryan

挂载:mount /dev/vg_ryan/lv_ryan /opt/lvm_ryan

查看:df -h

可以看到系统已经挂载了刚刚创建的 LV。

3.7 设置开机挂载

将 /dev/mapper/vg_ryan-lv_ryan /opt/lvm_ryan ext4 defaults 0 0 写入 /etc/fstab

至此,逻辑卷已经创建完毕,可以正常使用了。

四、扩展逻辑卷

这样我们就将vg_test增加了 5.02G(1284 个Free PE,要记住这个数字)

只要卷组 vg_ryan 中有足够的空间,就可以为逻辑卷 lv_ryan 扩容。

4.1 扩展 VG 容量

假如此时卷组中容量不足,则可以需要先扩展卷组容量,比如可以先创建分区 /dev/sdb3,然后创建物理卷,再添加到卷组 vg_ryan 中,如下:

增加 VG:vgextend vg_ryan /dev/sdb3

查看 VG:vgdisplay

4.2 扩展 LV 容量

增加 LV:lvresize -l +200 /dev/vg_ryan/lv_ryan( 200 是 VG 中 Free PE 的个数),也可以使用 lvextend,但是 lvextend 只能增加容量,而 lvresize 既能增加也能减少容量。

查看 LV:lvdisplay

此时发现逻辑卷的容量没有发生变化,那是因为这个分区还没有使用这个新扩展的逻辑卷容量,所以还需要使用 resize2fs 命令来调整分区的大小。

4.3 增加文件系统的容量

命令:resize2fs /dev/vg_ryan/lv_ryan

可以看到文件系统 lv_ryan 已经由 4.8G 增加至 5.6G,至此逻辑卷扩展完成。

参考文档

(转)Linux LVM逻辑卷配置过程详解(创建、扩展、缩减、删除、卸载、快照创建)

CentOS 6.3下配置LVM(逻辑卷管理)

Linux系统下创建LV(逻辑卷)并挂载

Linux系统下增加LV(逻辑卷)容量

Linux系统下减少LV(逻辑卷)容量

Linux 笔记 - 第十七章 Linux LVM 逻辑卷管理器的更多相关文章

  1. LVM逻辑卷管理器

    LVM概述 通过使用Linux的逻辑卷管理器(Logical Volume Manager, LVM),用户可以在系统运行时动态调整文件系统的大小,把数据从一块硬盘重定位到另一块硬盘,也可以提高I/O ...

  2. LVM逻辑卷管理测试——创建逻辑卷

    虚拟机里再添加两块硬盘,如下所示: 启动系统后,我们可以看到新添加的两块硬盘为/dev/sdb和/dev/sdc.每个2GB. [root@lxjtest ~]# fdisk -l Disk /dev ...

  3. LVM逻辑卷管理测试——逻辑卷扩展、收缩、快照及删除

    一.逻辑卷扩展 [root@lxjtest /]# umount /testLVM/ [root@lxjtest /]# df -h Filesystem Size Used Avail Use% M ...

  4. Linux逻辑卷管理器(LVM)

    LVM基础 通过使用Linux的逻辑卷管理器(Logical Volume Manager, LVM),用户可以在系统运行时动态调整文件系统的大小,把数据从一块硬盘重定位到另一块硬盘,也可以提高I/O ...

  5. linux的存储管理(RALD) LVM 逻辑卷管理 虚拟阵列

    磁盘存储管理 LVM 逻辑卷 虚拟阵列 1.Linux系统中 磁盘使用 存在3个大问题: 1.灵活性 2.安全性 3.性能 2.解决办法RAID独立磁盘冗余阵列 RAID(Redundant Arra ...

  6. Linux系统磁盘管理(lvm逻辑卷管理)

    linux系统用户常遇到的一个问题就是如何精准的评估分区的大小,已分配合适的磁盘空间:普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻辑分区存放不下某个文件时,这个文件因为受上层文 ...

  7. 【Linux】LVM 逻辑卷管理

    LVM - 逻辑卷管理 简介 LVM(Logical Volume Manager), 即逻辑卷管理,是Linux环境下对磁盘分区进行管理的一种机制. 相关名词 PV(physical volume) ...

  8. 『学了就忘』Linux文件系统管理 — 65、LVM逻辑卷管理介绍

    目录 1.LVM逻辑卷管理的简介 2.LVM逻辑卷管理的原理 3.总结建立LVM分区的步骤 1.LVM逻辑卷管理的简介 LVM是Logical Volume Manager的简称,中文就是逻辑卷管理. ...

  9. Linux之LVM逻辑卷管理

    LVM逻辑卷管理 LVM机制:PV物理卷,VG卷组,LV逻辑卷. --功能-- --物理卷管理-- --卷组管理-- --逻辑卷管理-- create(建立) pvcreate vgcreate lv ...

随机推荐

  1. 十分钟入门流处理框架Flink --实时报表场景的应用

    随着业务的发展,数据量剧增,我们一些简单报表大盘类的任务,就不能简单的依赖于RDBMS了,而是依赖于数仓之类的大数据平台. 数仓有着巨量数据的存储能力,但是一般都存在一定数据延迟,所以要想完全依赖数数 ...

  2. Docker系列之.NET Core入门(三)

    前言 在Docker生态系统中除了上一节所讲解的基本概念,还有其他专业术语,本文我们将一笔带过,同时会开始陆续进入到在.NET Core中使用Docker. 专业术语 Docker Engine(Do ...

  3. Tomcat源码分析 (十)----- 彻底理解 Session机制

    Tomcat Session 概述 首先 HTTP 是一个无状态的协议, 这意味着每次发起的HTTP请求, 都是一个全新的请求(与上个请求没有任何联系, 服务端不会保留上个请求的任何信息), 而 Se ...

  4. C#高级语法之泛型、泛型约束,类型安全、逆变和协变(思想原理)

    一.为什么使用泛型? 泛型其实就是一个不确定的类型,可以用在类和方法上,泛型在声明期间没有明确的定义类型,编译完成之后会生成一个占位符,只有在调用者调用时,传入指定的类型,才会用确切的类型将占位符替换 ...

  5. unity_小功能实现(敌人追踪主角)

    1.敌人发现主角有两种形式: a.看见主角(主角出现在敌人的视野之内) b.听见主角(听见主角走路声或者是跑步声) a:看(see) 首先判断主角是否在敌人视野角度内,那么我们只需要判断B<0. ...

  6. 使用ansible对思科交换机备份

    先决条件 - 了解ansible基本操作 - 了解网络设备相关操作 - 了解linux相关操作 安装 安装EPEL yum install https://dl.fedoraproject.org/p ...

  7. 微擎 人人商城 增加营收比统计(即每个订单支持多少,收入多少,总得统计)多表联合查询, sum统计一对多总和 联合 group by 进行查询

    在公司要求增加一项统计,即营收比, 每个订单收入多少 支出多少,盈利多少,盈利比都详细记录下来. 在做完针对单个订单的营收比之后(支出储存在 ewei_shop_order_external_pay ...

  8. 深度学习常见的优化方法(Optimizer)总结:Adam,SGD,Momentum,AdaGard等

    机器学习的常见优化方法在最近的学习中经常遇到,但是还是不够精通.将自己的学习记录下来,以备不时之需 基础知识: 机器学习几乎所有的算法都要利用损失函数 lossfunction 来检验算法模型的优劣, ...

  9. ST算法 Sliding Window algorithm template

    ST算法(Sliding Window):A easy way to slove the substring problems algorithm template to slove substrin ...

  10. Gym 100851 题解

    A: Adjustment Office 题意:在一个n*n的矩阵,每个格子的的价值为 (x+y), 现在有操作取一行的值,或者一列的值之后输出这个和, 并且把这些格子上的值归0. 题解:模拟, 分成 ...