架构师之路 - 存储架构

本文涉及的产品
文件存储 NAS,50GB 3个月
简介: 架构师之路 - 存储架构

架构师在做架构设计时一定绕不开存储的设计,本文我们一起来了解一下存储的相关知识。主要内容包括存储使用方式、常见协议、链接方式以及分布式存储架构中的典型架构案例。


存储分类


存储架构

从架构角度分类存储一般可以分为:集中式存储和分布式存储。

「集中式存储」的主要特点是能把所有数据保存在一个地方,各地办公室的远程终端通过电缆同中央计算机(主机)相联,保证了每个终端使用的都是同一信息。

集中式存储一般是商业的且比较昂贵。

「分布式存储」,是将数据分散存储在多台独立的设备上,采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。

分布式存储一般结合管理软件自建。


存储使用方式

从使用者的角度对存储进行分类可以分为三类:块存储,文件存储,对象存储。

使用方式分类

「块存储:」 一般体现形式是卷或者硬盘,主要操作对象是磁盘,将裸磁盘空间整个映射给主机使用。在此种方式下操作系统需要对挂载的裸硬盘进行分区、格式化后,才能使用。块存储无法进行文件共享。

「文件存储:」 一般体现形式是目录和文件,数据以文件的方式存储和访问,按照目录结构进行组织。此种方式也需要挂载,挂载后为一个目录,可直接存取其中的文件;不需要格式化。

「对象存储:」 主要操作对象是对象Object,本质上是键值对存储系统,不需要挂载,直接通过应用接口访问。


存储协议

从协议角度分类存储可以分为NFS、CIFS、ISCSI协议。

「NFS (Network File System,网络文件系统)」 是当前主流异构平台共享文件系统之一,主要应用于Unix环境下。通过使用NFS,用户和程序可以象访问本地文件一样访问远端系统上的文件,使得每个计算机的节点能够像使用本地资源一样方便地使用网上资源。换言之,NFS 可用于不同类型计算机、操作系统、网络架构和传输协议运行环境中的网络文件远程访问和共享。「针对共享文件存储。」

「CIFS(Common Internet File System,公共互联网文件系统)」 主要应用在NT/Windows环境下,其工作原理是让CIFS协议运行于TCP/IP通信协议之上,让Unix计算机可以在网络邻居上被Windows计算机看到。「针对共享文件存储。」

「ISCSI (Internet SCSI/SCSI over IP)」 :主要应用在Windows环境下,适用于TCP/IP通讯协议,是通过TCP/IP网络传输文件时的文件组织格式和数据传输方式。「针对数据块存储。」


存储链接方式

从存储链接角度分类存储可以分为DAS、NAS、SAN三类。

「DAS(Direct Attached Storage):」

直接附加存储方式与我们普通的PC存储架构一样,外部存储设备都是直接挂接在服务器内部总线上,数据存储设备是整个服务器结构的一部分,任何客户端想要访问存储设备上的资源就必须要通过服务器。

DAS架构

「NAS(Network Attached Storage):」

在NAS存储结构中,存储系统不再通过I/O总线附属于某个特定的服务期或客户机,而是直接通过网络接口直接与网络相连,用户通过网络访问。NAS实际上是带有一个“瘦服务器”的存储设备,作用类似于一个专用的文件服务器,而不是传统通用服务器,去掉了大多数功能,仅仅提供文件系统功能,用于存储服务。

NAS架构

「SAN(Storage Area Network):」

SAN是一种以网络为中心的存储结构,不同于普通以太网,SAN是位于服务器的后端,为连接服务器、磁盘阵列、带库等存储设备而建立的高性能「专用网络(光纤通道)」

SAN 架构


主流存储厂商及产品

商业存储厂商有:EMC、NetApp、DELL、Huawei、曙光等

开源的存储产品有:

  • FastDFS(对象)
  • Swift(对象)
  • HDFS(对象)
  • Lustre(块)
  • GlusterFS(文件)
  • Ceph(块、文件、对象)

分布式存储架构


集中式存储一般使用商业软件且由厂家负责安装配置,我们这里主要讲一下分布式存储架构。

按照元数据的管理方式,存储架构可分为对称式和非对称式两种架构模式。

在对称式架构中每个节点的角色均等,共同管理和维护元数据,节点间通过高速网络进行信息同步和互斥锁等操作。(每台节点安装的组件一样)

而非对称式集群文件系统中,有专门的一个或者多个节点负责管理元数据,其他节点需要频繁与元数据节点通信以获取最新的元数据比如目录列表、文件属性等等。(元数据节点与存储节点分离)

接下来我们看看两种不同架构模式下的代表产品:FastDFS 和 swift。


FastDFS典型架构

FastDFS架构

FastDFS采用的是非对称架构,分为Tracker server和Storage server。

Tracker server作为中心结点,管理集群拓扑结构,其主要作用是负载均衡和调度。

Storage server 以卷为单位组织,一个卷内包含多台storage机器,每个卷中的服务器是镜像关系,数据互为备份,存储空间以卷内容量最小的storage为准,所以建议group内的多个storage尽量配置相同,以免造成存储空间的浪费。


Swift典型架构

swift架构

Swift采用的是完全对称、面向资源的分布式系统架构设计,所有组件都可扩展。

Swift将整个存储分为三个层次:Account、Container 和 Object。


小结


本文给大家介绍了存储的相关知识,存储这一块的内容比较枯燥大家了解即可,重点需要关注分布式存储架构。


如果本文对你有帮助,别忘记给我个三连:点赞,转发,评论咱们下期见!

