ご注意下さい
この記事は3年以上前に書かれた記事ですので、内容が古い可能性があります。
Windows Server を 2012R2から2016にアップグレード後、AsteriskNowが気が付くとハングアップしてしまう事象が発生してしまいました。結論から言うと、2012R2でも同様の事象が発生していたはずですが、Hyper-Vの設定のお陰で(知らずに)回避できていたようです。
シスログには以下のようにサポートされていないCPUだよん、という警告メッセージが出ています。そういえばGrubの画面でも同様のメッセージ(SRAT: Hotplug zone not continuous.partly ignored)が表示されていました。
Aug 21 19:21:17 localhost kernel: ------------[ cut here ]------------
Aug 21 19:21:17 localhost kernel: WARNING: at kernel/rh_taint.c:13 mark_hardware_unsupported+0x39/0x40() (Not tainted)
Aug 21 19:21:17 localhost kernel: Hardware name: Virtual Machine
Aug 21 19:21:17 localhost kernel: Your hardware is unsupported. Please do not report bugs, panics, oopses, etc., on this hardware.
Aug 21 19:21:17 localhost kernel: Modules linked in:
Aug 21 19:21:17 localhost kernel: Pid: 0, comm: swapper Not tainted 2.6.32-431.el6.x86_64 #1
Aug 21 19:21:17 localhost kernel: Call Trace:
調べてみるとCentOS6.5はそもそもバグがあり、Hyper-VやVMwareなどの仮想化対応に問題があったようです。
そこで以下の対応を行います。
回避方法
- 動的メモリの削除→固定で割り当て
- CPUの割り当てを1つに
- SCSIドライバの削除
上記のうち動的メモリの対応だけで解決するような気もしますが、私は上記3つを一回で設定変更してしまったので3つ実施しないとダメかもしれませんし、内1つだけが効いているのかは不明です。いずれにせよ私の環境(Windows Server 2016 + Hyper-V + AsteriskNow(CentOS6.5))ではハングアップする事象は解消されました。
記事は以上。