【分布式理论13】分布式存储:数据存储难题与解决之道

文章目录

一、数据存储面临的问题

在单机系统时代,当数据量不断增加、硬盘空间不够时,最简单的解决办法就是扩大磁盘容量。然而,随着数据量的增长,磁盘读写操作的速度成为了限制系统性能的瓶颈。因此,提升存储性能、提高数据的可靠性和可扩展性,成为了系统设计的重要目标。

在这个过程中,磁盘阵列(RAID)技术、分布式存储以及扩展技术逐渐成为了应对挑战的解决方案。

二、RAID磁盘阵列的解决方案

1. RAID概述

RAID(独立磁盘冗余阵列)是解决上述问题的早期探索。它由多个独立高性能磁盘驱动器构成磁盘子系统,为主机环境提供成本适中、数据可靠性高的高性能存储,能改善磁盘的存储容量、读写速度,增强磁盘的可用性。

2. RAID使用的技术

  1. 镜像:将数据复制到多个磁盘。这一方面提高了系统可靠性,另一方面让数据读操作可并发进行,从而提高读写性能。但写性能稍低,因为要确保数据正确写入多个磁盘较耗时。
  2. 数据条带:把一整块数据分片,存于多个不同磁盘空间。面对并发读写请求时,可同时操作不同磁盘上的数据,提升I/O性能。
  3. 数据校验:因镜像存储使同一份数据存于多个磁盘,这种冗余存储有助于数据的错误检测和修复。冗余数据通常用海明码、异或操作等算法生成,提高了RAID的可靠性和容错能力。

3. RAID的代表性等级

  1. RAID0:是一种无数据校验的数据条带化技术,不提供冗余策略。它将整块数据分成多份存到不同磁盘,访问时可并发执行IO操作,充分利用总线带宽。
  2. RAID1:完全实现镜像技术,把数据集复制一份,原数据集和副本分别存于两个磁盘,磁盘空间利用率为50%。读取数据可从任一磁盘获取,写入时响应时间受影响,但大大提高了数据可靠性。
  3. RAID01和RAID10 :RAID01由RAID0和RAID1组合,先进行条带化再镜像,提高了读写效率和数据可靠性,但磁盘利用率低。RAID10则是先镜像再条带,从读写性能上和RAID01一样,但出现磁盘故障时,读性能优于RAID01,安全性更强。

虽然RAID通过增加磁盘数量提高了单机服务器的数据读写效率和可靠性,但单机磁盘扩容有上限,不足以应对数据爆发式增长带来的挑战。

三、分布式存储的新思路

1. 分布式存储背景与特点

分布式存储属于集群水平扩展,随着业务发展,系统数据量和访问量剧增,单机难以满足需求,分布式集群存储便应运而生。它将数据分布在多台服务器节点上,为大规模应用提供大容量、高性能、高可用、高扩展的存储服务。借鉴RAID的数据分片和副本技术,分布式存储将数据按规律存储在不同服务器节点,读写时也遵循相应规律。

2. 分布式存储的组成要素

  1. 数据的使用者:也就是使用数据的用户,可从分布式存储系统写入和读取数据。数据分为结构化数据(如关系型数据库)、半结构化数据(如HTML、JSON、XML等)和非结构化数据(如文档、图片、视频等)。
  2. 数据的索引者:在分布式系统中,它负责找到数据读写的正确路径。由于数据集分布在不同服务器上,需通过Hash算法、一致性Hash算法等找到数据。
  3. 数据的存储者:相当于容器,将使用者产生的数据保存起来,数据可存于磁盘或内存。结构化数据、半结构化数据、非结构化数据分别对应分布式数据库、分布式键值系统、分布式文件系统。索引者将使用者和存储者连接起来,并作为数据存储的媒介。

参考:《分布式架构原理与实践-崔皓》

相关推荐
熙客35 分钟前
Kafka:专注高吞吐与实时流处理的分布式消息队列
分布式·中间件·kafka
西岭千秋雪_3 小时前
Zookeeper数据结构
java·数据结构·分布式·zookeeper
happy_king_zi3 小时前
RabbitMQ直接查看队列中消息的内容
分布式·rabbitmq
车江毅3 小时前
亿级O2O(智能设备)系统架构笔记【原创】
java·分布式·技术战略规划
回家路上绕了弯5 小时前
QPS 百万级分布式数据库:高并发订单号生成方案设计与落地
分布式·后端
熊文豪5 小时前
在 openEuler 上部署 Kafka 集群:深度性能评测与优化指南
分布式·kafka·openeuler
chilavert3186 小时前
技术演进中的开发沉思-174 java-EJB:分布式通信
java·分布式
阿华田5127 小时前
分布式分片执行原理解析
分布式·分片执行
suuijbd14 小时前
SpringCloud+Netty集群即时通讯项目
spring boot·分布式·spring cloud·java-rabbitmq·java-zookeeper
一叶飘零_sweeeet16 小时前
幂等性 VS 分布式锁:分布式系统一致性的两大护法 —— 从原理到实战的深度剖析
分布式·分布式锁·接口幂等