如何在没有LiveCD或不重新启动的情况下在Fedora中调整根LVM分区的大小


24

我有一台虚拟机,其磁盘映像最近从20GB增加到了50GB,并fdisk -l验证了VM是否可以看到这个新大小。现在,我需要调整根LVM分区的大小,以填充额外的30GB。

我发现 几篇 有关调整LVM大小的文章,但是涉及覆盖调整根分区大小的几篇文章都声称您需要从LiveCD引导。有什么方法可以在不关闭服务器的情况下执行此操作?服务器很关键,因此我想最大程度地减少停机时间。

编辑:输出fdisk -l

[root@fedora-host ~]# sudo fdisk -l

Disk /dev/sda: 53.7 GB, 53687091200 bytes
255 heads, 63 sectors/track, 6527 cylinders, total 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00097c90

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048    83886079    41430016   8e  Linux LVM

Disk /dev/mapper/VolGroup-lv_root: 36.1 GB, 36104568832 bytes
255 heads, 63 sectors/track, 4389 cylinders, total 70516736 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/mapper/VolGroup-lv_root doesn't contain a valid partition table

Disk /dev/mapper/VolGroup-lv_swap: 6308 MB, 6308233216 bytes
255 heads, 63 sectors/track, 766 cylinders, total 12320768 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/mapper/VolGroup-lv_swap doesn't contain a valid partition table

编辑:如何调整物理分区的大小?fdisk可以看到可用空间,但是我不知道如何调整主LVM分区的大小以使用它。我尝试引导进入LiveCD并使用parted'd resize命令,但它给我的只是错误“无法检测文件系统”。我找到了该指南该指南说我需要删除该分区并创建一个具有正确大小的新分区,但这听起来非常危险。

最终编辑:Parted的resize命令奇怪地无法调整LVM分区的大小。去搞清楚。相反,我只是删除了旧分区,并按照上面的链接中的概述创建了一个具有新范围的新分区,并且正确调整了LVM分区的大小。然后,我遵循以下建议来调整LVM分区内的卷和文件系统的大小。


向我们展示fdisk-l的输出。您确实调整了分区的大小,而不仅仅是调整了卷的大小?
Zoredache 2012年

@Zoredache,我将输出添加到问题中。
塞林2012年

Answers:


32

您可以在线增加逻辑卷。您必须卸下它来缩小它(这需要LiveCD /救援模式。)

  1. pvresize /dev/sda2(假设您的LVM分区为sda2。请根据需要替换。)
  2. lvextend /dev/mapper/root -l+100%FREE (或者,无论您叫什么根逻辑卷。)
  3. resize2fs /dev/mapper/root (假设ext2 / 3/4)

1
我个人更喜欢lvextend -L [size][unit] /dev/group/volume,如果仅仅是因为我可以通过指定-L +10G
Hubert Kario 2012年

是的,但是OP问;Now I need to resize my root LVM partition to fill the extra 30GB.(这将通过可用的可用空间来增加逻辑卷。)
Aaron Copley 2012年

“新大小(1076个扩展区)与现有大小(1076个扩展区)匹配”
Cerin 2012年

7
我认为这个技巧很巧妙:如果将-r选项添加到lvextend,它将钩住fsadm以调整FS的大小。这将使第三步变得多余。
朱迪C

3
请注意,此答案假设分区已被扩展以填充可用空间,并且仅逻辑卷需要更新。pvresize /dev/sda2在/ dev / sda2分区已使用parted或fdisk调整大小之前,该命令不执行任何操作。我不得不用fdisk调整我的大小,因为我的系统无法显示或没有resize命令。Fdisk的大小调整涉及删除和重新创建分区。
杰森

2

您的系统真的从20 GB更改为50 GB吗?这似乎真的很奇怪,因为您的sda2设备约为40GB,lv_root显示36GB,而swap显示6GB。

您的输出fdisk -l显示的总扇区/dev/sda104857600。使用的最后一个扇区/dev/sda283886079。这告诉我您尚未调整分区大小以使用驱动器上的所有可用空间。pvresize命令不会更改分区表。您需要先更改分区表。


1

安装gparted。以root身份运行(如果是远程,请使用ssh -X或x2go)。选择分区。它应该显示超出末尾的可用空间(右侧)。如果不是,则需要重新引导虚拟机以查看虚拟设备的新大小。那应该使systemd的停机时间最少。

右键单击并选择调整大小。将末端拖到磁盘末端。确保您没有碰到开头。gparted能够在调整大小时移动分区,但这当然会破坏正在运行的系统。但是,结局很好。查看gparted将执行的待处理操作,以确保您正在扩展而不移动分区。单击应用。gparted将更改磁盘上的分区,然后发出内核ioctl以重新读取分区表,并同时更改活动块设备的大小。然后,由于它看到它是LVM PV,因此它将为您运行pvresize。退出gparted,vgs现在显示您的新空间。

我听说有传言说parted可以在没有GUI开销的情况下完成所有这些工作,但是我从来没有想过伏都教。Parted必须是我曾经尝试使用的最糟糕的CLI界面之一。

不要使用fdisk,必须删除分区并重新分配分区以调整大小,默认情况下,它将在写入时擦除LVM2签名。我认为我看到了“高级”选项来关闭这种破坏性行为,但我从未测试过。

