随着主机、磁盘、网络等技术的发展,对于承载大量数据存储的服务器来说,服务器内置存储空间,或者说内置磁盘往往不足以满足存储需要或者虽然能满足要求,但各个服务器之间独立,严重降低了磁盘的利用率。因此,在内置存储之外,服务器需要采用外置存储的方式扩展存储空间,今天IT君给大家分享一下当前主流的存储架构。

直连式存储(Direct-Attached Storage,简称DAS)

DAS存储在我们生活中是非常常见的,尤其是在中小企业应用中,DAS是最主要的应用模式,存储系统被直连到应用的服务器中。服务器中的硬盘或只有一个外部SCSI接口的JBOD都属于DAS架构。

DAS存储设备与服务器主机之间的连接通道通常采用SCSI连接,DAS存储设备主要是磁盘阵列(RAID: Redundant Arrays of Independent Disks)、磁盘簇(JBOD:Just a Bunch Of Disks)等。

DAS存储更多的依赖服务器主机操作系统进行数据的IO读写和存储维护管理,数据备份和恢复要求占用服务器主机资源(包括CPU、系统IO等),数据流需要回流主机再到服务器连接着的磁带机(库),数据备份通常占用服务器主机资源20-30%,因此许多企业用户的日常数据备份常常在深夜或业务系统不繁忙时进行,以免影响正常业务系统的运行。直连式存储的数据量越大,备份和恢复的时间就越长,对服务器硬件的依赖性和影响就越大。

无论直连式存储还是服务器主机的扩展,从一台服务器扩展为多台服务器组成的群集(Cluster),或存储阵列容量的扩展,都会造成业务系统的停机,从而给企业带来经济损失,对于银行、电信、传媒等行业7×24小时服务的关键业务系统,这是不可接受的。并且直连式存储或服务器主机的升级扩展,只能由原设备厂商提供,往往受原设备厂商限制。

网络接入存储(Network-Attached Storage,简称NAS)

网络储存设备 (Network Attached Storage,NAS),是一种专门的资料储存技术的名称。简单来说NAS就是一台在网络上提供文档共享服务的的网络存储服务器。它可以直接连接在电脑网络(以太网)上面,对不同类型操作系统的使用者提供了集中式资料存取服务。使用者可以通过某种方式(例如linux下的mount命令)将存储服务挂载到本地进行访问,在本地呈现的就是一个文件目录树。

NAS和传统的文件储存服务或是直接储存设备不同的地方在于NAS设备上面的操作系统和软件只提供了资料储存、资料存取、以及相关的管理功能;此外,NAS设备也提供了不止一种文档传输协定。NAS系统通常有一个以上的硬盘,而且和传统的文档服务器一样,通常会把它们组成RAID来提供服务;有了NAS以后,网络上的其他服务器就可以不必再兼任文档服务器的功能。NAS的型式很多样化,可以是一个大量生产的嵌入式设备,也可以在一般的电脑上执行NAS的软件。

NAS用的是以文档为单位的通讯协定,例如像是NFS(在UNIX系统上很常见)或是SMB(常用在Windows系统)。NAS所用的是以文档为单位的通讯协定,相对之下,储域网络(SAN)用的则是以区块为单位的通讯协定、通常是透过SCSI再转为光纤通道或是iSCSI。

NAS设备用的通常是精简版的操作系统,只提供了最单纯的文档服务和其相关的通讯协定;举例来说,有一个叫FreeNAS的开放源码NAS软件用的就是精简版的FreeBSD,它可以在一般的电脑硬件上执行,而商业化的嵌入式设备用的则是封闭源码的操作系统和通讯协定程式。

NAS产品有一个比较大的优势是真正即插即用。NAS设备一般支持多计算机平台,用户通过网络支持协议可进入相同的文档,因而NAS设备无需改造即可用于混合Unix/Windows NT局域网内,同时NAS的应用非常灵活。

存储区域网络(Storage Area Network,简称SAN)

SAN存储 (存储区域网络Storage Area Network)也即存储区域网络,从名字上我们也可以看出,这个是通过某种交换机(例如光纤交换机)连接存储阵列和服务器主机,最后成为一个专用的存储网络。SAN经过十多年历史的发展,已经相当成熟,成为业界的事实标准(但各个厂商的光纤交换技术不完全相同,其服务器和SAN存储有兼容性的要求)。

SAN提供了一种与现有LAN连接的简易方法,并且通过同一物理通道支持广泛使用的SCSI和IP协议。SAN不受现今主流的、基于SCSI存储结构的布局限制。特别重要的是,随着存储容量的爆炸性增长,SAN允许企业独立地增加它们的存储容量。SAN的结构允许任何服务器连接到任何存储阵列,这样不管数据置放在那里,服务器都可直接存取所需的数据。因为采用了光纤接口,SAN还具有更高的带宽。

