精华内容
下载资源
问答
  • 对象存储(云存储)概述

    万次阅读 多人点赞 2019-03-08 17:54:09
    NAS与SAN概述1、NAS(Network Attached Storage)优点局限2、SAN(Storage Area Network and SAN Protocols)优点局限对象存储的特性1、优秀的扩展性2、基于策略的自动化管理3、多租户技术扩展知识:多租户技术介...

    三种存储形态

    在这里插入图片描述

    三种存储形态和存储架构示意图

    1、块存储

      块存储我们简单的理解就是一块一块的硬盘,直接挂载在主机上,在主机上我们能够看到的就是一块块的硬盘以及硬盘分区。从存储架构的角度而言,块存储又分为DAS存储(Direct-Attached Storage,直连式存储)和SAN存储(Storage Area Network,存储区域网络)。

    2、文件存储

      文件存储,我们指的是在文件系统上的存储,也就是主机操作系统中的文件系统。我们知道,文件系统中有分区,有文件夹,子文件夹,形成一个自上而下的文件结构;文件系统下的文件,用户可以通过操作系统中的应用程序进行打开、修改等操作,如打开word、编辑word。从架构上来说,文件存储提供一种NAS(Network Attached Storage,网络附属存储)架构,使得主机的文件系统不仅限于本地的文件系统,还可以连接基于局域网的共享文件系统。

    3、对象存储

      对象存储是面向对象/文件的、海量的互联网存储,它也可以直接被称为“云存储”。对象尽管是文件,它是已被封装的文件(编程中的对象就有封装性的特点),也就是说,在对象存储系统里,你不能直接打开/修改文件,但可以像ftp一样上传文件,下载文件等。另外对象存储没有像文件系统那样有一个很多层级的文件结构,而是只有一个“桶”(bucket)的概念(也就是存储空间),“桶”里面全部都是对象,是一种非常扁平化的存储方式。其最大的特点就是它的对象名称就是一个域名地址,一旦对象被设置为“公开”,所有网民都可以访问到它;它的拥有者还可以通过REST API的方式访问其中的对象。因此,对象存储最主流的使用场景,就是存储网站、移动app等互联网/移动互联网应用的静态内容(视频、图片、文件、软件安装包等等)。

    对象存储

    对象存储需求

      随着互联网,Web应用创建出数百亿的小文件;人们上传海量的照片、视频、音乐,Facebook每天都新增数十亿条内容,人们每天发送数千亿封电子邮件。据IDC统计未来在10年间数据将增长44倍,到2020年全球数据将增加到35ZB,其中80%是非结构化数据,且大部分是非活跃数据。

      面对如此庞大的数据量,仅具备PB级扩展能力的块存储(SAN)和文件存储(NAS)显得有些无能为力:通常块存储(SAN)的一个LUN容量仅数TB。单个文件系统最优性能情况下支持的文件数量通常只在百万级别。人们需要一种全新的架构的存储系统,这种存储系统需要具备极高的可扩展性,能够满足人们对存储容量TB到EB规模的扩展的需求。

      2006年Amazon发布AWS, S3 服务及其使用的REST、SOAP访问接口成为对象存储的事实标准。Amazon S3成功为对象存储注入云服务基因。

    对象存储含义

      存储局域网(SAN)和网络附加存储(NAS)是目前两种主流网络存储架构,而对象存储(Object-based Storage)是一种新的网络存储架构,基于对象存储技术的设备就是对象存储设备(Object-based Storage Device)简称OSD。总体上来讲,对象存储(Object-Based Storage, OBS)综合了NAS和SAN的优点,同时具有SAN的高速直接访问和NAS的分布式数据共享等优势,提供了具有高性能、高可靠性、跨平台以及安全的数据共享的存储体系结构。
      对象存储核心是将数据通路(数据读或写)和控制通路(元数据)分离,并且基于对象存储设备(OSD)构建存储系统,每个对象存储设备具有一定的智能,能够自动管理其上的数据分布。

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

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

    对象存储与传统网络存储的区别

      对象存储在很多重要方面与SAN和NAS迥然不同,对存储管理员而言最显著的区别在于对象存储没有LUNs,卷以及RAID等要素。对象数据不是存储在固定的块,而是在大小可变的“容器”里。鉴于元数据(metadata)和数据本身可通过传统数据访问方法进行访问,对象存储允许数据被直接访问。此外,支持对象级和命令级的安全策略设置。


    扩展知识:NAS与SAN概述

    1、NAS(Network Attached Storage)

      NAS(Network Attached Storage:网络附属存储)按字面简单说就是连接在网络上,具备资料存储功能的装置,因此也称为“网络存储器”。它是一种专用数据存储服务器。它以数据为中心,将存储设备与服务器彻底分离,集中管理数据,从而释放带宽、提高性能、降低总拥有成本、保护投资。其成本远远低于使用服务器存储,而效率却远远高于后者。
      它采用NFS或CIFS命令集访问数据,以文件为传输协议,通过TCP/IP实现网络化存储,可扩展性好、价格便宜、用户易管理,如目前在集群计算中应用较多的NFS文件系统,但由于NAS的协议开销高、带宽低、延迟大,不利于在高性能集群中应用。

    优点

      NAS产品是真正即插即用的产品。NAS设备一般支持多计算机平台,用户通过网络支持协议可进入相同的文档,因而NAS设备无需改造即可用于混合Unix/Windows NT局域网内。   
      NAS设备的物理位置同样是灵活的。它们可放置在工作组内,靠近数据中心的应用服务器,或者也可放在其他地点,通过物理链路与网络连接起来。无需应用服务器的干预,NAS设备允许用户在网络上存取数据,这样既可减小CPU的开销,也能显著改善网络的性能。

    局限

      NAS没有解决与文件服务器相关的一个关键性问题,即备份过程中的带宽消耗。与将备份数据流从LAN中转移出去的存储区域网(SAN)不同,NAS仍使用网络进行备份和恢复。NAS 的一个缺点是它将存储事务由并行SCSI连接转移到了网络上。这就是说LAN除了必须处理正常的最终用户传输流外,还必须处理包括备份操作的存储磁盘请求。
      由于存储数据通过普通数据网络传输,因此易受网络上其它流量的影响。当网络上有其它大数据流量时会严重影响系统性能;由于存储数据通过普通数据网络传输,因此容易产生数据泄漏等安全问题;
      存储只能以文件方式访问,而不能像普通文件系统一样直接访问物理数据块,因此会在某些情况下严重影响系统效率,比如大型数据库就不能使用NAS。

    2、SAN(Storage Area Network and SAN Protocols)

      存储区域网络(Storage Area Network and SAN Protocols,简写SAN,即存储区域网络及其协议)是一种高速网络或子网络,提供在计算机与存储系统之间的数据传输。存储设备是指一台或多台用以存储计算机数据的磁盘设备,通常指磁盘阵列。存储区域网络能够使用多种技术,这就使得系统间的数据备份、操作、文件转移和数据复制很容易实现重定向。

    优点

      SAN提供了一种与现有LAN连接的简易方法,并且通过同一物理通道支持广泛使用的SCSI和IP协议。SAN不受现今主流的、基于SCSI存储结构的布局限制。特别重要的是,随着存储容量的爆炸性增长,SAN允许企业独立地增加它们的存储容量。 SAN的结构允许任何服务器连接到任何存储阵列,这样不管数据置放在那里,服务器都可直接存取所需的数据。因为采用了光纤接口,SAN还具有更高的带宽。 因为SAN解决方案是从基本功能剥离出存储功能,所以运行备份操作就无需考虑它们对网络总体性能的影响。SAN方案也使得管理及集中控制实现简化,特别是对于全部存储设备都集群在一起的时候。最后一点,光纤接口提供了10公里的连接长度,这使得实现物理上分离的、不在机房的存储变得非常容易。

    局限

      成本和复杂性,特别是在光纤信道中这些缺陷尤其明显。使用光纤信道的情况下,合理的成本大约是1千兆或者两千兆大概需要五万到六万美金。从另一个角度来看,虽然新推出的基于iSCSI的SAN解决方案大约只需要两万到三万美金,但是其性能却无法和光纤信道相比较。在价格上的差别主要是由于iSCSI技术使用的是现在已经大量生产的吉比特以太网硬件,而光纤通道技术要求特定的价格昂贵的设备。

    对象存储的特性

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

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

    在这里插入图片描述

    对象存储数据组织示意图

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

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

      在重复数据删除,绿色节能等特性基础上,为了更好的满足海量数据存储和公众云服务需求,对象存储系统还包括如下一些关键特性:

    1、优秀的扩展性

      扁平化的数据结构允许对象存储容量从TB级扩展到EB级,管理数十个到百亿个存储对象,支持从数字节(Byte)到数万亿字节(TB)范围内的任意大小对象,解决了文件系统复杂的iNode的机制带来的扩展性瓶颈,并使得对象存储无需像SAN存储那样管理数量庞大的逻辑单元号(LUN)。对象存储系统通常在一个横向扩展(或网格硬件)架构上构建一个全局的命名空间,这使得对象存储非常适用在云计算环境中使用。某些对象存储系统还可支持升级、扩容过程中业务零中断。

    2、基于策略的自动化管理

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

    3、多租户技术

      多租户特性可以使用同一种架构,同一套系统为不同用户和应用提供存储服务,并分别为这些用户和应用设置数据保护、数据存储策略,并确保这些数据之间相互隔离。

    扩展知识:多租户技术介绍

    多租户架构浅析

      多租户技术(英语:multi-tenancy technology)或称多重租赁技术,是一种软件架构技术,它是在探讨与实现如何于多用户的环境下共用相同的系统或程序组件,并且仍可确保各用户间数据的隔离性。

      云计算可以划分为以下几个层次的服务——IaaS、PaaS和SaaS,而今天我们今天讲的多租户架构就是一种常见的 SaaS 软件架构模式。多租户技术是实现如何在多用户环境下(此处的多用户一般是面向企业用户)共用相同的系统或程序组件,并且可确保各用户间数据的隔离性。 简单讲:在一台服务器上运行单个应用实例,它为多个租户(客户)提供服务。从定义中我们可以理解:多租户是一种架构,目的是为了让多用户环境下使用同一套程序,且保证用户间数据隔离。那么重点就很浅显易懂了,多租户的重点就是同一套程序下实现多用户数据的隔离。

    对象存储结构

    Alt

    对象存储结构

      对象存储结构由 对象、对象存储设备、元数据服务器、对象存储系统的客户端 四部分组成。

    1、对象(Object)

      对象(Object)是系统中数据存储的基本单位,一个对象实际上就是文件的数据和一组属性信息(Meta Data)的组合,每个对象是数据和数据属性集的综合体,数据属性可以根据应用的需求进行设置,包括数据分布、服务质量等。在传统的存储系统中用文件或块作为基本的存储单位,块设备要记录每个存储数据块在设备上的位置。对象维护自己的属性,从而简化了存储系统的管理任务,增加了灵活性。对象的大小可以不同,可以包含整个数据结构,如文件、数据库表项等。在存储设备中,所有对象都有一个对象标识,通过对象标识OSD命令访问该对象。通常有多种类型的对象,存储设备上的根对象标识存储设备和该设备的各种属性,组对象是存储设备上共享资源管理策略的对象集合等。

    在这里插入图片描述

    传统块存储和对象存储示意图

    在这里插入图片描述

    对象存储中对象(Object)的组成

    2、对象存储设备

      每个OSD都是一个智能设备,具有自己的存储介质、处理器、内存以及网络系统等,负责管理本地的Object,是对象存储系统的核心。OSD同块设备的不同不在于存储介质,而在于两者提供的访问接口。OSD的主要功能包括数据存储和安全访问。目前国际上通常采用刀片式结构实现对象存储设备。OSD提供三个主要功能:

    1. 数据存储。OSD管理对象数据,并将它们放置在标准的磁盘系统上,OSD不提供块接口访问方式,Client请求数据时用对象ID、偏移进行数据读写。
    2. 智能分布。OSD用其自身的CPU和内存优化数据分布,并支持数据的预取。由于OSD可以智能地支持对象的预取,从而可以优化磁盘的性能。
    3. 每个对象元数据的管理。OSD管理存储在其上对象的元数据,该元数据与传统的inode元数据相似,通常包括对象的数据块和对象的长度。而在传统的NAS系统中,这些元数据是由文件服务器维护的,对象存储架构将系统中主要的元数据管理工作由OSD来完成,降低了Client的开销。

    在这里插入图片描述

    传统模型与OSD模型示意

    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刷新Cache,从而防止Cache不一致引发的问题。

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

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

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

    对象存储应用场景

      通常,无论是虚拟主机还是独立云主机,作为个人网站都会把所有的图片都存储在空间里,这样有一下几个问题:

    1. 随着网站的运行,图片越来越多,会导致主机的空间使用越来越多;
    2. 图片的增多会导致网站页面打开速度越来越慢,因为越来越多的图片需要从服务器上下载到本地浏览器的缓存目录,这样需要越来越多的宽带,而虚拟主机或云主机通常的宽带都是限定的;
    3. 网站迁移的成本越来越大。

      如果使用了云存储,这样可以把图片存储在第三方,所有的图片都不会再消耗虚拟主机的宽带资源和磁盘资源,保证网站访问速度不受影响,迁移网站只需要迁移数据库和基本程序文件即可,基本上几十M就可以打包所有的文件,所以云存储的好处显而易见。

    • 应用场景一:

      如果您的网站有大量的图片,如果都存储在本地,需要大量的磁盘空间,虽然现在磁盘空间的价格已经很低,但是用户访问却需要大量的宽带,超过10G的图片,主机宽带10M是不够的,而10M的云主机每年的价格8000左右,随着年限的增长,云主机需要的硬件和宽带需求会越来越多,那么网站基本成本支出也会越来越搞,如果把所有的图片都存储在云存储里,每年主机成本可以降低2/3,甚至更多。

    • 应用场景二:

      视频存储的问题,可以选择把视频存储在专门的视频网站,比如优酷,腾讯视频,爱奇艺等,但是这样的问题是,所有的视频都会被视频网站加上播放前的贴片广告,这样其实非常不友好,给客户看的视频,还要先看几十秒甚至2分钟广告,这有点尴尬了,但是如果放网站上,会出现磁盘和宽带不足的情况,如果上传到云存储上,设置好伪静态和防止BT软件下载,这样就非常好了。

    • 应用场景三:
        电商、互联网金融、在线教育等行业的Web和移动应用,架构里有数据库、应用服务器、负载均衡的应用,另外还需要存储比如商品图片,互联网金融行业的用户证件照,在线交易视频等文件等,需要存储,此前的做法是搭建文件服务器,文件服务器的扩展性、并发性都有问题,这时候就需要用到对象存储。

    • 应用场景四:
        企业网盘,其后端就是对象存储。企业遍布各地的各个部门文档都在用企业网盘,分享和管理文件,企业网盘可以非常容易地分享给特定的个人,群组或部门。企业网盘是单独的市场,与个人网盘有很大区别,企业对访问权限认证的管理更细致,数据管理要求更高。

    还有很多的应用场景,此处不一一列举。

    • 文章是个人知识点整理总结,如有错误和不足之处欢迎指正。
    • 如有疑问、或希望与笔者探讨技术问题(包括但不限于本章内容),欢迎添加笔者微信(o815441)。请备注“探讨技术问题”。欢迎交流、一起进步。

    http://www.chinastor.com/a/jishu/OSD.html
    https://blog.csdn.net/liuaigui/article/details/17973039
    https://www.wopus.org/tools/4868.html
    http://storage.chinabyte.com/145/12496645.shtml

    展开全文
  • 对象存储简介

    千次阅读 多人点赞 2020-06-20 14:13:31
    对象存储简介 一 导读 计算机系统是图灵机的高效实现,即根据输入数据的规则得到输出数据。现在的计算机系统由CPU、内存、总线、外设(如网络设备、存储设备)等组成,其中,存储是非常重要的一部分。 近年来,...

    一 导读

    如今云计算、大数据发展得如火如荼,PB容量单位早已经进入国内企业存储采购单,DT时代即将来临。Ceph对象存储的优秀特性吸引越来越多开发者,本文对Ceph对象存储进行架构详解。

    二 对象存储

     

    文件存储,通常指的是遵循POSIX协议,同时具备并行化访问和冗余机制的存储方式,现在也将非POSIX协议的GFS、HDFS、FastDFS等归为文件存储。同时文件存储引进了目录,十分类似我们平时Windows的文件结构,当单个目录文件数量过大时,文件查找效率会急剧下降。

    对象存储是在文件存储的基础上发展而来的,对象存储抛弃了文件存储的命名空间、文件目录等结构。对象存储相比文件存储更加简洁,抛弃了命名空间、文件目录等结构,更加扁平化,在使用、扩展、维护方面更加符合大众化思想。操作主体由文件变为对象,对象的操作主要以Put、Get和Delete为主,十分类似Java的HashMap,只不过对象存储中的对象不支持修改。总体来说,对象存储是为了克服文件存储的缺点,并发挥文件存储的优点而出现的。但对于存储内容而言,文件存储和对象存储并无本质区别,只是存储方式发生了变化。

    三 Ceph

    Ceph是一个去中心化、强一致性、易扩展性的分布式对象存储系统,并消除了对系统单一中心节点的依赖,从而实现了真正的无中心结构的设计思想,这也是其他分布式存储系统不能比的。目前业界自研商业存储例如阿里云存储、华为云存储、七牛云存储等或多或少都借鉴Ceph的设计思想和物理架构。

    3.1 设计思想

    Ceph最初针对的应用场景,就是大规模的、分布式的存储系统。所谓大规模和分布式,至少是能够承载PB级别的数据和成千上万的存储节点组成的存储集群

    如今云计算、大数据发展得如火如荼,PB容量单位早已经进入国内企业存储采购单,DT时代即将来临。Ceph起源于2004年,那是一个商用处理器以单核为主流,常见硬盘容量只有几十GB的年代。当时SSD也没有大规模商用,正因如此,Ceph之前版本对SSD的支持不是很好,发挥不了SSD的性能。如今Ceph高性能面临的最大挑战正是这些历史原因,目前社区和业界正在逐步解决这些性能上的限制。Ceph的技术特性,总体表现在集群可靠性、集群扩展性、数据安全性、接口统一性4个方面。

    3.1.1 集群可靠性

    所谓可靠性,首先从用户角度来说数据是第一位的,要尽可能保证数据不会丢失。其次,就是数据写入过程中的可靠性,在用户将数据写入Ceph存储系统的过程中,不会因为意外情况出现而造成数据丢失。最后,就是降低不可控物理因素的可靠性,避免因为机器断电等不可控物理因素而产生的数据丢失。

    3.1.2 集群扩展性

    这里的可扩展概念是广义的,既包括系统规模和存储容量的可扩展,也包括随着系统节点数增加的聚合数据访问带宽的线性扩展。

    3.1.3 数据安全性

    所谓数据安全性,首先要保证由于服务器死机或者是偶然停电等自然因素的产生,数据不会丢失,并且支持数据自动恢复,自动重平衡等。总体而言,这一特性既保证了系统的高度可靠和数据绝对安全,又保证了在系统规模扩大之后,其运维难度仍能保持在一个相对较低的水平。

    3.1.4 接口统一性

    所谓接口统一性,指的是Ceph可以同时支持3种存储,即块存储、对象存储和文件存储,Ceph支持市面上所有流行的存储类型。严格来说,Ceph只支持对象存储,块存储和文件存储也是借助对象存储来实现的。

    根据Ceph的技术特性,可以总结出Ceph的设计思路,概述为两点:充分发挥存储本身计算能力和去除所有的中心点。充分发挥存储设备自身的计算能力:其实就是采用廉价的设备和具有计算能力的设备(最简单的例子就是普通的服务器)作为存储系统的存储节点。当前阶段只是将这些服务器当做功能简单的存储节点,从而产生资源过度浪费(如同虚拟化的思想一样,都是为了避免资源浪费)。而如果充分发挥节点上的计算能力,则可以实现前面提出的技术特性。这一点成为了Ceph系统设计的核心思想。去除所有的中心点:如果系统中出现中心点,一方面会引入单点故障,另一方面也必然面临着当系统规模扩大时的可扩展性和性能瓶颈。除此之外,如果中心点出现在数据访问的关键路径上,也必然导致数据访问的延迟增大。虽然在大多数存储软件实践中,单点故障点和性能瓶颈的问题可以通过为中心点增加HA或备份加以缓解,但Ceph系统最终采用CRUSH、Hash环等方法更彻底地解决了这个问题。

    3.2 架构设计

    Ceph底层核心是RADOS,整体架构如下图。

    3.2.1 RADOS

    RADOS具备自我修复等特性,提供了一个可靠、自动、智能的分布式存储,是Ceph存储集群的基础。Ceph中的一切都以对象的形式存储,而RADOS就负责存储这些对象,而不考虑它们的数据类型。RADOS确保数据一致性和可靠性,对于数据一致性,它执行数据复制、故障检测和恢复,还包括数据在集群节点间的Recovery。

    OSD,数据存储单元,主要功能包括数据存储、数据复制、数据恢复、数据回补、数据平衡等功能,并将一些相关数据提供给Monitor,例如OSD心跳等。一般情况下,一块磁盘对于一个OSD。对于整个存储集群,需要多个OSD,只有当OSD数量足够多时,Ceph的虚随机算法才能实现数据均匀分布。

    Monitor,监视器,主要功能是维护整个集群健康状态,提供一致性决策。Ceph需要多个Monitor组成小集群,它们通过Paxos同步数据,用来保存OSD的元数据。Monitor同时维护着Ceph集群中的各种Map图,比如OSD Map、PG Map和CRUSH Map,这些Map统称为Cluster Map,Cluster Map是RADOS的关键数据结构,管理集群中的所有成员、关系、属性等信息以及数据的分发,比如当用户需要存储数据到Ceph集群时,OSD需要先通过Monitor获取最新的Map图,然后根据Map图和ObjectId等计算出数据最终存储的位置。

    3.2.2 LIBRADOS

    对RADOS进行抽象和封装,简化访问RADOS的一种方法,并向上层提供API,以便直接基于RADOS进行应用开发,API目前支持PHP、Ruby、Java、Python、C和C++语言。它提供了Ceph 存储集群的一个本地接口RADOS ,并且是其他服务(如RBD 、RGW)的基础,以及为Ceph FS提供POSIX接口。LIBRADOS API支持直接访问RADOS ,使得开发者能够创建自己的接口来访问Ceph集群存储。

    3.2.3 RBD

    Ceph块设备,对外提供块存储。可以像磁盘一样被映射、格式化已经挂载到服务器上,支持快照,常用于虚拟化场景。

    3.2.4 RGW

    提供与Amazon S3和Swift兼容的RESTful API的网关,以供相应的对象存储应用开发使用。RGW提供的API抽象层次更高,但在类S3或Swift LIBRADOS的管理比便捷,因此,开发者应针对自己的需求选择使用。

    3.2.5 Ceph FS

    提供了一个任意大小且兼容POSlX的分布式文件系统(类似TFS、HDFS、FastDFS等文件系统),Ceph FS依赖元数据服务Ceph MDS来跟踪文件层次结构。

    3.3 智能分布

    数据分布是分布式存储系统的一个重要部分,数据分布算法至少要考虑以下3个因素。故障隔离:同份数据的不同副本分布在不同的故障域,降低数据损坏的风险。负载均衡:数据能够均匀地分布在磁盘容量不等的存储节点,避免部分节点空闲,部分节点超载,从而影响系统性能。数据迁移:控制节点加入离开时引起的数据迁移量。当节点离开时,最优的数据迁移是只有离线节点上的数据被迁移到其他节点,而正常工作的节点的数据不会发生迁移。

    对象存储中一致性Hash和CRUSH算法是使用比较多的数据分布算法。在Aamzon的Dyanmo键值存储中采用一致性Hash算法,并且对它做了很多优化。OpenStack的Swift对象存储中也使用了一致性Hash算法。

    CRUSH(Controlled Replication Under Scalable Hashing)是一种基于伪随机控制数据分布、复制的算法。Ceph是为大规模分布式存储系统(PB级的数据和成百上千台存储设备)而设计的,在大规模的存储系统里,必须考虑数据的平衡分布和负载(提高资源利用率)、最大化系统的性能,以及系统的扩展和硬件容错等。CRUSH就是为解决以上问题而设计的。在Ceph集群里,CRUSH只需要一个简洁而层次清晰的设备描述,包括存储集群和副本放置策略,就可以有效地把数据对象映射到存储设备上,且这个过程是完全分布式的,在集群系统中的任何一方都可以独立计算任何对象的位置。另外,大型系统存储结构是动态变化的(存储节点的扩展或者缩容、硬件故障等), CRUSH能够处理存储设备的变更(添加或删除),并最小化由于存储设备的变更而导致的数据迁移。

    简单来说,CRUSH算法的核心意义在于,在存储策略不变、PG和OSD数量足够多的情况下,均匀选择一个PG。因为PG管理存储集群所有的OSD,因此均匀选择一个PG,等价于选择一组OSD。

    3.3.1 数据寻址

    分布式存储系统,必须要能够解决两个最基本的问题,即现在应该把数据写到什么地方与之前把数据写到什么地方了,因此会涉及数据如何寻址的问题。Ceph数据寻址要经历以下三个阶段:

    3.3.1 File -> Object映射

    Ceph条带化之后,将获得N个带有唯一OID的Object。OID是进行线性映射生成的,即由File的元数据INO以及Ceph条带化产生的Object序号ONO连缀而成,举例而言,如果1个ID为Filename的File被切分为3个Object,则Object序号依次为0、1和2,最终得到的OID依次为Filename0、Filename1和Filename2。

    3.3.2 Object -> PG映射

    在File被映射为一个或者多个Object之后,接下来就需要将每个Object独立地映射到PG中,这个映射过程也很简单,其计算公式PG ID=Hash(OID)&Mask,其中Mask=PG总数-1,PG总数需要设置为2的整数幂。当有足够数量的Object,PG被选中的概率近似均匀。

    3.3.3 PG -> OSD映射

    在得到PG ID之后,就需要将PG映射到数据实际存储单元OSD上,其计算过程CRUSH(PG ID)=(OSD1,OSD2,OSD3)。CRUSH算法的结果是得到一组OSD,在PG数量、OSD数量、以及存储策略不变的情况下,其结果一般不会变化。

    3.4 冗余方式

    数据冗余能在分布式系统发生故障时起到恢复数据的作用,也是分布式系统可靠性的常用手段。数据冗余方式有两种,一种是多副本,一种是纠删码。Ceph因为能同时支持多副本与纠删码,因此是多数商业存储公司首选的技术方案。

    3.4.1 多副本

    多副本是分布式系统常见的冗余方式,简单易用,可靠性极高。多副本相对纠删码更加成熟、稳定,也是大部分中间件冗余数据的常见手段,例如Kafka分区副本。缺点是磁盘利用率低,在N副本模式下,磁盘利用率只有1/N。在分布式存储中,除了可靠性要考虑之外,磁盘利用率也是要考虑的一个指标。

    3.4.2 纠删码

    纠删码主要是通过利用算法将原始的数据进行编码得到校验,并将数据和校验一并存储起来,以达到容错的目的。其基本思想是将K块原始数据元素通过一定的编码计算,得到M块校验元素。当其中任意m块元素出错(包括数据和校验出错),均可以通过对应的重构算法恢复出原来的K块数据。生成校验的过程被成为编码,恢复丢失数据块的过程被称为解码。

    纠删码能够基于更少的冗余设备,提供和多副本近似的可靠性,但是纠删码也带来了计算量和网络负载的额外负担,磁盘利用率越高,就需要花费更多的计算量和网络负载。在对象存储中,需要在磁盘利用率和可靠性之间做一个平衡。在纠删码模式下,磁盘利用率为K/(K+M),远比多副本1/N高。一般而言,纠删码模式下,磁盘利用率推荐在75%(K=9,M=3)较为合适,磁盘利用率更高的话,可靠性会进一步降低,进而影响对象存储的稳定性。可以归纳为:纠删码是一种用计算换存储空间的存储方式,相比多副本能节省非常多的磁盘空间,但是在数据恢复的时候代价比多副本大得多。

    在对象存储实际生产环境中,对于热数据会使用多副本策略来冗余,冷数据使用纠删码来冗余。

    四 结语

    存储方式没有好坏之分,只有适合与不适合之分,满足当前业务系统需求的存储方式就是最好的存储方式。并不能说Ceph对象存储就一定比TFS、HDFS、FastDFS优秀。这就好像现在机械硬盘已经存在这么多年了,磁带仍然没有消失的原因,因为它用一种最廉价的方式解决了大容量离线数据的存储问题,尽管它是很慢的。

    展开全文
  • 计算机存储的发展(块存储,文件存储,对象存储

    万次阅读 多人点赞 2018-09-15 15:04:08
    对象存储 1、对象 2、对象存储设备 3、元数据服务器(Metadata Server,MDS) 4、对象存储系统的客户端Client 三者之间异同比较 参考文献 如果要实现一个计算机,那么这个计算机一定要有以下的三个部分构成:...

    如果要实现一个计算机,那么这个计算机一定要有以下的三个部分构成:计算、存储和网络。计算一般指的是CPU和内存的搭配,存储一般就是指硬盘了,网络指的是网卡的管理和配置。

    本篇文章,主要讲解有关块存储、文件存储、对象存储这三者之间的对比。每一种存储都有对应的实现方法。

    块存储

    块存储又有两种常见的形式,DAS和SAN。DAS即直接连接存储(Direct Attached Storage),SAN即存储区域网络(Storage Area Network)。

    DAS

    块存储是我们最常用的一种存储模式。比如个人PC上的硬盘,服务器上的硬盘,外置设备通过SCSI或者FC接口直接连接到电脑上的。

    这种存储方式有一种很大的缺陷,其存储性能瓶颈来自于自家PC电脑或者服务器的卡槽的多少。比如我们的笔记本一般只能装一个硬盘+SSD基本上已经没有位置再做扩展了。也就是DAS的性能瓶颈来自于主板的卡槽数量。很难做scale out扩展(即横向扩展)。

    这里写图片描述

    事实上,这种DAS存储模式,一般在中小型企业汇总应用十分广泛。它更依赖主机的操作系统来实现数据的IO读写、数据管理、数据备份等工作。

    但是这种存储模式也存在一定的缺点。比如可管理性差、弹性扩展能力弱,难以跟上IT发展趋势等问题。举例来讲,一台服务器/电脑只会配备固定容量的DAS存储,那么如果容量不够用,存储空间太小,就很难从内部着手实现弹性扩展(外部扩展容量也存在弊端),如果存储空间太大还会导致资源浪费,这一点在服务器领域尤为明显。

    补充知识点:SCSI接口是什么


    SCSI(Small Computer System Interface)小型计算机系统接口,一种用于计算机和智能设备之间(硬盘、软驱、光驱、打印机、扫描仪等)系统级接口的独立处理器标准。 SCSI是一种智能的通用接口标准。

    SCSI是一种计算机系统接口的标准

    SCSI是一种I/O技术

    SCSI规范了一种并行的I/O总线和相关的协议

    SCSI的数据传输方式是以块的方式进行的

    SAN

    对于用户来说,SAN好比是一块大磁盘,用户可以根据需要随意将SAN格式化成想要的文件系统来使用。SAN在网络中通过iSCSI(IPSAN)协议连接,属block及存储,但可扩展性较差。

    根据SAN的实现形式来看,其实是通过光交换机,将各块硬盘连接起来,然后通过ISCSI协议来传递数据。

    在我看来,其实是通过FC交换机解决了机器主板只有几个卡槽的问题,利用FC交换机,就仿佛实现了这样一种机制,即我们拥有一个无限卡槽的主板,上面都是接口,你可以通过这个接口插上你的硬盘。

    SAN是一个采用网状通道(简称FC)技术,通过FC交换机连接存储阵列和服务器主机,建立专用于数据存储的区域网络。

    我们可以从定义中看出,这是一个专用于企业级应用的存储方式。可以简单理解为一个在高度网络中,提供在计算机与存储系统之间的数据传输。
    这里写图片描述

    从理论上来讲,SAN支持数以百计的磁盘,提供了海量的存储空间,解决了大容量存储问题;从逻辑层面,这个海量空间可以按需要分成不同大小的LUN,再分配给服务器,也解决了只需要小容量存储的问题。

    可以说,SAN的出现,适应了信息化发展的大趋势,它将计算与存储分离,增强了存储扩张的弹性。毕竟如今联网设备越来越多,数据量越来越大,我们对存储需求也越来越强。SAN“拉帮结伙”的特性让存储弹性更大,更方便扩展容量。

    同时,介于独特的存储结构,SAN需要通过光纤交换机连接存储阵列和服务器,建立专用数据存储的网络。

    文件存储

    再说说文件集存储,典型代表–NAS。对于用户来说,NAS好比是一个共享文件夹,文件系统已经存在,用户可以直接将自己的数据存放在NAS上。NAS以文件为传输协议,开销很大,不利于在高性能集群中使用。

    NAS是一种通过网络达成存储目的的设备,NAS传输数据依靠的是TCP/IP网络协议栈,这是NAS存储于上文的DAS和SAN存储最大的不同之处。

    NAS是标准的文件级存储方法,采用网络技术(TCP/IP、ATM、FDDI),通过网络交换机连接存储系统和服务器主机来建立存储私网。其主要特征是把存储设备、网络接口和以太网技术集成在一起,直接通过以太网网络存取数据。能够快速实现部门级存储容量需求与文件传输需求。

    这里写图片描述

    实现文件存储的方式有很多,其中比较常用的有以下的几种,并且经常运用在企业运用中。ftp协议、nfs协议、samba协议等。

    比较下块存储和文件存储的异同,举个例子而言,有三块硬盘,使用光交换机连接之后,把光交换机和服务器进行直接连接,服务器就会单纯的以为自己是有一块儿这么大的硬盘的,要使用的话,需要对这块硬盘进行分区,格式化为某种文件系统,然后就可以使用了;同样是三块硬盘,我分别把这三块硬盘装在主机A,B,C上,分区、格式化为某种文件系统,比如格式化为XFS文件系统,然后我以共享文件夹的形式把主机A的/data目录使用NFS共享给B和C,这就是文件存储。

    块存储和文件存储异同:

    • 数据传输方式不同:块存储依靠SCSI或者ISCSI接口,以块方式交换数据,数据传输速度快;文件存储依靠TCP/IP协议栈进行数据传输,网络带宽是I/O的性能瓶颈。

    • 文件系统的位置:NAS和SAN最本质的区别就是文件管理系统在哪里,如图所示,SAN结构中,文件管理系统(FS)分别在每一个应用服务器上面,而NAS则是每个应用服务器通过网络共享协议,使用同一个文件管理系统。即NAS和SAN存储系统的区别就是NAS有自已的文件管理系统。

    • 使用方式不同:块存储设备使用的时候,还需要进一步进行分区,将设备格式为某种文件系统才可以继续使用;而文件存储就相当于你多了一个共享文件夹,文件存储带着自己本身的文件系统。

    对象存储

    总体上来讲,对象存储同兼具SAN高速直接访问磁盘特点及NAS的分布式共享特点。

    • SAN(Storage Area Network)结构
      采用SCSI 块I/O的命令集,通过在磁盘或FC(Fiber Channel)级的数据访问提供高性能的随机I/O和数据吞吐率,它具有高带宽、低延迟的优势,在高性能计算中占有一席之地,如SGI的CXFS文件系统就是基于SAN实现高性能文件存储的,但是由于SAN系统的价格较高,且可扩展性较差,已不能满足成千上万个CPU规模的系统。
    • NAS(Network Attached Storage)结构
      它采用NFS或CIFS命令集访问数据,以文件为传输协议,通过TCP/IP实现网络化存储,可扩展性好、价格便宜、用户易管理,如目前在集群计算中应用较多的NFS文件系统,但由于NAS的协议开销高、带宽低、延迟大,不利于在高性能集群中应用。

    对象存储结构:

    核心是将数据通路(数据读或写)和控制通路(元数据)分离,并且基于对象存储设备(Object-based Storage Device,OSD)构建存储系统,每个对象存储设备具有一定的智能,能够自动管理其上的数据分布。

    对象存储结构组成部分(对象、对象存储设备、元数据服务器、对象存储系统的客户端):

    这里写图片描述

    1、对象

    对象是系统中数据存储的基本单位,一个对象实际上就是文件的数据和一组属性信息(Meta Data)的组合,这些属性信息可以定义基于文件的RAID参数、数据分布和服务质量等,而传统的存储系统中用文件或块作为基本的存储单位,在块存储系统中还需要始终追踪系统中每个块的属性,对象通过与存储系统通信维护自己的属性。在存储设备中,所有对象都有一个对象标识,通过对象标识OSD命令访问该对象。通常有多种类型的对象,存储设备上的根对象标识存储设备和该设备的各种属性,组对象是存储设备上共享资源管理策略的对象集合等。

    这里写图片描述

    对象的层次理解:
    这里写图片描述

    2、对象存储设备

    对象存储设备具有一定的智能,它有自己的CPU、内存、网络和磁盘系统,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对象的交互,主要提供以下几个功能:

    (1) 对象存储访问。

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

    (2) 文件和目录访问管理。

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

    (3) Client Cache一致性。

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

    4、对象存储系统的客户端Client

    为了有效支持Client支持访问OSD上的对象,需要在计算节点实现对象存储系统的Client,通常提供POSIX文件系统接口,允许应用程序像执行标准的文件系统操作一样。

    对象存储文件系统的关键技术

    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。

    三者之间异同比较

    存储类型数据传输方式适应场景优点
    块存储SCSI/ISCSI接口小型机房速度快
    文件存储NFS/FTP等局域网环境可扩展性高
    对象存储http协议互联网环境,异地存储速度快,且扩展性高,高可用

    对象存储相比块存储、文件存储的一个最本质的区别是无层次结构。我们都知道,一般的存储(比如你自己的PC的文件系统)是有一个目录树概念的,要找到一个文件需要先找到这个文件所属的目录。而对象存储是没有文件目录树这个概念的,所有的数据都在同一个层次中,仅仅通过数据的唯一地址标识来识别并查找数据。

    块存储: 是和主机打交道的, 如插一块硬盘
    文件存储: NAS, 网络存储, 用于多主机共享数据
    对象存储: 跟你自己开发的应用程序打交道, 如网盘

    参考文献

    NFS深入了解
    SI/iSCSI及SAS、NAS、SAN的基本介绍
    NAS网络存储与SAN、DAS的区别
    NFS工作原理
    什么是对象存储

    展开全文
  • 块存储和文件存储是我们比较熟悉的两种主流的存储类型,而对象存储(Object-based Storage)是一种新的网络存储架构,基于对象存储技术的设备就是对象存储设备(Object-based Storage Device)简称OSD。  首先,...

    块存储和文件存储是我们比较熟悉的两种主流的存储类型,而对象存储(Object-based Storage)是一种新的网络存储架构,基于对象存储技术的设备就是对象存储设备(Object-based Storage Device)简称OSD。

            首先,我们介绍这两种传统的存储类型。通常来讲,所有磁盘阵列都是基于Block块的模式,而所有的NAS产品都是文件级存储。

    1、块存储

            以下列出的两种存储方式都是块存储类型:

            1) DAS(Direct Attach Storage,也可称为SAS, Server Attach Storage):是直接连接于主机服务器的一种储存方式,每一台主机服务器有独立的储存设备,每台主机服务器的储存设备无法互通,需要跨主机存取资料时,必须经过相对复杂的设定,若主机服务器分属不同的操作系统,要存取彼此的资料,更是复杂,有些系统甚至不能存取。通常用在单一网络环境下且数据交换量不大,性能要求不高的环境下,可以说是一种应用较为早的技术实现。

    2)SAN(Storage Area Network):是一种用高速(光纤)网络联接专业主机服务器的一种储存方式,此系统会位于主机群的后端,它使用高速I/O 联结方式, 如 SCSI, ESCON 及 Fibre- Channels。一般而言,SAN应用在对网络速度要求高、对数据的可靠性和安全性要求高、对数据共享的性能要求高的应用环境中,特点是代价高,性能好。例如电信、银行的大数据量关键应用。它采用SCSI 块I/O的命令集,通过在磁盘或FC(Fiber Channel)级的数据访问提供高性能的随机I/O和数据吞吐率,它具有高带宽、低延迟的优势,在高性能计算中占有一席之地,但是由于SAN系统的价格较高,且可扩展性较差,已不能满足成千上万个CPU规模的系统。

    2、文件存储

            通常,NAS产品都是文件级存储。  NAS(Network Attached Storage):是一套网络储存设备,通常是直接连在网络上并提供资料存取服务,一套 NAS 储存设备就如同一个提供数据文件服务的系统,特点是性价比高。例如教育、政府、企业等数据存储应用。

            它采用NFS或CIFS命令集访问数据,以文件为传输协议,通过TCP/IP实现网络化存储,可扩展性好、价格便宜、用户易管理,如目前在集群计算中应用较多的NFS文件系统,但由于NAS的协议开销高、带宽低、延迟大,不利于在高性能集群中应用


    下面,我们对DAS、NAS、SAN三种技术进行比较和分析:

    表格 1 三种技术的比较

    三种存储类型比较-文件、块、对象存储 - 笨笨blog - 亮丽

    三种存储类型比较-文件、块、对象存储 - 笨笨blog - 亮丽

    针对Linux集群对存储系统高性能和数据共享的需求,国际上已开始研究全新的存储架构和新型文件系统,希望能有效结合SAN和NAS系统的优点,支持直接访问磁盘以提高性能,通过共享的文件和元数据以简化管理,目前对象存储系统已成为Linux集群系统高性能存储系统的研究热点,如Panasas公司的Object Base Storage Cluster System系统和Cluster File Systems公司的Lustre等。下面将详细介绍对象存储系统。

    3、对象存储

            总体上来讲,对象存储同兼具SAN高速直接访问磁盘特点及NAS的分布式共享特点。

            核心是将数据通路(数据读或写)和控制通路(元数据)分离,并且基于对象存储设备(Object-based Storage Device,OSD)构建存储系统,每个对象存储设备具有一定的智能,能够自动管理其上的数据分布。
            对象存储结构组成部分(对象、对象存储设备、元数据服务器、对象存储系统的客户端):
            3.1、对象

    对象是系统中数据存储的基本单位,一个对象实际上就是文件的数据和一组属性信息(Meta Data)的组合,这些属性信息可以定义基于文件的RAID参数、数据分布和服务质量等,而传统的存储系统中用文件或块作为基本的存储单位,在块存储系统中还需要始终追踪系统中每个块的属性,对象通过与存储系统通信维护自己的属性。在存储设备中,所有对象都有一个对象标识,通过对象标识OSD命令访问该对象。通常有多种类型的对象,存储设备上的根对象标识存储设备和该设备的各种属性,组对象是存储设备上共享资源管理策略的对象集合等。 
            3.2、对象存储设备
            对象存储设备具有一定的智能,它有自己的CPU、内存、网络和磁盘系统,OSD同块设备的不同不在于存储介质,而在于两者提供的访问接口。OSD的主要功能包括数据存储和安全访问。目前国际上通常采用刀片式结构实现对象存储设备。OSD提供三个主要功能:
          (1) 数据存储。OSD管理对象数据,并将它们放置在标准的磁盘系统上,OSD不提供块接口访问方式,Client请求数据时用对象ID、偏移进行数据读写。
          (2) 智能分布。OSD用其自身的CPU和内存优化数据分布,并支持数据的预取。由于OSD可以智能地支持对象的预取,从而可以优化磁盘的性能。
          (3) 每个对象元数据的管理。OSD管理存储在其上对象的元数据,该元数据与传统的inode元数据相似,通常包括对象的数据块和对象的长度。而在传统的NAS系统中,这些元数据是由文件服务器维护的,对象存储架构将系统中主要的元数据管理工作由OSD来完成,降低了Client的开销。
             3.3、元数据服务器(Metadata Server,MDS)
              MDS控制Client与OSD对象的交互,主要提供以下几个功能:
          (1) 对象存储访问。
            MDS构造、管理描述每个文件分布的视图,允许Client直接访问对象。MDS为Client提供访问该文件所含对象的能力,OSD在接收到每个请求时将先验证该能力,然后才可以访问。
          (2) 文件和目录访问管理。
            MDS在存储系统上构建一个文件结构,包括限额控制、目录和文件的创建和删除、访问控制等。
         (3) Client Cache一致性。
            为了提高Client性能,在对象存储系统设计时通常支持Client方的Cache。由于引入Client方的Cache,带来了Cache一致性问题,MDS支持基于Client的文件Cache,当Cache的文件发生改变时,将通知Client刷新Cache,从而防止Cache不一致引发的问题。

    3.4、对象存储系统的客户端Client
            为了有效支持Client支持访问OSD上的对象,需要在计算节点实现对象存储系统的Client,通常提供POSIX文件系统接口,允许应用程序像执行标准的文件系统操作一样。
     4、GlusterFS 和对象存储

           GlusterFS是目前做得最好的分布式存储系统系统之一,而且已经开始商业化运行。但是,目前GlusterFS3.2.5版本还不支持对象存储。如果要实现海量存储,那么GlusterFS需要用对象存储。值得高兴的是,GlusterFS最近宣布要支持对象存储。它使用openstack的对象存储系统swift的上层PUT、GET等接口,支持对象存储。

    http://www.openstack.org/blog/2011/07/announcing-the-gluster-connector-for-openstack/

    AWS S3(对象存储):可以集成式部署(NAS,SAN,API接口,软件开发工具包Software Development Kit,即SDK) 以及迁移到云端(易扩展,高可用,按使用付费,减少维护等成本,安全,灾备)

    发送事件通知:

    Amazon S3 可在对象上传到 Amazon S3 时发送事件通知。Amazon S3 事件通知可使用 Amazon SQS 或 Amazon SNS 进行传送,或直接发送到 AWS Lambda,从而使您能够触发工作流、警报或其他处理操作。例如,您可以使用 Amazon S3 事件通知在媒体文件上传完成时触发其转码操作,在数据文件可用时触发其处理流程,或触发 Amazon S3 对象与其他数据存储的同步。

    性能高

    Amazon S3 支持分段上传,可帮助最大化网络吞吐量和弹性,同时还让您能够选择 AWS 区域存储接近于终端用户的数据并最小化网络延迟。而且 Amazon S3 还能与 Amazon CloudFront 集成,后者是一项内容分发 Web 服务,能以低延迟性和高数据传输速度向终端用户分发内容,且无需承诺最低使用费用。


    https://www.amazonaws.cn/s3/






    展开全文
  • 对象存储系统概念

    千次阅读 2017-10-20 22:43:06
    对象存储系统概念
  • session对象存储

    2015-01-01 19:42:47
    掌握怎样使用session对象存储和用户有关的数据
  • 大话存储系列13——对象存储

    千次阅读 2013-03-19 06:21:58
    对象存储系统(Object-Based Storage System)是综合了NAS和SAN的优点,同时具有SAN的高速直接访问和NAS的数据共享等优势,提供了高可靠性、跨平台性以及安全的数据共享的存储体系结构。 传统块存储与对象存储...
  • 对象存储

    千次阅读 2016-04-07 22:24:57
    毫无疑问,云是数据中心的未来,随着数据中心以及物联网和移动设备的快速发展,我们已经来到一个信息爆炸的时代,据IDC报告,当下数据以每年50%左右的速度快速增长,...如果购买传统的存储设备,高昂的存储初期投资很可
  • OOS对象存储

    千次阅读 2019-03-13 10:00:05
    存储空间是用于存储对象Object的容器,所有的对象都必须隶属于某个存储空间。您可以设置和修改存储空间属性来控制地域、访问权限、生命周期等,这些属性设置直接作用于该存储空间内所有对象,因此您可以通过灵活创建...
  • 文件存储 设备:FTP、NFS服务器 特点:一个大文件夹,大家都可以获取文件 优点:可以共享 ...对象存储 设备:swift,键值存储 特点:具备块存储的高速以及文件存储的共享等特性 优点:速率快,共享方
  • 对象存储优点 可扩展性高:对象存储能够扩展数十乃至数百EB的容量,能够充分利用高密度存储; 效率高:扁平化结构,不受复杂目录系统对性能的影响; 无需迁移:对象存储是一种横向扩展系统,随着容量的增加,数据...
  • 存储分类及对象存储osd的技术原理

    万次阅读 2018-11-07 11:23:24
    存储局域网(SAN)和网络附加存储(NAS)是我们比较熟悉的两种主流网络存储架构,而对象存储(Object-based Storage)是一种新的网络存储架构,基于对象存储技术的设备就是对象存储设备(Object-based Storage Device)...
  • 块存储和文件存储是我们比较熟悉的两种主流的存储类型,而对象存储(Object-based Storage)是一种新的网络存储架构,基于对象存储技术的设备就是对象存储设备(Object-based Storage Device)简称OSD。 首先,...
  • 三种存储类型:块存储、文件存储、对象存储

    千次阅读 多人点赞 2020-11-02 10:21:27
    ... ... 存储类型 先从三种存储类型开始。...看了很多文章,感觉都无从下手,因为我还不了解为什么有这么多的存储方式和存储类型,所以先不看这些概念的定义,先了解为什么会有这些概念。 为什么会有这么多存储
  • 对象存储(Object-based Storage)概述

    万次阅读 2014-01-08 00:03:04
    什么是对象存储?多次在不同场合被问起这个问题,于是就想写篇小综述文章。网上查找资料时,找到几篇不错的资料,不想做重复工作,简单整理一下,供自己和大家参考。 什么是对象存储(OSD)? 存储局域网(SAN)和...
  • leofs 对象存储介绍(一)

    千次阅读 2017-05-18 14:33:27
    1. 对象存储对象存储(Object-based storage) 是一种新的网络存储架构,基于对象存储技术的设备就是对象存储设备(Object-base storage device) 简称OSD。 一个文件包含了属性(术语叫metadata,元数据,例如文件的...
  • 一、【块存储】 典型设备:磁盘阵列,硬盘  块存储主要是将裸磁盘空间整个映射给主机使用的,就是说例如磁盘阵列里面有5块硬盘(为方便说明,假设每个硬盘1G),然后可以通过划逻辑盘、做Raid、或者LVM(逻辑卷)...
  • 块储存、对象存储、文件存储的区别和联系

    万次阅读 多人点赞 2017-04-18 21:08:41
    块储存、对象存储、文件存储的区别和联系 通常来讲,队友磁盘阵列都是基于Block块的存储,而所有的NAS产品都是文件级存储。 1. 块存储:DAS SAN a) DAS(Direct Attach Storage): 是直接连接于主机服务器的一种存储...
  • 工作6,7年了,在实际搭建私有云网络中常用NAS结构,而部署传统RAC集群的时候也需要配SAN网络,对这几种存储方式有直观的了解,却没能理论化系统化的梳理,今天看到一篇讲这方面的文章,我也就搞了个拿来主义,收录到...
  • 对象存储技术初探

    千次阅读 2019-01-15 23:59:09
    最近看了一本关于IT运维的奇书《凤凰项目》,书中把软件交付与工厂制造产品类比,总结了许多有趣的结论。比如在车间生产中要控制半成品的数量,半成品的...关于二进制类型的数据存储,很多地方都提到了对象存储技...
  • 对象存储(Object Storage)的始作俑者是亚马逊2006年推出的S3(Simple Storage Service),此后新老厂商一窝蜂地推出各种产品,形态各异,但都号称对象存储。亚马逊没有给出一个定义,也没有看到有业界普通接受的...
  • https://blog.csdn.net/enweitech/article/details/51445087 块存储和文件存储是我们比较熟悉的两种主流的存储类型,而对象存储(Object-based Storage)是一种新的网络存储架构,基于对象存储技术的设备就是对象...
  • 首先,我说下块存储。块存储可以看作为是裸盘,最明显的特征是不能被操作系统直接访问。可以通过划分逻辑卷、做RAID、...优点:读写速度快(带宽和IOPS);缺点:太过于底层,不利于扩展,不能被共享; 其次,与块...
  • 分布式对象存储Ambry(1)简介与集群部署

    万次阅读 热门讨论 2016-11-05 12:01:08
    Ambry简介LinkedIn开源了多媒体对象存储数据库Ambry,开源不久,算是一个很新的事物。Ambry用来做对象存储,非常适合用于存储像LinkedIn这种社交媒体网站的对象数据(如图片,视频等等)。 LinkedIn过去使用的是一...
  • 关于块存储、文件存储、对象存储方面的知识在知乎上看到了个很好的解答:https://www.zhihu.com/question/21536660 通俗易懂,查了些资料做了详细的补充。 块存储 典型设备:磁盘阵列、硬盘 块存储主要是将裸...
  • Minio 搭建对象存储服务

    千次阅读 2020-08-04 15:19:58
    文章目录1 mino简介2 环境3 部署3.1 获取程序3.2 存储类别3.3 挂载硬盘3.4 单机部署3.4.1 部署及测试3.4.2 作为Linux Service启动3.5 分布式集群扩容方案3.5.1 部署及测试3.5.2 作为Linux Service启动3.6 多机部署,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 302,556
精华内容 121,022
热门标签
关键字:

对象存储优点