• 全部
  • 经验案例
  • 典型配置
  • 技术公告
  • FAQ
  • 漏洞说明
  • 全部
  • 全部
  • 大数据引擎
  • 知了引擎
产品线
搜索
取消
案例类型
发布者
是否解决
是否官方
时间
搜索引擎
匹配模式
高级搜索

CVK主机中病毒导致集群主机反复重启问题

2016-04-19 发表
  • 0关注
  • 0收藏 1840浏览
粉丝:28人 关注:0人

某局点集群异常重启,且异常重启后服务器处于反复重启的状态。现场远程业务恢复后,该局点集群几周后再次发生异常重启现象。如下图所示,是该局点组网图,现场一共五台CVK主机,其中一台CVK主机即是CVM管理节点又是CVK计算节点,且这五台CVK都是零存储节点。


远程进行问题定位后发现处于异常重启的四台服务器的有一个关于零存储的系统配置文件已损坏,修复配置文件后再次重启,服务器正常启动,再次重启也可以正常启动。确认服务器可以正常启后,CAS平台上的业务也恢复了正常。

2.1集群第一次异常重启原因分析

2.1.1分析“ocfs2_fence_restart”日志

发现系统重启是因为CAS平台的fence保护机制重启了服务器。

o2quo_fence_self: Heartbeat or quorum error, restart at 1452161689.790394 (Beijing Time: 2016-1-7 18:14:49), please have a check.

2.1.2分析syslog日志

syslog日志中可以看出fence重启的原因是CAS平台上的共享存储文件无法访问。对应的日志如下:

Jan  7 18:14:12 CQYT-SXB-CAS-4 kernel: [21010409.259873]  connection1:0: detected conn error (1020)

Jan  7 18:14:13 CQYT-SXB-CAS-4 iscsid: Kernel reported iSCSI connection 1:0 error (1020 - ISCSI_ERR_TCP_CONN_CLOSE: TCP connection closed) state (3)

Jan  7 18:14:15 CQYT-SXB-CAS-4 iscsid: connect to 127.0.0.1:3260 failed (Connection refused)

Jan  7 18:14:30  iscsid: last message repeated 3 times

Jan 7 18:14:30 CQYT-SXB-CAS-4 kernel: [21010426.859231] o2net: Connection to node CQYT-SXB-CAS-3 (num 3) at 10.78.246.215:7100 has been idle for 90.208 secs.

Jan  7 18:14:30 CQYT-SXB-CAS-4 kernel: [21010426.859250] o2net_idle_timer 1628: Local and remote node is heartbeating, and try connect

Jan  7 18:14:30 CQYT-SXB-CAS-4 iscsid: connect to 127.0.0.1:3260 failed (Connection refused)

Jan  7 18:14:43  iscsid: last message repeated 3 times

2.1.3分析零存储日志

检查零存储日志可以看到如下的错误:

2016-01-07 18:13:11[1452161591]:../net/net_table.c:1941 : netable_closesock( ):  2994 :140402006136576: INFO: 1_v1422339237 closed name:(172.26.254.1/0), closed by peer

2016-01-07 18:13:11[1452161591]:../diskpool/disktable.c:645 : __disktable_reset_handler( ):  2994 :140402006136576: INFO: disktable 172.26.254.1/0 offline

2016-01-07 18:13:11[1452161591]:../diskpool/diskmap.c:993 : diskmap_del( ):  2994 :140402006136576: INFO: del 172.26.254.1/0

2016-01-07 18:13:11[1452161591]:../diskpool/diskmap.c:650 : __diskmap_del_entry( ):  2994 :140402006136576: INFO: del disk 0, parent 0  list 4

2016-01-07 18:13:11[1452161591]:../diskpool/diskmap.c:650 : __diskmap_del_entry( ):  2994 :140402006136576: INFO: del node CQYT-SXB-CAS-1, parent 4  list 4

