CentOS6.6安装CloudStack4.8

CloudStack官方是有非常详细的安装使用文档,不过可能稍显散乱。这里记录下一次安装配置的过程,备忘!整个过程参考官方安装文档!

CloudStack是一个开源的具有高可用性及扩展性的云计算平台。支持管理大部分主流的hypervisor,如KVM虚拟机,XenServer,VMware,Oracle VM,Xen等。

一、基础环境:

安装是在Centos6.6 64位版本的系统上进行的,使用的cloudstack版本为4.8目前官方最新版本,较之前的4.3有些改变,对后续的使用还是有些影响,后面会提出来。另外有两个在使用过程中的坑也会标出来,以免以后再次入坑。

这次安装一个最小规模的cloudstack系统,使用默认共享网络,即cloudstack服务器所在的网络环境,不涉及复杂的网络环境。

安装中需要的几个组件:

数据库: 172.16.10.5:3306 #存储云平台数据
nfs(辅助存储) 172.16.10.5 #用于辅助存储
ntp_server 172.16.10.5 #客户端与服务端的时间同步
management 172.16.10.5 #云平台管理中心
agent: 172.16.10.5 #受控端,正常应为虚拟化中的宿主机(可以是kvm,xen,vsphere等)

网络参数:

gateway 172.16.0.1
netmask 255.255.0.0
systemip 172.16.10.10-172.16.10.20
guest-gateway 172.16.0.1
netmask: 255.255.0.0
guest ips: 172.16.10.30--172.16.10.100

安装完成后的架构:

二、安装过程

操作系统安装时选择虚拟化平台组件,在些基础上配置以下所需要的软件。这次安装中将数据库、二级存储、cloudstack服务端、cloudstack客户端(即KVM宿主机)都集中安装到一台服务器上,根据需要依次安装以下软件(涉及到所有软件增均采用yum安装):

1.安装nfs

做为辅助存储

#yum install -y nfs-utils
#chkconfig nfs on
#mkdir -p /export/primary
#mkdir -p /export/secondary
#vi /etc/exports
/export 172.16.10.*(rw,async,no_root_squash,no_subtree_check)
#service nfs restart

2.安装mysql

#yum -y install mysql-server

修改配置文件my.cnf增加以下内容

innodb_rollback_on_timeout=1
innodb_lock_wait_timeout=600
max_connections=350
log-bin=mysql-bin
binlog-format = 'ROW'

重启并将mysql配置成开机自启动:

#service mysqld restart
#chkconfig mysqld on

运行mysql安全脚本,根据提示设置mysql密码、禁Root用户远程登陆、删除空密码用户等

#mysql_secure_installation

3.安装ntp

# yum -y install ntp

实际上默认配置项即可满足的需求,仅需启用NTP并设置为开机启动,如下所示:

# chkconfig ntpd on
# service ntpd start

4.安装cloudstack-management

这里有一个问题,就是在前后几次安装过程中发现官方的yum源非常慢,所以一般我会把rpm文件全部下载到本地后用yum localinstall来进行安装。当然直接下载rpm包也不会很快,但可以在下次安装时使用,不至于把时间全部花在等待上。另外可以用百度云盘的离线下载,然后再从百度云盘下载到本地,可能会快一些!

<1>添加cloudstack软件仓库,创建/etc/yum.repos.d/cloudstack.repo文件,并添加如下信息。

[cloudstack]
name=cloudstack
baseurl=http://cloudstack.apt-get.eu/centos/6/4.8/
enabled=1
gpgcheck=0

虽然使用yum localinstall 但是依然需要cloudstack的软件库,否则在安装过程中可能会出现依赖找不到的情况。

<2>上传下载的Rpm包到/opt 下,一般就4个比较重要的包:

cloudstack-agent-4.8.0-1.el6.x86_64.rpm
cloudstack-common-4.8.0-1.el6.x86_64.rpm
cloudstack-management-4.8.0-1.el6.x86_64.rpm
cloudstack-usage-4.8.0-1.el6.x86_64.rpm
#cd /opt
#yum localinstall cloudstack-*

安装完成后:

<3>初始化数据库

#cloudstack-setup-databases cloud:123456@localhost --deploy-as root:123456

<4>配置管理服务器:

#cloudstack-setup-management

<5>上传系统模板

#/usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt \
-m /export/secondary \
-u http://cloudstack.apt-get.eu/systemvm/4.6/systemvm64template-4.6.0-kvm.qcow2.bz2 -h kvm -F

这一步可以参考cloudstack包,先下载到本地,使用-f system-template.详细使用方法参考下面usage

