OpenStack是一个美国国家航空航天局和Rackspace合作研发的,以Apache许可证授权,并且是一个自由软件和开放源代码项目。
OpenStack是一个云平台管理的项目,这个项目由几个主要的组件组合起来完成一些具体的工作。
OpenStack作为基础设施即服务(简称IaaS)资源的通用前端。OpenStack项目的首要任务是简化云的部署过程并为其带来良好的可扩展性。
本文翻译自OpenStack官方网页的介绍:http://www.openstack.org/,后期有时间会在第二天文档中翻译安装与部署指南。
1. 关于OpenStack
OpenStack是通过数据中心控制大量的计算,存储与网络资源的云操作系统,管理员通过控制台进行所有的管理,通过Web接口为授权用户提供资源。
接下来我们分别了解一下compute(计算),storage(存储),networking(网络)与dashborad(控制台)。
2. OpenStack Compute
OpenStack Compute提供与管理大量网络虚拟机实例。
OpenStack云操作系统允许企业和服务供应商通过提供与管理大量网络虚拟机来定制灵活的计算资源,你可以开发自己的云应用程序并通过APIs访问这些计算资源,或是管理员简单地通过Web接口访问。计算架构被设计与标准硬件之上。
架构灵活
OpenStack为用户设计自己的云提供了足够的灵活性,OpenStack不需要专门的硬件与软件,并且可以与传统的系统或第三方技术相结合。它被设计用来自动化管理计算资源群组并可以与大多数虚拟化技术协同工作,比如HPC。
在虚拟化环境中,管理员经常会使用一个或多个hypervisor来部署OpenStack Compute。KVM和XenServer就是hypervisor非常流行的选择,建议大多数人选择这种解决方案。如果用户需要减小虚拟化开销来达到 更高的效果与性能的话,Linux容器技术LXC也是被支持的一种解决方案。另外对于不同的hypervisor,OpenStack支持ARM或其他替 换架构。
使用案例:
服务提供商可以提供IaaS给客户
IT部门可以为公司或项目组提供云服务
配合hadoop之类的工具进行大数据运算
矩阵运算,满足web与应用程序从高到低的不同需求
高性能运算处理大量、集中的工作负载
3. OpenStack Storage
OpenStack Storage为服务器或应用程序提供对象与块存储功能。
除了传统企业级存储技术外,现在很多公司为了满足不同的性能与价格需求,他们需要更多样的存储技术。OpenStack支持对象记忆块存储技术,来满足不同的开发需求。
对象存储是性价比很高、可扩展的存储技术。它为我们提供了完全分布式的,可通过API访问的存储平台,这种存储平台可以直接整合到应用中去,或是用 来备份,打包与保留数据。块存储为外部存储提供对计算实例公开并与之连接,可与企业存储平台更好的集成提供更高的性能,如NetApp,Nexenta或 SolidFire。
对象存储功能
OpenStack提供了冗余、可扩展的对象存储,满足云计算存储PE级别数据的要求。
对象存储不是传统的分解系统,它是用来存储像虚拟机镜像,图片,邮件,打包或备份之类的静态数据。没有主控点使得对象存储可以提供更好的扩展性、冗余性和巩固性。
对象与文件在数据中心服务器中被写入到多个磁盘中,通过OpenStack软件确保数据的响应与完整性。
可以简单地通过添加服务器横向扩展云存储。当服务器或磁盘损坏时,OpenStack会从云中的其他活动节点响应数据请求。由于OpenStack通过软件确保数据的响应与分布,你可以用便宜的磁盘与服务器来替代昂贵的设备。
对象存储功能
OpenStack仍然为计算实例提供块级别存储设备。
块存储系统负责管理服务器块设备的创建、添加与删除。块存储卷完全整合于OpenStack Compute并且在控制面板中云用户可以管理他们自己的存储。
使用Linux存储服务器,这种统一的存储结构被大多数存储平台所支持包括Ceph,NetApp,Nexenta以及SolidFire。
块存储适合于对性能敏感的解决方案,如存储数据库、可扩展的文件系统,或为服务器提供原始数据块访问的存储。
快照管理为块存储提供了强大的数据备份功能。快照可以用来还原或创建一个新的块存储卷。
4. OpenStack Networking
OpenStack Networking:可插入的、可扩展的、通过API驱动的网络与IP网络系统。
如今数据中心的网络所包含的设备比以往任何时候否多,网络设备、存储设备、安全设备更进一步划分为虚拟机与虚拟网络。IP地址、路由配置与安全策略 会快速地增长至百万级别。传统的网络管理技术不再适合与下一代网络的扩展性以及自动管理属性。与此同时用户则希望获得更多的控制以及快速服务的灵活性。
OpenStack Networking是一个可插入、可扩展并使用API驱动的网络与IP地址管理系统,像其他云操作系统一样,它可以被管理员或用户用来提升现有数据中心资产的价值。OpenStack Networking确保部署云时网络不会出现瓶颈或某些限制因素,还可以为用户提供真正意义上的自助服务,用户可以通过他们自己的网络配置管理网络。
Networking功能
OpenStack为不同的应用与用户组织提供了足够灵活的网络模型。标准模型包括服务器与通讯分离的平面网络或VLAN。
OpenStack Networking可以通过静态或动态的方式管理IP地址。浮动IP使得与任何计算机资源的通讯可以被动态地重新路由,即允许你在维护设备或设备损坏时重定向通讯流量。
用户可以创建自己的网络,进行通讯控制以及连接服务器与设备。
可插入式架构设计让用户可以从厂商那里获得高级网络服务功能。
管理员可以使用像OpenFlow这样的SDN技术(software-defined networking)
OpenStack Networking的可扩展架构设计可以附加其他网络服务,如入侵检测,负载均衡,防火墙以及VPN等技术。
5. Dashboard
OpenStack dashboard为管理员与用户提供了图形接口的访问方式,基于云的自动化资源。它的可扩展性设计使得加载第三方产品与服务非常容易,比如计费、监控以及额外的管理工具。对于那些想要使用它的服务供应商以及其他的商业厂商而言,控制面板同样很具有吸引力。
Dashboard是与OpenStack资源交互的一种方式。开发者可以使用OpenStack API或EC2兼容API构建自己的工具去管理我们的资源。
Dashboard功能
Dashboard是允许云管理员和用户控制他们计算、存储与网络等资源的可扩展web应用。
作为一名云管理员,dashboard使你可以了解云环境的整体大小与状态。你可以创建用户与项目,并赋予权利给用户以及设置项目资源限制。
Dashboard在管理员给定的限制内可以自主地提供自己的资源。
6. Shared Services
OpenStack提供了众多的共享服务,这些共享服务分别在 compute,storage,networking三大支柱组件中,使你可以更轻松地部署与操控你的云。这些共享服务包括身份认证,镜像管理和供外部 其他系统与OpenStack组件交互的一个Web集成接口。
身份认证服务
OpenStack提供了用户目录与他们能访问的OpenStack服务之间的映射。在整个云操作系统中它扮演了通用型认证系统,并且它可以与现有的后端目录服务如LDAP集成。它提供了多种格式的认证,包括标准的用户名、密码认证,基于令牌系统以及AWS类型的登录。
另外,在OpenStack云中提供了一个可以查询所有已部署服务的目录列表。用户与第三方工具可以规划他们可以访问哪些资源。
作为管理员,OpenStack可以使你:
集中地配置用户与系统策略
使用基于角色控制(RBAC)的特性创建用户以及定义compute,storage,networking资源的权限
与现有LDAP集成,实现单点登录、统一身份认证功能
作为用户,OpenStack可以使你:
获得一份你可以访问资源的列表
通过API请求或登录web控制台去创建属于自己的资源
镜像服务
OpenStack镜像服务可以用来查找、注册与部署服务器镜像。它提供了对镜像的拷贝、快照以及快速存储功能。
多镜像格式的支持,镜像服务允许上传私有或公钥镜像格式,包括:
Raw
Machine(kernel/ramdisk outside of image)
VHD(Hyper-v)
VDI(VirtualBox)
qcow2(Qemu/KVM)
VMDK(VMware)
7. 路线图
OpenStack致力于开放设计与开发进程。社区基于六个月的开发周期运转。
OpenStack项目列表:
OpenStack Compute(代码名称:Nova)
OpenStack Networking(代码名称:Quantum)
OpenStack Object Storage(代码名称:Swift)
OpenStack Block Storage(代码名称:Cinder)
OpenStack Identity(代码名称:Keystone)
OpenStack Image Service(代码名称:Glance)
OpenStack Dashboard(代码名称:Horizon)