分布式存储架构一-分布式存储概念

article/2025/10/5 14:14:56

分布式存储系统是由大量廉价普通PC服务器通过Internet互联,对外作为一个整体提供服务的系统。它的规模大且成本低。

分布式存储系统的特性:

  • 可扩展:分布式存储系统能扩展几百到几千台的规模,随着集群数量的提升,它的系统整体性能也有线性的提升;
  • 低成本:由于分布式存储系统具有容错、负载均衡的能力,使其能构建在廉价服务器之上;
  • 高性能:单台和整体的服务器性能优越;
  • 易用:提供易用的对外接口,具备完善的监控、运维工具。

分布式存储系统挑战主要在于数据、状态信息的持久化,要求在自动迁移、自动容错、并发读写的过程中保证数据的一致性。

分布式存储技术来源涉及分布式系统和数据库,它要求实现:

  1. 数据分布均匀;
  2. 数据一致性;
  3. 容错能力;
  4. 事务与并发控制;
  5. 易用性;
  6. 负载均衡;
  7. 数据的压缩和解压缩问题;

分布式存储面临的数据大致可以分为三类:

  • 非结构化数据:视频、图片等;
  • 半结构化数据:Html文档等,模式结构与数据混在一起;
  • 结构化数据:一般存储在数据库中,由二维结构表表示。

分布式存储系统可以分为四类:

  • 分布式文件系统:例如GFS、Moosefs等;
  • 分布式键值系统:例如Amazon Dynamo
  • 分布式表格系统:例如Hbase,其存储依赖分布式文件系统;
  • 分布式数据库:例如:OceanBase

 

分布式文件系统

分布式文件系统用于存储图片视频等非结构化数据。

分布式文件系统存储三种类型的数据:Blob对象、定长块、大文件。

在分布式文件系统实现层面,分布式系统内部按照数据块来组织数据。一个大文件可以分为多个数据块,一个数据块可以分为多个Blob对象或者多个定长块。

分布式键值系统

用于存储简单半结构化数据,它提供了基于主键的CRUD功能。

系统实现有Taobao Tair、Amazon Dynamo等。

它是分布式表格系统的简单实现,主要用处为缓存(例如memcache)。

一致性哈希是分布式键值系统中常用的数据分布式技术,被用在Amazon Dynamo上而变得有名。

 

分布式表格系统

分布式表格系统用于存储复杂半结构化数据,支持主键CRUD以及扫描主键范围。分布式表格以表格为单位组织数据,每行有主键标识。

分布式表格系统借鉴了关系数据库中的很多技术,主要应用于对单张表格的操作。但是不支持多表操作。

分布式表格不要求多个数据行包含相同类型的列。

 

分布式数据库

分布式数据库采用二维表格组织数据,提供SQL查询,多表操作以及事务和并发控制功能,它的主要应用有mysql数据库分片集群。

传统的关系型数据库以及二维关系模型很难高效扩展到多个存储节点上,其还存在高并发的性能问题。

为了解决关系型数据库扩展性、高兴发性能问题,引入了NoSql非关系型数据库(memcache)。

 


http://chatgpt.dhexx.cn/article/QVdTPnTF.shtml

相关文章

分布式系列之开源分布式存储技术分析

分布式存储在云计算及容器技术中将广泛使用,本文仅简单介绍了下几个主流的开源分布式技术,整个分布式存储系列相当复杂,文中介绍略微粗浅且当引子。 1、集中式存储和分布式存储 1.1 存储类型 常见的存储类型有三种:块存储、文件…

浅谈分布式存储架构: IPFS和HDFS

分布式存储架构是一个复杂的系统工程,针对特定应用的数据存储有不同的系统架构解决方案。不同的存储方法会影响存储性能、存储成本、冗余度、工程复杂性等。 分布式存储的历史 分布式存储最早是由谷歌提出的,其目的是通过廉价的服务器来解决大规模&…

开源分布式存储架构概览

关注「开源Linux」,选择“设为星标” 回复「学习」,有我为您特别筛选的学习资料~ 材料提纲包括三部分内容: 1、基本思想和关注的问题 2、四种开源分布式存储系统概览(HDFS 、GlusterFS 、OpenStack Swift、Ceph) 3、以…

FISCO BCOS 2.0原理解析: 分布式存储架构设计

FISCO BCOS 2.0新增对分布式数据存储的支持,克服了本地化数据存储的诸多限制。 在FISCO BCOS 1.0中,节点采用MPT数据结构,通过LevelDB将数据存储于本地,这种模式受限于本地磁盘大小,当业务量增大时数据会急剧膨胀&…

杉岩PACS影像系统分布式存储架构

该医院创建于1999年,是深圳市政府投资建成的集医疗、教学、科研和预防为一体的现代化三级综合性医院。2017年通过三级甲等医院复审。2018年,医院年门急诊总量约292万人次,年出院病人近7.4万人次,年手术量4.9万台次。 该院在深圳有…

