我们在 Debian 8 虚拟机上运行 HAProxy 1.6.1。我正在将我们的 2 个实例移动到不同大小的 VM,但是,当我重新启动时,它们并没有恢复。
我什至无法运行 haproxy 二进制文件。这是我尝试时得到的结果:
./haproxy
Illegal Instruction
sudo ./haproxy
[no output]
./haproxy -v
Illegal Instruction
sudo/haproxy -v
[no output]
如果我尝试使用 -c -f 检查配置也是一样(尽管我认为这不是配置问题)。
这是我在 kern.log 中的内容:
Mar 7 11:41:41 rproxyws1 kernel: traps: haproxy[4031] trap invalid opcode ip:4843a0 sp:7fff51856ac8 error:0 in haproxy[400000+cf000]
似乎确实发生的一件事是在迁移过程中进行了内核更新(从 4.1.5 到 4.4.0),但我已经手动更新到旧内核,但新问题仍然存在。
有没有人有任何想法!?谢谢!
你是如何转移到其他两个实例的?
我猜你一定已经安装了 haproxy 并在新的两个实例中复制了 haproxy.cfg 文件。请检查用户 haproxy(service useron OS) 是否存在?
检查 haproxy 状态,并尝试在没有 ./ 的情况下运行命令。
如果你是从源代码编译的,请用你以前的 ubuntu 机器验证这些设置。大纲是这样的;
构建选项:目标 = linux2628
CPU = 本机
CC = gcc
CFLAGS = -O2 -march=native -g -fno-strict-aliasing
选项 = USE_OPENSSL=1 USE_STATIC_PCRE=1
问题原来是我在原始编译中使用了 CPU=native 选项。显然这对于虚拟化环境来说是个坏主意,因为我可以打破。我应该更仔细地阅读手册:
使用 CPU=generic 重新编译修复了它。