联系方式:010-82374884

“根技术”--存储技术品牌

易数据,根存储

深根优势:卓越性能

随着计算机技术的高速发展以及数据的飞速增长,数据存储规模正在不断扩大化和多元化,作为数据的底层支撑设施,存储系统也需要应对时代的发展,可以不断的随规模增长而近线性提升整个存储系统性能,并能通过扩展元数据索引节点的数量提升整个存储系统对海量小文件的检索效率,以此保证应用数据传输、查询以及计算的整体效率;

数据读写聚合带宽:

龙存集群存储系统根据高性能类应用的特点,开展高性能集群并行存储技术设计,实现数据前端切片并行存储技术,将数据文件切分成多份数据,同时写入到多块存储硬盘中,以一对多的形式形成并行存储机制,且系统内嵌独有的负载均衡技术,可将所有数据读写压力分摊到所有服务器的硬盘上,提升并发访问效率的同时,降低硬件负载压力以及损耗程度,形成一个高性能的共享存储池为前端提供高带宽读写访问。目前已经上线的高性能计算项目,已有数个实际线上项目在应用系统的实际测试中可以达到30GB/s以上的聚合带宽。

海量小文件读写查询效率:

目前,存储市场上大部分的存储系统在海量小文件的应用模式下,都存在吞吐率低,检索慢的问题。这个问题的本质原因是整个存储系统处理元数据的效率所导致的。由于目前绝大多数存储系统都是采用单一元数据服务器架构,虽然部分存储系统有两个元数据服务器,但是系统正常情况下只有一个元数据服务器提供服务功能,另一个处于standby状态,本质上属于高可用作用,因此,当整个存储系统的文件数量达到一定规模时,检索文件的效率变得极其低下,从而导致小文件吞吐率低。我们在LoongStore现有的业界唯一的多元数据服务器集群技术的基础上,结合高性能计算应用文件创建、访问以及目录结构特点,研制独一无二的多元数据服务器集群技术,在一套存储系统中可以根据用户生产系统中实际产生文件数量的规模对元数据服务器集群进行动态配置,整个存储系统中所有的元数据服务器同时参与文件的检索和定位工作,消除存储系统中元数据通道的瓶颈,同时还可以根据后续应用特点的变化和需求的增强,做到在线扩展元数据服务器,并且达到即插即用的效果。

并发优势:高安全性

对于用户而言,数据的安全性是至关重要的,数据的安全性也成为存储系统的一个重要衡量标准,而数据安全性方面主要分为两个方面,一方面为数据存储的安全性,另一方面为数据访问的安全性;

目前市场是大部分的存储系统在可靠性方面主要是依靠硬件自身的可靠性来实现,比如Raid技术,采用高端的光纤盘阵等,这些高可用技术存在很大的局限性,恢复效率差,无法适应海量数据的应用环境。LoongStore独特的全局数据高可用技术,结合应用特点用自身独有的软件技术来完成高可用,首先,无论是存储服务器还是元数据服务器都采用了集群化技术;其次,存储系统软件层采用多副本技术、文件动态分片技术、文件级raid技术以及支持不同目录设置不同冗余度技术来保证整个系统的高可用。最终,通过这些高效的全系统规模数据高可用技术,彻底消除存储系统中的单点故障。另外,存储系统内置了自动故障探测机制,可以动态探测不同的故障,并自动启动数据的恢复流程确保数据完整性,数据恢复完全在存储后端进行,不对前端应用造成任何影响,在保证数据安全的同时确保用户的应用持续稳定的运行,单台存储服务器或者元数据服务器发生损坏都不会对应用数据读写造成任何影响,且随着存储服务器的不断增加,数据恢复的速度成倍增长,即服务集群规模越大数据的安全性越高。

