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>