随着数字化转型的深入,数据量呈现爆炸式增长,传统集中式存储在扩展性、可靠性和成本控制方面逐渐暴露出瓶颈,分布式存储通过将数据分散存储在多个独立节点上,凭借横向扩展、高可用性和弹性伸缩等优势,成为支撑云计算、大数据、人工智能等新兴技术的核心基础设施,分布式存储并非单一技术形态,而是根据数据组织方式、架构设计、应用场景等维度形成了多个类别,不同类别在性能、功能、适用场景上存在显著差异,理解这些类别的特点,有助于为业务需求选择最合适的存储方案。
按数据组织方式划分:块存储、文件存储与对象存储
这是分布式存储最核心的分类维度,直接决定了数据的访问方式和应用兼容性。
块存储:面向高性能的结构化数据访问
块存储将物理存储介质抽象为连续的“数据块”,每个数据块拥有独立地址,但无文件系统元数据(如文件名、目录结构),客户端需通过块存储协议(如iSCSI、FC、Fibre Channel over Ethernet)直接访问这些数据块,操作系统将其识别为本地磁盘,其核心优势在于“无文件系统封装”,数据以裸设备形式存在,减少了I/O转换开销,支持随机读写和低延迟访问。
典型技术实现包括Ceph的RBD(RADOS Block Device)、VMware vSAN等,块存储广泛应用于需要高性能的场景,如数据库(MySQL、Oracle)、虚拟化平台(VMware、KVM)的虚拟磁盘存储,以及高性能计算(HPC)中的临时数据存储,但块存储的缺点也很明显:管理复杂,需依赖客户端操作系统进行文件系统管理;扩展性受限于存储网络带宽;多客户端并发访问时需依赖锁机制,可能影响性能。
文件存储:兼容传统文件系统的共享访问
文件存储在数据块基础上增加了文件系统元数据,通过目录树结构组织数据,客户端通过标准文件系统接口(如NFS、SMB、HDFS)访问数据,就像操作本地文件一样,分布式文件存储将元数据和数据分散存储在不同节点,元数据节点负责管理文件名、权限、位置等信息,数据节点负责存储实际文件内容。
Hadoop HDFS(Hadoop Distributed File System)是分布式文件存储的典型代表,专为大数据设计,支持大文件存储(GB/TB级)和流式读写;CephFS则通过融合Ceph存储集群,提供POSIX兼容的文件访问接口,文件存储的优势在于“共享访问”和“易用性”,多个客户端可同时读写同一文件,适合企业文件共享、媒体处理(视频/音频编辑)、内容管理等场景,但元数据节点可能成为性能瓶颈,尤其在小文件(KB级)场景下,元数据访问压力过大会导致系统性能下降。
对象存储:面向海量非结构化数据的弹性存储
对象存储以“对象”为基本单位,每个对象包含三部分:数据本身、元数据(描述数据属性,如创建时间、格式、权限)和全局唯一ID,对象存储无目录层级结构,所有对象通过ID直接访问,通过元数据实现灵活检索,其架构通常由存储节点(存储对象)、元数据节点(管理元数据索引)和API网关(提供HTTP/RESTful接口)组成。
Amazon S3(Simple Storage Service)是对象存储的标杆,开源实现包括MinIO、Swift等,对象存储的核心优势在于“无限扩展”和“低成本”,通过将元数据分散存储和采用扁平化架构,轻松应对PB/EB级数据存储;基于http接口的访问方式使其与云原生应用深度集成,适合静态资源存储(图片、视频、文档)、大数据归档、备份容灾等场景,但对象存储的读写性能较低,不支持随机修改(需整体覆盖对象),不适合需要低延迟、高并发读写的在线事务处理(OLTP)场景。
按架构类型划分:主从架构、对等架构与分层架构
分布式存储的架构设计直接影响系统的可靠性、扩展性和运维复杂度,常见架构类型包括主从架构、对等架构和分层架构。
主从架构:元数据集中管理的经典模式
主从架构中,节点分为“主节点”(Master)和“从节点”(Worker),主节点负责元数据管理、任务调度和集群状态监控,从节点负责数据存储和I/O处理,HDFS采用典型的主从架构:NameNode作为主节点管理文件系统的元数据,DataNode作为从节点存储数据块,主从架构的优势在于元数据管理简单,一致性维护容易;但主节点存在单点故障风险(需通过HA机制解决),且扩展性受限于主节点的处理能力,不适合元数据访问压力极大的场景。
对等架构:无中心化的高可用设计
对等架构(也称“去中心化架构”)中,所有节点地位平等,既可作为存储节点,也可参与元数据管理,Ceph是典型的对等架构,其核心组件OSD(Object Storage Device)节点存储数据和元数据,通过CRUSH算法实现数据分布和故障自愈,对等架构的优势在于“高可用性”,无单点故障风险,节点扩展时无需协调主节点;但元数据管理复杂,需通过分布式一致性协议(如Paxos、Raft)保证数据一致性,网络通信开销较大。
分层架构:计算与存储分离的云原生模式
分层架构将存储系统分为“控制平面”和“数据平面”,控制平面负责元数据管理、调度策略和集群运维,数据平面负责数据存储和I/O服务,计算与存储分离是分层架构的核心特征,存储资源通过高速网络(如RDMA、RoCE)挂载到计算节点,这种架构在云环境中广泛应用,如 酷番云 COS、阿里云OSS,以及开源的Dragonfly,分层架构的优势在于“资源解耦”,计算和存储可独立扩展,支持多租户和弹性伸缩;但依赖高速网络,网络延迟可能影响性能,且需解决数据平面与控制平面的协同问题。
按应用场景划分:通用存储、高性能存储与归档存储
除了数据组织和架构维度,分布式存储还可根据应用场景的性能、可靠性、成本需求进一步细分。
通用分布式存储:平衡性能与成本的“万金油”
通用分布式存储兼顾性能、可靠性和成本,适用于大多数企业级应用场景,如中小企业的文件共享、数据库存储、虚拟化平台等,其典型特征是多协议支持(同时支持块、文件、对象接口),中等性能(IOPS在10万级以下),成本适中,Ceph的全栈支持(块、文件、对象)使其成为通用存储的代表,被广泛应用于OpenStack云平台和本地数据中心。
高性能分布式存储:聚焦低延迟与高并发
高性能分布式存储针对在线事务处理(OLTP)、实时分析、高频交易等场景设计,通过全闪存介质、RDMA网络、并行I/O优化等技术,实现微秒级延迟和百万级IOPS,典型技术包括华为OceanStor分布式存储、Dell EMC PowerScale,其核心是通过SSD缓存、分布式锁优化和I/O路径缩短,满足数据库(如TiDB、Redis)、AI训练等低延迟场景需求。
归档分布式存储:低成本的海量数据“冷存储”
归档分布式存储专注于海量数据的长期保存,如医疗影像、科研数据、视频监控等,特点是数据写入后很少修改,但对存储成本极度敏感,其通过高密度HDD介质、数据压缩/去重、低功耗节点设计,将存储成本降至TB级以下甚至更低,典型代表包括Amazon S3 Glacier、MinIO归档模式,以及国内厂商的冷存储服务,通常通过“热-温-冷”数据分层策略,将不活跃数据自动迁移至归档存储,降低总体拥有成本(TCO)。
分布式存储的类别划分反映了技术对不同业务需求的适配:块存储满足高性能结构化数据访问,文件存储兼容传统文件共享场景,对象存储支撑海量非结构化数据弹性扩展;主从架构简化元数据管理,对等架构提升高可用性,分层架构适配云原生环境;通用存储平衡成本与性能,高性能存储聚焦低延迟,归档存储优化长期保存成本,在实际选型中,需综合考虑数据类型(结构化/非结构化)、访问模式(随机/顺序、低延迟/高吞吐)、扩展需求(横向扩展能力)和成本预算,通过技术测试验证性能匹配度,才能构建既满足当前业务需求又具备未来扩展能力的分布式存储底座。
memcached和redis的区别
medis与Memcached的区别传统MySQL+ Memcached架构遇到的问题 实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务数据量的不断增加,和访问量的持续增长,我们遇到了很多问题: 需要不断进行拆库拆表,Memcached也需不断跟着扩容,扩容和维护工作占据大量开发时间。 与MySQL数据库数据一致性问题。 数据命中率低或down机,大量访问直接穿透到DB,MySQL无法支撑。 4.跨机房cache同步问题。 众多NoSQL百花齐放,如何选择 最近几年,业界不断涌现出很多各种各样的NoSQL产品,那么如何才能正确地使用好这些产品,最大化地发挥其长处,是我们需要深入研究和思考的问题,实际归根结底最重要的是了解这些产品的定位,并且了解到每款产品的tradeoffs,在实际应用中做到扬长避短,总体上这些NoSQL主要用于解决以下几种问题 1.少量数据存储,高速读写访问。 此类产品通过数据全部in-momery 的方式来保证高速访问,同时提供数据落地的功能,实际这正是Redis最主要的适用场景。 2.海量数据存储,分布式系统支持,数据一致性保证,方便的集群节点添加/删除。 3.这方面最具代表性的是dynamo和bigtable 2篇论文所阐述的思路。 前者是一个完全无中心的设计,节点之间通过gossip方式传递集群信息,数据保证最终一致性,后者是一个中心化的方案设计,通过类似一个分布式锁服务来保证强一致性,数据写入先写内存和redo log,然后定期compat归并到磁盘上,将随机写优化为顺序写,提高写入性能。 free,auto-sharding等。 比如目前常见的一些文档数据库都是支持schema-free的,直接存储json格式数据,并且支持auto-sharding等功能,比如mongodb。 面对这些不同类型的NoSQL产品,我们需要根据我们的业务场景选择最合适的产品。 Redis适用场景,如何正确的使用 前面已经分析过,Redis最适合所有数据in-momory的场景,虽然Redis也提供持久化功能,但实际更多的是一个disk-backed的功能,跟传统意义上的持久化有比较大的差别,那么可能大家就会有疑问,似乎Redis更像一个加强版的Memcached,那么何时使用Memcached,何时使用Redis呢?如果简单地比较Redis与Memcached的区别,大多数都会得到以下观点: 1Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,zset,hash等数据结构的存储。 2Redis支持数据的备份,即master-slave模式的数据备份。 3Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。 抛开这些,可以深入到Redis内部构造去观察更加本质的区别,理解Redis的设计。 在Redis中,并不是所有的数据都一直存储在内存中的。 这是和Memcached相比一个最大的区别。 Redis只会缓存所有的 key的信息,如果Redis发现内存的使用量超过了某一个阀值,将触发swap的操作,Redis根据“swappability = age*log(size_in_memory)”计 算出哪些key对应的value需要swap到磁盘。 然后再将这些key对应的value持久化到磁盘中,同时在内存中清除。 这种特性使得Redis可以 保持超过其机器本身内存大小的数据。 当然,机器本身的内存必须要能够保持所有的key,毕竟这些数据是不会进行swap操作的。 同时由于Redis将内存 中的数据swap到磁盘中的时候,提供服务的主线程和进行swap操作的子线程会共享这部分内存,所以如果更新需要swap的数据,Redis将阻塞这个 操作,直到子线程完成swap操作后才可以进行修改。 使用Redis特有内存模型前后的情况对比: VM off: 300k keys, 4096 bytes values: 1.3G used VM on:300k keys, 4096 bytes values: 73M used VM off: 1 million keys, 256 bytes values: 430.12M used VM on:1 million keys, 256 bytes values: 160.09M used VM on:1 million keys, values as large as you want, still: 160.09M used当 从Redis中读取数据的时候,如果读取的key对应的value不在内存中,那么Redis就需要从swap文件中加载相应数据,然后再返回给请求方。 这里就存在一个I/O线程池的问题。 在默认的情况下,Redis会出现阻塞,即完成所有的swap文件加载后才会相应。 这种策略在客户端的数量较小,进行 批量操作的时候比较合适。 但是如果将Redis应用在一个大型的网站应用程序中,这显然是无法满足大并发的情况的。 所以Redis运行我们设置I/O线程 池的大小,对需要从swap文件中加载相应数据的读取请求进行并发操作,减少阻塞的时间。 如果希望在海量数据的环境中使用好Redis,我相信理解Redis的内存设计和阻塞的情况是不可缺少的。
大数据都需要什么技术
1、数据采集:ETL工具负责将分布的、异构数据源中的数据如关系数据、平面数据文件等抽取到临时中间层后进行清洗、转换、集成,最后加载到数据仓库或数据集市中,成为联机分析处理、数据挖掘的基础。 2、数据存取:关系数据库、NOSQL、SQL等。 3、基础架构:云存储、分布式文件存储等。 4、数据处理:自然语言处理(NLP,NaturalLanguageProcessing)是研究人与计算机交互的语言问题的一门学科。 处理自然语言的关键是要让计算机理解自然语言,所以自然语言处理又叫做自然语言理解(NLU,NaturalLanguage Understanding),也称为计算语言学(Computational Linguistics。 一方面它是语言信息处理的一个分支,另一方面它是人工智能(AI, Artificial Intelligence)的核心课题之一。 5、统计分析:假设检验、显著性检验、差异分析、相关分析、T检验、方差分析、卡方分析、偏相关分析、距离分析、回归分析、简单回归分析、多元回归分析、逐步回归、回归预测与残差分析、岭回归、logistic回归分析、曲线估计、因子分析、聚类分析、主成分分析、因子分析、快速聚类法与聚类法、判别分析、对应分析、多元对应分析(最优尺度分析)、bootstrap技术等等。 6、数据挖掘:分类 (Classification)、估计(Estimation)、预测(Prediction)、相关性分组或关联规则(Affinity grouping or association rules)、聚类(Clustering)、描述和可视化、Description and Visualization)、复杂数据类型挖掘(Text, Web ,图形图像,视频,音频等)7、模型预测:预测模型、机器学习、建模仿真。 8、结果呈现:云计算、标签云、关系图等。
广域网加速技术有几大分类?
广域网加速技术主要有一下几种:
1、数据缓存技术
高速缓存技术很早就出现,它主要用来解决带宽瓶颈、应用延迟问题。 目前市场上有一些产品比较典型的就是采用WEB文件缓存和数据字节缓存技术这两种。 将WEB文件缓存到设备中,主要是针对WEB 应用访问,对于TCP应用是没有效果的;另一种是动态缓存,将数据压缩以后按照重复性频率较高的字节以指针的方式缓存于设备中,下次遇到同样的数据时,将直接从缓存中存取。
2、内容分发网络
CDN(Content Delivery Network)是一个经策略性部署的整体系统,能够帮助用户解决分布式存储、负载均衡、网络请求的重定向和内容管理等问题,从而一定程度解决跨越广域网访问互联网服务器的带宽瓶颈、数据丢包、TCP延迟问题。 CDN的目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络“边缘”,使用户可以就近取得所需的内容,解决 Internet 网络拥塞状况,提高用户访问网站的响应速度。 此方案对大型网站较为有效。
3、TCP优化及应用优化
专用的TCP加速或应用加速设备可以帮助改善网络环境中的应用性能,如大带宽链路、大文件传输、高时延、相当大的网络交易等。 TCP优化主要解决数据丢包、TCP延迟问题;应用优化主要解决应用延迟问题(如果一个应用在应用层就受到应用消息大小和数据回应及确认需要的限制时,不管带宽有多充裕,也不管是否已经避免了由TCP协议的端到端应答机制造成延迟瓶颈或是TCP的慢启动和拥塞控制行为引起延迟瓶颈,应用延迟不可避免。
目前市场上的专业TCP加速设备及应用加速设备都需要在企业链路的两端部署,代价非常高。 这些专用的加速器都需要自己的专门协议才可以达到加速效果,也就是说基于网络是不透明的。 后果就是,网管人员或系统无法看到正在广域网上运行着的应用,还有必要为这些设备所用的专用传输协议在安全设备上特别打开通道,带来安全隐患。
4、数据压缩
压缩可提高应用性能,创造更大的吞吐率,更快的性能以及更大的网络容量。 压缩可更快地传输数据,让更多的流量通过有限的广域网链路。 当获得更多的带宽时,最关键业务应用的性能便可得到大大的提高。 数据压缩需要设备成对使用,部署在连接的两个端点。
大部分的企业都会在其各个分支机构分别部署一台设备,这样各分支机构之间以及与主站点之间都可以交换流量。 这种部署方案可充分利用整个企业的所有带宽。 每个设备压缩Outbound流量,接收终点的设备解压缩Inbound流量,将流量恢复至原始状态。 数据压缩技术主要解决带宽瓶颈,具有广泛适用性。
5、服务质量控制QoS
服务质量控制或带宽管理QoS有助于减轻带宽的竞争。 对于宝贵的WAN带宽,应用之间会有竞争,控制竞争的一个有效方法是利用带宽分配和服务质量(QoS)工具。
IT人员能够根据应用业务规则分配WAN上应用的优先级,确保该应用能够获得足够的带宽,从而提高与业务紧密相关的生产率。














发表评论