存储平台是一个多用户共享平台,每天都有很多用户在计算平台上面运行不同的任务,整个存储系统需要保证各个用户之间的任务相互独立、数据安全高可用,因此,传统的基于操作系统用户权限的管理技术无法完全满足存储平台的需求。在新研制的存储系统中拟提供增强型权限管理技术,除了兼容原有基于操作系统用户的权限管理之外,还增加了自身所特有的增强型权限管理技术,通过存储系统的后端管理平台直接为某个目录指定哪些用户、或者哪些应用服务器能够对相应的目录进行读、写、删除、list、ln、重命名、追加写、WORM权限机制,以此保证数据的访问安全,放置系统入侵以及误删除等情况发生给用户带来的数据损失。且龙存数据存储系统自带数据加密与数据块序列组合策略,可将所有存储文件进行自动切片封装加密,然后根据数据的特点将所有数据块在客户端上进行封装加密后通过网络将封装加密的数据存储在底层硬件服务器系统中,文件的组合以及明文的获取只能通过客户端安装的存储应用程序获取,其它应用程序不管是通过网络非法截取或者非法获取硬件设备,都无法通过其它方式对数据进行解密和数据块的链接序列组合。

龙存数据存储可靠性策略

在龙存数据存储平台中,可对不同的应用的不同数据的可靠性进行不同安全级别设置,以满足集群存储平台中不同的应用对数据的可靠性的相应等级的需求。

(1)副本级数据保护机制介绍

在存储系统中,数据副本的保护机制是将文件按照规则进行分段存储在存储服务器集群中,其中每一段都会有2个以上(可根据需求设置2、3、4份副本)的有效副本存放在不同的存储服务器上。如一个文件file被切分成segment1-N个片段,其中以一个文件的一个片段数据恢复方式作为介绍,文件file的segment3的2个副本分别存放在存储服务器S1的硬盘D1和存储服务器S2的硬盘D2上,当S2宕机或者S2的D2失效时,用户依然可以从S1的D1上读取file的segment3,同时系统将会自动的在另一台存储服务器如S3的D2上产生segment3的新副本。

(2)文件级RAID数据保护机制介绍

2+1的数据存储模式,数据在存储时按照文件写入粒度将文件切分成2个块并生成一个校验数据,然后分别把三份数据分别存储在3台存储服务器中,当其中有一份数据失效时,元数据可以自动探测到数据失效,可以通过校验数据和没有失效的数据通过计算,把失效的数据计算回来,写入其它存储设备中,保证数据安全性。4+1的数据存储模式,数据在存储时按照文件写入粒度将文件切分成4个块并生成一个校验数据,然后分别把五份数据分别存储在5台存储服务器中,当其中有一份数据失效时,元数据可以自动探测到数据失效,可以通过校验数据和没有失效的数据通过计算,把失效的数据计算回来,写入其它存储设备中,保证数据安全性。

(3)数据恢复效率机制介绍

为了保障失效的数据能够得到及时的恢复,让整个存储系统能够时刻保证最高的安全状态,我们在存储系统中内置一套自动故障探测机制,一旦探测到故障则自动启动数据恢复流程。为了完成无人工干预的自动回复,在存储系统的架构设计中,我们无需在恢复过程中加入新的硬件。存储系统将为损失的数据在完好设备中分配新的空间,失效设备上的数据将被恢复到正常的存储服务器和磁盘中。

为了提高数据恢复的效率,在存储系统中数据恢复是基于真实数据的恢复,只恢复存储设备中有效的数据,而不是像传统存储系统那样针对整个磁盘所有块的数据恢复,这样可以有效的减少数据恢复过程中的数据传输量。在存储系统中,一个磁盘上的数据段对应的冗余数据是平均分布在其他所有的存储服务器上的,损失的数据也将平均恢复到整个存储集群中,数据恢复过程由所有状态完好的存储服务器并发进行,是一个多对多的数据恢复模式。由于数据恢复过程中所有存储服务器都共同参,所以存储服务器集群的规模越大,参与恢复的存储服务器数量就越多,整个系统的恢复速度也就越快。这就意味着集群存储系统的规模越大,安全程度就越高,这和传统的SAN和NAS方案是完全相反的。当设备失效后,一旦数据恢复完成整个系统立即成为最高安全状态,这时再发生设备失效也不会导致数据的丢失。理论上,只要系统中空闲空间足够,整个存储服务器集群依次失效至只有两台,集群存储系统也能够正常工作,也不会有数据丢失。全自动的高效数据恢复过程不仅仅提高了系统的可靠性,也大幅度降低了管理员的工作强度。

