分布式存储是什么

简介: 分布式存储是什么

最近知乎上有个问题,分布式存储是什么?我做对象存储有一阵了,最开始只知道一些零散、分离的概念;随着开发、维护系统,慢慢的有了一些感觉,能在脑海中慢慢建立一些模型,将之前的了解的概念缀连起来;随着看的论文、开源系统越来越多,逐渐将这些连通分支勾连起来,形成一个小网。

总的来说,我们理解一个概念时,总会试图找到某个角度,并在脑中建立一个模型,以熟悉的模子去刻画他。下面以我一些浅薄的经验,从两方面来解释下分布式存储:用户侧实现侧。因为在软件领域有个经典的拆解问题的角度:接口和实现分离。

用户侧

从用户侧来说,单个应用的数据越来越多,廉价商用单机存储难以满足。不断增大单机存储容量是一种思路,但是成本会成倍上升,而且总有上限。另一种思路就是集合很多机器对外提供服务。最传统的接口是文件系统数据库,但其接口都较为复杂,实现不易。因此在分布式存储系统诞生之初,会寻求简化接口,以将精力放在处理分布式系统的带来的复杂性上。最早摸到数据存储瓶颈的大厂都有类似的选择,比如 Google 裁剪的文件系统 GFS,比如 Amazon 的对象存储 S3,比如 Facebook 的小文件存储 Haystack。随着分布式系统实践经验的不断累积,可以支持更复杂的接口实现,最近趋势是提供更丰富的接口以满足不同场景需求,比如满足缓存的分布式 KV(Tair,TiKV),满足通用需求的分布式文件系统(GlusterFS,CephFS,JuiceFS),满足关系存储的 NewSQL(TiDB,PolarDB)。

实现侧

从实现侧来说,数据如何分散到多机上去?最基本的分布式解决办法是将数据按一定尺寸进行分片(Partition),使得一个分片能被任何单机存下。当然在实现中,分片一般会更小。随着数据越来越多,分片会越来越多,需要的机器也就越来越多。但硬件有良品率和老化问题,单机发生概率虽然不大,但在海量机器的场景下就会成为问题。为了保障数据不丢,需要将每个分片做冗余处理,包括EC编码(纠删码)和多副本(replication)。多副本数据如何做同步,这又会引出分布式系统中经典的一致性问题。再展开就略晦涩了,有兴趣可以探讨。

小结

总结一下,从底层实现来看,分布式存储将数据存到多台机器上,并且解决可用性、可靠性和一致性等问题,近年来有很多实践经验,也慢慢沉淀出来了一些模式。以这些通用实现为底座,可以包装出不同的用户接口,比如文件系统,关系型数据库,对象存储等等,以满足不同用户海量数据的分布式存储、查询、处理等多元需求。

相关文章
|
前端开发 Java 关系型数据库
基于javaweb旅游景点线路预定系统设计与实现
基于javaweb旅游景点线路预定系统设计与实现
238 0
|
安全 数据安全/隐私保护 数据中心
|
存储 网络协议 文件存储
云计算——常见存储类型
云计算——常见存储类型
1072 0
|
存储 缓存 固态存储
存储性能软件加速库(SPDK)
存储性能软件加速库(SPDK)
|
监控 安全 测试技术
强化您的应用安全,从app加固开始
作为iOS技术博主,您对应用程序安全性的重要性应该有深刻的认识。随着移动应用市场的不断扩大,应用程序面临的安全威胁也日益增多。因此,采取有效的措施来加固应用程序,保护用户数据和知识产权变得至关重要。在本文中,我们将深入探讨如何通过app加固来提升应用程序的安全性,以及如何应对潜在的安全威胁。
|
10月前
|
搜索推荐 数据安全/隐私保护 UED
产品经理-B 端与C端
B端与C端是IT互联网产品经理的类型划分,分别面向企业和个人消费者。C端产品如微信、淘宝,注重用户体验和快速迭代;B端产品如CRM系统、ERP软件,强调功能复杂性和定制化服务。此外,还有G端产品,主要服务于政府机构,注重数据安全和合规性。产品经理起源于20世纪20年代末的美国宝洁公司,随着互联网的发展,该角色在IT领域变得愈加重要。
1273 12
|
10月前
|
安全 搜索推荐 Unix
【C语言】《回调函数》详细解析
回调函数是指一个通过函数指针调用的函数。它允许将一个函数作为参数传递给另一个函数,并在特定事件发生时执行。这种技术使得编程更加灵活,可以动态决定在何时调用哪个函数。
566 1
启动报错“No bootable device”
三个步骤排查启动报错“No bootable device”
启动报错“No bootable device”
|
安全 Java 数据安全/隐私保护
APP加固技术及其应用
在移动应用开发过程中,APP加固技术起到了非常重要的作用。APP加固是将apk文件进行混淆加密,以防止别人反编译获取我们的源码和资源文件。目前市场上主流的APP加固公司有三家,分别是梆梆加固、360加固和ipagurd加固。本文将介绍APP加固的概念、加固方案和比较,并探讨APP加固在实际开发中的应用。
|
存储 安全 云计算
私有云与公共云:选择哪一个?
【8月更文挑战第14天】
1734 5