howtodown 发表于 2014-2-28 16:23:53

cloudstack汇总---什么是cloudstack及CloudStack安全介绍及维护中常见问题

本帖最后由 howtodown 于 2014-2-28 17:01 编辑

可以带着下面问题来阅读:
1.cloudstack支持管理那些hypervisors?
2.企业使用CloudStack可以用来干什么?
3.Zone在CloudStack的位置什么?
4.CloudStack的机架怎么表示?
5.Primary storage是什么?
6.Secondary storage的作用是什么?
7.模板的作用是什么?
8.ISO 镜像是什么?
9.CloudStack支持哪几种存储类型?

-------------------------------------------------------------------------------------
一、什么是cloudstack
CloudStack是一个开源的具有高可用性及扩展性的云计算平台。目前Cloudstack支持管理大部分主流的hypervisors,如KVM,XenServer,VMware,Oracle VM,Xen等。同时CloudStack是一个开源云计算解决方案。可以加速高伸缩性的公共和私有云(IaaS)的部署、管理、配置。使用CloudStack作为基础,数据中心操作者可以快速方便的通过现存基础架构创建云服务。
CloudStack是一个开源软件平台,公用计算资源来搭建公共,私有和混合基础设施平台,并作为云服务(IaaS)。CloudStack将统一管理组成与基础设施的网络,存储和计算节点。可使用CloudStack部署,管理和配置云计算环境。

二、企业可以用它来干什么

服务提供商和企业是比较典型的用户。使用CloudStack您可以:
创建能满足弹性需求的云计算服务。服务提供商可以在互联网上出售自助服务,服务包括虚拟机实例,存储量,以及网络配置。
为员工创建自由云。使用CloudStack,以管理物理机同样的方式管理虚拟机,企业可向用户提供虚拟机自助服务而不涉及IT部门。



1.cloudstack概念架构




用户:通过网络访问属于我的虚拟机、存储空间、管理我的个人模板。管理员:部署配置,管理账户,监控资源,安排作业,排除故障开发人员:开发计费、监控、统计报表等功能模块,定制图形界面、工作流
2.cloudstack部署架构
Zone:Zone 对应于现实中的一个数据中心,它是 CloudStack 中最大的一个单元。Pod:Pod 对应着一个机架。同一个 pod 中的机器在同一个子网(网段)中。Cluster:Cluster 是多个主机组成的一个集群。同一个 cluster 中的主机有相同的硬件,相同的 Hypervisor,和共用同样的存储。同一个 cluster 中的虚拟机,可以实现无中断服务地从一个主机迁移到另外一个上。Host:Host 就是运行虚拟机(VM)的主机。即从包含关系上来说,一个 zone 包含多个 pod,一个 pod 包含多个 cluster,一个 cluster 包含多个 host。Primary storage:一级存储与 cluster 关联,它为该 cluster 中的主机的全部虚拟机提供磁盘卷。一个 cluster 至少有一个一级存储,且在部署时位置要临近主机以提供高性能。Secondary storage:二级存储与 zone 关联,它存储模板文件,ISO 镜像和磁盘卷快照。模板:可以启动虚拟机的操作系统镜像,也包括了诸如已安装应用的其余配置信息。ISO 镜像:包含操作系统数据或启动媒质的磁盘镜像。磁盘卷快照:虚拟机数据的已储存副本,能用于数据恢复或者创建新模板。

3.cloudstack的软件架构


下图是CloudStack的软件架构:
4.cloudstack跟KVM一起部署的架构下图是CloudStack跟kvm一起部署的架构:在每个kvm的宿主机上都需要部署agent程序。

5.cloudstack跟vsphere一起部署的架构

下图是CloudStack跟vsphere一起部署的架构:如果部署vmware的产品就必须部署vcenter server。6.cloudstack支持的存储类型下图是CloudStack所支持的存储类型:http://images.cnitblog.com/blog/133059/201306/06144923-273d5ee887d94fad8baa7651b8f9ab78.jpg
7.cloudstack的APIWeb ServicesREST架构支持POST / GET请求返回XML或JSON响应格式
root管理员、域管理员和用户
---------------------------------------------------------------------------------------------------------------------------------------------------三、CloudStack的安全组
CloudStack的安全组通过网络第三层协议保证虚拟机的安全隔离。每个安全组可以设定一定的安全规则,即安全组网络的进入规则和流出规则。CloudStack默认所有出去的流量都是允许的,所用进入的流量都是禁止的。
CloudStack中提供了基于CIDR和基于账户的安全组防护规则如图所示:





如入口规则,可以选择指定协议的起始端口和结束端口,一级CIDR来允许一定网段的特定协议的特定端口来访问安全组内的虚拟机。
通过划分安全组,在网络隔离的基础上,解决VLan最多只能有4094个网络的问题(当然随着SDN技术的发展,在网络L2层也可解决这个问题)。


---------------------------------------------------------------------------------------------------------------------------------------------------

四、CloudStack运维常见问题及解决办法

CloudStack 2.2.y目前已经在生产环境广泛部署,CloudStack3.0.x由于还在深度开发,目前并未大规模进行商业应用.
以下就CloudStack2.2.y在安装,运维中出现的常见问题进行汇总,并给出相应的办法绕开问题.

1. CloudStack的高可用性(HA)功能欠佳