此数据可靠性策略可保证底层存储硬件在出现损坏时保证数据的可靠性以及可用性,不管是在存储磁盘损坏、存储服务器宕机、网络损坏时都能保证数据的正常运转,且数据恢复效率的极大提升同时也极大的提升了数据的可靠性。

RAID

RAID简介

RAID是独立冗余磁盘阵列。冗余磁盘阵列技术诞生于1987年,由美国加州大学伯克利分校提出。简单地解释,就是将N块硬盘通过RAID 结合成虚拟单台大容量的硬盘使用。RAID的采用为存储系统(或者服务器的内置存储)带来巨大利益,其中提高传输速率和提供容错功能是最大的优点。其特色是N台硬盘同时读取速度加快及提供容错性,所以RAID是当成平时主要访问数据的存储速度问题(Storage)不是备份问题(Backup Solution)。
简单的说,RAID是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术。组成磁盘阵列的不同方式成为RAID级别(RAID Levels)。

EDAP   

在RAID有一基本概念称为EDAP(Extended Data Availability and Protection),其强调扩充性及容错机制,包括在不须停机情况下可处理以下动作:

1.RAID 磁盘阵列支援自动检测故障硬盘;

2.RAID 磁盘阵列支援重建硬盘坏轨的资料;

3.RAID 磁盘阵列支援支持不须停机的硬盘备援;

4.RAID 磁盘阵列支援支持不须停机的硬盘替换;

5.RAID 磁盘阵列支援扩充硬盘容量等。

RAID 的种类

基于不同的架构,RAID 的种类又可以分为: 软件RAID (软件RAID) ,硬件RAID (硬件RAID) ,外置RAID (External RAID) 。

软件RAID很多情况下已经包含在系统之中,并成为其中一个功能,如 Windows、Netware及Linux。软件RAID中的所有操作皆由中央处理器负责,所以系统资源的利用率会很高,从而使系统性能降低。软件RAID是不需要另外添加任何硬件设备,因为它是靠你的系统—主要是中央处理器的功能—提供所有现成的资源。 硬件RAID通常是一张PCI卡,你会看到在这卡上会有处理器及内存。因为这卡上的处理器已经可以提供一切RAID所需要的资源,所以不会占用系统资源,从而令系统的表现可以大大提升。

硬件RAID的应用之一是可以连接内置硬盘、热插拔背板或外置存储设备。无论连接何种硬盘,控制权都是在RAID卡上,亦即是由系统所操控。 在系统里,硬件RAID PCI卡通常都需要安驱动程序,否则系统会拒绝支持。 磁盘阵列可以在安装系统之前或之后产生,系统会视之为一个(大型)硬盘,而它具有容错及冗余的功能。磁盘阵列不单只可以加入一个现成的系统,它更可以支持容量扩展,方法也很简单,只需要加入一个新的硬盘并执行一些简单的指令,系统便可以实时利用这新加的容量。

外置式RAID也是属于硬件RAID的一种,区别在于RAID卡不会安装在系统里,而是安装在外置的存储设备内。而这个外置的储存设备则会连接到系统的SCSI卡上。系统没有任何的RAID功能, 因为它只有一张SCSI卡;所有的RAID功能将会移到这个外置存储里。好处是外置的存储往往可以连接更多的硬盘,不会受系统机箱的大小所影响。而一些高级的技术,如双机容错,是需要多个服务器外连到一个外置储存上,以提供容错能力.外置式RAID的应用之一是可以安装任何的操作系统,因此是与操作系统无关的。因为在系统里只存在一张SCSI卡,并不是RAID卡。而对于这个系统及这张SCSI卡来说,这个外置式的RAID只是一个大型硬盘,并不是什么特别的设备,所以这个外置式的RAID可以安装任何的操作系统。唯一的要求就是你用的这张SCSI卡在这个操作系统要安装驱动程序。

