openstack swift,openstack swift 必须要通过keystone么
openstack swift,openstack swift 必须要通过keystone么详细介绍
本文目录一览: openstack创建好swift的容器后怎么创建一个文件
1、首先打开openstack,点击swift的容器。2、其次在swift的容器点击创建,点金新建文件夹。3、最后选择文件夹格式即可。
openstack中swift和cinder中的区别
swift是object storage(对象存储),将object(可以理解为文件)存储到bucket(可以理解为文件夹)里,你可以用swift创建container,然后上传文件,例如视频,照片,这些文件会被replication到不同服务器上以保证可靠性,swift可以不依靠虚拟机工作。所谓的云存储,OpenStack就是用swift实现的,类似于Amazon AWS S3(Simple Storage Service).
cinder是block storage(块存储),你可以把cinder当做优盘管理程序来理解。你可以用cinder创建volume,然后将它接到(attach)虚拟机上去,这个volume就像虚拟机的一个存储分区一样工作。如果你把这个虚拟机terminate了,这个volume和里边的数据依然还在,你还可以把它接到其他虚拟机上继续使用里边的数据。cinder创建的volume必须被接到虚拟机上才能工作。类似于Amazon AWS EBS(Elastic Block Storage).
swift是object storage(对象存储),将object(可以理解为文件)存储到bucket(可以理解为文件夹)里,你可以用swift创建container,然后上传文件,例如视频,照片,这些文件会被replication到不同服务器上以保证可靠性,swift可以不依靠虚拟机工作。所谓的云存储,OpenStack就是用swift实现的,类似于Amazon AWS S3(Simple Storage Service).
cinder是block storage(块存储),你可以把cinder当做优盘管理程序来理解。你可以用cinder创建volume,然后将它接到(attach)虚拟机上去,这个volume就像虚拟机的一个存储分区一样工作。如果你把这个虚拟机terminate了,这个volume和里边的数据依然还在,你还可以把它接到其他虚拟机上继续使用里边的数据。cinder创建的volume必须被接到虚拟机上才能工作。类似于Amazon AWS EBS(Elastic Block Storage).
swift是object storage(对象存储),将object(可以理解为文件)存储到bucket(可以理解为文件夹)里,你可以用swift创建container,然后上传文件,例如视频,照片,这些文件会被replication到不同服务器上以保证可靠性,swift可以不依靠虚拟机工作。所谓的云存储,OpenStack就是用swift实现的,类似于Amazon AWS S3(Simple Storage Service).cinder是block storage(块存储),你可以把cinder当做优盘管理程序来理解。你可以用cinder创建volume,然后将它接到(attach)虚拟机上去,这个volume就像虚拟机的一个存储分区一样工作。如果你把这个虚拟机terminate了,这个volume和里边的数据依然还在,你还可以把它接到其他虚拟机上继续使用里边的数据。cinder创建的volume必须被接到虚拟机上才能工作。类似于Amazon AWS EBS(Elastic Block Storage).
Hadoop分布式文件系统HDFS和OpenStack对象存储系统Swift有何不同
然HDFS与Openstack对象存储(Swift)之间有着一些相似之处,但是这两种系统的总体设计却大不一样。
1. HDFS使用了中央系统来维护文件元数据(Namenode,名称节点),而在Swift中,元数据呈分布式,跨集群复制。使用一种中央元数据系统对HDFS来说无异于单一故障点,因而扩展到规模非常大的环境显得更困难。
2. Swift在设计时考虑到了多租户架构,而HDFS没有多租户架构这个概念。
3. HDFS针对更庞大的文件作了优化(这是处理数据时通常会出现的情况),Swift被设计成了可以存储任何大小的文件。
4. 在HDFS中,文件写入一次,而且每次只能有一个文件写入;而在Swift中,文件可以写入多次;在并发操作环境下,以最近一次操作为准。
5. HDFS用Java来编写,而Swift用Python来编写。
另外,HDFS被设计成了可以存储数量中等的大文件,以支持数据处理,而Swift被设计成了一种比较通用的存储解决方案,能够可靠地存储数量非常多的大小不一的文件。
下列有关OpenStack各组件说法错误的是()
下列有关OpenStack各组件说法错误的是()
A.Nova是OpenStack的虚拟服务器部署和业务计算模块
B.keystone是OpenStack提供块存储的组件
C.Swift是一个分布式文件系统
D.Horizon可为OpenStack对云平台的资源管理提供图形化界面
正确答案:B
Hadoop分布式文件系统HDFS和OpenStack对象存储系统Swift有何不同
1.HDFS使用集中式单一节点架构(NameNode)来维护文件系统元数据,而在Swift中,元数据分布在整个集群中并拥有多个副本。注意:集中式元数据存储使HDFS存在性能、单点故障和扩展性问题,因此规模越大就性能越低,就越容易不可用,就越难扩展甚至不能扩展,所幸的是HDFS2使用NameNode
HA和HDFS
Federation解决了这三个问题。
2.
Swift在设计时考虑到了多租户架构,而HDFS没有多租户架构这个概念。
3.
HDFS针对大文件作了优化(HDFS关注吞吐量,常用于批量数据处理),而Swift被设计成可以存储任意大小的文件。
4.
在HDFS中,文件只能写入一次(部分版本可以使用Append操作在文件的末尾添加数据,但不支持在文件的任意位置进行修改),而在Swift中,文件可以写入多次。
5.
HDFS用Java来编写,而Swift用Python来编写。
OpenStack详细资料大全
OpenStack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的自由软体和开放原始码项目。
OpenStack是一个开源的云计算管理平台项目,由几个主要的组件组合起来完成具体工作。OpenStack支持几乎所有类型的云环境,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenStack通过各种互补的服务提供了基础设施即服务(IaaS)的解决方案,每个服务提供API以进行集成。
OpenStack是一个旨在为公共及私有云的建设与管理提供软体的开源项目。它的社区拥有超过130家企业及1350位开发者,这些机构与个人都将OpenStack作为基础设施即服务(IaaS)资源的通用前端。OpenStack项目的首要任务是简化云的部署过程并为其带来良好的可扩展性。本文希望通过提供必要的指导信息,帮助大家利用OpenStack前端来设定及管理自己的公共云或私有云。
OpenStack云计算平台,帮助服务商和企业内部实现类似于 Amazon EC2 和 S3 的云基础架构服务(Infrastructure as a Service, IaaS)。OpenStack 包含两个主要模组:Nova 和 Swift,前者是 NASA 开发的虚拟伺服器部署和业务计算模组;后者是 Rackspace开发的分散式云存储模组,两者可以一起用,也可以分开单独用。OpenStack除了有 Rackspace 和 NASA 的大力支持外,还有包括 Dell、Citrix、 Cisco、 Canonical等重量级公司的贡献和支持,发展速度非常快,有取代另一个业界领先开源云平台 Eucalyptus 的态势。
基本介绍 中文名 :OpenStack云计算管理平台 外文名 :OpenStack 开发者 :NASA,Rackspace 程式语言 :Python 遵循标准 :Open 、AMQP、SQLAlchemy 运用范围,厂商支援,技术资料,项目,核心项目,社区项目,市场趋向,大型用户,内容详解,构建私有云,服务中心,概述,系统构成,服务内容,服务体验,服务价值,成员企业, 运用范围 OpenStack是IaaS(基础设施即服务)组件,让任何人都可以自行建立和提供 云端运算 服务。 此外,OpenStack也用作建立 防火墙 内的“ 私有云 ”(Private Cloud),提供机构或企业内各部门共享资源。 厂商支援 美国国家航空航天局的Nebula运算平台。 美国国家航空航天局的Nebula运算平台。 现时已表示支持OpenStack项目的大型硬体厂商包括:IBM、AMD、Intel和戴尔等。 微软在2010年10月表示支持OpenStack与Windows Server 2008 R2的整合。 2011年2月,思科系统正式加入OpenStack项目,重点研制OpenStack的网路服务。 Ubuntu未来在堆叠方面的云网路化方案。 2012年4月,IBM宣布加入OpenStack项目,并作为主要赞助商。 2012年10月,Viacloud互联云平台加入OpenStack项目,研制OpenStack公有云平台和私有云平台。 IBM在2013年举行的 IBM Pulse大会宣布将基于OpenStack提供私有云服务以及相关套用。 技术资料 以Python程式语言编写 整合Tornado 网页伺服器、Nebula运算平台 使用Twisted软体框架 遵循Open Virtualization Format、AMQP、SQLAlchemy等标准 虚拟机器软体支持包括:KVM、Xen、VirtualBox、QEMU、 LXC 等。 项目 核心项目 OpenStack覆盖了网路、虚拟化、作业系统、伺服器等各个方面。它是一个正在开发中的云计算平台项目,根据成熟及重要程度的不同,被分解成核心项目、孵化项目,以及支持项目和相关项目。每个项目都有自己的委员会和项目技术主管,而且每个项目都不是一成不变的,孵化项目可以根据发展的成熟度和重要性,转变为核心项目。截止到Icehouse版本,下面列出了10个核心项目(即OpenStack服务)。 计算(Compute):Nova。一套控制器,用于为单个用户或使用群组管理虚拟机实例的整个生命周期,根据用户需求来提供虚拟服务。负责虚拟机创建、开机、关机、挂起、暂停、调整、迁移、重启、销毁等操作,配置CPU、记忆体等信息规格。自Austin版本集成到项目中。 对象存储(Object Storage):Swift。一套用于在大规模可扩展系统中通过内置冗余及高容错机制实现对象存储的系统,允许进行存储或者检索档案。可为Glance提供镜像存储,为Cinder提供卷备份服务。自Austin版本集成到项目中 镜像服务(Image Service):Glance。一套虚拟机镜像查找及检索系统,支持多种虚拟机镜像格式(AKI、AMI、ARI、ISO、QCOW2、Raw、VDI、VHD、VMDK),有创建上传镜像、删除镜像、编辑镜像基本信息的功能。自Bexar版本集成到项目中。 身份服务(Identity Service):Keystone。为OpenStack其他服务提供身份验证、服务规则和服务令牌的功能,管理Domains、Projects、Users、Groups、Roles。自Essex版本集成到项目中。 网路&地址管理(Neork):Neutron。提供云计算的网路虚拟化技术,为OpenStack其他服务提供网路连线服务。为用户提供接口,可以定义Neork、Sub、Router,配置DHCP、DNS、负载均衡、L3服务,网路支持GRE、VLAN。外挂程式架构支持许多主流的网路厂家和技术,如OpenvSwitch。自Folsom版本集成到项目中。 块存储 (Block Storage):Cinder。为运行实例提供稳定的数据块存储服务,它的外挂程式驱动架构有利于块设备的创建和管理,如创建卷、删除卷,在实例上挂载和卸载卷。自Folsom版本集成到项目中。 UI 界面 (Dashboard):Horizon。OpenStack中各种服务的Web管理门户,用于简化用户对服务的操作,例如:启动实例、分配IP位址、配置访问控制等。自Essex版本集成到项目中。 测量 (Metering):Ceilometer。像一个漏斗一样,能把OpenStack内部发生的几乎所有的事件都收集起来,然后为计费和监控以及其它服务提供数据支撑。自Havana版本集成到项目中。 部署编排 (Orchestration):Heat。提供了一种通过模板定义的协同部署方式,实现云基础设施软体运行环境(计算、存储和网路资源)的自动化部署。自Havana版本集成到项目中。 资料库服务(Database Service):Trove。为用户在OpenStack的环境提供可扩展和可靠的关系和非关系资料库引擎服务。自Icehouse版本集成到项目中。 社区项目 (14个) 负载均衡:Atlas-LB(Rackspace) 讯息伫列:Burrow(Piston) 云管理工具:Clanavi(Drupal) 自动部署:Crowbar(Dell) 服务部署:Juju(Ubuntu) 关系型资料库:RedDwarf(Rackspace) ... 市场趋向 Rackspace以OpenStack为基础的私有云业务每年营收7亿美元,增长率超过了20%。 OpenStack虽然有些方面还不太成熟,然而它有全球大量的组织支持,大量的开发人员参与,发展迅速。国际上已经有很多使用OpenStack搭建的公有云、私有云、混合云,例如:RackspaceCloud、惠普云、MercadoLibre的IT基础设施云、AT&T的CloudArchitec、戴尔的OpenStack解决方案等等。而在国内OpenStack的热度也在逐渐升温,华胜天成、高德地图、京东、阿里巴巴、百度、中兴、华为等都对OpenStack产生了浓厚的兴趣并参与其中。自2010年创立以来,已发布10个版本。其中Icehouse版本有120个组织、1202名代码贡献者参与,而最新的是Juno版本。OpenStack很可能在未来的基础设施即服务(IaaS)资源管理方面占据领导位置,成为公有云、私有云及混合云管理的“云作业系统”标准 大型用户 美国国家航空航天局 加拿大半官方机构CANARIE网路的DAIR(Digital Aelerator for Innovation and Research)项目,向大学与中小型企业提供研究和开发云端运算环境;DAIR用户可以按需要快速建立网路拓扑。 惠普云(使用Ubuntu Linux) MercadoLibre的IT基础设施云,现时以OpenStack管理超过6000 台虚拟机器。 AT&T的“Cloud Architect”,将在美国的达拉斯、圣地亚哥和新泽西州对外提供云端服务。 内容详解 创建虚拟机(VM)需要各种服务的互动和配合工作。下图展示了OpenStack典型环境架构,各个服务之间的互动和职能。 OpenStack典型环境架构 OpenStack因Open而开放,因组件而灵活,因包容而博大。有计算、网路、对象存储、块存储、身份、镜像服务、门户、测量、部署编排、资料库服务等等组件,有的组件可以根据需要选择安装,组网结构也很灵活、多样。实现了支持接入多种主流虚拟机软体:KVM、LXC、QEMU、Hyper-V、VMware、XenServer,也可以自行开发外挂程式接入其他的虚拟化软体。 OpenStack Compute (Nova)是一套控制器,用于为单个用户或使用群组启动虚拟机实例。它同样能够用于为包含着多个实例的特定项目设定网路。OpenStack Compute在公共云处理方面堪与Amazon EC2相提并论;而在私有云方面也毫不逊色于VMware的产品。在公共云中,这套管理机制将提供预制的镜像或是为用户创建的镜像提供存储机制,这样用户就能够将镜像以虚拟机的形式启动。 OpenStack 对象存储(Swift)是一套用于在大规模可扩展系统中通过内置冗余及容错机制实现对象存储的系统。这些对象能够通过一个REST API或是像Cyberduck这样可以对接对象存储API的客户端加以恢复。 OpenStack镜像服务 (Glance)是一套虚拟机镜像查找及检索系统。它能够以三种形式加以配置:利用OpenStack对象存储机制来存储镜像;利用Amazon的简单存储解决方案(简称S3)直接存储信息;或者将S3存储与对象存储结合起来,作为S3访问的连线器。OpenStack镜像服务支持多种虚拟机镜像格式,包括VMware(VMDK)、Amazon镜像(AKI、ARI、AMI)以及VirtualBox所支持的各种磁碟格式。镜像元数据的容器格式包括Amazon的AKI、ARI以及AMI信息,标准OVF格式以及二进制大型数据。 OpenStack的开发周期是每年固定发布两个新版本,并且每一个新版软体发布时,开发者与项目技术领导者已经在规划下一个版本的细节。这些开发者来自全球70多个组织,超过1600人。他们采用高级的工具与开发方式,进行代码查看、持续的集成、测试与开发架构,让版本在快速成长的同时也能确保稳定性。 构建私有云 第一步是设定正确的硬体和网路环境。尽管OpenStack允许在一个单一的平面网路上部署一切,从安全的角度来看并不安全。取决于你所使用的管理程式以及虚拟网路接口,它会允许guest虚拟机嗅探管理流量。建议至少使用两个网路:一个用来管理流量,一个用来进行虚拟机之间的对话。这意味着所有的云计算结点中你需要两个网卡(一个运行实例)和网路管理者。这些应该运行在不同的IP范围中。计算结点和实例的网路也需要支持VLAN标记,因为这是在“项目”之间隔绝流量所使用的机制。一个项目等价于你的亚马逊EC2账户,除了你不能按照你所希望的数目创建和分配之外。每一个项目都有自己的管理员和用户,在既定项目中的所有实例可以彼此通信。通过指派每一个项目自己的VLAN以及内部和外部的IP位址池来执行。 一旦硬体和网路设定好,下一步就是确定在哪里部署所有的OpenStack组件。标准部署应有一个控制器和一系列计算结点。控制器运行讯息伺服器,资料库和其他的组件来编排云,同时计算结点运行实例。但是你也可以分解控制器为地理的部分,从而改善性能,像把MySQL放在不同的物理盒中。对于安全而言,最关键的是确保每一部分都安装在安全的主机上,你只需要将其附加在网路上,让云运转即可。 只有两部分需要暴露给外面的世界(即使那只是你的企业网路):API伺服器/Web 控制台(如果开启)和网路管理者。这些伺服器需要过硬,你甚至可以使用第三方网路接口来隔离后端管理用户连线产生的流量。 如果你遵循默认安装说明书,可能这些部分并不如他们应该的那样安全。下面是一些具体的改变: * MySQL伺服器使用指定的用户账户,不是根MySQL管理账户。这个账户和密码将会暴露在每一个云结点上,即使使用基于证书的认证,因此所有结点需要访问这个资料库伺服器。 * MySQL配置档案中,限制访问伺服器,OpenStack用户账户为唯一授权IP位址。 * 移除任何不需要的OS组件并确保你所设定的伺服器只支持通过SSH的基于密钥的登入。 * 默认MySQL和RabbitMQ(讯息伺服器)流量不加密。如果你隔离了管理网路和坚固的主机,这就不应该是一个很糟糕的风险。如果你的云网路易于嗅探(例如,它和其他伺服器共享网路),你需要加密流量。你可以使用OpenSSL来进行MySQL 和RabbitMQ处理。(我个人还没进行测试,因此配置可能有点难。) 下一步,记住如果支持Web管理控制台,默认不适用SSL。 服务中心 中国OpenStack服务中心 概述 2013年6月18日在南京召开了“中国云计算产业促进大会暨中国OpenStack服务中心发布会”,华胜天成在会上正式宣布推出中国首家OpenStack服务中心。OpenStack是全球开发者共同参与的一个开源项目,旨在实现“云作业系统”,即一个具有部署和管理公有云、私有云以及混合云基础架构能力的平台。 1、建设并运营中国第一也可能是唯一的Openstack支持中心。 2、为Openstack的研究者,开发者和使用者提供丰富的线上及现场专业支持服务和咨询服务,消除客户使用开源软体的后顾之忧。 3、提高国内云计算从业人员数量和素质,普及开源软体精神与技术。 4、打破云计算建设的垄断,大大降低云计算平台建设与运营成本,推动并保障国内云计算平台建设蓬勃发展。 系统构成 800电话支持中心(100坐席) Web线上支持平台(100坐席) 服务电子销售平台 知识库 CRM系统 专业咨询团队(10人) 专业现场技术支持团队(50人) 专业客户化开发团队(100人) 专业运维管理团队(300人) 全球实验室级支持团队(2个国际顶级核心代码实验室) 服务内容 提供完善的L1,L2以及L3实验室级别线上与现场服务 24*7电话咨询/支持服务,Web线上咨询服务/支持服务 版本发布与升级服务 测试服务 现场安装,升级/调优服务 定制开发服务 培训服务 知识库共享服务 运维服务 电子交易 服务体验 1、客户可以24小时通过电话或网路在支持中心获得帮助,包括云技术咨询,资料索取,购买服务包。 2、收费服务包分为级别(例) 基本服务包(5*8 电话支持服务) 标准服务包(7*24电话支持服务+现场服务) 高级服务包(7*24*6平台修复保证) 3、专业服务选项(例) 系统集成服务 专人值守服务 系统调优服务 系统迁移服务 巡检服务 运维管理服务 应急回响服务 培训服务 服务价值 1、对开源云计算的用户和潜在用户 提供了一个获得知识,指导和技术支持的渠道,解决了套用开源云技术找不到技术后盾的尴尬局面。 提供了一个高水平的技术团队对用户进行安装,配置,开发,最佳化,运维服务,使云计算平台可以正确的被部署和使用,真正产生效益。 2、对于Openstack产业链 促进Openstack在中国的落地生根,开花结果。解决了Openstack雾里看花的尴尬。 3、对于支持中心本身 获得大量的客户信息和项目机会,获得高利润的服务业务。聚合大量业内技术资源,形成技术资源池,并通过聚合效应使产业链共同成长。 4、对社会 大大促进云建设步伐,降低IT运营成本,提高业务敏捷度,节能减排,促进产业升级。 成员企业 华胜天成 Intel Canonical Rackspace 中国开源云联盟
简述OpenStack的各核心项目及相应用途?
OpenStack覆盖了网络、虚拟化、操作系统、服务器等各个方面。它是一个正在开发中的云计算平台项目,根据成熟及重要程度的不同,被分解成核心项目、孵化项目,以及支持项目和相关项目。每个项目都有自己的委员会和项目技术主管,而且每个项目都不是一成不变的,孵化项目可以根据发展的成熟度和重要性,转变为核心项目。截止到Icehouse版本,下面列出了10个核心项目(即OpenStack服务)。
计算(Compute):Nova。一套控制器,用于为单个用户或使用群组管理虚拟机实例的整个生命周期,根据用户需求来提供虚拟服务。负责虚拟机创建、开机、关机、挂起、暂停、调整、迁移、重启、销毁等操作,配置CPU、内存等信息规格。自Austin版本集成到项目中。
对象存储(Object Storage):Swift。一套用于在大规模可扩展系统中通过内置冗余及高容错机制实现对象存储的系统,允许进行存储或者检索文件。可为Glance提供镜像存储,为Cinder提供卷备份服务。自Austin版本集成到项目中
镜像服务(Image Service):Glance。一套虚拟机镜像查找及检索系统,支持多种虚拟机镜像格式(AKI、AMI、ARI、ISO、QCOW2、Raw、VDI、VHD、VMDK),有创建上传镜像、删除镜像、编辑镜像基本信息的功能。自Bexar版本集成到项目中。
身份服务(Identity Service):Keystone。为OpenStack其他服务提供身份验证、服务规则和服务令牌的功能,管理Domains、Projects、Users、Groups、Roles。自Essex版本集成到项目中。
网络&地址管理(Network):Neutron。提供云计算的网络虚拟化技术,为OpenStack其他服务提供网络连接服务。为用户提供接口,可以定义Network、Subnet、Router,配置DHCP、DNS、负载均衡、L3服务,网络支持GRE、VLAN。插件架构支持许多主流的网络厂家和技术,如OpenvSwitch。自Folsom版本集成到项目中。
块存储 (Block Storage):Cinder。为运行实例提供稳定的数据块存储服务,它的插件驱动架构有利于块设备的创建和管理,如创建卷、删除卷,在实例上挂载和卸载卷。自Folsom版本集成到项目中。
UI 界面 (Dashboard):Horizon。OpenStack中各种服务的Web管理门户,用于简化用户对服务的操作,例如:启动实例、分配IP地址、配置访问控制等。自Essex版本集成到项目中。
测量 (Metering):Ceilometer。像一个漏斗一样,能把OpenStack内部发生的几乎所有的事件都收集起来,然后为计费和监控以及其它服务提供数据支撑。自Havana版本集成到项目中。
部署编排 (Orchestration):Heat [2] 。提供了一种通过模板定义的协同部署方式,实现云基础设施软件运行环境(计算、存储和网络资源)的自动化部署。自Havana版本集成到项目中。
数据库服务(Database Service):Trove。为用户在OpenStack的环境提供可扩展和可靠的关系和非关系数据库引擎服务。自Icehouse版本集成到项目中。
openstack swift 必须要通过keystone么
前面那个DeprecationWarning是warning级别的,暂时不影响。应该是k版本之后,keystone client已经openstack client替代了。 后面那个报错才是问题:Invalid OpenStack Identity credentials。 看你的命令行中没有加用户名和密码,这个你是设置了...
keytone不是认证 服务吗,openstack的所有组件都要通过认证,譬如swift,cinder,nova.
差不多
华为fusionsphere的openstack是基于什么版本
OpenStack其实有三个与存储相关的组件,这三个组件被人熟知的程度和组件本身出现时间的早晚是相符的,按熟悉程度排列如下:
Swift--提供对象存储 (Object Storage),在概念上类似于Amazon S3服务,不过swift具有很强的扩展性、冗余和持久性,也兼容S3 API
Glance--提供虚机镜像(Image)存储和管理,包括了很多与Amazon AMI catalog相似的功能。(Glance的后台数据从最初的实践来看是存放在Swift的)。
Cinder--提供块存储(Block Storage),类似于Amazon的EBS块存储服务,目前仅给虚机挂载使用。
(Amazon一直是OpenStack设计之初的假象对手和挑战对象,所以基本上关键的功能模块都有对应项目。除了上面提到的三个组件,对于AWS中的重要的EC2服务,OpenStack中是Nova来对应,并且保持和EC2 API的兼容性,有不同的方法可以实现)
三个组件中,Glance主要是虚机镜像的管理,所以相对简单;Swift作为对象存储已经很成熟,连CloudStack也支持它。Cinder是比较新出现的块存储,设计理念不错,并且和商业存储有结合的机会,所以厂商比较积极。
Swift
关于Swift的架构和部署讨论,除了官方网站,网上也有很多文章,这里就不重复.(也可以参考我之前在OpenStack中国行活动中上海站演讲的PPT)。从开发上看,最近也没有太大的结构性调整,所以我想主要说说比较适用的应用领域好了。
从我所了解的实际案例来看,Swift出现的领域有4个,(应该还有更多,希望大家看到实际用例能够指教)
1.网盘。
Swift的对称分布式架构和多proxy多节点的设计导致它从基因里就适合于多用户大并发的应用模式,最典型的应用莫过于类似Dropbox的网盘应用,Dropbox去年底已经突破一亿用户数,对于这种规模的访问,良好的架构设计是能够支撑的根本原因。
Swift的对称架构使得数据节点从逻辑上看处于同级别,每台节点上同时都具有数据和相关的元数据。并且元数据的核心数据结构使用的是哈希环,一致性哈希算法对于节点的增减都只需重定位环空间中的一小部分数据,具有较好的容错性和可扩展性。另外数据是无状态的,每个数据在磁盘上都是完整的存储。这几点综合起来保证了存储的本身的良好的扩展性。
另外和应用的结合上,Swift是说HTTP协议这种语言的,这使得应用和存储的交互变得简单,不需要考虑底层基础构架的细节,应用软件不需要进行任何的修改就可以让系统整体扩展到非常大的程度。
2.IaaS公有云
Swift在设计中的线性扩展,高并发和多租户支持等特性,使得它也非常适合做为IaaS的选择,公有云规模较大,更多的遇到大量虚机并发启动这种情况,所以对于虚机镜像的后台存储具体来说,实际上的挑战在于大数据(超过G)的并发读性能,Swift在OpenStack中一开始就是作为镜像库的后台存储,经过RACKSpace上千台机器的部署规模下的数年实践,Swift已经被证明是一个成熟的选择。
另外如果基于IaaS要提供上层的SaaS 服务,多租户是一个不可避免的问题,Swift的架构设计本身就是支持多租户的,这样对接起来更方便。
3.备份归档
RackSpace的主营业务就是数据的备份归档,所以Swift在这个领域也是久经考验,同时他们还延展出一种新业务--“热归档”。由于长尾效应,数据可能被调用的时间窗越来越长,热归档能够保证应用归档数据能够在分钟级别重新获取,和传统磁带机归档方案中的数小时而言,是一个很大的进步。
4. 移动互联网和CDN
移动互联网和手机游戏等产生大量的用户数据,数据量不是很大但是用户数很多,这也是Swift能够处理的领域。
至于加上CDN,如果使用Swift,云存储就可以直接响应移动设备,不需要专门的服务器去响应这个HTTP的请求,也不需要在数据传输中再经过移动设备上的文件系统,直接是用HTTP 协议上传云端。如果把经常被平台访问的数据缓存起来,利用一定的优化机制,数据可以从不同的地点分发到你的用户那里,这样就能提高访问的速度,我最近看到Swift的开发社区有人在讨论视频网站应用和Swift的结合,窃以为是值得关注的方向。
Glance
Glance比较简单,是一个虚机镜像的存储。向前端nova(或者是安装了Glance-client的其他虚拟管理平台)提供镜像服务,包括存储,查询和检索。这个模块本身不存储大量的数据,需要挂载后台存储(Swift,S3。。。)来存放实际的镜像数据。
Glance主要包括下面几个部分:
l API service: glance-api 主要是用来接受Nova的各种api调用请求,将请求放入RBMQ交由后台处理,。
l Glacne-registry 用来和MySQL数据库进行交互,存储或者获取镜像的元数据,注意,刚才在Swift中提到,Swift在自己的Storage Server中是不保存元数据的,这儿的元数据是指保存在MySQL数据库中的关于镜像的一些信息,这个元数据是属于Glance的。
l Image store: 后台存储接口,通过它获取镜像,后台挂载的默认存储是Swift,但同时也支持Amazon S3等其他的镜像。
Glance从某种角度上看起来有点像虚拟存储,也提供API,可以实现比较完整的镜像管理功能。所以理论上其他云平台也可以使用它。
Glance比较简单,又限于云内部,所以没啥可以多讨论的,不如看看新出来的块存储组件Cinder,目前我对Cinder基本的看法是总体的设计不错,细节和功能还有很多需要完善的地方,离一个成熟的产品还有点距离。
Cinder
OpenStack到F版本有比较大的改变,其中之一就是将之前在Nova中的部分持久性块存储功能(Nova-Volume)分离了出来,独立为新的组件Cinder。它通过整合后端多种存储,用API接口为外界提供块存储服务,主要核心是对卷的管理,允许对卷,卷的类型,卷的快照进行处理。
Cinder包含以下三个主要组成部分
API service:Cinder-api 是主要服务接口, 负责接受和处理外界的API请求,并将请求放入RabbitMQ队列,交由后端执行。 Cinder目前提供Volume API V2
Scheduler service: 处理任务队列的任务,并根据预定策略选择合适的Volume Service节点来执行任务。目前版本的cinder仅仅提供了一个Simple Scheduler, 该调度器选择卷数量最少的一个活跃节点来创建卷。
Volume service: 该服务运行在存储节点上,管理存储空间,塔处理cinder数据库的维护状态的读写请求,通过消息队列和直接在块存储设备或软件上与其他进程交互。每个存储节点都有一个Volume Service,若干个这样的存储节点联合起来可以构成一个存储资源池。
Cinder通过添加不同厂商的指定drivers来为了支持不同类型和型号的存储。目前能支持的商业存储设备有EMC 和IBM的几款,也能通过LVM支持本地存储和NFS协议支持NAS存储,所以Netapp的NAS应该也没问题,好像华为也在努力中。我前段时间还在Cinder的blueprints看到IBM的GPFS分布式文件系统,在以后的版本应该会添加进来
到目前为止,Cinder主要和Openstack的Nova内部交互,为之提供虚机实例所需要的卷Attach上去,但是理论上也可以单独向外界提供块存储。
部署上,可以把三个服务部署在一台服务器,也可以独立部署到不同物理节点
现在Cinder还是不够成熟,有几个明显的问题还没很好解决,一是支持的商业存储还不够多,而且还不支持FC SAN,另外单点故障隐患没解决,内部的schedule调度算法也太简单。另外由于它把各种存储整合进来又加了一层,管理倒是有办法了,但是效率肯定是有影响,性能肯定有损耗,但这也是没办法的事了。
Openstack通过两年多发展,变得越来越庞大。目前光存储就出现了三种:对象存储、镜像存储和块存储。这也是为了满足更多不同的需求,体现出开源项目灵活快速的特性。总的说来,当选择一套存储系统的时候,如果考虑到将来会被多个应用所共同使用,应该视为长期的决策。Openstack作为一个开放的系统,最主要是解决软硬件供应商锁定的问题,可以随时选择新的硬件供应商,将新的硬件和已有的硬件组成混合的集群,统一管理,当然也可以替换软件技术服务的提供商,不用动应用。这是开源本身的优势!
swift能干什么,不能干什么及相关概念
本帖最后由 pig2 于 2014-3-11 18:45 编辑
1.swift 是什么?
OpenStackObject Storage (Swift) 是开源的,用来创建可扩展的、冗余的、对象存储(引擎)。 swift使用标准化的服务器存储 PB 级可用数据。但它并不是文件系统 (file system) ,实时的数据存储系统(real-timedata storage system) 。 swift 看起来更像是一个长期的存储系统 (long term storage system) ,为了获得、调用、更新一些静态的永久性的数据。比如说,适合存储一些类型的数据:虚拟机镜像,图片存储,邮件存储,文档的备份。没有“单点”或者主控结点 (master point of control) , swift看起来具有更强的扩展性、冗余和持久性。
2.swift 能做什么?
长于存储非结构化数据,大、小文件性能据说都很好(目前没有测试数据, adrian otto 说测试过10 亿个 1byte 数据)。
简单来说swift是开发苹果iOS的最快捷的计算机语言。
但是实际上swift已经可以进行一次性编译之后,同时实现在苹果iOS和安卓系统上的部署。能够实现这个功能的目前唯一的IDE是SCADE,一个德国的软件产品(目前处于试用状态)。
而且从2015年起,swift不但支持在手机前端的开发,还支持开发服务器后端的程序,比如使用PerfectlySoft出品的Perfect 2.0就可以确保swift在Linux Ubuntu 16.04上运行并实现一个Web服务器,访问各种数据库并调用远程访问。实际上Perfect 2.0是市面上最快的HTTP服务器,比php和java服务器都快得多。
3.swift 不能做什么?
Objects must be <5GB : swift 1.2 之后已经对 object 的大小不做限制
Not a Filesystem :不是文件系统。 swift 使用 REST API ,而不是使用传统意义上的文件操作命令, open(), read(), write(), seek(), 和 close() 等。
No File Locking :干脆不支持“文件锁”。其实在 swift 中,“锁”的概念是没有必要的。
No Directory Hierarchies :没有文件目录结构。 swift 可以模拟目录结构,但没有必要
Not a Database :不是数据库。 swift 使用 account-container-object 的概念存储 object ,可以列表出指定 container 中的 object ,不支持 server 端的查询和处理操作。