开源的PaaS方案:在OpenStack上部署CloudFoundry (五)常见问题

部署CloudFoundry可能遇到的问题

1. Bosh 报告 OpenStack API Request Entity Too Large error

解决办法,修改/etc/nova/api-paste.conf文件,添加limits属性
[python] view plaincopy
 
 
  1. [filter:ratelimit]   
  2. paste.filter_factory = nova.api.openstack.compute.limits:RateLimitingMiddleware.factory   
  3. limits =(POST, "*", .*, 50, MINUTE);(POST, "*/servers", ^/servers, 50, DAY);(PUT, "*", .*, 50, MINUTE);(GET, "*changes-since*", .*changes-since.*, 30, MINUTE);(DELETE, "*", .*, 100, MINUTE)  

2. Bosh 报告无法创建虚拟机,查看nova日志发现 “disk with libguestfs (could not parse /etc/fstab or empty file))”错误

解决方法:修改/etc/nova/nova.conf里的libvirt_inject_partition的默认值(-1自动检测)为固定值1

[python] view plaincopy
 
 
  1. libvirt_inject_partition=1  
[python] view plaincopy
 

3. Bosh 报告无法创建虚拟机,查看nova日志发现 

File "/usr/lib/python2.7/site-packages/neutronclient/openstack/common/jsonutils.py", line 168, in dumps
return json.dumps(value, default=default, **kwargs)
File "/usr/lib64/python2.7/json/__init__.py", line 250, in dumps
sort_keys=sort_keys, **kw).encode(obj)
File "/usr/lib64/python2.7/json/encoder.py", line 207, in encode
chunks = self.iterencode(o, _one_shot=True)
File "/usr/lib64/python2.7/json/encoder.py", line 270, in iterencode
return _iterencode(o, 0)
File "/usr/lib/python2.7/site-packages/neutronclient/common/serializer.py", line 65, in sanitizer
return six.text_type(obj, 'utf8')
TypeError: coercing to Unicode: need string or buffer, IPAddress found

 
TMD 这个是openstack上的一个bug,详见
https://bugzilla.redhat.com/show_bug.cgi?id=1195067
juno 目前还没打上这个patch。 
 
修复方法,这个问题是由于bosh的部署文件microbosh.yml 中吧type 配成了mannual 然后通过ip 属性指定了固定ip,这个会翻译成openstack v4-fixed-ip 虚拟机创建参数,这个参数目前有bug 所以会失败,将yml 文件中的type 改成dynamic 并将ip 属性去掉即可。
 
    1. # service openstack-nova-compute restart  
posted on 2015-04-04 08:28  Yudar  阅读(858)  评论(0编辑  收藏  举报