CloudStack是一个功能强大、UI友好的开源云(IaaS)计算解决方案。自Ctrix将CloudStack捐献给
CloudStack拥有所有开源云平台中最为友善的管理界面,而且其天生的多语种支持会使中文用户感觉很爽。
今天我们来详细介绍一下CloudStack最新版本
CloudStack可分为管理节点安装和受控节点安装。
管理节点安装无特殊要求,完全可以安装到虚拟机环境下。
受控节点因要创建虚拟机,故需要硬件虚拟化支持,推荐使用独立主机安装。CloudStack支持多种虚拟化方案,包括:KVM、Xen、XenServer、VMware。因XenServer、VMware已包含有强大的虚拟机管理功能,CloudStack可以直接与其通信调用其管理接口,因此这两种受控机环境下,无需安装任何软件。但KVM、Xen的受控机必须安装
本篇我们主要来讲解管理节点搭建步骤:
1、配置网卡,确保主机能上网因我们要使用网络安装方式,所以要首先保证你的服务器可以正常联网。
2、设置主机名称CloudStack运行时需要获取本机名称,如无法正确获取可能导致服务无法正常启动并报一大堆的错。
运行以下命令检查:
如无正常返回,请编辑
2 |
192.168.19.135 |
编辑完后立即生效。如果还不成的话,重启下服务器应该就会好了。
3、配置时间同步管理节点会通过各种协议与受控节点通讯,为了确保安全,受控节点接到命令后会进行一系列的校验,如果两机的时间不同步的话,会导致命令拒绝执行。
最简单的办法就是,所有服务器都安装
服务器上的SELinux会拦截CloudStack的一些命令,导致CloudStack操作失败,因此启动CloudStack前需要对SELinux进行设置。
vi
以上修改需重启服务器才能生效,为使设置立即生效可使用下边的命令
默认情况下,CentOS的软件源中没有收录最新版本CloudStack,为了能顺利安装,我们需要手工指定软件源。
新建
3 | baseurl=http://cloudstack.apt-get.eu/rhel/4.1/ |
设置好源以后,我们就可以直接使用
安装管理节点的命令为:
1 | yum install cloud-client |
如果你的CentOS
CloudStack使用mysql管理数据,但安装cloud-client时没有包含mysql,这时需要我们手工安装,并导入数据。这是可以理解的,因为数据库可以被安装到其它机器上。
1 | yum install mysql-server |
默认的,mysql有连接数限制,无法满足CloudStack管理节点的要求,需要手工设定。
vi
增加以下内容:
1 | innodb_rollback_on_timeout=1 |
2 | innodb_lock_wait_timeout=600 |
注:如果没改的话会发生什么现象我没有尝试,不过还是建议按要求修改。
现在,启动
缺省安装的mysql安全级别比较低,需要手工设置mysql下密码、禁用远程访问,删除无用账户及测试数据库。方法也很简单,直接使用如下命令按向导提示一步步来即可:
1 | mysql_secure_installation |
数据库准备好后,需导入CloudStack的表及基础数据,这样云平台才能正常使用:
1 | cloudstack-setup-databases cloud:123456@localhost --deploy-as=root:刚才设定的root密码 |
如果没有意外的话,最后会输出
到目前为止,虽然还有很多工作要做,但你现在其实已经可以登陆CloudStack控制台啦。
先启动CloudStack服务:
1 | server cloudstack-management restart |
启动CloudStack服务需要花点时间,这期间你可以查看下它的日志,确保它正常启动:
1 |
tail -100f |
一般情况下,它会正常启动。如果启动时报权限问题,一般是因为
1 | chown cloud /var/log/cloudstack/ -R |
启动成功能后,你现在就可以用谷歌、火狐浏览器访问管理节点啦:
http://管理节点ip:8080/client
注:IE访问可能有兼容性问题。
CloudStack原生支持中文,怎么样看着亲切吧?
默认的用户名为
初次登陆时会显示向导页面,一步步引导你创建第一个基础架构。目前我们的准备工作尚未完成,还无法正确添加,因此这里先选择跳过。
登陆后点击“基础架构”,CloudStack资源管理的功能都在“基础架构”下。
其中,“区域”可以理解为一个机房;
根据以上的介绍,想添加新的“区域”还必须依赖于网络存储、系统虚机的支持,因此各位看官还需继续努力哦。
主存储由于可使用本地存储,故可不添加,但二级存储只能使用网络存储。
CloudStack支持多种网络存储协议,如iSCSI、NFS、VMFS等。由于NFS简单易用,推荐使用NFS搭建网络存储。
安装NFS服务:
编辑
#
在文件中,增加如下内容
1 |
/export |
实际建立文件夹
1 |
mkdir -p |
2 |
mkdir -p |
修改
6 | STATD_OUTGOING_PORT=2020 |
接着开放iptables相关端口:
vi
01 | -A INPUT -p tcp -m tcp --dport 111 -j ACCEPT |
02 | -A INPUT -p udp -m udp --dport 111 -j ACCEPT |
03 | -A INPUT -p tcp -m tcp --dport 2049 -j ACCEPT |
04 | -A INPUT -p tcp -m tcp --dport 32803 -j ACCEPT |
05 | -A INPUT -p udp -m udp --dport 32769 -j ACCEPT |
06 | -A INPUT -p tcp -m tcp --dport 892 -j ACCEPT |
07 | -A INPUT -p udp -m udp --dport 892 -j ACCEPT |
08 | -A INPUT -p tcp -m tcp --dport 875 -j ACCEPT |
09 | -A INPUT -p udp -m udp --dport 875 -j ACCEPT |
10 | -A INPUT -p tcp -m tcp --dport 662 -j ACCEPT |
11 | -A INPUT -p udp -m udp --dport 662 -j ACCEPT |
service
启动NFS服务:
设置服务为自动重启
CloudStack有一个全局属性来控制二级存储所在的网段。如果这个网段没配或配置的不对,将可能无法成功能添加到二级存储。
登陆
修改
搜索
修改后,重启
1 | server cloudstack-management restart |
系统虚机在CloudStack中扮演着重要的角色,如系统虚机没有正确导入,CloudStack将无法管理二级存储,也就无法完成导入模板、创建新的虚机等操作。
系统虚机文件很大,没有包含在CloudStack安装程序中,需要我们手工下载并导入。
因系统虚机需要存放在二级存储上,故需先mount
2 | mount -t nfs 127.0.0.1:/export/secondary /tmp/iso |
3 | cd /usr/share/cloudstack-common/scripts/storage/secondary/ |
不同的虚拟机实现方案系统虚机模板也是不同的
如果你的受控机使用
1 | ./cloud-install-sys-tmplt -m /tmp/iso/ -u http://download.cloud.com/templates/acton/acton-systemvm-02062012.qcow2.bz2 -h kvm -F |
如果你的受控机使用XenServer,则使用下面的命令:
1 | ./cloud-install-sys-tmplt -m /tmp/iso/ -u http://download.cloud.com/templates/acton/acton-systemvm-02062012.vhd.bz2 -h xenserver -F |
如果你的受控机使用vCenter,则使用下面的命令:
1 | ./cloud-install-sys-tmplt -m /tmp/iso/ -u http://download.cloud.com/templates/burbank/burbank-systemvm-08012012.ova -h vmware -F |
文件较大,需耐心等待.……
当然,你也可以把文件下载到本地,然后用
1 | ./cloud-install-sys-tmplt -m /tmp/iso/ -f /var/acton-systemvm-02062012.qcow2.bz2 -h kvm -F |
好了,现在CloudStack管理节点所有的准备工作都已经完成了。接下来你就可以添加自己的第一个“区域”了。
这步的操作方法,CloudStack中已经提供了一个非常友好的向导,可以帮助你正确完成添加。另外,网上也有一大堆的文章介绍,我就不详细说了,等将来有机会时我再给大家介绍下CloudStack高级网络域的相关功能及添加方法。
1、管理节点的webui检查iptables是否阻挡了8080端口。检查cloudstack-management服务是否正常启动。
1 | server cloudstack-management status |
如果启动状态不正常,则需要检查一下日志。
日志位于
如果日志信息不够详细,可以修改
默认的登陆用户名为
如果登陆时提示不正确,可能是导入基础数据库时有的问题。
重新导入基础数据库:
1 | cloudstack-setup-databases cloud:123456@localhost --deploy-as=root:root密码 |
如果还不行,参考5将数据库删掉再重新导入。
3、CloudStack不能添加主存储或二级存储检查/etc/sysconfig/nfs配置文件是否把端口都开放了。
检查iptables是否有阻挡。
检查CloudStack的“全局设置”,secstorage.allowed.internal.sites属性是否设置正确。
4、CloudStack无法导入IOS或虚拟机模板创建好“基础架构”后,就可以导入ISO文件或虚拟机模板,为创建虚机做准备了。
如果你发现注册ISO或注册模板时,状态字段一直不动,已就绪永远都是no,那一般都是因为二级存储有问题或Secondary
选择“控制板”->系统容量,检查二级存储容量是否正确。
检查系统VM中的Secondary
安装完CloudStack后,我们往往会做各种实验,可能会把系统搞得很乱。想删除的话非常麻烦,因为它们之间往往存在层级关系,必须先从最底层删起。有没简单的办法直接推倒重来呢?答案是有的,最简单只要重置下其数据库即可。
先停掉CloudStack服务:
service
登陆mysql控制台,删除数据库:
mysql
2 | drop database cloud_usage; |
3 | drop database cloudbridge; |
重新导入基础数据:
1 | cloudstack-setup-databases cloud:123456@localhost --deploy-as=root:root密码 |
重新导入系统虚机:
1 | mount -t nfs 127.0.0.1:/export/secondary /tmp/iso |
3 | cd /usr/share/cloudstack-common/scripts/storage/secondary/ |
参考第7节,导入相应的系统虚机模板。
重启cloudstack服务
1 | service cloudstack-management start |
这时,你再登陆就会发现一个全新的CloudStack啦。
6、CloudStack的区域、提供点等无法用中文命名CloudStack在4.1以前的版本中,区域、提供点等均可使用中文命名,但4.1版本时却不知为何做了限制,蛋疼。
如果在意这个功能,请使用4.1以前的版本。推荐使用