分布式对象存储学习笔记(一)——认识对象存储

分布式对象存储——原理、架构及Go语言实现 胡世杰

传统的网络存储:NASSAN

NAS是Network Attached Storage 的简称,提供存储功能和文件系统的网络服务器。客户端可以访问 NAS 上的文件系统,还可以上传和下载文件。NAS 客户端和服务端之间使用的协议有 SMB、NFS以及AFS等网络文件系统协议。对于客户端来说,NAS 就是一个网络上的文件服务器。
SAN是 StorageArea Network 的简称。它和NAS 的区别是SAN 只提供了块存储而把文件系统的抽象交给客户端来管理。 SAN 的客户端和服务端之间的协议有 FibreChannel、iSCSI、ATA over Ethernet (AoE)和HyperSCSI。对于客户端来说,SAN 就是一块磁盘,可以对其格式化、创建文件系统并挂载。
NAS和SAN并不是完全对立的,现代的网络存储通常都是两合使用,可以同时提供文件级别的协议和块级别的协议。

对象存储

数据的管理方式

网络文件系: 数据以一个个文件的形式来管理。
块存储: 据是以数据块的形式来管理,每个数据块有它自己的地址,但是没有额外的背景信息。
对象存储: 以对象的方式来管理数据。包含对象的数据、对象的元数据以及一个全局唯一的标识符(即对象的ID)

  • 对象的数据: 一个对象可以用来保存大量无结构的数据,比如一首歌、一张照片或是一个在线文档。
  • 对象的元数据是对象的描述信息。比如某首歌的歌名、某张照片拍摄的时间、某个文档的大小等都属于描述信息,也就是元数据。
  • 对象的标识符用于引用该对象。标识符具有全局唯一性。

通常我们用对象的散列值来做其标识符。

访问数据的方式

  • 网络文件系统:通过NFS等网络协议访问某个远服务器上存储的文件。
  • 块存储:通过数据块的地址访问 SAN 上的数据块。
  • 对象存储:通过 REST网络服务访问对象。

REST是 Representational State Transfer 的简称。REST网络服务通过标准HTTP服务对网络资源提供一套预先定义的无状态操作。
网络上一切可以通过任何方式被标识、命名、引用或处理的东西都是一种网络资源。因此对象也是一种网络资源。
HTTP 预定义的请求方法(Request Method)通常包括:GET 方法在 REST 标准中通常用来获取某个网络资源;PUT 通常用于创建或替换某个网络资源(注意,它跟 PUT 的区别是POST一般不同于替换网络资源,如果该资源已经存在,POST通常会返回一个错误而不是覆盖它);POST 通常用于创建某个网络资源,DELETE 通常用于删除某个网络资源。

对象存储的优势

  • 对象存储提升了存储系统的扩展性。随着存储系统中保存的数据越来越多时,传统网络存储系统的管理开销会呈指数上升。而对象存储架构的扩展只需要添加新的存储节点就可以。
  • 对象存储以更低的代价提供了数据冗余的能力。在分布式对象存储系统中一个或多个节点失效的情况下,对象依然可用,且大多数情况下客户都不会意识到有节点出了问题。传统网络存储对于数据冗余通常采用的方式是保留多个副本(一般至少 3 份,这样当其中一个副本出了错,我们还能用少数服从多数的方式解决争议),而对象存储的冗余效率则更高。

单机版对象存储的架构

在一台服务器上运行了一个 HTTP 服务提供的 REST 接口,该服务通过访问本地磁盘来进行对象的存取。

REST接口

PUT /objects/<object_name>
请求正文(Request Body)
客户端通过 PUT 方法将一个对象上传至服务器,服务器则将该对象保存在本地磁盘上。
/objects/<object_name> 是标识该对象网络资源的URL。
在这里插入图片描述

GET /objects/<object name>
响应正文(Response Body)
客户端通过 GET 方法从服务器上下载一个对象,服务器在本地磁盘上查找并读取该对象,如果该对象不存在,则服务器返回HTTP 错误代码404 Not Found。
在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值