一、环境
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. 设置网络
编辑网络标签,按规划,分为两个网络:
使用一块网卡,并设置流量标签为:cloudbr0
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界面,依次点击:网络,点击右侧“添加来宾网络”: