如何检查 lvconvert --replace 的进度

如何检查 lvconvert --replace 的进度

我正在更换一些在 LVM 上配置了 RAID5 的磁盘。

用于替换的命令是

lvconvert --replace /dev/oldpv vgname/lvname /dev/newpv

它在后台启动进程。
该参数-i #也不起作用-v

我尝试了很多选项lvs -o +<fields>(以及 pvs、vgs),但没有人返回此进度。

我想检查进度,因为磁盘很大,LV 很少。这需要几分钟的时间,我不想在当前进程仍在运行时启动下一个 LV...

现在我正在使用 dstats/iostats 命令监控 I/O,但这种检查方式很丑陋......

答案1

我对 RAID5 不是 100% 确定,但对于镜像使用

# dmsetup status

rootvg-testmirror: 0 9216000 raid raid1 2 AA 3233673/9216000 idle 0

在这个例子中,当你评估 3233673/9216000 时,它大约是 33%

我没有足够的磁盘来创建测试 RAID5,但我确信它会是类似的东西。

答案2

扩展 banjo67xxx 的答案,您可以使用以下命令获取完成百分比(带小数):

echo "(`dmsetup status | tail -n 1 | awk '{print $8}'`)*100" | bc -l

如果要限制小数位数,可以在回显到 bc 的字符串中使用比例声明。以下是限制为 2 位小数的相同命令:

echo "scale=2; (`dmsetup status | tail -n 1 | awk '{print $8}'`)*100" | bc -l

相关内容