您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
 
   
 
 
     
   
 订阅
  捐助
安装部署CloudStack 4.0企业私有云平台
 
作者:吴广磊 来源:博客园 发布于: 2014-12-11
   次浏览      
 

环境介绍

OS: Ubuntu Server 12.04.1 64-bit

Server:

10.6.203.10 cloudstack-server-1

- CloudStack Management Server

- CloudStack Agent

- NFS Server

- MySQL Server

注:CloudStack支持很好的分布式架构,上面 - 代表的所有角色都可以部署在不同的机器上,但在测试环境中因为条件有限我全部都部署到了一台机器上。

1. 什么是CloudStack

CloudStack是一个开源的具有高可用性及扩展性的云计算平台。

提到开源的云计算平台,相信大家首先想到的可能是OpenStack,目前国内的几家云计算平台如阿里云、盛大云以及新浪SAE貌似都基于OpenStack做了二次开发。

但使用过CloudStack之后,你会发现其实CloudStack更像是一个商业化过后的产品,有着非常好的用户界面,各个模块默认集成的很好,且安装与部署过程也相对容易一些。

事实上,CloudStack的前身是Cloud.com,后来被思杰收购。2011年7月,Citrix收购Cloud.com,将CloudStack 100%开源并交给Apache软件基金会管理。

同时,CloudStack已经有了许多商用客户,包括GoDaddy、英国电信、日本电报电话公司、塔塔集团、韩国电信等。

因此,CloudStack本身其实就是一个商业化过后的产品,然后在面对OpenStack等开源系统的巨大竞争压力的情况下选择了同样的开源。

目前Cloudstack支持管理大部分主流的hypervisors,如KVM,XenServer,VMware,Oracle VM,Xen等。

CloudStack具有商业软件所拥有的完善的用户权限管理,可以让用户构建一个安全的多租户云计算环境。

同时兼容Amazon AWS API 接口,可用来管理AWS的资源。  

CloudStack的官方网址如下(目前还处于Apache基金会的孵化器中):

http://incubator.apache.org/cloudstack/

以下是CloudStack的系统架构,基本上与其他云计算平台相同:

2. 宿主机的系统需求

由于CloudStack 4.0 限定了libvirt版本 > 0.9.4,并在社区宣称所支持的OS为 CentOS/RHEL 6.2 以上或 Ubuntu Server 12.04。

因此,这里我们选择 Ubuntu Server 12.04.1 作为我们的操作系统。

官方下载地址:http://releases.ubuntu.com/precise/ubuntu-12.04.1-server-amd64.iso

另外,官方要求硬件至少满足以下条件:

1) 支持硬件虚拟化(Intel-VT 或 AMD-V)

2) 64位的x86 CPU

3) 4G内存

4) 36GB硬盘

5) 1张网卡

3. 配置安装源

配置国内的网易镜像源

$ sudo sed -i s/us.archive.ubuntu.com/mirrors.163.com/g  /etc/apt/sources.list
$ sudo sed -i s/security.ubuntu.com/mirrors.163.com/g /etc/apt/sources.list

配置CloudStack官方源

$ sudo vim /etc/apt/sources.list.d/cloudstack.list
deb http://cloudstack.apt-get.eu/ubuntu precise 4.0

配置CloudStack官方源证书

$ wget -O - http://cloudstack.apt-get.eu/release.asc|  sudo apt-key add -

更新系统的安装源

$ sudo apt-get update

4. 安装Management Server

4.1 准备好操作系统环境

查看主机名

$ hostname --fqdn
cloudstack-server-1
$ sudo vim /etc/hosts

添加以下记录

10.6.203.10 cloudstack-server-1

安装时间服务器

$ sudo apt-get install openntpd

4.2 下载安装 CloudStack Management Server 与 vhd-util

安装CloudStack Management Server

$ sudo apt-get install cloud-client

