先决条件
完成此操作手册你需要如下条件:
至少一台支持硬件虚拟化的主机。
The CentOS 6.5 x86_64 minimal install CD
一个C类(/24)网络,网关为 xxx.xxx.xxx.1,网络中不能存在DHCP服务器,所有运行Cloudstack的主机需使用静态IP地址。
VMware workstation (非必须的)
环境
首先,需要先准备要Cloudstack的安装环境,以下将详细描述准备步骤。
用VMware 创建一个虚拟机,内存1G,CPU2核,硬盘40G,虚拟机必须保证VT标记打开
操作系统
CentOS 6.5 x86_64
当安装完成后,需要以root身份通过SSH连接新安装的主机
网络配置
默认情况下新安装的机器并未启用网络,您需要根据实际环境进行配置。由于网络中不存在DHCP服务器,您需要手工配置网络接口。为了实现快速简化
安装的目标,这里假定主机上只有eth0一个网络接口。
使用root用户登录本地控制台。检查文件 /etc/sysconfig/network-scripts/ifcfg-eth0,默认情况,其内容如下所示:
DEVICE="eth0"
HWADDR="52:54:00:B9:A6:C0"
NM_CONTROLLED="yes"
ONBOOT="no"
但是根据以上配置您无法连接到网络,对于Cloudstack也同样不适合;您需修改配置文件,指定IP地址,网络掩码等信息,如下例所示:
注解
注意,不要在你的配置中使用示例中的Hardware地址(也叫MAC地址)。该地址为网络接口所特有的,请保留你配置文件中已经提供的HWADDR字段。
DEVICE=eth0
HWADDR=52:54:00:B9:A6:C0
NM_CONTROLLED=no
ONBOOT=yes
BOOTPROTO=none
IPADDR=10.11.1.212
NETMASK=255.255.255.0
GATEWAY=10.11.1.254
DNS1=8.8.8.8
DNS2=8.8.4.4
配置文件准备完毕后,需要运行命令启动网络。
# chkconfig network on
# service network start
主机名
Cloudstack要求正确设置主机名,如果安装时您接受了默认选项,主机名为localhost.localdomain,输入如下命令可以进行验证
# hostname --fqdn
在此处将返回:
localhost
为了纠正这个问题,需设置主机名,通过编辑/etc/hosts 文件,将其更改为类似如下内容:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.11.1.212 srvr1.cloud.priv
更改配置文件后,重启网络服务:
# service network restart
通过hostname -–fqdn命令重新检查主机名,并确认返回了正确的FQDN
SELinux
当前的CloudStack需要将SELinux设置为permissive才能正常工作,您需要改变当前配置,同时将该配置持久化,使其在主机重启后仍然生效。
在系统运行状态下将SELinux配置为permissive需执行如下命令:
# setenforce 0
为确保其持久生效需更改配置文件/etc/selinux/config,设置为permissive,如下例所示:
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=permissive
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
NTP
为了同步云平台中主机的时间,需要配置NTP,但NTP默认没有安装。因此需要先安装NTP,然后进行配置。通过以下命令进行安装:
# yum -y install ntp
实际上默认配置项即可满足的需求,仅需启用NTP并设置为开机启动,如下所示:
# chkconfig ntpd on
# service ntpd start
配置ClouStack软件库
配置主机使用CloudStack软件库。
注解
Apache CloudStack官方发布源代码。因此没有可用的“官方”安装文件。完整的安装指南介绍了如何获取源代码,以及制作RPM包和yum软件库。本指
南尽可能简化这些操作,所以直接使用社区提供的yum软件库。
添加CloudStack软件仓库,创建/etc/yum.repos.d/cloudstack.repo文件,并添加如下信息。
[cloudstack]
name=cloudstack
baseurl=http://cloudstack.apt-get.eu/rhel/4.4/
enabled=1
gpgcheck=0
NFS
本文档将配置的环境使用NFS做为主存储和辅助存储,需配置两个NFS共享目录,在此之前需先安装nfs-utils:
# yum install nfs-utils
接下来需配置NFS提供两个不同的挂载点。通过编辑/etc/exports文件即可简单实现。确保这个文件中包含下面内容:
/secondary *(rw,async,no_root_squash,no_subtree_check)
/primary *(rw,async,no_root_squash,no_subtree_check)
注意配置文件中指定了系统中两个并不存在的目录,下面需要创建这些目录并设置合适的权限,对应的命令如下所示:
# mkdir /primary
# mkdir /secondary
CentOS 6.x 版本默认使用NFSv4,NFSv4要求所有客户端的域设置匹配,这里以设置cloud.priv为例,请确保文件/etc/idmapd.conf中的域设置没有
被注释掉,并设置为以下内容:
Domain = cloud.priv
在/etc/sysconfig/nfs文件中取消如下选项的注释:
LOCKD_TCPPORT=32803
LOCKD_UDPPORT=32769
MOUNTD_PORT=892
RQUOTAD_PORT=875
STATD_PORT=662
STATD_OUTGOING_PORT=2020
接下来还需配置防火墙策略,允许NFS客户端访问。编辑文件/etc/sysconfig/iptables
-A INPUT -s 10.11.1.0/24 -m state --state NEW -p udp --dport 111 -j ACCEPT
-A INPUT -s 10.11.1.0/24 -m state --state NEW -p tcp --dport 111 -j ACCEPT
-A INPUT -s 10.11.1.0/24 -m state --state NEW -p tcp --dport 2049 -j ACCEPT
-A INPUT -s 10.11.1.0/24 -m state --state NEW -p tcp --dport 32803 -j ACCEPT
-A INPUT -s 10.11.1.0/24 -m state --state NEW -p udp --dport 32769 -j ACCEPT
-A INPUT -s 10.11.1.0/24 -m state --state NEW -p tcp --dport 892 -j ACCEPT
-A INPUT -s 10.11.1.0/24 -m state --state NEW -p udp --dport 892 -j ACCEPT
-A INPUT -s 10.11.1.0/24 -m state --state NEW -p tcp --dport 875 -j ACCEPT
-A INPUT -s 10.11.1.0/24 -m state --state NEW -p udp --dport 875 -j ACCEPT
-A INPUT -s 10.11.1.0/24 -m state --state NEW -p tcp --dport 662 -j ACCEPT
-A INPUT -s 10.11.1.0/24 -m state --state NEW -p udp --dport 662 -j ACCEPT
通过以下命令重新启动iptables服务:
# service iptables restart
最后需要配置NFS服务为开机自启动,执行如下命令:
# service rpcbind start
# service nfs start
# chkconfig rpcbind on
# chkconfig nfs on
管理服务器安装
接下来进行CloudStack管理节点和相关工具的安装。
数据库安装和配置
首先安装MySQL,并对它进行配置,以确保CloudStack运行正常。
运行如下命令安装:
# yum -y install mysql-server
MySQL安装完成后,需更改其配置文件/etc/my.cnf。在[mysqld]下添加下列参数:
innodb_rollback_on_timeout=1
innodb_lock_wait_timeout=600
max_connections=350
log-bin=mysql-bin
binlog-format = 'ROW'
正确配置MySQL后,启动它并配置为开机自启动:
# service mysqld start
# chkconfig mysqld on
安装
现在将要开始安装管理服务器。执行以下命令:
# yum -y install cloudstack-management
在程序执行完毕后,需初始化数据库,通过如下命令和选项完成:
# cloudstack-setup-databases cloud:password@localhost --deploy-as=root
当该过程结束后,您应该可以看到类似信息:”CloudStack has successfully initialized the database.”。
数据库创建后,最后一步是配置管理服务器,执行如下命令:
# cloudstack-setup-management
上传系统模板
CloudStack通过一系列系统虚拟机提供功能,如访问虚拟机控制台,如提供各类网络服务,以及管理辅助存储的中的各类资源。该步骤会获取系统虚
拟机模板,用于云平台引导后系统虚拟机的部署。
然后需要下载系统虚拟机模板,并把这些模板部署于刚才创建的辅助存储中;管理服务器包含一个脚本可以正确的操作这些系统虚拟机模板:
/usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt \
-m /secondary \
-u http://cloudstack.apt-get.eu/systemvm/4.4/systemvm64template-4.4.0-6-kvm.qcow2.bz2 \
-h kvm -F
网络下载模板,大约需要1小时,根据网速不同而不同。
以上是管理服务器的安装和配置过程;在配置CloudStack之前,仍需配置hypervisor。
KVM配置和安装
(yum install kvm kmod-kvm qemu kvm-qemu-img virt-viewer virt-manager libvirt vconfig)可选,非必须安装
安装KVM代理仅仅需要一条简单的命令,但之后我们需要进行一些配置。
# yum -y install cloudstack-agent
网络下载组件,大约需要半小时,根据网速不同而不同。
配置KVM
KVM中我们有两部分需要进行配置, libvirt和QEMU.
配置QEMU
KVM的配置项相对简单,仅需配置一项。编辑QEMU VNC配置文件/etc/libvirt/qemu.conf并取消如下行的注释。
vnc_listen=0.0.0.0
配置Libvirt
CloudStack使用libvirt管理虚拟机。因此正确的配置libvirt至关重要。Libvirt属于cloudstack-agent的依赖组件,应提前安装好。
为了实现动态迁移,libvirt需要监听使用非加密的TCP连接。还需要关闭libvirts尝试使用组播DNS进行广播。这些都是在
/etc/libvirt/libvirtd.conf文件中进行配置。
设置下列参数:
listen_tls = 0
listen_tcp = 1
tcp_port = "16059"
auth_tcp = "none"
mdns_adv = 0
仅仅在libvirtd.conf中启用”listen_tcp”还不够,我们还必须修改/etc/sysconfig/libvirtd中的参数:
取消如下行的注释:
#LIBVIRTD_ARGS="--listen"
重启libvirt服务
# service libvirtd restart
检查一下
lsmod | grep kvm
如果没有发现KVM启动,请检查BIOS设置虚拟化开关是否打开,或者硬件不支持虚拟化。
如果是硬件不支持你就悲剧。建议安装前就检查好硬件支持的参数。
KVM配置完成
以上内容是针对KVM的安装和配置,下面将介绍如何使用CloudStack用户界面配置云平台。
配置
如上文所述,该手册所描述的环境将使用安全组提供网络隔离,这意味着您的安装环境仅需要一个扁平的二层网络,同样意味着较为简单的配置和快速
的安装。
访问用户界面
要访问CloudStack的WEB界面,仅需在浏览器访问 http://10.11.1.212:8080/client ,使用默认用户’admin’和密码’password’来登录。第一
次登录可以看到欢迎界面,提供两个选项设置CloudStack。请选择继续执行基本配置安装。
此时您会看到提示,要求为admin用户更改密码,请更新密码后继续。
请稍等,这里你需要为虚拟机做一个克隆,为了以后安装节点不再下载,所以先关掉虚拟机全备份吧。
重新启动虚拟机后,继续配置主节点:
配置区域
区域是Cloudstack中最大的组织单位,下面将要讲述如何创建,此时屏幕中显示的是区域添加页面,这里需要您提供5部分信息。
名称 - 提供描述性的名称,这里以”Zone1”为例
公共DNS1 - 我们输入8.8.8.8。
公共DNS 2 - 我们输入8.8.4.4。
内部DNS 1 - 我们同样输入8.8.8.8。
内部DNS 2 - 我们同样输入8.8.4.4。
注解
CloudStack分为内部和公共DNS。内部DNS只负责解析内部主机名,比如NFS服务器的DNS名称。公共DNS为虚拟机提供公共IP地址解析。你可以指定同一
个DNS服务器,但如果这样做,你必须确保内部和公共IP地址都能路由到该DNS服务器。在我们的案例中对内部资源不使用DNS名称,因此这里将其设置
为与外部DNS一致用以简化安装,从而不必为此再安装一台DNS服务器。
配置提供点
到这里我们已经添加了一个区域,下一步会显示添加提供点所需信息:
提供点名称 - 使用Pod1
网关 - 使用10.11.1.254作为网关
子网掩码 - 使用255.255.255.0
系统预留 起始/结束 IP - 使用10.11.1.210-10.1.1.220
来宾网络网关 - 使用10.11.1.254
来宾网络掩码 - 使用255.255.255.0
来宾网络 起始/结束IP - 使用10.11.1.230-10.11.1.240
群集
添加区域后,仅需再为配置群集提供如下信息。
群集名称 - 使用Cluster1
Hypervisor - 选择KVM
此时向导会提示您为集群添加第一台主机,需提供如下信息:
主机名 - 由于没有设置DNS服务器,所以这里输入主机IP地址 10.11.1.212。
用户名 - 我们使用root
密码 - 输入root用户的密码
主存储
在配置群集时,按提示输入主存储的信息。选择NFS作为存储类型,并在如下区域中输入相应的值:
名称 - 使用 ‘Primary1’
服务器 - 使用的IP地址为 10.11.1.212
路径 - 使用之前定义的 /primary
辅助存储
如果添加的是一个新的区域,您需提供辅助存储相关信息 - 如下所示:
名称 - 使用 ‘Slave1’
NFS服务器 - 使用的IP地址为 10.11.1.212
路径 - 输入 /secondary
现在,点击启动开始配置云-完成安装所需的时间取决于你的网络速度。
开启API密钥,为开发环境准备:
必须管理员身份登录
登陆管理端,账户-〉admin-〉生成密钥
apikey=7hyD4QRRcNkC59ARxCRCO3cFoowcGmBDY5F23qmWwxYdQT22plI6GY7R1EDBWdiRj4-ktSE00HeDlk38EXZszw
secretkey=bR493wms46oujIJxKST6qkTH069pFdnzeQYFGgKqLsaotU5Dgugolnbx48Dq3NJSjYu06qXmINYVBkC0K-b2jQ
现在就可以使用 CloudStack API了。
添加主机节点
上面不是用虚拟机做了一个全备份的模板么? 现在可以方便的用它来扩展主机节点了。立即用模板生成一个新的虚拟机,需要注意的是新虚拟机与旧主机IP冲突。
你也可以用克隆/ghost/partition image for linux 部署一台新的主机,也会有此问题。
使用命令 service network start
报错为
Bringing up interface eth0: Device eth0 does not seem to be present,delaying initialization
错误原因,是因为linux网卡绑定了原mac地址导致
解决方法为
1.使用ifcnfig -a 查看当前主机mac地址
2.修改eth0网卡硬件地址为当前地址
vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=52:54:00:B9:A6:5A
NM_CONTROLLED=no
ONBOOT=yes
BOOTPROTO=none
IPADDR=172.16.10.3
NETMASK=255.255.255.0
GATEWAY=10.11.1.213
DNS1=8.8.8.8
DNS2=8.8.4.4
修改红字部分,保存退出
3.删除70-persistent-net.rules文件
rm -rf /etc/udev/rules.d/70-persistent-net.rules
4.重启系统
reboot -h now
一切OK
,
然后,登陆http://10.11.1.212:8080/client,主机管理,添加主机。
现在主机变成了两台了,如果你有更多资源可以依次添加,不需要每台都下载组件安装了!
==================================================================
cloudstack管理程序位置
/usr/share/cloudstack-management/webapps/client
数据库配置文件位置:
/usr/share/cloudstack-management/conf/db.properties
自定义logo位置
/usr/share/cloudstack-management/webapps/client/images
将这个目录下的logo.png等图片替换掉就可以换成自己喜欢的图标