2016-01-07 18:13:11[1452161591]:../msgqueue/mq_master.c:156 : __mq_master_remove( ):  2994 :140402006136576: INFO: close peer left 3

2016-01-07 18:13:11[1452161591]:../net/net_table.c:1434 : __netable_close_nolock( ):  2994 :140402006136576: INFO: net 172.26.254.1/0 closed

2016-01-07 18:13:11[1452161591]:../net/net_table.c:353 : __netable_stm_hb( ):  2994 :140401118004992: INFO: conn 172.26.254.3/0/172.26.254.3 lost hb ack 1

2016-01-07 18:13:12[1452161592]:../node/paxos_srv.c:492 : paxos_srv_getvote( ):  2994 :140401357534976: INFO: get voteid from 172.26.254.1/0 2 --> 2

2016-01-07 18:13:13[1452161593]:../node/paxos_srv.c:492 : paxos_srv_getvote( ):  2994 :140401357534976: INFO: get voteid from 172.26.254.1/0 2 --> 2

2016-01-07 18:13:13[1452161593]:../net/net_table.c:2056 : __netable_worker( ):  2994 :140401118004992: INFO: netable worker

2016-01-07 18:13:14[1452161594]:../net/net_table.c:341 : __netable_stm_hb( ):  2994 :140401138726656: INFO: conn 172.26.254.3/0/172.26.254.3 timeout

2016-01-07 18:13:14[1452161594]:../net/net_table.c:1941 : netable_closesock( ):  2994 :140401138726656: INFO: 4_v1422339237 closed name:(172.26.254.3/0), timeout at hb

此后出现零存储进程重启的情况:

2016-01-07 18:13:35[1452161615]:../node/node_srv.c:471 : __node_admin_check( ):  2994 :140401349142272: WARNING: check peer, need 5, min 2, got 0

2016-01-07 18:13:35[1452161615]:../node/node_srv.c:667 : node_admin_start( ):  2994 :140401349142272: WARNING: cluster not ready, exist

2016-01-07 18:13:35[1452161615]:../node/env.c:423 : env_server_run( ):  2980 :140402129090368: INFO: worker require restart, restarting...

2016-01-07 18:13:35[1452161615]:tpool.c:46 : __tpool_new( ):  7002 :140402129090368: INFO: tpool worker create new threads, total 1, left 0 idle 1

2016-01-07 18:13:35[1452161615]:../net/hosts.c:185 : __hosts_insert( ):  7002 :140402129090368: INFO: host:172.26.254.1 site:default rack:default node:CQYT-SXB-CAS-1

2016-01-07 18:13:35[1452161615]:../net/hosts.c:185 : __hosts_insert( ):  7002 :140402129090368: INFO: host:172.26.254.2 site:default rack:default node:CQYT-SXB-CAS-2

2016-01-07 18:13:35[1452161615]:../net/hosts.c:185 : __hosts_insert( ):  7002 :140402129090368: INFO: host:172.26.254.3 site:default rack:default node:CQYT-SXB-CAS-3

2016-01-07 18:13:35[1452161615]:../net/hosts.c:185 : __hosts_insert( ):  7002 :140402129090368: INFO: host:172.26.254.4 site:default rack:default node:CQYT-SXB-CAS-4

2016-01-07 18:13:35[1452161615]:../net/hosts.c:185 : __hosts_insert( ):  7002 :140402129090368: INFO: host:172.26.254.5 site:default rack:default node:CQYT-SXB-CAS-5

2016-01-07 18:13:35[1452161615]:tpool.c:46 : __tpool_new( ):  7002 :140402129090368: INFO: tpool sdevent[0] create new threads, total 1, left 0 idle 1

2016-01-07 18:13:35[1452161615]:tpool.c:46 : __tpool_new( ):  7002 :140402129090368: INFO: tpool sdevent[1] create new threads, total 1, left 0 idle 1

2016-01-07 18:13:35[1452161615]:tpool.c:46 : __tpool_new( ):  7002 :140402129090368: INFO: tpool sdevent[2] create new threads, total 1, left 0 idle 1

