对象存储基础介绍
扫描二维码
随时随地手机看文章
01
概述
块存储和文件存储是我们比较熟悉的两种主流的存储类型,而对象存储(Object-based Storage)是一相对比较新的存储技术,基于对象存储技术的设备就是对象存储设备(Object-based Storage Device)简称OSD。 对象存储是无层次结构的数据存储方法,不同于其他数据存储方法,基于对象的存储不使用目录树。各个单独的数据(对象)单元存在于存储池中的同一级别,供应用进行检索。此外,每个对象可包含有助于检索的元数据。每个对象都分配一个对象ID(或唯一标识符),使它们可以从单个存储库或存储池中检索,因为它提供了更大的灵活性,可以将数据放置在基于数据块和文件的存储解决方案之外。对象存储与文件系统存储或块存储不同,它不是通过块地址或文件名引用数据,而是将数据存储为对象并由对象ID(或唯一标识符)引用。另外对象存储一般为分布式横向扩展多节点的架构。02
什么是对象
03
对象存储的主要特点
-
数据作为单独的对象进行存储;
-
数据并不放置在目录层次结构中,而是存在于平面地址空间内;
-
应用通过唯一地址(对象ID或者唯一标识符)来识别每个单独的数据对象,可用代客泊车作类比,每个数据对象就像一辆车;
-
专为使用 API 在应用级别(而非用户级别)进行访问而设计。
04
数据访问流程
-
客户端应用发出读请求;
-
文件系统向元数据服务器发送请求,获取要读取的数据所在的OSD;
-
然后直接向每个OSD发送数据读取请求;
-
OSD得到请求以后,判断要读取的Object,并根据此Object要求的认证方式,对客户端进行认证,如果此客户端得到授权,则将Object的数据返回给客户端;
-
文件系统收到OSD返回的数据以后,读操作完成。
写操作步骤类似。
05
对象存储 VS 块级和文件级存储
有大量的基于块和基于文件的存储系统可供选择,我们为什么需要另外一种存储技术呢?块和文件都是成熟且经过验证的,所以也许看起来好像他们可以增强以满足日益增长的分布式云计算生态系统的需求。基于块的存储系统,磁盘块通过底层存储协议访问,像SCSI命令,开销很小而且没有其它额外的抽象层。这是访问磁盘数据最快的方式,所有高级别的任务,像多用户访问、共享、锁定和安全通常由操作系统负责。换句话讲,基于块的存储关心所有底层的问题,但其它事情都要依靠高层的应用程序实现。所有的对象存储拥有基于块存储的节点,并且利用对象存储软件集合提供所有其它的功能。
基于块的存储系统是对象存储系统的补充,而基于文件的存储系统一般被认为是直接的竞争者。横向扩展的NAS系统的关键属性就是扩展性,对象存储也是这样,通过增加存储节点实现水平扩展。但由于NAS系统是基于分层文件结构的有限的命名空间,它们对于有着接近无限扩展能力的、具有扁平结构的纯对象存储来讲,所受的约束更多,对象存储仅受到对象ID的位数限制。另外横向扩展的NAS欠缺一些功能,像对于表征状态转移(REST)协议的支持,当然厂商们正在快速的完善中,或许有一天就可以把横向扩展的NAS系统划归到对象存储的类别中了。
06
对象存储的优势
对象存储的优点在于它具有很强的伸缩性,并且在将属性与对象相关联方面具有高度的灵活性。对象存储同时兼具SAN高级直接访问磁盘特点及NAS的共享特点(但不是说SAN和NAS就完全不需要了,具体要看应用场景)。核心是将数据通路(数据读或写)和控制通路(元数据)分离,并且基于对象存储设备(OSD)构建分布式存储系统,每个对象存储设备具备一定的职能,能够自动管理其上的数据分布。
07
适用场景
-
对象存储主要是为实现可伸缩性而设计的,因此它是公共云提供商的热门选择;
-
由于可以灵活地组织文件,它更适合需要频繁读取的数据。其中静态内容存储和分发、备份和归档以及灾难恢复等使用情形恰好多为一次写入、反复读取,因此对象存储是这些场景的绝配;
-
媒体和 Web 内容的理想之选,但不适合需要定期修改的数据。
免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!