使用物理扩展名和pvresize扩展LVM卷组

我有两个与LVMpipe理卷有关的LVM问题。

首先 ,从我读过的有关LVM以及卷组和物理扩展之间关系的(编辑: )文档中,如果要将VG增长到大于256GB,则必须具有大于4MB的PE大小。 一个例子是从这篇文章中 ,它显示了一个消息,说:“ 最大逻辑卷大小为255.99千兆字节 ”与4MB的PE。 不过,我认为这意味着如果PE大小为4MB,VG将不允许您为其定义/添加超过256GB的卷,并且如果尝试了这个值,则会引发错误或至less发出警告。 我把它提出来,因为我有一个虚拟机,它显示了它的一个卷组(摘录):

VG Size 499.50 GiB PE Size 4.00 MiB Total PE 127872 Alloc PE / Size 127872 / 499.50 GiB Free PE / Size 0 / 0 

VG由两个物理卷组成,一个是100GB(/ dev / sda2),另一个是400GB(/ dev / sda3)。 我怎么可能成功(?)在这个VG中定义了500GB的空间,只有4MB的PE大小? 我还没有做一个实际的testing,试图填充安装的逻辑卷,看看我是否确实可以存储500GB,但除非LVM运行的方式发生了变化,逻辑卷“停止写入”数据一旦达到256GB利用空间,尽pipe它显示了剩余的244GB? 不pipe我能成功地将VG的PE大小(in-place)更改为8MB吗?

其次 ,如果我更愿意扩展LVM分区/物理卷来增长以利用增加的空间,那么当我增加一个vmdk硬盘大小时,而不是创build一个新的物理卷并将其添加到VG中( 因为这篇优秀的文章涵盖了VMWare )那么我会使用pvresize ? 我的约束是不会破坏任何现有的数据,只是增加卷的空间,这是VMWare知识库文章所完成的,而我在阅读这个SE问题后 ,是否只能扩展音量或者是否必须“删除和创造一个更大的“。

由于VMWare文章依赖于添加主分区的能力,所以显然只能按照最多4个主分区的顺序进行操作,在此之后,您不能再增长卷,或者我认为您必须使用像pvresize(这是我不知道如何正确使用/不愿意尝试,因为害怕破坏现有的数据)。 任何指针是否可以做pvresize我在找什么?

回答第一个问题

请考虑一下,你基于所有的考虑是非常过时的文章 ! 即使链接的HOWTO页面中没有明确的date报告,查看与上述HOWTO相关的代码 ,您可以看到2000年的内核2.3.99! 15年前!

