pvmove 时 domU 负载高,且 OOM-killer

pvmove 时 domU 负载高,且 OOM-killer

情况

  • xen 4.0.1 dom0(debian squeeze)
  • 所有 domU 都以 LV 作为磁盘: disk = [ 'phy:/dev/vg-00/domu-swap,xvda1,w', 'phy:/dev/vg-00/domu-disk,xvda2,w' ])
  • 一个 VG ( vg-00),包含 2 个 PV

目标

  • 将所有 LV 从一个 PV 移动到另一个 PV(pvmove)并删除“空”PV(vgreduce)
  • 不干扰任何正在运行的机器(domU od Dom0)

问题)

当我启动pmove(我甚至尝试过ionice -c3)我的 domU 时,负载非常高,甚至会卡住。我认为这是在pvmove将 domU LV 的扩展从一个 PV 移动到另一个 PV 时发生的。我还看到 domU 真的崩溃了,并触发了 OOM-killer。长话短说:我不得不中断该过程(pvmove --abort),因为我的 domU 开始变得无法使用,主要服务器组件被杀死,甚至完全死机/冻结。

问题

  • 我知道转换期间 IO 负载较高,我可以应付。但即使ionice -c3IO 负载很高,domU 内部的任务也会被阻塞。为什么ionice这里不工作?如果我理解正确,所有 IO 都是由 dom0(由 blkback 驱动程序)完成的,因此 dom0 应该可以看到每个 dom(0|U) 完成的所有 IO,并且应该能够为我的进程安排 IO renice- 我的假设错了吗?

  • 为什么我的 domU 会启动 OOM-killer?这个过程如何影响 domU 的内存?顺便说一句:当 domU 发疯时,我的 dom0 工作正常。IO 很高,但这是显而易见的。

  • 有没有办法可以移除一个 PV 而不用像上面那样麻烦?关闭/暂停一个又一个 domU 并从这台机器上 pvmove 仅 LV 会更好吗?

提前感谢您的每一份意见 - 我甚至很高兴得到一些“调试想法”!

答案1

它应该可以工作 - 但似乎 XEN 在“w”模式下强加了某种排他锁定。也许这种锁定在“w!”模式下不那么严格(或者是“!w”?)。该模式应该允许来自多个源的写入请求。

在 DomU 中杀手启动之前,哪些内存消耗会增加?缓冲内存?

相关内容