现有的存储系统经过长期发展,种类及其繁多,架构也各不相同,仅靠一文不可能讲得完全详尽。笔者试图在各个存储系统中,按照从底层到上层的思路,抽象出某些共性,也就是:物理层、协议层、架构层、连接层四个层次。这种层次划分不一定对所有存储系统通用,但可以帮助初学者对市面上主流的存储技术架构建立一个大体的认识,接下来我们由下往上详细分析。

物理层:

顾名思义,就是用来存储数据的各种设备。企业级存储中的存储介质包括机械磁盘(HDD)、固态硬盘(SSD)、磁带(TAPE)、光盘(Optical Disk)等,其中最常见的是以HDD和SSD为介质的存储系统。

从存储介质的维度进行分类,存储系统可分为磁盘存储、全闪存储、混闪存储、磁带库、光盘库等。

协议层:

物理层之上是协议层,在各种物理介质内,数据统一抽象成0和1的字符串,但面对各种具体的数据使用场景和不同的数据接受者,我们需要用不同的形式来传输、呈现这些数据,这就需要不同的协议。目前主流协议有很多,但大体可分为文件存储、块存储、对象存储三种。

文件存储:文件存储的目标用户是自然人。根据不同的应用要求,有不同类型的文件,每个文件一个易于理解和记住的名称。当有很多文件时,我们会以某种方式将这些文件分组到目录中。当然,我们还需要命名这些目录。除文件外,该目录还可能包含子目录,形成一个树状结构。

主要的的文件系统有:Windows的FAT、FAT32、NTFS,Linux的EXT2、EXT3、EXT4、XFS、BtrFS等。但是,在网络存储中,基础数据不是存储在本地存储介质中,而是存储在另一台服务器上,不同的客户端可以以类似于文件系统的方式访问此服务器上的文件。这种系统被称为网络文件系统。常见的网络文件系统包括 Windows 的 CIFS、UNIX 的 NFS 等。而除了网络文件系统外,FTP、HTTP也是文件存储的特殊实现,可以通过网址访问文件。

块存储:块存储是为物理层的硬盘设计的协议,所有数据被分成固定大小的块,每个块被分配一个可访问的号码。硬盘通常称为块设备。当然,除了硬盘之外,还有其他块状设备,如软盘、光盘、磁带等。块存储的常用协议是SCSI、NVMe等。

在网络存储中,服务器可以使用某些协议模拟块设备。远程客户端(可能是物理服务器或虚拟机)使用相同的协议将块设备作为本地存储介质连接起来,以分区和格式化。常见的网络存储协议是 iSCSI。

对象存储:对象存储适用于海量、无内部结构的数据,这些数据以对象的形式堆放在无数大容量的“存储桶”里。每个对象有一个唯一的标识符,其他系统可以使用标识符访问对象。当然,访问单个对象可能无法从传统意义上获取有价值的东西,它可能是一个值、一组值、一个文件的一部分、多个文件的组合,甚至一个块设备。对象存储的常用协议包括S3、SWIFT等。

架构层:

在协议层,我们了解了存储设备是如何对使用者呈现数据的,再往上,我们需要考虑如何对各个服务器、机房、资源池进行管理,我们将这一层称为架构层,可分为集中式存储和分布式存储两种。

集中式存储是基于双控制器或多控制器架构的企业级存储系统,具有较强的纵向扩展能力和一定的横向扩展能力。集中式存储的特点有高可靠、高可用、高性能等。

分布式存储是采用分布式架构的存储集群,将数据分布在不同物理位置,并通过网络把它连接起来。与传统的高端服务器、高端存储器和高端处理器不同的是,互联网公司的分布式存储系统由数量众多的、低成本和高性价比的普通 PC 服务器通过网络连接而成,横向扩展能力很强。

连接层:

连接层描述了存储系统如何与其他系统对接,形成一个面向一般用户的整体系统,因此把它放在最上层。最初的连接方案是直连存储(DAS),是指直接和计算机相连接的数据储存方式,实际上“直连式存储”这一名称本身是在网络存储方式出现以后才有的称谓;像固态硬盘、机械硬盘、光盘驱动器这一类和计算机直接相连的存储设备都是属于直连式存储设备。

之后的解决方案是存储区域网络(SAN)和网络附加存储(NAS)。存储区域网络指通过光纤通道交换机、以太网交换机等连接设备将磁盘阵列与相关服务器连接起来的高速专用存储网络。网络附加存储是一种专业的网络文件存储及文件备份设备,对不同主机和应用服务器提供文件访问服务。

也有分类把以上两种网络存储统一归入集中存储,集中存储系统的共性是包含机头(控制器)、磁盘阵列( JBOD )、交换机,还有各种辅助设备。机头中有包含两个控制器,互为备用, 避免硬件故障导致整个存储系统的不可用。机头是所有数据统一的出入口,通常包含前端端口和后端端口,前端端口用户为服务器提供存储服务,而后端端口用于扩充存储系统的容量。通过后端端口机头可以连接更多的存储设备。从这个角度来看该方式也可并入架构层。

以上分类仅是笔者的一家之言,读者不必将其理解为计算网络那样层次分明的结构,实际上各类型数据存储技术仍在不断的完善和创新,以适应日益增长和不断变化的数据存储需求,形成了多层级、广泛覆盖的产品体系结构,本文更多意义上是提供了一个从不同视角去对众多存储系统进行分类的方法。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