ruf*_*nov 5 linux partition lvm
我有一个 2TB 磁盘的服务器,有人最初这样分区:
由于操作系统文件的实际大小原来只有400GB左右,后来它被移到了LVM上自己的逻辑卷,所以磁盘开头的这个300GB分区就没有使用了。
所以,我删除了这个分区,现在想以某种方式将 PV 的开始位置移动到磁盘的开头,这样它将利用整个磁盘空间。但是我找不到任何工具来这样做 -pvextend
只能将 PV 扩展到磁盘的末尾,而不是开头。
是的,我知道我可以将旧分区作为另一个 PV 添加到 VG,但是在单个磁盘上拥有多个 PV 看起来很奇怪。
我也知道我可以将分区复制到一些外部设备或云存储,然后从头开始重新创建物理磁盘分区。但我不想要这个,因为服务器停机时间很长。
那么,有没有什么办法可以快速将 PV 扩展到磁盘的开头呢?
lar*_*sks 10
如果您现有的 PV 上的数据少于 300GB,那么您可以简单地将该数据重新定位到磁盘的前端,然后使用pvresize
. 首先,创建一个新的 pv:
pvcreate /dev/sda1
Run Code Online (Sandbox Code Playgroud)
将数据从现有 pv 重定位到新 pv:
pvmove /dev/sda2 /dev/sda1
Run Code Online (Sandbox Code Playgroud)
删除旧的 pv:
vgreduce myvg /dev/sda2
Run Code Online (Sandbox Code Playgroud)
现在,使用parted
orfdisk
或其他方法调整大小/dev/sda1
以覆盖整个磁盘,然后使用pvresize
扩展 pv 以覆盖分区。
您可以使用pvmove
将您的数据重新定位到不同的设备,而无需任何服务器停机。您将创建一个新的 pv:
pvcreate /dev/sdb
Run Code Online (Sandbox Code Playgroud)
将其添加到您的 vg:
vgextend myvg /dev/sdb
Run Code Online (Sandbox Code Playgroud)
将数据从现有 pv 迁移到新 pv:
pvmove /dev/sda2 /dev/sdb
Run Code Online (Sandbox Code Playgroud)
从卷中删除现有的 pv:
pvremove /dev/myvg /dev/sda2
Run Code Online (Sandbox Code Playgroud)
现在,重新分区 /dev/sda,创建一个新的 pv,并逆向上述过程。