Linux pvmove 命令

Linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命令类似。linux命令在系统中有两种类型:内置Shell命令和Linux命令。本文主要介绍Linux pvmove 命令。

1、命令简介

pvmove:用于在物理卷(Physical Volumes, PVs)之间移动逻辑卷(Logical Volumes, LVs)的数据。允许在不中断系统操作的情况下动态地管理磁盘空间。

2、命令语法

pvmove [--abort] [--alloc AllocationPolicy] [-b|--background] [-d|--debug] [-h|--help] [-i|--interval Seconds] [-v|--verbose] [-n|--name LogicalVolume] [SourcePhysicalVolume[:PE[-PE]...] [DestinationPhysicalVolume[:PE[-PE]...]...]]

3、命令描述

pvmove 可以将已分配的物理区域 (PE) 从源物理卷 (SourcePhysicalVolume) 移动到一个或多个其他物理卷 (PV)。还可以选择指定一个源逻辑卷 (LogicalVolume),在这种情况下,只有该 LV 使用的区域才会被移动到目标物理卷 (DestinationPhysicalVolume(s)) 上的空闲(或指定的)区域。如果没有指定目标物理卷,则使用卷组的正常分配规则。

如果 pvmove 因任何原因被中断(例如机器崩溃),只需再次运行 pvmove 而不带任何物理卷参数,即可从上一个检查点重新启动任何正在进行的移动。或者,可以随时使用 pvmove --abort 在最后一个检查点中止它们。

可以同时运行多个 pvmove,前提是它们正在从不同的源物理卷移动数据,但额外的 pvmove 将忽略任何正在更改的逻辑卷,因此某些数据可能无法移动。

pvmove 的工作原理如下:

创建一个临时“pvmove”逻辑卷,用于存储所有数据移动的详细信息。

根据命令行参数,在卷组中的每个逻辑卷中搜索需要移动的连续数据。对于找到的每一段数据,在 pvmove LV 的末尾添加一个新段。这个段的形式是一个临时镜像,用于将数据从原始位置复制到新分配的位置。原始 LV 被更新为使用 pvmove LV 中的新临时镜像段,而不是直接访问数据。更新磁盘上的卷组元数据。

激活 pvmove 逻辑卷的第一个段,并开始镜像数据的第一部分。每次只能镜像一个段,因为这通常更有效。

一个守护程序会以指定的间隔时间重复检查进度。当它检测到第一个临时镜像同步时,它会破坏该镜像,使只能使用该数据的新的位置,并写入一个检查点到磁盘上的卷组元数据中。然后它激活 pvmove LV 的下一个段的镜像。

当没有更多的段需要镜像时,临时逻辑卷被删除,卷组元数据被更新,使逻辑卷反映新的数据位置。

注意:这个新过程不能支持原始 LVM1 类型 的磁盘元数据。可以使用 vgconvert(8) 转换元数据。

4、命令选项

选项

描述

--abort

中止所有正在进行的移动。

-b, --background

在后台运行守护进程。

-i, --interval Seconds

以百分比形式定期报告进度。

-n, --name LogicalVolume

仅移动属于 LogicalVolume 的扩展,

而不是将 SourcePhysicalVolume 上的

所有分配的扩展移动到目的物理卷。

5、使用示例

1)中止正在进行的移动

pvmove --abort

命令将中止所有正在进行的 pvmove 操作。

2)在后台运行 pvmove

pvmove -b SourcePhysicalVolume DestinationPhysicalVolume

使用 -b--background 标签将会在后台运行 pvmove 进程,移动 SourcePhysicalVolume 上的数据到 DestinationPhysicalVolume。

3)定期报告进度

pvmove -i 60 SourcePhysicalVolume DestinationPhysicalVolume

将每60秒报告一次 pvmove 操作的进度百分比,从 SourcePhysicalVolume 移动数据到 DestinationPhysicalVolume。

4)仅移动特定逻辑卷的扩展

pvmove -n LogicalVolumeName SourcePhysicalVolume DestinationPhysicalVolume

推荐阅读
cjavapy编程之路首页