cloudstack4.21 + kvm 故障

系统有问题应先看看日志信息;

# /var/log/cloudstack/management/management-server.log


1、全局设置

secstorage.allowed.internal.sites 改为 10.10.10.0/24(实际存储网段)

management.network.cidr 改为 10.10.10.0/24 (实际管理网段)

其它要关注的一些全局参数:

expunge 删除实例弥留时间相关参数

ha.tag 高可用标签

ha.workers 高可用守护线程数

overprovisioning 系统资源超配相关参数

( 如果超配不起作用,看看数据库 cluster_detail 和 vm_template_details表 )

snapshot 快照相关参数;

kvm.snapshot.enabled 使用kvm作为宿主机这个参数必须设置为true

allocated.capacity 资源分配阀值相关参数,超过阀值将无法创建和运行虚拟机。

network.throttling.rate 网络带宽,默认值是200Mbps

vm.network.throttling.rate 网络带宽,默认值是200Mbps

expunge.delay=30

expunge.interval=30                            

secstorage.allowed.internal.sites=0.0.0.0/0  

//模板下载web所在的网段

system.vm.use.local.storage=true  

//启用本地存储

host=172.16.0.20

// 主机地址

management.network.cidr=172.16.0.0/24

模板地址下载的网段

全局设置的 虚拟机管理程序;

对于虚拟机平台 都有最大 来宾数的限制;


2、libvirtd 状态报错:

libvirtd dead but subsys locked

然后发现 cloudstack-agent 也是这个状况;

你启动libvirtd 服务失败的时候。用status查看状态的时候提示的是“libvirtd dead but subsys locked;

而 有时候才 cloudstack-agent 也是这个状况;dead but subsys locked;

所以就有可能是新安装之后 KVM 虚拟化之后有些管理按服务没有启动;(根据有的提示进程启动) 

/etc/init.d/messagebus start

 /etc/init.d/avahi-daemon start 

 /etc/init.d/libvirted start 

当时想使用KVM管理工具virsh时候提示/var/run/libvirt/libvirt-sock 找不到文件夹。

在你安装libvirt包的情况下还出现这个问题

你可能有几个服务没有安装。用yum安装

# yum install libdaemon avahi


3、无法重置密码 

出现无法写入路由表(日志报错):

Resource [DataCenter:1] is unreachable: Unable to apply save password entry on router  

就进入 虚拟路由进行查看;

有时候重启下就好了;有时候会是资源占用的问题;

4、加载二级存储失败

查看辅助存储信息是否有异常,删除异常的辅助存储,重新添加。

查看数据库cloud.p_w_picpath_store表,清除异常的二级存储信息。

注意nfs server开放防火墙端口,不仅是针对management和kvm主机,还要针对系统虚拟机(如ssvm)开放端口,还要注意ssvm每次重启后IP是可能会变的。

(如果没有其他办法 就关闭防火墙测试)


5、清除僵尸虚拟机

主机被关机后,虚拟机已挂掉,但控制台中仍看到活着的虚拟机,且无法迁移、重启、关闭。

在数据库中修改cloud.vm_instance相应字段,将其状态置为Destroyed。


6、无法挂载nfs

内部错误 Child process 

先查看下权限问题;

# more /etc/exports


然后重启下服务;

# /etc/init.d/nfs restart


7、删除主机

删除主机后重新添加,可能会因信息残留而无法再添加;建议是将主机改名后再添加试试;


8、无法创建快照 

cloudstack Failed to create snapshot due to an interna

修改全局变量 kvm.snapshot.enabled


9、无法启动ssvm系统虚拟机

管理主机和kvm主机都要修改配置文件 /etc/idmapd.conf 

# vi /etc/idmapd.conf  

//取消Domain前的注释,并修改为管理主机和虚拟主机所在的实际域名,即修改company.com

Domain = mycloud.com.cn


注意查看以下这几个文件;

/etc/libvirt/qemu.conf

/etc/idmapd.conf

/etc/libvirt/libvirtd.conf

/etc/sysconfig/libvirtd


10、SSVM无法挂载二级存储

日志报错:Unable to mount *.*.*.* :/目录 at 路径

登录ssvm控制台执行:

ssh -i /root/.ssh/id_rsa.cloud -p 3922 root@ip (本地链接地址)

# /usr/local/cloud/systemvm/ssvm-check.sh 


如果有这样的错误: 

ERROR: NFS is not currently mounted

查看nfs挂载是否有问题,并尝试手动挂载看有没有错误:

