一次基于系统性能分析的存储设备升级
2019-02-25季永华刘俊娜唐怀瓯华连生
季永华,刘俊娜,唐怀瓯,华连生
(安徽省气象信息中心,安徽 合肥 230031)
0 引 言
随着信息化的发展,社会各行业数据海量增长,数据存储技术不断深入,从传统的关系型数据库到NoSQL非关系型数据库,从单文件系统到分布式文件系统,存储模式和处理速度在不断升级[1-6]。近年来气象行业依托全国综合气象信息共享平台(CIMISS)建设了一个综合气象数据环境,形成1个国家级中心,31个省中心的气象数据环境网。CIMISS是一个集气象数据的收集、分发、处理、管理和共享于一体的综合性气象信息业务系统,多年来,对于CIMISS系统管理服务以及性能的优化等方面进行了大量研究。例如,杨润之等[7]研究了内存转发在CIMISS系统中的应用;王旻燕等[8]研究了气象卫星数据的存储和服务模型;李德泉等[9]研究了多维数据权限管理模型;季永华等[10]研究对系统进行简约化流程的改造,优化系统处理效率;杨菲菲等[11]研究了ORACLE数据库备份方案的建立。然而CIMISS系统硬件设备从2010年开始上电运转,硬件设备运行多年,随着业务量的增加,数据不断的接入,后台支撑的CX480存储存在设备老化,运行能力不足等问题,严重影响整体的系统性能。
因此,文中从分析系统业务数据容量需求和对盘阵磁盘读写性能需求分析入手,探讨如何更新和扩容存储设备,优化硬件环境,从而提高系统的处理能力。
1 业务数据分析
系统结构方面,CIMISS系统包括数据收集与分发(CTS)、数据加工处理(DPC)、数据存储管理(SOD)、数据共享服务(GDS)和业务监控(MCP)五个业务应用系统[12-13]。五个业务系统和后台存储之间的关系见图1。CIMISS系统中主要的读写操作都在后台存储中进行,因此存储的性能对整个系统的运行起着决定性作用。存储系统在CIMISS里主要用于ORACLE数据库和GPFS文件系统,GPFS文件系统主要分为run文件系统和data文件系统,其中run文件系统用于各个分系统之间的数据交互,中间环节处理,以及消息中间件传递等。data文件系统用于存储非结构化的气
图1 CIMISS业务系统与存储交互关系
象数据。
由图1可以看出,最“繁忙”的工作都在run文件系统中进行,五大应用系统之间大量的交互,数据解析工作,都在这里面完成。一份原始的气象数据要解析成好几份,甚至上百份中间数据产品。拿数值预报资料来说,数据加工处理系统(DPC)对于一份原始文件要解析成分层次(10,50,100,200,300,400,500,700,850,925,1 000 hPa),分要素(温度、湿度、气压、降水量、风向风速等)的产品,再进行文件存储并在数据库中存入文件信息,EC高分辨率原始文件564个每日,解码产品78 064个每日,RJ高分辨3 211个每日,解码产品20 722个每日,T639高分辨率110个每日,解码产品39 050个每日,另外还有其他的数值预报数据,每份数据都要解析成上百个产品。由此,就要对run文件系统进行大量的IO操作,盘阵对这块的文件系统性能有较高的要求。
数据接入量方面,CIMISS系统接入的气象数据种类归为14大类,除了表1的资料外,还包括气象辐射资料、历史气候代用资料、气象灾害资料、科学实验和考察资料等等[14]。多种观测手段形成了气象数据的格式多样且复杂,包括TXT、XML、HDF、AWX、CSV、BUFR、GRIB-1 /2、LRIT/,HRIT、NetCDF、图像格式等。
对于省级中心来说,日数据量达到百G以上。以安徽省为例,接收的资料包括2 500个全国地面国家级自动站,2万左右区域级自动站(包括安徽、江苏、上海、山东、浙江、河南、江西、湖北),日数据量2.5 G,高空气象数据包括国内120个和国外数百个高空站,GPS/NET水汽数据,闪电定位资料等,日数据量250 M左右;接收40个雷达站数据,日数据量大概12 G。此外还包括几十G的卫星和数值预报产品等。
表1 气象资料种类不完全统计
一年基本业务资料在20 T左右,增加10%存储冗余量,其中需要ORACLE数据库存储为3 TB,文件系统存储为19 TB,预计五年需要120 TB左右空间。
2 磁盘IO分析
Linux系统中的iostat是I/O statistics(输入/输出统计)的缩写,利用iostat命令工具分析当前旧盘阵上每个LUN的读写情况,分析结果为新存储设备的配置提供一定参考,iostat工具将对系统的磁盘操作活动进行监视。
可以输出磁盘IO的统计情况,也能输出CPU当前的使用情况。
iostat -d emcpowerga emcpowergb emcpowergc emcpowergd emcpowerge emcpowergf emcpowergg emcpowergh emcpowergi emcpowergj emcpowergk emcpowergl emcpowergm emcpowergn emcpowergo emcpowergp emcpoweroa emcpowerob emcpoweroc emcpowerod emcpoweroe emcpowerof emcpowerog emcpoweroh emcpoweroi emcpoweroj emcpowerok emcpowerol-kxt 1
通过上面的命令对磁盘的IO情况进行收集,其中emcpower开头的是存储划分的LUN在服务器上识别出来的磁盘名,参数-k表示以KB为单位输出,-x输出更详细的IO读写情况,-t带时间戳输出,1每秒输出一次。
输出主要关注以下几个信息:
r/s:每秒完成的读IO设备次数,即rio/s;
w/s:每秒完成的写IO设备次数,即wio/s;
rkB/s:每秒读K字节数;
wkB/s:每秒写K字节数。
CIMISS内部18台服务器连接了后台存储设备,同时,每台机器都进行了NTP时钟同步,确保了时间的一致性,在每台服务器上运行上面的脚本,并将结果输出到文本文件中,即可收集各自对存储磁盘的IO读写情况。由于输出结果带时间戳,而每台机器的时间同步,所以将输出信息进行格式处理后,即可得出同一时刻磁盘的总体IO情况。
采集了2017年10月11日8:30到次日0点之间的存储磁盘IO信息,由于每秒采集一条数据,数据量较多,拿run文件系统为例,选取每个整分钟的数据作图,并将图形进行一定的平滑处理,见图2和图3。可以看出经过平滑后的曲线仍然有较大的随机性。
经过分析得出,run文件系统的LUN无论读写,其IOPS值都较高,平均读次数1 500,写次数1 000,每秒读写的数据量也较大,平均读写在5 M/s,峰值能达到几十M/s,这和业务数据中的分析一致。
data文件系统LUN的IOPS在0~400之间,主要集中在写数据上,读操作的IOPS和数据量都较低,整体上写入数据量不大,但是随机性较强。
图2 run文件系统单个LUN每秒读写次数
图3 run文件系统单个LUN每秒读写数据量
ORACLE数据库的LUN写入比较均匀,平均500 KB/s,读数据量每秒几十KB左右,但随机性较强,读数据量高峰值能达到100 M/s,这和对接的业务系统读取数据关系较大。
3 分析总结
CIMISS业务中的数据以海量小文件为主,系统的随机IO量大,业务对随机IO能力要求高。
GPFS的run文件系统是所有业务环节中对IO要求最高的一部分,且业务模式和容量相对固定,因此,此处首选SSD/Flash类型的固态盘,或使用转速为15K的高性能传统磁盘。
ORACLE数据库的IO特征首要是随机IO,即IOPS密集型的模式。因此,磁盘首选仍是SSD/Flash类型的固态盘。但由于ORACLE库体容量较大,且随着业务变化将持续增长,暂不好确定上限。因此,考虑到成本,也可采用转速为15K的高性能传统磁盘,或采用SSD/Flash类型的固态盘与15K磁盘相结合并在盘阵内做动态分级存储的方式。
其他各GPFS文件系统比run文件系统负载低,但仍然属于海量小文件的IOPS密集型模式。
4 存储更新升级
4.1 存储配置
由于CIMISS业务应用的主体特征是IOPS密集型,因此对盘阵有较高的要求,选择可靠性高、能力强、性能好的中高端盘阵。对存储来说,控制器是IOPS能力的首要决定因素,它代表了盘阵总体的IO处理能力。
对于CIMISS业务,技术选择的核心是要确定和选择能提供较高IO能力的且带有较为优化和智能算法的控制器,这样才能充分利用控制器资源和高速缓存,对IOPS密集型应用提供最大程度的支持。
除了高速缓存的Cache-IOPS对盘阵整体IOPS能力有决定因素,另外,磁盘的IOPS也是盘阵性能的重要保障,因此在选择磁盘种类的配置时,根据前面的分析,既要兼顾数据环境存储容量的需求,也要考虑整体性能的需求,因此考虑将大容量磁盘(4 TB)和SSD/Flash,SAS等高性能磁盘相结合使用。大容量磁盘组的总体IO能力相对较弱,但容量充足,SSD/Flash,SAS等高性能磁盘IO能力强,但存储容量有限,且价格昂贵,这样要充分利用中高端盘阵的磁盘管理功能,考虑并规划好业务数据在盘阵中不同类磁盘中的分布策略或动态分级存储的配置策略。
存储系统需要可用容量规划设计120 TB。根据容量和性能要求,本次存储系统配置1台新一代中端SAN盘阵EMC-VNX5400设备,系统配置总体顺序读写性能可达到5 GB/s以上,满足省级中心存储以及支撑未来业务发展的容量和性能需求。配置2个SAN控制器;控制器为Active-Active工作模式,控制器配置32 GB高速缓存。控制器配置FC光纤通道为8个8 Gb/s的前端端口。磁盘配置12块800 GB的SSD固态硬盘,19块1.2 TB容量的SAS高速磁盘,35块4 TB容量的SATA盘,另外盘阵最大能支持240块磁盘配置,在存储容量不足的情况下可以随时进行扩充。对SSD固态硬盘采用RAID5(4D+1P)划分方案,SAS磁盘和SATA磁盘采用RAID6(6D+2P)划分方案。新一代SAN盘阵总体能力比现有CIMISS盘阵有3~5倍以上的提升,在与SSD盘、高性能SAS盘等存储资源配合使用时,可提供极高的IOPS能力,可为大幅度提升现有CIMISS主业务的数据读写IO性能提供强有力的支持。
4.2 FAST VP软件功能
对于CIMISS系统,需重点关注的一个软件功能是“盘阵内动态分级存储管理”,此功能主要用于多种不同类型磁盘混插的配置。当盘阵配置有SSD/Flash盘、高性能(15K)磁盘、大容量磁盘等多种类型磁盘时,通过此功能可根据既定策略自动地把数据访问频度较高的“热数据”存储在高性能盘上,对数据访问频度较低的“冷数据”自动地迁移到性能较低的大容量盘上。
FAST VP功能可以主动监视每一个LUN的工作负载,能识别每种磁盘上的“繁忙”数据,并移动到SSD/EFD等高性能驱动器来提高性能。FAST VP功能也会识别较“冷”和“休眠的”数据,便将它们迁移到大容量和性能较低的驱动器来降低存储成本。
盘阵部署配置过程中,将FAST VP策略Auto-Tiering Status状态设置为enabled,定制Data Relocation Schedule为周一到周日每天的10时开始,持续8个小时,这样配置的原因是虽然CIMISS业务每天24个小时不间断处理各类资料,但在非汛期雷达数据等大量的小文件在10~15时会相对集中传输[15]。
4.3 存储运行效果
新存储设备上线运行之后,通过EMC Unisphere存储的管理软件,收集每个LUN的IO信息。得出的结果如图4和图5所示。
图4 新存储单个LUN的数据吞吐量
从新盘阵的运行结果可以看出和前面的分析是一致的,run文件系统中单个LUN的IOPS最高,负载最重,有一定的规律性,这跟业务流程相关,平均的数据吞吐量也最大,达5 MB/s,峰值为14 MB/s;data文件系统和ORACLE的磁盘IOPS相对较低,但有一定的随机性,ORACLE磁盘的随机吞吐量也较大。
文件系统在不同种类磁盘中占比如表2所示。
经过一段时间的运行,利用盘存的FAST VP功能实现数据的自动迁移,run文件系统数据最“热”,在SSD和SAS上占比分别为50.63%和34.22%,而ORACLE数据库和data文件系统都是大容量数据存储的部分,这其中大部分数据访问率较低,因此,这些“冷数据”都会存储到SATA盘上,分别占比为64.7%和74.31%。而每天10时开始FAST VP策略都会主动对这些数据进行调整,经过一段时间的稳定运行,各块占比变化不大。
表2 文件系统在不同种类磁盘中占比
5 结束语
通过对CIMISS业务和存储磁盘的IO进行分析,得出CIMISS业务中的数据以海量小文件为主,系统的随机IO量大,业务对随机IO能力要求高。run文件系统对性能要求最高,业务模式和容量相对固定;data文件系统和ORACLE数据库部分对容量有较大需求,也属于IOPS密集型的业务模式。依据分析,配置新的存储,采用双控制器并配置32 GB的高速缓存,对IOPS密集型应用提供最大程度的支持。同时,采用大容量磁盘和SSD/Flash,SAS等高性能磁盘相结合的使用方式,既满足容量的需求也满足性能的要求。利用存储FAST VP的软件功能,实现数据动态分层管理,盘阵上的“冷热”数据自动迁移,充分利用高速驱动器的性能。
CIMISS系统的技术架构需要与未来气象云的架构对接,本次CIMISS存储系统的升级采用扩展性良好的存储技术,方案采用了新一代SAN存储技术。由于在存储虚拟化等方面有了较大改进,它将成为气象行业向未来气象云技术体系架构过渡的重要组成部分,同时也将是云存储中支持关键业务和高性能IO应用的核心元素,采用新一代SAN存储方案并结合必要的存储软件将能够保证CIMISS系统顺利过渡到气象云存储框架。