深入理解对象存储(OSD)

对象存储

    • 1、对象存储的起源
    • 2、什么是对象存储
    • 3、对象存储与块存储、文件存储
    • 4、对象存储架构
      • 4.1、对象(Object)
      • 4.2、对象存储设备(OSD)
      • 4.3、元数据服务器(MDS)
      • 4.4、对象存储系统的客户端(Client)
    • 5、对象存储的特性
    • 6、对象存储的应用场景
    • 7、国内常见的对象存储产品


1、对象存储的起源


存储局域网(SAN)和网络附加存储(NAS)是目前两种主流网络存储架构,在DAS和SAN中,存储资源就像一块一块的硬盘,直接挂载在主机上,我们称之为块存储

而在NAS中,呈现出来的是一个基于文件系统的目录架构,有目录、子目录、孙目录、文件,我们称之为文件存储。文件存储的最大特点,就是所有存储资源都可以通过多级路径方式进行访问

20世纪末,随着互联网的爆发,数据存储需求发生了两个重大的变化:

一是数据量爆炸式增长:Web应用的崛起、社交需求的刺激,极大地推动了多媒体内容创作和分享。人们开始上传大量的照片、音乐、视频,加剧了数据量的爆发。此外,信息技术的发展、企业数字化的落地,也产生了大量的数据,不断吞食着存储资源

二是非结构化数据的占比显著增加:例如图像、音频、视频、Word文章等

面对这两大趋势,由于技术本身和架构的限制,仅具备PB级扩展能力的块存储(SAN)和文件存储(NAS)显得有些无能为力

于是,对象存储应运而生

1996年,美国卡内基梅隆大学提出将对象存储作为一个研究项目,随后,加州大学伯克利分校也有推出类似的项目

2006年,美国Amazon公司发布AWS S3(Simple Storage Service)服务,正式将对象存储作为一项云存储服务,引入云计算领域,从此开启了对象存储的黄金时代

2、什么是对象存储


存储局域网(SAN)和网络附加存储(NAS)是目前两种主流网络存储架构,而对象存储(Object-based Storage)是一种新的网络存储架构,基于对象存储技术的设备就是对象存储设备(Object-based Storage Device),简称OSD

对象存储,也称为“面向对象的存储”、“云存储”。它综合了网络附加存储(NAS)和存储局域网(SAN)的优点,同时具有SAN的高速直接访问和NAS的分布式数据共享等优势,提供了具有高性能、高可靠性、跨平台以及安全的数据共享的存储体系结构

对象存储允许将计算基础架构与存储需求分离。可以在对所有数据进行存储的同时无需监控存储,因此方便扩展并向云中的集群添加节点

对象存储核心是将数据通路(读写)和控制通路(元数据)分离,并且基于对象存储设备构建存储系统,每个对象存储设备具有自己的职能,能够自动管理其上的数据分布

对象存储是一种基于对象的存储设备,具备智能、自我管理能力,通过Web服务(如REST、SOA、微服务)实现对象的读写和存储资源的访问

对象存储系统包含两种数据描述:容器(Bucket)、对象(Object)。容器和对象都有一个全局唯一的ID。对象存储采用扁平化结构管理所有数据,用户/应用通过接入码(AccessKey)认证后,只需要根据ID就可以访问容器/对象及相关的数据(Data)、元数据(metadata)和对象属性(Attribute)

对象存储本质上就是一个Key-Value结构,Key是文件的URL路径,Value是对应的文件,没有传统文件系统那种目录树的结构,不能直接打开修改文件,只能先下载、修改,再上传,所以不支持append和truncate操作,操作接口比较简单,主要接口命令有PUT/GET/DELETE等

云厂商将对象存储称为云存储,不同云厂商对它有不同的命名。例如阿里云叫OSS,腾讯云叫COS,华为云叫OBS,百度云叫BOS等

3、对象存储与块存储、文件存储


