存储基础

来源:互联网 发布:宏程序编程入门讲解 编辑:程序博客网 时间:2024/05/16 05:57

原文链接:

https://mp.weixin.qq.com/s/lOs8SyzyMljyIvjD_lqQ3w

https://mp.weixin.qq.com/s/eBOqM11QtiLdGqhZVZBymA




本文简要介绍了存储领域的若干重要术语,旨在帮助大家能更好地了解、学习存储这一领域。限于作者个人水平、精力有限,如有不当之处敬请多多包涵。



1. DAS (Direct-attached Storage)


直连式存储,顾名思义这是一种通过总线适配器直接将硬盘等存储介质连接到主机上的存储方式,在存储设备和主机之间没有任何网络设备的参与,此概念主要用于 区别NAS和SAN等网络存储。可以说DAS是最原始最基本的存储方式,在个人电脑、服务器上随处可见。常见的用于连接DAS和主机系统的协议/标准主要 有ATA、SATA、eSATA、SCSI、SAS和FibreChannel等。DAS的优势在于简单易用、读写效率高等;缺点在于容量有限、难于共 享,从而造成―信息孤岛‖(Islandsof Information)。



2. RAID (Redundant Array of Independent/InexpensiveDisks)


独立磁盘冗余阵列,是一种将多块独立的硬盘(物理硬盘)按不同的组合方式形成一个硬盘组(逻辑硬盘),从而提供比单块硬盘更大的存储容量、更高的可靠性和 更快的读写性能等。该概念最早由加州大学伯克利分校的几名教授于1987年提出。早期主要通过RAID控制器等硬件来实现RAID磁盘阵列,后来出现了基 于软件实现的RAID,比如mdadm等。按照磁盘阵列的不同组合方式,可以将RAID分为不同级别,包括RAID0到RAID6等7个基本级别,以及 RAID0+1和RAID10等扩展级别。不同RAID级别代表着不同的存储性能、数据安全性和存储成本等。下面我们将分别介绍这几种RAID级别。


RAID 0: 简单地说,RAID0主要通过将多块硬盘―串联‖起来,从而形成一个更大容量的逻辑硬盘。RAID0通过―条带化(striping)‖将数据分成不同的 数据块,并依次将这些数据块写到不同的硬盘上。因为数据分布在不同的硬盘上,所以数据吞吐量得到大大提升。但是,很容易看出RAID0没有任何数据冗余, 因此其可靠性不高。



RAID 1:如果说RAID 0是RAID中一种只注重存储容量而没有任何容错的极端形式,那么RAID1则是有充分容错而不关心存储利用率的另一种极端表现。RAID1通过―镜像 (mirroring)‖,将每一份数据都同时写到多块硬盘(一般是两块)上去,从而实现了数据的完全备份。因此,RAID1 支持―“热替换”,在不断电的情况下对故障磁盘进行更换。一般情况下,RAID1 控制器在读取数据时支持负载平衡,允许数据从不同磁盘上同时读取,从而提高数据的读取速度;但是,RAID1在写数据的性能没有改善。



RADI 2:RAID 2以比特(bit)为单位,将数据―条带化(striping)‖分布存储在不同硬盘上;同时,将不同硬盘上同一位置的数据位用海明码进行编码,并将这些 编码数据保存在另外一些硬盘的相同位置上,从而实现错误检查和恢复。因为技术实施上的复杂性,商业环境中很少采用RAID2。



RAID 3:与RAID 2类似,不同的是:1)以字节(byte)为单位进行―条带化‖处理;2)以奇偶校验码取代海明码。RAID3的读写性能都还不错,而且存储利用率也相当高,可达到(n-1)/n。但是对于随即读写操作,奇偶盘会成为写操作的瓶颈。



RAID 4:与RAID 3的分布结构类似,不同的是RAID 4以数据块(block)为单位进行奇偶校验码的计算。另外,与RAID2和RAID3不同的是,RAID4中各个磁盘是独立操作的,并不要求各个磁盘的磁头同步转动。因此,RAID4允许多个I/O请求并行处理。



