如何将LVM PV扩展到磁盘的开头?

我有2TB磁盘的服务器,最初有人像这样分区

  • 用于操作系统文件的300GB标准主分区(CentOS 7)。
  • 1.7TB LVM具有一些相当大的逻辑卷 – 用于其他需求。

由于操作系统文件的实际大小仅为400GB左右,后来被转移到LVM自己的逻辑卷上,所以这个在磁盘开始的300GB的分区变得没有用了。

所以,我删除了这个分区,现在想把PV的开始位置移动到磁盘的开始位置,所以它会利用整个磁盘空间。 但是我找不到任何工具来这样做 – pvextend只能将PV扩展到磁盘结束,而不是开始。

是的,我知道我可以将旧的分区添加到VG作为另一个PV,但是在单个磁盘上有多个PV,看起来就像是非常奇怪的事情。

另外我知道我可以将分区复制到某个外部设备或云存储,然后重新创build物理磁盘分区。 但是我不想要这个,因为服务器停机时间很长。

那么,有什么办法可以快速将PV扩展到磁盘的开始?

如果您现有的PV有<300GB的数据

如果您现有的PV上的数据less于300GB,那么您可以简单地将该数据重定位到磁盘前面,然后使用pvresize 。 首先,创build一个新的PV:

 pvcreate /dev/sda1 

将数据从现有的pv重新定位到新的pv上:

 pvmove /dev/sda2 /dev/sda1 

删除旧的电视:

 vgreduce myvg /dev/sda2 

现在,使用partedfdisk或其他来调整/dev/sda1来覆盖整个磁盘,然后使用pvresize扩展pv来覆盖分区。

在没有停机的情况下使用外部设备

您可以使用pvmove将数据重定位到其他设备, 而无需任何服务器停机。 你会创build一个新的PV:

 pvcreate /dev/sdb 

把它添加到你的vg:

 vgextend myvg /dev/sdb 

将数据从现有的pv重新定位到新的pv:

 pvmove /dev/sda2 /dev/sdb 

从卷中删除现有的光盘:

 pvremove /dev/myvg /dev/sda2 

现在,重新分区/ dev / sda,创build一个新的pv,并且颠倒上面的过程。