如今的SAN解决方案通常会采取以下两种形式:光纤信道以及iSCSI或者基于IP的SAN,也就是FC SAN和IP SAN。光纤信道是SAN解决方案中大家最熟悉的类型,但是,由于万兆网的普及,基于iSCSI的SAN解决方案开始大规模应用,与光纤通道技术相比较而言,这种技术具有良好的性能,而且价格低廉。

SAN真正的综合了DAS和NAS两种存储解决方案的优势。例如,在一个很好的SAN解决方案实现中,你可以得到一个完全冗余的存储网络,这个存储网络具有不同寻常的扩展性,确切地说,你可以得到只有NAS存储解决方案才能得到的几百T字节的存储空间,但是你还可以得到块级数据访问功能,而这些功能只能在DAS解决方案中才能得到。对于数据访问来说,你还可以得到一个合理的速度,对于那些要求大量磁盘访问的操作来说,SAN显得具有更好的性能。利用SAN解决方案,你还可以实现存储的集中管理,从而能够充分利用那些处于空闲状态的空间。更有优势的一点是,在某些实现中,你甚至可以将服务器配置为没有内部存储空间的服务器,要求所有的系统都直接从SAN(只能在光纤通道模式下实现)引导。这也是一种即插即用技术。

因为SAN解决方案是从基本功能剥离出存储功能,所以运行备份操作就无需考虑它们对网络总体性能的影响。SAN方案也使得管理及集中控制实现简化,特别是对于全部存储设备都集群在一起的时候。最后一点,光纤接口提供了10公里的连接长度,这使得实现物理上分离的、不在机房的存储变得非常容易。

SAN和NAS都是通过网络的方式实现了业务服务器与存储设备的连接和访问,但两者是有别的前者在业务服务器上呈现的是一个磁盘,需要格式化成文件系统后使用;而后者在业务服务器上呈现的是文件系统。

统一存储

所谓统一存储其实在架构上与上述两种形式并没有差异,只是将上述两种方式整合到一台物理设备中,并可以同时对外提供SAN和NAS服务。该设备的前端接口可支持FC 8Gb、iSCSI 1Gb和iSCSI 10Gb,后端具备SAS 6Gb硬盘扩展接口,可支持SAS、SATA硬盘及SSD固态硬盘具备极佳的扩展能力。实现FC SAN与IP SAN、各类存储介质的完美融合,有效整合用户现有存储网络架构,实现高性能SAN网络的统一部署和集中管理,以适应业务和应用变化的动态需求。主机接口及硬盘接口均采用模块化设计,更换主机接口或硬盘扩展接口,无须更换固件,可大大简化升级维护的难度和工作量。

分布式存储

分布式存储是一种数据存储技术,通过网络使用企业中的每台机器上的磁盘空间,并将这些分散的存储资源构成一个虚拟的存储设备,数据分散的存储在企业的各个角落。传统的网络存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要。分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。

如图5所示,分布式存储使用的设备一般是常规服务器,而非存储设备。分布式存储通过非标准协议实现服务器上存储资源的整个,并进行存储资源池化和虚拟化处理,最后呈现给用户某种形式(块存储或者文件存储)的存储空间。分布式存储有其特异性,其使用的并非标准协议,因此通常需要在应用服务器安装其客户端软件实现存储空间的虚拟呈现,以及请求的处理。

由于分布式存储拓扑结构的复杂性,其出现故障的概率也大大增加了。因此,对于分布式存储需要实现基于网络的数据冗余、数据保护和数据容错等功能,确保在出现任何异常情况(例如磁盘、网卡、交换机和服务器等)下存储系统的可用性和可靠性。

Server SAN

Server SAN其实也是分布式存储的一种,由于其比较新,目前没有一个具体的定义。 Server San应该是一个利用软件将基于DAS存储(包含闪存卡,直连存储)的集合,做成一个能共享的SAN存储网络。

SAN存储区域网,大家都很熟悉。普遍使用的就两种: FC SAN和ISCSI SAN。这两种结构是通过FC网络或者IP网络将存储设备放到一个共享的环境中心,让分布式的服务HA,应用迁移,数据复制等都可以通过这套网络实现。但是大家注意了,这套SAN网络是很贵的,管理起来是很麻烦的。 在很多的环境下面,很多SAN环境中会有一部分直连存储我们根本没有用上:比如直连存储卡,本地硬盘等。

从实际的应用中,直连存储的效率是很高的:PCI-E直接到数据端,比经过FC协议的转换还要快。而且成本低。 Server SAN是一个最新的概念:将分布在各个服务器上的直连存储通过软件的方式整合成一个统一的SAN存储系统。有点类似谷歌在云计算上做的工作,将上万台服务器组成一个超级计算机。 现在Server San已经不是一个概念了,在谷歌和facebook的数据中心已经大量使用了。最经典的案例就是VMware中的vSAN 了。