RAID 5: RAID 3和RAID 4都存在同一个问题,就是奇偶校验码放在同一个硬盘上,容易造成写操作的瓶颈。RAID5与RAID4基本相同,但是其将奇偶校验码分开存放到不同的硬盘上去,从而减少了写奇偶校验码带来瓶颈的可能性。



RAID 6:在RAID 5的基础上,RAID 6又另外增加了一组奇偶校验码,从而获得更高的容错性,最多允许同时有两块硬盘出现故障。但是,新增加的奇偶校验计算同时也带来了写操作性能上的损耗。




RAID 0+1: 为了获取更好的I/O吞吐率或者可靠性,将不同的RAID标准级别混合产生的组合方式叫做嵌套式RAID,或者混合RAID。RAID0+1是先将硬盘分 为若干组,每组以RAID0的方式组成―条带化‖的硬盘阵列,然后将这些组RAID0的硬盘阵列以RAID1的方式组成一个大的硬盘阵列。



RAID 10: 类似于RAID 0+1, RAID 10则是先―镜像‖(RAID 1)、后―条带化‖(RAID0)。RAID0+1和RAID10性能上并无太大区别,但是RAID10在可靠性上要好于RAID0+1。这是因为在 RAID10中,任何一块硬盘出现故障不会影响到整个磁盘阵列,即整个系统仍将以RAID10的方式运行;而RAID0+1中,一个硬盘出现故障则会导致 其所在的RAID0子阵列全部无法正常工作,从而影响到整个RAID0+1磁盘阵列 – 在只有两组RAID0子阵列的情况下,整个系统将完全降级为RAID0级别。




3. JBOD (Just a Bunch Of Disks)


JBOD是指在一个底板上安装的带有多个磁盘驱动器的存储设备,类似于RAID,但实质上又不同。因此中文多将其翻译为磁盘簇。JBOD通过SCSI电缆 或其他连接方式,将多块磁盘串联起来,组成一个大的逻辑磁盘 。因此,相比起一堆松散的磁盘,JBOD更容易管理。典型的JBOD磁盘系统可以容纳8个或者16个硬盘。连接在这个JBOD上的服务器将所有这些磁盘识 别成为一系列单独的磁盘。因此,一个16个硬盘合并的JBOD磁盘系统需要16个设备地址。在一些I/O技术,比如SCSI和光纤环路中,这会引发设备地 址不足等问题。


和RAID磁盘阵列不同,JBOD没有前段逻辑来管理磁盘上的数据分布,每个磁盘都是进行独立寻址。常见的情况是,JBOD上的数据简单地从第一块磁盘开 始存储,当第块磁盘存储空间用完后,在依次存储到其他磁盘上。另外,相比起智能磁盘系统,JBOD磁盘系统尤其不适合于支持RAID或者其他类型的虚拟 化。尽管如此,如果的确需要的话,这些都可以在JBOD磁盘系统的外部实现,比如使用服务器端的软件实现或者在存储网络中采用单独的虚拟化实体。相比较于 RAID磁盘阵列,JBOD缺乏数据安全保障和数据分布管理等功能,但是基于其低成本、大容量和易管理等特点,JBOD最近几年在业界还是得到了广泛的使 用。



4. SCSI (Small Computer System Interface)


小型计算机系统接口,是一种智能的通用接口标准,定义了一系列用于连接计算机和各种外部设备的命令、协议以及接口规范等,常见用于硬盘和磁带等设备。第一 个版本的SCSI标准于1986年由美国国家标准协会(ANSI)制定,至今已形成很多新的标准和扩展等,比如FastSCSI、UltraSCSI等。


SCSI initiator和target: 在一个SCSI会话(session)中,负责发起会话和发送SCSI命令的一端被称作initiator。而另一端主要负责接收、处理各种SCSI命 令,并负责数据的传输,被称作target。简单地讲,可以分别将initiator和target类比于C/S架构中的客户端(client)和服务端 (server)。一般情况下,用户计算机或服务器扮演initiator的角色,而存储设备承担了target的角色。