然后重新挂载;


挂载时候有错误,检查网络设置,同时nfs服务器防火墙针对SSVM开放端口。


11、CPVM 不正常;agent 状态 不正常;

查看java进程;
 ps -ef  |grep java

检查SSVM中的程序是否正常运行:

 service cloud status

如果 CloudStack cloud service is not running

运行 # /usr/local/cloud/systemvm/ssvm-check.sh  如果有这样的错误:

ERROR: Java process not running.  Try restarting the SSVM.

可以再查看 :# /var/log/cloud/cloud/out 日志;

则看下 java进程内存应用过大;

export _JAVA_OPTIONS="-Xmx256M"

然后执行/usr/local/cloud/systemvm/run.sh

ok


如果程序一直起不来,也有可能是系统模板版本不对,打开数据库vm_template表看看(可能会跟初始化的数据库值不一样的),不对的话重新下载安装系统模板。


12、无法创建镜像

com.cloud.utils.exception.CloudRuntimeException: Failed to backup 1670c7fd-2e66-42b5-8155-1564cc2c4e3a for disk /mnt/0373c9c2-5fd2-3ec4-b7be-128c11a0114b/e2341ae2-4d9a-49fb-b6b9-286918932bb0 to /mnt/7c3f19d1-784c-3585-a8bd-e881a6ac312c/snapshots/2/10


qemu-img版本兼容性问题,在kvm主机上执行:

# yum install qemu-img

# rpm -q qemu-img

qemu-img-0.12.1.2-2.415.el6_5.7.x86_64

# mkdir cloud-qemu-img

# cd cloud-qemu-img

# wget http://vault.centos.org/6.4/updates/x86_64/Packages/qemu-img-0.12.1.2-2.355.el6_4_4.1.x86_64.rpm

# rpm2cpio qemu-img-0.12.1.2-2.355.el6_4_4.1.x86_64.rpm |cpio -idmv

# cp ./usr/bin/qemu-img /usr/bin/cloud-qemu-img


13、无法启动虚拟机,/var/log/cloudstack/agent/agent.log报错:

Requested operation is not valid: domain 'r-4-VM' is already being started


手工把虚拟机启动:

# virsh start r-4-VM

再手工关闭:

# virsh shutdown r-4-VM

如果shutdown关闭不了,就用destroy


再到CS控制台中启动虚拟机。

注意:最小化安装的centos等系统(VM)是无法用virsh shutdown来关闭的,要用的话得在VM中安装acpid


# yum -y install acpid

# service acpid restart

# chkconfig acpid on


14、某kvm host主机挂掉后重新上线,云系统找不到cloudstack-agent

打开数据库vm_instance表检查各虚拟机的运行状态(state字段)是否跟实际有出入(比如明明应是Stopped的,说它Running),

把错误的地方修改保存后重启cloudstack-management。


15、明明有资源,却说没有资源无法启动虚拟机,

manage日志报错如下:

hostId: 1 is in avoid set, skipping this and trying other available hosts

hostId: 5 is in avoid set, skipping this and trying other available hosts

...........................

No suitable hosts found

No suitable hosts found under this Cluster: 1

Could not find suitable Deployment Destination for this VM under any clusters, returning.

...........................

Removing from the clusterId list these clusters from avoid set: [1]

...........................

No clusters found after removing disabled clusters and clusters in avoid list, returning.

...........................


查看是不是有的host并没有在线(要看cloudstack-agent日志有没有错误,控制台有时看到的是假象)


16、host无法正常加入系统,反复断开

cloudstack-agent日志报错如下:

Connected to 10.10.10.15:8250

Proccess agent startup answer, agent id = 0

Set agent id 0

Startup Response Received: agent id = 0

Connected to the server

Lost connection to the server. Dealing with the remaining commands...


    注意看manage的日志中的host id 和cloudstack-agent日志中的agent id,是不是对应不上,是的话删除这个host重新添加。


    如果删不掉,关闭manage和agent,清除数据库中host_details和host表与这个host对应的数据(如果提示其它表有关联数据也一起删除),重启manage和agent。


17、已经能正常运行的系统,某次host掉线重新连接后,主存、二存、防火墙都没有问题,但ssvm等系统虚拟机反复重启无法启动成功

查看agent.log是否有这样的日志:

ERROR [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-4:null) org.libvirt.LibvirtException: ?????? '/nfsprimary/afe3bed3-c0ad-4ea5-9a39-b59644043966': ??????

可能这个VM已经变成了僵尸,关掉它