RAID按照实现原理的不同分为不同的级别,不同的级别之间工作模式是有区别的。整个的RAID结构是一些磁盘结构,通过对磁盘进行组合达到提高效率,减少错误的目的。为了便于说明,下面示意图中的每个方块代表一个磁盘,竖的叫块或磁盘阵列,横称之为带区。RAID的主要分类包括:RAID 0无差错控制的带区组、RAID 1镜象结构、RAID2带海明码校验、RAID3带奇偶校验码的并行传送、RAID4带奇偶校验码的独立磁盘结构、RAID5分布式奇偶校验的独立磁盘结构、RAID6两种存储的奇偶校验码的磁盘结构、RAID7优化的高速数据传送磁盘结构、RAID10/01高可靠性与高效磁盘结构、RAID 50:被称为分布奇偶位阵列条带。

RAID的主要优点有:

1.RAID的采用为存储系统(或者服务器的内置存储)带来巨大利益,其中提高传输速率和提供容错功能是最大的优点。

2.RAID通过同时使用多个磁盘,提高了传输速率。RAID通过在多个磁盘上同时存储和读取数据来大幅提高存储系统的数据吞吐量。在RAID中,可以让很多磁盘驱动器同时传输数据,而这些磁盘驱动器在逻辑上又是一个磁盘驱动器,所以使用RAID可以达到单个磁盘驱动器几倍、几十倍甚至上百倍的速率。这也是RAID最初想要解决的问题。因为当时CPU的速度增长很快,而磁盘驱动器的数据传输速率无法大幅提高,所以需要有一种方案解决二者之间的矛盾。RAID最后成功了。

3.通过数据校验,RAID可以提供容错功能。这是使用RAID的第二个原因,因为普通磁盘驱动器无法提供容错功能,如果不包括写在磁盘上的CRC(循环冗余校验)码的话。RAID容错是建立在每个磁盘驱动器的硬件容错功能之上的,所以它提供更高的安全性。在很多RAID模式中都有较为完备的相互校验/恢复的措施,甚至是直接相互的镜像备份,从而大大提高了RAID系统的容错度,提高了系统的稳定冗余性。

NFS

NFS简介

网络文件系统(NFS)是文件系统之上的一个网络抽象,允许远程客户端以与本地文件系统类似的方式,来通过网络进行访问。目前它已经发展并演变成 UNIX/Linux系统中最强大最广泛使用的网络文件系统。NFS 允许在多个用户之间共享公共文件系统,并提供数据集中的优势,来最小化所需的存储空间。从 1984 年问世以来持续演变,并已成为分布式文件系统的基础。当前,NFS(通过 pNFS 扩展)通过网络对分布的文件提供可扩展的访问。

NFS 的发展历程   

NFS 是第一个现代网络文件系统(构建于 IP 协议之上)。在 20 世纪 80 年代,它首先作为实验文件系统,由 Sun Microsystems 在内部完成开发。NFS 协议已归档为 Request for Comments(RFC)标准,并演化为大家熟知的 NFSv2。作为一个标准,由于 NFS 与其他客户端和服务器的互操作能力而发展快速。标准持续地演化为 NFSv3,在 RFC 1813 中有定义。这一新的协议比以前的版本具有更好的可扩展性,支持大文件(超过2GB),异步写入,以及将TCP作为传输协议,为文件系统在更广泛的网络中使用铺平了道路。在 2000 年,RFC 3010(由 RFC 3530 修订)将 NFS 带入企业设置。Sun 引入了具有较高安全性,带有状态协议的 NFSv4(NFS 之前的版本都是无状态的)。今天,NFS 是版本 4.1(由 RFC 5661 定义),它增加了对跨越分布式服务器的并行访问的支持(称为 pNFS extension)。

  

NFS 的时间表,包括记录其特性的特定 RFC ,都在图 1 中有展示。