SCSI ID 和LUN: 依照不同版本的SCSI标准,一个SCSI总线最多可以连接8个或16个SCSI设备—实际情况中,在总线的末端一般要安装一个SCSI终结器 (terminator),所以最多可用的SCSI设备为7个或15个。每个连接在SCSI总线上的设备都一个唯一的ID号。鉴于一个SCSI总线上设备 数量的限制(最多8个或16个),一般SCSI存储设备都会由若干个子设备组成,比如RAID磁盘阵列、磁带库等。为了标识这些子设备,SCSI标准引入 了LUN的概念,即逻辑单元号(LogicalUnit Number)。所以,一个SCSI会话中,为了标识一个SCSItarget,需要同时指明SCSI控制器ID、SCSI ID和LUN。



SCSI有多种接口形式,早期主要是并行的SCSI接口(如SPI);在2008年,串行的SCSI接口SAS(Serial Attached SCSI)以其在数据吞吐率方面的潜力和优势取代了SPI。另外,还有SCSI和光纤信道结合产生的FCP协议(SCSI-over- FibreChannel Protocol)。而ISCSI则完全摒弃SCSI在接口上规范,将SCSI的命令和协议等其他部分移植到TCP/IP网络上来,通过普通的TCP /IP网络来传输SCSI的数据和命令等。



5. SAN

SAN的全称是Storage Area Network,是指一个提供统一的,块级别数据存取的专门网络。SAN主要用来制作存储设备,比如磁盘阵列,磁带库等,服务器可以读取这些设备,就好像这些设备是操作系统的一个逻辑上附加的设备。


一个典型的SAN有它自己存储设备的网络,这个网络通常不能被其他设备的本地局域网访问到。SAN只提供块级别的操作,而并不提供文件级别的操作。但是, 文件系统可以建立在SAN之上,以提供文件级别的读取,这种文件系统被称为SAN文件系统或者共享磁盘文件系统。


EMC的CLARiiON CX4系列,就是这样一种提供块级别数据存取的SAN存储。



SAN通常和Fibre Channel(光纤通道)技术一同使用,表示采用光纤通道建立的一块存储区域网络,称为FCSAN。同时,SAN还可以和其他技术一起使用,比如iSCSISAN或者FCoESAN。


可以在多端口的存储系统上建立SCSI SAN,如下图所示。



6. NAS


NAS的全称是Network-attached storage,是指连接到计算机网络的文件级别计算机数据存储,可以为不同客户端提供数据存取。


NAS系统是包含一个或多个硬盘驱动器的网络设备,这些硬盘驱动器通常安排为逻辑的、冗余的存储容器或者RAID阵列。



NAS通常采用NFS、SMB/CIFS等网络文件共享协议提供文件存取。



NFS

Network File System(NFS)是一个最早在1984年由Sun公司提出的网络文件系统协议,它允许客户计算机上的用户按照类似于存取本地文件的方式来存取位于网 络上的文件。类似于其他很多协议,NFS建立在开放网络计算远程过程调用(OpenNetwork Computing Remote Procedure Call ,ONC RPC) 系统之上。NFS是一个按照RFCs定义的公开标准,允许任何人实现。



CIFS/SMB

Common Internet File System(CIFS)又被认为是ServerMessage Block(SMB),是一个应用程序层的网络协议,这种协议允许主要用于提供对文件、打印机、串口和各种网络节点之间通信的共享存取。它还提供了一种认 证的过程内通信机制。微软使用CIFS在所有Windows上提供网络功能,Unix/Linux也通过SMB使用CIFS,Apple也有一些可以使用 CIFS的客户端和服务器。因此,它是一个允许各操作系统之间相互协作的协议。


