18.04 zfs+lxd 在高负载下会导致容器主机重启吗?

18.04 zfs+lxd 在高负载下会导致容器主机重启吗?

花了几天时间解决这个问题,我猜 18.04 还没有准备好投入生产。

18.04 服务器在原始块设备上通过 zfs 使用 lxd,但会随机重启。没有崩溃或输出。我的 console=ttyS0(通过空调制解调器等)内核可以正常运行,但重启时绝对没有任何反应。任何日志文件中都没有任何迹象。

很难重现,但不适合生产。当我尝试运行一些 25Gb R+D 脚本+程序+等(现在作为旧的 14.04 LXC 工作多年)时会发生这种情况,这些脚本+程序+等需要数小时才能复制到我尝试过的每个新 lxd 安装(尝试了通用的“lxd init”以及“root zfs”和“live-server”和普通的“server”安装 ISO)。一个容器疯狂地运行不受约束的 dns 以回答来自另一个容器的 100000 次挖掘,而第三个容器正在进行大量网络 I/O,这种组合似乎会导致神秘的重启 - 但并不可靠。需要数小时才能重现,但 18.04 无法用于我的生产环境。FBSD vimage jails 在 zfs 上运行良好 7 年,旧的 lxc 在 14.04 non-zfs 上运行相同设置 4 年(freenas 从未出现问题)。猜测 linux zfs 版本对于高负载还不太稳定。尝试了带和不带 luks [1] 的 root zfs,然后开始寻找功率不足的 PSU(750W)和过热(带 lm 传感器时最高 69C)选项,但都是死路一条。尝试了 Phenom X6 和 4Ghz FX AMD 处理器,32GB ECC-RAM(是的,ecc - 和 bios 设置方式)。这似乎是 18.04 lxd 在多设备 zfs 池设置中的一个真正的错误(是的 - 我在控制台上看到了“同步”的 120 秒锁定消息,但我知道这只是一个警告)。我的 2cents:我的直觉告诉我这是网桥(手动创建的 br0。没有本地桥)和 zfs fs 之间的内存覆盖问题。我关闭了 luks,所以这不是 cryptsetup。现在放弃,回去做我自己的操作系统工作。也许 6 个月后再看。太糟糕了。 lxd over zfs 听起来是个不错的故事,我很想去部署。我确实学到了很多东西。

[1]https://github.com/zfsonlinux/zfs/wiki/Ubuntu-18.04-Root-on-ZFS

几个月后得出结论。

我无法阻止 18.04+consumer 主板(带 ECC + AMD)发生这些随机重启,所以我放弃了,买了一台二手戴尔 R610(约 175 美元,包括 48G 内存 2xPSU),问题就解决了。但我想分享一些鼠洞,以便您避免遇到同样的问题。1.
戴尔喜欢 raid。所以我不得不用一个闪存为“unraid zfs”的硬盘驱动器替换受控硬盘驱动器(参见 ebay 约 50 美元)。不要害怕弄坏里面的一些塑料标签。2. 不要使用戴尔/博通板载网卡。它们不能很好地处理桥接模式下的 ipv6 多播(阅读:丢失邻居请求)。4 天鼠洞。3. 避免弄乱戴尔 DRAC 或通用配置屏幕。尽量不要更改任何会强制重新配置或导致性能下降的内容。因此丢失了一台戴尔。

优点:冗余电源,良好的冷却,合理的用电量(约 100W,带 6 个 2.5 英寸驱动器)缺点:CPU 较慢:2x4 核 2.4Ghz 英特尔与 1x8 核 4.0Ghz AMD

总体而言:升级到 18.04 并没有给我带来太多好处。我的 14.04 lxc 设置已经连续运行多年,使用相同的 4GHz AMD/主板组合,并且没有 IPv6 问题。我只能希望我在升级到 18.04 的一个月多时间里学到了一些有用的东西。

答案1

已知的 ZFS 错误刚刚被修复,在接下来的几天内将在 Ubuntu 中获得更新的软件包, https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1781364 但是对于这个错误,您会在控制台上收到特定的内核消息。

内核崩溃后,串行控制台上很少会出现任何相关的内核消息。除非是与硬件相关的问题(例如过热问题)。

LXD 在用户空间运行。您需要研究 Linux 内核子系统。

相关内容