(厦门海洋学院 信息技术系,福建 厦门 361000)
网络发展越发成熟,数据信息的存储也越来越重要[1]。因此,从数据安全方面考虑,多媒体网络、电子商务等在线网络服务领域,都离不开磁盘数据在线存储系统的技术支持,测试数据存储的完整性,可有效处理存储性能缺陷。当前很多大型网络企业和企业集团都纷纷构建自己的在线数据存储中心、数据库及存储服务器,以保证数据服务的连续性。由此可见,数据在线存储系统及存储缓存是大数据及云计算的核心架构,能够有效提高对在线用户的服务体验。目前,主流大型网络的存储缓存系统多基于磁盘阵列技术,组成部分包括控制器和存储磁盘阵列,并基于RAID方式对冗余数据进行存储[2]。控制元件自带以太网数据接口,该种连接方式可以直接接收上位机的要求,控制磁盘阵列的存储速度和存储方式。计算机处理器的主频逐年升高,数据处理能力不断增强,要求磁盘的兼容度和数据读写速度与之相匹配。为实现这一目的中高端的磁盘控制装置大都带有较大的内存,造成了大量成本的浪费和闲置。ISCSI协议的启用实现了局域网用于与互联网的对接,是以太网的数据存储与传输变得更为迅速和便捷。各大学者对数据存储的完整性作出了相关研究。文献[3]提出一种本地无数据的ISCSI磁盘数据保护机制,通过对本地数据的预处理减少存储数据的响应时间,提高磁盘数据的读写效率,同时增加了自主保护机制,但由于未考虑存储数据的丢帧情况,使得数据的完整性过差。文献[4]提出了一种采用闪存的iSCSI存储端融合缓存机制研究,能够有效的完成将存储数据动态存储,有效减少内存的占用,但为考虑读写响应时间问题,会造成服务器处理时间过长,没有效率。文献[5]提出一种大数据存储中数据完整性验证结果的检测算法研究,能够在海量数据中提取有效信息,并对存储数据进行智能提出,检测获取数据的完整性,但这种算法十分复杂,系统资金损耗过大,响应时间上优势不明显,故而效果不佳。为了解决存储过程中经常会出现读写响应时间过长、数据丢帧等问题。提出了ISCSI磁盘数据双控制器存储完整性测试技术,能够有效改善系统出现故障时的在线数据丢失现象。
ISCSI磁盘数据双控制器存储系统分为六大模块,分别是为电源模块,预警模块,网络接口模块,控制模块,数据采集模块,动态存储模块。电源模块为整个ISCSI磁盘数据双控制存储系统提供电量,预警模块能够在存储控制系统内存量不足之前就发出警报,通过数据采集模块进行数据采集,然后将采集到的数据经由控制中心进行预处理,对采集到的数据进行去噪,然后经由动态存储模块完成数据的周期性存储,在控制中心模块存在网络接口,能够获得实时数据,保障数据的及时性,采集到的数据通过上述模块的处理,然后通过预警模块输出,完成整个ISCSI磁盘数据双控控制存储系统对数据的动态存储。其存储系统的结构如图1所示。
图1 ISCSI磁盘数据双控制器存储系统结果图
其中,动态存储模块主要为网络用户提供在线的存储服务,内部功能单元包含接收接口命令、程序功能设定及工具配置参数设定。系统用户层模块接收的在线存储命令为上位机的ISCSI指令,该模块还负责对指令的解析、传递、发送及接收等,动态存储模块将处理完的数据返回给中心控制模块。双控制器存储系统中心控制模块是基于ISCSI控制器的核心模块,在功能性方面中心控制模块统筹全局,实现对现有网络资源的协调与优化配置,加快用户的访问速度,中心控制模块还加速了系统资源共享的速率,快速、高效实现对ISCSI磁盘数据的交互与存储。在市场商业化的趋势下,基于ISCSI协议双控制器存储系统缓存,还可以实现对网络产品的良性封装,满足不同类型客户的差异化需求[6]。
基于ISCSI协议设计的双控制器存储系统中心控制模块,遵循层次化的设计理念每一个具体的组成部分都具有独立的功能,各个部分之间也存在紧密的联系,中心控制模块中具体包括网络单元组成部分、命令解析功能、异常问题处理、缓存处理、缓存数据读写、同步及写回等具体的功能。双控制器存储系统中心控制模块设计的优势在于,采用了嵌入式的缓存结构与系统软件的功能性实现统一[7-8],基于Windows系统实现对块数据、流数据及其他文件的梳理和管控。ISCSI磁盘数据读写环境下,双控系统缓存缩短了I/O的执行路径,在文件系统与应用路径之间搭建了一个桥梁,释放出软件操作系统的功能。系统缓存数据处理模式有助释放硬件的多线程性能,降低数据存储中丢失的风险,还能够抵御恶意数据的网络攻击。
双控制器动态存储设计对于软硬件冗余的处理,使用了两个配置相同的控制元件,可以连续不断地提供持续服务。如果一个控制部分发生故障时,备用元件可以持续提供服务,避免客户读写数据的丢失。在数的更新与交换时,两个控制器同时进行,以保证原始数据采集的同步性和一致性,两个部分也可以同时实现对冗余数据的删减与备份。ISCSI协议中也包括了IP协议,以太网数据同步协议等,以实现系统功能的完整性[9]。
为提高整体缓存设计的命中率,双控制器存储系统的内存需要预留出更大的空间,在上位机系统启动时可以确保系统资源的连续分配,而不会受到其他模块占用资源的影响,缓存的独立空间设计组织结构,如图2所示。
图2 ISCSI磁盘数据双控制存储缓存空间组织结构
图2中的阴影部分为独立的缓存结构,其中一部分用于数据的保存,另一部分为磁盘序列提供足够的数据空间。缓存模块的工作流程按照windows系统的要求,保证数据存储中的整数倍[10]。系统缓存中包括海量的数据存储块,为了便于数据的管理与控制,将这些块状数据纳入总体的结构当中,并通过ISCSI磁盘数据读写协议随时进行数据的交互与存储。数据体中包含了大量的结构信息,可以判断出是否存在脏数据、磁盘的逻辑性是否合理。基于ISCSI协议下双控制器存储系统的框架结构设定缓存控制系统的完整性测试总体流程和算法实现流程成,为网络客户提供快速、稳定的数据存储和数据交互[11-12]。
设计一个具有稳定功能性的双控制器存储系统测试模块,可以稳定提高系统的工作效率。首先,对系统参数进行设定,然后系统初始化,通过获取采集模块识别出用户的网络需求,获取数据信息,缓存中的内容会被迅速地压缩传递到主机系统,不需要往复地进行数据库存储,以减少资源的占用和系统耗时。ISCSI磁盘数据交互路径下,降低了数据交互与传输的成本,这时从双控制器存储系统中采集的用户数据,成功率和准确率都较高;如果请求的数据系统数据库缓存中不存在,那么应用程序的识别与对接中就需要在额外拷贝一份数据之后,在释放系统缓存。ISCSI双控制器存储系统缓存控制流程,如图3所示。
图3 双控制器存储系统完整性测试流程图
双控制器存储系统完整性测试模块中,不但需要检查采集到的数据是否为冗余数据,进行去噪处理,还需要检测系统缓存是否足够,同时拥有数据处理与恢复的能力,当系统缓存与数据配置文件存在不一致的情形时,应选择在ISCSI网络磁盘中自动清除该数据,并可以依据用户的要求进行恢复或彻底删除。当MIS网络系统关闭时,双控制器存储系统缓存中的数据对象,会被上位机系统做序列化处理。当网络系统重新启动或被强制启动时,网络化的存储功能就可以降低来自与系统内存的压力,将一些不变的数据对象直接上传的网络系统,供客户直接的筛选和使用。而另一部关键数据就会暂时地停留在系统缓存之中,用于临时的数据提取与交互。ISCSI协议在此过程中,可以为客户和主机系统提供较为廉价的数据云存储服务,实现本地以太网与因特网的实时对接,在网络的功能性和安全性方面也可以满足用户的要求。但一些Java虚拟机可能会存储与同一台主机或同一个局域网络,ISCSI磁盘数据保证了数据之间的共享性,双控制器存储系统缓存模块基于Java语言实现,在与系统、用户之间的兼容性和适配性方面更具有优势。
在具体的ISCSI磁盘数据双控制器存储系统完整性测试算法方面,考虑到总体业务流程中都具有自相似的特点,系统缓存的这一特征可能会引起数据动态分配方式的改变,双控制器存储系统缓存预留了足够的资源和数据存储空间,缓存大小变化具有动态性和智能性的特点,从很大程度上节省了网络用户和上位机系统数据提取时间,及资源占用的空间。同时也使缓存的变化过程调整为一个动态变化的过程,具有良好的弹性和延展性,与ISCSI协议下磁盘数据的读写过程相一致,提高了网络资源的利用率和流媒体资源的共享特性。网络用户在数据提取与资源使用中,会遇到一些突发性的状况进行大量占用系统的缓存资源,双控制器存储系统完整性测试设计从一定程度上提高了系统的稳定性,即使过多的用户使用网络资源而造成信道的拥塞,双控制器存储系统完整性测试也可以保证系统的稳定性和数据读写的流畅性,保证数据完整且不会丢失。
在完整性测试算法设计方面,本文在ISCSI磁盘数据读写环境下,设计的双控制器存储系统完整性测试算法采用了一种更为灵活的方式,可以在各种不同的情况下降低数据传输中的丢帧率。在网络客户系统的接收端,存在大量的缓存数据资源,基于块数据的方式进行存储行为的缓冲,并在缓冲区设定了安全阈值,保留了足够的缓存空间。在对ISCSI磁盘数据缓存控制时,需要分别对缓存队列的长度和数据达到时间进行估算,并通过对数据缓存资源的配置与释放达到控制数据传输针对和缩短数据存储相应时间的目的。如果设双控制器存储系统中缓存数据队列长度为d1,这种缓存状态会决定数据上溢的程度:
d1=t[v(t+1)-Fmax]+n
(1)
其中:t为数据采集模块采样的间隔时间、v网络数据流到达缓存的速度、Fmax为缓存数据的最大溢出量、n缓存最大的容忍帧数。如果设定缓存区中数据长度的安全阈值为d2,如果d1 图4 双控制器存储动态缓存示意图 ISCSI磁盘数据缓存控制业务数据在网络传输和交互中呈现出自相似模式,要分别对缓存区和非缓存区数据的队列的到达速度进行准确估计,基于幂率滑动平均算法估算的数据缓存速度v可以表示为: (2) 其中:参数β是与自相关系数ξ相关的变量,如果β不断增大,表明数据缓存的速度增加;如果参数β不断缩小,则证明数据缓存的速率不断地降低。测试完整性的过程中,如果两者的比例关系为3:2时,为最优状态:此时公式(2)可以转化为: (3) 由此完成了ISCSI磁盘双控制器存储系统的完整性测试,确保数据存储的高响应时间以及高精度。 ISCSI磁盘双控制器存储系统缓存模块的测试仿真在windows10环境下运行,存储器的详细配置参数如下:处理器Intel Core i7、RAM16G、Windows ISCSI发起程序。为保证系统缓存的服务性能,将产生的虚拟用户访问量,在另外一台独立的计算机上运行和监控。首先使用Lasdrunner中的VUG录制系统脚本并构建虚拟网络用户。 对缓存的运行场景设置,要与用户的网络使用习惯向匹配,采用特定时间段相继登录的模式,虚拟用户使用量的设定为120。在相同的测试环境下采用相同测试工具对比了所提应用完整性测试技术的存储系统与传统基于预留资源的ISCSI磁盘数据双控制器存储系统在响应时间和丢帧率方面的表现。 对于网络用户而言,系统存储的响应速度具有决定性的意义,本文从数据读写响应时间研究上述两种不同存储控制设计的性能表现,进行了十组仿真实验,采用的实验数据如图5所示。 图5 系统存储读写响应速度 由图5分析可知,传统方法的响应时间明显高于本文存储系统,同时本文存储系统响应时间一直很稳定,没有常出现传统系统。由此可以看出,加入完整性测试的所提系统提高了整体的读写效率,降低了系统采样时间。 磁盘数据传输和使用中,用户关注的另一个重点问题是数据的丢帧率,这也是保证用户流畅使用存储功能的前提条件之一。因此本文比较存储设计与传统设计在数据丢帧率方面的对比结果,总体的变化趋势如图6所示。 图6 两种控制系统设计的丢帧率对比 由于数据突发而占用了系统中的一部分内存,进而导致数据丢帧率增加,而文中的双控存储控制设计能够起到有效的缓解作用。传统单控控制算法在数据长度和速度控制上不具备优势,增加了用户数据的丢帧现象,如图6所示,在相同的ISCSI磁盘数据读写时间点,文中算法的丢帧率0.05%之内;而反观传统控制设计,最高的丢帧率出现在1.0s时间点,数据丢帧率达到了0.20%。由于网络持续突发中,对于队列的长度和数据的读写速度都会有很高的要求,如果存储系统的性能无法满足具体的要求,就会出现较大的丢帧率。实验结果表明,所提控制系统在加入了完整性测试技术后,系统响应时间和数据丢帧率控制方面都具有一定优势,得到了更好的控制结果。 为改善当前测试ISCSI磁盘数据双控制器存储时存在的响应速度慢、测试误差较大等缺陷,在磁盘数据双控制器系统设计中,加入了完整性测试技术,确保数据存储的准确性。本文设计了整体的ISCSI磁盘数据双控制器存储完整性测试系统框架,提出磁盘数据双控存储系统具体控制算法。实验数据结果表明,所提控制算法存储系统响应时间降低,能够有效测试数据存储完整性,并降低存储系统数据的整体丢帧率。3 实验结果与分析
3.1 测试环境搭建
3.2 系统存储的响应时间
3.3 丢帧率对比
4 结束语