NAS vs DAS

  1. DAS是一个对于已有服务器的简单扩展,并且网络连接不是必需的;NAS设计为一个容易的并且自给自足的用于在网络上共享文件的解决方案。

  2. 当都在网络上提供服务时,NAS比DAS的性能更好,因为NAS可以为文件服务做精确地调整。

  3. 当NAS和本地(无网络连接的)DAS进行比较时,NAS的性能主要取决于网络的速度和拥塞程度。

  4. NAS通常不会按照硬件(CPU、内存、存储)或者软件(扩展、plug-in、附加协议)进行额外的定制,而DAS通常会。

  5. DAS和NAS都可以通过使用RAID或集群来扩展数据的可用性。

  6. NAS和DAS都可以有不同数量的cache,可以大大的提升性能。


NAS vs SAN

  1. NAS同时提供存储和文件系统;SAN只提供基于块的存储,而将文件系统留给客户端。

  2. NAS采用的协议是NFS和CIFS/SMB;SAN采用的协议是SCSI、Fibre Channel、 iSCSI、ATAover Ethernet(AoE)或者HyperSCSI。

  3. 对于Client OS来说,NAS显示为一个文件服务器,客户端可以将网络驱动器映射为该服务器上的共享;而SAN对ClientOS仍然显示为一个磁盘,该磁盘与客户端的其他本地磁盘一样在磁盘管理工具中可见,并且可以随着文件系统格式化和挂载。



  4. 但是,NAS和SAN并不是相互排斥的,可以连接起来作为SAN-NAS混合体,从同一个系统中同时提供基于文件的协议(NAS)和基于块的协议 (SAN)。如下图所示,EMC的Unified Storage产品VNX/VNXe就可以同时提供NAS和SAN的访问方式。



7. FC (Fibre Channel) & FCoE


光纤信道,是一种用光纤作为媒质的光传输通道,是一种高速网络技术标准。 在初期,FC主要是为高速局域网设计的,现在多用于SAN等存储网络中。光纤信道具有长距离、高速率、低延迟和低错误率等特点。在FC标准中,制定了三种标准的拓扑结构:点到点(Point-to-Point)、已裁定环路(ArbitratedLoop)和Fabric。在一个Fabric拓扑中,一般需要一个或多个光纤交换机将设备连接起来(见下图)。FC协议栈分为五层,从FC-0到FC-3最底层的四层规定了基础通讯技术规范,包括物理接口、传输格式和寻址等;最上层的FC-4则定义了如何将上层用户协议(UpperLayer Protocols, ULPs)映射到底层的光纤网络中。由于以太网的快速发展(千兆网和万兆网的出现和普及)以及存储网络、传输网络的不断融合,现在又出现了以太网光纤通道FCoE(FibreChannel over Ethernet)。FCoE将底层关于传输的协议层FC-0和FC-1完全用以太网协议取代,上面的几个协议层依然不变。FCoE的好处是不需要特殊的FC接口,从而减少了服务器上的网络接口数量,简化了管理配置和降低了功耗等。



8. Object-based storage device (OSD)


Object-based Storage Device (OSD) 即基于对象的存储设备,是一种计算机存储设备。它类似于磁盘存储但是工作在更高的层次上。不像一般的存储设备那样提供基于块的接口来存取固定大小的数据块,OSD将数据组织起来存放在可变大小的数据容器中,这个容器称为对象(objects)。每一个对象包括有数据(一段未解释序列的字节)和元数据(一组可变长的描述对象的属性)。OSD的命令接口包括创建和删除数据、向个别对象写入字节、从个别对象读取字节、设置和读取对象的属性。OSD承担管理存放对象和它们的元数据的存储的责任。同时OSD实现了一套安全机制来提供对于每一个对象和每一条命令的访问控制。


EMC的Atmos就是OSD的一个典型例子。




9. CAS (Content Addressed Storage)


