介绍

灵活和可扩展的数据存储是使用现代技术和工具开发的大多数应用程序和服务的基准要求。 无论存储大量或少量的图像,视频或文本块,应用程序开发人员都需要一个用于存储和检索用户生成的内容,日志,备份等的解决方案。

随着今天复杂的部署,容器和短暂的基础设施,在单个服务器上简单地将文件保存到磁盘的日子已经过去了。 云提供商已经开发出了满足现代应用程序部署的存储需求的服务,它们主要分为两类:对象存储和块存储。

我们来看看这两个,并讨论一般的优点,缺点和用例。

什么是块存储

块存储服务比较简单和熟悉。 它们通过网络提供传统的块存储设备(如硬盘驱动器)。 云提供商通常具有可以提供任何大小的块存储设备并将其附加到虚拟机的产品。

从那里,你会像普通磁盘那样对待它。 您可以使用文件系统进行格式化,并将文件存储在其上,将多个设备组合到RAID阵列中,或者将数据库配置为直接写入块设备,从而完全避免文件系统开销。 另外,网络连接的块存储设备通常比一般的硬盘驱动器有一些独特的优势:您可以轻松地将整个设备的实时快照用于备份

块存储设备可以调整大小以适应日益增长的需求

您可以轻松地在机器之间拆卸和移动块存储设备

这是一个非常灵活的设置,可用于大多数任何应用程序。 我们来总结一下这个技术的一些优点和缺点。

块存储的一些优点是:块存储是一个熟悉的范例。 人们和软件几乎普遍地理解和支持文件和文件系统

块设备得到很好的支持。 每种编程语言都可以轻松地读取和写入文件

文件系统权限和访问控制是熟悉和理解的

块存储设备提供低延迟IO,因此它们适合数据库使用。

块存储的缺点是:存储一次绑定到一个服务器

块和文件系统具有有关它们存储的信息块(创建日期,所有者,大小)的有限元数据。 有关您正在存储的任何其他信息都必须在应用程序和数据库级别处理,这对开发人员来说是一个额外的复杂性

即使没有使用它,您需要为所有分配的块存储空间付费

您只能通过正在运行的服务器访问块存储

块存储需要更多的实际工作和设置vs对象存储(文件系统选择,权限,版本控制,备份等)

由于其快速的IO特性,块存储服务非常适合在传统数据库中存储数据。 另外,许多需要正常文件系统存储的旧应用程序将需要使用块存储设备。

如果您的云提供商不提供块存储服务,您可以使用OpenStack Cinder , Ceph或许多NAS设备上可用的内置iSCSI服务运行自己的存储服务。

什么是对象存储

在云计算的现代世界中,对象存储是使用HTTP API存储和检索非结构化的数据和元数据。 使用文件系统将文件分解成块以将其存储在磁盘上,而不是通过网络处理存储的整个对象。 这些对象可以是图像文件,日志,HTML文件或任何自包含的字节。 它们是非结构化的,因为它们没有必要遵循的特定模式或格式。

对象存储起飞,因为它大大简化了开发人员的体验。 由于API由标准HTTP请求组成,因此大多数编程语言都快速开发了库。 保存一个数据块变得像对象存储的HTTP PUT请求一样简单。 检索文件和元数据是一个正常的GET请求。 此外,大多数对象存储服务还可以向用户公开提供文件,从而无需维护Web服务器来托管静态资源。

此外,对象存储服务仅对您使用的存储空间收费(有些还根据HTTP请求和传输带宽收费)。 这对于小型开发人员来说是一个福音,谁可以获得世界级的存储和托管资产的成本与使用规模。

对象存储不是所有情况的正确解决方案。 我们来看一下利弊的总结。

对象存储的一些优点是:一个简单的HTTP API,客户端可用于所有主要操作系统和编程语言

一个成本结构,意味着你只需要支付你所使用的费用

内置公共服务的静态资产意味着少一点服务器让您自己跑步

一些对象商店提供内置的CDN集成,可以缓存您的全球资产,为用户提供更快的下载和页面加载

可选版本控制意味着您可以检索旧版本的对象,以从意外覆盖数据中恢复

对象存储服务可以轻松地从适度的需求扩展到真正强烈的用例,而开发人员不必启动更多资源或重新构建来处理负载

使用对象存储服务意味着您不必维护由服务提供商处理的硬盘驱动器和RAID阵列

能够将元数据块存储在数据库中可以进一步简化应用程序体系结构

对象存储的一些缺点是:由于这些服务的高延迟,您无法使用对象存储服务来备份传统的数据库

对象存储不允许您仅修改一个数据块,您必须一次读取和写入整个对象。 这有一些性能影响。 例如,在文件系统上,您可以轻松地将一行添加到日志文件的末尾。 在对象存储系统上,您需要检索对象,添加新行,并将整个对象写回。 这使得对象存储对于经常变化的数据来说不那么理想

操作系统不能容易地像普通磁盘一样安装对象存储。 有一些客户端和适配器可以帮助这个,但是一般来说,使用和浏览对象存储并不像在文件浏览器中翻转目录一样简单

由于这些属性,对象存储对于托管静态资产非常有用,例如保存用户生成的内容,如图像和动画,存储备份文件和存储日志。

有一些自托管对象存储解决方案,尽管您将放弃托管解决方案的一些优点(例如不必担心硬盘驱动器和扩展问题)。 您可以尝试使用Go语言编写的流行的对象存储服务器Minio ,或Ceph或OpenStack Swift 。

