袁兆祥,彭 晶,安增军,张 华
(1.国网经济技术研究院有限公司,北京 102209;2.江西博微新技术有限公司 项目中心,南昌 330096;3.国网江苏省电力有限公司经济技术研究院 设计中心,南京 210024)
随着电网建设的飞速发展和特高压电网工程项目的启动,我国电力工程建设已进入新的阶段.输变电工程建设所需的计算机和网络设备已基本健全,但信息和数据管理系统仍比较欠缺[1].如何提高电力工程数据管理的质量和效率,实现电力工程的信息化管理已成为电力公司的工作重点[2-4].
输变电工程主要含有工程地理信息、三维设计模型和文档资料三类数据[5-6].根据这些数据的存储方式可以将其分为结构化数据[6]和非结构化数据两种类型[7].其中,结构化数据包括行数据、二维表结构数据,通常采用行存储和列存储两种方式[8];而非结构化数据包括文本、视频、图像、数学模型等[9],此类数据通常具有多样化的媒体形式,需要更大的存储容量[10].平均每个输变电工程包含500 MBit结构化数据和50 GBit非结构化数据,而一个省电力公司需要处理超过50 TBit的结构化数据和2.5 PBit的非结构化数据[11].实现这些大规模数据的高效存储,对于缩短项目建设时间、降低工程项目的成本、提高建设质量和降低项目实施风险均具有重要意义[12].
目前,主要采用集中式和完全分布式的方式存储、处理海量数据.其中,集中式处理方式使用ETL及网关,将采集的数据发送给数据中心和数据存储器,并根据不同的应用场景和业务需求从海量数据中挖掘出所需的信息,该种方式广泛应用于银行潜在客户分析和贷款风险评估中[13];完全分布式处理方式将数据以订阅的方式推送给服务器,故不需要集中存储,具有系统结构简单、实时特性好的优点,且数据存在时效性,被广泛应用于现场总线系统中[14].
基于以上分析,本文提出一种基于层级设计的输变电工程数据存储架构.该存储方法根据结构化数据和非结构化数据的特点分别存储,有助于优化配置存储资源;同时,提出了一种基于遗传算法的数据迁移方法,以解决数据迁移导致的网络访问次数增加、负载不均衡和时间消耗大的问题.
本文将输变电工程数据划分为结构化数据和非结构化数据两种,并根据其特点分别使用不同的存储方式.表1为输变电工程所包含的数据类型及其划分结果.
表1 输变电工程数据划分Tab.1 Data division for power transmission and transformation engineering
由于结构化数据只需要考虑是否能容纳的问题,使用传统的关系型数据库即可方便地对数据进行增加、删除和修改等操作,因此,本文直接使用MySQL关系型数据库存储结构化数据.然而,非结构化数据通常占用较大的存储空间,对关系型数据库造成较大的存储压力,并会降低数据库的I/O性能,所以,本文使用虚拟机集群存储系统存储这些数据.
为了保证非结构化数据存取业务的扩展性、可用性和可靠性,本文使用ThinLUN按需分配技术来提高存储系统的扩展性与利用率.该种分配技术只需较少的初期投入,并可以根据用户需求的增长不断扩展存储空间.ThinLUN使用写时空间分配存储空间,使用读写重定向技术进行数据读写,从而实现空间的按需分配.其中,写时空间分配技术即在I/O口发送写请求时触发存储池的空间分配,而其他位置在用时再分配,分配流程如图1所示.读写重定向技术即在读写操作时根据映射表进行重定向,流程图如图2所示.具体操作为:
1)写操作:收到写请求后先查看映射表,若已记录目标的物理地址,则重新定向到该地址进行覆盖写;否则,分配新的物理地址并进行写操作和记录映射表.
2)读操作:收到读请求后先查看映射表,访问映射表中存储的物理地址进行读操作.
为了保证存储系统不因自然或人为因素导致业务中断和数据丢失,本文建立了灾难备份机制与容灾机制来保证系统在遭受不可抗力破坏时能确保业务不中断及数据不丢失.
灾难备份机制实现输变电工程数据到灾备系统的复制,并在灾难发生时保证数据的回传;容灾机制能保证灾难发生后数据的远程备份,保证原有数据不遭到破坏或丢失.
图1 写时空间分配流程Fig.1 Space allocation process in writing time
图2 读写重定向流程Fig.2 Reading and writing redirection process
为了避免出现输变电工程数据存储系统中,某一个数据存储服务器被过度访问导致负载过高的问题,本文基于遗传算法提出了一种适用于输变电工程数据存储架构的数据迁移方法,有效解决数据迁移导致的网络访问次数增加、负载不均衡和时间消耗大的问题.首先建立数据迁移中各优化目标的数学模型,然后使用遗传算法求取最优解.
2.1.1 访问次数
数据迁移过程中产生了B次访问,则其访问次数需满足
(1)
式中,bi为n/T时间段内访问次数,T为总的访问时间.
2.1.2 负载和过载指数建模
在数据迁移过程中,系统会优先从负载较高的数据中心中选择数据作为源数据,因此,需要考虑每个数据中心的负载能力和实际负载等信息.设数据中心的当前负载为fz、负载上限为fzh、负载下限为fzl,则数据中心dci的负载能力为fz(dci,t).
为了保证各数据中心处于理想负载区间,本文将负载最轻的前20%数据中心作为目标数据中心,即:fzl
(2)
式中:cout为迁移出的数据块负载;di为移动数据.
2.1.3 传输时间建模
假设源数据中心为dci、目标数据中心为dcj,将数据di从dci传输到dcj的时间为T′(d,dci,dcj),则有
T′(di,dci,dcj)=ds/v(dci,dcj)+Cij
(3)
式中:ds为数据块的大小;v(dci,dcj)为数据传输率;Cij为数据迁移过程中发送请求、建立连接和断开连接的耗时.
2.1.4 优化目标
数据迁移的目标是减小网络访问次数、时间及负载不均衡现象,在最短的时间内响应系统的请求.因此,本文建立的目标函数式为
t=αT′+βfz+γB
(4)
由于系统响应时间过长会严重影响数据迁移过程,故本文取α为0.6,即使用遗传算法优先选择耗时较少的迁移方案;迁移数据的不均衡度也会影响整个系统的负载,所以设置β为0.1,并优先选择负载最轻的前20%数据中心作为目标数据中心;当数据被分为多块时,会增加网络访问的次数,造成较大的时间损耗,故设置γ为0.3.
本文使用遗传算法[15-16]求解优化目标t最小的数据布局方案.遗传算法结合生物进化的规律,选择较优秀的个体,而淘汰较差的个体,使得种群向更好的方向发展.本文选取式(4)作为目标函数,设计的基于遗传算法的数据迁移方案优化算法如下:
1)对数据中心进行二进制编码.
2)初始化种群大小N,基因大小g,最大迭代代数G.
3)迭代N次,随机生成N个迁移方案Si,当Si∩Sj≠R时,计算目标函数t.
4)对Si进行变换操作.
5)将Si添加到较优方案解集R中.
6)初始化当前种群为0.
7)使用随机法计算R中每种解被选中的概率,如果0.6 8)将S′i和S″i加入到R中. 9)计算新基因的适应度函数值. 10)根据适应度函数值得到最优的迁移方案R. 本文将存储器和服务器构成一个标准存储单元,为每台服务器分配128 GB内存,2颗8核CPU和1 TB硬盘,并使用虚拟机构建不同数量的数据存储中心进行仿真测试. 本文为每个数据中心随机分配不同数量的结构化数据和非结构化数据,表2所示为本文试验中数据存储中心使用到的10组不同的配置参数.表2中数据集数量越大,表明处理的数据量越大,存储中心越多,表明系统使用了更多的分布式数据存储中心.首先比较了数据迁移前后,存储系统执行同一任务所需的时间,结果如图3所示.从图3中可以看出,随着任务数量的增加,数据迁移前后所需的执行时间均有明显上升,但迁移后所花费的时间要明显少于迁移前的.结果表明,执行数据迁移能明显提升输变电工程数据存储系统的性能. 比较写入不同数据量的结构化数据和非结构化数据时,数据传输所需时间与总时间之比的变化情况,结果如图4所示.其中总时间包括数据传输时间和数据处理时间,由于使用了相同的数据处理方式,故占用的时间相等,因此本文仅比较数据传输时间.从图4中可以看出,随着数据量的增加,结构化数据和非结构化数据的传输用时占比不会随着数据量呈比例增加;但随着数据量的增加,结构化数据的用时占比明显比非结构化数据的用时占比少. 表2 存储中心配置参数Tab.2 Configuration parameters for storage centers 图3 数据迁移前后执行相同任务所需时间比较Fig.3 Comparison of time required for same task operation before and after data migration 图4 不同数据传输时间对比Fig.4 Comparison of transmission time for different data 本文提出了一种基于层级设计的输变电工程数据存储架构,根据结构化数据和非结构化数据的特点分别处理输变电工程数据.使用不同的存储架构能有效提升数据的存储效率,并节约存储空间.而使用基于遗传算法的数据迁移方法实现海量数据的迁移,可以有效解决数据存储服务器被过度访问导致网络访问次数增加、负载不均衡和时间消耗大的问题.仿真与测试结果表明,所提出的存储架构与数据迁移方法能有效解决海量输变电工程数据存储的问题,并提升输变电工程数据存储系统的性能.3 仿真与分析
4 结 论