这完全符合我的直接经验,在那里我没有任何问题,几乎没有问题,具有多TB的4MB PE。 下面是一个正在运行的系统的输出:一个基于5 x 2TB S-ATA磁盘的RAID5 VG(vg_raid),服务于一个7.28 TB LV(lv_raid):

 [root@nocdump ~]# cat /etc/centos-release CentOS release 6.5 (Final) [root@nocdump ~]# uname -r 2.6.32-431.17.1.el6.x86_64 [root@nocdump ~]# rpm -q lvm2 lvm2-2.02.100-8.el6.x86_64 [root@nocdump ~]# vgdisplay --- Volume group --- VG Name vg_raid System ID Format lvm2 Metadata Areas 5 Metadata Sequence No 19 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 1 Max PV 0 Cur PV 5 Act PV 5 VG Size 9,10 TiB PE Size 4,00 MiB Total PE 2384655 Alloc PE / Size 2384655 / 9,10 TiB Free PE / Size 0 / 0 VG UUID rXke5K-2NOo-5jwR-74LT-hw3L-6XcW-ikyDp0 [root@nocdump ~]# pvdisplay --- Physical volume --- PV Name /dev/sdb1 VG Name vg_raid PV Size 1,82 TiB / not usable 4,00 MiB Allocatable yes (but full) PE Size 4,00 MiB Total PE 476931 Free PE 0 Allocated PE 476931 PV UUID 7ToSLb-H9Of-unDk-Yt22-upwi-qkVE-ZiEKo2 --- Physical volume --- PV Name /dev/sdc1 VG Name vg_raid PV Size 1,82 TiB / not usable 4,00 MiB Allocatable yes (but full) PE Size 4,00 MiB Total PE 476931 Free PE 0 Allocated PE 476931 PV UUID PaUyX1-jykz-B2Tp-KE2M-9VaT-E4uY-iv8ppi --- Physical volume --- PV Name /dev/sdd1 VG Name vg_raid PV Size 1,82 TiB / not usable 4,00 MiB Allocatable yes (but full) PE Size 4,00 MiB Total PE 476931 Free PE 0 Allocated PE 476931 PV UUID DCag4w-CWbp-bUUI-7S24-JCFL-NlUK-Vgskab --- Physical volume --- PV Name /dev/sde1 VG Name vg_raid PV Size 1,82 TiB / not usable 4,00 MiB Allocatable yes (but full) PE Size 4,00 MiB Total PE 476931 Free PE 0 Allocated PE 476931 PV UUID 3GW2LM-b01Y-oIgd-DHJf-Or0a-fys2-wLesSX --- Physical volume --- PV Name /dev/sdf1 VG Name vg_raid PV Size 1,82 TiB / not usable 4,00 MiB Allocatable yes (but full) PE Size 4,00 MiB Total PE 476931 Free PE 0 Allocated PE 476931 PV UUID fxd1rG-E9RA-2WsN-hLrG-6IgP-lZTE-0U52Ge [root@nocdump ~]# lvdisplay /dev/vg_raid/lv_raid --- Logical volume --- LV Path /dev/vg_raid/lv_raid LV Name lv_raid VG Name vg_raid LV UUID fRzAnT-BQZf-J1oc-nOK9-BC10-S7w1-zoEv2s LV Write Access read/write LV Creation host, time nocdump, 2014-05-23 00:17:02 +0200 LV Status available # open 1 LV Size 7,28 TiB Current LE 1907720 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 1280 Block device 253:15 

回答第二个问题

你说:“ ……我怀疑……你只能扩大音量还是要”删除并创build一个更大的…

让我们澄清一些初步的概念:

  1. 假设您处于正常情况下 :您有一个具有常见msdos分区的硬盘。 因此,您最多有4个主分区;

  2. 假设您的LVM物理卷是在上述4个主分区之一的顶部定义的,并且此类LVM分区(types8e)跨越磁盘的最大可用空间(换句话说,其间没有其他分区LVM-Type-8e和磁盘的末端)

所以,基于上述,你有一个类似于这样的硬盘:

 [root@nocdump ~]# parted /dev/sda print Modello: ATA ST2000DM001-1E61 (scsi) Disco /dev/sda: 2000GB Dimensione del settore (logica/fisica): 512B/4096B Tabella delle partizioni: msdos Numero Inizio Fine Dimensione Tipo File system Flag 1 1049kB 525MB 524MB primary ext4 avvio 2 525MB 1999GB 1998GB primary lvm 

在这样的情况下:

  1. 如果您的空间不足,则必须考虑:

    3a)将要填充的是你的文件系统(这个东西通常被称为EXT3,EXT4,NTFS,FAT32,HFS等)。

    3b)你的文件系统被封装在一个设备中。 在非LVM的情况下,这样的设备最终是一个“分区”。 但就你而言,就像我们使用LVM一样,这样的设备是一个LVM逻辑卷

    3c)逻辑卷包含在LVM卷组中

    3d)卷组由物理卷组成;

    3e)物理卷build立在“设备”之上(与非LVM场景中的步骤3b相同的设备),在你的情况下,这样的设备是一个主分区(在我的例子中是/ dev / sda2) )