NFS 已经历了近30年的开发。它代表了一个非常稳定的(及可移植)网络文件系统,它可扩展、高性能、并达到企业级质量。由于网络速度的增加和延迟的降低,NFS 一直是通过网络提供文件系统服务具有吸引力的选择。甚至在本地网络设置中,虚拟化驱动存储进入网络,来支持更多的移动虚拟机。NFS 甚至支持最新的计算模型,来优化虚拟的基础设施。

NFS 允许计算的客户 — 服务器模型(见图 2)。服务器实施共享文件系统,以及客户端所连接的存储。客户端实施用户接口来共享文件系统,并加载到本地文件空间当中。
图 2. NFS 的客户端 — 服务器架构

在 Linux中,虚拟文件系统交换(VFS)提供在一个主机上支持多个并发文件系统的方法(比如 CD-ROM 上的 International Organization for Standardization [ISO] 9660,以及本地硬盘上的 ext3fs )。VFS 确定需求倾向于哪个存储,然后使用哪些文件系统来满足需求。由于这一原因,NFS 是与其他文件系统类似的可插拔文件系统。对于 NFS 来说,唯一的区别是输入/输出(I/O)需求无法在本地满足,而是需要跨越网络来完成。

一旦发现了为 NFS 指定的需求,VFS 会将其传递给内核中的 NFS 实例。 NFS 解释 I/O 请求并将其翻译为 NFS 程序(OPEN、ACCESS、CREATE、READ、CLOSE、REMOVE 等等)。这些程序,归档在特定 NFS RFC 中,指定了 NFS 协议中的行为。一旦从 I/O 请求中选择了程序,它会在远程程序调用(RPC)层中执行。正如其名称所暗示的,RPC 提供了在系统间执行程序调用的方法。它将封送 NFS 请求,并伴有参数,管理将它们发送到合适的远程对等级,然后管理并追踪响应,提供给合适的请求者。

进一步来说,RPC 包括重要的互操作层,称为外部数据表示(XDR),它确保当涉及到数据类型时,所有 NFS 参与者使用相同的语言。当给定架构执行请求时,数据类型表示可能不同于满足需求的目标主机上的数据类型。XDR 负责将类型转换为公共表示(XDR),便于所有架构能够与共享文件系统互操作。XDR 指定类型字节格式(比如 float)和类型的字节排序(比如修复可变长数组)。虽然 XDR 以其在 NFS 中的使用而闻名,当您在公共应用程序设置中处理多个架构时,它是一个有用的规范。

一旦 XDR 将数据转换为公共表示,需求就通过网络传输给出传输层协议。早期 NFS 采用 Universal Datagram Protocol(UDP),但是,今天 TCP 因为其优越的可靠性而更加通用。在服务器端,NFS 以相似的风格运行。需求到达网络协议栈,通过 RPC/XDR(将数据类型转换为服务器架构) 然后到达 NFS 服务器。NFS 服务器负责满足需求。需求向上提交给 NFS 守护进程,它为需求标示出目标文件系统树,并且 VFS 再次用于在本地存储中获取文件系统。整个流程在图 3 中有展示。注意,服务器中的本地文件系统是典型的 Linux 文件系统(比如 ext4fs)。因此,NFS 不是传统意义上的文件系统,而是访问远程文件系统的协议。
图 3. 客户端和服务器 NFS 堆栈

对于高延迟网络,NFSv4 实现称为 compound procedure 的程序。这一程序从本质上允许在单个请求中嵌入多个 RPC 调用,来最小化通过网络请求的 transfer tax。它还为响应实现回调模式。

NFS 协议

从客户端的角度来说,NFS 中的第一个操作称为 mount。 Mount 代表将远程文件系统加载到本地文件系统空间中。该流程以对 mount(Linux 系统调用)的调用开始,它通过 VFS 路由到 NFS 组件。确认了加载端口号之后(通过 get_port 请求对远程服务器 RPC 调用),客户端执行 RPC mount 请求。这一请求发生在客户端和负责 mount 协议(rpc.mountd)的特定守护进程之间。这一守护进程基于服务器当前导出文件系统来检查客户端请求;如果所请求的文件系统存在,并且客户端已经访问了,一个 RPC mount 响应为文件系统建立了文件句柄。客户端这边存储具有本地加载点的远程加载信息,并建立执行 I/O 请求的能力。这一协议表示一个潜在的安全问题;因此,NFSv4 用内部 RPC 调用替换这一辅助 mount 协议,来管理加载点。