查看volumes表中afe3bed3-c0ad-4ea5-9a39-b59644043966对应的卷名,关掉对应的VM(卷名和VM的数字是相等的)


18、服务器意外关闭,重启后一个VM无法启动,日志报错“no usable volumes found for the VM”,查看该VM的卷,文件可访问,

    查看数据库,volumes表中该VM行的state字段值为Snapshotting,显然服务器意外关闭时该VM正在做快照,VM被冻结,服务器重启后未解除冻结状态,

将state字段值改为Ready,VM可正常启动。


# Some Global Params you'll want to Check or Set:

check.pod.cidrs

consoleproxy.capacity.standby

consoleproxy.launch.max

external.firewall.default.capacity

guest.domain.suffix

host

management.network.cidr

max.account.*

max.project.*

max.template.iso.size

network.guest.cidr.limit

remote.access.***.client.iprange

remote.access.***.psk.length

remote.access.***.user.limit

router.cpu.mhz

sdn.ovs.controller.default.label

secstorage.allowed.internal.sites

secstorage.capacity.standby

secstorage.session.max

system.vm.default.hypervisor

usage.execution.timezone

(没什么意外 不要轻易修改注册表 )


CPVM 数据库表 信息;

(agent state  状态) //主机信息中的系统虚机信息

mysql> SELECT * FROM host WHERE name like '%v-1746-VM%'\G

*************************** 1. row ***************************

                   id: 18

                 name: v-1746-VM

                 uuid: 8cee7395-080f-44df-8ee6-11e3673cdbc6

               status: Up

                 type: ConsoleProxy

   private_ip_address: 172.16.1.38

      private_netmask: 255.255.255.0

  private_mac_address: 06:d5:12:00:00:25

   storage_ip_address: 172.16.1.38

      storage_netmask: 255.255.255.0

  storage_mac_address: 06:d5:12:00:00:25

 storage_ip_address_2: NULL

storage_mac_address_2: NULL

    storage_netmask_2: NULL

           cluster_id: NULL

    public_ip_address: 42.51.3.98

       public_netmask: 255.255.255.192

   public_mac_address: 06:74:aa:00:00:43

           proxy_port: NULL

       data_center_id: 1

               pod_id: 1

                 cpus: NULL

                speed: NULL

                  url: NoIqn

              fs_type: NULL

      hypervisor_type: NULL

   hypervisor_version: NULL

                  ram: 0

             resource: NULL

              version: 4.2.1

               parent: NULL

           total_size: NULL

         capabilities: NULL

                 guid: Proxy.1746-ConsoleProxyResource

            available: 1

                setup: 0

          dom0_memory: 0

            last_ping: 1384452097

       mgmt_server_id: 52239605088

         disconnected: NULL

              created: 2014-12-04 07:39:57

              removed: NULL

         update_count: 11

       resource_state: Enabled

                owner: NULL

          lastUpdated: NULL

         engine_state: Disabled

1 row in set (0.00 sec)


(VM state 状态)//虚拟机实例中的系统虚机信息

mysql> SELECT * FROM vm_instance WHERE  name like '%v-1746-VM%'\G

*************************** 1. row ***************************

                  id: 1746

                name: v-1746-VM

                uuid: 25cd9d5e-5eaa-4c80-99a3-c44f2bb7801f

       instance_name: v-1746-VM

               state: Running

      vm_template_id: 3

         guest_os_id: 15

 private_mac_address: 06:d5:12:00:00:25

  private_ip_address: 172.16.1.38

              pod_id: 1

      data_center_id: 1

             host_id: 17

        last_host_id: 17

            proxy_id: NULL

   proxy_assign_time: NULL

        vnc_password: DebZf1YTAJa5BeXCHs6Sa+ml/EMTt1kgQvvynQuqgT0=

          ha_enabled: 0

       limit_cpu_use: 0

        update_count: 3

         update_time: 2014-12-04 06:34:23

             created: 2014-12-04 06:33:16

             removed: NULL

                type: ConsoleProxy

             vm_type: ConsoleProxy

          account_id: 1

           domain_id: 1

 service_offering_id: 39

      reservation_id: ca734fa3-09b3-40b9-9b43-d94f400af307

     hypervisor_type: KVM

    disk_offering_id: NULL

                 cpu: NULL

                 ram: NULL

               owner: NULL

               speed: NULL

           host_name: NULL

        display_name: NULL

       desired_state: NULL

dynamically_scalable: 0

          display_vm: 1

1 row in set (0.01 sec)

mysql>