对象存储系统
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
优点: •提高容量 •并行写入性能好 •使用SAN架构 缺点: •设备成本高 •主机之间无法共享数据
分布式存储架构-块存储
分布式存储架构-块存储
分布式存储架构-块存储
分布式存储架构-块存储
分布式存储架构-块存储
分布式存储架构-文件存储
• 文件存储
– 采用NFS或CIFS命令集访问数据,以文件为传输 协议,通过TCP/IP实现网络化存储 – 典型设备:FTP、NFS服务器,SamBa
对象存储组件-对象
对象存储组件-OSD
• 对象存储设备OSD
– 对象存储设备具有一定的智能,它有自己的CPU、 内存、网络和磁盘系统。 – OSD同块设备的不同不在于存储介质,而在于两者 提供的访问接口。 – OSD的主要功能包括数据存储和安全访问。
• 每个对象同传统的文件相似,使用同文件类似的访问接 口,但两者并不相同,每个对象可能包括若干个文件, 也可能是文件的一部分,且是独立于操作系统的。 • OSD记录了每个对象的属性信息,主要是物理视图信息, 从而减轻了元数据服务器的负担,增强了并行访问性能 和可扩展性
CEPH关键技术1-CRUSH
• 分布数据过程
1. 计算数据x的Hash值并将结果和PG数目取余, 以得到数据x对应的PG编号。 2. 通过CRUSH算法将PG映射到一组OSD中。 3. 最后把数据x存放到PG对应的OSD中。
• 这个过程中包含了两次映射,第一次是数 据x到PG的映射。PG是抽象的存储节点,它 不会随着物理节点的加入或则离开而增加 或减少,因此数据到PG的映射是稳定的。
CEPH关键技术1-CRUSH
CEPH关键技术1-CRUSH
• 1 通过哈希算法计算出存放 object 的 PG 的 ID
1.
2. 3. 4. 5.
客户端输入 pool ID 和 object ID (比如 pool = “liverpool” and object-id = “john”) ceph 对 object ID 做哈希 ceph 对该 hash 值取 PG 总数的模,得到 PG 编号 (比如 58) (第2和第3步基本保证了一个 pool 的所有 PG 将会被均匀 地使用) ceph 对 pool ID 取 hash (比如 “liverpool” = 4) ceph 将 pool ID 和 PG ID 组合在一起(比如 4.58)得到 PG 的完整ID。
• 特点
– 客户端采用cache缓存数据
• 当多个客户端同时访问某些数据时,MDS提供分布 的锁机制来确保Cache的一致性
– 为客户端提供认证
• 为了增强安全性,MDS为客户端提供认证方式, OSD将依据MDS的认证来决定是否为客户端提供服 务
对象存储模式的优势
• 海量数据存储
– 高性能数据存储:节点具有独立数据通路和元 数据访问通路,支持OSD并行访问
– 元数据管理可以分为集中式和分布式元数据管理架构。
分布式存储关键技术
• 系统弹性扩展技术
– 实现存储系统的高可扩展性首先要解决两个方面的 重要问题,包含元数据的分配和数据的透明迁移。
• 元数据的分配主要通过静态子树划分技术实现,后者则 侧重数据迁移算法的优化。此外,大数据存储体系规模 庞大.结点失效率高,因此还需要完成一定的自适应管 理功能。 • 数据透明迁移:系统必须能够根据数据量和计算的工作 量估算所需要的结点个数,并动态地将数据在结点间迁 移,以实现负载均衡;同时.结点失效时,数据必须可 以通过副本等机制进行恢复,不能对上层应用产生影响。
• 可以有效映射数据对象到存储设备上(不需要中心设备) • 参数是object id或object group id • 返回一组存储设备(用于保存object副本OSD)
CEPH关键技术1-CRUSH
• CRUSH优点:
– 任何组件都可以独立计算出每个object所在的 位置(去中心化)。 – 只需要很少的元数据(cluster map),只要当删除 添加设备时,这些元数据才需要改变。
– 对象元数据管理
• OSD管理存储在其上对象的元数据,该元数据与传统的 inode元数据相似,通常包括对象的数据块和对象的长度
对象存储组件-OSD
对象存储组件-文件系统
• 文件系统
– 对用户的文件操作进行解释,并在元数据服务 器和OSD间通信,完成所请求的操作 – 使用标准POSIX文件访问接口 – 使用Cache 功能和文件条带功能提高性能 – 维护不同客户端上Cache的一致性
– 跨平台数据共享:在对象存储系统上部署基于 对象的分布式文件系统实现不同平台下的设备 和数据共享 – 可伸缩性:对象存储模式具有分布式结构特征。
对象存储适用场景
基于对象存储的虚拟文件系统
ห้องสมุดไป่ตู้
对象存储系统-oNest系统
对象存储系统-Amazon S3
对象存储系统-EMC Atoms
分布式存储关键技术
CEPH关键技术1-CRUSH
• 映射过程
– Ceph设置有Pool,属性包括
• 1.object的副本数 2.Placement Groups的数量 3.所 使用的CRUSH Ruleset
– (Pool,PG)→ OSD set映射方式有四个因素决 定
• CRUSH算法 • OSD MAP:包含当前所有pool的状态和OSD的状态。 • CRUSH MAP:包含当前磁盘、服务器、机架的层级 结构。 • CRUSH Rules:数据映射的策略。
分布式存储关键技术
• 存储层级内的优化技术
– 构建存储系统时.需要基于成本和性能来考虑,因 此存储系统通常采用多层不同性价比的存储器件组 成存储层次结构。大数据的规模大,因此构建高效 合理的存储层次结构,可以在保证系统性能的前提 下,降低系统能耗和构建成本,利用数据访问局部 性原理.可以从两个方面对存储层次结构进行优化。
• • • • 元数据管理 系统弹性扩展技术 存储层级内的优化技术 针对应用和负载的存储优化技术
分布式存储关键技术
• 元数据管理
• 集中式元数据管理架构采用单一的元数据服务器,实现简 单.但是存在单点故障等问题。 • 分布式元数据管理架构则将元数据分散在多个结点上.进而 解决了元数据服务器的性能瓶颈等问题.并提高了元数据管 理架构的可扩展性,但实现较为复杂,并引入了元数据一致 性的问题。 • 无元数据服务器的分布式架构,通过在线算法组织数据,不 需要专用的元数据服务器。但是该架构对数据一致性的保障 很困难.实现较为复杂。文件目录遍历操作效率低下,并且 缺乏文件系统全局监控管理功能。
分布式存储架构-对象存储
• 技术特点
– 访问接口简单,提供REST/SOAP接口 – 协议开销高、相应延迟较文件存储长 – 引入对象元数据描述对象特征 – 应用系统跟存储系统的耦合程度松散 – 支持一次写多次读
性能优越,读写快,利于共享 扩展性好,解决非结构化增长 成本低廉
缺点: 平台稳定性 技术复杂
• 组件Cluster Monitors
– 识别机器故障 – 系统通知
对象存储系统 CEPH
• CEPH的系统架构
RADOS全称Reliable Autonomic Distributed Object Store
对象存储系统 CEPH
• CEPH的系统架构
对象存储系统 CEPH
CEPH关键技术1-CRUSH
对象存储组件-文件系统
对象存储组件-元数据服务器
• 元数据服务器
– 为客户端提供元数据,主要是文件的逻辑视图, 包括
• 文件与目录的组织关系 • 文件对应的OSD
– 每次操作仅有一次元数据访问,具体数据传输 由OSD和客户端直接进行。
• 传统文件系统每次对数据块操作都要获取元数据
对象存储组件-元数据服务器
分布式存储架构-文件存储
分布式存储架构-文件存储
分布式文件系统
分布式存储架构-文件存储
分布式存储架构-文件存储
分布式存储架构-文件存储
分布式存储架构-对象存储
• 对象存储:
– 目标:为海量非结构化数据提供Key-Value这种 通过键值查找数据文件的存储模式,提供基于 对象的访问接口。 – 对象存储(Object-Based Storage, OBS)综合了 NAS和SAN的优点,同时具有SAN的高速直接访 问和NAS的分布式数据共享等优势,提供了具 有高性能、高可靠性、跨平台以及安全的数据 共享的存储体系结构。
• 基于可扩展哈希的受控副本分布策略CRUSH
– 动机:
• 系统必须平衡的分布数据和负载(提高资源利用率),最大 化系统的性能,并要处理系统的扩展和硬件失效。简单 HASH分布不能有效处理设备数量的变化,导致大量数据 迁移
– CRUSH(Controoled Replication Under Scalable Hashing)
CEPH关键技术1-CRUSH
• OSD Map的逻辑树形结构
CEPH关键技术1-CRUSH
• 数据写入流程
– 数据写入时,文件被切分成object,object先映 射到PG,再由PG映射到OSD set。 – 每个pool有多个PG,每个object通过计算hash值 并取模得到它所对应的PG。 – PG再映射到一组OSD(OSD个数由pool的副本数 决定),第一个OSD是Primary,剩下的都是 Replicas。
分布式存储关键技术
• 针对应用和负载的存储优化技术
– 大数据存储系统对上层应用性能的关注远远超 过对通用性的追求。针对应用和负载来优化存 储,就是将数据存储与应用耦合。简化或扩展 分布式文件系统的功能,根据特定应用、特定 负载、特定的计算模型对文件系统进行定制和 深度优化,使应用达到最佳性能。 – 数据划分和负载均衡
对象存储系统 CEPH
• CEPH的系统架构
对象存储系统 CEPH
• 组件Meta Server Cluster
– – – – 元数据存储在一个存储汲取 管理文件系统的名称空间 管理数据位置,以及何处存储新数据 更高层次的Posix功能
• 组件Object Storage Cluster
– 存储文件 – 与客户端发生文件IO – Posix功能
• 数据划分解决不同节点间存储均衡性 • 负载均衡解决不同节点的访问均衡性
分布式数据存储系统对比
分布式数据存储系统对比
分布式对象存储系统产品
对象存储系统 CEPH
• Ceph概述
– Ceph项目最早起源于Sage就读博士期间的工作(最 早的成果于2004年发表),并随后贡献给开源社区。 在经过了数年的发展之后,目前已得到众多云计算 厂商的支持并被广泛应用。RedHat及OpenStack都 可与Ceph整合以支持虚拟机镜像的后端存储。 – Ceph是一个可靠地、自动重均衡、自动恢复的分布 式存储系统,根据场景划分可以将Ceph分为三大块, 分别是对象存储、块设备存储和文件系统服务
对象存储组件-OSD
• 对象存储设备OSD
– 数据存储
• OSD管理对象数据,并将它们放置在标准的磁盘系统上, OSD不提供块接口访问方式,Client请求数据时用对象ID、 偏移进行数据读写
– 智能分布
• OSD用其自身的CPU和内存优化数据分布,并支持数据的 预取。由于OSD可以智能地支持对象的预取,从而可以 优化磁盘的性能
• 从提高性能的角度,可以通过分析应用特征,识别热点 数据并对其进行缓存或预取,通过高效的缓存预取算法 和合理的缓存容量配比,以提高访问性能。 • 从降低成本的角度,采用信息生命周期管理方法,将访 问频率低的冷数据迁移到低速廉价存储设备上,可以在 小幅牺牲系统整体性能的基础上,大幅降低系统的构建 成本和能耗。
对象存储系统 Object-Based Storage System
聂铁铮
对象存储系统概念
分布式存储架构
• 分布式存储分为:文件存储、块存储和对 象存储
客户端 4 1
3
2 元数据服务器
数据节点服务器
分布式存储架构-块存储
• 块存储
– 主要是将裸磁盘空间整个映射给主机使用的 – 操作系统还需要对挂载的裸硬盘进行分区、格式化后, 才能使用 – 典型设备:磁盘阵列,硬盘
对象存储组件
• • • • • 对象 对象存储设备 元数据服务器 文件系统 网络连接
对象存储组件-对象
• 对象
– 对象是介于文件和块之间的一种抽象,具有唯一的 ID标识符,提供类似文件的访问方法。 – 对象是系统中数据存储的基本单位,是一系列有序 字节的集合,一个对象实际上就是文件的数据和一 组自身属性信息(Meta Data)的组合,这些属性 信息可以定义基于文件的RAID参数、数据分布和服 务质量等 – 对象维护自己的属性,简化存储系统的管理任务, 增加灵活性 – 对象大小可以不同,分为:根对象、组对象和用户 对象。
分布式存储架构-块存储
分布式存储架构-块存储
分布式存储架构-块存储
分布式存储架构-块存储
分布式存储架构-块存储
分布式存储架构-文件存储
• 文件存储
– 采用NFS或CIFS命令集访问数据,以文件为传输 协议,通过TCP/IP实现网络化存储 – 典型设备:FTP、NFS服务器,SamBa
对象存储组件-对象
对象存储组件-OSD
• 对象存储设备OSD
– 对象存储设备具有一定的智能,它有自己的CPU、 内存、网络和磁盘系统。 – OSD同块设备的不同不在于存储介质,而在于两者 提供的访问接口。 – OSD的主要功能包括数据存储和安全访问。
• 每个对象同传统的文件相似,使用同文件类似的访问接 口,但两者并不相同,每个对象可能包括若干个文件, 也可能是文件的一部分,且是独立于操作系统的。 • OSD记录了每个对象的属性信息,主要是物理视图信息, 从而减轻了元数据服务器的负担,增强了并行访问性能 和可扩展性
CEPH关键技术1-CRUSH
• 分布数据过程
1. 计算数据x的Hash值并将结果和PG数目取余, 以得到数据x对应的PG编号。 2. 通过CRUSH算法将PG映射到一组OSD中。 3. 最后把数据x存放到PG对应的OSD中。
• 这个过程中包含了两次映射,第一次是数 据x到PG的映射。PG是抽象的存储节点,它 不会随着物理节点的加入或则离开而增加 或减少,因此数据到PG的映射是稳定的。
CEPH关键技术1-CRUSH
CEPH关键技术1-CRUSH
• 1 通过哈希算法计算出存放 object 的 PG 的 ID
1.
2. 3. 4. 5.
客户端输入 pool ID 和 object ID (比如 pool = “liverpool” and object-id = “john”) ceph 对 object ID 做哈希 ceph 对该 hash 值取 PG 总数的模,得到 PG 编号 (比如 58) (第2和第3步基本保证了一个 pool 的所有 PG 将会被均匀 地使用) ceph 对 pool ID 取 hash (比如 “liverpool” = 4) ceph 将 pool ID 和 PG ID 组合在一起(比如 4.58)得到 PG 的完整ID。
• 特点
– 客户端采用cache缓存数据
• 当多个客户端同时访问某些数据时,MDS提供分布 的锁机制来确保Cache的一致性
– 为客户端提供认证
• 为了增强安全性,MDS为客户端提供认证方式, OSD将依据MDS的认证来决定是否为客户端提供服 务
对象存储模式的优势
• 海量数据存储
– 高性能数据存储:节点具有独立数据通路和元 数据访问通路,支持OSD并行访问
– 元数据管理可以分为集中式和分布式元数据管理架构。
分布式存储关键技术
• 系统弹性扩展技术
– 实现存储系统的高可扩展性首先要解决两个方面的 重要问题,包含元数据的分配和数据的透明迁移。
• 元数据的分配主要通过静态子树划分技术实现,后者则 侧重数据迁移算法的优化。此外,大数据存储体系规模 庞大.结点失效率高,因此还需要完成一定的自适应管 理功能。 • 数据透明迁移:系统必须能够根据数据量和计算的工作 量估算所需要的结点个数,并动态地将数据在结点间迁 移,以实现负载均衡;同时.结点失效时,数据必须可 以通过副本等机制进行恢复,不能对上层应用产生影响。
• 可以有效映射数据对象到存储设备上(不需要中心设备) • 参数是object id或object group id • 返回一组存储设备(用于保存object副本OSD)
CEPH关键技术1-CRUSH
• CRUSH优点:
– 任何组件都可以独立计算出每个object所在的 位置(去中心化)。 – 只需要很少的元数据(cluster map),只要当删除 添加设备时,这些元数据才需要改变。
– 对象元数据管理
• OSD管理存储在其上对象的元数据,该元数据与传统的 inode元数据相似,通常包括对象的数据块和对象的长度
对象存储组件-OSD
对象存储组件-文件系统
• 文件系统
– 对用户的文件操作进行解释,并在元数据服务 器和OSD间通信,完成所请求的操作 – 使用标准POSIX文件访问接口 – 使用Cache 功能和文件条带功能提高性能 – 维护不同客户端上Cache的一致性
– 跨平台数据共享:在对象存储系统上部署基于 对象的分布式文件系统实现不同平台下的设备 和数据共享 – 可伸缩性:对象存储模式具有分布式结构特征。
对象存储适用场景
基于对象存储的虚拟文件系统
ห้องสมุดไป่ตู้
对象存储系统-oNest系统
对象存储系统-Amazon S3
对象存储系统-EMC Atoms
分布式存储关键技术
CEPH关键技术1-CRUSH
• 映射过程
– Ceph设置有Pool,属性包括
• 1.object的副本数 2.Placement Groups的数量 3.所 使用的CRUSH Ruleset
– (Pool,PG)→ OSD set映射方式有四个因素决 定
• CRUSH算法 • OSD MAP:包含当前所有pool的状态和OSD的状态。 • CRUSH MAP:包含当前磁盘、服务器、机架的层级 结构。 • CRUSH Rules:数据映射的策略。
分布式存储关键技术
• 存储层级内的优化技术
– 构建存储系统时.需要基于成本和性能来考虑,因 此存储系统通常采用多层不同性价比的存储器件组 成存储层次结构。大数据的规模大,因此构建高效 合理的存储层次结构,可以在保证系统性能的前提 下,降低系统能耗和构建成本,利用数据访问局部 性原理.可以从两个方面对存储层次结构进行优化。
• • • • 元数据管理 系统弹性扩展技术 存储层级内的优化技术 针对应用和负载的存储优化技术
分布式存储关键技术
• 元数据管理
• 集中式元数据管理架构采用单一的元数据服务器,实现简 单.但是存在单点故障等问题。 • 分布式元数据管理架构则将元数据分散在多个结点上.进而 解决了元数据服务器的性能瓶颈等问题.并提高了元数据管 理架构的可扩展性,但实现较为复杂,并引入了元数据一致 性的问题。 • 无元数据服务器的分布式架构,通过在线算法组织数据,不 需要专用的元数据服务器。但是该架构对数据一致性的保障 很困难.实现较为复杂。文件目录遍历操作效率低下,并且 缺乏文件系统全局监控管理功能。
分布式存储架构-对象存储
• 技术特点
– 访问接口简单,提供REST/SOAP接口 – 协议开销高、相应延迟较文件存储长 – 引入对象元数据描述对象特征 – 应用系统跟存储系统的耦合程度松散 – 支持一次写多次读
性能优越,读写快,利于共享 扩展性好,解决非结构化增长 成本低廉
缺点: 平台稳定性 技术复杂
• 组件Cluster Monitors
– 识别机器故障 – 系统通知
对象存储系统 CEPH
• CEPH的系统架构
RADOS全称Reliable Autonomic Distributed Object Store
对象存储系统 CEPH
• CEPH的系统架构
对象存储系统 CEPH
CEPH关键技术1-CRUSH
对象存储组件-文件系统
对象存储组件-元数据服务器
• 元数据服务器
– 为客户端提供元数据,主要是文件的逻辑视图, 包括
• 文件与目录的组织关系 • 文件对应的OSD
– 每次操作仅有一次元数据访问,具体数据传输 由OSD和客户端直接进行。
• 传统文件系统每次对数据块操作都要获取元数据
对象存储组件-元数据服务器
分布式存储架构-文件存储
分布式存储架构-文件存储
分布式文件系统
分布式存储架构-文件存储
分布式存储架构-文件存储
分布式存储架构-文件存储
分布式存储架构-对象存储
• 对象存储:
– 目标:为海量非结构化数据提供Key-Value这种 通过键值查找数据文件的存储模式,提供基于 对象的访问接口。 – 对象存储(Object-Based Storage, OBS)综合了 NAS和SAN的优点,同时具有SAN的高速直接访 问和NAS的分布式数据共享等优势,提供了具 有高性能、高可靠性、跨平台以及安全的数据 共享的存储体系结构。
• 基于可扩展哈希的受控副本分布策略CRUSH
– 动机:
• 系统必须平衡的分布数据和负载(提高资源利用率),最大 化系统的性能,并要处理系统的扩展和硬件失效。简单 HASH分布不能有效处理设备数量的变化,导致大量数据 迁移
– CRUSH(Controoled Replication Under Scalable Hashing)
CEPH关键技术1-CRUSH
• OSD Map的逻辑树形结构
CEPH关键技术1-CRUSH
• 数据写入流程
– 数据写入时,文件被切分成object,object先映 射到PG,再由PG映射到OSD set。 – 每个pool有多个PG,每个object通过计算hash值 并取模得到它所对应的PG。 – PG再映射到一组OSD(OSD个数由pool的副本数 决定),第一个OSD是Primary,剩下的都是 Replicas。
分布式存储关键技术
• 针对应用和负载的存储优化技术
– 大数据存储系统对上层应用性能的关注远远超 过对通用性的追求。针对应用和负载来优化存 储,就是将数据存储与应用耦合。简化或扩展 分布式文件系统的功能,根据特定应用、特定 负载、特定的计算模型对文件系统进行定制和 深度优化,使应用达到最佳性能。 – 数据划分和负载均衡
对象存储系统 CEPH
• CEPH的系统架构
对象存储系统 CEPH
• 组件Meta Server Cluster
– – – – 元数据存储在一个存储汲取 管理文件系统的名称空间 管理数据位置,以及何处存储新数据 更高层次的Posix功能
• 组件Object Storage Cluster
– 存储文件 – 与客户端发生文件IO – Posix功能
• 数据划分解决不同节点间存储均衡性 • 负载均衡解决不同节点的访问均衡性
分布式数据存储系统对比
分布式数据存储系统对比
分布式对象存储系统产品
对象存储系统 CEPH
• Ceph概述
– Ceph项目最早起源于Sage就读博士期间的工作(最 早的成果于2004年发表),并随后贡献给开源社区。 在经过了数年的发展之后,目前已得到众多云计算 厂商的支持并被广泛应用。RedHat及OpenStack都 可与Ceph整合以支持虚拟机镜像的后端存储。 – Ceph是一个可靠地、自动重均衡、自动恢复的分布 式存储系统,根据场景划分可以将Ceph分为三大块, 分别是对象存储、块设备存储和文件系统服务
对象存储组件-OSD
• 对象存储设备OSD
– 数据存储
• OSD管理对象数据,并将它们放置在标准的磁盘系统上, OSD不提供块接口访问方式,Client请求数据时用对象ID、 偏移进行数据读写
– 智能分布
• OSD用其自身的CPU和内存优化数据分布,并支持数据的 预取。由于OSD可以智能地支持对象的预取,从而可以 优化磁盘的性能
• 从提高性能的角度,可以通过分析应用特征,识别热点 数据并对其进行缓存或预取,通过高效的缓存预取算法 和合理的缓存容量配比,以提高访问性能。 • 从降低成本的角度,采用信息生命周期管理方法,将访 问频率低的冷数据迁移到低速廉价存储设备上,可以在 小幅牺牲系统整体性能的基础上,大幅降低系统的构建 成本和能耗。
对象存储系统 Object-Based Storage System
聂铁铮
对象存储系统概念
分布式存储架构
• 分布式存储分为:文件存储、块存储和对 象存储
客户端 4 1
3
2 元数据服务器
数据节点服务器
分布式存储架构-块存储
• 块存储
– 主要是将裸磁盘空间整个映射给主机使用的 – 操作系统还需要对挂载的裸硬盘进行分区、格式化后, 才能使用 – 典型设备:磁盘阵列,硬盘
对象存储组件
• • • • • 对象 对象存储设备 元数据服务器 文件系统 网络连接
对象存储组件-对象
• 对象
– 对象是介于文件和块之间的一种抽象,具有唯一的 ID标识符,提供类似文件的访问方法。 – 对象是系统中数据存储的基本单位,是一系列有序 字节的集合,一个对象实际上就是文件的数据和一 组自身属性信息(Meta Data)的组合,这些属性 信息可以定义基于文件的RAID参数、数据分布和服 务质量等 – 对象维护自己的属性,简化存储系统的管理任务, 增加灵活性 – 对象大小可以不同,分为:根对象、组对象和用户 对象。