我正在更换一些在 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