将用户cloud加入到sudo用户组 //CloudStack默认以cloud用户启动,但默认会通过sudo以root身份管理相关文件与目录

 $ sudo adduser cloud sudo

配置sudo用户组免密码切换 //同样是为了解决和上面相同的权限问题

$ sudo visudo
%sudo ALL=(ALL:ALL) NOPASSWD:ALL

初始化root用户密码,如cloudstack //CloudStack默认需要root权限远程SSH连接到Agent

$ sudo -i
# passwd
1 Enter new UNIX password:
2 Retype new UNIX password:
3 passwd: password updated successfully
# chmod 777 /root //为了解决一个bug,即CloudStack默认以cloud用户启动, 但却读取的是启动服务的用户的home目录用来存放一些临时文件,从而导致权限问题 $ exit

下载vhd-util

$ sudo wget http://download.cloud.com.s3.amazonaws.com/tools/vhd-util
$ sudo mv vhd-util /usr/lib/cloud/common/scripts/vm/hypervisor/xenserver/

4.3 安装配置MySQL数据库

$ sudo apt-get install mysql-server

在弹出的界面中输入密码,如: cloudstack

修改MySQL配置文件参数

$ sudo vim /etc/mysql/my.cnf

在[mysqld]模块中加入以下参数

1 innodb_rollback_on_timeout=1
2 innodb_lock_wait_timeout=600 3 max_connections=350
4 log-bin=mysql-bin
5 binlog-format = 'ROW'

重启MySQL

$ sudo service mysql restart

初始化数据库cloud

$ sudo cloud-setup-databases cloud:cloudstack@localhost 
 --deploy-as=root:cloudstack -e file -m cloudstack -k  cloudstack

4.4 配置NFS共享

CloudStack 需要一个地方来存放Primar和Secondary Storage,官方推荐使用NFS共享。

安装NFS

$ sudo apt-get install nfs-common nfs-kernel-server

创建目录

$ sudo mkdir -p /export/primary
$ sudo mkdir -p /export/secondary

编辑NFS配置文件

$ sudo vim /etc/exports
1 /export *(rw,async,no_root_squash,no_subtree_check)

刷新配置

$ sudo exportfs -a

挂载测试NFS共享

$ sudo mkdir /mnt/primary
$ sudo mount -t nfs 10.6.203.10:/export/primary /mnt/primary
$ sudo mkdir /mnt/secondary
$ sudo mount -t nfs 10.6.203.10:/export/secondary /mnt/secondary
$ df -h
1 Filesystem Size Used Avail Use% Mounted on
2 ...
3 10.6.203.10:/export/primary 434G 7.8G 404G 2% /mnt/primary
4 10.6.203.10:/export/secondary 434G 7.8G 404G 2% /mnt/secondary
$ sudo vim /etc/fstab

增加以下内容

1	10.6.203.10:/export/primary /mnt/primary    nfs rw,tcp,intr 0 1
2 10.6.203.10:/export/secondary /mnt/secondary nfs rw,tcp,intr 0 1

4.5 准备System VM Template

我们选择KVM作为虚拟化引擎

$ sudo /usr/lib/cloud/common/scripts/storage/secondary/cloud-install-sys-tmplt -m /mnt/secondary \
-u http://download.cloud.com/templates/acton/acton-systemvm-02062012.qcow2.bz2 -h kvm -F

整个过程大概需要花费半个小时

