架构师之路 - 存储

JAVA日知录 一个关注| Java | Spring Boot | Spring Cloud | 干货分享的博客网站 本文由博客端 http://www.javadaily.cn 主动推送
本贴最后更新于 436 天前,其中的信息可能已经东海扬尘

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

存储分类

存储架构

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

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

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

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

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

存储使用方式

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

image.png

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

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

**对象存储:**主要操作对象是对象 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 存储架构一样,外部存储设备都是直接挂接在服务器内部总线上,数据存储设备是整个服务器结构的一部分,任何客户端想要访问存储设备上的资源就必须要通过服务器。

image.png

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

image.png

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

image.png

主流存储厂商及产品

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

开源的存储产品有:

分布式存储架构

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

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

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

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

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

FastDFS 典型架构

image.png

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

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

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

Swift 典型架构

image.png

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

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

小结

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

  • 硬件基础
    3 引用
  • 架构

    我们平时所说的“架构”主要是指软件架构,这是有关软件整体结构与组件的抽象描述,用于指导软件系统各个方面的设计。另外还有“业务架构”、“网络架构”、“硬件架构”等细分领域。

    133 引用 • 440 回帖

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...