内容寻址存储是由EMC于2002年4月份率先提出的针对固定内容(FixedContent)存储需求的网络存储技术—因此,CAS有时候也被称为固定内容存储(FCS, Fixed Content Storage) 。所谓固定内容,是指那些一旦生成就很少或从不再改变的数据,具有一次写入、多次读取(WORM– Write Once Read Many)的特点。典型的数据主要包括法律条文、标准和规范的电子文档、数字化医学信息、电子邮件及附件和卫星图像等。在CAS中,数据的存取是基于其内容寻址,而不是通过传统存储中所谓的路径和文件名。当存放数据时,首先计算其哈希值作为其数字指纹,然后根据该数字指纹来决定数据存放位置。因此CAS具有数据一经写入便无法修改的特点,从而可以满足法律对于某些企业特殊数据存储的规定和要求(比如,美国2002年通过的著名的萨班斯法案—从年份上不难看出这部法案和CAS的关系)。另外,CAS具有丰富的标签信息,还可以对数据的进行版本追踪,因此具有良好的可搜索性。EMC于2002年发布的Centera系列产品是典型的CAS存储系统。




10. Document Management System(DMS)


Document Management System(DMS)是文档管理系统,为应用程序提供服务。它采用多种方式处理和管理信息和数据。比如,它可以确保信息按照需求进行分类使用和存储。DMS也可以从不同的应用程序链接数据和信息,从而映射到完整的企业流程。比如,它可以将从EnterpriseResource Planning系统(ERP系统)收集来的数据和从关系数据库之上的文件系统收集来的数据进行结合。DMS还可以对数据进行索引并且存放由此得到的元数据到自己的数据库中。一个索引的例子是完整文本索引,它可以大大简化之后基于内容的信息搜索。DMS通常具有适用于搜索归档数据的应用程序。


据调查公司的数据显示,企业内部数据有80%是非结构化的内容,无法被数据库软件收录,这些文件绝大部分以文档、图片、报表、视频等类型存在,现代的数据存储技术能够真正让这些内容变为可用的信息。


EMC的Documentum产品就是这样一个DMS系统,可以提供以下功能:

  • 用完善的访问控制机制实现安全的内容共享

  • 提供一个安全而又对用户友好的工作环境

  • 在不影响生产效率的情况下确保幕后的保留期要求

  • 为快速、彻底的响应法律调查提供方便

  • 优化存储资源,同时满足SLA要求和降低成本


11. Backup & Archiving


数据备份和存档是数据存储领域的两大应用。备份是将业务数据复制、保存到其他存储介质上,以保障业务系统出现数据丢失时可以迅速进行数据恢复。存档则主要关注长时间地有效保存某些特殊的或者重要的数据。两者在很多方面都有相似的地方,因此很容易混淆。下面的表格简单地比较了两者的不同。



12. Storage Virtualization


存储网络中的存储虚拟化是为了简化大量数据的管理工作。存储虚拟化的最基本的概念是将存储的虚拟化功能从服务器和磁盘系统转移到存储网络。这样可以产生一个新的虚拟化实体,这个虚拟化实体在存储网络中的定位可以跨越所有的服务器和存储系统。这种存储网络中的新虚拟化可以使得存储网络被完全有效利用,还可以提高性能以及避免故障。




13. HSM (Hierarchical Storage Management)


分级存储管理,是一种实现数据在高成本、高性能的小容量存储介质和低成本、低性能的大容量存储介质间自动适时迁移的存储技术。比如,有些经常被访问的数据就需要放到性能较好的存储介质上,比如SSD等flash存储;而大量不常被访问的数据则需要被保存到硬盘,甚至磁带库中。HSM技术很好地解决了存储成本和存储性能之间的平衡问题。EMC产品中主要的HSM实现包括DiskXtender和FAST(FullyAutomated Storage Tiering)等。



14. Deduplication


数据deduplication是一种减少冗余数据的特殊数据压缩技术,该技术可以有效地提高存储的使用率。在deduplication的处理过程中,通过一个分析的过程,独一无二的数据块被识别并保存,其他的数据块经过分析,都将跟这个数据块进行比较,相同的数据块会采用一个指向已存在数据块的引用来代替。这样可以大大减少存储数据的数量。在这个分析的过程中,可能使用加密哈希(比如MD5或者SHA)来鉴别两个数据块是否相同。该deduplication过程必须为以存储的数据维护一个身份特性(比如加密哈希)的列表,同样该过程必须维护一个相同数据块的引用的列表。