结论

选择存储解决方案可能是开发人员的复杂决策。 在本文中,我们讨论了块和对象存储服务的优缺点。 任何足够复杂的应用程序很可能需要两种类型的存储以满足其所有需求。

文件服务和对象存储服务器,对象存储与块存储服务相关推荐

  1. 对象存储与块存储、文件存储等对比

    看到 一篇文档, 讲 对象存储, 好奇,搜索文章,摘抄,学习记录 ! 背景: 传统存储在面对海量非结构化数据时,在存储.分享与容灾上面临很大的挑战,主要表现在以下几个方面:传统存储并非为非结构化内容设 ...

  2. 【存储】块存储、文件存储和对象存储的区别?

    目录 简单说明 详细解释 存储分类 01 块存储(提供虚拟磁盘) 02 文件存储 03 对象存储 04 三种存储的区别和对比 分布式块存储.文件存储.对象存储的区别 理解Ceph的三种存储接口:块设备 ...

  3. 如何修改xd.properties文件中对象存储文件信息_对块存储、文件存储、对象存储的认识总结...

    因工作原因接触了对象存储,从而了解到相关的块存储和文件存储.搜罗了网上各种信息,结合自己的理解,整理如下.欢迎阅读,批评指正. 开头引用下几篇关于"块存储.文件存储.对象存储"的文 ...

  4. 一文讲清:对象存储、文件存储、块存储。绝对好文

    从应用角度看块存储.文件存储.对象存储 产品和市场需求有各种相互影响的关系,但不管是哪一种,最终呈现都是产品和应用需求需要对应匹配.应用需求越多样化,市场也就划分得更加细,产品种类也就更加丰富.在存储 ...

  5. 对象存储2:数据存储类型-文件存储、块存储、对象存储详解

    上一篇介绍了传统存储的几个常用类型,本篇主要介绍云平台用到的常用存储类型,分别是文件存储.块存储和对象存储. 这种分类是以数据存储的方式来命名的,体现了不同的数据存储格式.文件存储会以文件和文件夹的层 ...

  6. 总结:对象存储、块存储、文件存储的区别

    一.介绍 文件.块和对象是三种以不同的方式来保存.整理和呈现数据的存储格式.这些格式各有各的功能和限制. 文件存储会以文件和文件夹的层次结构来整理和呈现数据: 块存储会将数据拆分到任意划分且大小相同的 ...

  7. 【存储】文件存储、块存储、对象存储的区别

    代表 协议 特点 是否支持共享 网络场景 应用场景 块存储 DAN/SAN EFS 光纤协议或者基于千兆/万兆以太网(IP SAN .iSCSI) 并发访问低,一般多用于系统中,随机读写和可靠性高(块 ...

  8. 文件存储、对象存储、块存储分不清楚?看完就懂了

    关注「开源Linux」,选择"设为星标" 回复「学习」,有我为您特别筛选的学习资料~ 文件.对象.块存储是什么? 什么是文件存储? 文件存储带有文件系统,主要是以文件的形式存放数据 ...

  9. 云存储哪家强:AWS、Azure、 Google、SoftLayer的对象存储和块存储

    近日,RightScale的博客中讨论了目前市面上最主要的公有云服务供应商,包括AWS.Google Cloud Platform.Microsoft Azure,以及IBM SoftLayer,他们 ...

最新文章

  1. swift 加载gif 框架图片
  2. C 回顾 volatile 和 register 修饰符
  3. python自学笔记(三)python基本数据类型之列表list
  4. Pro *C/C++学习笔记
  5. Web前端 性能优化
  6. 农历php,PHP农历公历转换
  7. [BuildRelease Management]ElectricCommander
  8. linux脚本中如何读取文件,如何在Shell脚本中逐行读取文件
  9. cgo 解决 error while loading shared libraries: xxx.so.x
  10. 算法——从旋转字符串到翻转单词
  11. 基于SSM的二手交易平台
  12. 微星主板前面板耳机插孔无声音输出问题【已解决】
  13. 动态电路电容电感充放电分析
  14. houdini 常用
  15. 【BZOJ1062】糖果雨(NOI2008)-数形结合+二维树状数组
  16. power bi中的TREATAS函数!
  17. TypeError: XXX is read-only
  18. Godot游戏开发实践之一:使用High Level Multiplayer API制作多人游戏(上)
  19. matlab 逐步回归代码,(最新整理)逐步回归matlab程序
  20. 针式打印机及微型打印机突然不能打印的问题分析和解决办法

热门文章

  1. 微信停止服务印度用户;阿里回应“马云遭印度法院传唤”;fastjson 1.2.73 发布 | 极客头条...
  2. 还在用print()查找错误?日志消息不香嘛? | 原力计划
  3. 破碎的互联网下,加密技术正在恢复数据主权!
  4. 只十分钟,唾手可得的工作机会就被我搞砸了!
  5. 携号转网移动用户转出最多;微软称 8 万台电脑感染病毒;TensorFlow 2.1 rc0 发布 | 极客头条...
  6. 断点续传、秒传究竟是如何实现的?
  7. 从沉睡到满血复活,阿里开源框架 Dubbo 有没有让你踩过坑?
  8. 互联网公司的架构设计要怎么落地?| 技术头条
  9. 嘘,iPhone 正在监听你!
  10. 爬取了 B 站上的 17398 条评论,分析这部二次元番剧为何受到技术宅的追捧?