一、环境
1.软件信息
名称
版本
备注
CloudStack
4.3.1
Centos
6.5
Mysql
5.x
系统自带
Tomcat
6.x/7.x
系统自带
二、配置Cloudstack计算节点
1.配置YUM源安装cloudstack-agent [root@CloudStack ~]# mkdir /opt/cloudstack #创建Cloudstack文件夹,将安装包安装上传至此
[root@CloudStack cloudstack]# ls
cloudstack-agent-4.5.2-1.el6.x86_64.rpm cloudstack-mysql-ha-4.5.2-1.el6.x86_64.rpm
cloudstack-awsapi-4.5.2-1.el6.x86_64.rpm cloudstack-usage-4.5.2-1.el6.x86_64.rpm
cloudstack-baremetal-agent-4.5.2-1.el6.x86_64.rpm cloudstack-cli-4.5.2-1.el6.x86_64.rpm cloudstack-common-4.5.2-1.el6.x86_64.rpm cloudstack-management-4.5.2-1.el6.x86_64.rpm
[root@CloudStack ~]# yum install -y createrepo #可使用在线源或者本地源安装此包
[root@CloudStack ~]# createrepo -p -d -o /opt/cloudstack /opt/cloudstack/ #建立本地安装源
[root@CloudStack ~]# vim CentOS-Base.repo #在文件底部添加下面内容
[cloudstack]
name=cloudstack
gpgcheck=0
enabled=1
baseurl=file:///opt/cloudstack
[root@compter cloudstack]# yum install -y cloudstack-agent qemu-kvm #安装cloudstack agent软件
2. 配置Libvirt [root@compter cloudstack]# vi /etc/libvirt/libvirt.conf #添加下面内容
listen_tls = 0
listen_tcp = 1
tcp_port = "16509"
auth_tcp = "none"
mdns_adv = 0
[root@compter cloudstack]# vi /etc/sysconfig/libvirtd
... ##取消改行的注释
LIBVIRTD_ARGS="--listen"
[root@compter cloudstack]# vi /etc/libvirt/qemu.conf
... ##取消如下行注释
vnc_listen = "0.0.0.0"
错误1:
2016-08-09 17:24:40.743+0000: 2982: error : virNetTLSContextCheckCertFile:113 : Cannot directory
解决:
vim /etc/libvirt/libvirtd.conf #取消下面注释
listen_tls = 0
3.配置防火墙
iptables -I INPUT -p tcp -m tcp --dport 22 -j ACCEPT
iptables -I INPUT -p tcp -m tcp --dport 1798 -j ACCEPT
iptables -I INPUT -p tcp -m tcp --dport 16509 -j ACCEPT
iptables -I INPUT -p tcp -m tcp --dport 5900:6100 -j ACCEPT
iptables -I INPUT -p tcp -m tcp --dport 49152:49216 -j ACCEPT
iptables-save > /etc/sysconfig/iptables
4.配置网卡
[root@compter cloudstack]# cd /etc/sysconfig/network-scripts/
[root@compter cloudstack]# cp ifcfg-eth0 ifcfg-cloudbr0
分别编辑eth0和br0
ifcfg-eth0改成如下:
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
BRIDGE=br0
ifcfg-cloudbr0改成如下:
DEVICE=cloudbr0
TYPE=Bridge
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.16.245
NETMASK=255.255.255.0
GATEWAY=192.168.16.1
[root@compter cloudstack]# /etc/init.d/network restart
三、配置Cloudstack管理节点
1.安装cloudstack [root@CloudStack ~]# mkdir /opt/cloudstack #创建Cloudstack文件夹,将安装包安装上传至此
[root@CloudStack cloudstack]# ls
cloudstack-agent-4.5.2-1.el6.x86_64.rpm cloudstack-mysql-ha-4.5.2-1.el6.x86_64.rpm
cloudstack-awsapi-4.5.2-1.el6.x86_64.rpm cloudstack-usage-4.5.2-1.el6.x86_64.rpm
cloudstack-baremetal-agent-4.5.2-1.el6.x86_64.rpm cloudstack-cli-4.5.2-1.el6.x86_64.rpm cloudstack-common-4.5.2-1.el6.x86_64.rpm cloudstack-management-4.5.2-1.el6.x86_64.rpm
[root@CloudStack ~]# yum install -y createrepo #可使用在线源或者本地源安装此包
[root@CloudStack ~]# createrepo -p -d -o /opt/cloudstack /opt/cloudstack/ #建立本地安装源
[root@CloudStack ~]# vim CentOS-Base.repo #在文件底部添加下面内容
[cloudstack]
name=cloudstack
gpgcheck=0
enabled=1
baseurl=file:///opt/cloudstack
[root@CloudStack ~]#yum -y install cloudstack-management
2.安装Mysql数据库
(1) 安装Mysql 服务器[root@CloudStack ~]# yum install mysql-server -y #安装mysql
[root@CloudStack ~]# vi /etc/my.cnf #在底部添加下面内容
innodb_rollback_on_timeout=1
innodb_lock_wait_timeout=600
max_connections=350
log-bin=mysql-bin
binlog-format='ROW'
[root@CloudStack ~]# /etc/init.d/mysqld start #启动
[root@CloudStack ~]# mysqladmin -uroot password root #增加密码
(2) 创建CloudStack 的初始化数据库文件[root@CloudStack ~]# cloudstack-setup-databases cloud:cloud@localhost --deploy-as=root:root -e file -m password -k password -i 192.168.16.245
#尾部IP为本机
3.配置Cloudstack管理节点
(1) 挂载辅助存储[root@CloudStack ~]# rpm -qa nfs-utils rpcbind #查看是否安装nfs
[root@CloudStack ~]# yum install -y nfs-utils rpcbind #若没有安装则安装
[root@CloudStack ~]# /etc/init.d/rpcbind start ; /etc/init.d/nfs start #启动NFS服务(必须先启动RPC)
[root@CloudStack ~]# mount -t nfs 192.168.16.246:/data /mnt/secondary/ #挂载辅助存储
(2) 编辑防火墙设置
[root@CloudStack ~]# vi /etc/sysconfig/iptables #编辑防火墙配置文件
...
-A INPUT -p tcp --dport 3306 -j ACCEPT
-A INPUT -s 你的网段/24 -m state --state NEW -p udp --dport 111 -j ACCEPT
-A INPUT -s 你的网段/24 -m state --state NEW -p tcp --dport 111 -j ACCEPT
-A INPUT -s 你的网段/24 -m state --state NEW -p tcp --dport 2049 -j ACCEPT
-A INPUT -s 你的网段/24 -m state --state NEW -p tcp --dport 32803 -j ACCEPT
-A INPUT -s 你的网段/24 -m state --state NEW -p udp --dport 32769 -j ACCEPT
-A INPUT -s 你的网段/24 -m state --state NEW -p tcp --dport 892 -j ACCEPT
-A INPUT -s 你的网段/24 -m state --state NEW -p udp --dport 892 -j ACCEPT
[root@CloudStack ~]# /etc/init.d/iptables start
[root@CloudStack ~]# /etc/init.d/iptables save
(3) 上传KVM系统虚拟机模版
[root@CloudStack /]#
/usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt
-m /mnt/secondary -u http://
你的服务器地址 /systemvm64template-2014-01-14-master-kvm.qcow2.bz2 -h kvm –F
#从网络导入KVM模板
或者:[root@CloudStack /]# /usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt -m /mnt/secondary/ -f /root/systemvm64template-2015-05-14-4.5.1-kvm.qcow2.bz2 -h kvm -F
#从本地路径中导入KVM模板
(4) 启动管理服务[root@CloudStack ~]# cloudstack-setup-management
(5) 相关错误解决
错误1:
clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)
解决:
/etc/init.d/iptables stop
错误2:
mkdir: cannot create directory `/mnt/secondary/template': Permission denied
Failed to write to mount point /mnt/secondary -- is it mounted?
解决:
服务端:chown -R nfsnobody:nfsnobody /data
错误3:
Checking hostname ... [Failed]
Please edit /etc/hosts, add a Fully Qualified Domain Name as your hostname
解决:
vi /etc/hosts 添加本地主机名
四、CLoudStack区域及云资源池配置
1.登录信息
登陆Cloustack管理节点平台
登录地址
账户
密码
备注
http://192.168.16.245:8080/client
admin
password
2.新建区域
点击左侧,基础区域,区域,点击新建:
3.设置区域
输入区域信息:
3. 设置网络
编辑网络标签,按规划,分为两个网络:
4.配置提供点
5.配置来宾网络
6.配置群集
7.添加主机
8.由于使用本地存储,所以跳过主存储配置,直接添加二级存储
9.完成区域创建
建议:
打开管理端日志: tail -f /var/log/cloudstack/management/management-server.log
打开计算端日志: tail -f /var/log/cloudstack/agent/agent.log
10. 调整相关参数
在全局设置中,搜索相关参数名,对参数进行修改,优化整个应用。
编号
名称
默认值
修改值
001
secstorage.allowed.internal.sites
二级存储通讯地址范围
空
二级存储所在的网段
如二级存储为\
nfs://10.32.66.249/
则此处可以设置为\
10.32.66.0/16
002
expunge.interval
表示多少秒之后执行实例彻底删除的操作
86400
根据实际情况填写,比如
用户需要保留2小时,那就填写7200
003
expunge.delay
表示在彻底删除被销毁的实例前需要等待多少秒
86400
根据实际情况填写,默认跟变量expunge.interval相同,可以自行设置
004
expunge.workers
执行彻底删除实例的任务数
1
可以设置为8,同时可以对8个已经销毁的实例进行删除操作
005
cpu.overprovisioning.factor
1
CPU超分值,一般3~4较合理
006
mem.overprovisioning.factor
1
MEM超分值
007
storage.overprovisioning.factor
2
存储超分值,默认2
11.相关错误解决
错误1:
FATAL: Error inserting kvm_intel (/lib/modules/2.6.32-573.el6.x86_64/kernel/arch/x86/kvm/kvm-intel.ko): Unknown symbol in module, or unknown parameter (see dmesg)
解决:
编辑虚拟机的vmx文件,添加 vhv.enable= "TRUE"
错误2:
无法添加KVM主机
解决:
KVM主机是否启动KVM模块, 管理节点网络便签是否更改,删除管理节点数据库 重新建立
错误3:
系统虚拟机啊状态running,代理状态空
解决:开启混杂模式
五、其他配置
1.上传ISO模版等
使用admin账户登录到CloudStack界面,依次点击:模版,再右侧选择视图中选择ISO,点击右侧注册ISO:
注意:如上URL必须为http方式,且保证正常可以下载该文件。应保证服务器地址,处于secstorage.allowed.internal.sites参数配置中的网段内。
2.创建网络(基础网络无法添加,高级网络才可以 )
使用admin账户登录到CloudStack界面,依次点击:网络,点击右侧“添加来宾网络”: