dongnan
总版主
总版主
  • 粉丝52
  • 发帖数2177
  • 铜币13448枚
  • 威望5905点
  • 银元150个
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 原创写手
阅读:4523回复:6

[CloudStack] 4.4 入门文档

楼主#
更多 发布于:2014-08-28 09:49
开始之前,先了解下什么是CloudStack ,下文内容来自第一次进入 CloudStack MS 首页.

什么是 CloudStack™?

CloudStack™ 是一个软件平台,可将计算资源集中在一起以构建公共、私有和混合基础设施即服务(IaaS)云。CloudStack™ 负责管理组成云基础架构的网络、存储和计算节点。使用 CloudStack™ 可以部署、管理和配置云计算环境。

CloudStack™ 通过扩展商用硬件上运行的每个虚拟机映像的范围,提供了一个实时可用的云基础架构软件堆栈用于以服务方式交付虚拟数据中心,即交付构建、部署和管理多层次和多租户云应用程序必需的所有组件。开源版本和 Premium 版本都已可用,且提供的功能几乎完全相同。

维基百科认为IaaS是云计算的代名词,它给的定义是”通过计算机网络按需供给计算资源”.CloudStack只是提供软件而不包含硬件,所以对于CloudStack来讲定义成IMaaS或IAaaS(基础设施管理即服务)更为合适.

CloudStack 历史

CloudStack的前身是Cloud.com后被思杰收购。英特尔、阿尔卡特-朗迅、瞻博网络、博科等都已宣布支持CloudStack。

2011年7月,Citrix收购Cloud.com,并将CloudStack 100%开源2012年4月5日,Citrix又宣布将其拥有的CloudStack开源软件交给Apache软件基金会管理。CloudStack已经有了许多商用客户,包括GoDaddy、英国电信、日本电报电话公司、塔塔集团、韩国电信等。

#XenServer 运维群
学习 cloudstack 与 xenserver 的童鞋请加此群: 137042113
群认证: citrix

#

最新喜欢:

firisokfiriso...
dongnan
总版主
总版主
  • 粉丝52
  • 发帖数2177
  • 铜币13448枚
  • 威望5905点
  • 银元150个
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 原创写手
沙发#
发布于:2014-08-28 10:22
环境与准备工作
1 拓扑
update 20150319:1个管理节点, 1个一级存储节点(iscsi),1个二级存储节点(nfs)

图片:cloudstack-device.png


   
2 网络配置

网络类型为 CloudStack 基本网络,也就是 guest 与 MS/存储/主机  都在同一个网络.
网段:172.27.244.0/24
网关:172.27.244.254
管理VM 172.27.244.40 - 172.27.244.60
来宾VM 172.27.244.61 - 172.27.244.160

3 主机名
Cloudstack要求正确设置主机名,如果安装操作系统(CentOS)时您接受了默认选项,主机名为localhost.localdomain
编辑
vim /etc/hosts
添加类似下内容
172.27.244.30 ms-30.hst.cloud

重启网络服务
/etc/init.d/network restart

通过hostname 命令重新检查主机名,并确认返回了正确的FQDN
hostname --fqdn
ms-30.hst.cloud

4 SELinux
当前的CloudStack需要将SELinux设置为permissive才能正常工作,您需要改变当前配置,同时将该配置持久化,使其在主机重启后仍然生效。

编辑
vim /etc/selinux/config
确保是以下字符串
SELINUX=permissive
重启主机
sync && init 6

5 NTP
为了同步云平台中主机的时间,需要配置NTP,但NTP默认没有安装。因此需要先安装NTP,然后进行配置。

通过以下命令进行安装:
yum -y install ntp
实际上默认配置项即可满足的需求,仅需启用NTP并设置为开机启动,如下所示:
chkconfig ntpd on
/etc/init.d/ntpd start

6 配置ClouStack 软件库

创建repo文件
vim /etc/yum.repos.d/cloudstack.repo
并添加如下信息
[cloudstack]
name=cloudstack
baseurl=http://cloudstack.apt-get.eu/rhel/4.4/
enabled=1
gpgcheck=0

本楼URL http://ywwd.net/read-710-1#765
#
dongnan
总版主
总版主
  • 粉丝52
  • 发帖数2177
  • 铜币13448枚
  • 威望5905点
  • 银元150个
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 原创写手
板凳#
发布于:2014-08-28 10:40
部署存储服务器
使用一台NFS服务器 同时做为主存储和二级存储,需配置两个NFS共享目录.
mkdir -p /data/{primary,secondary}

1 硬件配置
磁盘: 300GB SAS 15K * 6块
Raid: Dell Perc6i /256MB Cache/级别 5/条带 1MB/Write Back
CPU : XEON E5405 * 2颗,共8核心
内存: 16GB
网络: BCM 5708(GB) * 2块,双网卡绑定,模式0
操作系统: CentOS 6.5 amd64
软件:NFSv4

磁盘带宽测试请参考

2 以太网卡绑定

请参考 http://ywwd.net/read-166

3 配置 NFS

NFSv4
CentOS 6.x 版本默认使用NFSv4,NFSv4要求所有客户端的域设置匹配,本例为 hst.cloud,请确保文件/etc/idmapd.conf中的域设置没有被注释掉,并设置为以下内容:
grep -E '^Domain' /etc/idmapd.conf
Domain = hst.cloud

3.1 编辑
vim /etc/exports
添加如下内容
/data/primary 172.27.244.0/24(rw,sync,no_root_squash,no_subtree_check)
/data/secondary 172.27.244.0/24(rw,sync,no_root_squash,no_subtree_check)
3.2 编辑
vim /etc/sysconfig/nfs
文件中取消如下选项的注释:
LOCKD_TCPPORT=32803
LOCKD_UDPPORT=32769
MOUNTD_PORT=892
RQUOTAD_PORT=875
STATD_PORT=662
STATD_OUTGOING_PORT=2020

3.3 启动NFS
/etc/init.d/rpcbind start
/etc/init.d/nfs start

3.4 开机启动
chkconfig nfs on
chkconfig rpcbind on

3.5 防火墙
本例中nfs 没有启动iptables防火墙,如果启用iptables ,那么需要打开以下端口
iptables -A INPUT -s 172.27.244.0/24 -m state --state NEW -p udp --dport 111 -j ACCEPT
iptables -A INPUT -s 172.27.244.0/24 -m state --state NEW -p tcp --dport 111 -j ACCEPT
iptables -A INPUT -s 172.27.244.0/24 -m state --state NEW -p tcp --dport 2049 -j ACCEPT
iptables -A INPUT -s 172.27.244.0/24 -m state --state NEW -p tcp --dport 32803 -j ACCEPT
iptables -A INPUT -s 172.27.244.0/24 -m state --state NEW -p udp --dport 32769 -j ACCEPT
iptables -A INPUT -s 172.27.244.0/24 -m state --state NEW -p tcp --dport 892 -j ACCEPT
iptables -A INPUT -s 172.27.244.0/24 -m state --state NEW -p udp --dport 892 -j ACCEPT
iptables -A INPUT -s 172.27.244.0/24 -m state --state NEW -p tcp --dport 875 -j ACCEPT
iptables -A INPUT -s 172.27.244.0/24 -m state --state NEW -p udp --dport 875 -j ACCEPT
iptables -A INPUT -s 172.27.244.0/24 -m state --state NEW -p tcp --dport 662 -j ACCEPT
iptables -A INPUT -s 172.27.244.0/24 -m state --state NEW -p udp --dport 662 -j ACCEPT

强烈建议生产环境限制只允许XenServer/MC/SSVM 访问存储服务器.

3.6 客户端测试
查看挂载信息
showmount -e 172.27.244.28
Export list for 172.27.244.28:
/data/secondary 172.27.244.0/24
/data/primary   172.27.244.0/24


挂载
mount -t nfs 172.27.244.28:/data/primary /mnt/nfs/

IO吞吐量测试,客户端千兆以太网卡是瓶颈
ethtool eth0 | grep Speed
   Speed: 1000Mb/s

顺序写
dd if=/dev/zero of=/mnt/nfs/testbw bs=1M count=8192
8192+0 records in
8192+0 records out
8589934592 bytes (8.6 GB) copied, 78.0106 s, 110 MB/s

顺序读
dd if=/mnt/nfs/testbw of=/dev/null bs=1M
8192+0 records in
8192+0 records out
8589934592 bytes (8.6 GB) copied, 76.3768 s, 112 MB/s

本楼URL http://ywwd.net/read-710-1#766
#
dongnan
总版主
总版主
  • 粉丝52
  • 发帖数2177
  • 铜币13448枚
  • 威望5905点
  • 银元150个
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 原创写手
地板#
发布于:2014-08-28 11:14
选择 Hypervisor
Hypervisor 选择了XenServer ,CloudStack 支持多种Hypervisor ,例如 VMware vSphere ESXi / Hyper-V / KVM 等等主流虚拟化技术,为什么这里选择XenServer , 因为工作环境有多台XenServer ,考虑兼容等多方面问题,最终选择XenServer , 但是随着深入学习 CloudStack 与 XenServer 后发现,将  XenServer 现有的虚拟机迁入CloudStack 灰常灰常难,一方面CloudStack 并没有现成的迁移方案,另一方面 XenServer 默认LVM SR 格式的虚拟机导致待迁移的VM 数据巨大无比,如果是新人学习 CloudStack ,我个人建议 Hypervisor 选择 KVM .


1 安装
http://ywwd.net/read-699-1

2 使用XenCenter 管理 XenServer
http://ywwd.net/read-699-1#746

3 更改XenServer 网络堆栈类型
http://ywwd.net/read-696

4  XenServer 网络之网卡绑定
http://ywwd.net/read-702

5 创建"标准" 主机资源池 或者 创建 "异类" 主机资源池
http://ywwd.net/read-704-1#755
http://ywwd.net/read-704-1#756

6 从资源池移除 主机注意事项
http://ywwd.net/read-704-1#757

更多资料XenServer 相关资料请参考
http://ywwd.net/thread-52

强烈建议先了解 XenServer 下的网络/存储/主机资源池等概念后,再去部署CloudStack ,这样会少走些弯路.

本楼URL http://ywwd.net/read-710-e#767
#
dongnan
总版主
总版主
  • 粉丝52
  • 发帖数2177
  • 铜币13448枚
  • 威望5905点
  • 银元150个
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 原创写手
4楼#
发布于:2014-08-28 11:45
部署 cloudstack 管理服务器
cloudstack 管理服务器  简称MS

MS 服务器,使用vSphere ESXi 上的一台虚拟机, 这里我也强烈推荐新人使用虚拟机部署CloudStack ,为什么?

这是因为,新人在使用CloudStack 的时候会遇到各种各样的问题导致需要重新初始化操作系统,如果每次都需要重新安装操作系统估计会疯掉,比如我前后一共用了 50多次才将CloudStack MS部署完毕,操作系统安装完毕后建立第1个快照,部署MS 之后建立第2个快照,最重要的 使用CloudStack 之前建立第3个快照,这样根据不同需求还原即可,如果担心性能神马之类的问题,可以在熟练使用CloudStack 之后转到物理机上就可以了.

1 配置
磁盘: 100GB  
CPU : 2vCPU
内存: 4GB
网络: 2vNIC
操作系统: CentOS 6.5 amd64

2 配置操作系统
按照环境准备 中的要求配置以下项目:
主机名
SELinux
NTP
配置ClouStack软件库
本例中关闭iptables

3 安装
yum install cloudstack-management mysql-server ntp

按照提示
cd /usr/share/cloudstack-common/scripts/vm/hypervisor/xenserver
wget http://download.cloud.com.s3.amazonaws.com/tools/vhd-util
对于XenServer 这一步至关重要,我在这里浪费两天时间.

4 配置 mysql 数据库
编辑
vim /etc/my.cnf
查找[mysqld]
添加如下内容:
#add for cloudstack
innodb_rollback_on_timeout=1
innodb_lock_wait_timeout=600
max_connections=350
log-bin=mysql-bin
binlog-format = 'ROW'

启动 ntp 与 mysql 服务
/etc/init.d/ntpd start
/etc/init.d/mysqld start

运行 mysql_secure_installation 给 mysql 设置密码
mysql_secure_installation

设置开机启动
chkconfig ntpd on
chkconfig mysqld on

5 初始化 CloudStack 数据库
cloudstack-setup-databases cloud:ywwd.net@localhost --deploy-as=root:dongnan

插入一条sql
mysql -uroot -pdongnan -e "INSERT INTO cloud.configuration(category,instance,component,name,value,description) VALUES ('Advanced', 'DEFAULT', 'management-server', 'xen.check.hvm', 'false', 'Shoud we allow only the XenServers support HVM');"

cloud是将要创建用户名,ywwd.net是其密码
--deploy-as 参数 填写root用户与密码

此命令创建了以下数据库
mysql -ucloud -pywwd.net -e "show databases;"
+--------------------+
| Database           |
+--------------------+
| information_schema |
| cloud             |
| cloud_usage        |
| cloudbridge        |
+--------------------+

6 初始化 CloudStack 管理服务器
cloudstack-setup-management
此命令添加sudoer用户
grep -i cloud /etc/sudoers
cloud ALL =NOPASSWD : /bin/chmod, /bin/cp, /bin/mkdir, /bin/mount, /bin/umount

此命令添加以下防火墙端口
iptables -L -nv
Chain INPUT (policy ACCEPT 1207 packets, 257K bytes)
 pkts bytes target     prot opt in     out     source               destination        
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:9090
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:8250
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:7080
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:8080

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination        

Chain OUTPUT (policy ACCEPT 1192 packets, 257K bytes)


7 上传虚拟机模板

CloudStack通过一系列系统虚拟机提供功能,如访问虚拟机控制台,如提供各类网络服务,以及管理辅助存储的中的各类资源。该步骤会获取系统虚拟机模板,用于云平台引导后系统虚拟机的部署。
可以先将模板下载到本地http服务器上,这样安装速度更快.
模板下载地址 http://cloudstack.apt-get.eu/

