在Linux中扩展/缩减LVM(第二部分)
创始人
2024-03-01 13:58:28
0

前面我们已经了解了怎样使用LVM创建弹性的磁盘存储。这里,我们将了解怎样来扩展卷组,扩展和缩减逻辑卷。在这里,我们可以缩减或者扩展逻辑卷管理(LVM)中的分区,LVM也可称之为弹性卷文件系统。

前置需求

什么时候我们需要缩减卷?

或许我们需要创建一个独立的分区用于其它用途,或者我们需要扩展任何空间低的分区。遇到这种情况时,使用 LVM我们可以很容易地缩减大尺寸的分区,以及扩展空间低的分区,只要按下面几个简易的步骤来即可。

我的服务器设置 —— 需求

  • 操作系统 – 安装有LVM的CentOS 6.5
  • 服务器IP – 192.168.0.200

如何扩展卷组以及缩减逻辑卷

扩展逻辑卷

目前,我们已经有一个PV,VG和2个LV。让我们用下面的命令来列出它们。

# pvs
# vgs
# lvs

Logical Volume Extending

逻辑卷扩展

在物理卷和卷组中没有空闲空间可用了,所以,现在我们不能扩展逻辑卷的大小。要扩展,我们需要添加一个物理卷(PV),然后通过扩展vg来扩展卷组,这样我们就会得到足够大的空间来扩展逻辑卷大小了。所以,首先我们应该去添加一个物理卷。

要添加一个新PV,我们必须使用fdisk来创建一个LVM分区。

# fdisk -cu /dev/sda
  • 选择n来创建新分区。
  • 选择p来创建主分区。
  • 选择我们需要创建的分区号。
  • 如果有其它可用磁盘,请按1
  • 使用t来修改分区类型。
  • 输入8e来将分区类型修改为Linux LVM。
  • 使用p来打印创建的分区(这里我们没有使用该选项)。
  • w写入修改。

完成后重启系统。

Create LVM Partition

创建LVM分区

使用fdisk列出并检查我们创建的分区。

# fdisk -l /dev/sda

Verify LVM Partition

验证LVM分区

接下来,使用下列命令来创建新PV(物理卷)。

# pvcreate /dev/sda1

使用下面的命令来验证pv。

# pvs

Create Physical Volume

创建物理卷

扩展卷组

添加该pv到vg_tecmint卷组来扩展卷组的大小,以获取更多空间来扩展lv

# vgextend vg_tecmint /dev/sda1

让我们检查现在正在使用的卷组的大小。

# vgs

Extend Volume Group

扩展卷组

我们甚至可以看到哪个PV用于创建使用中的特定卷组。

# pvscan

Check Volume Group

检查卷组

这里,我们可以看到卷组所处的物理卷。我们已经添加了一个pv,而且它完全空着。在扩展逻辑卷之前,让我们先看看我们所拥有的各个卷组的大小。

Check All Logical Volume

检查所有逻辑卷

  • LogVol00用于Swap。
  • LogVol01用于/。
  • 现在我们有16.50GB大小的空间用于/(root)。
  • 当前有4226物理扩展(PE)可用。

现在,我们打算去扩展/分区LogVol01。在扩展后,我们可以像上面那样列出它的大小以确认。我们能可以使用GB或PE来扩展,这一点我已经在LVM第一部分解释过了,这里我使用PE来扩展。

要获取可用的物理扩展大小,运行以下命令。

# vgdisplay

Check Available Physical Size

检查可用的物理扩展

总共有4607空闲PE可用,亦即有18GB空间空间可用。因此,我们可以将我们的逻辑卷扩展到18GB这么大。让我们使用PE大小来扩展。

# lvextend -l +4607 /dev/vg_tecmint/LogVol01

使用**+**来添加更多空间。在扩展后,我们需要改变文件系统大小,使用以下命令。

# resize2fs /dev/vg_tecmint/LogVol01

Expand Logical Volume 扩展逻辑卷

  • 用来使用物理扩展扩展逻辑卷的命令。
  • 这里我们可以看到它从16.51GB扩展到了34GB。
  • 如果文件系统已被挂载并处于使用中,改变文件系统大小。
  • 要扩展逻辑卷,我们不需要卸载文件系统

现在,让我们看看当前使用的改变大小后的逻辑卷。

# lvdisplay

Resize Logical Volume

改变逻辑卷大小

  • LogVol01用于扩展的卷 /。
  • 扩展后,从16.50GB上升到了34.50GB。
  • C当前扩展,在扩展前有4226,我们已经添加了4607个扩展,因此现在有8833。

现在,如果我们检查可用的vg的话,空闲PE将会是0。

# vgdisplay

查看扩展的结果。

# pvs
# vgs
# lvs

Verify Resize Partition

验证分区大小改变

  • 添加的新物理卷。
  • 卷组vg_tecmint从17.51GB扩展到了35.50GB。
  • 逻辑卷LogVol01从16.51GB扩展到了34.50GB。

这里,我们已经完成扩展卷组和逻辑卷的过程。让我们一起迈向逻辑卷管理中一些有趣的部分。

缩减逻辑卷(LVM)

