存储阵列通过在单个设备内堆叠更多的存储单元,以追求更高的容量和速度。然而,存储阵列解决了单一磁盘的容量和性能局限,但是并没有从整个存储系统角度考虑,其扩展性、稳定性,以及共享访问等方面的问题并未得到很好的解决。

随着存储协议(例如SCSI协议、FC协议等)的发展,存储网络化已经成为必然的发展方向。从最初的SAN存储到集中式网络存储NAS,再到通过分布式架构

进行横向扩展的并行存储、P2P(Peer-to-Peer,对等网络)存储及云存储架构,本文将沿着历史的进程逐一介绍网络存储体系结构

的发展。

一、DAS

DAS是存储设备与计算机直接相连,不经过任何网络或网络设备。人们熟知的HDD、SSD等与计算机直接相连的存储设备均可以称作DAS。

内部DAS(存储设备在计算机内部)中,存储设备使用HBA和计算机连接;外部DAS(存储设备在计算机外部)中,接口协议包括SCSI协议和SATA协议。外部DAS可以连接多个磁盘,并通过RAID技术实现磁盘阵列来扩充容量。

受限于物理性能,DAS具有扩展性差、距离受限等缺陷。因此,DAS适用于存储系统必须直接连接到服务器且对数据存储需求较小的场景,或者服务器较为分散,难以通过网络连接的场景。

二、NAS

NAS(Network Attached Storage,网络附接存储

)是一种连接到基于IP局域网的文件系统共享设备。NAS源于用户对于共享文件的需求。

然而,在多台计算机间共享文件并不是一件容易的事情。例如,当某一个用户关闭计算机后,这台机器上的文件将变得不可访问。为了解决这一个问题,出现了专有的存储服务器

,用户可以通过网络来访问专有的存储服务器,以获取相应的数据,这就是早期NAS

的雏形。NAS的核心思想是将存储设备和服务器分离,数据被单独管理。

NAS架构

NAS架构如图所示,其中包含一个专有的存储服务器及网卡。在这个存储服务器上,通常管理着一个存储阵列,例如RAID子系统。

客户端可以使用基于IP网络的网络文件协议向NAS系统发出多种文件级别的I/O请求,以此对NAS系统中的文件进行操作。NAS系统和客户端的通信协议一般有NFS协议(UNIX系统和Linux系统中)、CIFS协议等(Windows主机间进行网络文件共享)。

NAS的设计可以将文件I/O操作卸载到专用的存储服务器上,从而减少了客户端上的数据管理负担,释放了客户端上的处理器及内存资源。同时,依赖网络文件协议的标准化定制,NAS可以兼容多个平台,具有很强的灵活性。

NAS系统可以被用作中小型企业的中心化存储系统。这可以降低企业的数据存储和管理的成本。同时,通过NAS系统,企业可以更好地实现数据的共享、备份、容错等功能。NAS系统还适用于并发频繁的文件共享访问场景,NAS系统能够在提供高性能访问的同时,提供基于文件级别的安全性保障。

三、SAN

SAN(Storage Area Network,存储区域网)将计算机和存储设备通过专用链路互连,从而实现将数据的存储和管理集中到相对独立的SAN内。

SAN架构由存储设备、网络和服务器三部分组成。SAN的结构允许任何服务器连接到任何存储阵列,这样不管数据放在哪里服务器都可以直接存取所需的数据。而且存储和服务器隔离,简化了存储管理,能够统一、集中管理资源。另外,由于采用了光纤接口,SAN还具有更高的带宽。

广义上来讲,任何将计算机、存储专用网络、存储设备互连的存储形式均可称作SAN,只是随着FC协议商业上的成功,人们习惯于将基于FC协议的网络存储架构特指为SAN架构。

SAN架构

基于FC的SAN需要专用网络,且成本较高。随着iSCSI技术的出现,SCSI协议可以直接运行在IP网络上,在以太网上对数据进行操作的性能得到了提高。因而,基于TCP的SAN(IP-SAN)被提出。IP-SAN可以降低网络架构建设的成本,同时具有较高的性能。SAN中的服务器负责与存储设备进行通信,在这些服务器上运行的操作系统和文件系统对SAN中的数据进行操作。同时,一个或多个服务器上还会运行SAN管理软件,对服务器、存储设备和网络进行组织和管理。

IP-SAN架构

SAN使用块级别的方式访问,适用存储量大、数据访问频繁的场景。SAN具有高可扩展性、高容错、容灾的特性,所以也适用于对数据安全要求较高的场景,如金融行业和数据中心等。

对比SAN和NAS

