CloudFoundry 使用遇到的问题

在部署、使用开源云平台CloudFoundry(版本为v1)的过程中,遇到了一些问题,通过分析CloudFoundry的实现机制和BOSH的结构,在google的帮助下,最终将问题解决,同时对linux也有了进一步的了解。  
  现在将一些问题和解决方案总结出来,与大家一起分享。  

一、vCenter故障排除  
  问题:  
  新虚拟机IP与已有虚拟机IP(如NFS Server的IP)冲突后,造成已有虚拟机、BOSH、Cloudfoundry不能正常工作。  

  解决方案:  
1, 使用ESXi主机上的“Restart Management Agent”;可以恢复虚拟机状态  
2, 重启vCenter服务  
3, 使用“主机—>配置存储适配器、存储器”上的“全部重新扫描”功能刷新存储。(可选)  
4, 重启Micro BOSH虚拟机(Micro BOSH的模板虚拟机虽然未启动,但需要在第一步的操作使他恢复正常状态,否则即使重启了Micro BOSH虚拟机,也无法访问。)。  
  通过以下一组命令确认micro bosh已恢复正常。  
$ bosh target  <micro  bosh 的ip>  
  $ bosh login  
  $ bosh deployments  
  $ bosh releases  
  $ bosh vms  
如果以上命令能正常运行并返回预期的信息,则micro bosh恢复正常。  
5, 在micro bosh恢复正常后,运行“bosh cck”检查多节点的bosh的运行状态。根据“bosh cck”的提示操作,先选择“reboot vm”进行恢复。如果无法恢复,则选择“bosh cck”命令提示中的“recreate vm 。。。”进行恢复。  
6, 在多节点的bosh恢复正常后,运行“bosh cck”检查多节点的cloudfoundry的运行状态。根据“bosh cck”的提示操作,先选择“reboot vm”进行恢复。如果无法恢复,则选择“bosh cck”命令提示中的“recreate vm 。。。”进行恢复。  
cloudfoundry恢复后,各节点中的原有数据和设置会随着节点的重建而恢复。  

二、主机增加  
  往vCenter中增加一个新的vSphere主机后,需要在vCenter中为新的vSphere主机增加NFS 存储(NFS datastore)、网络(CF Network、Services Network),使得BOSH部署CloudFoundry时能够识别出网络中新增加的vSphere主机。  

三、powerDNS节点  
  第一次部署多节点BOSH时,如果powerDNS在Job列表中最后一个时,最后一个执行该dns job,则DNS这个节点上的数据库会没有表。因为powerDNS节点上的表有director job来创建。因此最好将powerDNS这个节点放在director之前。或者多节点BOSH部署完后,再重新部署一下director这个job。  

四、修改‘最大打开文件数’  
1、 修改DEA节点上的agent.rb  
  agent.rb: /var/vcap/packages/dea/lib/dea/agent.rb  
搜索 ‘fds’,在def process_dea_start方法中修改num_fds值为9000.  
  2、 使用root权限修改以下文件内容  
/etc/security/limits.conf,增加以下内容,  
* soft nproc 10240  
  * hard nproc 10240  
  vcap soft nofile 9000  
  vcap hard nofile 65000  
  root soft nofile 9000  
  root soft nofile 65000  
  * soft nofile 10240 # 控制进程的打开最大文件数  
* hard nofile 10240 # 控制进程的打开最大文件数  
/etc/pam.d/common-session,增加以下内容,  
session required pam_limits.so  
  /etc/profile,增加以下内容,(该操作可选)  
ulimit -HSn 10240  

需要重启电脑,否则更改不会立即生效。   
检查:  
   ulimit -a 这个是列出当前系统的所有内容限制  
   ulimit -n 这个是列出当前系统能够打开最大的文件句柄数。  

   重启电脑之后,就可以使用root方式进行修改/etc/profile中的ulimit -HSn 后的数字,再执行source /etc/profile,就可以马上看到效果了。(该操作可选)  

  查看进程的limits  
  1、 ps -ea  
查看进程信息。  
2、 cat   /proc/进程id号/limits  
查看指定进程下的操作限制内容。  

五、修改cloud controller的nginx上传文件大小限制  
  当上传大文件到cloudfoundry时,文件大小超过256M,此时cloudfounry会返回413 的http 响应代码(上传文件大小超过nginx最大值)。  
  为了能够上传大文件,修改两个节点上的nginx.conf文件。  