至此可以确认第一次重启的原因为:零存储网络出现异常引发了零存储服务的重新启动,之后因CAS集群上使用了零存储作为共享文件系统,CAS集群发现共享文件系统无法访问后,触发了fence保护机制重启了服务器以尝试重启关联共享文件系统。

 2.1.4分析服务器VMCORE文件的栈信息

为了进一行步确认出现存储网网络异常的原因,我们继续分析了服务器的vmcore日志。因为CVK服务器在重启过程中留下了vmcore文件,而vmcore文件是根据出问题时的服务器内存数据生成的。所以分析环境中的VMCORE文件可以进一步确认问题原因。

VMCORE文件中分析确认存储网网络不通时,CVK服务器的OVS也出现了异常。但引发OVS异常的原因没有更多的日志进行分析。之后,我司研发在实验室根据以上的栈信息进行反复模拟测试后确认:OVS收到某种异常报文后,触发了OVS正常情况下处于关闭的内部接口被打开,同时该接口收到了IPV6报文,但该接口无法处理此报文,最终导致OVS也出现异常。

综上分析,引发第一次异常重启的原因为:服务器OVS收到网络侧发过来的异常报文后出现OVS工作异常,之后出现零存储存储内网通信异常,最终出现服务器异常重启。

2.2反复重启的原因分析

2.2.1查看系统日志

服务器反复重过程期间,通过分析相关信息和日志发现存在以下问题,分析反复重启时的syslog日志,发现存在以下错误信息:

root@cvknode3:~/jfl06974# zgrep -i "bad" ~/cas_0112/cas/*/logdir/var/log/syslog.*.gz

/root/cas_0112/cas/CQYT-SXB-CAS-1/logdir/var/log/syslog.4.gz:Jan  8 09:21:03 CQYT-SXB-CAS-1 cron[3015]: Error: bad minute; while reading /etc/crontab

/root/cas_0112/cas/CQYT-SXB-CAS-1/logdir/var/log/syslog.4.gz:Jan  8 09:22:01 CQYT-SXB-CAS-1 cron[3015]: Error: bad minute; while reading /etc/crontab

此时怀疑是crontab文件可能存在问题,之后分析crontab文件的详细发现以下信息:

2.2.2查看/etc/crontab文件异常信息

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#
* *    * * *   root    /opt/bin/cha_real_check_cvm.sh
* *    * * *   root    /opt/bin/cha_real_check_cvk.sh
* *    * * *   root    /opt/bin/libvirtd_check.sh
* *    * * *   root    /opt/bin/ocfs2_iscsi_conf_chg_timer.sh
*/10 *    * * *   root   python /opt/bin/ocfs2_cluster_config.pyc -s
1 2    * * *   root    /opt/bin/cas_clean_log.sh
* *    * * *   root    /opt/bin/novnc_check.sh
* *    * * *   root    /opt/bin/sys_alarmd_check.sh
* *    * * *   root    /opt/bin/tomcat_check.sh
^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@*/10

* * * * root /opt/mds/lich//bin/lich.node --recover >> /opt/mds/log/recover.log
1 */1 * * * root /opt/mds/lich//bin/lich.node --metabalance >> /opt/mds/log/metabalance.log
1 */8 * * * root /opt/mds/lich//bin/lich.node --chunkbalance --rand >> /opt/mds/log/chunkbalance.log
*/10 * * * * root /opt/mds/lich//bin/lich.node --disk_check --cache >> /opt/mds/log/disk_cache.log
*/3 * * * * root /etc/cron.hourly/cron.sh

正常情况下应该没有红色字体处的乱码信息,至此可以确认crontab文件已经损坏。由于零存储会在启动时或者正常退出时会修改crontab文件,怀疑服务器异常重启导致了crontab文件损坏。之后将crontab修复后再次重启服务器,服务器运行恢复正常。

2.3几周后再次异常重启原因分析

