如何将sda3上的LVM移动/合并到sda2?问题是vg1-var和vg1-opt驻留在这两个PV上,所以pvmove
不会做到这一点。
sda 8:0 0 80G 0 disk
├─sda1 8:1 0 300M 0 part /boot
├─sda2 8:2 0 37G 0 part
│ ├─vg1-root 253:0 0 5G 0 lvm /
│ ├─vg1-swap 253:1 0 4G 0 lvm [SWAP]
│ ├─vg1-usr 253:2 0 8G 0 lvm /usr
│ ├─vg1-home 253:4 0 2G 0 lvm /home
│ ├─vg1-var 253:5 0 6.7G 0 lvm /var
│ ├─vg1-tmp 253:6 0 10G 0 lvm /tmp
│ └─vg1-opt 253:7 0 5G 0 lvm /opt
└─sda3 8:3 0 42.7G 0 part
├─vg1-var 253:5 0 6.7G 0 lvm /var
└─vg1-opt 253:7 0 5G 0 lvm /opt
PV VG Fmt Attr PSize PFree
/dev/sda2 vg1 lvm2 a-- 37.00g 0
/dev/sda3 vg1 lvm2 a-- <42.70g 39.00g
发布于 2020-07-25 11:44:08
最简单的方法是临时附加一个新驱动器,然后pvmove /dev/sda3
结束。这将使您能够增长/dev/sda2
,并将一切都移回原处。
如果这是不可能的,您将不得不在您的驱动器内的数据洗牌。由于对齐问题,相邻的PV通常不能直接合并,所以您仍然要移动所有东西两次。
您的/dev/sda3
是42.7G大,有39G免费,所以~3.7G使用。因此,您应该能够将/dev/sda3
缩小到4G,以便在磁盘末尾生成一个新的/dev/sda4
大小为4G:
pvresize /dev/sda3 --setphysicalvolumesize 37G
parted /dev/sda -- resizepart 3 -4G
parted /dev/sda -- mkpart primary -4G -1
将所有数据移动到新分区:
vgextend vg1 /dev/sda4
pvmove /dev/sda3
vgreduce vg1 /dev/sda3
删除现在空闲的/dev/sda3
并相应地增长/dev/sda2
:
parted /dev/sda -- rm 3
parted /dev/sda -- resizepart 2 -4G
pvresize /dev/sda2
将所有内容从/dev/sda4
移动到现在足够大的/dev/sda2
:
pvmove /dev/sda4
vgreduce vg1 /dev/sda4
此时,VG只使用单个PV,即/dev/sda2
。
删除现在空闲的/dev/sda4
并再次增长/dev/sda2
:
parted /dev/sda -- rm 4
parted /dev/sda -- resizepart 2 -1
pvresize /dev/sda2
注意,这些步骤非常粗糙,在某些时候可能会失败,因此您必须相应地进行调整。特别是parted
命令不应该盲目运行,要始终验证parted /dev/sda print free
、vgs
、lvs
、pvs
、lsblk
、.
如果没有充分的理由把事情搞乱,我就按原样离开。这是很多麻烦,没有什么好处。拥有多个PV也具有优势,例如额外的元数据副本。
https://unix.stackexchange.com/questions/600245
复制相似问题