在这里插入图片描述

  • 相同点

    对象存储的底层硬件介质,依然是硬盘,和块存储、文件存储没有区别

  • 不同点

    块存储:操作对象是磁盘。存储协议是SCSI、ISCSI、FC,以SCSI为例,主要接口命令有Read、Write、Read Capacity、Inquiry等

    文件存储:操作对象是文件和文件夹。存储协议是NFS、SAMBA(SMB)、POSIX等。以NFS为例,文件相关的接口命令包括:Read、Write、Create、Remove、Rename、Lookup、Access等;文件夹相关的接口命令包括:Mkdir、Rmdir、Readdir等

    对象存储:主要操作的是对象(Object)。存储协议是S3、Swift等,以S3为例,主要接口命令有PUT、GET、DELETE等。对象存储没有那种目录树的概念,在对象存储系统里,你不能直接打开/修改文件,只能先下载、修改,再上传文件

更多关于NAS与SAN的介绍见文章:传送门

4、对象存储架构


对象存储架构主要由对象存储设备(OSD)、元数据服务器(MDS)、对象存储系统的客户端(Client)三部分组成

在这里插入图片描述

对象存储设备(OSD)呈现出来的是一个个桶(Bucket),你可以往桶里面放对象(Object)

4.1、对象(Object)


对象(Object)是系统中数据存储的基本单位,一个对象实际上就是文件的数据和一组属性信息(MetaData)的组合

在传统的存储系统中用文件或块作为基本的存储单位,块设备要记录每个存储数据块在设备上的位置,而对象维护自己的属性,从而简化了存储系统的管理任务,增加了灵活性

对象的大小可以不同,可以包含各种数据结构,如文件、数据库表等。在存储设备中,所有对象都有一个唯一标识,OSD通过对象标识访问该对象

对象由三个部分组成:Key、Value、Metadata

在这里插入图片描述

  • Key

    Key即为对象的全局唯一标识,可以理解为文件名(路径),主要用于检索对象,服务器和用户不需要知道数据的物理地址,也能通过它找到对象。这种方法极大地简化了数据存储。Key类似一个URL地址,如果该对象被设置为“公开”,所有互联网用户都可以通过这个地址访问它

  • Value

    Value即为数据本身

  • Metadata

    Metadata为元数据,它类似对象(数据)的标签(属性),可以是对象的各种描述信息。例如一张人物图片,它的元数据可以是姓名、性别、年龄、拍摄地点、拍摄时间等。在传统的文件存储里,这类信息属于文件本身,和文件一起存储。而对象存储中,元数据是独立出来的,不在数据内部封装

4.2、对象存储设备(OSD)


每个OSD都是一个智能设备,具有自己的存储介质、处理器、内存以及网络系统等,负责管理本地的Object,是对象存储系统的核心

OSD同块设备的不同不在于存储介质,而在于两者提供的访问接口。OSD的主要功能包括数据存储和安全访问

OSD提供三个主要功能:

  • 数据存储

    OSD管理对象数据,并将它们放置在标准的磁盘系统上,OSD不提供块接口访问方式,Client请求数据时用对象ID、偏移进行数据读写

  • 智能分布

    OSD用其自身的CPU和内存优化数据分布,并支持数据的预取。由于OSD可以智能地支持对象的预取,从而可以优化磁盘的性能

  • 管理每个对象元数据

    OSD管理存储在其上对象的元数据,该元数据与传统的INode元数据相似,通常包括对象的数据块和对象的长度。而在传统的NAS系统中,这些元数据是由文件服务器维护的,对象存储架构将系统中主要的元数据管理工作由OSD来完成,降低了Client的开销

4.3、元数据服务器(MDS)


MDS控制Client与OSD对象的交互,为客户端提供元数据,主要是文件的逻辑视图,包括文件与目录的组织关系、每个文件所对应的OSD等。主要提供以下几个功能:

  • 对象存储访问

    MDS构造、管理描述每个文件分布的视图,允许Client直接访问对象。MDS为Client提供访问该文件所含对象的能力,OSD在接收到每个请求时将先验证该能力,然后才可以访问

  • 文件和目录访问管理

    MDS在存储系统上构建一个文件结构,包括限额控制、目录和文件的创建和删除、访问控制等

  • Client Cache一致性

    为了提高Client性能,在对象存储系统设计时通常支持Client方的Cache。由于引入Client方的Cache,带来了Cache一致性问题,MDS支持基于Client的文件Cache,当Cache的文件发生改变时,将通知Client刷新Cache,从而防止Cache不一致引发的问题

4.4、对象存储系统的客户端(Client)


为了有效支持Client支持访问OSD上的对象,需要在计算节点实现对象存储系统的Client。现有的应用对数据的访问大部分都是通过POSIX文件方式进行的,对象存储系统提供给用户的也是标准的POSIX文件访问接口。接口具有和通用文件系统相同的访问方式,同时为了提高性能,也具有对数据的Cache功能和文件的条带功能。同时,文件系统必须维护不同客户端上Cache的一致性,保证文件系统的数据一致

文件系统读访问流程:

  • 客户端应用发出读请求
  • 文件系统向元数据服务器发送请求,获取要读取的数据所在的OSD
  • 然后直接向每个OSD发送数据读取请求
  • OSD得到请求以后,判断要读取的Object,并根据此Object要求的认证方式,对客户端- 进行认证,如果此客户端得到授权,则将Object的数据返回给客户端
  • 文件系统收到OSD返回的数据以后,读操作完成

5、对象存储的特性


  • 容量无限大、灵活可扩展

    对象存储的所有业务、存储节点采用分布式集群方式工作,各功能节点集群都可以独立扩容,且扩容过程中业务零中断。从理论上来说,某个对象存储系统或单个桶(Bucket),并没有总数据容量和对象数量的限制

    对象存储对外提供更抽象的对象接口,而不是SCSI或文件接口。与SAN存储以逻辑扇区为单位的较细粒度的固定IO(512B~4KB)不同,对象存储IO粒度更有弹性,支持几个字节(B)到数万亿字节(TB)范围内的任意对象大小,使得业务可根据需要灵活的分割数据

    对象存储以对象ID为基础,扁平化的管理所有对象和桶,根据对象ID便可直接访问数据,解决了NAS复杂的目录树结构在海量数据情况下的数据查找耗时长的问题,这使得对象存储具备极强的扩展性,能够轻松实现单一命名空间内支持百亿级文件的存储

  • 数据使用方便,安全可靠

    用户只需一个凭证(Key),便可以访问(HTTP)指定桶(Bucket)中的所有数据(对象)。大部分云厂商都有自己的图形化界面客户端工具,用户存取数据就像使用网盘一样

    对象存储采用了分布式架构,对数据进行多设备冗余存储(至少三个以上节点),数据分片存储在不同硬盘上,实现了异地容灾和资源隔离

    数据访问方面,所有的桶和对象都有ACL等访问控制策略,所有的连接都支持SSL加密,OBS系统会对访问用户进行身份鉴权

  • 基于策略的自动化管理,用户成本低

    由于云环境中的数据往往是动态、快速增长的,所以基于策略的自动化将变得非常重要。对象存储支持从应用角度基于业务需求设置对象/容器的属性(元数据)策略,如数据保护级别,保留期限,合规状况,远程复制的份数等。这使得对象存储具备云的自服务特征同时,有效的降低运维管理的成本,使得客户在存储容量从TB增长到ZB时,运维管理成本不会随之飙升

  • 基于SaaS模式的多租户技术

    多租户技术是实现如何在多用户环境下共用相同的系统或程序组件,并且可确保各用户间数据的隔离性。多租户特性可以使用同一种架构,同一套系统为不同用户和应用提供存储服务,并分别为这些用户和应用设置数据保护、数据存储策略,并确保这些数据之间相互隔离

6、对象存储的应用场景


  • 图片和音视频等应用的海量存储

    对象存储可用于图片、音视频、日志等海量文件的存储。各种终端设备、Web网站程序、移动应用可以直接向对象存储写入或读取数据

  • 网页或移动应用的静态和动态资源分离

    利用海量互联网带宽,对象存储可以实现海量数据的互联网并发下载

  • 云端数据处理

    上传文件到对象存储后,可以配合媒体处理服务和图片处理服务进行云端的数据处理

  • 数据迁移

    数据快速、安全地迁移至对象存储,帮助客户降低存储成本,提高运维效率

  • 容灾备份

    对象存储不仅支持同城容灾,还支持跨区域异地容灾,防止用户数据丢失,业务长时间中断

7、国内常见的对象存储产品


  • 阿里云

    阿里云对象存储(Object Storage Service,OSS)是一款海量、安全、低成本、高可靠的云存储服务,可提供99.9999999999%(12个9)的数据持久性,99.995%的数据可用性。多种存储类型供选择,全面优化存储成本

    官网:https://help.aliyun.com/zh/oss/

  • 腾讯云

    腾讯云对象存储(Cloud Object Storage,COS)是腾讯云提供的一种存储海量文件的分布式存储服务,具有高扩展性、低成本、可靠安全等优点。通过控制台、API、SDK和工具等多样化方式,用户可简单、快速地接入COS,进行多格式文件的上传、下载和管理,实现海量数据存储和管理

    官网:https://cloud.tencent.com/document/product/436

  • 华为云

    华为云对象存储服务(Object Storage Service,OBS)提供海量、安全、高可靠、低成本的数据存储能力,可供用户存储任意类型和大小的数据。适合企业备份/归档、视频点播、视频监控等多种数据存储场景

    官网:https://support.huaweicloud.com/obs/index.html


参考文章:
https://blog.csdn.net/zhanggqianglovec/article/details/104009464
https://zhuanlan.zhihu.com/p/555259241
https://zhuanlan.zhihu.com/p/166289089
https://blog.csdn.net/nihaoa50/article/details/88327178


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/132712.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

11. EPIC定时器

11. EPIC定时器 EPIT定时器简介EPIT定时器结构分析EPIT 定时器相关寄存器EPITx_CREPITx_SREPITx_LR 加载寄存器EPITx_CMPR 比较寄存器EPITx_CNR 计数寄存器 EPIT 配置步骤 例程代码编写bsp_epittimer.hbsp_epittimer.cmain.c EPIT定时器简介 EPIT定时器是增强的周期中断定时器…

人工智能基础_机器学习024_梯度下降进阶_L1正则可视化图形---人工智能工作笔记0064

然后我们就来用代码实现一下L1正则的可视化,我们来看看 首先导入 import numpy as np 数学计算 import matplotlib.pyplot as plt 画图用的 然后我们把L1正则的公式写出来 可以看到L1的正则 其实就是w1和w2的绝对值相加对吧 然后这里我们写一个公式: f(x,y) = |x|+|y| …

NL2SQL学习

在学习NL2SQL之前先要进行三W提问: 即what 是什么 ; why 为什么使用; how 如何使用 NL2SQL是什么? NL2SQL(NLP Natural Language To SQL)是自然语言处理的新兴研究热点,顾名思义&#xff0…

15 # 手写 throttle 节流方法

什么是节流 节流是限制事件触发的频率,当持续触发事件时,在一定时间内只执行一次事件,这个效果跟英雄联盟里的闪现技能释放差不多。 函数防抖关注一定时间连续触发的事件只在最后执行一次,而函数节流侧重于一段时间内只执行一次…

【基础算法模板梳理】再也不想学算法了!(待更新)

目录 1、【二分】 (1)rmid —— 大于等于某数的最小值 (2)lmid —— 小于等于某数的最大值 2、【前缀和】 (1)一维前缀和 (2)二维前缀和 3、【差分】 (1&#x…

Mac代码文本编辑器Sublime Text 4

Sublime Text 4 for Mac拥有快速响应的功能,可以快速加载文件和执行命令,并提供多种语言支持,包括C 、Java、Python、HTML、CSS等。此外,该编辑器还支持LaTeX、Markdown、JSON、XML等技术领域。 Sublime Text 4 for Mac的插件丰富…

Ubuntu18.04.6共享文件夹的创建,以及在哪打开共享文件夹

目录 1、打开虚拟机的设置页面 2、设置共享文件夹 3、确认是否成功设置共享文件夹 4、完成后在进入到/mnt/hgfs ls查看,发现共享文件夹已经出现可以使用 1、打开虚拟机的设置页面 两种方式: (1)直接点击“编辑虚拟机设置” …

YOLO目标检测——海洋目标检测数据集下载分享【含对应voc、coco和yolo三种格式标签】

实际项目应用:海洋监管、海洋资源开发、海洋科学研究数据集说明:海洋目标检测数据集,真实场景的高质量图片数据,数据场景丰富,含有“金属”、“未知”、“橡胶”、“平台”、“塑料”、“木材”、“布”、“纸张”、“…

SAP S4后的一些注意点(一)(更新中)

SAP 此外,我们必须确保 P10 中所有新的 Unicore 代码都是云就绪的。因此,在 ATC 中增加了一项新的检查(自定义),以证明代码的云就绪性。此外,我们还在 ADT 中安装了一个名为 ABAP Cleaner 的新插件&#xf…

初探SVG

SVG,可缩放矢量图形(Scalable Vector Graphics)。使用XML格式定义图像。SVG有以下优点:1)可被非常多的工具读取和修改;2)比JPEG和GIF尺寸更小,可压缩性更强;3&#xff09…