当时根据CVK系统奔溃时产生的vmcore文件分析,得知crontab文件被写坏,导致ovs内核内存异常,引发系统反复重启。因为急于恢复环境,没有保留太多现场信息,所以文件被写坏的根本原因没有机会定位。最后的解决方案是关闭CVKipv6功能先临时规避问题恢复CVK,后来提供CAS升级包针对该问题增加CAS内核的稳定性。

该问题复现后,发现内核出错点和上次是同样的现象。这次详细检查了出问题的CVK,发现它中了病毒,病毒也会不时向crontab写入任务,可能在某个时机和零存储写该文件时产生冲突。CVK中病毒体现在:

1.  CVK定时任务中被加入异常任务(每3分钟执行一个可疑文件)

2.  CVK开机启动项中被加入异常任务

3.  CVK主机磁盘上存在一些非正常可疑文件

4.  CVK内存中存在一些伪装的可疑进程

5.  根据以往经验,中毒CVK连入网络后,会导致用户网络拥塞以及向外发起一些非正常的连接。(用户可以根据之前出问题的环境验证这一点)

以下是关于上面现象的一些截图:

 

 

 

综上分析:CVK主机中病毒。该病毒会有一系列的动作,可能和CVK本身的一部分功能存在冲突,导致系统配置变化,文件破坏,甚至引发内核异常反复重启。CAS已经提供了升级包,增强系统稳定性,避免奔溃重启。

但是病毒可能引发的其他问题,比如占用系统资源,占用网络资源,执行破坏性工作。这些由病毒自身特性行为决定,CAS这边很难评估它的具体危害性。


1.不要使用简单的root密码

2.如非必要,不要把CVK主机映射到公网上。

3.中病毒后,建议重装CAS系统,杜绝病毒。建议安装新的CAS版本,它在稳定性和安全性方面都做了一些提高。

4.因急于恢复用户环境及保存用户数据,当时先手工临时清除了CVK上的病毒,包括删除可疑文件和可疑任务,杀掉可疑进程等工作。这些措施临时恢复了环境,但不能保证还有潜伏的病毒会在以后爆发,所以还是建议后续重装系统。


该案例对您是否有帮助:

您的评价:1

若您有关于案例的建议,请反馈:

作者在2019-06-11对此案例进行了修订
0 个评论

该案例暂时没有网友评论

编辑评论

举报

×

侵犯我的权益 >
对根叔知了社区有害的内容 >
辱骂、歧视、挑衅等(不友善)

侵犯我的权益

×

泄露了我的隐私 >
侵犯了我企业的权益 >
抄袭了我的内容 >
诽谤我 >
辱骂、歧视、挑衅等(不友善)
骚扰我

泄露了我的隐私

×

您好,当您发现根叔知了上有泄漏您隐私的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您认为哪些内容泄露了您的隐私?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)

侵犯了我企业的权益

×

您好,当您发现根叔知了上有关于您企业的造谣与诽谤、商业侵权等内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到 pub.zhiliao@h3c.com 邮箱,我们会在审核后尽快给您答复。
  • 1. 您举报的内容是什么?(请在邮件中列出您举报的内容和链接地址)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
  • 3. 是哪家企业?(营业执照,单位登记证明等证件)
  • 4. 您与该企业的关系是?(您是企业法人或被授权人,需提供企业委托授权书)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

抄袭了我的内容

×

原文链接或出处

诽谤我

×

您好,当您发现根叔知了上有诽谤您的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您举报的内容以及侵犯了您什么权益?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

对根叔知了社区有害的内容

×

垃圾广告信息
色情、暴力、血腥等违反法律法规的内容
政治敏感
不规范转载 >
辱骂、歧视、挑衅等(不友善)
骚扰我
诱导投票

不规范转载

×

举报说明

提出建议

    +

亲~登录后才可以操作哦!

确定

亲~检测到您登陆的账号未在http://hclhub.h3c.com进行注册

注册后可访问此模块

跳转hclhub

你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作