我的服务器有 2TB 的磁盘,最初有人对其进行了如下分区:
- 300GB 标准主分区用于操作系统文件(CentOS 7)。
- 1.7TB LVM 具有一些相当大的逻辑卷 - 可满足其他需求。
由于操作系统文件的实际大小只有 400GB 左右,后来它被移动到 LVM 上它自己的逻辑卷,因此磁盘开头的这个 300GB 分区未被使用。
因此,我删除了这个分区,现在想以某种方式将 PV 的起始位置移动到磁盘的开头,这样它就会利用整个磁盘空间。但我找不到任何工具来做到这一点 -pvextend
只能将 PV 扩展到磁盘末尾,而不能扩展到开头。
是的,我知道我可以将旧分区作为另一个 PV 添加到 VG,但在单个磁盘上有多个 PV 看起来很奇怪。
我也知道我可以将分区复制到某个外部设备或云存储,然后从头开始重新创建物理磁盘分区。但由于服务器停机时间较长,我不想这样做。
那么,有没有什么方法可以快速将 PV 扩展到磁盘的开头?
答案1
如果你现有的 PV 数据小于 300GB
如果现有的 PV 上的数据少于 300GB,那么您只需将这些数据重新定位到磁盘的前面,然后使用即可pvresize
。首先,创建一个新的 pv:
pvcreate /dev/sda1
将数据从现有 pv 重新定位到新的 pv 上:
pvmove /dev/sda2 /dev/sda1
删除旧的 pv:
vgreduce myvg /dev/sda2
现在,使用parted
或fdisk
或任何方法来调整大小/dev/sda1
以覆盖整个磁盘,然后使用pvresize
扩展 pv 以覆盖分区。
使用外部设备无需停机
您可以使用pvmove
将数据迁移到其他设备没有任何服务器停机。您将创建一个新的 pv:
pvcreate /dev/sdb
将其添加到您的 vg:
vgextend myvg /dev/sdb
将数据从现有 pv 重新定位到新的 pv:
pvmove /dev/sda2 /dev/sdb
从卷中删除现有的 pv:
pvremove /dev/myvg /dev/sda2
现在,重新分区 /dev/sda,创建一个新的 pv,并逆转上述过程。