SAN和NAS的不同:

  • 网络不同,SAN有独立的专用网络,而不是和其它数据包一起挤公用网。
  • 协议不同,SAN倾向于提供块设备级的服务(设备独占访问),而NAS倾向于提供文件系统级的服务(设备共享访问)
  • NAS成本更低(以太网),SAN成本更高(FC专用网络)
  • NAS的CPU占用率低,SAN的CPU占用率高(主机端需要运行文件系统)
  • NAS更容易部署,SAN部署难度更高,SAN的跨平台性能没有NAS好。

NAS和SAN混合搭配的解决方案为大多数企业带来最大的灵活性和性能优势。服务器环境越是异构化,NAS就越是重要,因为它能无缝集成易购的服务器。而企业数据量越大,高效的SAN就越重要。

NAS能简化对SAN的访问。事实上,NAS是SAN理想的网关,能帮助SAN提供的数据块以文件形式路由至适当的服务器。与此同时,SAN能通过减轻非关键数据的大容量存储负担,使NAS更为有效的工作。重要文件可以存储在本地的NAS设备上,不重要的可以卸到SAN中。

四、对象存储

对象存储将数据块进行更高级别的抽象,对外提供了一套新的标准访问接口,有机融合了NAS可跨平台和SAN扩展性良好的优势,广泛应用于大规模集群系统。

对象存储最常用的方案,就是多台服务器内置大容量硬盘,再装上对象存储软件,然后再额外搞几台服务作为管理节点,安装上对象存储管理软件。管理节点可以管理其他服务器对外提供读写访问功能。

之所以出现了对象存储这种东西,是为了克服块存储与文件存储各自的缺点,发扬它俩各自的优点。简单来说块存储读写快,不利于共享,文件存储读写慢,利于共享。能否弄一个读写快,利于共享的出来呢。于是就有了对象存储。

对象存储将元数据独立了出来,控制节点叫元数据服务器(服务器+对象存储管理软件),里面主要负责存储对象的属性(主要是对象的数据被打散存放到了那几台分布式服务器中的信息),而其他负责存储数据的分布式服务器叫做OSD,主要负责存储文件的数据部分。

当用户访问对象,会先访问元数据服务器

,元数据服务器只负责反馈对象存储在哪些OSD,假设反馈文件A存储在B、C、D三台OSD,那么用户就会再次直接访问3台OSD服务器去读取数据。由于是3台OSD同时对外传输数据,所以传输的速度就加快了。当OSD服务器数量越多,这种读写速度的提升就越大,通过此种方式,实现了读写快的目的。

另一方面,对象存储软件有专门的文件系统,所以OSD对外又相当于文件服务器

,那么就不存在文件共享方面的困难了,也解决了文件共享方面的问题。



五、云存储

云存储的核心就是对大规模数据的存储和管理。在云存储的构建方面,它结合了分布式存储、冗余存储、负载均衡、虚拟化等技术,构造出一个高可用、低成本、可定制、易扩展的存储平台,通过Web接口,为不同的用户提供个性化的服务。

云存储的发展是伴随云计算发展而来的。云计算提供3种服务模式,分别是IaaS(Infrastructure as a Service,基础设施即服务)、PaaS(Platform as a Service,平台即服务)和SaaS(Software as a Service,软件即服务)。而云平台提供的云存储服务

目前属于IaaS和SaaS。

云存储架构

首先,云存储与传统的存储相比,更像是提供了一个存储功能的服务。云存储的底层通常是采用分布式集群进行搭建的。提供服务时,采用硬件虚拟化技术

,对用户隐藏真实的计算机硬件,在真实硬件设备上创造一个模拟的计算机环境,满足不同用户的存储需求。传统存储平台的架构往往是每个平台都针对一个特点的应用领域,采用的都是专门的硬件进行搭建。

其次,云存储能够存储海量的数据,而且还具备高可扩展性,可以根据需求增加集群中的机器来增加存储容量。传统的存储架构通常可扩展性差,用户自己进行维护和管理的成本巨大。

再次,在数据管理方面,数据管理层是云存储的关键部分。云存储平台采用分布式存储技术实现多个设备之间的协作。在这些技术的加持下,云存储厂商能够保证向用户提供安全可靠的存储服务,通过对存储的数据进行加密、备份、异地容灾等,保证用户存储在云端的数据在不可预知场景下的数据可用性和数据完整性。

最后,用于云存储的硬件设备的选择是多种多样的,各种性能、型号的存储设备都可以用于数据存储层的搭建,彼此之间通过网络连接到一起。

云存储应用场景

(1)公有云