1、cloud controller节点上的nginx的“client_max_body_size 556M;”参数值。  
  文件:/var/vcap/data/jobs/cloud_controller/56.8-dev/config/nginx.conf,在http上下文中修改client_max_body_size。  
http {  
      ...  
      client_max_body_size 556M;  
  }  
  2、router节点上的nginx的“client_max_body_size 556M;”参数值。  
  文件:/var/vcap/data/jobs/router/18.5-dev/config/nginx.conf,在http上下文中修改client_max_body_size。  
http {  
      ...  
      client_max_body_size 556M;  
  }  

六、修改DEA节点的系统时间  
  因为MemcacheD要求各个客户端的时间要保持一致,所以统一DEA节点上的时间。bios和系统时间都使用本地时间。  
  使用ROOT用户登录进行操作。  
1, 设置时区为UTC:dpkg-reconfigure tzdata,第一步中选择‘Etc’,第二步中选择‘UTC’  
2, 查看系统时间和bios时间:  
date; hwclock --show  
  3, 设置硬件时间  
sudo hwclock --set --date ‘07/10/13 12:12:00’  
4, 将系统时间设成硬件时间  
sudo hwclock --hctosys  
  5, 再次用 date; hwclock --show 查看当前系统时间和硬件时间  
6, 修改 .profile;加入如下内容  
hwclock --hctosys  
  TZ='Asia/Shanghai'  
  export TZ  
  7, 重启后,再用date查看系统日期,达到修改日期和时区的目的。  
  备注:  
1, 修改 ROOT用户的.profile,增加如下内容  
TZ=’Asia/Shanghai’  
export TZ  
  2, 修改时间: sudo date -s ‘20130710 10:15:00’  
以上的步骤可以重复使用,最终达到效果。  

七、使用部署文件更新多节点BOSH  
如果在执行‘bosh deploy’命令时,出现各种错误提示,可以使用重启Micro BOSH节点上的虚拟机,或者在vCenter中选择Micro BOSH、多节点BOSH所在的vSphere主机 并选择右键菜单中的‘重新引导’功能进行重启,使用这两种方法可以修复错误提示。  

八、修改CloudFoundry用户的内存分配量  
  根据cloud controller的部署文件模板(文件路径如下),  
tempest\cf-release\jobs\cloud_controller\templates\cloud_controller.yml.erb  
修改cloud foundry部署文件中关于cc(cloudcontroller)中的default_account_capacity值。内容如下:  
cc:  
      srv_api_uri: http://api.cf.offline  
      password: zbTuuLaap44jadlas2l312lk  
      token: 267f4eaa8c1758f66d5cb7adcb24adb9d7  
      use_nginx: true  
      new_stager_percent: 100  
      new_stager_email_regexp: '.*@vmware.com'  
      staging_upload_user: zxsfhgjg  
      staging_upload_password: ZNVfdase9  
      allow_registration: true  
      default_account_capacity:  
        memory: 8048  
      uaa:  

参考:  
tempest\cf-release\src\cloud_controller\cloud_controller\config\appconfig.rb  
  tempest\cf-release\src\cloud_controller\cloud_controller\config\cloud_controller.yml  

九、修复hbase_master  
问题:hbase_master节点处于‘failing’状态。  
  查看该节点上的日志文件 /var/vcap/sys/log/hbase_master/hbase_master_start.stdout.log,发现错误信息。  

  解决办法:修改hbase_master节点上配置文件中的hbase.rootdir。  
  被修改的文件位置:  
/var/vcap/data/jobs/hbase_master/1.1-dev/config/hbase/hbase-site.xml  
  <property>  
  <name>hbase.rootdir</name>  
  <value>hdfs://192.168.2.98:9000/hbase</value>  
  </property>  
说明:192.168.2.98是hbase_master节点上的主机IP地址 。  

十、修改cloudcontroller中stage操作时间  
  查看tempest\cf-release\jobs\cloud_controller\templates\cloud_controller.yml.erb,可以看到staging下的  max_staging_runtime参数控制cloud controller的stage时间,这个时间可以在cloudfoundry的部署文件中进行配置;或者修改cloud controller节点上的/var/vcap/data/jobs/cloud_controller/56.8-dev/config/cloud_controller.yml文件中的该参数值。

 

 

原文地址http://7wolfs.iteye.com/blog/1910056

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值