Ceph分布式存储 原理+架构图详解

分布式存储Ceph ceph介绍 ceph是一个统一的、分布式的存储系统,设计初衷式提供较好的性能(io)、可靠性(没有单点故障)和可扩展性(未来可以理论上无限扩展集群规模),这三点也是集群架构所追求的。 统一性 : 意味着我们可以仅凭ceph这一套存储系统&…

几种分布式存储组网架构参考

作 者: NGDCN 原文链接:几种分布式存储组网架构参考 - NGDCN 版 权: 本文由 NGDCN 于2022-11-12原创发布在 NGDCN,未经许可,禁止转载。 1、名词解释 ◼ VBS:云硬盘备份(Volume …

谈谈Java内存模型

谈谈Java内存模型 什么是JMM为什么需要这种规范呢?三大特性在Java中是怎么满足的呢? 什么是JMM Java Memory Model ,Java内存模型,是一种共享内存系统中多线程程序读写操作行为的规范,它是一种屏蔽了各种硬件和操作系…

Java内存模型及管理

1. 概述 多任务和高并发是衡量一台计算机处理器的能力重要指标之一。一般衡量一个服务器性能的高低好坏,使用每秒事务处理数(Transactions Per Second,TPS)这个指标比较能说明问题,它代表着一秒内服务器平均能响应的请…

什么是Java内存模型

概述:本文向您介绍Java内存模型的概念,在C或C中, 利用不同操作平台下的内存模型来编写并发程序;Java利用了自身虚拟机的优势, 使内存模型不束缚于具体的处理器架构,真正实现了跨平台。 内存模型 (memory model) 内存模型描述的是程…

详说Java内存模型(JMM)

文章目录 什么是Java内存模型为什么提出内存模型Java主内存与工作内存JMM三大特性可见性有序性原子性 并发总结 什么是Java内存模型 Java内存模型就是(Java Memory Model),它规范了Java虚拟机与计算机内存是如何协同工作的。Java虚拟机就是一…

详解Java内存模型

文章目录 一、简介二、处理器、高速缓冲、主内存间的交互关系三、Java线程、工作内存和主内存的交互关系四、8大原子操作五、8大Happens-Before原则 一、简介 Java内存模型(JMM)是线程间通信的控制机制,JMM定义了主内存和线程工作内存之间的抽…

Java内存模型的一点理解

关于Java内存模型的问题 文章目录 前言一、Java内存模型二、其中一些指向问题1.内存指向问题为什么? 总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要…

【Java】Java内存模型

1.什么是Java内存模型 Java内存模型(Java Memory Model,JMM)是一种抽象的,不存在的概念。是一种屏蔽了各种硬件和操作系统的访问差异的,保证了Java程序在各种平台下对内存的访问都能保证效果一致的机制及规范。 Java内…

2.什么是JAVA内存模型?

为什么要设计JAVA内存模型? 小陈:老王,看了上一篇的《CPU多级缓存模型》,有个疑问为什么还要有JAVA内存模型啊? 老王:这么来说吧,CPU多级缓存模型,只是一个规范,但是底层…

Java内存模型是什么

网上有很多关于Java内存模型的文章,在《深入理解Java虚拟机》和《Java并发编程的艺术》等书中也都有关于这个知识点的介绍。但是,很多人读完之后还是搞不清楚,甚至有的人说自己更懵了。本文,就来整体的介绍一下Java内存模型&#…

Java内存模型是什么,为什么要有Java内存模型,Java内存模型解决了什么问题等。。。

本文中,有很多定义和说法,都是笔者自己理解后定义出来的。希望能够让读者可以对Java内存模型有更加清晰的认识。当然,如有偏颇,欢迎指正。 为什么要有内存模型 在介绍Java内存模型之前,先来看一下到底什么是计算机内存…

Java内存模型相关面试题

一、谈谈你对Java内存模型的理解可以吗? 对于Java内存模型大家千万不能和JVM内存模型弄混了,不一样的; JVM内存模型是指JVM的内存分区,就是JVM分了几个区域;而Java内存模型是一种虚拟机规范。 首先来看下面一段代码&…

什么是Java内存模型?

点击上方“程序员小灰”,选择“置顶公众号” 有趣有内涵的文章第一时间送达! 本文转载自公众号 占小狼的博客 说”JVM内存模型“,有人会说是关于JVM内存分布(堆栈,方法区等)这些介绍,也有地方说…

Java面试--Java内存模型

面试题:你了解Java内存模型吗?(顺丰面试题) 面试题:程序内存的分布,五个部分(360面试题) 一、Java程序的执行过程: Java源代码文件(.java后缀)会被Java编译器编译为字节码文件(.class后缀),然后由JVM中…