对象存储(Object-based Storage)概述
对象存储概述
什么是对象存储(OSD)?
存储局域网(SAN)和网络附加存储(NAS)是目前两种主流网络存储架构,而对象存储(Object-based Storage)是一种新的网络存储架构,基于对象存储技术的设备就是对象存储设备(Object-based Storage Device)简称OSD。1999年成立的全球网络存储工业协会(SNIA)的对象存储设备工作组发布了ANSI的X3T10标准。总体上来讲,对象存储综合了NAS和SAN的优点,同时具有SAN的高速直接访问和NAS的分布式数据共享等优势,提供了具有高性能、高可靠性、跨平台以及安全的数据共享的存储体系结构。
SAN存储架构
采用SCSI快I/O命令集,通过磁盘或FC(iber Channel)级的数据访问提供高性能的随机I/O个数据吞吐率,它具有高宽带、低时延的优势,在高性能计算中占有一席之地,如SGI的CXFS文件系统就是基于SAN实现高性能文件存储的,但是由于SAN系统的价格较高,且扩展性较差,已不能满足成千上万个CPU规模的系统。
NAS存储架构
它采用NFS或CIFS命令集访问数据,以文件为传输协议,通过TCP/IP实现网络化存储,可扩展行好、价格便宜、用户易管理,如目前在集群计算中应用较多的NFS文件系统,但由于NAS的西医开销高、带宽低、延迟大,不利于在高性能集群中使用。
对象存储架构
核心是将数据通路(数据读或写)和控制通路(元数据)分离,并且基于对象存储设备构建存储系统,每个对象存储设备具有一定的只能,能够自动管理其上的数据分布。对象存储结构由对象、对象存储设备、元数据服务器、对象存储系统的客户端四部分组成。
1. 对象
对象 是系统中数据存储的基本单位,每个Obeject是数据和数据属性集的综合体,数据属性可以根据应用的需求进行设置,包括数据分布、服务质量等。在传统的存储系统中用文件或块作为基本的存储单位,块设备要记录每个存储数据块在设备上的位置。Object维护自己的属性,从而简化了存储系统的管理任务,增加了灵活性。Object的大小可以不同,可以包含整个数据结构,如文件、数据表项等。在存储设备中,所有对象都有一个对象标识,通过对象标识OSD命令访问对象。通常由多种类型的对象,存储设备上的根对象标识存储设备和该设备的各种属性,组队象是存储设上共享资源管理策略的对象集合等。
传统的访问层次和虚拟数据访问模型
2. 对象存储设备
每个OSD都是一个智能设备,具有自己的存储介质、处理器、内存以及网络系统等,负责管理本地的Object,是对象存储系统的核心。OSD同块设备的不同不在于存储介质,而在于两者提供的访问接口。OSD的主要功能包括数据存储和安全访问、目前国际上通常采用刀片式结构实现对象存储设备。OSD提供三个主要功能:
(1)数据存储。OSD管理对象数据,并将它们放置在标准的磁盘系统上,OSD不提供接口访问方式,Client请求数据时用对象ID、偏移进行数据读写。
(2)智能分布。OSD用其自身的CPU和内存优化数据分布,并支持数据的预取。由于OSD可以智能地支持对象的预取,从而可以优化磁盘的性能。
(3)每个对象数据的管理。OSD管理存储在其它对象上的元数据,该元数据与传统的inode元数据相似,通常包括对象的数据块和对象的长度。而在传统的NAS系统中,这些元数据是由文件服务器提供的,对象存储架构将系统中主要的元数据管理工作由OSD来完成,降低了Client的开销。
3. 元数据服务器(Metadata Server,MDS)
MDS控制Client与OSD对象的交互,为客户端提供元数据,主要是文件的逻辑视图,包括文件与目录的组织关系、每个文件所对应的OSD等。主要提供以下几个功能:
(1)对象存储访问。MDS构造、管理描述每个文件分布的视图,允许Client直接访问对象。MDS为Client提供访问该文件所含对象的能力,OSD在接收到每个请求时先验证该能力,然后才可以访问。
(2)文件和目录访问管理。MDS在存储系统上构建一个文件结构,包括限额控制、目录和文件的创建和删除、访问控制等。
(3)Client Cache一致性。为了提高Client性能,在对象存储系统设计时通常支持Client的Cache。由于引入Client方的Cache,带来了Cache一致性的问提,MDS支持基于Client的文件Cache,当Cache的文件发生改变时,将通知Client刷新Cvashe,从而防止Cache不一致引发的问提。
4. 对象存储系统的客户端Client
为了有效支持Client支持访问OSD上的对象,需要在计算节点实现对象存储系统的Client。现有的应用对数据的访问大部分都是通过POSIX文件方式进行的,同时为了提高性能,也具有对数据的Cache功能和文件的条带功能。同时,文件系统必须维护不同客户端上Cache的一致性,保证文件系统的数据一致。文件系统访问流程:
1)客户端应用发出读请求;
2)文件系统向元数据服务器发送请求,获取要读取的数据所在的OSD;
3)然后直接向每个OSD发送数据读取请求;
4)OSD得到请求后,判断要读取的Object,并根据此Object的认证方式,对客户端进行认证,如果客户端得到收授权,则将Object的数据返回给客户端;
5)文件系统收到OSD返回的数据以后,读操作完成。
对象存储文件系统的关键技术
1、分布元数据 传统的存储结构元数据服务器通常提供两个主要功能。
(1)为计算结点提供一个存储数据的逻辑视图(Virtual File System,VFS层),文件名列表及目录结构。
(2)组织物理存储介质的数据分布(inode层)。对象存储结构将存储数据的逻辑视图与物理视图分开,并将负载分布,避免元数据服务器引起的瓶颈(如NAS系统)。元数据的VFS部分通常是元数据服务器的10%的负载,剩下的90%工作(inode部分)是在存储介质块的数据物理分布上完成的。在对象存储结构,inode工作分布到每个智能化的OSD,每个OSD负责管理数据分布和检索,这样90%的元数据管理工作分布到智能的存储设备,从而提高了系统元数据管理的性能。另外,分布的元数据管理,在增加更多的OSD到系统中时,可以同时增加元数据的性能和系统存储容量。
2、并发数据访问 对象存储体系结构定义了一个新的、更加智能化的磁盘接口OSD。OSD是与网络连接的设备,它自身包含存储介质,如磁盘或磁带,并具有足够的智能可以管理本地存储的数据。计算结点直接与OSD通信,访问它存储的数据,由于OSD具有智能,因此不需要文件服务器的介入。如果将文件系统的数据分布在多个OSD上,则聚合I/O速率和数据吞吐率将线性增长,对绝大多数Linux集群应用来说,持续的I/O聚合带宽和吞吐率对较多数目的计算结点是非常重要的。对象存储结构提供的性能是目前其它存储结构难以达到的,如ActiveScale对象存储文件系统的带宽可以达到10GB/s。
对象存储(Object-based Storage)概述相关推荐
- 三分钟了解阿里云产品:对象存储OSS概述
阿里云的产品种类繁多,今天让我们一起来了解下对象存储(Object Storage Service,简称OSS)吧! 对象存储是什么? 简单来说,对象存储OSS是阿里云提供的海量.安全和高可靠的云存储 ...
- OSS(对象存储服务)与 AWS S3(Amazon Simple Storage Service)
1. AWS S3对象存储 Amazon Simple Storage Service (Amazon S3) 是一种面向 Internet 的存储服务.您可以通过 Amazon S3 随时在 Web ...
- 阿里云云计算ACP学习(三)---对象存储OSS
对象存储OSS 1. OSS概述 阿里云对象存储服务(Object Storage Service,简称OSS),是阿里云提供的海量.安全.低成本.高可靠的云存储服务. 它具有与平台无关的RESTfu ...
- 块存储、文件存储、对象存储这三者和分布式文件存储系统的本质区别
块存储和文件存储是我们比较熟悉的两种主流的存储类型,而对象存储(Object-based Storage)是一种新的网络存储架构,基于对象存储技术的设备就是对象存储设备(Object-based St ...
- 存储-对象存储、文件存储和块存储
块存储和文件存储是我们比较熟悉的两种主流的存储类型,而对象存储(Object-based Storage)是一种新的网络存储架构,基于对象存储技术的设备就是对象存储设备(Object-based St ...
- 云存储哪家强:AWS、Azure、 Google、SoftLayer的对象存储和块存储
近日,RightScale的博客中讨论了目前市面上最主要的公有云服务供应商,包括AWS.Google Cloud Platform.Microsoft Azure,以及IBM SoftLayer,他们 ...
- 电信天翼云对象存储java实现
首先先了解电信天翼云对象存储 产品介绍 对象存储(Object-Oriented Storage, OOS)是中国电信为客户提供的一种海量.弹性.廉价.高可用的存储服务.客户只需花极少 ...
- 华为OBS对象存储,每个人都应该用一用
随着互联网硬件与软件的不断迭代,如今用户在网上冲浪的时间越来越多,智能手机的兴起诞生了各类短视频.快资讯网站以及自媒体市场.但由于大量的数据出现,对于用户及企业来说,如何存储这些数据成为了不可忽视的难 ...
- 阿里云对象存储OSS(Object Storage Service)
文章目录 简介 endpoint:阿里云服务部署的地区位置 见解 开发步骤 配置文件 utils层(读取全局配置文件并赋值给类变量) service层 impl(基于oss驱动sdk实现类) cont ...
最新文章
- mysql外键约束脚本_如何在MySQL中设置外键约束
- python打开excel执行vba代码_python可以添加,运行和删除VBA宏以实现excel而无需中间保存步骤吗?...
- android 图片操作,Android图片操作(Bitmap)
- 球体动画Android,Android自定义View实现简单炫酷的球体进度球实例代码
- 造谣“外卖员因差评杀人” 女子被依法刑事拘留
- 如何提高WEB程序的效率
- 让计算机u盘启动,如何让vmware用u盘启动
- MIME,拓展名需要相应的软件打开
- 泛微oa明细表添加按钮_泛微OA系统表结构说明
- 深度学习之学习(1-1) VGG16网络结构详解
- Snagit 2019 快速截图
- 老生常谈:如何快速提升项目管理和团队效率?
- ShowWindow(SW_SHOWNORMAL)
- Spark Core项目实战(3) | 页面单跳转化率统计
- 永磁同步电机矢量控制(四)——速度环 PI 参数整定(二)
- 【C++】C++11简介 | 列表初始化 | 声明 | 范围for
- 传统外置存储已近黄昏
- 汤森路透 Thomson Reuters--使用多模型数据库ArangoDB 打造快速安全的简单视图分析...
- postcss-pxtorem无法将内联样式的px转成rem
- 拉普拉斯的几个重要定理