LVM实用指南

本文是一篇关于Linux LVM的详细指南,涵盖了LVM的基本术语、创建流程,包括磁盘分区、物理卷、卷组、逻辑卷的创建与管理,以及卷组和逻辑卷的扩容与缩容操作。此外,还讨论了LVM的删除操作和容灾注意事项。
摘要由CSDN通过智能技术生成
一、LVM简介

LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制.Linux用户安装Linux操作系统时遇到的一个常见的难以决定的问题就是如何正确地评估各分区大小,以分配合适的硬盘空间。普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻辑分区存放不下某个文件时,这个文件因为受上层文件系统的限制,也不能跨越多个分区来存放,所以也不能同时放到别的磁盘上。而遇到出现某个分区空间耗尽时,解决的方法通常是使用符号链接,或者使用调整分区大小的工具,但这只是暂时解决办法,没有从根本上解决问题。随着Linux的逻辑卷管理功能的出现,这些问题都迎刃而解,用户在无需停机的情况下可以方便地调整各个分区大小。

二、基本术语
  • 物理卷(Physical Volume,PV):指系统的物理存储设备:磁盘,如:/dev/hda、/dev/sda等,是存储系统最底层的存储单元;
  • 卷组(Volume Group,VG):类似于非LVM系统中的物理磁盘,其由一个或多个物理卷PV组成。可以在卷组上创建一个或多个LV(逻辑卷);
  • 逻辑卷(Logical Volume,LV):类似于非LVM系统中的磁盘分区,逻辑卷建立在卷组VG之上。在逻辑卷LV之上可以建立文件系统(比如/home或者/usr等)。

从上面的定义我们可以了解到:逻辑卷(LV)是建立在卷组(VG)上的,而卷组(VG)则是建立在物理卷(PV)上的。
从中还可以作更深一层的理解:LVM的可伸缩性无非是建立在卷组(VG)和逻辑卷(LV)的可伸缩性的基础上的:
- 只要存在尚未使用的磁盘或者分区,就可以动态的扩展卷组(VG)的大小;
- 只要卷组(VG)中存在尚未分配的空间,就可以动态的扩展逻辑卷的大小。
从以上二点出发就可以达到动态调整分区大小的目的。

因为本文中很多的命令都是以上述术语的缩写开头,因此了解各个缩写对命令的记忆和使用是非常有帮助的。

三、基本命令

示例中的 vg1lv1 分别为物理卷组名逻辑卷名,可自行替换成任意名称。

分类 命令 说明 示例
PV pvcreate 创建物理卷 pvcreate /dev/sdb1
PV pvdisplay 显示已创建的物理卷的详细信息
PV pvs 显示已创建的物理卷的汇总信息
PV pvremove 删除物理卷 pvremove /dev/sdb1
VG vgcreate 创建卷组 pvcreate vg1 /dev/sdb1 /dev/sdb2 …
VG vgdisplay 显示已创建的卷组的详细信息
VG vgs 显示已创建的卷组的汇总信息
VG vgextend 扩展卷组 vgextend vg1 /dev/sdb3 …
VG vgreduce 收缩卷组 vgreduce vg1 /dev/sdb5
VG vgremove 删除卷组 vgremove vg1
LV lvcreate 创建逻辑卷 lvcreate -L 1000M -n lv1 vg1
LV lvdisplay 显示已创建的逻辑卷的详细信息
LV lvs 显示已创建的逻辑卷的汇总信息
LV lvresize 重设逻辑卷大小 lvresize -L 1000M /dev/vg1/lv1
LV resize2fs 更新逻辑卷信息(ext4) resize2fs /dev/vg1/lv1
LV lvremove 删除逻辑卷 lvremove /dev/vg1/lv1
LV xfs_growfs 更新逻辑卷信息(xfs) xfs_growfs /dev/vg1/lv1
LV e2fsck 检查逻辑卷错误(ext4) e2fsck -f /dev/vg1/lv1
四、实验的操作环境
  • 虚拟机:VirtualBox 5.6.2
  • 操作系统:CentOS 7.4
  • 磁盘:二块:一块安装操作系统(/dev/sda),容量为20GB; 另一块用于进行lvm分区操作(/dev/sdb),容量为10GB
  • 因为CentOS 7.4默认没有安装支持上述命令的软件包,因此需要提前安装lvm2软件包,具体命令为:yum install -y lvm2
五、创建LVM

在这里我带着大家从一块全新的磁盘开始,一步步创建LVM分区。

流程

先介绍一下流程,以便大家从总体上对创建LVM有一个了解。
1. 对新磁盘进行分区操作(fdisk);
2. 逐一变更分区类型为Linux LVM(Hex代码为:8e);
3. 针对每个分区创建物理卷(pvcreate);
4. 创建卷组(vgcreate);
5. 创建逻辑卷(lvcreate);
6. 格式化(mkfs.ext4/mkfs.xfs),并挂载(mount)。

(一)、磁盘分区及分区类型更改

使用命令fdisk对需要进行LVM操作的磁盘/dev/sdb进行分区

fdisk /dev/sdb

输入n进行分区,一共分五个分区,前三个是主分区,后二个分区在扩展分区里,每个分区2GB。以下只列出第一个分区的操作:

命令(输入 m 获取帮助):n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): p
分区号 (2-4,默认 2):
起始 扇区 (4196352-20971519,默认为 4196352):
将使用默认值 4196352
Last 扇区, +扇区 or +size{K,M,G} (4196352-20971519,默认为 20971519):+2G
分区 2 已设置为 Linux 类型,大小设为 2 GiB

输入p打印分区完成后的情况:

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x231b271d

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     4196351     2097152   83  Linux
/dev/sdb2         4196352     8390655     2097152   83  Linux
/dev/sdb3         8390656    12584959     2097152   83  Linux
/dev/sdb4        12584960    20971519     4193280    5  Extended
/dev/sdb5        12587008    16781311     2097152   83  Linux
/dev/sdb6        16783360    20971519     2094080   83  Linux

分区完成后除了扩展分区(上图的Extended)外,需要变更所有分区的磁盘类型:原类型为Linux,变更后为Linux LVM。这里只列出针对第一个分区的操作:

命令(输入 m 获取帮助):t
分区号 (1-6,默认 6):1
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”

输入p打印分区类型变更后的情况:

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x231b271d

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     4196351     2097152   8e  Linux LVM
/dev/sdb2         4196352     8390655     2097152   8e  Linux LVM
/dev/sdb3         8390656    12584959     2097152   8e  Linux LVM
/dev/sdb4        12584960    20971519     4193280    5  Extended
/dev/sdb5        12587008    16781311     2097152   8e  Linux LVM
/dev/sdb6        16783360    20971519     2094080   8e  Linux LVM

以上操作完成后,输入w将操作写入磁盘,完成分区:

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。
(二)、创建物理卷

针对新创建的分区创建物理卷,这是创建LVM的第一步。使用如下命令对每一个分区进行操作:

pvcreate /dev/sdb1

其他分区的操作类似,这里就不逐一介绍了。
创建完物理卷后,有二种查看的方法:

1、详细信息:pvdisplay,这里只列出第一个分区的信息:

[root@localhost ~]# pvdisplay
  "/dev/sdb1" is a new physical volume of "2.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb1
  VG Name
  PV Size               2.00 GiB
  Allocatable           NO
  PE Size               0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               SCIOKN-i2fO-PylF-CJGI-T8Yw-e2dH-BYX0xq

2、汇总信息:pvs

[root@localhost ~]# pvs
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值