根据deduplication的时间不同,可以将deduplication分为两种:in-line和post-process:

  • Post-process deduplication:在这种deduplication中,新来的数据首先保存在一个存储设备中,然后处理过程分析该数据并查找是否存在重复的数据。这种方式的优点是在存储数据之前不需要等待哈希计算和查找完成,这样可以保证数据存储的性能不会降低。实现提供基于策略的操作可以使用户推迟活跃文件的优化,或者根据类型和地址来处理文件。一个潜在的缺点是这个方法会在短时间内在存储系统中存储大量不需要的重复数据,可能引发存储系统满负荷。

  • In-line deduplication:在这种处理方法中,当数据进入到目标设备的同时,就会实时的在该目标设备上进行deduplication的哈希计算。如果该设备识别出某数据块已经在存储系统中保存,那么它就不会保存这个新的数据块,而只是引用已有的数据块。跟post-processdeduplication相比,in-linededuplication的好处是它需要的存储空间少,因为存入存储系统的数据是没有重复的。但是它的缺点是它需要频繁的运行,因为哈希计算和查找会耗费较长时间,可以说数据存储会变慢从而会降低设备的备份吞吐量。尽管如此,一些采用in-linededuplication的供应商可以证明他们的产品与post-processdeduplication竞争者具有类似的性能。


根据deduplication分割数据的方法,又可以将deduplication分为两种:固定长度片段和可变长度片段:

  • 固定长度片段(又称为块):这种方法的主要限制在于当数据在文件中有迁移时,比如对一个PowerPoint文档增加一页幻灯片之后,该文件中处于该位置之后的所有块都需要重写,并且有可能被当做与原文件中不相同的块而进行处理,这样压缩效率就会受到影响。这方面采用更小块的数据块切分会比大的带来的影响小,但是它会为计算重复数据带来更多的处理过程。

  • 可变长度片段:一个更加先进的方法是基于内部的数据格式采用可变长度的片段,它可以解决固定长度片段中可能发生的数据迁移问题。


EMC的DataDomain产品,就是一种提供了deduplication功能的备份产品。它采用一种独特的in-linededuplication和可变长度片段技术,可以达到高达8倍的存储比率。




15. Cloud Storage


云存储,是一种新型的网络在线存储。云存储的运营方为用户提供巨大的存储资源池,为用户提供数据存储服务;而用户只需要按需购买一定的存储容量和服务级别,便可以将数据存储到云存储的虚拟存储池中。所谓虚拟存储池,第一、用户并不需要关心数据的存放位置,利用云存储提供的接口或客户端可以随时存取数据;第二、用户不需要关系底层的存储设备和网络拓扑,省去了大量的配置、管理工作;第三、存储容量可以随需变化,用户也只需要按需付费,具有很好的弹性,可以很好地适应企业业务发展。典型的云存储系统包括Amazon的S3、Google的Blobstore和EMC的Atmos。



16. SNIA (Storage Networking Industry Association)


网络存储工业协会,是由全球300多家存储企业于1997年12月份联合倡议成立的,其主要目的是为了推进全球存储行业的技术发展和规范制定。为了解决存储行业内长期缺乏统一、规范的技术术语来描述存储产品体系架构,SNIA于2001年提出了共享存储模型(SharedStorage Model)的概念,希望该模型能像网络架构中OSI的七层模型在存储行业内发挥规范、引导的作用。下图展示了SNIA共享存储模型中几大重要的组件。随着SNIA的发展,其在存储行业内发挥的作用也越来越重要。





注: 本文所引有图片多来自wikipedia和《Storage Networks Explained》第二版



关于作者

张芸,EMC中国研究院云平台及应用实验室高级研究员,毕业于西安交通大学,主要关注云计算、存储虚拟化等领域。


万林涛,EMC中国研究院云基础架构实验室高级研究员,毕业于南京大学,主要关注于云计算、虚拟化、分布式计算等领域。


1 0
原创粉丝点击