2012年4月5日,Citrix宣布旗下云基础设施平台CloudStack加入Apache软件基金会,这款以最成熟的文档和最容易安装著称的云基础平台再一次引起了业界的广泛关注。当时正值CloudStack 3.0 beta发布,新的UI 大大提升了用户体验,对与云资源的精细管理的功能也被源源不断的加入了近来,CloudStack 3.0 的发布无疑又让其在与竞争对手的竟争中再一次保持领先 。
本文给大家介绍CloudStack 3.0中的新功能:Project。
一、CloudStack中为什么需要引入ProjectProject项目是CloudStack 3.0引入的一个特色功能,提供了更精细的虚拟资源管理能力,特别适合于以项目为单位的,灵活多变的部门使用。
在介绍Project项目之前,先简单介绍一下CloudStack中已有的以域、帐户和用户的资源管理的关系及各自定位。
在CloudStack中“帐户”是云资源管理的基本单位,而“用户”是做为“帐户”别名形式存在的。同一个帐户中的用户之间的资源不会隔离,生产环境中我们一般会给公司内部的一个部门,或者一个小组分配一个帐户。
CloudStack的“域”是一组“帐户”的集合,在CloudStack初始化完成后默认会建立ROOT域,即根域。以后建立的域都以树的方式组织,在生产环境中可以为相对独立的部门或者其他城市的部门分配一个域。每个域都有一个域管理员,域管理员的权限高于其他用户。
在CloudStack3.0之前,是不能在域中的各帐户之间共享资源的,而以帐户为单位的资源隔离的粒度又太细,这就是引入Project的原因。和域类似,项目是一组“帐户”和资源的集合,不同的是一个项目中的资源可以被项目中的帐户共享。
有了项目的概念后,每个CloudStack普通用户会拥有两类资源:我的资源和我所在项目的资源。为了更方便的区分管理这两类资源,CloudStack 界面中增加了视图的选项。在项目视图的环境中,帐户所创建的所有资源归项目所有,归项目全体成员共享,当一个帐户离开项目后,他所创建的资源仍然会继续存在。
二、CloudStack 项目的特点1、一个项目只能管理一个Zone中的资源,不能跨Zone。
2、项目管理的资源包括: 虚拟机、公用IP、卷、快照、模板、网络。
3、创建项目的权限:Root和域Admin角色的用户可以创建项目;
如果在全局配置中打开:allow.user.project.creation,普通用户也可以创建项目。
4、项目与帐户的关系:
A、一个帐户可以属于多个项目;
B、一个帐户可以创建,并拥有多个项目;
所有的项目成员都可以查看项目中的资源状况。
三、Step By Step 学习,体验创建、挂起和撤销一个项目为了更好的演示Project项目的特点,设定环境如下:先创建一个域 DevDomain,再向该域中添加一个帐户:devmanager,并以devmanager的身份重新登陆到CloudStack 。
添加一个名为:devmanger的帐户,并指定域为:DevDomain。
添加一个名为:DevProject的项目
为DevProject添加帐户,分别为:devli,devzhang,devwang,还有DevProject的所有者:devmanager。
项目的创建者默认为项目的管理员admin,也可以在本步骤指定其他管理者:
也可以以邮件的方式,“邀请其他成员加入”,请参考:参考本文后面的全局配置信息。
邀请发送后,被邀请人登陆后,就可以看到邀请的提示信息:
创建项目最重要的一个环节:指定DevProject项目管理资源的限制,包括:虚拟机、公用IP、卷、快照、模板、网络:
为了更好的测试DevProject的资源限制情况,这里把限制都设置为2。该数字默认为20,可以在全局设置中修改。
项目创建完成后,就可以在项目中创建资源,供项目成员共享使用了。请注意,一定要在“项目视图”下操作,在默认视图下对资源的操作和项目无关!
进入项目视图:
创建2个虚拟机后,再创建虚拟机,这时提示超过项目资源限制了。
用另一个项目成员帐号登陆:
挂起项目后,项目中的资源就不能使用了,所有的虚拟机自动进入关机状态。
项目重新恢复后,已经在关机状态的虚拟机不会重新启动。
四、CloudStack中与项目有关的全局配置:
allow.user.create.projects 普通用户是否可以创建一个项目,默认为true
max.project.networks 每个项目可以创建网络的默认数量上限 20
max.project.public.ips 每个项目可以使用公网IP的默认数量上限 20
max.project.snapshots 每个项目可以创建快照的默认数量上限 20
max.project.templates 每个项目可以部署模板的默认数量上限 20
max.project.user.vms 每个项目可以部署用户虚拟机的默认数量上限 20
max.project.volumes 每个项目可以创建卷的默认数量上限 20
project.email.sender 发送项目邀请邮件的标题
project.invite.required 当添加账户到项目时,是否需要邀请确认. 默认为 false
project.invite.timeout 邀请过期时间(秒). 默认为一天 86400秒 86400
project.smtp.host 用于发送项目邀请邮件的SMTP主机名
project.smtp.password SMTP认证密码(仅当project.smtp.useAuth为true时有效)
project.smtp.port SMTP 服务器监听端口 465
project.smtp.useAuth 如果true, 发送电子邮件时使用SMTP认证
project.smtp.username SMTP认证用户名 (仅当project.smtp.useAuth为true时有效)
至此,我们就体验了CloudStack中与Project项目相关的各项功能,相信你一定对CloudStack的这个功能印象深刻吧。