公有云一般是指由第三方服务商拥有和运营,通过互联网为多个用户提供服务的云计算服务,也是最常见的云部署方式。公有云中的所有软硬件资源和其他支持性基础结构一般都部署在企业外部,属于云服务提供商所有,并由其管理和控制。

公有云的核心属性是资源共享服务,这些资源以免费或按量付费的方式按需提供给用户。对于用户来说,不需要投资建设基础设施就可以通过按需付费的方式使用服务,大大降低了数据上云门槛和投资使用成本。

优势:低成本、高可靠、可扩展。

(2)私有云

与公有云不同,私有云是为企业客户单独使用而构建的云服务。基础设施归企业客户所有,企业客户通过私有云把云技术当作一种手段来集中管理各种存储资源,通过对存储资源的高效使用来满足不同业务的特定需求,实现对数据、安全性和服务质量的最有效控制。私有云一般部署在企业数据中心的防火墙内,在私有网络上运行和维护,为所属的企业用户提供完全独立的访问权限。

私有云的核心属性是专有资源,私有云所属企业能更加方便地对存储资源进行虚拟化和自定义,以供企业内各部门或业务共享,从而满足企业特定服务的特定需求。

优势:灵活性、安全性。

(3)混合云

将私有云和公有云的存储连接到本地资源,其架构能在私有云和公有云之间进行数据共享,是公有云与本地或私有云的组合架构。

混合云存储将软硬件和连接器等绑定在一起,能够像本地存储一样管理相应的数据资源。混合云存储包括混合云CPFS存储、混合云存储阵列、混合云分布式存储等多种形态。混合云存储阵列融合了公有云存储和传统存储阵列的优点,简单、灵活、高效且可靠,有云分层、云同步、云缓存等多种功能。客户不用更改原来的IT架构,也不需要关注本地设备和云存储之间的协议兼容性就可以使用存储阵列。还提供跨区域的多副本保护,用来确保数据的可靠性。

六、存储虚拟化

传统模式下不同业务一般会构建自己专属的IT系统,硬件资源无法在不同业务之间直接共享,硬件资源利用率低下。另外,当某一业务的规模突然增大时,存储系统的扩展性也面临巨大挑战。

存储虚拟化技术的出现正是为了应对上述问题,当然,随着云计算、数据中心等新的基础设施的发展,存储虚拟化的内涵也随之发生了很大的变化,它已由早期的经典存储虚拟化,发展到现今的SDS(Software Defined Storage,软件定义存储

)和HCI(Hyper-Converged Infrastructure,超融合架构)等。

基本概念

从广义上来讲,存储虚拟化是与存储系统相伴而生的:早期人们使用磁盘时,是根据它的LBA进行存储访问,也就是一种从线性逻辑地址空间到三维空间(柱面、磁道、扇区)的虚拟化。目前,对于“存储虚拟化”这一概念尚未形成统一的权威定义,简单来讲,存储虚拟化就是在物理存储系统和服务器之间增加一层逻辑抽象,使得服务器不直接与存储硬件进行交互,存储硬件的增减、拆分、合并等对服务器完全透明。

存储虚拟化技术隐藏了存储系统内部的复杂性,同时摆脱了对物理存储设备的各方面限制,通过标准化访问、统一的数据管理及存储资源的全局整合对存储资源进行池化管理、全局共享。目前的存储虚拟化已应用到整个存储系统的不同层面,早已突破了早期存储虚拟化的内涵和外延。

存储虚拟化可以按照3个标准进行分类:虚拟化对象、虚拟化发生位置、虚拟化实现方式。

(1)虚拟化对象包括磁盘、磁带系统、数据块、文件系统、文件或记录。

  • 磁盘虚拟化可以使磁盘的使用者不用了解磁盘的内部硬件细节,通过块地址就可以访问磁盘。
  • 块虚拟化一般指对多块硬盘建立RAID并划分逻辑卷,每个逻辑卷就像是一个完整的物理硬盘,使用者无须关心硬盘细节及RAID的具体组件过程,可以像使用硬盘一样读写逻辑卷,并同时获得RAID对数据的保护能力。
  • 文件系统虚拟化的典型代表有基于Linux内核的VFS,它是由SUN公司在定义NFS时创造的。VFS允许操作系统使用不同的文件系统管理存储设备,它定义了物理文件系统与服务之间的一套标准接口层,将具体文件系统的细节进行抽象,使得不同的文件系统在Linux内核及系统中运行的其他进程看来是相同的。