01	--2012-11-12 14:49:18--  http://download.cloud.com/templates/acton/acton-systemvm-02062012.qcow2.bz2
02 Resolving download.cloud.com (download.cloud.com)... 207.171.189.81
03 Connecting to download.cloud.com (download.cloud.com)|207.171.189.81|:80... connected.
04 HTTP request sent, awaiting response... 200 OK
05 Length: 286036668 (273M) [binary/octet-stream]
06 Saving to: `/usr/lib/cloud/common/scripts/storage/secondary/4aae2546-33e1-4784-9e69-09e1ef9d6fb4.qcow2'
07
08 100%[===>] 286,036,668 188K/s in 24m 53s
09
10 2012-11-12 15:14:13 (187 KB/s) - `/usr/lib/cloud/common/scripts/storage/secondary/ 4aae2546-33e1-4784-9e69-09e1ef9d6fb4.qcow2' saved [286036668/286036668]
11
12 Uncompressing to /usr/lib/cloud/common/scripts/storage/secondary /4aae2546-33e1-4784-9e69-09e1ef9d6fb4.qcow2.tmp (type bz2)...could take a long time
13 Moving to /mnt/secondary/template/tmpl/1/3///4aae2546-33e1-4784-9e69-09e1ef9d6fb4.qcow2...could take a while
14 Successfully installed system VM template to /mnt/secondary/template/tmpl/1/3/

5. 安装配置KVM虚拟化Host主机

5.1 安装配置Agent

$ sudo apt-get install cloud-agent

5.2 安装配置libvirt

$ sudo vim /etc/libvirt/libvirtd.conf

修改以下配置

1	listen_tls = 0
2 listen_tcp = 1
3 tcp_port = "16059"
4 auth_tcp = "none"
5 mdns_adv = 0

查看配置

$ cat /etc/libvirt/libvirtd.conf | grep -v '#' | grep -v "^$"
1 listen_tls = 0
2 listen_tcp = 1
3 tcp_port = "16509"
4 mdns_adv = 0
5 unix_sock_group = "libvirtd"
6 unix_sock_rw_perms = "0770"
7 auth_unix_ro = "none"
8 auth_unix_rw = "none"
9 auth_tcp = "none"
$ sudo vim /etc/init/libvirt-bin.conf

修改以下参数

1	env libvirtd_opts="-d -l"
# sudo vim /etc/libvirt/qemu.conf

修改以下参数

1	vnc_listen = "0.0.0.0"

重启服务

$ sudo service libvirt-bin restart

5.3 配置安全策略

$ sudo dpkg --list "apparmor"
1 Desired=Unknown/Install/Remove/Purge/Hold
2 | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
3 |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
4 ||/ Name Version Description
5 +++-==========================================
6 ii apparmor
7 2.7.102-0ubuntu3.1 User-space parser utility for AppArmor
$ sudo ln -s /etc/apparmor.d/usr.sbin.libvirtd /etc/apparmor.d/disable/
$ sudo ln -s /etc/apparmor.d/usr.lib.libvirt.virt-aa-helper /etc/apparmor.d/disable/
$ sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.libvirtd
$ sudo apparmor_parser -R /etc/apparmor.d/usr.lib.libvirt.virt-aa-helper

5.4 配置网桥

需要注意的是,官方文档给出的配置参数会导致网络不可用。

正确的配置是将物理网卡设置为manual,然后在虚拟网卡上设置IP并桥接到物理网卡上。

$ sudo vim /etc/network/interfaces
01 # This file describes the network interfaces available on your system
02 # and how to activate them. For more information, see interfaces(5).
03
04 # The loopback network interface
05 auto lo
06 iface lo inet loopback
07
08 # The primary network interface
09 auto eth0
10 iface eth0 inet manual
11
12 # Public network
13 auto cloudbr0
14 iface cloudbr0 inet static
15 address 10.6.203.10
16 netmask 255.255.0.0
17 gateway 10.6.255.1
18 bridge_ports eth0
19 bridge_fd 5
20 bridge_stp off
21 bridge_maxwait 1
22 dns-nameservers 10.6.255.253 61.139.2.69
23
24 # Private network
25 auto cloudbr1
26 iface cloudbr1 inet manual
27 bridge_ports eth0
28 bridge_fd 5
29 bridge_stp off
30 bridge_maxwait 1
$ sudo /etc/init.d/networking restart
$ sudo /etc/init.d/networking start

5.5 配置防火墙