7.1 模板类型
不同的模板文件对应不同的hyperisor , 例如:
xen.vhd.bz2 对应 XenServer
kvm.qcow2.bz2 对应 KVM
vmware.ova 对应 VMware(ESXi)

7.2 HTTP服务器
本例中将下载好的模板,存放到本地的http服务器,这样更方便快捷.
pwd
/usr/share/nginx/html/template
IP : 172.27.233.41

7.3 挂载二级存储
mkdir -p /mnt/secondary
mount -t nfs 172.27.244.30:/data/secondary /mnt/secondary

7.4 安装模板
#for XenServer
/usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt -m /mnt/secondary -u http://172.27.233.41/template/systemvm64template-4.4.0-6-xen.vhd.bz2 -h xenserver -F

#for KVM
/usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt -m /mnt/secondary -u http://172.27.233.41/template/systemvm64template-4.4.0-6-kvm.qcow2.bz2 -h kvm -F

卸载二级储存
umount /mnt/secondary/

现在万事俱备,只欠东风了..

本楼 http://ywwd.net/read-710-e#768
#
dongnan
总版主
总版主
  • 粉丝52
  • 发帖数2177
  • 铜币13448枚
  • 威望5905点
  • 银元150个
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 原创写手
5楼#
发布于:2014-08-28 14:43
配置 CloudStack 
MS 服务器安装完成并启动后,就可以通过 Web 方式配置 CloudStack

CloudStack 默认信息
用户名:admin
密码:password

1 登陆 CloudStack
使用 Web浏览器输入 CloudStack MS 的IP地址 http://CloudStack-Server-IP:8080/client

图片:cloud2.png



2 首次登录会有一个安装向导,我们建议选择"我以前使用过CloudStack,跳过此指南"

图片:cloud3.png



3 进入主界面后,请点击"全局设置",然后搜索"secs",找到secstorage.allowed.internal.sites这个选项,把值写入172.27.244.0/24,这表示允许子网为172.27.244.x的ip访问二级存储,

图片:cloud4.png



4 修改后需要重启服务
/etc/init.d/cloudstack-management restart

5 接下来,我们将分别创建Zone,Pod,Cluster等,首先点击"基础架构",默认所有都为0

图片:cloud5.png



点击区域的"查看全部"

图片:cloud6.png


点击"添加区域"

图片:cloud6-1.png


区域类型选择"基本"

图片:cloud6-2.png


设置区域基本信息,这里虚拟机管理程序为xenserver

图片:cloud6-3.png


网络设置,保持默认

图片:cloud6-4.png


设置提供点(Pod)信息,这里填写"管理VM"预留的IP信息

图片:cloud6-5.png


来宾通信,这里填写"来宾VM"预留的IP信息

图片:cloud6-6.png


添加XenServer 群集

图片:cloud6-7.png


添加主机,注意如果配置了 XenServer 资源池,直接填写Pool Master 的IP 地址即可,CloudStack 将自动添加池内的其它主机.

图片:cloud6-8.png


添加主存储,这里我们使用NFS

图片:cloud6-9.png


添加辅助存储

图片:cloud6-10.png


点击"Launch"启动区域,如前面的配置都正确,则该区域会正常启动,如不能启动,则系统会要求重新核实前面的信息

图片:cloud6-11.png





等待大约5-10分钟,将会发现两个系统VM已启动,系统VM运行在我们所添加的群集里面的主机之上.

图片:cloud7.png

图片:cloud8.png



接下来就可以创建VM实例了.

本楼 http://ywwd.net/read-710-e#769
#
dongnan
总版主
总版主
  • 粉丝52
  • 发帖数2177
  • 铜币13448枚
  • 威望5905点
  • 银元150个
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 原创写手
6楼#
发布于:2014-08-28 15:03
创建一个VM实例
CloudStack 自带两个系统VM模板,其中一个可以用来创建VM 实例,在使用模板或者ISO 镜像之前需要先检查状态,确保状态为"就绪",系统VM 模板需要在互联网下载速度可能较慢,需要耐心等待.

图片:cloud10.png




模板或者ISO镜像就绪后就可以创建VM实例了
实例 -> 添加实例 如下图

图片:cloud11.png



选择模板

图片:cloud11-1.png



实例类型

图片:cloud11-2.png



磁盘大小

图片:cloud11-3.png



网络

图片:cloud11-4.png



核对

图片:cloud11-5.png



完成

图片:cloud11-6.png



使用web 控制台登录虚拟机

图片:cloud11-7.png




当VM创建完毕后,会发现多了一个系统VM - 虚拟路由器

图片:cloud-e.png




本楼 http://ywwd.net/read-710-1#770

#END

返回顶部