(2)按照虚拟化发生位置,存储虚拟化分为基于主机的虚拟化、基于存储设备的虚拟化和基于网络的虚拟化。

  • 基于主机的虚拟化使服务器的存储空间可以跨越多个异构的磁盘空间,一般用于不同阵列之间进行镜像保护。其主要缺点是占用主机计算资源较高,对应用性能造成一定的干扰,同时存在操作系统和应用的兼容性问题。
  • 基于存储设备的虚拟化一般通过在存储控制器上增加虚拟化功能进行数据保护、数据迁移等,其优势是对主机透明,不占用主机资源,数据管理功能丰富等,其缺陷也很明显,即仅能对设备内部实现虚拟化,不同厂商设备之间无法实现互操作。
  • 基于网络的虚拟化通过在SAN中添加虚拟化引擎实现,可用于异构存储系统的整合及数据的统一管理。其优点与基于存储设备的虚拟化类似,缺点在于部分厂商的数据管理功能较弱,成熟度较低。

(3)就虚拟化实现方式来说,根据存储虚拟化中传输元数据的控制路径与传输数据的数据路径是否相同,可以分为带内(In-Band)虚拟化和带外(Out-of-Band)虚拟化。

  • 带内虚拟化技术:控制信令(用来控制实际数据流向和行为的数据,相当于元数据)和数据走的是同一条路线。进行虚拟化动作的设备直接横插在发起者和目标之间执行中介操作。发起者看不到目标,只能看到经过虚拟化的虚拟目标。
  • 带外虚拟化技术:在发起者和目标旁另起一条路径(旁路),这条路径来走控制信号,实际数据还是由发起者直接走向目标。实际的数据受控制信令控制,发起者需要先“咨询”旁路上的虚拟化设备再向目标请求数据。数据通路和信令通路是并联的。

带内虚拟化技术优势在于服务器和存储设备之间兼容性高。另外,虚拟化和数据管理功能通过专用硬件实现,从而避免了对主机计算资源的占用。然而,其缺点在于虚拟化设备内部的故障可能导致系统服务完全停止。

相反,带外虚拟化技术会在读取或写入数据之前完成虚拟化过程。虚拟化引擎放置在从主机到存储设备的访问路径之外。带外虚拟化技术的优势是其在虚拟化设备发生故障时具有高可用性,确保提供不间断的系统服务。然而,该方法会导致系统资源的消耗。此外,大多数采用这种方法的产品通常缺乏强大的数据管理功能。

存储虚拟化实现方式

七、软件定义存储SDS

所谓软件定义,就是用软件去定义硬件的功能,通过软件给硬件赋予各种虚拟化、灵活、定制化的功能,实现系统运行效率和资源利用效率的最大化。

例如,在网络领域,SDN(Software Defined Network,软件定义网络)是一种将网络资源抽象到虚拟系统中的IT基础架构方法,它将网络转发功能和网络控制功能分开,从而创建可集中管理和可编程的网络。SDN允许运维团队通过集中化面板来控制复杂网络拓扑

中的网络流量,从而免去了手动处理每个网络设备的烦琐。

同理,SDS是一种强调将存储软件与硬件分隔开的存储架构,其核心就是存储虚拟化技术,它能够将数据中心的服务器、存储、网络等资源通过软件进行定义,并能够自动分配管理这些资源。SDS的核心特点在于:首先,SDS消除了软件对专用硬件(例如NAS或SAN)的依赖性,能够在行业标准系统或x86平台上执行;其次,SDS强调软件的核心地位,即完全通过软件手段实现存储虚拟化技术中包含的核心功能,包括卷管理、RAID、数据保护、快照、镜像、复制等。

分为三层:

  • 最底层的存储架构层负责将不同类型的存储介质和系统进行抽象和整合,为控制层提供抽象的系统资源。
  • 控制层负责对存储资源进行分类和划分,根据数据中心的需求对存储资源进行分配。
  • 顶层的应用层对各种应用提供不同的存储接口,以满足各种应用对于存储的需要。

SDS的特点

  • 横向扩展的架构:能够支持存储空间动态地增加和减少。
  • 统一的硬件:能够支持加入不同的存储资源,包括本地的存储设备和网络的存储设备。
  • 基于资源池的管理:所有的存储资源都应该被整合为一个统一的逻辑空间,并且可以根据资源的需求动态地进行分配。
  • 存储资源抽象:能够将所有的存储设备整合为一个统一的资源,并且支持各式各样的存储接口。
  • 自动化:能够根据用户需求自动地定义不同类型的存储并进行动态扩展。
  • 可编程:提供众多的API供控制访问存储资源,能够让用户的应用程序自动化地完成对于存储资源的管理。自定义的存储策略:可以对不同的用户提供不同的安全性、可靠性和服务质量。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