CloudStack针对设置了HA的VM,要提供VM在异常停止状态下自动重新启动.由于HA整体逻辑较为复杂,分为investigation->Fencing->Restart三个步骤.异常断电,网络闪断的情况下investigator需要一段时间来确定VM状态是否是运行,停止或未知,在未知的情况下需要对VM访问的资源,特别是存储卷进行隔断的操作.在保证隔断操作成功的基础上,可以认为VM已经停止,可以重新启动.这里所做的一切是为了保证同一时间同一个VM只可能有一个是在Running状态,避免对存储卷造成损坏.
目前CloudStack的HA功能并不能保证触发HA的VM一定能最终成功运行.这里需要保证主机硬件,电源及网络设备正常运转,特别是保证网络稳定.一旦发生多台断电断网的情况,可以试着让CloudStack通过HA自动恢复,如果在一定时间内(小于15分钟)无法正常恢复,需要手动更改数据库,使状态为关机,然后再启动虚拟机.CloudStack3.0规划将会使用Hypervisor提供的HA,稳定性会得到增强,但天下没有免费的午餐,拥有HA功能的Hypervisor版本售价也会更高.

2.CloudStack中对虚拟机进行网络限速

CloudStack中默认的网络限速无法满足需要(200Mbit/s).这时需要调整全局配置参数:network.throttling.rate与vm.throtting.rate来增加带宽.但目前还无法针对不同的VM设置不同的网络带宽,只能寄希望与该功能会加入到VM的服务方案里的可编辑选项,这样可以保证对VM网络访问带宽进行定制.

3.CloudStack中VLan规划结束,无法进行扩展

在最初建立资源域时,需要设定好guest网络的VLan,这是一个范围,一旦设定好,guest网络可用的VLan也就定死了,无法动态扩展.实在需要的话,只能通过更改数据库: 修改表data_center和op_dc_vnet_alloc可以达到这个目的,不是很友好.

4.跨资源域复制模板和ISO失败

由于权限问题,无法在资源域之间复制模板及ISO,可以通过更改二级存储系统虚机(SSVM)中二级存储挂载的目录的.htacess文件,将需要访问的IP加到allow里

5.在系统某些资源快达到临界(threshold)时,创建VM失败

系统有多个主存储,某些主存储接近threshold设置时,新建带数据盘的VM总是失败,即使有些主存储还有足够的capacity也不行.这主要是CloudStack检查存储能力的时候,对于ROOT和DATA的卷分开检查,这将导致ROOT+DATA的存储超过所要分配的主存储,显然这种方式不正确.目前可以通过调整全局配置storage.allocated.capacity.threshold来暂时解决,但最终需要两种解决方法: a> 通过ROOT + DATA的总量来确定分配的主存储 b>更合理的方式是ROOT,DATA分开检查,每个检查成功后要预保留空间,以免出现NotEnoughSpaceException,同时,ROOT及DATA可以在不同的主存储上分配

6. XenServer与某些主机板载网卡兼容性问题

主要表现是带VLan的ARP包无法经物理机到达虚拟机,据查是XenServer与某些Intel 82576网卡存储兼容性问题,最终通过升级网卡驱动得以解决.因此希望在选择硬件时,参照一下相应Hypervisor的HCL列表

7. XenServer不支持某些类型的操作系统

对于像Ubuntu10.04,CentOS5.6等一些操作系统,不支持PV虚拟化,这时要使用这些OS来创建模板,需要选择Other 64bit/32bit,这时虚拟将运行在HVM模式下.性能会有一部分损失.对于一些OS,XenServer官方不支持,比如BSD,也不建议尝试

8. XenServer Emergency Mode

由于网络配置,闪断等问题导致管理网络通讯断开,在网络恢复后发现部分XenServer网卡信息丢失,重启主机也无效.其主要原因是XenServer pool slave长时间无法连接Pool Master然后进入自保护模式,也就是emergency mode.
目前的解决方式是在每一台丢失网卡信息的主机上支持指令:xe pool-emergency-transition-to-master,因此这里也再次强调网络稳定对于CloudStack的重要性

9. 虚拟机HA失败,虚拟机状态不一致

仍然是由于大面积断网后,系统尝试HA但部分VM HA失败,导致VM的状态与真实情况不一致.这种情况下需要在数据库中手动恢复.

10. 建立特大卷的快照/模板超时

原因:
1>本身在代码里限定了超时时间为120分钟
2>主机与二级存储之间的传输速度太慢<10M/s
3>全量备份时使用了vdi.copy,这个方法不仅做拷贝,还要校验及合并等操作,非常慢
目前的方法是保证部署架构里二级存储足够快,适当调整全量快照与增量快照的比率

11. VMWare集群中系统虚拟机无法创建

首先检查网络配置上是否正确,系统VM是在管理服务器上挂载二级存储,并通过https协议将系统VM的模板PUT到ESXi中,这里要确定管理服务器对二级存储的访问权限以及SSVM对二级存储的挂载权限

从上面生产环境中运维的问题可以看到,CloudStack要在部署之前做好整合规划并做兼容性测试,同时保持网络稳定,在目前CloudStack的版本中,谨慎使用HA功能,建议在正式上线前先做Staging Cluster,然后平稳过度到生产环境,最后要定期做备份.




sjsy57 发表于 2015-4-2 20:56:05

AAAAAAAAAAAAAAAAAAAAAAA
页: [1]
查看完整版本: cloudstack汇总---什么是cloudstack及CloudStack安全介绍及维护中常见问题