多门店民宿预定系统酒店预订管理系统源码/公寓/农家乐小程序源码

技术栈: thinkphpuniappmysql 支持H5APP小程序 主要功能介绍: 在线预订 支持在线支付或到店付,支持配置免费取消订单时长,支持到店付保留时长设置 房间搜索 支持按日期搜索房间状态,支持按日期区间搜索房间状态…

置换环算法

参考该博客大佬的讲解 置换环 - TTS-S - 博客园 (cnblogs.com) 置换环:一般用于解决数组排序元素间所需最小交换次数这类问题。 置换环思想:置换环是将每个元素指向其应在的位置,最终相连成一个环(若元素就在其应在的位置,则自身…

乡村振兴 品牌引领 “盘锦碱地柿子”亮相第二十届中国国际农产品交易会

2023年11月9日,为期4天的第二十届中国国际农产品交易会在山东青岛成功举办。本次大会以“奋进新征程强农促振兴”为主题。农交会是经党中央、国务院批准,农业农村部主办的大型农业行业盛会,在宣传“三农”政策、展示农业农村发展成就、活跃农…

OSG练习:模仿Ventsim制作三维矿井智能通风系统

1、效果 2、计划内容 1) 三维场景的加载显示;已实现 2)矿井巷道建模及纹理;已实现 3)矿井基础数据采集及修正;已实现 4)通风网络解算算法;已实现 5)通风设备及设施模型制作;未实现 6)风流模拟效果 ;进行中 7)火灾模拟效果;未实现 8)巷道属性查看栏;未实现 9)…

【Linux网络】系统调优之时间同步,搭建内网时间同步服务器

目录 一、时间同步是什么 二、时间同步实验 pc1的chrony配置修改: pc2和pc3时间同步配置一样 关于时间调整再同步回来:ntpdate命令 最后,再总结一下(关于服务端口): 三、命令记录 一、时间同步是什…

[极客大挑战 2019]Upload 1

题目环境&#xff1a; 根据题目和环境可知此题目是一道文件上传漏洞 编写一句话木马脚本<?php eval($_POST[shell]);?>将脚本文件更改为jpg图片文件我这里是flag.jpg上传文件并burpsuite抓包Repeater重放 报错一句话木马里面有<?字符 换一种一句话木马继续编写木马…

【JAVA学习笔记】 68 - 网络——TCP编程、UDP编程

项目代码 https://github.com/yinhai1114/Java_Learning_Code/tree/main/IDEA_Chapter21/src 网络 一、网络相关概念 1.网络通讯 1.概念:两台设备之间通过网络实现数据传输 2.网络通信:将数据通过网络从一台设备传输到另一台设备 3. java.net包下提供了一系列的类或接口&a…

简单得令人尴尬的FSQ:“四舍五入”超越了VQ-VAE

©PaperWeekly 原创 作者 | 苏剑林 单位 | 月之暗面 研究方向 | NLP、神经网络 正如 “XXX is all you need” 一样&#xff0c;有不少论文都以“简单得令人尴尬”命名&#xff08;An Embarrassingly Simple XXX&#xff09;&#xff0c;但在笔者看来&#xff0c;这些论文…

Oracle(16)Managing Privileges

目录 一、基础知识 1、Managing Privileges管理权限 2、System Privileges 系统特权 3、System Privileges : Example系统权限&#xff1a;示例 4、Who Can Grant or Revoke? 谁可以授予或撤销权限&#xff1f; 5、The PUBLIC 6、SYSDBA and SYSOPER 7、Revoke with A…

3D模型人物换装系统

3D模型人物换装系统 介绍遇到的问题问题修复具体实现换装1.准备所有模型部位和模型骨骼部位准备材质准备模型根骨骼准备创建文件夹将上述模型拖成预制体创建一个动画状态机给他们附上待机动画 2.脚本驱动Mesh合并代码 UCombineSkinnedMgr.cs创建Mesh以及实例化对象的代码 UChar…
最新文章