Debian

虛擬機移動後 Haproxy 無法啟動(Debian 8y_時間____s是s噸和米dsystemd)

  • March 7, 2016

我們在 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),但我已經手動更新到舊核心,但新問題仍然存在。

有沒有人有任何想法!?謝謝!

問題原來是我在原始編譯中使用了 CPU=native 選項。顯然這對於虛擬化環境來說是個壞主意,因為我可以打破。我應該更仔細地閱讀手冊:

You may also choose your CPU to benefit from some optimizations. This is
particularly important on UltraSparc machines. For this, you can assign
one of the following choices to the CPU variable :

 - i686 for intel PentiumPro, Pentium 2 and above, AMD Athlon
 - i586 for intel Pentium, AMD K6, VIA C3.
 - ultrasparc : Sun UltraSparc I/II/III/IV processor
 - **native : use the build machine's specific processor optimizations. Use with
   extreme care, and never in virtualized environments (known to break).**
 - generic : any other processor or no CPU-specific optimization. (default)

使用 CPU=generic 重新編譯修復了它。

你是如何轉移到其他兩個實例的?

我猜你一定已經安裝了 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

引用自:https://serverfault.com/questions/762052