天天看點

CloudStack 4.0.2 vRouter導緻重新開機後狀态不正常

轉載位址:http://www.linuxidc.com/Linux/2013-08/88474.htm

最近總玩CloudStack + KVM,發現在重新開機CloudStack服務後,host(kvm)的狀态老是為alert。日志裡出現如下錯誤提示:

ERROR [agent.manager.AgentManagerImpl] (AgentManager-Handler-7:) Monitor ClusteredVirtualMachineManagerImpl$$EnhancerByCGLIB$$121cf44e says there is an error in the connect process for 1 due to null

java.lang.NullPointerException

        at com.cloud.vm.VirtualMachineManagerImpl.fullHostSync(VirtualMachineManagerImpl.java:1643)

        at com.cloud.vm.VirtualMachineManagerImpl.processConnect(VirtualMachineManagerImpl.java:2289)

        at com.cloud.agent.manager.AgentManagerImpl.notifyMonitorsOfConnection(AgentManagerImpl.java:605)

        at com.cloud.agent.manager.AgentManagerImpl.handleConnectedAgent(AgentManagerImpl.java:1157)

        at com.cloud.agent.manager.AgentManagerImpl.access$100(AgentManagerImpl.java:142)

        at com.cloud.agent.manager.AgentManagerImpl$AgentHandler.processRequest(AgentManagerImpl.java:1235)

        at com.cloud.agent.manager.AgentManagerImpl$AgentHandler.doTask(AgentManagerImpl.java:1374)

        at com.cloud.agent.manager.ClusteredAgentManagerImpl$ClusteredAgentHandler.doTask(ClusteredAgentManagerImpl.java:618)

        at com.cloud.utils.nio.Task.run(Task.java:83)

        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)

        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)

        at java.lang.Thread.run(Thread.java:679)

agent日志出現提示:

2013-08-09 11:27:18,746 INFO  [cloud.agent.Agent] (Agent-Handler-3:null) Reconnecting...

2013-08-09 11:27:18,747 INFO  [utils.nio.NioClient] (Agent-Selector:null) Connecting to 20.1.134.190:8250

2013-08-09 11:27:18,855 INFO  [utils.nio.NioClient] (Agent-Selector:null) SSL: Handshake done

2013-08-09 11:27:19,422 INFO  [cloud.agent.Agent] (Agent-Handler-2:null) Proccess agent startup answer, agent id = 1

2013-08-09 11:27:19,422 INFO  [cloud.agent.Agent] (Agent-Handler-2:null) Set agent id 1

2013-08-09 11:27:19,423 INFO  [cloud.agent.Agent] (Agent-Handler-2:null) Startup Response Received: agent id = 1

2013-08-09 11:27:19,539 WARN  [cloud.agent.Agent] (UgentTask-5:null) Unable to send request: null

2013-08-09 11:27:23,856 INFO  [cloud.agent.Agent] (Agent-Handler-3:null) Connected to the server

2013-08-09 11:27:24,481 INFO  [cloud.agent.Agent] (Agent-Handler-3:null) Lost connection to the server. Dealing with the remaining commands...

2013-08-09 11:27:29,483 INFO  [cloud.agent.Agent] (Agent-Handler-3:null) Reconnecting...

2013-08-09 11:27:29,484 INFO  [utils.nio.NioClient] (Agent-Selector:null) Connecting to 20.1.134.190:8250

2013-08-09 11:27:29,580 INFO  [utils.nio.NioClient] (Agent-Selector:null) SSL: Handshake done

2013-08-09 11:27:30,223 INFO  [cloud.agent.Agent] (Agent-Handler-2:null) Proccess agent startup answer, agent id = 1

2013-08-09 11:27:30,224 INFO  [cloud.agent.Agent] (Agent-Handler-2:null) Set agent id 1

2013-08-09 11:27:30,225 INFO  [cloud.agent.Agent] (Agent-Handler-2:null) Startup Response Received: agent id = 1

2013-08-09 11:27:30,350 WARN  [cloud.agent.Agent] (UgentTask-5:null) Unable to send request: null

2013-08-09 11:27:34,581 INFO  [cloud.agent.Agent] (Agent-Handler-3:null) Connected to the server

2013-08-09 11:27:35,310 INFO  [cloud.agent.Agent] (Agent-Handler-3:null) Lost connection to the server. Dealing with the remaining commands...

重新開機agent、libvirtd服務,異常依然。重新開機host,問題還是一樣。

從日志中能看出,異常是management-server在連接配接上cloud-agent後,重新整理vm狀态時問題導緻的。而此時,除了vRouter,所有vm的狀态均為Stoped。vRouter的狀态缺為Running,就此找到問題所在。不知何故,在host上使用virsh list并不能看到vRouter,而management-server卻認為他是Running狀态,需要重新整理一下狀态,導緻在management-server查詢不到vRouter,是以抛出異常。這應該是一個bug,需要修複。

解決方案,删除vRoute(需要先在資料庫将狀态置為Stopped,執行sql  “update vm_instance set state = 'Stopped' where vm_type = 'DomainRouter';”)。

繼續閱讀