您也可以尝试cfdisk(诅咒fdisk)。它可能具有可用的分区调整大小。手动运行pvresize很容易,并且有一个命令告诉内核重新读取分区表。但是我必须进行测试以确保它不会像fdisk那样擦除LVM签名。


0

如果LVM物理卷位于分区上,那么没有重新启动就无法调整其大小。

您可以在驱动器上编辑分区表,但是Linux会在重新引导之前拒绝使用它。

如果您使用的是XFS,请切换resize2fsxfs_growfs

您可以通过显示在卷组中使用PV的和LVS pvslvs

原始磁盘上的PV

pvresize /dev/sda
lvextend /dev/<volume-group>/<lv-name> -L +<size>G
resize2fs /dev/<volume-group>/<lv-name>

分区上的PV

首先,你必须调整分区大小,用途partedfdisk或类似手段。请记住,那些工具编辑分区所在位置的描述,它们不会移动数据。换句话说,您可以轻松地仅扩展磁盘上的最后一个分区。然后重新启动计算机,然后您应该能够通知LVM它有更多可用空间:

pvresize /dev/sda2
lvextend /dev/<volume-group>/<lv-name> -L +<size>G
resize2fs /dev/<volume-group>/<lv-name>

使用Gparted Live CD,sudo pvresize /dev/sda2报告“已调整1个物理卷的大小”,但sudo lvextend /dev/mapper/VolGroup-lv_root -L +10G失败,并显示错误消息“可用空间不足:需要320个盘区,但只有0个可用”。sudo fdisk -l报告我有54G可用,而sudo pvdisplay报告仅使用40G。为什么lvextend失败?
塞林2012年

1
@Cerin,您错过了Huberts关于分区上PV的第一条声明。 首先,您必须调整分区的大小,为此使用parted,fdisk或类似工具
Zoredache 2012年

@Zoredache,好吧,那基本上就是我的全部问题。我不知道该怎么做。我刚启动进入Gparted LiveCD,并尝试使用parted的resize命令来增加主分区的大小,但是它给了我错误“无法检测文件系统”。如何使用parted或fdisk调整分区大小?
塞林2012年

@Cerin:搜索SF或提出其他问题
Hubert Kario

0

我会考虑检查ssm(system-storage-manager),如果它在您的发行版中可用。

请查看此以获取更多信息:https : //unix.stackexchange.com/a/293173

ssm似乎可以更轻松地调整逻辑卷的大小,而无需您自己做任何事情。

在重新启动操作系统并首先以root用户身份登录后,我可以使用它来扩展主分区。(必须重新启动两次,但最终还是可以,我现在在/ home分区中有额外的50G可用。)


0

结合25种方法后,我终于有了解决方案。它不需要实时CD,它是完全动态的。

步骤1.使用parted(无gui)格式化分区。在此示例中,虚拟盒中磁盘的最大大小从8BG增加到32 GB。

    # parted
       ....
       Number   Begin   End     Size     Type     FileSystem       Flags
         1      1049kB  1075MB  1074MB   primary  ext4             boot
         2      1075MB  8590MB  7515MB   primary                   lvm
       ....
    (parted) mkpart primary ext2 8590 100%
       ....
       Number   Begin   End     Size     Type     FileSystem       Flags
         1      1049kB  1075MB  1074MB   primary  ext4             boot
         2      1075MB  8590MB  7515MB   primary                   lvm
         3      8590MB  34,4GB  25,8GB   primary  ext2             lba
       ....
    (parted) set 3 lvm on
    (parted) set 3 lba off
    (parted) print
       ....
         3      8590MB  34,4GB  25,8GB   primary  ext2             lvm
       ....
    (parted) quit

步骤2.基于新分区创建物理卷

# pvcreate /dev/sda3
  Physical volume "/dev/sda3" successfully created.

步骤3.将物理卷添加到卷组。在普通的fedora 28服务器安装中,该卷组称为fedora。

# vgextend fedora /dev/sda3
  Volume group "fedora" successfully extended

步骤4.将卷组中的可用空间添加到逻辑卷。在普通的fedora 28服务器安装中,逻辑卷称为root。

# lvextend -l+100%FREE /dev/fedora/root
  Size of logical volume fedora/root changed from <6,20 GiB (1586 extents) to 30,19 GiB (7729 extents).
  Logical volume fedora/root successfully resized.

步骤5.告诉逻辑卷中的文件系统使用额外的空间。在fedora中,文件系统为xfs。

注意!xfs_growfs使用安装点来标识文件系统,而不是您在df输出中找到的文件系统的名称!

命令“ xfs_growfs / dev / mapper / fedora-root”将告诉您/ dev / mapper / fedora-root不是已安装的XFS文件系统。如果您使用其他文件系统,请参阅https://www.tldp.org/HOWTO/LVM-HOWTO/extendlv.html

# xfs_growfs /
    data blocks changed from 1624064 to 7914496

第6步。享受

# df
FileSystem               1K-blocks      Used   Available used% Mounted on
....
/dev/mapper/fedora-root   31647744   6492840    25154904  21% /
/dev/sda1                   999320    125576      804932  14% /boot
....

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.