要读取一个文件,文件必须首先被打开。在 RPC 内没有 OPEN 程序;反之,客户端仅检查目录和文件是否存在于所加载的文件系统中。客户端以对目录的 GETATTR RPC 请求开始,其结果是一个具有目录属性或者目录不存在指示的响应。接下来,客户端发出 LOOKUP RPC 请求来查看所请求的文件是否存在。如果是,会为所请求的文件发出 GETATTR RPC 请求,为文件返回属性。基于以上成功的 GETATTRs 和 LOOKUPs,客户端创建文件句柄,为用户的未来需求而提供的。

利用在远程文件系统中指定的文件,客户端能够触发 READ RPC 请求。READ 包含文件句柄、状态、偏移、和读取计数。客户端采用状态来确定操作是否可执行(那就是,文件是否被锁定)。偏移指出是否开始读取,而计数指出所读取字节的数量。服务器可能返回或不返回所请求字节的数量,但是会指出在 READ RPC 回复中所返回(随着数据)字节的数量。

NFS 中的变革

在 NFSv4 之前,存在一定数量的辅助协议用于加载、锁定、和文件管理中的其他元素。NFSv4 将这一流程简化为一个协议,并将对 UDP 协议的支持作为传输协议移除。NFSv4 还集成支持 UNIX 和基于 Windows的文件访问语义,将本地集成 NFS 扩展到其他操作系统中。

NFSv4.1 介绍针对更高扩展性和更高性能的并行 NFS(pNFS)的概念。 要支持更高的可扩展性,NFSv4.1 具有脚本,与集群化文件系统风格类似的拆分数据/元数据架构。如 图 4 所展示的,pNFS 将生态系统拆分为三个部分:客户端、服务器和存储。您可看到存在两个路径:一个用于数据,另一个用于控制。pNFS 将数据布局与数据本身拆分,允许双路径架构。当客户想要访问文件时,服务器以布局响应。布局描述了文件到存储设备的映射。当客户端具有布局时,它能够直接访问存储,而不必通过服务器(这实现了更大的灵活性和更优的性能)。当客户端完成文件操作时,它会提交数据(变更)和布局。如果需要,服务器能够请求从客户端返回布局。

NFS 实施多个新协议操作来支持这一行为。LayoutGet 和 LayoutReturn 分别从服务器获取发布和布局,而 LayoutCommit 将来自客户端的数据提交到存储库,以便于其他用户使用。服务器采用 LayoutRecall 从客户端回调布局。布局跨多个存储设备展开,来支持并行访问和更高的性能。图 4. NFSv4.1 的 pNFS 架构

数据和元数据都存储在存储区域中。客户端可能执行直接 I/O ,给出布局的回执,而 NFSv4.1 服务器处理元数据管理和存储。虽然这一行为不一定是新的,pNFS 增加功能来支持对存储的多访问方法。当前,pNFS 支持采用基于块的协议(光纤通道),基于对象的协议,和 NFS 本身(甚至以非 pNFS 形式)。

通过 2010 年 9 月发布的对 NFSv2 的请求,继续开展 NFS 工作。其中以新的提升定位了虚拟环境中存储的变化。例如,数据复制与在虚拟机环境中非常类似(很多操作系统读取/写入和缓存相同的数据)。由于这一原因,存储系统从整体上理解复制发生在哪里是很可取的。这将在客户端保留缓存空间,并在存储端保存容量。NFSv4.2 建议用共享块来处理这一问题。因为存储系统已经开始在后端集成处理功能,所以服务器端复制被引入,当服务器可以高效地在存储后端自己解决数据复制时,就能减轻内部存储网络的负荷。其他创新出现了,包括针对 flash 存储的子文件缓存,以及针对 I/O 的客户端提示 (潜在地采用 mapadvise 作为路径)。