Usage: cloud-install-sys-tmplt: -m <secondary storage mount point> -f <system vm template file> [-h <hypervisor name: kvm|vmware|xenserver|hyperv|ovm3> ] [ -s <mgmt server secret key, if you specified any when running cloudstack-setup-database, default is password>][-u <Url to system vm template>] [-F <clean up system templates of specified hypervisor>] [-e <Template suffix, e.g vhd, ova, qcow2>] [-o <Database server hostname or ip, e.g localhost>] [-r <Database user name, e.g root>] [-p <mysql database port>] [-d <Database password. Fllowed by nothing if the password is empty>]

以上全部完成后启动management

#/etc/init.d/cloudstack-management start

5.安装agent

# yum -y install cloudstack-agent #这是官方文档的命令

我在安装的时候依然使用

#yum localinstall cloudstack-agent-4.8.0-1.el6.x86_64.rpm cloudstack-common-4.8.0-1.el6.x86_64.rpm

安装完成后运行agent配置命令

cloudstack-setup-agent

根据提示输入,管理服务器的IP,监听的端口等信息。(待续)

6.配置hypervisor

<1>安装kvm

如果是最小化安装的系统运行以下命令

#yum groupinstall -y Virtualization " Virtualization Client"

或者在系统安装时选择虚拟化主机组件。

验证kvm是否已经正确安装

lsmod | grep kvm

如图为正确

<2>配置kvm

编辑QEMU VNC配置文件/etc/libvirt/qemu.conf并取消如下行的注释。

#vnc_listen=0.0.0.0

在/etc/libvirt/libvirtd.conf文件中,配置以下参数

listen_tls = 0
listen_tcp = 1
tcp_port = "16059"
auth_tcp = "none"
mdns_adv = 0

修改/etc/sysconfig/libvirtd中的参数:

取消如下行的注释:

#LIBVIRTD_ARGS="--listen"

完成后重启libvirtd

#/etc/init.d/libvirtd restart

至此cloudstack安装完毕, 打开浏览器输入172.16.10.5:8080/client/出现下面画面则成功安装完成了cloudstack。

时间: 2016-10-16

CloudStack 创建主存储失败解决方案

CloudStack创建主存储失败(SR已经被使用),删除SR后成功 由于最近工程需要用到这个东西,于是乎,在网上找了些资料解决了CloudStack创建主存储失败(SR已经被使用),删除SR后成功,的问题,这里就记录下: 创建主存储时,可能会发生创建存储pool失败(SR已经被使用,重装CloudStack management后可能发生此问题),错误提示如下: Can not create storage pool through host 1 due to Catch Exception

CloudStack SSVM启动条件源码阅读与问题解决方法

CloudStack SSVM启动条件源码阅读与问题解决方法: 在CloudStack建立zone的时候,经常遇到SSVM不启动,或者根本就没有SSVM的情况,分析CloudStack日志,会发现有"Zone 1 is not ready to launch secondary storage VM yet"打印,意思是zone还未准备好启动SSVM. 通过查询CloudStack源代码,发现启动SSVM前有如下检查:         获取Zone里的template. select

CloudStack 环境如何重新部署详解

CloudStack 环境重新部署: 最近公司项目需求,由于更改项目需要重新部署环境,经过一番官网查询,及论坛,博客的资料查询,终于解决,这里说下如何实现. 在研发基于CloudStack之上的应用时,经常遇到要重新安装CloudStack,如果全部重装的话,太慢,所以找到了一个简单办法,只需要删除存储SR并重新部署CloudStack数据库即可. 实现具体步骤: 1).停止CloudStack服务.service cloud-management stop. 2).到MySQL里查询selec

CloudStack 安装及使用过程中常见问题汇总

CloudStack 安装及使用过程中常见问题汇总             在做工程项目中对CloudStack 安装及使用过程中常见的几个问题及如何解决做一个总结.   1.Windows XP虚拟机内部重启不能正确获取IP,windows xp iso建立VM,重启VM无法正确获取IP地址,原因是没有加入域,可以通过修改注册表来解决此问题.设置组策略 计算机配置--管理模板--网络--DNS客户端里的DNS后缀搜索列表,设置为已启动,后缀值为cs1group.internal Windows

cloudstack下libvirtd服务无响应问题

在cloudstack4.5.2版本下,偶尔出现libvirtd服务无响应的情况,导致virsh命令无法使用,同时伴随cloudstack master丢失该slave主机连接的情况.最初怀疑是libvirtd服务或版本的问题,经过分析和排查最终确定是cloudstack-agent的问题.但是在官网上并没有找到类似的bug提交,该问题可能还存在于更高的版本,需要时间进一步从根本上分析.下面是该问题的处理过程,在此记录下,关注和使用cloudstack的朋友可以参考. 众所周知,cloudsta

关于python下cv.waitKey无响应的原因及解决方法

按下键的时候,焦点要落在窗口上,不能落在cmd窗口上. 另外,一般在imshow()后要使用waitKey(),给图像绘制留下时间,不然窗口会出现无响应情况,并且图像无法显示出来. int waitKey(int delay=0) - 延时delay = 0 函数则延时无限长,必须有键按下才继续执行. - 延时delay > 0 函数返回值为按下的键的ASCII码值,超时则返回-1. OpenCV: waitKey waitKey Waits for a pressed key. C++: in