所以:

  1. 在你的情况下,放大文件系统所需的步骤是:

    i)通过在磁盘末端添加“未分区的空间”来放大物理磁盘;

    ii)给LVMselect使用这样的未分区空间。 这可以通过两种不同的模式来实现:

    iii / 1)放大LVM-8e分区,这样它就会在磁盘的新的一端结束(如果现有的分区是磁盘上的最后一个分区,这是唯一可能的,因此在上面第2点的要求)

    iii / 2)将未分区空间分配给新的主分区,分配types8e。 这将是一个新的LVM-Physical_Volume,用于放大Volume_Group;

正如你似乎对第三/ 1点感兴趣的那样,我会把重点放在这个上。 那么… 如何扩大现有的主分区

警告!:这将是有风险的! 确保您已经对数据进行了适当的备份,同时也要制定适当的灾难恢复计划。 如果您不了解您正在运行的风险,请不要继续!

答案很简单。 由于磁盘分区表中的START_CYLINDER和END_CYLINDER引用了主分区,因此只需修改END_CYLINDER即可。 START和END柱面的当前值可以通过“fdisk -lu / dev / sda”获取,如下所示:

 [root@nocdump ~]# fdisk -lu /dev/sda Disco /dev/sda: 2000.4 GB, 2000398934016 byte [...] Sector size (logical/physical): 512 bytes / 4096 bytes [...] Dispositivo Boot Start End Blocks Id System [...] /dev/sda2 1026048 3904294911 1951634432 8e Linux LVM 

所以我的/ dev / sda2从1026048开始,到3904294911结束。 现在,您可以简单地删除/ dev / sda2分区,并创build一个新的分区,从1026048开始,直到放大的驱动器的新结束。 不要忘了将8etypes分配给这样的分区,显然,不要忘记保存更改。 如果你对这个过程不感到“舒适” – 因为这是有风险的 – 你唯一的select是iii / 2

  • 四)现在你有一个扩大的分区,你必须说服你的操作系统重新加载分区表。 在你提到的SF问题中 ,有很多细节。 作为最坏的情况,你将需要重新启动你的服务器

  • v)现在你已经有了一个放大的分区,并且它被操作系统正确的识别, 你有一个新的问题 :你有一个LVM-Physical_Volume,知道它是一定的大小(原始大小),而这样的大小比底层的8e-Physical分区(你刚刚放大)要小。 你可以自己检查这种不匹配:

  • pvdisplay :显示原始,更小,尺寸;
  • lvmdiskscan -l :显示新的,更大的尺寸。 一旦上面的数字已知,您可以使用“ pvresize ”及其“ setphysicalvolumesize ”参数将PV元数据重新设置为新的更大的大小,如下所示:

    pvresize --setphysicalvolumesize 49.51G /dev/sda2

请注意,我强烈build议在pvresize中使用比lvmdiskscan显示的略小的值。 这是因为如果错误地将光伏尺寸设置为比物理可用空间更大的值,可能会发生非常糟糕的事情(如挂起的LV,无法恢复在线!)。 所以如果你有一个49.52G的物理分区,你应该设置物理卷大小为49.51G。

  • vi)现在你有了一个放大的PV,你的VG中有可用的空间,而且…这样的空闲空间可以分配给你的LV。 所以…

  • vii)你可以用lvextend命令扩展你的LV。 在我的情况下,我决定分配100%的空闲空间(在VG中),我使用了: lvextend -l +100%FREE /dev/vg_raid/lv_raid

我们已经完成了。 现在我们有一个扩展的LV,不幸的是,它里面还有一个“更小”的文件系统。 如果你依靠EXT3或EXT4,你可以使用resize2fs 。 从其手册:

resize2fs程序将调整ext2,ext3或ext4文件系统的大小。[…]如果安装了文件系统,假设内核支持联机resize,它可以用来扩展已安装文件系统的大小。

resize2fs完成resize所花费的时间将取决于多个因素:文件系统的大小和在其上运行的I / O活动是最重要的。

就这样。

再一次: 在做所有上面的事情时要小心,如果你稍微觉得你正在冒任何风险,请不要继续! 如果出现问题,不要责怪我!