收藏 等于白嫖点赞 才是真情!

相关实践学习
块存储快速入门
块存储是阿里云为云服务器ECS提供的块设备产品。通过体验挂载数据盘、分区格式化数据盘(Linux)、创建云盘快照、重新初始化数据盘、使用快照回滚云盘和卸载数据盘等功能,带您快速入门块存储。
目录
相关文章
|
3月前
|
存储 架构师 测试技术
架构之道——人人都是架构师
本文的探讨和编写主要围绕三个方面:架构是什么?架构师要解决的问题有哪些?解决这些问题的方法论是什么?最后作者希望人人都能具备架构师思维。
|
3月前
|
存储 缓存 前端开发
Django 后端架构开发:存储层调优策略解析
Django 后端架构开发:存储层调优策略解析
50 2
|
25天前
|
缓存 NoSQL Java
秒杀圣经:10Wqps秒杀,16大架构绝招,一文帮你秒变架构师 (2)
高并发下的秒杀系统设计是一个复杂的挑战,涉及多个关键技术点。40岁老架构师尼恩在其读者交流群中分享了16个关键架构要点,帮助解决高并发下的秒杀问题,如每秒上万次下单请求的处理、超卖问题的解决等。这些要点包括业务架构设计、流量控制、异步处理、缓存策略、限流熔断、分布式锁、消息队列、数据一致性、存储架构等多个方面。尼恩还提供了详细的实战案例和代码示例,帮助读者全面理解和掌握秒杀系统的架构设计。此外,他还分享了《尼恩Java面试宝典》等资源,帮助读者在面试中脱颖而出。如果你对高并发秒杀系统感兴趣,可以关注尼恩的技术自由圈,获取更多详细资料。
秒杀圣经:10Wqps秒杀,16大架构绝招,一文帮你秒变架构师 (2)
|
25天前
|
存储 监控 分布式数据库
百亿级存储架构: ElasticSearch+HBase 海量存储架构与实现
本文介绍了百亿级数据存储架构的设计与实现,重点探讨了ElasticSearch和HBase的结合使用。通过ElasticSearch实现快速检索,HBase实现海量数据存储,解决了大规模数据的高效存储与查询问题。文章详细讲解了数据统一接入、元数据管理、数据一致性及平台监控等关键模块的设计思路和技术细节,帮助读者理解和掌握构建高性能数据存储系统的方法。
百亿级存储架构: ElasticSearch+HBase 海量存储架构与实现
|
25天前
|
缓存 NoSQL Java
秒杀圣经:10Wqps高并发秒杀,16大架构杀招,帮你秒变架构师 (1)
高并发下,如何设计秒杀系统?这是一个高频面试题。40岁老架构师尼恩的读者交流群中,近期有小伙伴在面试Shopee时遇到了这个问题,未能很好地回答,导致面试失败。为此,尼恩进行了系统化、体系化的梳理,帮助大家提升“技术肌肉”,让面试官刮目相看。秒杀系统设计涉及16个架构要点,涵盖业务架构、流量架构、异步架构、分层架构、缓存架构、库存扣减、MQ异步处理、限流、熔断、降级、存储架构等多个方面。掌握这些要点,可以有效应对高并发场景下的秒杀系统设计挑战。
秒杀圣经:10Wqps高并发秒杀,16大架构杀招,帮你秒变架构师 (1)
|
2月前
|
存储 监控 数据可视化
SLS 虽然不是直接使用 OSS 作为底层存储,但它凭借自身独特的存储架构和功能,为用户提供了一种专业、高效的日志服务解决方案。
【9月更文挑战第2天】SLS 虽然不是直接使用 OSS 作为底层存储,但它凭借自身独特的存储架构和功能,为用户提供了一种专业、高效的日志服务解决方案。
142 9
|
4月前
|
存储 运维 数据库
业务系统架构实践问题之业务模型和存储模型解耦的重要性问题如何解决
业务系统架构实践问题之业务模型和存储模型解耦的重要性问题如何解决
|
4月前
|
存储 NoSQL 固态存储
架构设计篇问题之将计数全部存储在Redis中的问题如何解决
架构设计篇问题之将计数全部存储在Redis中的问题如何解决
|
9天前
|
弹性计算 Kubernetes Cloud Native
云原生架构下的微服务设计原则与实践####
本文深入探讨了在云原生环境中,微服务架构的设计原则、关键技术及实践案例。通过剖析传统单体架构面临的挑战,引出微服务作为解决方案的优势,并详细阐述了微服务设计的几大核心原则:单一职责、独立部署、弹性伸缩和服务自治。文章还介绍了容器化技术、Kubernetes等云原生工具如何助力微服务的高效实施,并通过一个实际项目案例,展示了从服务拆分到持续集成/持续部署(CI/CD)流程的完整实现路径,为读者提供了宝贵的实践经验和启发。 ####
|
6天前
|
监控 安全 应用服务中间件
微服务架构下的API网关设计策略与实践####
本文深入探讨了在微服务架构下,API网关作为系统统一入口点的设计策略、实现细节及其在实际应用中的最佳实践。不同于传统的摘要概述,本部分将直接以一段精简的代码示例作为引子,展示一个基于NGINX的简单API网关配置片段,随后引出文章的核心内容,旨在通过具体实例激发读者兴趣,快速理解API网关在微服务架构中的关键作用及实现方式。 ```nginx server { listen 80; server_name api.example.com; location / { proxy_pass http://backend_service:5000;
下一篇
无影云桌面