版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。OpenStack 存储技术OpenStack 其实有三个与存储相关的组件,这三个组件被人熟知的程度和组件本身出现时间的早晚是相符的,按熟悉程度排列如下 :?Swift 提供对象存储 ( Object Storage) ,在概念上类似于Amazon S3 服务 ,不过swift具有很强的扩展性、冗余和持久性,也兼容S3 API。对象存储支持多种应用,比如复制和存档数据、图像或视频服务,存储次级静态数据,开发数据存储整合的新应用,存储容量难以估计的数据,为 Web 应用创立基于云的弹性存储。? Glance提供虚机镜像 ( Image
2、) 存储和管理 , 它能够以三种形式加以配置 : 利用 OpenStack 对象存储机制来存储镜像 ; 利用 Amazon 的简单存储解决方案( 简称 S3) 直接存储信息 ; 或者将 S3 存储与对象存储结合起来 , 作为 S3 访问的连接器。 OpenStack 镜像服务支持多种虚拟机镜像格式 , 包括VMware( VMDK) 、 Amazon 镜像 ( AKI 、 ARI 、 AMI) 以及 VirtualBox所支持的各种磁盘格式。镜像元数据的容器格式包括Amazon 的 AKI 、 ARI以及 AMI信息 , 标准 OVF 格式以及二进制大型数据。? Cinder- 提供块存储 (
3、 Block Storage) ,类似于 Amazon 的 EBS 块存储服务 ,OpenStack 中的实例是不能持久化的 ,需要挂载 volume, 在 volume中实现持久化。 Cinder就是提供对 volume实际需要的存储块单元的实现管理功能。? Amazon 一直是 OpenStack 设计之初的假想对手和挑战对象 , 因此基本上关键的功能模块都有对应项目。除了上面提到的三个组件 , 对于 AWS 中的重要的EC2 服务 , OpenStack中是 Nova 来对应 ,而且保持和 EC2 API 的兼容性 ,有不同的方法能够实现。三个组件中 , Glance 主要是虚机镜像的管
4、理 , 因此相对简单 ; Swift 作为对象存储已经很成熟 , 连 CloudStack 也支持它。 Cinder 是比较新出现的块存储 , 设计理念不错 , 而且和商业存储有结合的机会 , 因此厂商比较积极。资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。存储项目和组件对应关系如下面表格:表 1. 对应关系项目组件描述对应 Amazon 产品SwiftObject Storage as a service对象存储Amazon S3Glance Image as a serviceVM 磁盘镜像存储和管Amazon AMI理catalogCinder Block Storage
5、 as a service块存储Amazon EBS回页首OpenStack 对象存储 SwiftOpenStack Object Storage(Swift)是 OpenStack 开源云计算项目的子项目之一 , 被称为对象存储 , 提供了强大的扩展性、 冗余和持久性。 Swift 并不是文件系统或者实时的数据存储系统 , 它称为对象存储 , 用于永久类型的静态数据的长期存储 , 这些数据能够检索、 调整 , 必要时进行更新。 Swift 前身是Rackspace Cloud Files项目 ,随着 Rackspace 加入到 OpenStack 社区 ,于年 7月贡献给 OpenStack
6、,作为该开源项目的一部分。Swift当前的最新版本是 OpenStack Havana。 Havana 版本中 Swift新增特性如下 :?Multiple-Region-Replication:支持对象异地复制容灾。? Memcache: 增加对轮询 Memcache 连接的支持。? More-Optimization: 并发 IO 支持 , 多网段分流支持 , 在多地复制情况下加强不同 Proxy-Server 的亲和度。Swift特性资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。在 OpenStack 官网中 , 列举了很多 Swift 特性 , 其中最引人关注的是以下几
7、点。极高的数据持久性一些朋友经常将数据持久性( Durability)与系统可用性 ( Availability)两个概念混淆 , 前者也理解为数据的可靠性, 是指数据存储到系统中后, 到某一天数据丢失的可能性。例如 Amazon S3的数据持久性是 11个 9,即如果存储 1万 ( 4 个 0) 个文件到 S3 中, 1 千万 ( 7 个 0) 年之后 ,可能会丢失其中 1个文件。那么 Swift 能提供多少个 9的 SLA 呢? 下文会给出答案。针对 Swift在新浪测试环境中的部署 , 她们从理论上测算过 , Swift 在 5 个 Zone 、 510 个存储节点的环境下 , 数据复制
8、份是为 3, 数据持久性的 SLA 能达到 10 个 9 。完全对称的系统架构”对称”意味着Swift中各节点能够完全对等 ,能极大地降低系统维护成本。无限的可扩展性这里的扩展性分两方面 , 一是数据存储容量无限可扩展 ; 二是 Swift 性能 ( 如QPS、 吞吐量等 ) 可线性提升。因为 Swift 是完全对称的架构 , 扩容只需简单地新增机器 , 系统会自动完成数据迁移等工作 , 使各存储节点重新达到平衡状态。无单点故障在互联网业务大规模应用的场景中 , 存储的单点一直是个难题。 例如数据库 , 一般的 HA 方法只能做主从 , 而且”主”一般只有一个 ; 还有一些其它开源存储系统的实
9、现中 , 元数据信息的存储一直以来是个头痛的地方 , 一般只能单点存储 , 而这个单点很容易成为瓶颈 , 而且一旦这个点出现差异 , 往往能影响到整资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。个集群 , 典型的如 HDFS。而 Swift 的元数据存储是完全均匀随机分布的 , 而且与对象文件存储一样 , 元数据也会存储多份。整个 Swift 集群中 , 也没有一个角色是单点的 , 而且在架构和设计上保证无单点业务是有效的。简单、可依赖简单体现在架构优美、 代码整洁、 实现易懂 , 没有用到一些高深的分布式存储理论 , 而是很简单的原则。 可依赖是指 Swift 经测试、 分析
10、之后 , 能够放心大胆地将 Swift 用于最核心的存储业务上 , 而不用担心 Swift 捅篓子 , 因为不论出现任何问题 , 都能经过日志、 阅读代码迅速解决。Swift架构概述Swift Architectural主要有三个组成部分 :Proxy Server 、 Storage Server和Consistency Server。其架构如图 1所示 ,其中 Storage 和 Consistency服务均允许在 Storage Node 上。Auth认证服务当前已从 Swift 中剥离出来 ,使用 OpenStack 的认证服务 Keystone, 目的在于实现统一 OpenStack
11、 各个项目间的认证管理。图 1. Swift架构资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。主要组件Proxy ServerProxy Server是提供Swift API的服务器进程,负责Swift其余组件间的相互通信。对于每个客户端的请求,它将在Ring中查询Account、Container或Object的位置 ,而且相应地转发请求。Proxy提供了REST API,而且符合标准的 HTTP 协议规范 ,这使得开发者能够快捷构建定制的Client与Swift交互。Storage ServerStorage Server提供了磁盘设备上的存储服务。 在 Swift 中有三
12、类存储服务器 :Account 、 Container 和 Object 。其中 Container服务器负责处理 Object的列表 , Container服务器并不知道对象存放位置 ,只知道指定 Container里存的哪些 Object 。这些 Object 信息以 sqlite数据库文件的形式存储。Container 服务器也做一些跟踪统计 , 例如 Object的总数、 Container的使用情况。Consistency Server在磁盘上存储数据并向外提供REST API 并不是难以解决的问题 , 最主要的问题在于故障处理。 Swift 的 Consistency Server
13、s的目的是查找并解决由数据损坏和硬件故障引起的错误。主要存在三个 Server: Auditor、 Updater和Replicator。Auditor 在每个 Swift 服务器的后台持续地扫描磁盘来检测对象、Container和账号的完整性。 如果发现数据损坏 , Auditor就会将该文件移动到隔离区域 ,然后由 Replicator负责用一个完好的拷贝来替代该数据。图2 给出了隔离对象的处理流图。 在系统高负荷或者发生故障的情况下 , Container 或账号中的数据不会被立即更新。 如果更新失败 , 该次更新在本地文件系统上会被加入队列 , 然后 Updaters 会继续处理这些失
14、败了的更新工作 , 其中由 Account Updater 和 Container Updater 分别负责 Account 和 Object 列表的资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。更新。 Replicator 的功能是处理数据的存放位置是否正确而且保持数据的合理拷贝数 , 它的设计目的是 Swift 服务器在面临如网络中断或者驱动器故障等临时性故障情况时能够保持系统的一致性。图 2.隔离对象的处理流RingRing 是 Swift最重要的组件 ,用于记录存储对象与物理位置间的映射关系。在涉及查询 Account 、 Container 、 Object信息时 ,
15、就需要查询集群的Ring信息。Ring使用 Zone 、Device 、Partition和 Replica来维护这些映射信息。Ring 中每个 Partition在集群中都 (默认 )有 3个 Replica 。每个Partition的位置由 Ring来维护 ,并存储在映射中。 Ring 文件在系统初始化时创立 ,之后每次增减存储节点时,需要重新平衡一下Ring文件中的项目 ,以保证增减节点时 ,系统因此而发生迁移的文件数量最少。应用场景Swift提供的服务与 Amazon S3相同 ,适用于许多应用场景。1. 网盘资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。Swift 的
16、对称分布式架构和多 proxy 多节点的设计导致它从基因里就适合于多用户大并发的应用模式 , 最典型的应用莫过于类似 Dropbox 的网盘应用 , Dropbox 去年底已经突破一亿用户数 , 对于这种规模的访问 , 良好的架构设计是能够支撑的根本原因。Swift的对称架构使得数据节点从逻辑上看处于同级别,每台节点上同时都具有数据和相关的元数据。 而且元数据的核心数据结构使用的是哈希环,一致性哈希算法对于节点的增减都只需重定位环空间中的一小部分数据 , 具有较好的容错性和可扩展性。 另外数据是无状态的 , 每个数据在磁盘上都是完整的存储。 这几点综合起来保证了存储的本身的良好的扩展性。另外和应用的结合上 , Swift 是遵循 HTTP 协议的 , 这使得应用和存储的交互变得简单 , 不需要考虑底层基础构架的细节 , 应用软件不需要进行任何的修改就能够让系统整体扩展到非常大的程度。2.Iaas公有云Swift 在设计中的线性扩展 , 高并发和多租户支持等特性 , 使得它也非常适合做为 IaaS
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026卫生岗面试题目及答案
- 2026文员面试题及答案
- 2026西藏考编面试题及答案
- 2026香料专业面试题及答案
- 2026心理培训面试题目及答案
- 敬老院老人药物中毒应急演练脚本
- 地面耐磨处理验收记录
- 常年供货商合作协议书三篇
- 市工商所自查自纠报告
- 2026年光伏接线盒生产工艺
- (必刷)山东省大数据专业高级职称(大数据应用分析专业)考点精粹必做500题-含答案
- 2025年基层党建专员《党建实务知识》真题及答案解析
- 市政给水管网竣工资料方案
- 2025ESTRO实践建议:放射性皮炎的管理解读
- 2026年深圳市高三语文第二次调研考试作文评分细则及标杆卷点评:粒子加速器
- 2026 氯碱电解工艺证考试练习题库 含答案
- 学校厨房安全检查制度
- 心脏术后疼痛管理策略
- (2025年)城市管理网格员职业技能竞赛考试题库(含答案)
- 石林国有资本投资集团有限公司招聘笔试题库2026
- 出入相补原理课件
评论
0/150
提交评论