【问题标题】:LVM: Extending Physical Volume (under VMWare)LVM:扩展物理卷(VMWare下)
【发布时间】:2011-10-17 10:50:50
【问题描述】:

我在 VMware 下有一个虚拟服务器,我从 sysadm 获得了 10 GB 以上的硬盘。

在 Linux(运行 Ubuntu 11.04 服务器)内部,使用 LVM 进行设置。在 [c]fdisk 中,我确实发现了这些额外的 10 个演出 - 它们直接存在于主 LVM 分区之后。

我知道我可以用这个额外的空间创建一个新的 LVM 分区,然后将它添加到卷组,然后添加到逻辑卷,然后调整文件系统的大小。

但是,是否可以将这些额外的 gig 同化到现有的 LVM 分区中?这样就增加了 LVM 对物理卷的看法,而不是在卷组中添加另一个物理卷(最好自动渗透到卷组)?

【问题讨论】:

    标签: vmware hard-drive lvm


    【解决方案1】:

    我刚刚在 /dev/sda2 上构建了一个带有 15GB 磁盘和 LVM 的测试虚拟机。然后我将磁盘增加到 20GB,并让 LVM 看到额外的 5GB,而无需添加另一个物理卷。

    这是我遵循的步骤:

    • apt-get install gnu-fdisk(或 yum install gnu-fdisk)

    我不得不使用 gfdisk 来完成整个工作。 “标准” fdisk 运气不好。

    • gfdisk /dev/sda

    切换到“sectors”为单位(这很关键!!!)并打印分区表:

    Command (m for help): u                                                   
    Changing display/entry units to sectors
    Command (m for help): p                                                   
    
    Disk /dev/sda: 21 GB, 21089617920 bytes
    255 heads, 63 sectors/track, 2564 cylinders, total 41190660 sectors
    Units = sectors of 1 * 512 = 512 bytes
    
       Device Boot      Start         End      Blocks   Id  System 
    /dev/sda1   *        2048      499711      257008   83  Linux
    Warning: Partition 1 does not end on cylinder boundary.                   
    /dev/sda2          501758    29798632    14643247   8e  Linux LVM
    Warning: Partition 2 does not end on cylinder boundary.                   
    Command (m for help):                                       
    

    记下“Linux LVM”分区(/dev/vda2)的“开始”扇区。 删除分区并使用相同的“开始”扇区 (501758) 和相同的分区类型 (8e) 重新创建它:

    Command (m for help): d                                                   
    Partition number (1-2): 2                                                 
    Command (m for help): n                                                   
    Partition type                                                            
       e   extended
       p   primary partition (1-4)
    p
    First sector  (default 63s): 501758                                       
    Last sector or +size or +sizeMB or +sizeKB  (default 41190659s):          
    Command (m for help): p                                                   
    
    Disk /dev/sda: 21 GB, 21089617920 bytes
    255 heads, 63 sectors/track, 2564 cylinders, total 41190660 sectors
    Units = sectors of 1 * 512 = 512 bytes
    
       Device Boot      Start         End      Blocks   Id  System 
    /dev/sda1   *        2048      499711      257008   83  Linux
    Warning: Partition 1 does not end on cylinder boundary.                   
    /dev/sda2          501758    41190659    20338290   83  Linux
    Command (m for help): t                                                   
    Partition number (1-2): 2                                                 
    Hex code (type L to list codes): 8e                                       
    Changed type of partition 2 to 8e (Linux LVM)
    Command (m for help):                                                     
    

    警告:请注意,我没有接受分区的默认起始扇区,我是手动输入的,以便它与原始值匹配!我确实接受了“最后一个扇区”的默认值,因为我希望这个分区和磁盘一样大。

    验证您是否使用“p”正确执行了所有操作并将新分区表写入磁盘:

    Command (m for help): w                                                   
    

    重启虚拟机。 现在登录虚拟机并运行:

    root@git:~# pvresize /dev/sda2
      Physical volume "/dev/sda2" changed
      1 physical volume(s) resized / 0 physical volume(s) not resized
    

    完成!现在运行 vgdisplay,您将看到额外的 5GB 可用作为空闲扩展区。

    注意事项:

    1. 如果 LVM 不是虚拟机磁盘上的最后一个(或唯一一个)分区,您可能很难扩展分区的大小。甚至可能是不可能的。
    2. 如果 LVM 位于逻辑分区(这是 Debian 在安装时默认放置的位置),或者换句话说,如果 LVM 位于 /dev/sda5 而不是 /dev/sda2,则必须记下扩展分区(我们称之为/dev/sda2)和逻辑分区(我们称之为/dev/sda5),然后删除两个分区,然后用相同的起始扇区重新创建它们。 /dev/sda2 和 /dev/sda5 的最后一个扇区应该是磁盘的最后一个扇区。
    3. 由于这是一个有风险的过程,我建议在尝试之前备份虚拟机。

    【讨论】:

    • 这在 2021 年仍然有效,谢谢!在 VMware 磁盘增加后,能够使用 parted、reboot、pvrsize 和 lvextend 调整 LVM 分区的大小。
    【解决方案2】:

    这是我在做同样事情时经常使用的说明...

    执行“fdisk –l /dev/sda” 我假设 /dev/sda2 是您的 LVM 分区 而且你没有 /dev/sda3。调整说明以匹配您的配置。

    1) 确保您已扩展 VM 磁盘。

    2) 执行“fdisk /dev/sda”

    • p(查看现有分区)
    • n(新分区)
    • p(主分区)——给它下一个可用的分区号,可能是 3
    • 接受默认值。它将使用磁盘的其余部分
    • w(写入更改)

    3) 重启

    4) 运行‘pvcreate /dev/sda3’

    5) 运行‘vgdisplay’来获取卷组的名称。在此示例中,它是“VolGroup”,如下所示:

    6) 运行 vgextend VolGroup /dev/sda3

    7) 运行“df”查看根卷组的名称。

    8) 运行 lvextend /dev/mapper/VolGroup-lv_root -r -l+100%FREE ( (-r) 选项也会使其格式化)

    9 运行“df –h”查看新磁盘空间

    【讨论】:

    • 这个确实帮助了我。只需要第 5 步及以后,因为我使用 gparted live 来扩展分区
    【解决方案3】:

    这是我更喜欢在虚拟机上拥有一个独立于 /boot 和其他初始部分的大物理卷的原因之一。这允许您将整个磁盘创建为 LVM 物理磁盘 (pvcreate /dev/sdb)。然后,如果您需要调整大小,则无需进行任何文件系统更改,因为它直接在磁盘上。

    在这种情况下,您只需运行 pvresize /dev/sdb 并继续使用您的 vgextend、lvextend 和 resize2fs。维护起来更简单。

    【讨论】:

      【解决方案4】:

      我个人按照this blog中的说明进行操作。

      总结一下步骤:

      • 使用 vm-ware 工具增加虚拟磁盘大小vmware-vdiskmanager
      • 在另一个系统上引导(GParted live CD 或挂载 Iso CD-ROM 以在其上引导)
      • 使用 Gparted 工具(简单的图形界面)增加最近使用的驱动器
      • 移除 CD-ROM(或 ISO)并在原始分区上启动。

      为了扩展我的 Linux VM (RedHat EL 6),我确实在 GParted ISO 映像(来自here)上启动,并且能够扩展我想要的分区。请注意,我必须在最后移动我想要保持不变的分区。

      我的一位同事也很安全,但我建议在运行 Gparted Linux 之前备份 VM。

      【讨论】:

        【解决方案5】:
        echo 1 > /sys/block/sda/device/rescan
        
        partprobe
        
        gdisk fix warnging
        
        parted change partion size
        
        ## parted can executed as command line. but this is very dangerous
        parted -s /dev/sdb "resizepart 2 -1" quit
        parted -s /dev/sdb "resizepart 3 100%" quit
        resizepart 3 100%
        
        pvresize /dev/sda3
        
        lvextend -l +100%FREE cs/root
        
        xfs_growfs /dev/cs/root
        

        【讨论】:

          猜你喜欢
          • 2015-04-19
          • 2021-06-29
          • 1970-01-01
          • 2020-07-23
          • 1970-01-01
          • 2017-06-02
          • 1970-01-01
          • 1970-01-01
          • 2021-06-26
          相关资源
          最近更新 更多