关注作者微信公众号,更及时的获取原创IT技术文章。

转载于:https://juejin.im/post/5c2351b95188254fef234e34

目前最全的存储形式总结相关推荐

  1. Python-数据的多种存储形式

    1 JSON 文件存储 JSON,全称为 JavaScript Object Notation, 也就是 JavaScript 对象标记,它通过对象和数组的组合来表示数据,构造简洁但是结构化程度非常高 ...

  2. 深度分析数据在内存中的存储形式

    文章目录 一.数据的基本类型介绍 二.整型在内存中的存储形式 1.原码.反码.补码 2.大小端介绍 3.浮点型在内存中的存储 一.数据的基本类型介绍 char//字符数据类型 short//短整型 i ...

  3. .NET的资源并“.NET研究”不限于.resx文件,你可以采用任意存储形式 [上篇]

    为了构建一个轻量级的资源管理框架以满足简单的本地化(Localization)的需求,我试图直接对现有的Resource编程模型进行扩展.虽然最终没能满足我们的需求,但是这两天也算对.NET如何进行资 ...

  4. Gartner APM 魔力象限技术解读——全量存储? No! 按需存储?YES!

    简介:在云原生时代,充分利用边缘节点的计算和存储能力,结合冷热数据分离实现高性价比的数据价值探索已经逐渐成为 APM 领域的主流. 作者:夏明(涯海) 调用链记录了完整的请求状态及流转信息,是一座巨大 ...

  5. OpenGL, GLSL, DirectX, HLSL中的矩阵存储形式

    (原文地址:http://alvincc-tech.blogspot.com/2010/10/opengl-glsl-directx-hlsl.html) OpenGL, GLSL, DirectX, ...

  6. .NET的资源并不限于.resx文件,你可以采用任意存储形式[上篇] (转载)

    为了构建一个轻量级的资源管理框架以满足简单的本地化(Localization)的需求,我试图直接对现有的Resource编程模型进行扩展.虽然最终没能满足我们的需求,但是这两天也算对.NET如何进行资 ...

  7. C++/C--浮点型数据的二进制表示及其内存存储形式

    二进制表示 以12.123为例: 12/2 = 6---------------------0 6/2 = 3----------------------0 3/2 = 1-------------- ...

  8. 在c语言中 char型数据在内存中的存储形式是,在c语言中char型数据在内存中的存储形式是什么?...

    在c语言中char型数据在内存中的存储形式是ASCII码.在C语言中,char型数据是将一个字符常量放到一个字符变量中,并不是把该字符本身放到内存单元中去,而是将该字符的相应的ASCII代码放到存储单 ...

  9. OpenCL设备存储形式

    OpenCL设备存储形式 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u011028771/article/details/78712830 一. ...

最新文章

  1. 快速区域积分直方图实现
  2. 在一行上添加一个简单的if-then-else语句[重复]
  3. 开发技巧: 简述iOS应用间的互相跳转
  4. 计算机视觉与深度学习 | SLAM综述(自主移动机器人同时定位与地图创建)
  5. 贪心算法-01硬币找零问题
  6. nifty ui_Nifty JUnit:在方法和类级别上使用规则
  7. 贪心算法(leetcode分类解题,C++代码详细注释)
  8. gateway路由网关,zuul的替代品
  9. 【JS 逆向百例】DOM 事件断点调试,某商盟登录逆向
  10. C#LeetCode刷题之#242-有效的字母异位词(Valid Anagram)
  11. mysql5.6.22编译安装教程_Linux CentOS6.0下编译安装MySQL 5.6.22
  12. C3P0数据源和Tomcat jdbc数据源的基本配置
  13. linux 内核优化
  14. 日月神话_启动成本的神话
  15. 批量重命名图片去掉烦人的括号
  16. Word/excel/df文档转图片返回前端
  17. 高电平和低电平之间的电平芯片会识别成什么
  18. 【078】Town Scaper-创造属于自己的唯美水上小镇
  19. PAT乙级-1051复数乘法(保留两位数-四舍五入)
  20. 统一推送平台搭建与优化

热门文章

  1. C#中Hashtable、Dictionary详解以及写入和读取对比
  2. Dom4J两种节点添加方法比较
  3. .Net页面的生命周期(ZZ)
  4. pojo java,什么是java pojo类,java bean,普通类?
  5. 流式细胞术及常见问题分析
  6. exe一机一码加密工具_文件夹加密软件有哪些作用?
  7. Verilog功能模块——符号位扩展
  8. C语言 | 哈夫曼(haffman)算法实现数据的解压缩(源代码)
  9. 高性能计算机存储部件有磁盘阵列,信息存储技术——磁盘阵列解读.pptx
  10. 32查运行内存的map文件_Linux进程间通信——内存共享映射