Print

关于H3C CAS平台在虚拟机备份或其他情况造成内存压力大时触发内核bug的公告

2015-07-27 发表

【产品型号】

涉及H3C CAS云计算管理平台。

【涉及版本】

涉及2013_V100R002_E0209H06及之前所有版本。

【问题描述】

在虚拟机备份或者其他情况造成CVK主机内存压力大的情况下,会概率性出现CVK主机xconsole界面刷屏,管理网地址无法ping通的现象。

此现象通过重启该CVK主机可以恢复,主机恢复后收集CAS日志分析,有如下信息:

18708 Jul  3 09:50:08 GMQ-CAS01-CVK01 kernel: [2764507.654448] mapcount 0 page_mapcount 1

18709 Jul  3 09:50:08 GMQ-CAS01-CVK01 kernel: [2764507.654556] ------------[ cut here ]------------

18710 Jul  3 09:50:08 GMQ-CAS01-CVK01 kernel: [2764507.654561] Kernel BUG at ffffffff811b23bc [verbose debug info unavailable]

18711 Jul  3 09:50:08 GMQ-CAS01-CVK01 kernel: [2764507.654566] invalid opcode: 0000 [#1] SMP

18712 Jul  3 09:50:08 GMQ-CAS01-CVK01 kernel: [2764507.654570] Modules linked in: ip6table_filter(F) ip6_tables(F) iptable_filter(F) ip_tables(F) ebtable_nat(F) ebtables(F) x_tables(F) ocfs2(OF) q      uota_tree(F) drbd(F) lru_cache(F) 8021q(F) mrp(F) garp(F) stp(F) llc(F) vhost_net(F) macvtap(F) macvlan(F) vhost(F) kvm_intel(F) kvm(F) ib_iser(F) rdma_cm(F) ib_cm(F) iw_cm(F) ib_sa(F) ib_ma      d(F) ib_core(F) ib_addr(F) iscsi_tcp(F) libiscsi_tcp(F) libiscsi(F) scsi_transport_iscsi(F) ocfs2_dlmfs(OF) ocfs2_stack_o2cb(OF) ocfs2_dlm(OF) ocfs2_nodemanager(OF) ocfs2_stackglue(OF) confi      gfs(F) openvswitch(OF) libcrc32c(F) gre(F) nfsd(F) nfs_acl(F) auth_rpcgss(F) nfs(F) fscache(F) lockd(F) sunrpc(F) gpio_ich(F) dm_multipath(F) scsi_dh(F) psmouse(F) serio_raw(F) lpc_ich(F) sb      _edac(F) hpilo(F) edac_core(F) ioatdma(F) hpwdt(F) dca(F) acpi_power_meter(F) mac_hid(F) lp(F) parport(F) tg3(F) ptp(F) hpsa(F) pps_core(F) nbd(F) [last unloaded: ipmi_si]

18713 Jul  3 09:50:08 GMQ-CAS01-CVK01 kernel: [2764507.654663] CPU: 25 PID: 613 Comm: kswapd3 Tainted: GF          O 3.13.6 #1

18714 Jul  3 09:50:08 GMQ-CAS01-CVK01 kernel: [2764507.654667] Hardware name: H3C FlexServer R590, BIOS P77 12/20/2013

18715 Jul  3 09:50:08 GMQ-CAS01-CVK01 kernel: [2764507.654670] task: ffff880fe7c8c830 ti: ffff880fe6c7e000 task.ti: ffff880fe6c7e000

18716 Jul  3 09:50:08 GMQ-CAS01-CVK01 kernel: [2764507.654674] RIP: 0010:[<ffffffff811b23bc>]  [<ffffffff811b23bc>] split_huge_page_to_list+0x2dc/0x7b0

18717 Jul  3 09:50:08 GMQ-CAS01-CVK01 kernel: [2764507.654689] RSP: 0018:ffff880fe6c7f858  EFLAGS: 00010297

18718 Jul  3 09:50:08 GMQ-CAS01-CVK01 kernel: [2764507.654692] RAX: 0000000000000001 RBX: ffff883fde776f18 RCX: 0000000000000000

18719 Jul  3 09:50:08 GMQ-CAS01-CVK01 kernel: [2764507.654695] RDX: ffff88403f82fff0 RSI: ffff88403f82e3d8 RDI: 0000000000000246

18720 Jul  3 09:50:08 GMQ-CAS01-CVK01 kernel: [2764507.654699] RBP: ffff880fe6c7f918 R08: 0000000000000000 R09: 0000000000000000

18721 Jul  3 09:50:08 GMQ-CAS01-CVK01 kernel: [2764507.654702] R10: 00000000001eb0af R11: 0e200e200e200e20 R12: 0000000000000000

18722 Jul  3 09:50:08 GMQ-CAS01-CVK01 kernel: [2764507.654706] R13: ffff881fe681aa00 R14: ffffea00f4ae8000 R15: ffffea00f4ae8000

18723 Jul  3 09:50:08 GMQ-CAS01-CVK01 kernel: [2764507.654710] FS:  0000000000000000(0000) GS:ffff88403f820000(0000) knlGS:0000000000000000

18724 Jul  3 09:50:08 GMQ-CAS01-CVK01 kernel: [2764507.654713] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033

18725 Jul  3 09:50:08 GMQ-CAS01-CVK01 kernel: [2764507.654716] CR2: 000000003bfc2000 CR3: 0000000001c0d000 CR4: 00000000000427e0

18726 Jul  3 09:50:08 GMQ-CAS01-CVK01 kernel: [2764507.654720] DR0: 0000000000000003 DR1: 00000000000000b0 DR2: 0000000000000001

18727 Jul  3 09:50:08 GMQ-CAS01-CVK01 kernel: [2764507.654724] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400

18728 Jul  3 09:50:08 GMQ-CAS01-CVK01 kernel: [2764507.654726] Stack:

18729 Jul  3 09:50:08 GMQ-CAS01-CVK01 kernel: [2764507.654729]  ffffea00f4ae8000 ffff880fe5bc6980 ffff880f00000000 ffffffff81193bba

18730 Jul  3 09:50:08 GMQ-CAS01-CVK01 kernel: [2764507.654741]  ffff883fe75c6300 00000007f4474000 0000000000042541 0000000000042541

18731 Jul  3 09:50:08 GMQ-CAS01-CVK01 kernel: [2764507.654748]  00000000e6c7f8f8 0000000000000000 00000007f4534200 ffff883fe75c6330

18732 Jul  3 09:50:08 GMQ-CAS01-CVK01 kernel: [2764507.654756] Call Trace:

18733 Jul  3 09:50:08 GMQ-CAS01-CVK01 kernel: [2764507.654778]  [<ffffffff81193bba>] ? scan_swap_map+0x37a/0x510

18733 Jul  3 09:50:08 GMQ-CAS01-CVK01 kernel: [2764507.654778]  [<ffffffff81193bba>] ? scan_swap_map+0x37a/0x510

18734 Jul  3 09:50:08 GMQ-CAS01-CVK01 kernel: [2764507.654783]  [<ffffffff81193faa>] ? get_swap_page+0x1aa/0x210

18735 Jul  3 09:50:08 GMQ-CAS01-CVK01 kernel: [2764507.654792]  [<ffffffff81189df0>] ? page_mkclean_one+0xd0/0xd0

18736 Jul  3 09:50:08 GMQ-CAS01-CVK01 kernel: [2764507.654798]  [<ffffffff8119190a>] add_to_swap+0x8a/0xa0

18737 Jul  3 09:50:08 GMQ-CAS01-CVK01 kernel: [2764507.654811]  [<ffffffff811674fb>] shrink_page_list+0x5db/0xa30

18738 Jul  3 09:50:08 GMQ-CAS01-CVK01 kernel: [2764507.654826]  [<ffffffff8116804a>] shrink_inactive_list+0x1ea/0x5b0

18739 Jul  3 09:50:08 GMQ-CAS01-CVK01 kernel: [2764507.654832]  [<ffffffff81168b5c>] shrink_lruvec+0x35c/0x6e0

18740 Jul  3 09:50:08 GMQ-CAS01-CVK01 kernel: [2764507.654838]  [<ffffffff81168f46>] shrink_zone+0x66/0x1a0

18741 Jul  3 09:50:08 GMQ-CAS01-CVK01 kernel: [2764507.654843]  [<ffffffff8116a11e>] balance_pgdat+0x3be/0x620

18742 Jul  3 09:50:08 GMQ-CAS01-CVK01 kernel: [2764507.654854]  [<ffffffff810760d2>] ? del_timer_sync+0x52/0x60

18743 Jul  3 09:50:08 GMQ-CAS01-CVK01 kernel: [2764507.654859]  [<ffffffff8116a4f7>] kswapd+0x177/0x4a0

经过分析为在压力大的情况下CVK主机会使用SWAP分区,内核使用大的内存块进行缓存和交换时,会随机报错,从而导致主机内核异常,CVK主机挂住,此问题为CAS平台内核bug

虚拟机是否迁移取决于CAS版本和CVK主机挂住的情况。E0206之前的版本,使用的是老HA机制,CVK挂住管理网不通后,HA会将虚拟机在其他主机上重启,即迁移虚拟机。E0206及其之后的版本,使用的是新HA机制,如果CVK完全挂死,该主机上的共享存储池中的虚拟机会在其他主机上重启,即迁移虚拟机;如果CVK没有完全挂死,集群HA的共享存储池的心跳还在,则虚拟机不会迁移。

 

规避措施:如果有未迁移的虚拟机,在虚拟机内部关闭虚拟机后,强制重启异常CVK主机;如果虚拟机已全部迁移到其他主机,则直接强制重启异常CVK主机。待该CVK主机恢复正常后,迁移回虚拟机或者启动虚拟机即可。

解决方案:按照规避措施处理使主机恢复正常后,将CAS平台升级到E0209H07以后的版本。E0209H07及之后版本已经合入该内核patch,在相同的情况下,不会再出现该问题。