当前位置:首页 > 海量存储
  • 基于快速传输海量存储的电能质量监测系统

    随着电力电子设备的应用领域越来越广,导致用电负荷加大,其中一些冲击性、非线性负荷使得电网中电压波形畸变,电压波动、闪变和谐波含量增加等问题时有发生,电网受到严重污染;另外,随着精密和复杂电子设备的大量应用,对电网电能质量的要求也越来越高。因此如何提高电能质量是电力企业面临的一个重要课题,而对电能进行实时监测是提高和改善电能质量的一个重要组成部分。 目前已有的电能质量监测设备基本实现了对数据的采集、传输以及分析处理功能,只是在各功能实现的方式上有所不同。文献分别采用虚拟仪器技术、 DSP+MCU双CPU设计以及在LPC2478上移植μC/OS-Ⅱ操作系统技术来实现对电能质量的监测,其中与外部的通信部分采用RS-232、红外、RS-485等通信方式。 通信技术是研究与开发电能质量监测系统的关键技术之一,其通信性能也直接影响着整个电能质量监测系统的性能,这样对数据的传输速率以及传输可靠性方面提出很高的要求。由于CAN总线在性能、可靠性等方面的突出优势以及可高速、长距离传输等特点,使之特别适合现场监控设备的数据通信。因此,采用CAN总线来构建电能质量监测系统的通信网络,可有效地实现大量数据高速可靠地传输。同时,以往在线式电能质量监测装置的存储容量较小,而本装置利用U盘读写模块,使装置外扩更大容量的移动硬盘,实现了数据的海量存储。针对以上需求,提出了一种基于CAN总线的电能质量监测及数据存储系统的设计方案,经实验测试证明了该方案的有效性。 1 系统工作原理 该系统采用双DSP作为核心,将采集到的数据进行A/D转换后输出给主DSP,主DSP分析处理后连同原始数据一同发送到CAN总线上,CAN- bus转以太网模块从总线上读取数据上传至上位机进行分析处理,通过图表显示、统计、分析,实时显示电能质量的健康状况。辅DSP从总线上读取数据后进行压缩,通过U盘读写模块将数据存到大容量移动硬盘里。系统工作原理,如图1所示。   2 系统的硬件设计 2.1 CPU与A/D芯片的选取 根据系统工作需要,CPU既要有快速数据处理能力又要有丰富的外设控制功能,选取TI公司的TMS320F2812,这是一款用于控制的高性能、多功能、高性价比的32位定点DSP芯片,最高可在150 MHz主频下工作。F2812片内集成众多资源,本系统主要利用其快速处理和不同于其他CPU的增强型eCAN总线接口和事件管理器(EV)功能,选择双 CPU主要是根据工作需要,主CPU完成数据采集、处理和发送,而辅CPU完成数据压缩和存储。A/D芯片选用TI公司的高性能A/D转换芯片 ADS8364。该芯片是一款高速、低能耗、6通道同步采样,单+5 V供电的16位高速并行接口的高性能A/D转换芯片,其不论在精度、速率还是采集方式上都符合本系统设计要求。 2.2 数据采集模块 数据采集模块主要完成系统对三相电压、三相电流的实时而精确的数据采集,为以后各项指标的计算分析提供可靠的数据资源。 2.2.1 电压、电流互感器 为尽可能使采样到DSP的信号逼近于原始信号,还应选择合适的电流、电压变换器进行测量和转换,使信号调整为适合A/D转换的要求。设计采用上海和华电子科技有限公司生产的电流型电压互感器SPT204A和电流互感器SCT254FK。 2.2.2 抗混叠滤波电路设计 抗混叠滤波电路实质是迫使信号通过一个有限带宽的低通滤波器,使输入到A/D转换器的信号为有限带宽信号,并且以很小的衰减让有效的频率信号通过,而抑制这个频带以外的频率信号,从而防止信号的频谱发生混叠及高频干扰。该滤波器的截止频率为采样频率的一半。谐波测量系统在信号每个周期采样128点即采样频率为128×50=6 400 Hz,所以抗混叠滤波器的截止频率为采样频率的一半即3200Hz。     2.2.3 锁相倍频电路的设计 虽然我国电网的频率规定为50 Hz,但实际电网的频率受供电负荷不平衡影响会有一些波动。如果以定步长对电力系统的信号进行采样,会使实际每个工频周期内采样点的起始时刻、采样点个数出现差异,这种差异将导致栅栏效应和频谱泄露,使信号频谱分析的结果产生误差。为尽量减小这种误差,设计锁相倍频电路跟踪系统频率的波动。   锁相倍频电路由相位比较器、环路滤波器、压控振荡器和分频器4部分构成,具体电路如图3所示,电路工作原理为:输入电压信号通过14脚接入 CD4046的相位比较器,经锁相环的相位锁定后,由CD4040的4脚输入CD4046的3脚的信号频率与原输入信号的频率一致。此时由CD40 46产生一个频率为128倍于输人信号的脉冲作为A/D的采样频率。在此,将锁相倍频电路输出端口与ADS8364的/HOLDX相连,以满足同步采样的需要。 2.3 数据通信模块 数据通信部分采用CAN总线,在传输速率上有了很大的提高,可以达到1 Mbit·s-1。F2812内部集成了eCAN控制器。eCAN模块是一种片上增强控制器,其性能较已有的DSP内嵌CAN控制器有较大提高,而且数据传输灵活方便,数据量大、可靠性高、功能完备。CAN驱动器使用TI公司的SN65HVD230D设计了CAN-bus转以太网模块,用来完成向上位机传输数据。该模块内部集成了一路CAN-bus接口和一路EtherNet接口以及TCP/IP协议栈,利用它可以轻松完成CAN-bus网络和 EtherNet网络的互联,进一步拓展CAN-bus网络的范围。CAN口通信最高波特率为1Mbit· s-1,具有TCP Server,TCPClient,UDP等多种工作模式,每个CAN口可支持2个TCP连接或3×254个UDP连接,通过配置软件可以设定相关配置参数。方便地实现了数据高速传输,把数据实时传到上位机进行分析处理,及时发现问题,为电网安全稳定运行提供了保障。[!--empirenews.page--]   2.4 数据存储模块 本文的设备结合数据压缩技术,完成对所有数据的存储,可以连续记录一年的波形,不需要门槛和触发阀值,只要简单地接入,不会丢失事件,为以后的计算分析提供可靠的数据资源。该模块内嵌USB2.0协议,具有RS232串口和高速SPI接口,SPI口读写文件速度为1.5Mbit ·s-1,可以把所有数据及时地存储到硬盘里,其具有以下功能:检测U盘的状态、创建文件和目录、打开一个已经创建的文件和目录、从文件中读取指定长度和位置的数据、写数据到指定文件的指定地址、列举目录下的文件和目录、删除文件和目录、查询U盘容量、剩余空间及FAT格式。模块遵守USB2.0协议规范,支持所有基于USB的移动存储器,支持FAT16/32文件系统。系统工作于命令应答方式下,由用户系统发出命令,系统再根据该命令进行相应处理后,向用户系统返回相关的应答。 3 系统软件设计 实时电能质量监测系统的软件主要包括:运行在电能质量监测仪上的数据采集、存储、通信以及各种算法软件;另一部分是运行在上位机上的软件,用来对从监测仪获得的电能质量数据进行统计、分析以及为改善电能质量问题所采取的措施提供依据。结构图,如图5所示。   图6为运行在电能质量检测仪上的程序流程图,一些函数模块的功能介绍如下:   SysCtrl():主要完成系统各功能模块的初始化任务,包括CPU TMS320F2812的系统时钟频率的设置、外设时钟的开启以及A/D转换芯片ADS8364的工作时钟。 Read_AD():主要用来读取A/D转换后的数据,为CPU对数据的后续处理做准备。 fft128():把信号从时域变成频域,主要完成谐波的分析。 CAN_TX():主CPU把数据发送到CAN总线上。 SPI_TX():主要实现对数据的存储,把所有实时数据都保存到外扩的移动硬盘。 4 系统性能测试 本系统在负载三相交流电机、KT系列晶闸管调压器、VBF-150/200型真空高温压力焊接炉工作下,对三相电压进行监测。 具体实验过程:首先负载1工作,将焊接炉内抽成真空,约半小时,接着接通整流设备连同负载2一起工作,整流设备将三相交流电压转化成5 V直流电压,其内置整流、稳压等电路,可能对电网造成污染。在此期间,本电能质量监测系统一直跟踪监测,所测电压数据波形如图7(a)和图7(b)所示。   由电压波形图可知,大型的非线性负载对电网会造成严重的污染,因此研究开发新型、实用、稳定可靠的电能质量监测仪,对电网安全稳定运行具有重要意义。 5 结束语 设计的基于CAN总线的电能质量监测及数据存储系统不仅能够实现以往产品的功能,还可以保存长达一年的历史数据,并利用CAN总线结合以太网快速高效地传输数据,满足了现代电能质量监测系统网络化、实时性的要求,经试验证明,各项功能指标达到了设计要求。

    时间:2016-01-22 关键词: 存储技术 电能质量 海量存储 快速传输

  • DNA海量存储问世 基因芯片迎机遇

    据海外媒体报道,欧洲生物信息研究所的专家们日前开发出了一项利用DNA存储数据的技术,优越性十分明显,其海量容量是传统介质无法比拟的。目前这项技术所面临的唯一障碍就是成本过高,不过专家表示该技术有望在十年内将其普及。研究人员表示,这一基因代码可以把数十亿的信息包含在一克DNA分子中,而一毫克的分子将美国国会图书馆(Library of Congress)中的所有书籍完全编码后仍绰绰有余。不过这一切目前还只停留于理论上。     DNA,即脱氧核糖核酸,主要功能是存储包含各种指令的生物信息,组成DNA的有G(鸟嘌呤)、T(胸腺嘧啶)、A(腺嘌呤)、C(胞嘧啶)四种碱基,并通过四种碱基不同顺序的编码,存储了生物的所有遗传信息。谈到存储信息,现有的硬盘无法跟DNA相比。 在一项新的研究中,研究人员将一本完整的遗传学教材保存在了不到一沙克的DNA中,这一突破将彻底改变我们未来存储数据的能力。据媒体报道,George Church领导的一个团队创建了基于任意细胞的DNA信息归档系统,并利用喷墨打印机将使用化学方法合成的DNA片段嵌入到微小的玻璃芯片表面。 编码数字文件时,研究人员将其划分为小块数据,但不是以当前通行的0、1来表示存储数据,而是以组成DNA的四种脱氧核苷酸(碱基)As、Cs、Gs和Ts表示。每一个DNA片段还包含一个数字“条码”,记录它在原始文件中的位置。读取数据时,需要借助DNA测序器与计算机把所有DNA片段中的编码按标记顺序排列,并将其转换为数字格式。计算机负责纠错,因为每个DNA片段都被复制了上千份副本,任意一个出错都能通过其它副本来修正。 为证明该系统的可行性,研究团队先将遗传学教材转换并存储到DNA存储芯片上,然后再转换回数字格式。演示系统的出错率为百万分之二,总共只有几个单词拼写错误。这种效果等同于DVD,且远胜于磁盘存储设备。再加上其尺寸微小,因此研究团队在发布到《Science》的研究报告称,DNA芯片是当前已知存储密度最高的介质。

    时间:2013-05-10 关键词: dna 海量存储 基因芯片

  • 浪潮海量存储开启平安城市视频监控新应用

    在国家政策的大力推动下,平安城市建设经过近几年的发展已经具备一定水平,城市人民的生活安全得到了一定的保障。而随着行业的发展和市场的成熟,执法部门对“平安城市”的建设也提出了更高的要求,传统的产品与方案也就不能满足这种需求了,而且传统的产品与方案存在诸多缺陷。 现如今城市监控大多是4Mbps、8Mbps码流的高清视频监控,传统产品(如512KB、2Mbps码流的传统产品)已经不能满足当前的需求了,这就对产品的网络带宽,数据存储容量提出了新的挑战。下表是按照不同码流计算出一路视频在一天产生的视频文件大小。 举例来说:某城市平安城市计划建设3000个点,录像保存一个月,所有摄像头采用D1分辨率(2Mbps的码流)进行录像。经计算单通道视频录像保存一个月需要大约648GB,则3000个点共需要大约1944TB,再加上部分磁盘冗余及热备,总空间将达到大约2PB之多。由此可见视频监控对存储容量的需求成TB级增长。 就方案来说,目前,市场上多数的监控方案大多采用模拟摄像机+数字硬盘录像机(DVR)、网络高清摄像机(IPC)直写到网络视频存储(NVR)、网络高清摄像机(IPC)+流媒体服务器+网络存储(IPSAN)这三种方式,每一种方式都有其缺陷。 模拟摄像机+数字硬盘录像机(DVR)的方式,这种方案前端视频监控图像不清晰,大多数用在小区、企业工厂、超市、银行等点数少、覆盖范围小的应用场合。其优点是成本低、管理简单;其缺点为存储时间短、视频图像不清晰、单点故障率高。 网络高清摄像机(IPC)直写到网络视频存储(NVR)的方式,一般应用在覆盖面广、传输距离长、要求网络带宽高的大型的平安城市中。这种方案优点是省去了前端流媒体服务器,在一定程度上节省了成本。其缺点为当并发连接数增多时,容易导致NVR崩溃,造成数据丢失;当视频监控达到上千路时,NVR数量会积聚增多,占用机房空间大,且NVR比较分散,管理复杂,单点故障率高,容易造成数据丢失。 网络高清摄像机(IPC)+流媒体服务器+网络存储(IPSAN)这种方案填补了网络高清摄像机(IPC)直写到网络视频存储(NVR)的方式的缺点,将视频读写的压力分散到各个流媒体服务器上,是目前平安城市建设最主要的方案,其缺点是随着视频监控路数的增大,流媒体服务器的数量成线性增长,增加了客户投入成本,占用大量的机房空间,导致设备管理复杂。 浪潮领先方案: 分析了当今市场上平安城市的解决方案,基本上有前端视频监控设备、转发流媒体服务器、存储设备三部分构成,当视频设备路数增多时,转发流媒体服务器与存储设备会成线性增长,导致管理维护复杂、单点故障率高、机房空间占用率大、安装实施工程量大。市场上缺少一种集转发与海量存储于一身的安防产品来满足当今平安城市对高带宽、大容量存储、集中管理的需求。 基于以上需求,同时考虑到如今平安城市建设的规模越来越大、要求越来越高,浪潮推出了大型视频监控集中管理方案与海量存储监控平台——浪潮AS3000,其可提供高达64GB的高带宽,最大支持64PB的海量空间,可同时接入多达几千路的高清视频。 浪潮AS3000海量视频监控平台 AS3000海量监控视频监控平台由控制节点、数据节点、存储节点、网络传输设备组成。 控制节点:主要功能是管理与分配并发任务给数据节点,采用轮询方式查询数据节点的忙与闲来分配任务。数据节点:主要功能是接收前端来的视频流,将其通过FC存储网络写入到后端的存储节点或是从后端存储节点中读取视频数据给前端用户查看,它的功能类似于流媒体服务器。存储节点:主要功能是将前端的视频数据以文件级的方式进行存储,保持视频数据的存储安全。网络传输设备:AS3000海量视频监控平台对外提供了丰富的网络接口满足不同应用场合,支持各种不同设备接入。 优势: 高带宽:AS3000海量视频监控平台最高带宽高达64GB,带宽大小随着数据节点的多少成线性增长。如果每一路视频按8Mbps码流计算,AS3000可支持64GB/8Mbps=64000路视频同时写入,除去控制信息所占的带宽,最大支持6万路视频进行写入。 高可用:AS3000海量视频监控平台数据节点、控制节点采用全冗余结构,任意数据节点故障都不会导致业务中断,当某一节点因为故障宕机时,控制节点会发出报警声,分配任务时不再将任务分配给它,而是由其他的数据节点负载均衡。后端存储节点全部采用光纤双冗余线路,任一线路故障都不会影响数据节点的写入,而且采用全光纤技术,不仅速度快,而且安全性也高。 大容量:AS3000海量视频监控平台系统最大容量达64PB,假如每路高清视频按8Mbps码流计算,每个月产生的数据量为:8Mbps×60×60×24×30=259.2GB;按这个数值计算系统可以支持 246913(64PB/259.2GB)路视频存储30天。 写入性能高:众所周知,IP摄像机将前端视频进行编码,然后形成文件的形式传输给录像服务器,录像服务器磁盘都是以块级进行数据存储的,视频数据文件到达录像服务器首先要切割成块,然后分块存储,这样大大的降低了数据的写入性能。浪潮AS3000是基于文件系统开发的,当前端视频文件传输到AS3000,AS3000系统无需将视频文件切割成块,通过AS3000内部的集群文件系统直接将视频文件写入到磁盘,这样就大大提高了视频文件的写入性能,AS3000对视频文件的写入性能比一般的系统性能要高40%左右,是一套适合视频文件读写的专用系统平台。 降低成本:浪潮AS3000集群系统集成了数据节点、存储节点,提供负载均衡,大大提高了数据节点的工作效率。例如3000路 D1 (码流:1Mbps—2Mbps)视频点需要的流媒体服务器大约在30台左右,而选用AS3000则大约只需要15个数据节点,而且这15个数据节点负载均衡,大大提高了数据节点的利用率,另外,任意数据节点故障都不会导致业务中断,因为15个数据节点是相互冗余的。选用浪潮AS3000不仅节省了流媒体服务器的数量,而且提高了系统的安全性。 浪潮AS3000海量视频监控平台具有带宽、高并发、大容量、高可用的特点,完全可以满足上万路平安城市建设的需要,大大的降低客户成本,浪潮AS3000海量视频监控平台必将开启中国安防云应用的新浪潮。

    时间:2012-08-15 关键词: 城市 视频监控 浪潮 海量存储

  • 为嵌入式应用选择、实现NAND闪存海量存储

    标签:NAND  POS 在嵌入式应用中,海量存储密度正在以前所未有的速度增长。像便携式媒体播放器、蜂窝电话、数码相机、便携式导航设备、无线网卡、闪盘这样的消费产品由于需要处理越来越多的多媒体内容而要求更高的海量存储密度。 NAND闪存已经成为消费类应用中用作海量存储的主要选择,因为它相比NOR闪存而言具有单位比特成本更低、存储密度更高的优势,并且具有比硬盘更小的尺寸、更低的功耗以及更可靠的优势。 因为NAND闪存在消费市场上的需求量很高,因而存储成本下降得很快,像POS(销售点)终端、打印机以及其他应用可以用NAND存储器以更低的成本达到更高的密度。 然而,由于这些嵌入式应用对更高NAND闪存密度的要求在不断提高,设计师需要从各种NAND闪存类型、密度、供应商以及发展路线图和实现方式中作出合理选择。 使用NAND闪存的第一个也是最重要的选择标准是NAND控制器的实现。所有的NAND闪存器件都需要位于软件中的维护开销和作为硬件的外部控制器以确保数据可靠,使NAND闪存器件的寿命最大,并提高性能。NAND控制器的三个主要功能是坏块管理、损耗均衡以及纠错编码(ECC)。 NAND闪存以簇的形式进行数据存储,即所谓的块。大多数NAND闪存器件在制造测试时就会发现有一些坏块,这些坏块在供应商的器件规格说明中是有标记的。 此外,好的块也可能会在NAND生命周期内降低性能,因此必须通过软件进行跟踪,并进行坏块管理。此外,对特定的块进行不断的读写操作可能导致该块很快“磨损”而变成坏块。为了确保NAND器件最长的寿命,限制磨损块的数量,需要利用损耗均衡技术让所有的块读写次数均衡。 最后,由于某个单元的休止或操作可能产生误码,因此必须以软件或硬件方式实现ECC来发现并纠正这些误码。ECC通常被业界定义为每528字节扇区中能纠正的代码比特数。在一个系统中,这种NAND控制器可以按照图1所示的三种不同配置方式与NAND进行组合。 除了从图1所示的三种NAND解决方案中作出选择外,设计师还必须在两种NAND闪存器件-SLC NAND和MLC NAND中作出选择,它们各有优缺点。 SLC NAND的每个块都具有更长的使用寿命和可靠性,因此需要较少的ECC,并能提供优异的性能。MLC NAND性能则较低,而且难以实现,因为它需要更高等级的坏块管理、损耗均衡和ECC。 然而就单比特的价格来说,它大约只有SLC NAND的1/3。由于SLC和MLC NAND之间成本差距越来越大,大多数应用开始转向MLC NAND,特别是较高密度的应用,这样可以大大地降低材料成本。 图1中的三选一需要考虑多种因素,包括微处理器对NAND控制器的支持、所采用的NAND类型(SLC或MLC)以及平台所要求的NAND密度。 图1:NAND架构选择 如果平台中使用了带完整NAND接口和控制器的微处理器,设计师通常倾向于第一种选择。大多数当代的微处理器即使支持NAND的话,通常也只支持较低密度的SLC NAND存储器。 工艺技术限制了SLC或MLC NAND裸片上能够实现的存储量,而当前每个裸片能支持的密度大约为1GB。因此为了支持更高密度的NAND,控制器必须支持多个NAND。 通常这需要通过使用交织处理和多个芯片使能管脚实现。而增加多个芯片使能脚以支持多个NAND将使微处理器的引脚数量增多,因此在微处理器中包含该类型的NAND控制器不是十分流行。 而且MLC NAND接口在微处理器上很难看到,这有几方面的原因。随着MLC NAND工艺技术节点的持续缩小,支持这种NAND存储器所需的ECC等级变得越来越高。 目前MLC NAND所需的ECC等级为4比特,但是很快就会提高到8比特和12比特。更多数量的ECC需要NAND控制器中的硬件支持。然而,微处理器的发展步伐比快速发展的MLC NAND迟缓得多。 对很多不同的嵌入式和可插拔式存储器而言,“受控NAND”方法(选项2)非常有用。所有的便携式SD/MMC卡都是这种实现方法,而市场上的嵌入式受控NAND也有几种选择。这种方法有其优势,因为微处理器只需要支持一种SD/MMC类型接口就能使系统支持SLC或MLC NAND。 控制器是与NAND存储器堆叠在一起的,负责处理所有的坏块管理、损耗均衡以及NAND所需的ECC。目前受控的NAND实现密度在嵌入式应用中大约为4GB,在移动卡中为8GB。 这种方法的缺点是不同的供应商在他们的各种受控NAND上支持不同的接口(有的供应商可能使用SD、有的供应商可能使用MMC,也有供应商可能使用专用接口),因此更换NAND供应商的时候需要对软件作大量修改 选项3让设计师在选择NAND类型以及选择不同供应商时具有最大的自由度。几乎所有的NAND控制器都支持不同类型、不同供应商和不同密度的NAND,而且由于NAND控制器总是使用相同的接口连接处理器,因此设计师可以自由选择不同的NAND类型和供应商,而不需要修改软件。 图2所示的框图提供了使用具有完整SLC和MLC NAND管理功能的多媒体海量存储控制器的西桥(West Bridge)实现方式。 图2:利用Cypress公司的Astoria器件实现西桥的方法 使用一个“与电脑设计中用到的南桥相似特性和目标”的西桥接口可以支持多个处理器接口,例如SRAM、ADMUX、SPI和NAND,并支持来自任何供应商、ECC为4比特的多达16个SLC或MLC NAND器件。 设计师因此能够灵活地在密度方面作出选择,并能随时改变NAND供应商,只需很少甚至不用修改微处理器上运行的软件。使用一个外部NAND控制器还具有其他好处。 例如,支持高速USB接口的西桥可以将主处理器旁路掉,并在便携式媒体播放器或手机等应用中提供从PC到海量存储器的直接路径,从而实现最佳的侧边加载性能。如果系统微处理器仅限于SDIO接口的话, 对SD、MMC和SDIO接口的支持还能够帮助设计师连接SDIO类型的器件,例如WiFi或蓝牙。 当考虑系统的NAND预算的各种要求(比如密度、成本、尺寸和灵活性)时,设计师有好几种NAND实现选项,它们各有优劣。如果系统微处理器有内置的SLC或MLC控制器,就不需要外部器件或逻辑。 否则受控NAND方法也不错,因为它由NAND供应商执行封装,同样不需要外部逻辑或芯片。然而,为了获得最大的灵活性,开发商可以利用外部NAND控制器来支持所有的NAND类型和偏好。这种方法还能提供性能和接口等方面的其他好处,但是需要外部芯片。

    时间:2012-08-02 关键词: nand 闪存 嵌入式应用 海量存储

  • 应用于海量存储中高度容错的新编码方案

    于XOR的纠删编码的一种新方法,解决了传统RAID系统不能解决的高容错性问题,且比Reed?Solomon等算法有更好的时间效率。Ningxy编码方法对于解决高容错性问题有着最佳的效果,该编码更适用于动态增减磁盘数量的网络存储的数据修复;与此同时提出了新概念步长,步长对解决高度容错起到了关键性作用;通过线性变换、高斯消元,迅速地恢复丢失的磁盘数据。更值得一提的是从整体性能和效率上来说,该编码比其他的编码更具有灵活性。 随着当前信息数据的爆炸式增长,如何确切地保护和妥善管理用户的重要数据成为一个亟待解决的问题。目前拥有很多种方案来解决数据的安全性问题。例如当数据丢失后,仍可以让其恢复或再生。在解决这个问题中,需要提及一个概念RAID。它是由美国的D.A.Patterson在1988年提出的。RAID将离散的磁盘变成了RAID子系统。RAID具有较高的性能,这是因为不同磁盘上的数据可以同时读取,从而提高磁盘的带宽;所有磁盘可以并行地进行寻道工作,减少了寻道的时间,提高整体性能。在性能提高的同时,还可以保证一定程度的容错性。通过相应的冗余磁盘容错机制,可以保证在不丢失保存在失效磁盘上的数据的前提下允许磁盘的失效。Gibson等人对磁盘驱动器失效的规律进行了研究。他们广泛地收集实验数据并分析了磁盘失效模型,认为负指数分布很好地表述了磁盘驱动器的失效规律。这种研究可以提供一种思维方式,如因为自然灾害(地震、火灾)、战争等情况下,多个磁盘驱动器同时发生故障、系统瘫痪,也能对机密资料进行快速恢复或修复,给把数据视为生命的机构和单位提供保障。 大多数情况,在目前单点失效模式下,磁盘阵列系统主要依靠RAID 5容错来为用户数据提供可靠性。在比特错误提高很少的情况下,磁盘容量的持续增长把RAID 5和RAID 6系统可靠性削弱到了无法令人接受的境地。本文提出了在磁盘阵列和其他可靠的存储系统中基于XOR的纠删编码的一个新方法。这个新编码的一个关键优势是其并不是非MDS(在编码理论中,MDS代表最大距离分离)。 1相关的概念术语 a)单元(element)是一个基本的数据或者校验单元。 b)条带(stripe)是一个完整的数据和校验单元的集合。这些单元由于校验关系而有着依赖相关性。实际上它相当于一个码字,既有原始信息又有冗余信息,并且原始数据和冗余数据间必须有校验关系。 c)条块(strip)是所有连续的在同一磁盘和条带上的存储单元。它上面存放的是数据或者校验数据或者两者都有。值得说明的是,这些strip大小相同(包含同样数量的elements)。 d)阵列(array)是存在一个或者多个条带的数个磁盘的组合。磁盘阵列中的划分如图1所示。 e)堆栈(stack)是一个阵列中数个条带的集合,这些条带中的条块数目是相同的。 f)水平码(horizontal code)不同于数据,它单独地存储校验数据。 g)步长(step)是一个数据条块到另一个数据条块之间的跨度(本文引入的新概念)。步长示意图如图2所示。图中步长用?S?表示。 按照误码控制的不同功能可分为检错码、纠错码和纠删码等。检错码仅具备识别错码功能而无纠正错码功能;纠错码不仅具备识别错码功能,同时具备纠正错码功能;纠删码则不仅具备识别错码和纠正错码的功能,而且当错码超过纠正范围时可把无法纠错的信息删除。 按照误码产生的原因不同,可分为纠正随机错误的码与纠正突发性错误的码。前者主要用于产生独立的局部误码;后者主要用于产生大面积连续误码的情况,如磁带数码记录中磁粉脱落而发生的信息丢失。按照信息码元与附加的监督码元之间的检验关系可分为线性码与非线性码。如果两者呈线性关系,即满足一组线性方程式,称为线性码;否则,两者关系不能用线性方程式来描述,称为非线性码。 6进一步工作 本文阐述了容错度为?t?且根据决定空间效率的参数?r/v?来进行磁盘整列的设计、分析时间复杂度的情况。这种编码算法对于在RAID或者DRAID结构中的磁盘损坏有很好的恢复效果。就存储效率和性能来说,也比其他很多编码有更强的优势,如比Weaver、Reed?Solomon等算法空间复杂性与时间复杂性都好。同时也引进了一个新的概念,即步长。这个概念的引入对解决高容错性磁盘阵列问题或者更大的网络存储数据修复问题起着非常重要的作用。进一步工作是如何用解决高容错度的思路去得出?v、r、t和n?的关系,求出最佳的公式表达。主要的工作就是探讨存储效率更高、容错更大,使得空间效率和时间效率在某一应用中能达到最佳状态,对这个DRAID或者RAID系统的影响,并提出一些新的观点,以求解决在高容错情况下高容错度问题。 致谢:笔者向对本文的工作给予支持和建议的同行,特别是兰州理工大学电通院的董建设、徐维涛以及江南大学的刘英戈表示感谢。 参考文献: [1]PLANK J S. A tutorial on Reed?Solomon coding for fault?tolerance in RAID?like systems [J].Software Practice & Experience, 1997, 27(9):995-1012. [2]HAFNER J L. HoVer erasure codes for disk arrays[C]//Proc of International Conference on Dependable Systems and Networks. Washington DC:IEEE Computer Society, 2006:217-226. [3]XU Li?hao, BRUCK J. X?code: MDS array codes with optimal encoding [J].IEEE Trans on Information Theory,1999,45(1):272-276. [4]BLAUM M, BRADY J, BRUCK J,?et al?. EVENODD: an efficient scheme for tolerating double disk failures in RAID architectures [J].IEEE Trans on Computers, 1995,44(2):192-202. [5]PERUMAL S, KRITZINGER P. Object?oriented design of the groupware layer for the ecosystem information system [D]. Montana:University of Montana, 1995. [6]ZAITSEV G V, ZINOVEV V A, SEMAKOV N V. Minimum? check? density codes for correcting bytes of errors [J].Problems in Information Transmission, 1983,19(3):29-37. [7]周敬礼,余胜生.网络存储原理与技术[M].北京:清华大学出版社,2005:33-55. [8]江藤良纯,金子敏信.纠错码及其应用[M].北京:科学出版社,2003:45-93. [9]HAFNER J L. Weaver erasure codes for disk arrays[R].San Jose:IBM Research, 2005. [10]XIN Qin,MILLEAR E L,SCHWARZ T,?et al?. Reliability ?mecha??nisms for very large storage systems[C]//Proc of the 20th IEEE/11th NASA Goddard Conference on Mass Storage Systems and Technologies. Washington DC:IEEE Computer Society,2003:146-156. [11]HAFNER J L. Matrix methods for lost data reconstruction in erasure codes[C]//Proc of the 4th USENIX Conference on File and Storage Technologies.San Francisco:[s.n.],2005:183-196. [12]PLANK J S. T1:erasure codes for storage applications[C]//Proc of the 4th USENIX Conference on File and Storage Technologies.San Francisco:[s.n.],2005:1-74. 更多计算机与外设信息请关注:21ic计算机与外设频道

    时间:2012-05-23 关键词: 方案 应用于 编码 海量存储

  • 海量存储机群系统中提高系统MTTF的设计和分析

    摘  要:当今,机群系统被广泛地应用于海量存储系统。对数据有高可靠性要求的应用,如何提高系统MTTF是人们研究的主要问题。本文提出了一个新的动态备份策略,"并行数据备份策略",通过详细的理论分析,指出该策略可显著地提高系统MTTF;还通过仿真实验,验证了其效果。 关键词:海量存储;机群系统;平均故障前时间 1 引言在过去几年里,机群系统被广泛地应用于海量存储系统,比如,著名的Google文件系统就包含上千个基于linux的计算机。这样做的好处有三个。第一,由于每个节点都是大批量生产的,整个系统的价格可以很低。第二,通过增减节点,系统可以简单地进行扩展。第三,通过在互相独立的节点上备份数据,可以显著地提高系统中数据的可靠性。对存储系统来说,系统的平均故障前时间(MTTF)是指系统中出现某个数据因所有的备份都丢失,而导致该数据无法挽回地丢失所需的平均时间。对于有较高数据可靠性要求的系统,系统的MTTF是衡量系统性能的一个重要指标。提高系统MTTF的一个方法就是   提高数据的备份数。备份数的选择需要综合考虑,因为选择过低的备份数,系统的MTTF不能满足要求;而选择过高的备份数,系统的存储资源就被浪费,特别是当系统中包含大量数据的时候。另一个方面,考虑到机群系统中节点会不断失效,因此还必须对备份数因节点失效而降低的数据进行动态备份,以提高系统MTTF。本文提出了一个新的动态备份策略,"并行数据备份策略",理论分析了其性能,并进行了仿真实验。2系统结构和动态备份策略                                  整个系统的构成情况如下。机群系统包含n个节点。系统中的所有对象状态以状态块为单元进行组织。系统中存储的互不相同的状态块总数正比与节点总数。每个状态块有m个备份。同一个状态块的备份不能在一个节点上,以保证可靠性;一个节点可以同时存储许多个状态块的备份。每个正常节点都会失效。在出现一个节点失效后,系统的动态备份策略为:1)为失效节点上的每个状态块,选择一对源节点和目标节点,源节点包含该状态块,目标节点不包含;2)让这些状态块,同时在各对应源节点和目标节点之间开始转移,直至转移完毕。其中,各状态块的源节点和目标节点的选择应尽可能互不重合,以使尽可能多的状态块转移可并发进行。另外,这个备份策略也意味着每个状态块的备份可存储于任一节点上。下面,通过建立数学模型,理论估计该动态备份策略下的系统MTTF。3理论分析考虑用Markov过程来描述这个模型。为此,做如下假设。节点的失效速率服从指数分布,均值为l。由于系统中节点数目巨大,所以在一个节点失效后,其上的状态块完全可以找到互不重复的源节点和目标节点,状态块转移可以并发进行,可设转移速率服从指数分布,均值为lb。另外,考虑到系统中的节点数目巨大,可以认为系统在出现某状态块无法挽回丢失时,系统中正常工作的节点数依然维持在较高水平,与起始时的节点数n在同一个数量级。因此,可近似认为系统中节点数始终为n。于是,取有几个失效节点上的状态块正在进行转移为研究对象,可得状态转移图如图1。其中,m为每个状态块的原备份数;ai表示当一个有n个节点的系统中有(i-1)个失效节点上的状态块正在进行转移时无状态块丢失,而再失效一个节点发生一状态块丢失的概率;状态i'(i>=m)表示系统中出现某状态块无法挽回地丢失。图1 系统的状态转移过程因此,目标就化为系统进入状态i'的均值时间。这个系统可以近似看成一个状态数为无穷的一维生灭过程。要求解进入状态i'的瞬态概率,将涉及解一个含无穷多等式的微分方程组,这是很复杂的。但根据以往求一维生灭过程的稳态解的经验知道,  。因此,如果ln-1/mn很小,那随着n的增加,Pn将急速下降。于是,当n增加到一定值时,可以忽略其后的状态。对一个典型的含1000个节点的机群系统,若节点的MTTF为一天,则系统中出现某节点失效的速率约为0.011/秒;而一个状态块的平均转移时间可以在10秒钟左右,即,转移速率为0.1/秒;这两个速率之比约为0.1。因此,可以忽略系统中n>=m的状态,而把系统进入状态m'的均值时间作为系统的MTTF。下面,以m=3为例,求系统进入状态m'的均值时间E3(T)。由一维生灭过程的瞬态分析,可得以下方程组。其中,Pi(t)表示在t时刻系统处于状态i的概率。这是一个四元常系数线性微分方程组,可通过消元法消为一元线性微分方程,解之,然后可以求出其他各元的解。再根据边界条件,可以求出各解中的系数。系统的边界条件为   。 。而E3(T)可表示为:。。为了求出E3(T)的具体值,还必须求出a3的值。限于篇幅,不加证明的给出如下求am的定理。定理:如果一个拥有n个节点的机群系统,含kn个互不相同的数据块,每个数据块都有m个备份,每个备份随机地分布于机群系统中不同的节点上,那么当系统中出现有s-1个节点失效的时候,无数据块丢失;而当系统中出现有s个节点失效的时候,系统中出现某个数据块无法挽回地丢失的概率为, 其中, 并且s>=1。根据此定理,求出当n=1000, m=3, k=100时a3=0.0006。根据以上推导,可求出E3(T)在不同条件下的值,得到在n=1000, l=1/(24*3600) (/秒)的配置下,当lb=0.1(/秒)时,E3(T)=319天;当lb=0.05(/秒)时,E3(T)=86天;当lb=0.01(/秒)时,E3(T)=2天。类似地,可求出m=2时系统进入状态m'的均值时间E2(T),得到在n=1000, l=1/(24*3600) (/秒)的配置下,当lb=0.1(/秒)时,E2(T)=1.3小时;当lb=0.05(/秒)时,E2(T)=0.73小时;当lb=0.01(/秒)时,E2(T)=0.27小时。分析以上数据可以得到两个结论。第一,三个备份的系统比两个备份的,能显著地提升系统的MTTF。在通常配置下,三个备份的系统的MTTF可达几十天;而两个备份的系统的MTTF只能在1小时左右。第二,数据块的转移时间显著地影响系统的MTTF,转移时间越短,系统的MTTF越长。4仿真实验下面,通过仿真实验来验证上面的结论。仿真实验中的主要参数和限制条件如下。状态块总数与节点总数之比为rchunk=100,节点失效速率l=1/(24小时),节点恢复速率m=1/(24小时)。在进行状态转移时,源节点和目标节点的选择策略:源节点,必须包含该状态块的备份,同时其上正在进行拷贝的状态块数目必须最小;目标节点,从所有不含该状态块的备份的节点中随机选取,同时其上所存储的状态块数目不能超过平均值的tcap=1.3。为保证状态块拷贝不影响系统的正常服务,人为限制正在进行拷贝的节点数目不超过机群系统中节点总数的tratio=40%。为了同样的目的,人为限制状态块拷贝只占用网络带宽的一半;若有多个状态块在向外输出,则它们分享带宽。网络带宽为100Mb/s,一个状态块大小为64M。为了使新加入的节点不在短时间里收到大量的新备份,人为限制每个节点正在进行拷贝的状态块数目不超过tcopy=1。实验结果,如图2所表示。这些限制条件均来自实际系统。图2不同备份数下的系统MTTF        从图上可以很明显地看到三个特点。第一,在相同节点数目下,备份数越多,系统的MTTF越大,这是所预期的。第二,当节点数目达到1000的时候,在2个备份的情况下,系统MTTF小于1小时;在3个备份的情况下,系统MTTF仍能保持在400小时(约为16天)左右。这些值与前面的理论分析基本一致,数值都在相同的数量级。第三,当备份数只有1或2个的时候,随着节点数的增加,系统MTTF显著下降;而当备份数是3个的时候,随着节点数的增加,系统MTTF基本保持不变。这个现象可以解释如下。首先,当备份数只有1或2个的时候,系统MTTF随着节点数的增加而下降的原因是:当节点数增多时,系统中出现节点失效的可能性就增大。比如,对于一个包含1000个节点的机群系统,若每个节点的失效速率为l,则系统中出现节点失效的速率为1000l。在这样高的失效速率下,很容易发生包含同一个状态块备份的两个节点(当备份数为2时)几乎同时失效。另外,随节点数的增多,状态块的数目也成倍增加,这也增加了系统中出现某状态块丢失的可能性。其次,当备份数有3个的时候,系统MTTF随着节点数的增加能保持稳定的原因是:当节点数增多时,虽然系统中出现某个节点失效的可能性增大,会降低系统MTTF,但另一个能起到相反的作用因素显著表现出来。这个因素就是通过并发拷贝操作,大大降低对象状态转移时间。举个例子。假设一个机群系统有1000个节点,每个节点存储着100个状态块,每个状态块大小为64M。当一个节点失效后,系统就会为其上的100个状态块寻找一对源节点和目标节点进行转移。正常情况下,在100Mb/s的网络里,若只使用一半带宽的话,转移一个状态块需要(64MB*8b/B*2)/(100Mb/s),即,近似为10秒。那么,转移100个状态块需要1000秒左右,即,近似为15分钟,这是很长的一段时间。但考虑到系统中有1000个节点,很容易找到这样100对源节点和目标节点,它们没有任何两个节点是相同的。在这种情况下,拷贝操作完全可以并发进行,100个状态块可在10秒内拷贝完毕,这是很短的一段时间。缩短拷贝时间的最大好处是,在拷贝期间发生新节点失效的可能性减小,进而这样就可以减小某个状态块丢失的可能性。为了证明降低拷贝时间的作用,考虑如下对比实验。对于备份数为2和3的那两组实验,将原先的tratio的限制舍弃不用,而限制系统中正在进行拷贝的节点数目的上限为10个。如果实验的结果表明,随节点数的增加,系统MTTF显著降低,那么就证明了降低拷贝时间对提高系统MTTF的作用。图3显示的是得到的实验结果。作为对比,把没有该限制的原实验结果也画在图上,用虚线表示。实验的结果正如所预料的,在两种实验情况下,系统MTTF都随节点数增加,而显著降低。特别地,当节点数为1000时,在备份数为2的情况下,系统MTTF远低于1小时;在备份数为3的情况下,系统MTTF只有2小时左右。这些性能数据,都比原先没有该限制的实验,要低得多。图3有并发限制与无并发限制的比较5 结论本文提出了一个新的动态备份策略,"并行数据备份策略"。研究表明,该策略可显著地提高系统的MTTF。特别地,当系统节点数目达到1000的时候,在3个备份的情况下,系统MTTF仍能保持在几十天的数量级。并且指出该策略的有效性主要来源于通过并发拷贝操作,大大降低了对象状态的转移时间。本文创新点本文提出了一个新的动态备份策略,"并行数据备份策略"。通过详细的理论分析和仿真实验,指出该策略可以在系统中当节点数达到成百上千时显著地提高系统的MTTF。该策略若使用在海量存储系统中,可以显著地提高数据的可靠性。

    时间:2010-04-16 关键词: 分析 海量存储 mttf 机群系统

  • 基于U盘的单片机低功耗海量存储系统

    引言近几年,随着Flash Memory非易失存储技术的发展,基于USB接口的闪存即U盘现已得到广泛应用。从理论上讲,以U盘作为便携式采集存储系统的存储载体完全能够满足长时间采集海量数据的要求。但目前所面临的问题是,U盘主要应用于PC机系统中。以单片机等微处理器为核心的嵌入式系统的应用中,尚缺少与U盘的直接接口技术。因此将单片机技术与U盘存储技术两者结合起来,利用单片机直接读写U盘,并通过总线方式与嵌入式系统的其它部分实现命令和数据的通信,从而实现便携仪器或者嵌入式系统的外挂式海量存储,具有广阔的应用前景。而以Cypress公司的SL811HS为代表的嵌入式USB主机接口芯片为这种方案的实现提供了可能。SL811HS介绍[1]采用单片机直接控制读写U盘,牵涉到关键在于USB-HOST技术的实现,即单片机作为USB主机系统。USB系统包括两部分:USB主机和USB外设,它们组合在一起就构成了完整的USB系统。USB的拓扑结构中居于核心地位的是Host(也称为主机),任何一次USB的数据传输都必须由主机来发起和控制,所有的USB外设都只能和主机建立连接,任何两个外设之间或是两个主机之间无法直接通信。SL811HS作为嵌入式的USB主机/设备控制器,功能模块框图如图1.1所示。SL811HS实现了USB主机结构中的第一个层次,即USB总线接口层的功能。SL811HS的主要特点如下:•可作为USB主机或者设备的接口控制器;•支持USB协议1.1,提供全速和低速2种USB总线速度方式;•片上集成了SIE、单端口根Hub、USB收发器和256字节的SRAM;•3.3V工作电压,接口兼容5V电压;•硬件自动产生帧起始包SOF和CRC5/16校验。图1.1  SL811HS功能框图SL811HS与单片机的硬件接线[2][3]单片机采用的是AT89C55WD,它通过SL811HS芯片对U盘进行读写,实现存储。这部分的电路原理图如图1.2所示。图中SL811HS与CPU的连接是关键。SL811HS是3.3V供电的系统,而AT89C55WD是5V供电的系统,但二者的端口能够彼此兼容对方的高低电平。因此SL811HS的数据引脚D0~D7直接与单片机的低八位地址/数据总线AD0~AD7连接,读写选通引脚nRD、nWR则直接与单片机的读写线/RD、/WR连接;对AT8955WD而言,SL811HS不过是其在片外扩展的I/O芯片之一,地址线A15与/CS_SL811(AT89C55WD的P3.3引脚)组合后充当SL811HS的片选,地址线A0与SL811HS的A0引脚相连,于是SL811HS的地址指针寄存器的地址为7FFEH(A0、/CS_SL811为低电平),SL811HS的数据寄存器的地址为7FFFH(A0为高电平,/CS_SL811为低电平)。之所以需要/CS_SL811配合,是因为AT89C55WD在外部还扩展了一片128KB的SRAM62256(省略未画),片选线也是A15。SL811HS的M/S引脚经下拉电阻后接地,使得其工作于主机控制器模式。此外,SL811HS的中断请求信号为高电平有效,故反向后连接到AT89C55WD的外部中断引脚/INT0。本系统没有采用SL811HS内部的锁相环,直接使用外部的48MHz有源晶振作为时钟源,更准确。存储模块是主机系统,其PCB板上安装有A型插座,用于为下层的设备提供连接点。因为连接的外设是功耗量极低的USB盘,下行端口的电源VCC直接连到了检测系统的电源上。基于U盘的海量存储板中单片机固件程序编写过去,基于个人计算机的USB开发,仅仅是对USB外设的开发,USB核心驱动程序和USB主控制器驱动程序均由Windows等操作系统提供。而实现USB主机的功能,这两部分驱动程序都必须设计。 嵌入式USB主机的软件设计思路[4]USB主机协议描述了USB系统软件(核心驱动程序和主控制器驱动程序)的设计规范。根据该设计规范,嵌入式USB主机的软件设计应包括以下三部分:USB主机系统软件部分,主要实现对USB外设的配置,读取USB外设的信息,从而判断该设备属于USB的哪一类,并确定下一步选用哪个特定的程序加以支持;USB Mass Storage设备类协议软件部分,实现USB Mass Storage类所规定的各种命令;USB用户软件部分,实现用FAT文件系统管理和存储数据。因此,基于U盘的海量存储模块中单片机的固件程序有着如图1.3所示的积木式的结构。单片机嵌入式USB主机固件程序1、SL811HS与AT89C55WD的通信程序设计SL811与单片机AT89C55WD的通信程序设计可以简单地认为是实现了PC的USB主机的主控制器驱动程序的部分功能。①读数据由于SL811HS的外接总线的地址和数据信号是复用的,通过A0信号来区分地址和数据。因此,AT89C55WD读取或写入SL811HS内存的时候首先发送地址,然后再发送数据。此外,由于SL811HS采用了地址自动增址的机制,因此,如果需要读取或写入连续地址内的数据时,只需要发送起始地址即可,以后每读取或写入一次数据,SL811HS会自动将寻址地址加1。根据SL811HS的读数据时序的要求,读取数据前首先发送地址,再读取数据,程序如下:unsigned char SL811Read(unsigned char a){   unsigned char nVal; unsigned char xdata *exAddress; exAddress = SL811_ADDR_PORT;    /*发送地址  */ SL811_CS=0; *exAddress=a; exAddress=SL811_DATA_PORT;     /*读取数据  */ nVal = *exAddress; SL811_CS=1; return nVal;}②写数据与读数据类似,AT89C55WD向SL811HS的内存单元写数据时,也必须首先发送地址,然后发送要写入的数据。根据SL811HS的写数据时序,函数实现程序如下:void SL811Write(unsigned char a, unsigned char d){   unsigned char xdata *exAddress; exAddress = SL811_ADDR_PORT;       /*发送地址  */ SL811_CS=0; *exAddress=a; exAddress=SL811_DATA_PORT;         /*写入数据  */ *exAddress = d; SL811_CS=1;}单片机AT89C55WD与SL811HS通信的实现,是整个USB体系软件的根基。在此基础上即可实现USB主机协议的系统软件、Mass Storage类协议软件、FAT文件系统软件。2、AT89C55WD的初始化单片机AT89C55WD的初始化程序安排在主程序main.c中,主要是完成定时器T0、外部中断INT0、I/O口、串行通讯口以及SL811HS 的初始化,包括工作方式设定、初值设置、相关的数据缓冲器清零等,程序较为简单,此处省略。3、人机接口程序人机接口程序对来自主CPU模块的串口命令进行相应的处理,并将处理结果返回。因为主CPU模块需将采集的数据值通过存储模块存入U盘,所以主CPU模块的串口命令包括查询U盘、创建文件、打开文件、写文件、读文件等,如同人们在PC机对U盘的操作。该段程序首先通过串口处理入口函数,判别主CPU发出何种命令,再跳转至功能操作子函数。U盘的功能操作子函数依据USB Mass Storage类的UFI命令,按照微软的FAT文件规范进行相应文件操作。由于篇幅关系其它部分的实现本文不作具体介绍。结语总之,运用单片机直接控制读写U盘,部分地实现PC上USB主机的USB核心驱动程序的功能,是嵌入式系统的软件和硬件的集合,是一个全新的概念。基于U盘的单片机低功耗海量存储系统将使测控系统体积减小,更有利于野外作业或其它便携性要求较高的场合,为仪器便携化发展开拓了新的思路。

    时间:2009-05-21 关键词: 低功耗 单片机 u盘 海量存储

  • 一种基于网络磁盘阵列的高性能海量存储系统

    一种基于网络磁盘阵列的高性能海量存储系统

    摘要:网络磁盘阵列将传统的以服务器为中心的存储转发改变为以数据为中心的直接传输, 从而消除了传统模式下的服务器I/O瓶颈。本文基于网络磁盘阵列构建出一种高性能的海量存储系统, 其文件集中管理和数据分布存储的体系结构不仅加快了数据传输速度、降低了存储管理开销, 同时也实现了命令与数据分流、扩容与增速同步的目标, 从而大大提高的整个存储系统的性能。 关键词:网络磁盘阵列;海量存储;文件集中管理;数据分布存储 引 言   现代信息技术的飞速发展, 导致了用户对存储产品和存储服务需求的爆炸性增长。目前计算机存储系统的性能远远不能满足许多实际应用的需求, 因而如何建立高性能的存储系统成为人们关注的焦点, 海量信息存储技术旨在研究大容量数据存储的策略和方法, 其追求的目标在于扩大存储容量、提高存取速度、保证数据的完整性和可靠性、加强对数据(文件) 的管理和组织等。   网络磁盘阵列系统(Net-RAID) 采用存储设备直接联网的体系结构, 改变了传统的以服务器为中心的迂回传输模式,使所有网络请求由服务器统一管理, 而数据则由磁盘阵列直接通过网络接收和发送, 从而避免了数据流在服务器与存储设备之间的往返传送和存储转发, 消除了服务器中CPU、内存以及I/O 总线所存在的潜在瓶颈, 极大的提高了系统带宽和服务器的平均响应速度。   以此网络磁盘阵列作为基本单元, 本文构建出一种高性能的海量存储系统, 其文件集中管理和数据分布存储的体系结构不仅加快了数据传输速度、降低了存储管理开销, 同时也实现了命令与数据分流、扩容与增速同步的目标, 从而大大提高了整个存储系统的性能。CMDS海量存储系统总体设计  体系结构 传统的集中式存储体系结构下, 网络用户访问文件服务器上的数据资源时, 数据必须在存储设备和文件服务器之间进行多次的存储转发。因此, 服务器的CPU、主存、存储设备、主从通道都有可能成为系统的瓶颈。而且, 无法实现共享存储, 系统的可扩展性也受到很大的限制。采用具有新型I/O通道体系结构的存储系统可以极大地提高性能, 但一味地依靠扩展系统的硬件性能终究会有上限。因此, 传统存储系统体系结构虽可提供大的存储容量, 但不适合于构造海量存储系统。构造一个高性能的海量存储系统不仅需要极大的存储容量和高I/O带宽, 还必须具有高可扩展性、高可用性、可管理性以及低的价格。   采用分布式存储系统结构是实现海量信息存储的最好选择。将数据分割(比如说块)分别存放在不同的存储设备上, 利用对不同存储设备的并行操作来提高系统的性能。但分布式系统的存储管理存在很大的难度, 统计数据表明, 在分布环境下, 存储管理大约要消耗存储成本总额的55%。集中式的存储则能减少管理开销和提高管理质量。可见, 如果采用集中式的存储管理, 特别是对于海量存储系统中大量的存储资源的管理, 将可以极大地降低存储管理的开销。   显然, 要想解决海量信息的有效存储和管理, 必须构造一种全新的存储系统体系结构, 从根本上解决现有存储系统体系结构所存在的问题。   针对这种情况, 本文提出了一种文件集中管理、数据分布存储的高性能海量存储系统(centralized file Managementand Dist ributed data StorageMass Storage System ) CMDSMSS, 其体系结构如图1所示, 它同时具备集中式存储系统和图1CDMS海量存储系统体系结构图分布式存储系统两者的优点。该系统由文件服务器和多台网络磁盘阵列(Net-RAID) 构成, 所有的N et-RAID按传统的DAS方式通过外设通道(SCSI或FC, 也可以采用网络通道)挂接在文件服务器上, 然后再通过网络连接挂接在包交换网络上。 通过建立磁盘阵列与网络用户间的直接联系, 使得磁盘阵列的命令与数据分流, 免除了数据流在文件服务器与磁盘阵列之间的存储转发, 克服了原有系统的文件服务器瓶颈。如果在文件服务器上接入多台(理论上可多达90台)Net-RAID, 则每接入一台Net-RAID 便扩展了一个网络通道, 多个网络通道可以并行传输以提高系统的I/O带宽, 实现了容量和速度同步扩展。种体系结构充分体现了多通道、并行处理的原则, 它不仅在很大程度上解除了I/O操作对文件服务器性能的束缚, 也极大地提高了存储系统的整体性能。 同时,它的集中数据管理方式能节约大量的管理费用。    文件组织 CMDS海量存储系统的文件组织可以分成两种形式: (1)Net-RAID作为独立的存储单元, 每台Net-RAID在文件服务器上具有单独的目录节点, 每个节点上可以建立不同的文件系统, 存储不同类型的文件(如视听、文本等), 并各自处理用户数据的存取和网络传输。当网络用户对不同的目录结点发出请求时, 多个请求可以在多个阵列上并行服务。   (2) 多个Net-RAID节点上的存储空间被虚拟成一个存储空间的单一逻辑视图, 数据分块存放在多个存储节点上。随着存储节点的增加, 不仅系统的存储容量得到了扩大, 而且有助于提高系统的性能。具体来讲, 多个小数据量的请求, 可以由多个存储节点并行地独立完成, 从而提高系统的吞吐量。一个大数据量的请求, 数据分布在多个存储节点上, 多个存储节点并行操作, 可以提高单个请求的数传率。灵活的使用方式可以满足不同的使用环境, 既可以满足事务处理等多个小数据量的突发请求, 也可以满足大数据量的连续请求(如媒体流)。我们主要研究第二种文件组织形式, 它具有以下特点(如图2所示)。       (1) 独立的文件组织管理器 文件组织管理器负责监视文件组织系统中的所有操作,并为网络用户提供数据描述。当一个网络用户试图存取数据时, 它通过数据表示向文件组织管理器发出请求, 文件组织管理器启动它的存取控制机制判断该网络用户是否有存储这一数据的权限, 然后再检查是否有其他用户锁定这一数据。如果网络用户不能存取数据, 文件组织管理器就会向网络用户发出拒绝或错误信息。如果网络用户拥有存取权限并没有被文件锁定拒绝, 文件组织管理器就通过数据结构判断数据的网络地址(即数据所在的存储节点在CMDS海量存储系统中的位置, 因为数据位置不仅仅是逻辑块地址, 还包括附加的网络地址或存储节点的名称) 和存储位置, 然后将其传送到网络用户。网络用户接收到位置信息后重新组织数据结构, 然后通过网络通道直接与存储子系统交互并存取数据。此时既可以采用基于NFS或CIFS的文件I/O进行交互, 也可以采用基于SCSI协议或FC协议的块I/O进行交互。独立的文件组织管理器体现的就是一种集中管理的思想, 以便于降低管理开销提高管理质量。   (2) 分布式的数据结构和数据存储 在网络存储系统的文件组织系统中, 寻址模式决定了网络地址及存储地址的存储位置。CMDS海量存储系统中的数据结构和数据分布存储在存储系统中的多个存储节点上, 所有使用该系统的网络用户都使用同一个文件组织系统映像。该系统通过使用数据结构来实现这种映像, 其数据结构将所有存储节点的网络地址作为数据寻址运算法则的一部分。由于采用分布式的数据结构和数据存储, 该系统可以使用RAID算法在存储系统中处理文件组织和数据冗余。 因此,它采用分块技术将目录数据、文件数据和数据结构跨越存放在多个存储节点上。由于文件数据分块冗余存放在多个存储节点上, 使得存储系统中的某一个存储节点发生错误时仍然可以继续操作。 同时, 通过增加存储节点的数量, 可以在系统结构上增加物理数据通道的并行度来提高系统的性能。  文件I/O与块I/O 图3 表示来自网络用户的文件I/O与块I/O在目标设备上的数据流向。 对于文件I/O的目标设备而言,Linux中的虚拟文件系统(VFS)分别管理向网络用户提供文件共享的网络文件系统和控制本地存储设备上的数据组织的本地磁盘文件系统。当用户空间的应用程序接收到来自网络用户的文件I/O请求时, 会将其交给VFS, 并由VFS 找到相应的磁盘文件系统, 然后由磁盘文件系统通过查找索引结点信息将文件I/O请求转换成块I/O, 最后通过卷管理器和块设备驱动程序来访问相应的数据。对于块I/O的目标设备, 可以不需要任何文件系统, 因为来自网络用户的块I/O请求本身就包含了请求数据在目标设备上的块地址信息(此即文件组织系统中的数据结构) , 因此, 当该设备通过TCP/IP协议栈接收到网络用户的I/O请求后, 可以直接将该I/O请求转交给卷管理器, 然后通过磁盘的设备驱动程序就可以访问相应的数据。       由上面的分析以及图3可知, 块I/O相对于文件I/O避免了用户空间和系统空间的切换, 避免了所有的I/O请求及其数据穿越网络文件系统、虚拟文件系统以及本地磁盘文件系统的开销, 同时还避免了磁盘文件系统将文件I/O转换成块I/O时查询索引结点的开销。因此, CMDS海量存储系统图4CMDS海量存储系统软件结构采用块级I/O, 直接通过数据的物理地址信息来访问存储设备(Net-RAID群) , 使数据检索与访问的速度优于采用文件I/O时的速度。    CMDS海量存储系统的软件结构与工作流程   CMDS海量存储系统软件结构如图4所示。它的主要功能是实现服务器、海量存储系统和客户端三者之间的通信和协同。CMDS软件可以分为三个层次:通道控制层、命令控制层和网络通讯层。  通道控制层 分为驻留服务器的和驻留在Net-RAID群底层的通道控制器。这一层负责服务器与Net-RAID群间的命令和控制信息的传递。   服务器中的通道控制器用于建立服务器与Net-RAID群的命令通道。在传统的存储服务模式下, 它将上层系统解析后的所有I/O命令发至存储设备, 并接受存储设备执行后的返回结果。而对于CMDS海量存储系统, 驻留在服务器中的通道控制器只执行其中涉及控制文件系统结构和文件属性的I/O任务; 并且, 服务器端的通道控制器直接利用服务器现有的SCSI通道驱动程序。Net-RAID群中的通道控制器, 负责接收来自服务器主从外设通道的所有I/O命令和消息, 将执行结果回送给服务器。  命令控制层 这一控制层是该海量存储系统的核心层。它分为服务器中的命令解析器和Net-RAID 群中的命令执行器两部分。主要用于解析网络用户的I/O请求, 获得文件所在磁盘阵列的位置信息和文件数据的存储地址组, 实现请求服务。驻留在服务器端的命令解析器由用户请求处理、地址解析、访问控制等模块组成, 它根据记载的用户信息, 对用户请求进行认证, 判定其合法性和请求权限, 依据请求的类型分别处理。对于用户的文件读写请求, 经地址解析后生成相应的存储地址信息。地址解析完成后, 将用户授权通过通道控制层通知Net-RAID群, 将授权字、Net-RAID 群地址和数据存储地址组通过网络通讯层通知客户端。   驻留在Net-RAID群中的命令执行器由I/O调度、命令分解/合并、Buffer管理等模块组成, 按照一定的优化策略, 动态的对来自外设通道和网络通道的I/O命令进行分解、合并和调度, 执行实际的磁盘I/O操作。操作完成后, 依据不同的情况分别经由网络通信层与客户交换文件数据, 或者经由通道控制层给服务器回送执行结果。  网络通讯层       此层用以处理多个节点的命令和数据的网络传输。服务器端的网络通讯层接受客户的服务请求, 传送给命令控制层并将命令控制层的分析结果反馈给客户端; 客户端的网络通讯层负责向服务器提交请求并接收服务器返回的结果, 它还负责建立与Net-RAID 群的网络连接;Net-RAID 群的网络通讯层与客户端一起, 完成Net-RAID 群与客户端之间直接传送数据的任务。   由于命令与数据分流, CMDS海量存储系统采用定制的三方协议, 其文件请求服务的工作流程有别于传统的工作模式。图5所示为读文件请求的工作流程, 写文件请求的工作流程与此类似, 此处略。  性能测试与评价   为了获得CMDS海量存储系统的性能参数, 我们构造了一个系统原型, 由文件服务器和两台EIDE磁盘阵列组成, 系统配置如表1所示。每台磁盘阵列配2块磁盘, 分别挂接在两个IDE接口上。网络环境为100M b交换以太网。           网络用户采用三台PC机, 配置均为:CPU:Celeron 2GHZ,MEM:128MB, 硬盘:ST 340015A。网络用户均采用Windows 2000平台, 传统系统下采用FlashFTP用户程序,CMDS 海量存储系统采用定制的用户端软件。对原型系统的测试结果如下。       表2表示三个用户, 每个用户一个进程, 测试文件大小为124MB时系统的平均数传率比较。图6为多用户系统的集合I/O带宽比较。可见, CMDS海量存储系统的平均数传率和集合I/O带宽均高于传统的存储系统, 而且, 用户数越多, 性能提高越明显。最好情况下, 系统的读写集合I/O带宽分别提高82%和107%。由于CMDS海量存储系统的两个存储结点提供了两个100M b/s的网络传输通道, 系统的集合带宽最高达23.658MB/s, 尽管传统系统12.45MB/s的集合带宽也几乎达到了系统的峰值, 由于受服务器端单网络通道的限制, 不可能超越12.5MB/s, 这充分体现了CMDS海量存储系统扩容与增速同步的思想。   CMDS海量存储系统中, 文件服务器上CPU和内存的开销也明显要低于传统系统, 主要是由于CMDS海量存储系统实行了命令与数据分流, 避免了大量的数据在存储结点和文件服务器之间的往返拷贝, 将高性能的存储设备和网络带宽充分提供给网络用户, 而不被传统文件服务器瓶颈所限制。       从表2可以发现, 两个系统的内存的利用率几乎都在80%以上, 这主要是由于Linux系统的内存管理采用贪婪调度算法, 它尽量将内存分配给系统使用, 不够时再进行调度和再分配。因此, 即使传统系统中内存的利用率一直在97%左右, 在当前的负载情况下, 内存也不会成为系统的瓶颈。传统系统中网络的集合带宽几乎达到峰值, 很明显, 网络通道成为整个系统的瓶颈, 如果提高网络通道的带宽, 文件服务器上的内存就很有可能成为系统的瓶颈。CMDS海量存储系统中由于采用了两个网络通道, 在当前的负载情况下, 应该还有提升的空间, 而且其内存的利用率也还没有达到饱和。   随着体系结构和系统硬件的改变, 系统的瓶颈总是在不断转移。我们曾做过这样的试验, 服务器采用PIII500MHZ的CPU, 64MB内存, SYM53C815的SCSI主从通道, 测试发现传统方式下系统的集合带宽始终无法超过8MB/s。这主要是由于SYM53C815的峰值带宽为15MB/s, 即使SCSI通道的利用率为60%, 系统也不可能超过9MB/s的带宽, 显然, SCSI通道成为系统的瓶颈。   当使用峰值带宽为40MB/s的SYM53C875的SCSI通道后, 系统的集合带宽达到11MB/s。在SCSI通道的利用率为60%的情况下, 可提供24MB/s的带宽, 此时文件服务器端峰值带宽为12.5MB/s的网络通道又成为系统的瓶颈。如果提高网络带宽, 在大量数据请求的情况下, 文件服务器上的内存CPU可能再次成为系统的瓶颈。对于CMDS海量存储系统而言, 由于将文件服务器转移出了数据传输路径, 在同等负载的情况下, 系统的瓶颈将仅限于网络通道, 这也是CMDS海量存储系统体系结构的优势所在。           表3表示三个用户, 每个用户两个进程, 测试文件大小为124MB时系统的平均数传率比较。图7表示同等测试环境下系统的集合I/O带宽。在两个进程和四个进程的情况下,CMDS海量存储系统的集合带宽比传统系统要略差, 主要是由于网络用户和多个存储节点之间直接进行数据交换, 必须要在网络用户端进行数据的整合和分配, 因此存在一定的开销。在网络用户端单进程的情况下, 该影响还不明显, 但多个进程之后, 会导致系统性能的下降。当三个用户六个进程时,传统系统由于受文件服务器上网络通道带宽的限制, 其性能又明显低于CMDS海量存储系统。如果对网络用户端的软件进行优化(比如减少内存拷贝的开销), 则可以降低其影响。  总 结   CMDS海量存储系统使文件服务器与存储设备的关系由原来的主从关系转变为相互依存的对等关系, 并且存储设备具有了新的自主功能。其文件集中管理、数据分布存储的体系结构同时具有集中式存储和分布式存储两者的优点, 不仅易于管理, 而且高性能、高可扩展。它还具有存储空间的单一逻辑视图、流水命令响应与并行数据I/O、负载动态迁移和高可用性等特点。   另一方面, CMDS海量存储系统也是一个全新的、不断完善的系统;今后研究的重点包括以下几个方面的内容:首先,设法屏蔽上层各种不同的应用, 实现该系统与现有存储系统的无缝连接;其次, 实现存储空间的在线动态扩容、数据的动态迁移等是今后需要研究的课题;另外, 如何保证在传输过程中的数据安全以及数据的一致性也是一个待解决的问题。

    时间:2007-02-07 关键词: 网络 性能 磁盘阵列 海量存储

发布文章

技术子站

更多

项目外包