Android ListView的item背景色设置和item点击无响应的解决方法

下面讲解以下在使用listview时最常见的几个问题.1.如何改变item的背景色和按下颜色 listview默认情况下,item的背景色是黑色,在用户点击时是黄色的.如果需要修改为自定义的背景颜色,一般情况下有三种方法: 1)设置listSelector 2)在布局文件中设置item的background 3)在adapter的getview中设置 这三种方法都能达到改变item默认的背景色和按下颜色,下面来分别讲解,但是在这之前需要先写好selector.xml文件; 复制代码 代码如下:

jQuery on()方法绑定动态元素的点击事件无响应的解决办法

$('#check_all').on('click' , function(){ alert(1); }); $("#yujinlist").append(html); count++; } 以上代码执行时,点击#check_all时,alert一直没反应,后在网上查资料时,才知道on前面的元素也必须在页面加载的时候就存在于dom里面, 那原话是这样的: 支持给动态元素和属性绑定事件的是live和on,其中live在JQUERY 1.7之后就不推荐使用了.现在主要用on,使用on的时候

Android开发中避免应用无响应的方法(Application Not Responding、ANR)

App里发生的最糟糕的事是弹出应用无响应"Application Not Responding" (ANR) 对话框.本课讲的是如何保持应用响应,避免ANR. 什么触发ANR 通常,系统会在应用无法对用户输入响应时显示ANR.比如,如果一个应用在I/O操作上阻塞了(频繁请求网络)UI线程,系统无法处理用户输入事件.或者,在UI线程中,app花了大量时间在构建复杂的类,或在游戏中计算下一个动作.保证这些操作高效是很重要的,但最高效的代码也需要花费时间. 在任何情况下,都不要在UI线程执行

为vue-router懒加载时下载js的过程中添加loading提示避免无响应问题

用过vue-router都知道它可以实现模块js的懒加载,即只有当需要时才去加载对应模块的js脚本文件,以加速主页的显示.比如只有第一次用户点击某个"用户信息"按钮或菜单时,才下载"用户信息"这个模块的js组件. 懒加载的实现,依赖与webpack下AMD模式require函数的功能.webpack会将异步require的文件生成一个独立的js文件,调用时异步下载这个js且在完成后再执行它.开发项目中实现的关键代码是: const basicInfo = { pat

iOS UIButton 点击无响应的解决办法

前言 在日常开发中我们经常和按钮打交道,但是有时候会碰到比较难处理的问题,就是按钮不响应点击事件,这时候我们需要从下面几方面排查 按钮不响应的原因 1.按钮添加到了一个没有开启用户交互的父View上,例如UIImageView,这时候开启父试图的交互 view.userInteractionEnabled = YES 设为YES就可以解决问题 2.按钮自身被遮挡,点击的时候根本就没有点击到button,而是他上面一层View,自然就不会响应 这里有个看图层的方法,下图点击那个红框的按钮就可以看到

浅谈Spring Cloud下微服务权限方案

背景 从传统的单体应用转型Spring Cloud的朋友都在问我,Spring Cloud下的微服务权限怎么管?怎么设计比较合理?从大层面讲叫服务权限,往小处拆分,分别为三块:用户认证.用户权限.服务校验. 用户认证 传统的单体应用可能习惯了session的存在,而到了Spring cloud的微服务化后,session虽然可以采取分布式会话来解决,但终究不是上上策.开始有人推行Spring Cloud Security结合很好的OAuth2,后面为了优化OAuth 2中Access Token

python定时检测无响应进程并重启的实例代码

总有一些程序在windows平台表现不稳定,动不动一段时间就无响应,但又不得不用,每次都是发现问题了手动重启,现在写个脚本定时检测进程是否正常,自动重启. 涉及知识点 schedule定时任务调度 os.popen运行程序并读取解析运行结果 代码分解 脚本主入口 if __name__ == '__main__': #每5秒执行检查任务 schedule.every(5).seconds.do(check_job) #此处固定写法,意思是每秒钟schedule看下是否有pending的任务,有就

Android webview加载https链接错误或无响应的解决

最近做无线WiFi的时候,在最后认证成功的时候会弹出一个广告页,于是用webview去加载了一下,结果没反应,打印url出来看了一下,发现是https格式的,在使用WebView加载https资源文件时,如果认证证书不被Android认可,那么会出现无法成功加载对应资源问题.那么,我们就要针对这一状况作出对应的处理. 于是百度了一下,这里记录一下,给大家做个参考: 1.设置WebView接受所有网站的证书 在认证证书不被Android所接受的情况下,我们可以通过设置重写WebViewClient