存储测试技术(精选8篇)
存储测试技术 篇1
引言
随着测试技术的发展, 人们对测试设备的存储速度、存储容量以及通用性有了更高的要求[1,2]。例如在某图像处理系统中, 其红外探测器输出的红外图像的分辨率达到1 280*1 024 (16 bit) , 图像发送的帧频为25帧/s, 其通信接口采用的是Camera Link接口, 传输时钟频率为50 M, 那么, 为获取完成的红外图像数据, 存储设备的突发存储速度需满足达到100 M/s及以上。市场上实现高速海数据存储的设备主要是有传统的大容量机械硬盘, 以及采用大容量闪存芯片构成的存储单元, 最常见的就是固态硬盘。 机械硬盘具有容量大, 成本低等特点, 其容量可达到2TByte, 但因其内部存在机械结构, 不能满足恶劣环境下的测试, 并且其接口的存储速度也有限。而大容量NAND闪存芯片因在读写控制、工号、尺寸以及存储容量等方面具有明显的优势, 被广泛应用在测试领域中的数据存储[3,4,5]。NAND Flash是基于块擦除、页编程和页读取的方式进行工作, 即在每个操作时均有一段时间的“Busy”期, 无法对器件进行任何操作。影响其数据的写入和读出速度[6]。如镁光的MT29F128G08A的单个芯片在其最快的模式5下交替双平面操作极限速度也只可以达到33 MB/s[7]。所以单个Flash芯片的存储速度显然不能满足高速存储的需求。目前实现大容量高速存储的途径除了使用新型大容量、高速的半导体存储芯片外, 就是通过对多个NAND Flash芯片进行并行位扩展和流水线式操作来提高数据的持续吞吐速率以及扩展到合适的存储容量, 其重点则是高速输入数据的调度实现及硬件结构的设计。本文介绍了一种基于FPGA控制的高速存储系统, 以高性能的FPGA器件为核心, 采用通道间高速并行与通道内串行的硬件架构, 并在FPGA内部实现高速数据的调度, 从而实现高速数据存储。
1高速并行化存储结构
为了实现大量数据持续高速存储, 借鉴模块化设计以及流水操作的思路设计一种结构为m×n的NAND Flash存储阵列。充分发挥每一个NAND Flash芯片的存储性能以实现大量数据的持续高速存储。设计采用FPGA作为主控单元, 以FPGA内部丰富的RAM资源进行数据缓冲, 并利用FPGA并行化可重构的优势完成对持续高速数据的调度与分配。
1.1 n片Flash芯片的列扩展
首先利用多片NAND Flash组成的流水线工作模式, 解决了由于NAND Flash芯片本身特性造成的无法持续接收数据的弊端。假设芯片的页编程时间最大为t PROG与接收一页数据的时间最小为tin, 则芯片数n取为t PROG与tin的比值向上取整的结果加1。即:n=floor (t PROG/tin) +1。这样n片NAND Flash组成的流水线可以保证在任何时候都有一个芯片处于空闲状态。流水线随时都可以以芯片最大操作速度 (如100 MB/s) 接收数据。在此基础上继续增加芯片数量将只能提高存储容量, 而无法继续提高存储速率。
1.2 m个流水线通道的行扩展
为了充分发挥每个NAND Flash芯片的工作性能, 利用并行作业流水线操作可以有效提升存储速率的思路, 决定对n片Flash芯片流水线通道进行m行扩展。其中m的数量由实际需求和FPGA内部可用的硬件资源决定。工作的时候由Flash存储阵列的缓存分配以及数据调度机制控制m个通道并行化工作, 以实现存储阵列持续m·100 MB/s速度的可靠存储。因此, 在硬件条件允许的前提下, 可以通过对流水线通道数量的增加与删减实现对整个存储系统写入速度的控制。
图1所示即为m×n的NAND Flash存储阵列。以镁光的MT29F128G08A芯片的基本存储单元, 则阵列的存储容量为 (m ×n) 16 GB可以实现最大持续m ·100 MB/s的数据存储速率。如果受硬件所限, 可以用高速总线对阵列再进行扩展, 以实现更大容量和更高速度的持续存储。本设计具有良好的扩展性和通用性, 可以在不同速度以及容量需求的场合灵活应用。
2高速缓存及并行化调度方法
高速并行化缓存及调度机制的性能直接决定着m ×n的NAND Flash存储阵列的工作效率。FPGA内部含有很多块RAM资源。充分利用FPGA的片内快RAM构成两级缓存FIFO结构, 并利用FPGA可重构性的优势完成相应的调度逻辑。这样的设计可以有效降低硬件设计的复杂性, 减小系统整体的功耗。高速并行化缓存以及调度机制的本质就是要完成数据跨时钟域的变换以高速输入数据的合理分流。
2.1通道间并行化调度
如图2所示, 整个存储阵列在通道间进行缓冲, 主要是实现高速数据向m个并行化工作通道进行合理分流。设计中采用了两级缓存设置, 一级缓存的容量不小于二级缓存的容量。写缓存调度逻辑负责通过一定的调度算法, 以流水线工作形式将数据分流到m个通道的二级缓存中。为防止一级缓存中数据溢出, 缓存中数据分流的速度要比数据输入速度略大。
2.2通道内芯片流水线操作
在单个通道内进行缓冲, 主要是实现流水线形式对各个芯片进行操作, 有效避免页编程时间的存在影响数据的持续高速写入。下面以n片Flash阵列构成的数据存储通道为例, 说明在一个存储通道中的多级缓冲机制。流水线式操作的基本方法是第一个芯片接收完成一页的数据, 进入页编程进入 “Busy”状态后, 将数据送向第二个芯片;当第二组芯片接受完成第二页的数据, 进入页编程进入 “Busy”状态后, 将数据送向第三个芯片;这样依次完成第N个芯片的数据接收后第一个芯片已经全部完成页编程变为“Ready”状态, 可以接收下一次页数据。即通过流水线式循环操作以期实现了存储体系随时可以完成数据的高速持续写入。如图3所示, 展示了4片NAND Flash芯片完成流水操作的示意图。
2.3 FPGA资源消耗
根据上述分析, 在4×4模式的构架下, 给出了在Xilinx ISE13.2环境下调度控制模块综合后的FPGA内部资源的消耗情况 (Spartan 6 XC6SLX 150) 。从下页图4中可以看出, 调度模块主要是使用的是FPGA内部的块RAM资源、LUT、触发器等, 其中块RAM主要是构成了高速缓存FIFO, LUT触发对实现信号的同步和锁存。
3性能测试
根据上述的系统的硬件架构和FPGA内的数据调度方法, 假设每个存储通道上含有4片大容量的NAND Flash, 构建m ×4存储阵列, 其持续写入的最大速度分布如图5所示, 从图中可以看出, 通过增加相应的存储通道, 能够极大的提高系统的整体写入速度。
4结语
随着NAND Flash集成半导体芯片的技术的日益成熟, 存储密度越来越大, 而相应的体积、功耗和成本却越来越小, 因而NAND Flash固态存储会得到越来越广泛的应用。本文以并行的流水机制为核心, 利用NAND Flash构成多通道存储阵列, 并在硬件构建和FPGA内部的高速数据调度机制的性能进行了分析和测试, 其结果表明该方法具有存储速度高, 扩展性强的特点, 可广泛应用于高速海量数据存储需求中。
摘要:为实现并行测试系统高速数据的存储需求, 利用FPGA (Field-Programmable Gate Array) 以并行控制的特性, 内部构建两级多通道并行缓存架构, 设计了一种大幅提高数据存储速度的高效的实现方法。在硬件方面, 利用多片NAND Flash构成多通道存储阵列, 通过在通道间并行操作, 通道内芯片的流水线操作, 结合FPGA内部的高速数据缓存机制来解决数据存储的速度瓶颈。测试结果表明该模块具有存储速度高, 扩展性强等特点, 能广泛应用于高速海量数据存储需求。
关键词:并行测试,高速数据存储,FPGA,NAND Flash
参考文献
[1]Ren Yong-feng, Zhang Wen-dong, Xu Wen-qiang.Video signal recording equipment and key technologies for radar application[J].Wseas transaction on circuits and system, 2006:684-690.
[2]李博.固态硬盘写效率及能耗优化研究[D].武汉:华中科技大学, 2010.
[3]Kang J U, Jo H, Kim J S, et, al.A superblock-based flash translation layer for NAND flash memory[C]//Proc of the 6th ACM Conference Embedded Systems Software, Seoul, Korea, 2006:161-170.
[4]Park S H, Ha S H, Bang K.Design and analysis of flash translation layers for multi-channel NAND flash-based storage devices[J].IEEE Transactions on Consumer Electronics, 2009, 55 (3) :1 392-1 400.
[5]Hyunchul Park, Dongkun shin.Buffer flush and address mapping scheme for flash memory solid-state disk[J].Journal of Systems Architecture, 2010, 56:208-220.
[6]吴洪成, 潘琪.高可靠固态存储模块的实现与应用[J].计算机时代, 2015, 53 (1) :68-71.
[7]李进, 邢飞, 尤政.基于QC-LDPC码的空间CCD图像NAND闪存存储纠错[J].光电子.激光, 2014, 25 (8) :1 598-1 605.
存储测试技术 篇2
-08-08MySQL 有输入输出参数的存储过程实例
-04-04MySQL查询优化:连接查询排序limit(join、order by、limit语句)介
2013-05-05基于mysql事务、视图、存储过程、触发器的应用分析
-03-03mysql 跨表查询、更新、删除示例
2010-11-11mysql的日期和时间函数
-11-11MySQL优化全攻略-相关数据库命令
-07-07you *might* want to use the less safe log_bin_trust_function
2013-11-11mysql获取字符串长度函数(CHAR_LENGTH)
存储过程自动化测试的实现 篇3
关键词:存储过程,自动化测试,测试用例,Junit框架,XML
软件测试是保证软件质量的重要手段,软件测试在整个项目开发中所占的比重也越来越大。随着软件规模的扩大和软件复杂性的提高,软件测试技术不断发展,自动化测试技术得到广泛应用,并逐渐成为软件测试发展的方向。单元测试是软件开发过程中要进行的最基本的测试活动,是确保其他测试能够顺利进行的基础。随着增量开发模式和重构技术的发展,软件自动化测试工具JUnit也随之产生。目前Junit已经成为Java程序单元测试框架的标准,已有多种对其进行扩展的自动化测试工具[1]。
存储过程被广泛应用在各种与数据库相关的应用系统中。在开发阶段,对存储过程进行测试是必不可少的工作。通常的测试过程是由测试人员通过命令窗口执行命令,再将命令窗口中的结果信息拷贝下来,保存到一个文件里,在以后再进行分析或者比较。测试工作也可以使用类似Rapid SQL等图形化的工具来辅助做一些工作,但能完成的测试工作量较少。这种大部分依靠手工进行的存储过程的单元测试存在很多缺点,如测试效率低,无法重用,无法进行自动化的回归测试,没有直观的测试结果,需要程序员手工整理测试结果并生成测试报告。针对这些问题,本文在Eclipse中利用Junit测试框架来实现存储过程测试的自动化。
1 Juit的框架结构
Junit是Erich Gamma和Kent Beck编写的一个回归测试框架,它是一个Java程序自动测试的框架[2],用在软件测试的单元测试阶段,即Java对象类的功能测试。JUnit共有七个包,核心的包就是junit.framework和junit.runner。Framework包中包含了Junit测试类所需的所有基类,它是整个Junit的基础框架[3],负责整个测试对象的构架,Runner则负责测试驱动。JUnit框架中主要有以下几个对象类[4,5]:
1)Assert类,它提供在编写测试时要用到的所有assert方法。
当条件成立时assert方法保持沉默,但若条件不成立就抛出异常。Assert类是TestCase的父类。
2)TestCase类
客户测试类所要继承的类,负责测试时对客户类进行初始化,以及测试方法调用。类中的主要方法有:setUp()用于如变量赋值等测试的结果处理,tearDown()用于如文件关闭等测试的结束处理,run()测试实例的执行,并把测试结果放入测试结果对象TestResult中。
3)TestResult类
负责收集TestCase所执行的结果。一般来说,用户不需要对TestResult进行操作,测试结果由系统提供的测试工具自动输出。
4)TestSuite类
TestSuite对象是测试实例的集合,负责包装和运行所有的TestCase。
2 存储过程测试代码的自动生成
Junit测试的实现流程就是继承TestCase类,然后重载它的一些重要方法,如setUp()、tearDown(),最后将这些对象组装到一个Testsuite对象中,交由TestRunner来运行。为了利用JUnit带来的高效率,首先需要改变被测存储过程的调用方式,即从手工调用改为使用JDBC来调用,把一个个存储过程的调用写成Java代码,以后需要进行回归测试时,只需要运行这些Java测试代码就可以了。但是直接使用JUnit,也会是一个烦琐的过程,因为必须在每段测试代码中编写连接数据库的代码和调用存储过程时的一大堆参数设置的代码。对于存储过程测试来说,这些代码就显得非常累赘了,于是设想把这些操作封装为一个公用的类,只需要在测试代码中提供数据库连接信息、存储过程名字和参数值就可以了,其他的工作由这个公用的类来处理。因此在实现存储过程测试代码的自动生成过程中,首先必须要解决如何获得存储过程名和存储过程参数以及在生成的测试代码中如何运行存储过程,下面分别进行讨论。
2.1 存储过程名和参数的获取
在存储过程测试代码生成过程中,第一个问题是要针对哪些存储过程生成测试代码。获取存储过程名可以有两种方式,其一是由用户手动指定,其二是将储过程名称保存在文件中,由系统自动从文件中分析出存储过程名称。这样的文件可以是一个定义了Java常量的.java文件,也可以是一个.properties文件。文件中可用"="来定义存储过程,系统将自动把"="右边的部分识别为存储过程的名称。
要为存储过程自动生成测试代码,有一个前提条件是被测试的存储过程已经在数据库中创建。作为数据库的对象,存储过程的名称、参数等信息也都有相应的数据字典表存放。只要知道存储过程的名字,可以查询数据字典来获取存储过程的参数信息,如参数名称、数据类型、长度、出入参类型等。因此,在测试代码生成过程中可以根据存储过程的名称查询数据库的系统表来获取参数信息,例如DB2的SYSCAT.ROUTINEPARMS表,Oracle的USER_ARGUMENTS表或者SQLServer的SYSCOLUMNS表等。
2.2 测试代码中存储过程的运行
在已经生成的测试代码中,如果将大批的数据库操作写在测试代码中显然是不合适的,这样会造成代码的混乱和维护困难。因此考虑封装一个类,用它专门来运行存储过程,它提供了以下主要方法:
1)SPProcesss(DBInfoObject dbConfig),构造函数,根据传入的数据库配置信息,建立数据库连接,初始化运行环境;2)getSP-ParmList(String routineSchema,String routineName)根据存储过程模式和存储过程名获取参数列表;3)runStoredProcedure(StoredProcedureInfo spInfo)运行存储过程,存储过程信息包含在名为StoredProcedureInfo的类中。4)String(getDurationTime)获取存储过程运行时间;5)object getReturnedObject(int parmIndex)获取存储过程输出参数的值。
其中的StoredProcedureInfo是记录存储过程信息的类,包括存储过程名、存储过程参数列表等。因此,只需要首先创建存储过程信息,然后调用runStoredProcedure方法即可运行存储过程。而这部分代码也是自动生成的,程序员真正需要做的就是修改调用参数的值。
3 改进的Junit框架
采用Junit作为单元测试工具有许多优点,但也存在着不足。在实际的单元测试中,发现JUnit产生的测试代码量是庞大的。为了提高测试代码的复用,文献[6]提出了一种改进的自动化单元测试框架。该框架设计的核心是实现测试用例与测试代码的分离,运用XML文件作为测试数据存储的容器,把每个测试用例中的数据装入到对应的JavaBean中,最后构建一个JavaBean对象为元素的ArraList来存储所有的测试用例。测试执行时,测试代码只需要从ArrayList里面取得测试用例的数据,测试代码仅仅完成验证任务。这样,如果测试用例增加了,只需修改相应的XML文件,而不必再修改测试代码,就可完成相应的测试。
借鉴文献[6]的方法,本文将测试用例和测试结果都存储为XML文档,使用方法writeToFile(String fileName,String time,ArrayLis testResultList)将测试结果保存在XML文件中,测试结果可以包括存储过程运行的时间、返回的记录数、调用的参数列表或者出错信息等。选择把测试结果保存为XML的一个重要原因是通过简单的XML编程即可实现对历次的测试结果的比较分析。其实现方法就是将测试结果的XML文件命名为TestCaseName_年_月_日_时_分_秒.xml,每次运行测试例后,都生成一个具有时间戳的测试结果文件,例如:
testSP_2009_10_18_17_27_00.xml
testSP_2009_10_18_17_30_00.xml
testSP_2009_10_18_17_32_00.xml
通过比较这三个文件中同一个存储过程的运行耗时、返回记录数等指标就能知道这次的测试结果比上次是否有所改进,或者系统在不同时间点的性能变化情况。
有了JUnit测试代码之后,在Eclipse中,左键双击将要运行的Java文件,选择Run As->JUnit Test就可以在工作环境中运行测试文件了。运行完毕后,会生成一个XML文件,再配合以XSL样式文件,就可以在浏览器中看到美观的测试报告了。
4 结束语
Junit和Eclipse两种软件的源代码都能从网上免费获得,利用Junit基于XML存储测试数据和测试结果的新测试框架真正提高了测试效率,简化了测试步骤,从根本上提高了测试代码的重用性。利用JUnit实现了以往存储过程测试中很难进行的回归测试,利用XML技术实现了测试数据和测试代码分离,提高了测试效率,为开发人员提供了直观的测试结果。
现有的测试框架可以扩展到Cactus(Apache Software开发的用来对服务器上的Java代码进行测试的框架)框架上,实现从浏览器进行存储过程测试用例的调用执行,可以克服因为开发和生产环境之间可能存在的网络、安全等因素而影响测试准确性的问题。
参考文献
[1]余波,王树林,张大方.基于Junit自动生成类测试案例框架的实现[J].计算机工程与应用,2006,42(1):89-91.
[2]王东刚.软件测试与JUnit实践[M].北京:人民邮电出版社,2004.
[3]孔亮亮,殷兆麟.Java类测试工具Junit的分析与扩展[J].计算机工程与设计,2005,26(12):3413-3415.
[4]何成万,余秋惠.用JUnit实现Java程序自动测试[J].计算机应用,2002,22(3):93-94.
[5]王聪.基于JUnit框架的软件测试[J].湖北汽车工业学院学报,2007,21(1):43-46.
存储测试技术 篇4
近年来随着人们对电网安全的日益关注,便携式继电保护测试仪得到了很大程度的应用。其主要优点在于携带方便、测试简单;缺点在于数据处理相对简单、无法存储更多的数据。针对上述问题,提出利用USB芯片作为桥梁,将微处理器系统的数据通过U盘读入、写出,以实现大容量数据存储以及数据处理的要求。
1 系统设计
本系统采用微处理器MSP430F248和USB接口芯片CH375实现,如图1所示。主控芯片MSP430F248同其它微控制器相比,采用低功耗设计,供电电源低;仅3种指令格式,全部为正交结构,尽可能做到1字/指令;ESD保护,抗干扰力强;硬件乘法器;多达48K ROM和4K RAM。
MSP430F248为FLASH型芯片,采用FLASH存储器作为程序代码及信息的存储,可以实现多次擦除和写入,也可以实现在线写入。其写入可以由JTAG接口来完成,也可以由芯片内的驻留软件实现,只需运行的程序代码存储区与待编程的存储区不在同一模块中。FLASH存储器的基本功能有:在程序执行时提供代码和数据;在软件或JTAG接口控制下作一段、多段或整个模块的擦除;在软件或JTAG接口控制下写入数据,在X000h~XlFFh的512字节区域内可实现双倍编程速度。FLASH存储器模块是一个可独立操作的物理存储器单元。全部模块安排在同一个线性地址空间中,一个模块又可以分为多个段。
当对FLASH存储器段中的某一位编程时,必须对整个段擦除,因此,FLASH存储器必须分为较小的段,以方便地实现擦除和编程。该FLASH存储器模块包含如下部分:
(1)控制逻辑:控制FLASH擦除和编程时的机器状态和时序发生器;
(2)FLASH保护逻辑:避免意外的FLASH擦除和编程操作;
(3)编程电压发生器:提供FLASH擦除和编程所需全部电压的集成电荷泵;
(4)3个16位控制寄存器FCTL1、FCTL2、FCTL3控制FLASH模块的全部操作;
(5)存储器本身。
2 USB接口电路
CH375是一个USB总线的通用接口芯片,支持USB-HOST主机方式和USB-DEVICE/SLAVE设备方式。
在本地端,CH375具有8位数据总线和读、写、片选控制线以及中断输出,可以方便地连接到微处理器的系统总线上。在USB主机方式下,CH375还提供了串行通信方式,通过串行输入、串行输出和中断输出与微处理器相连接。其特点主要有:全速USB-HOST主机接口,兼容USB V2.0,外围元器件只需要晶体和电容。主机端点输入和输出缓冲区各64字节,支持常用的12Mbps全速USB设备。支持USB设备的控制传输、批量传输、中断传输。自动检测USB设备的连接和断开,提供设备连接和断开的事件通知。内置控制传输的协议处理器,简化常用的控制传输。内置固件处理海量存储设备的专用通信协议,支持Bulk-Only传输协议和SCSI、UFI、RBC或等效命令集的USB存储设备(包括USB硬盘/USB闪存盘/U盘)。通过U盘文件级子程序库实现单片机读写USB存储设备中的文件。
本系统中CH375采用串行连接方式,芯片用于USB主机方式。
串口信号线包括:串行数据输入引脚RXD、串行数据输出引脚TXD、中断输出引脚INT。通过串行接口,CH375可以用最少的连线与微处理器MSP430F248进行较远距离的点对点连接。
CH375芯片的RXD和TXD可以分别连接到MSP430F248的串行数据输出引脚和串行数据输入引脚。INT输出的中断请求是低电平有效,用于通知微处理器。具体电路如图2所示。
CH375的串行数据格式是1个起始位、9个数据位、1个停止位,其中前8个数据位是一个字节数据,最后1个数据位是命令标志位。第9位为0时,前8位的数据被写入CH375芯片中,第9位为1时,前8位被作为命令码写入CH375芯片中。CH375的串行通信波特率默认是9600bps,MSP430F248可以随时通过SET_BAUDRATE命令选择合适的通信波特率。
3 软件设计
由于本系统中微处理器MSP430F248的程序空间和数据存储空间相对较大,在软件设计上采用CH375的U盘文件级子程序库来实现。
CH375的U盘文件级子程序库具有的特性:支持常用的FAT12、FAT16和FAT32文件系统,磁盘容量可达100GB以上,支持多级子目录,支持8.3格式的大写字母和中文文件名,可以支持小写字母或者长文件名,支持文件打开、新建、删除、读写以及搜索等。
CH375的文件级子程序库需要大约600字节的随机存储器RAM作为缓冲区。以普通的微处理器为例,文件系统的全部子程序有4KB到8KB代码,并且需要大约80字节的内部RAM和512字节的外部RAM作为缓冲区。
软件设计采用查询方式,进入数据传输界面后,查询U盘状态,如果U盘已准备好,就进入后续数据处理的流程。图3为继电保护测试仪将采集数据存入U盘的程序流程图。
部分程序代码:
4 试验测试及分析
不同环境数据传输如表1所示。在实验室多次测试时数据传输均无差错,而在现场测试时,每连续测试100次,都有可能出现1次数据传输错误,但出现错误的位置点没有规律。综合上述情况分析,可能是现场的电磁干扰造成数据传输错误,后续改进需要在硬件上加上屏蔽电磁干扰的措施。
图4为误码率与信噪比关系图,从图中可以看出,误码率与信噪比成反比关系,即误码率随着信噪比的增大逐渐减小,当信噪比为35 dB时,系统的数据传输误码率达到0。所以在设计该系统时要求在信噪比大于35 dB的信道中传输,可以保证系统中数据传输的可靠性及稳定性。
相比其他便携式继电保护测试仪而言,本系统利用USB接口芯片CH375为测试仪处理复杂数据提供了可能性,也为存储扩展提供了良好的应用前景。
摘要:为解决便携式继电保护测试仪在数据处理及存储方面的相关问题,提出基于USB芯片CH375的解决方案。通过分析CH375的命令集和工作时序,编写了MSP430处理器与U盘的数据通信应用程序。使用结果表明,由此构建的USB接口能够与各种U盘进行数据高速传输和存储。
关键词:便携式继电保护测试仪,CH375,U盘,MSP430F248,误码率
参考文献
[1]南京沁恒电子有限公司.USB总线接口芯片中文手册
[2]张弘.USB接口设计[M].西安:西安电子科技大学出版社,2002
[3]高怡祯.基于闪存的星载大容量存储器的研究和实现[J].电子技术应用,2003,29(8)
[4]胡大可.MSP430系列FLASH型超低功耗16位单片机[M].北京:北京航空航天大学出版社,2001
存储测试技术 篇5
动态测试技术是以捕捉和处理各种动态信息为目的的一门综合技术,它在当代科学技术中地位十分重要,在航天航空、仪器仪表、交通运输、军事、医疗等研究中均应用广泛。常用的测试方法有遥测与存储测试,与无线电遥测仪相比,存储测试仪结构更为简单、无需发送天线、体积小、功耗低。存储测试技术是对被测对象没有影响或影响在允许范围的条件下,在被测体内放置微型数据采集存储测试仪,现场实时完成信号的快速采集和存储,事后回收,由计算机处理和再现测试信息同时保证测试仪器完好的一种动态测试技术[1]。由于存储测试对测试结果影响较小,测试数据准确可靠,已经渐渐成为测试动态参数的重要手段。
1 系统整体设计
测试信号通过传感器输入测试电路中进行处理并存储,随后通过接口电路输入到计算机中。测试参数限于一定范围,测试通道数为4通道,最大采样频率为1 MHz,最大存储容量为512 kW。本设计选用Altera公司推出的Cyclone II系列的EP2C5T144I8芯片。该芯片具有4608个逻辑单元,26块M4K RAM块,13个嵌入式乘法器,2个锁相环,用户I/O引脚数目有89,可以满足设计要求,并且有一定余量,方便以后功能的扩展。AD转换器选用AD公司推出的AD7492,而存储器选用NanoAmp公司推出的N08L163WC2A,容量为512 k×16 bit。系统的整体框图如图1。
FPGA控制模块实现对整个系统的逻辑控制,主要包括:AD控制、存储器的读写、时钟产生、负延迟计数及触发模块等。其中时钟模块为系统各芯片提供工作时钟,并产生适合不同环境的采样时钟信号。负延迟模块是为确保记录信号的完整性,不致于把触发信号以前的数据丢失。本设计负延迟为8 kW,负延迟计数器记满(512-8) kW后停止计数,采样结束。触发模块主要是对系统由一个环境进入另一个环境的方式进行控制。触发方式包括外触发、计数触发、比较触发。计数触发是对采样点数进行计数,采样点数等于预设的计数点数时,就会产生触发信号。比较触发是采样值与预设值作比较,当采样值大于或小于预设值时就会产生触发信号[2]。
2 采样策略的研究
2.1 变频采样的状态设计
在一些测试中,例如弹丸在全弹道运动过程中的加速度变化、石油开采过程中射孔时的压力变化,被测信号的频率变化很大,因此仅由信号的最高上限截止频率确定采样频率是不合理的,信号的采样频率应该是可变的。因此,需要对被测信号进行采样规律设计,即设计一定的采样策略,综合考虑模糊误差、测量时间、存储容量等因素,从而达到最优的测试效果[3]。张文栋教授结合存储测试理论与应用对动态测试的信号存储过程提出了四种采样策略,包括均匀采样策略、自动分段均匀采样策略、编程分段自适应均匀采样策略以及自适应采样策略,这四种采样策略均适合瞬态速变信号的存储记录[4]。
根据被测信号频率变化很大的特点,设计如图2所示的状态图,实现对此类信号的变频采样。测试系统分环境对信号采样记录,每个环境的采样频率可以在采样前进行设置,本系统设计为三个环境,即采样频率最多变化三次。
在存储测试开始之前,通过软件编程将采集存储过程分为几个阶段,根据被测信号的变化,每一个阶段的采样频率、存储点数、采样开始时间会作自适应的调整。首先接通电源使电路处于复位态,此时数字电源VDD为通电、模拟电源VEE为断电状态,系统中只有FPGA控制模块工作;然后对电路编程设定各个环境的采样频率,给电路上电,电路进入等待触发态,此时VDD、VEE通电,存储器、AD转换器启动,开始采样,地址计数器开始工作;触发信号TRI1到来后,进入f1采样态,系统按编程设定的采样频率f1开始采样,负延迟计数器开始工作;2环境触发后,系统按照设定的采样频率f2进行采样,此时处于f2采样态;3环境触发后,系统按采样频率f3采样,处于f3采样态;当负延迟计数器计满设定值时,地址计数器和负延迟计数器均停止工作,VEE断电,系统进入等待读出态;在读出数据态,地址同步推进,直到读完所有的数据。
2.2 变频采样的模块设计
采样频率决定了采样信号的质量和数量,采样频率太高,会使采得的信号数量剧增,占用大量的存储单元,采样频率太低的话,会使模拟信号的某些信息丢失,恢复出的信号会出现失真。为了达到最佳效果,必须根据信号的特点选择合适的采样频率[5]。图3为设计的采样时钟选择模块。
设计可选采样频率有八种,如图3中1 MHz~1 kHz,都是由FPGA的时钟模块分频而来,可根据实际情况修改。S1、S2为环境选择信号;P0~P2、P3~P5、P6~P8三组信号分别是三个环境的采样频率控制字,在测试前根据环境采样频率的需要来编程设定;模块mux8为8选1数据选择器,根据输入的三个控制字来选择对应的采样频率输出。系统上电后,环境选择信号S1、S2为"00",模块mux3将1环境的采样频率控制字P0、P1、P2输入到模块mux8中,系统自动以1环境的采样频率进行采样;2环境的触发信号到来时,S1、S2由"00"跳变为"10",2环境的采样频率控制字P3~P5送到mux8中,以2环境的采样频率进行采样;当3环境的触发信号来临,S1、S2由"10"跳变为"11",3环境的采样频率控制字P6~P8被选中,系统以3环境的采样频率采样。
3 实验验证
该实验对标准信号发生器输出的正弦波信号进行采集和存储,采样策略选择为三环境采样,1环境采样频率为1 MHz,2环境为100 kHz,3环境为50 kHz,外触发进入1环境,计数触发进入2环境,计数值128 kW,计数触发进入3环境,计数值32 kW。系统采样完毕后,连接到计算机通过上位机软件读取数据,实验波形如图4。
设置为计数128 kW进入2环境,计数32 kW进入3环境,而系统负延迟为8 kW,分为4个通道,因此1、2环境的分界点为(128+8)*1024/4=34816点,2、3环境的分界点为(128+8+32)*1024/4=43008点,实验波形与计算值相符。如表1所示:
通过上表可以看出,系统变频采样模块的设计满足系统的要求,并且系统是完全按照设定的采样策略进行采样的。
4 结束语
介绍了一种用FPGA实现的动态测试存储测试系统。通过实验验证,表明系统能对信号进行不失真采样存储。证实了所设计的采样策略对多种变化规律的信号采集具有通用性,实现了对信号的变频采样,扩展了系统的应用范围。
摘要:针对某些特殊的测试试验要求测试系统高性能、微体积、低功耗,在存储测试理论基础上,进行了动态存储测试系统的FPGA设计。介绍了该系统的组成,对控制模块进行了详细设计。针对测试环境的多样性设计了采样策略,能对频率多变的信号进行实时记录。通过实验验证了设计的正确性,证实了所设计的采样策略对多种变化规律的信号采集具有通用性,扩展了系统的应用范围。
关键词:FPGA,存储测试,采样策略,变频采样
参考文献
[1]祖静,张志杰,裴东兴,等.新概念动态测试[J].测试技术学报,2004(18):20-23.
[2]巩林萍,靳鸿,祖静.基于CPLD的多次重触发存储测试系统设计[J].电子设计工程,2009,17(12):80-84.
[3]白艳萍,曹济,张文栋,等.瞬态信号测试的自适应采样策略[J].测试技术学报.1996,10(1):28-33.
[4]张文栋.存储测试系统的设计理论及其在导弹动态数据测试中的实现[D].北京理工大学,1995.
存储测试技术 篇6
1 EES综合应用的市场潜力
本部分介绍了两项研究实例和一项专业模拟:美国桑迪亚国家实验室的研究评估了EES能带来的盈利和美国境内所有EES应用的最大市场潜力;美国波士顿咨询集团的研究预测了EES技术的成本降低和评估EES应用投资的盈利能力, 从而判断其在世界市场上的潜力;还有一项是由日本松下公司作出的对未来锂离子电池市场的模拟。
1.1 美国桑迪亚国家实验室 (SNL) 对EES市场的评估
桑迪亚国家实验室评估了美国不同EES应用的市场潜力。该评估分别展示了每项应用的市场规模和每千瓦电能储存的成本效益的盈亏平衡。虽然这项研究只限于目前的市场潜力和只考虑了一个 (大) 市场, 但它对未来的EES市场提供了非常有用的建议。研究结果表明, 目前还不存在同时具有高价值和大市场潜力的应用市场。例如, “变电站现场” (即将应急电源安装在变电站上) 展现出了相当高的价值, 但它的市场潜力小。另一方面, “峰谷分时电价能源” (即由用户根据需求调整供给) 这项应用预期有一个很大的市场规模, 但它的价值不高。
该研究还表明, 未来每项应用的价值和市场规模将根据实地情况而不断发生变化, 同时每项EES设施可能会用于多种应用, 这可以增加投资的盈利。影响未来市场的一个因素是新安装的可再生能源的规模。
1.2 波士顿咨询公司 (BCG) 对EES市场的评估
该研究预测了到2030年EES技术的成本降低情况, 同时还评估了EES应用的投资收益情况。此外, 还对八组应用进行了明确的定义。为了帮助对未来EES应用的市场潜力进行判定, 该项研究还对执行应用的可行性进行了评估, 即要评估现存的常规技术、EES技术发展的技术难点、与现有相关业务的兼容性以及社会环境影响等。
最有前途的市场是“传统能源输出增稳”, 其市场大且具有很高的可预期的收益, 如抽水蓄能和压缩空气储能。“传统能源输出增稳”包括常规发电的错峰削谷和效率的提高。随着可再生能源的广泛引入, 错峰削谷提高输出电能的稳定性的需求急剧增长, 因而使得该应用具有良好的应用前景。
另外一个非常有吸引力的市场是“平衡新能源输出”, 它可以在短时间内调整电源供应, 以满足需求的波动。在该应用中, 大容量的电能储存技术如抽水蓄能和压缩空气蓄能在经济上已经可行, 其它EES技术也有了投资应用的价值。由于可再生能源对供应方供能的增加会使得“平衡能源输出”的需求增加, 越来越多的电力市场将引入成熟的市场机制, 未来用于优化能源输出的EES会被采购。这项研究推断总的市场潜力是330 GW。
1.3 松下集团对EES市场中锂离子电池的评估
松下集团 (三洋) 已经对EES市场中锂离子电池的市场潜力进行了评估。该评估是通过一项模拟得到的, 该模拟基于以下假设:
(1) 电力的交易价格将持续按照市场调查得到的趋势变化, 并与未来的锂离子电池价格进行比较;
(2) 对于公用设施, 假设社区能量储存和输配电投资部分替换;
(3) 对于UPS, 假设为便于维护和节省空间, 用锂离子电池替代铅酸电池;
(4) 电动车充电站将和电动汽车数量同比增长;
(5) 并无锂资源的短缺。
结果表明, 锂离子电池市场将稳步增长, 特别是与住行相关的市场将在2017年开始迅速增长。未来将会有各种从小到大的不同型号的锂离子电池应用于实际生活。
2 EES市场广泛引入可再生能源的潜力评估
可再生能源进入电网和与电网整合可能会导致电能输出的波动和一些不可预测的问题。当连接到电网中可再生能源的总量超过一定值时, 这些问题将变得突出, 此时需要寻求解决这些问题的对策。在一些市场上 (特别是欧盟) 存在一些规模宏大的引入可再生能源激励机制的计划, 因此预计EES将会是实现这些计划的一个关键因素。因此, 需要研究确定EES的需求量来计划引入多少可再生能源。
2.1 弗劳恩霍夫对德国EES市场潜力的评估
德国是众所周知的首先引进可再生能源的领先国家, 因此其EES应用具有巨大的市场。德国已经预设了一个目标, 到2030年, 其可再生能源的份额要从目前的不足20%增长到大约60%~80%。
这表明, 在过去和未来预计需要大量的EES来及时处理可再生能源的整合。对于短期或者长期需求来说, 都需要大量的EES来提供所需峰值功率。到2030年, 需要达到以下的值 (峰值功率乘以时间) :
每小时:16 GWh;
每天:170 GWh;
每周:3.2 TWh (即3.2×109 k Wh) ;
每月:5 T Wh;
总量:大约8.4 TWh。
目前已安装的存储容量为40 GWh的PHS只能满足若干小时的电能需求量和部分满足若干天的电能需求量。为了弥补额外的每小时和每天的电能需求量, 可以使用电化学储能EES (如电池) 。为了满足每周和每月的电能需求, 预计可以使用压缩空气蓄能、氢气 (H2) 和合成天然气 (SNG) 储能技术。
2.2 天然气网络中存储的大量能量
对于储能巨大的电化学储能来说, EES将会过于昂贵, 并且需要太多的空间。另外一种储能方法是将电能转化为氢气或合成天然气, 储存并分配在现有的天然气管道系统中。全周期的电能转化为氢储存的效率为55%~75%, 转化为合成天然气 (SNG) 储存的效率为50%~70%。德国现有天然气网络的存储容量是非常大的, 约为200 TWh (整个配电网储能量约有400 TWh) 。从技术角度来看, 它是将10%的氢气加入到天然气中而不影响天然气的质量。 (由于氢气含有的能量是天然气的三分之一, 因此可以将含能量为7 TWh的氢气输入到天然气网络中。) 任何时候, 天然气网络中的天然气可转化为电能, 转化效率大于60%。到2030年, 德国每周和每月的EES需求量将约为8.2 TWh, 而通过将氢气输入到合成天然气输气网络中的储能方式完全可以满足这样的需求。但该解决方案只能用在有着完整的天然气输气网络的国家;否则, 必须将氢气或者合成天然气存储在外加高压容器 (通常没有困难) 或器皿中。
2.3 西门子公司对EES在欧洲的市场潜力的评估
该研究是为了解决由大量引入可再生能源引起的问题。这项研究涵盖了整个欧洲并采取了一个极端的假设, 假设所有的电力供应都来自于可再生能源 (65%的风能和35%的太阳能) 。
由于可再生能源在性质上是无法控制的, 其在地理区域和时间范围内都可能发生供需之间的不匹配。当供给和需求之间发生不匹配时, 供应短缺通常由一个可靠的电源如化石燃料发电机 (火力发电机) 来弥补。为了解决供需不匹配的问题, 对于地理不匹配, 可以通过加强和邻近区域的相互联接, 对于时间的不匹配, 可以使用EES的时移功能来解决。为了确定在不与周围互联的条件下EES的需求量, 西门子公司完成了一项模拟研究, 用来减少建设电站的存储容量。整个欧洲被划分成了83个区域, 每个地区都有一个不同组合的可再生能源。整个欧洲总的供能是由65%的风能和35%的太阳能组成。模拟结果表明, 如果没有EES, 30%~50%的负荷需求需要由化石燃料发电机提供。如果EES的量能够满足一周的负荷需求, 额外的供能需求可以减少10%~20%, 这相当于60 TWh的EES或者2%的年供能需求量 (3 200 TWh) 。
在实际中, 对于100%由可再生能源供能的EES来说, 加强邻近区域之间联系和增加EES的容量来满足2%~8%的年需求供能量是必需的。能够满足的需求量取决于加大了多少电网联接和扩大可再生能源的供给量。对于每小时和每日的需求, 研究建议使用抽水蓄能 (PHS) 和电化学储能EES (如钠硫电池、锂离子电池、铅酸电池 (LA) 或者氧化还原液流电池 (RFB) 。对于每周和每月的需求, 推荐使用压缩空气储能 (CAES) 和氢 (H2) 储能。对于每周和每月的需求, 斯堪的纳维亚国家 (瑞典、挪威) 对大而新的PHS在TWh范围内的储能性能进行了讨论。然而, 加强与邻近区域的联接需要长距离的传输线, 但从今天的角度来看, 筹集资金并设置这种传输线似乎很难。
2.4 国际能源署 (IEA) 对EES的市场潜力的评估
国际能源署也对EES市场潜力进行了研究, 以应对在整个世界范围内大规模地引进可再生能源。在这项研究中, 计算了EES的需求量与可再生能源的输出量的变化关系。EES的需求量随着可再生能源的输出的增加而增加。例如, 如果假定风力发电的净输出变化率为30%, 在西欧EES的输出量将由2010年的3 GW增加到2050年的90 GW, 以与风力发电量的预测升幅相匹配。若假定在2050年风力发电的净输出变化率为15%~30%之间, 则EES的需求量在50 GW到90 GW之间。
估计EES的需求量是在预计的可再生能源的引入量的基础上完成的。由于预计在西欧和中国可再生能源的普及率将会相当高, 因而EES在这两个地区的市场潜力也是比较大的。到2050年, 整个世界上的EES的需求量将达到189~305 GW之间, 相应的可再生能源的净输出变化率为15%~30%。
当前的EES (主要是PHS) 总量为100 GW, 假定地理分布较好, 可用EES的需求量将会增加一到两倍, 否则, EES需求量将会更多。
3 车辆到电网的概念
随着电动汽车的发展和普及, 将汽车的电源从电池反馈到电网将有巨大的潜力。根据德国联邦政府的预测, 到2020年电动汽车的数量将达到一百万辆。包括混合动力汽车和纯电动汽车在内, 每辆车的平均容量大约是20 k Wh。在实际应用中如果使用总容量的30%, 就具有约6 GWh的可存储电能。在德国, 相比于2011年40 GWh的水力发电储能, 这将多出15%的额外的电能存储。国际能源机构也进行了关于在全球范围内使用电动车电池来缓解可再生能源的输出的研究。如果电动汽车电池使用车辆-电网技术 (V2G) , 用来调整供电时间和稳定短期波动, 在这两种情况下, EES的需求量将分别由189 GW减少到122 GW, 或者由305 GW减少到280 GW。如果将来使用这些储存容量, 电网运营商将有更多的短期时移范围和更高的安全水平来保证电力供应。
低电压电网是有待加强发展的一个领域, 其用来给电动汽车充电的基础设施未能与电动车的数量相匹配, 因而电网的有限的传输容量将会捉襟见肘。根据需要, 电网运营商还可以为消费者提供一个价格可以接受的车辆和运营商之间智能通信系统。消费者的接受能力将在车辆到电网技术的成功应用中扮演一个重要角色。目前正在讨论一些不同的商业模式, 例如, 一个车主不是车中的电池的所有者, 但他可以出租或者租赁汽车, 但同时他也需要以一定的比率为包含电池成本的电能付费。
4 未来市场上EES的潜力
在本章中介绍了一些关于EES的市场潜力的研究, 得到了以下的结论:
(1) 未来EES的潜在市场比已存在的市场要大很多, 该市场主要由扩展的可再生能源和能源行业的转型来驱动, 包括一些新的应用, 例如电动代步。市场的容量与 (未来) 可再生能源比率及区域位置相关。
(2) 如果能更进一步降低成本, 提高技术, EES体系将会得到更为广泛的发展和应用, 例如调整需求时间、稳定可再生能源的输出、提高现有的发电效率等。
(3) 欧洲的研究表明, 可以期望通过EES技术应对可再生能源的输出波动巨大的问题。大型风力涡轮机和太阳能光伏发电的安装可以保证从两个小时到一天时间的电能输送。因此, 传统的大规模EES市场, 如PHS和绝热CAES还是具有很大的吸引力的。
(4) 在MW-MWh (兆瓦—兆瓦时) 范围内广泛地引进电化学储能EES, 如钠硫电池、锂离子电池和RFB, 它们的放电时间在数小时至数天。
(5) 长期的能源存储是必不可少的, 以实现可再生能源的高比例。国际能源署 (IEA) 的报告显示, 进一步输出可再生能源将导致火力发电机的能源控制的不足, 造成短时间内的电能输出波动。预计这种情况可能会发生在西欧和中国这两个都设定了高可再生能源输出目标的区域。
(6) 为了保证从几天到几个月的输电, 需要开发氢气和合成天然气技术。在一些具有完善的合成天然气输气网络和地下储能系统的地区 (如欧洲) , 可以用来存储 (或部分用来存储) 氢气和合成天然气。
(7) 智能电网技术使用许多小的、分散的电池, 如电动汽车电池, 这对于许多应用具有很大的吸引力。但是, 即使所有的电动汽车的电池都被用于该目标, 也不足以满足未来市场对EES的需求。
研究结果还表明, 一些EES技术或将使一些应用变得可行, 同时, 进一步的研究和发展是必需的。
云计算时代的存储技术——云存储 篇7
云其实是网络、互联网的一种比喻说法。过去在图中往往用云来表示电信网, 后来也用来表示互联网和底层基础设施的抽象。云计算分狭义云计算和广义云计算。狭义云计算指IT基础设施的交付和使用模式, 指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式, 指通过网络以按需、易扩展的方式获得所需服务。如果仅下一个定义, 人们仍然无法理解到底什么是云计算, 我们举一个很浅显的例子。传统模式下, 企业建立一套IT系统不仅仅需要购买硬件等基础设施, 还有买软件的许可证, 需要专门的人员维护。当企业的规模扩大时还要继续升级各种软硬件设施以满足需要。对于企业来说, 计算机等硬件和软件本身并非他们真正需要的, 它们仅仅是完成工作、提供效率的工具而已。对个人来说, 我们想正常使用电脑需要安装许多软件, 而许多软件是收费的, 对不经常使用该软件的用户来说购买是非常不划算的。如果能够提供我们需要的所有软件供我们租用, 我们只需要在用时付少量“租金”即可“租用”到这些软件服务, 为我们节省许多购买软硬件的资金。我们每天都要用电, 但我们不是每家自备发电机, 它由电厂集中提供;我们每天都要用自来水, 但我们不是每家都有井, 它由自来水厂集中提供。这种模式极大得节约了资源, 方便了我们的生活。面对计算机给我们带来的困扰, 我们可不可以像使用水和电一样使用计算机资源?这些想法最终导致了云计算的产生。云计算的最终目标是将计算、服务和应用作为一种公共设施提供给公众, 使人们能够像使用水、电、煤气和电话那样使用计算机资源。云计算模式即为电厂集中供电模式。在云计算模式下, 用户的计算机会变的十分简单, 或许不大的内存、不需要硬盘和各种应用软件, 就可以满足我们的需求, 因为用户的计算机除了通过浏览器给“云”发送指令和接受数据外基本上什么都不用做便可以使用云服务提供商的计算资源、存储空间和各种应用软件。这就像连接“显示器”和“主机”的电线无限长, 从而可以把显示器放在使用者的面前, 而主机放在远到甚至计算机使用者本人也不知道的地方。云计算把连接“显示器”和“主机”的电线变成了网络, 把“主机”变成云服务提供商的服务器集群。在云计算环境下, 用户的使用观念也会发生彻底的变化:从“购买产品”到“购买服务”转变, 因为他们直接面对的将不再是复杂的硬件和软件, 而是最终的服务。用户不需要拥有看得见、摸得着的硬件设施, 也不需要为机房支付设备供电、空调制冷、专人维护等等费用, 并且不需要等待漫长的供货周期、项目实施等冗长的时间, 只需要把钱汇给云计算服务提供商, 我们将会马上得到需要的服务。这就是云计算, 在这样的模式下, 云存储又是怎么一回事, 它与云计算有怎样的联系呢?
2 云存储概念
云存储是在云计算 (cloud computing) 概念上延伸和发展出来的一个新的概念, 是指通过集群应用、网格技术或分布式文件系统等功能, 将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作, 共同对外提供数据存储和业务访问功能的一个系统。当云计算系统运算和处理的核心是大量数据的存储和管理时, 云计算系统中就需要配置大量的存储设备, 那么云计算系统就转变成为一个云存储系统, 所以云存储是一个以数据存储和管理为核心的云计算系统。简单来说, 云存储就是将储存资源放到网络上供人存取的一种新兴方案。使用者可以在任何时间、任何地方, 透过任何可连网的装置方便地存取数据。然而在方便使用的同时, 我们不得不重视存储的安全性, 存储必须具有良好的兼容性, 以及它在扩展性与性能聚合方面等诸多因素。首先, 作为存储最重要的就是安全性, 尤其是在云时代, 数据中心存储着众多用户的数据, 如果存储系统出现问题, 其所带来的影响远超分散存储的时代, 因此存储系统的安全性就显得愈发重要。其次, 在云数据中心所使用的存储必须具有良好的兼容性。在云时代, 计算资源都被收归到数据中心之中, 再连同配套的存储空间一起分发给用户, 因此站在用户的角度上是不需要关心兼容性的问题的, 但是站在数据中心的角度, 兼容性却是一个非常重要的问题。众多的用户带来了各种各样的需求, Windows、Linux、Unix、Mac OS, 存储需要面对各种不同的操作系统, 如果给每种操作系统更够配备专门的存储的话, 无疑与云计算的精神背道而驰, 因此, 云计算环境中, 首先要解决的就是兼容性问题。再次, 存储容量的扩展能力。由于要面对数量众多的用户, 存储系统需要存储的文件将呈指数级增长态势, 这就要求存储系统的容量扩展能够跟得上数据量的增长, 做到无限扩容, 同时在扩展过程中最好还要做到简便易行, 不能影响到数据中心的整体运行, 如果容量的扩展需要复杂的操作, 甚至停机, 这无疑会极大地降低数据中心的运营效率。最后, 云时代的存储系统需要的不仅仅是容量的提升, 对于性能的要求同样迫切, 与以往只面向有限的用户不同, 在云时代, 存储系统将面向更为广阔的用户群体, 用户数量级的增加使得存储系统也必须在吞吐性能上有飞速的提升, 只有这样才能对请求作出快速的反应, 这就要求存储系统能够随着容量的增加而拥有线性增长的吞吐性能, 这显然是传统的存储架构无法达成的目标, 传统的存储系统由于没有采用分布式的文件系统, 无法将所有访问压力平均分配到多个存储节点, 因而在存储系统与计算系统之间存在着明显的传输瓶颈, 由此而带来单点故障等多种后续问题, 而集群存储正是解决这一问题, 满足新时代要求的千金良方。
3 云存储技术与传统存储技术
传统的存储技术是把所有数据都当作对企业同等重要和同等有用来进行处理, 所有的数据集成到单一的存储体系之中, 以满足业务持续性需求。但是在面临大数据难题时显得捉襟见肘:1) 成本激增。在大型项目中, 前端图像信息采集点过多, 单台服务器承载量有限, 就造成需要配置几十台, 甚至上百台服务器的状况。这就必然导致建设成本、管理成本、维护成本、能耗成本的急剧增加;2) 磁盘碎片问题。由于视频监控系统往往采用回滚写入方式, 这种无序的频繁读写操作, 导致了磁盘碎片的大量产生。随着使用时间的增加, 将严重的影响整体存储系统的读写性能, 甚至导致存储系统被锁定为只读, 而无法写入新的视频数据;3) 性能问题。由于数据量的激增, 数据的索引效率也变得越来越为人们关注。而动辄上TB的数据。甚至是几百TB的数据, 在索引时往往需要花上几分钟的时间。
作为最新的存储技术, 与传统存储相比, 云存储具有以下优点:1) 管理方便。其实这一项也可以归纳为成本上的优势。因为将大部分数据迁移到云存储上去后, 所有的升级维护任务都是由云存储服务提供商来完成, 节约了企业存储系统管理员上的成本压力。还有就是云存储服务强大的可扩展性, 当企业用户发展壮大后, 突然发现自己先前的存储空间不足, 就必须要考虑增加存储服务器来满足现有的存储需求。而云存储服务则可以很方便的在原有基础上扩展服务空间, 满足需求;2) 成本低。就目前来说, 企业在数据存储上所付出的成本是相当大的, 而且这个成本还在随着数据的暴增而不断增加。为了减少这一成本压力, 许多企业将大部分数据转移到云存储上, 让云存储服务提供商来为他们解决数据存储的问题。这样就能花很少的价钱获得最优的数据存储服务;3) 量身定制。这个主要是针对于私有云。云服务提供商专门为单一的企业客户提供一个量身定制的云存储服务方案, 或者可以是企业自己的IT机构来部署一套私有云服务架构。私有云不但能为企业用户提供最优质的贴身服务, 而且还能在一定程度上降低安全风险。
传统的存储模式已经不再适应当代数据暴增的现实问题, 如何让新兴的云存储发挥它应有的能力, 在解决安全、兼容等问题上, 我们还需要不断的努力, 就目前而言, 云计算时代已经到来, 作为其核心的云存储必将成为未来存储技术的必然趋势。
摘要:随着信息化以及计算机网络技术的高速发展, 从计算机应用由于资源匮乏而不得不采取的计算资源大集中模式到如今IT技术高度发展而带来的云计算时代。数据信息量的不断增加, 给传统的存储技术带来了新的挑战, 如何让数据存储适应新技术的发展无疑是我们在发展的道路上必须弄清楚的一个重要问题。本文由浅入深, 首先从云计算、云存储的概念谈起, 进而分析在云计算时代云存储技术的实际作用。通过对传统存储技术与云存储技术的对比, 体现云存储技术是未来数据存储的必然趋势。
关键词:网络,云计算,数据存储,云存储
参考文献
[1]高岚岚.云计算与网格计算的深入比较研究[J].海峡科学, 2009 (2) .
[2]卢大勇, 陆琪, 姚继锋.伯克利云计算白皮书 (节选) [J].高性能计算发展与应用, 2009 (1) .
[3]李德毅, 孟海军.隶属云和隶属云发生器[J].计算机研究与发展, 2009.
[4]中国云计算网.什么是云计算, 2009.
[5]维基百科.Cloud computing, 2009.
[6]Amazon Amazon elastic compute cloud (Amazon EC2) 2009.
存储备份技术探析 篇8
1.1 高性能多源下载过程
(1) 服务器根据相关信息返回存储需要下载文件的Slave的具体信息; (2) 根据文件大小和Slave的负载状态, 选择合适的Slave建立socket连接对文件进行分块下载; (3) 下载完成后把各个文件块合并成为原始文件。
1.2 静态下载
在静态下载中, 不考虑备份文件的大小, 服务器的负荷量, 采取统一的模型进行下载。算法如下: (1) 得到备份文件所在服务器的个数n, 以及每个服务器的IP地址和端口号; (2) 得到文件的总大小size, 按照文件分割算法, 把文件分割为n块; (3) 与每个服务器建立连接, 从每个服务器上下载一块文件; (4) 下载完成后, 把所有文件块合并成一个完整的文件, 存储在备份介质上; (5) 保存备份文件的相关元数据信息; (6) 文件下载、备份完成。
1.3 动态下载
在动态下载模型中, 要综合考虑各方面因素, 动态决定文件是否分块进行多源下载, 以及文件块的大小, 提高系统资源利用率, 进而提高备份效率。对于没有冗余的文件, 只能从一个节点上下载。对于较小的文件, 使用单线程下载;对于较大的文件, 可以采用多线程下载。对于有多个冗余的文件, 可以动态选取从负荷量较低的节点进行下载。伪算法表示如下:
首先定义如下变量:文件大小阀值Tl, 当文件大小大于Tl时采用多源下载;节点标准负荷T2, 若节点负荷大于T2, 则节点处于重负荷状态;文件大小size文件冗余数n。
算法表示如下:
2 存储与备份技术的一致性
2.1 锁和快照技术
锁就是当进行数据备份时, 对需要备份的数据加锁, 此时禁止对数据进行修改。由于备份时禁止对数据的修改, 锁技术对数据的可用性会造成一定的影响, 会影响到系统的效率。快照就是在相当短的时间内生成原存储系统的瞬时映像, 该映像生成之后, 备份就可以根据该映像来进行, 而不用担心数据的不一致性。快照技术的实现有两种方式:更新复制方式和Split-mirror方式。更新复制技术就是当进行快照时, 并不立刻复制数据, 只有当数据发生变化时才进行复制。Split-mirror是使用和主存储系统一样的快照存储系统, 数据同时保存在主存储系统和快照系统, 此时快照系统就可作为备份数据。
2.2 在线备份
在分布式文件访问平台中, 存在着海量的文件, 文件的信息较多, 若把文件的信息逐个复制则要浪费大量的时间、空间, 对系统的可访问性造成影响。WAFL文件系统使用了更新复制技术。当创建系统快照时, 并不立刻复制所有文件信息, 而是创建新的快照根节点, 它与原文件系统根节点有相同的信息, 文件系统中根节点的子节点也为快照根节点的子节点。此时以快照根节点为根节点生成了一棵快照树, 它和原文件系统树除了根节点以外, 其余部分相同。当文件信息需要修改时, 创建新的节点, 把文件信息赋给此节点, 并把节点作为快照节点插入快照树中, 同时修改原节点的信息, 具体分为以下情况:
(1) 修改文件信息:当对文件的基本信息进行修改时, 如更改文件名称等, 此种情况下比较简单, 伪算法如下:
修改文件信息具体过程如图3:
(2) 移动文件:当把文件或者目录从一个目录移动到另外一个目录下时, 具体伪算法如下:
移动文件过程如图4所示:
(3) 新建文件:当新建文件时, 具体伪算法如下:
新建文件过程如图5所示:
2.3 备份的实现
在创建好快照树之后, 就可以进行在线备份。快照树保存的信息就是开始备份瞬间所有文件的信息, 进行在线备份时, 首先从快照树的根节点开始, 逐个访问节点, 按顺序对快照树进行遍历、备份, 保证了数据的一致性, 并且可以在备份的同时允许对数据进行修改, 不影响用户的访问。
3 存储与备份的可靠性
在分布式系统中存储着海量的数据, 数据量大, 备份的时间较长, 在备份的过程中可能会出现错误情况或者发生意外的中断。因此备份过程中需要随时记录备份的进度, 这样在备份发生错误或者异常时, 下次备份能够在上次备份的出错点继续进行, 实行断点备份, 而不用重新开始备份。断点备份过程中, 使用日志表来记录备份过程, 把每次备份的信息写入日志表。日志表如表1:
3.1 伪算法
3.2 算法复杂度
若日志表中的记录个数为K, 文件总数为N。则对于每一个记录项, 要查找其在文件树中的位置, 当前一个记录项查找到时, 由于遍历的顺序性, 后一个记录项可以从前一个的位置继续向后查找, 这样, 可以保证K个记录项查找次数为K, 也即为O (n) 。当备份发生错误或者中断时, 通过此算法, 能够在相当少的时间内, 找到断点位置, 下一次备份时可以直接从断点位置继续进行, 实现断点备份, 保证了备份的可靠性。
参考文献
[1]牛云, 徐庆.数据备份与灾难恢复[M].北京:机械工业出版社, 2007.
[2]张联峰, 刘乃安, 张玉清.P2P技术[J].计算机工程与应用, 2007, (12) .
[3]刘天时, 赵正.一种通用数据库数据整理方法[J].计算机工程, 2007, (2) .
[4]韩德志, 谢长生, 李怀阳.存储备份技术探析[J].计算机应用研究, 2006, (5) .