这里,我们将了解如何缩减逻辑卷。人人都说它很危险,在缩减lvm的时候可能会导致灾难。缩减lvm在逻辑卷管理中比其它部分要来得确实有趣得多。

  • 在开始之前,备份好数据总是对的,这样如果出错,就不会头痛了。
  • 要缩减逻辑卷,需要小心翼翼地完成5个步骤。
  • 在扩展一个卷的时候,我们可以在该卷挂载时扩展它(在线),但对于缩减,我们必须在缩减前卸载文件系统。

让我们来了解一下下面这5个步骤。

  • 卸载文件系统以便缩减。
  • 在卸载后检查文件系统。
  • 缩减文件系统。
  • 5减少当前逻辑卷大小。
  • 再检查文件系统以防出错。
  • 将文件系统再次挂载回去。

为了演示,我已经创建了独立的卷组和逻辑卷。这里,我将缩减逻辑卷tecmintreducetest。现在它有18GB大小,我们需要将它缩减到10GB而不丢失数据。也就是说,我们需要从18GB中减少8GB。卷中已经有4GB被使用。

18GB ---> 10GB

在缩减大小的时候,我们只需要缩减8GB,所以在缩减后它总计会有10GB。

# lvs

Reduce Logical Volume

缩减逻辑卷

这里,我们可以看到文件系统信息。

# df -h

Check File System Size

检查文件系统大小

  • 卷大小是18GB。
  • 它已经使用了3.9GB。
  • 可用空间是13GB。

首先,卸载挂载点。

# umount -v /mnt/tecmint_reduce_test/

Unmount Parition

卸载分区

然后,使用以下命令来检查文件系统错误。

# e2fsck -ff /dev/vg_tecmint_extra/tecmint_reduce_test

Scan Parition for Errors

扫描分区错误

注意:必须通过所有文件系统检查的5个步骤,若未完全通过,则你的文件系统可能存在问题。

接下来,缩减文件系统。

# resize2fs /dev/vg_tecmint_extra/tecmint_reduce_test 8GB

Reduce File System

缩减文件系统

使用GB来缩减逻辑卷。

# lvreduce -L -8G /dev/vg_tecmint_extra/tecmint_reduce_test

Reduce Logical Partition

缩减逻辑分区

要使用PE来缩减逻辑卷,我们需要知道默认PE大小和卷组的总PE大小,以进行一次小小的计算来得出准确的缩减大小。

# lvdisplay vg_tecmint_extra

这里,我们需要使用bc命令来做一些小计算来获得10GB的PE大小。

1024MB x 10GB = 10240MB or 10GB

10240MB / 4PE = 2048PE

CTRL+D来退出BC。

Calculate PE Size

计算PE大小

使用PE来缩减大小。

# lvreduce -l -2048 /dev/vg_tecmint_extra/tecmint_reduce_test

Reduce Size Using PE

使用PE来缩减大小

将文件系统大小调整回去。在这一步中,如果发生任何错误,这就意味着我们已经将文件系统搞乱了。

# resize2fs /dev/vg_tecmint_extra/tecmint_reduce_test

Resize File System

将文件系统挂载回同样的挂载点。

# mount /dev/vg_tecmint_extra/tecmint_reduce_test /mnt/tecmint_reduce_test/

Mount File System

挂载文件系统

检查分区和文件的大小。

# lvdisplay vg_tecmint_extra

这里,我们可以看到最后的结果,逻辑已经被缩减到10GB。

Verify Logical Volume Size

在本文中,我们已经了解了如何来扩增卷组、逻辑卷以及缩减逻辑卷。在下一部分(第三部分)中,我们将了解如何为逻辑卷做快照并将它恢复到更早的状态。


via: http://www.tecmint.com/extend-and-reduce-lvms-in-linux/

作者:Babin Lonston 译者:GOLinux 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

LVM

相关内容

不支持在MSVC上生成li...
在MSVC上生成libLLVM可能会遇到一些问题,因为LLVM主要...
2025-01-12 00:32:14
BuildingSprin...
使用-GraalVM本机图像编译器,可以构建SpringBoot应...
2024-12-25 14:00:50
BuildaPathofL...
LLVM基本块路径表示函数执行期间的一系列基本块。以下是如何在LL...
2024-12-25 11:30:12
比较LLVM值的类型
要比较LLVM值的类型,可以使用LLVM的Type类以及Value...
2024-12-14 23:00:44
编译最新的Pixel 3X...
这个错误是由于编译Android 10内核时缺少LLVMgold....
2024-12-09 08:01:00
编译一个使用LLVM 17...
下面是一个使用LLVM 17的PassManagerBuilder...
2024-12-09 07:00:10

热门资讯

Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
2024 开年,LLUG 和你... Hi,Linuxer,2024 新年伊始,不知道你是否已经准备好迎接新的一年~ 2024 年,Lin...
什么是 KDE Connect... 什么是 KDE Connect?它的主要特性是什么?它应该如何安装?本文提供了基本的使用指南。科技日...
Opera 浏览器内置的 VP... 昨天我们报道过 Opera 浏览器内置了 VPN 服务,用户打开它可以防止他们的在线活动被窥视。不过...