$ sudo ufw allow proto tcp from any to any port 22
$ sudo ufw allow proto tcp from any to any port 80
$ sudo ufw allow proto tcp from any to any port 1798
$ sudo ufw allow proto tcp from any to any port 16509
$ sudo ufw allow proto tcp from any to any port 5900:6100
$ sudo ufw allow proto tcp from any to any port 49152:49216

6. 用户界面

禁用系统默认的tomcat服务

$ sudo /etc/init.d/tomcat6 stop
1 * Stopping Tomcat servlet engine tomcat6 [ OK ]
$ sudo update-rc.d -f tomcat6 remove
1 Removing any system startup links for /etc/init.d/tomcat6 ...
2 /etc/rc0.d/K08tomcat6
3 /etc/rc1.d/K08tomcat6
4 /etc/rc2.d/S92tomcat6
5 /etc/rc3.d/S92tomcat6
6 /etc/rc4.d/S92tomcat6
7 /etc/rc5.d/S92tomcat6
8 /etc/rc6.d/K08tomcat6

启动cloud-management

$ cd ~
$ sudo /etc/init.d/cloud-management restart
1 * Starting CloudStack-specific Tomcat servlet engine cloud-management [ OK ]

登陆用户界面

http://10.6.203.10:8080/client/

默认账号密码

admin/password

可以看到如下图所示向导界面

选择左边的按钮"I have used CloudStack before, skip this guide"。

即进入如下图所示用户界面

7. 配置Management Server

整个Management Server的架构如下

7.1 修改Web管理员默认密码

登陆 http://10.6.203.10:8080/client

进入 Accounts - admin - View Users - admin 页面,点击 Change Password

接着我们进入到 Infrastructure 界面,可以看到目前没有任何设置,所有数目都是0。

7.2 创建相关配置

在用户界面中通过向导,依次创建

"Zone" - "Add Zone" - "Physical Network" - "Pod" - "Guest Traffic" - "Storage Traffic" -
"Cluster" - "Host" - "Primary Storage" - "Secondary Storage"

如下列图片所示:

选择Basic安装向导

配置Zone

配置Physical Network

配置Pod,此处的网络设置主要用于CloudStack内部的管理通信

配置Guest Traffic,此处的网络设置用于给Instance分配IP

配置Storage Traffic,此处的网络设置用于存储系统

配置Cluster

配置Host,即Agent主机,虚拟机的宿主机,用户名密码与SSH相同

配置主存储空间,我选择了本地mount点,即mount过后的本地路径,分布式部署时可以选择NFS模式

配置附属存储空间,仅支持NFS模式

配置完成,点击"Launch zone"

可以看到整个创建过程,最后创建完成之后提示是否启用Zone,选择Yes

   
次浏览       
 
相关文章

云计算的架构
对云计算服务模型
云计算核心技术剖析
了解云计算的漏洞
 
相关文档

云计算简介
云计算简介与云安全
下一代网络计算--云计算
软浅析云计算
 
相关课程

云计算原理与应用
云计算应用与开发
CMMI体系与实践
基于CMMI标准的软件质量保证
最新活动计划
LLM大模型应用与项目构建 12-26[特惠]
QT应用开发 11-21[线上]
C++高级编程 11-27[北京]
业务建模&领域驱动设计 11-15[北京]
用户研究与用户建模 11-21[北京]
SysML和EA进行系统设计建模 11-28[北京]

专家视角看IT与架构
软件架构设计
面向服务体系架构和业务组件的思考
人人网移动开发架构
架构腐化之谜
谈平台即服务PaaS
更多...   
相关培训课程

云计算原理与应用
Windows Azure 云计算应用

摩托罗拉 云平台的构建与应用
通用公司GE Docker原理与实践
某研发中心 Openstack实践
知名电子公司 云平台架构与应用
某电力行业 基于云平台构建云服务
云计算与Windows Azure培训
北京 云计算原理与应用