海量异构存储文件系统管理新技术研究与应用
2023-12-16王景德付喜春陈建宁李克臣
王景德,付喜春,董 一,陈建宁,李克臣
(东方地球物理勘探有限责任公司大庆物探研究院 黑龙江 大庆 163357)
0 引 言
在一个大规模数据中心,有4套PC集群系统(726个运算节点),配置了45套不同厂家、多种架构的异构存储系统,总物理容量18PB,划分了150个数据文件系统。根据地震资料处理解释应用软件的实际需要,每个运算节点都需要挂载100个以上的文件系统,全部节点挂载文件系统总量达到数万个。在实际生产中,集群运算节点必须挂载生产项目需要的全部文件系统才能够正常运行作业。而节点本身的存储容量远远无法满足工作需求,需要将高性能、大容量外部存储的文件系统作为本地磁盘使用,才能保障节点访问到所需的项目数据。当部分运算节点无法正常访问文件系统时,便会影响全局的并行作业进度。用户分发作业前查询所需要的文件系统如果没有全部挂载,就无法正常读写地震数据导致作业运行失败。因此,集群运算节点文件系统的高效、及时、准确挂载,对地震资料处理解释生产的影响巨大。对于集群节点文件系统挂载在日常运维管理方面存在以下问题:
1)在集群管理中,超级用户的正确使用是保证系统安全的非常重要的因素。而传统模式存储文件系统的挂载需要超级用户的权限完成,使系统安全存在不可预知的风险。
2)对于不同厂家、多种架构的异构存储文件系统,在集群节点上的挂载方式、命令和服务器地址均不相同,系统运维管理人员需要正确记忆大量的信息,才能快速完成海量文件系统挂载工作。
3)传统方式需手动输入与各个文件系统匹配的命令完成挂载,速度慢且容易出现错误,很大程度影响生产工作效率。
针对海量异构存储文件系统挂载存在的技术问题,通过对系统级优化、文件系统管理、文件系统查询3个方面进行技术研究,研发存储文件系统管理新技术,大幅度提高生产工作效率。
1 系统级优化
面对多套大规模PC集群系统,对于系统运维管理人员来说保证系统的安全和稳定是工作的重中之重[1],因此对文件系统管理的技术研究要在系统安全稳定的前提下进行。传统模式文件系统的挂载和卸载,必须使用超级用户的权限才能进行,而频繁的使用超级用户工作,使系统安全存在不可预知的风险[2]。通过系统配置优化,实现普通用户拥有超级用户的部分功能,替代完成文件系统挂载、卸载等工作。
sudo是一个允许普通用户执行部分或者全部超级用户命令的工具[3]。对sudo工具相应的配置文件进行优化,设定指定的普通用户获得超级用户才能够进行的挂载、卸载文件系统的权限[4]。
通过对/etc/sudoers文件进行配置优化,设定系统运维管理人员获取特定的超级用户权限,实现普通用户可以创建和删除目录,使用挂载、卸载命令对文件系统科学管理,最大程度保证系统的安全性和稳定性[5]。
2 文件系统管理软件的研发
面对数据中心多套集群、多节点、多存储文件系统的现状,不同架构、不同类型的异构存储文件系统挂载方式、命令以及挂载服务器IP地址均不相同,需要运维管理人员手动输入与各个文件系统匹配的挂载命令。4套集群按照每个运算节点平均挂载120个文件系统计算,使用传统方式手动批量挂载全部文件系统大约需要3小时。而且还需要详细准确了解文件系统匹配的挂载服务器IP地址、挂载命令才能正确执行。完成这项工作占用了大量的系统时间,还容易产生人为错误[6]。
此外,个别集群运算节点在重新启动后,需要恢复启动前挂载的全部文件系统才能交付用户使用,而单独节点通过命令行手动挂载全部文件系统所需工作量和时间,与整套集群的挂载基本相同。文件系统挂载速度决定了用户的工作效率。因此,针对这些问题开发了文件系统管理软件fsmgr(以下简称fsmgr软件)。
2.1 fsmgr软件开发技术
fsmgr软件使用shell语言开发。为了提高软件的可读性和易修改性[7],编写了多个具有不同功能的子程序脚本文件,通过主程序软件fsmgr对子程序脚本的调用,实现软件的全部功能[8]。同时由于每套集群都有各自的管理节点、计算节点、IO节点,每套集群安装的软件、使用的用户也各不相同,因此针对不同集群的存储系统,开发了相应的fsmgr软件和子程序脚本文件。
2.2 子程序脚本文件的开发
基于fsmgr软件,开发了两类子程序脚本文件,分别是运维管理账号脚本文件和文件系统挂载命令脚本文件(简称“mtfs”)。在运维管理账号脚本文件中,添加允许使用fsmgr管理软件的普通用户账号,以此规范使用该软件的用户。在“mtfs”脚本文件中,记录当前全部文件系统的名称和挂载命令。通过此脚本进行文件系统挂载,无需记住相应的挂载命令及文件系统对应的服务器IP地址,并且当有新增文件系统需要挂载时,只需要在“mtfs”脚本中新增对应的文件系统名称和挂载命令,即可实现动态、高效的统一管理存储文件系统[9]。
2.3 fsmgr主程序软件开发
fsmgr主程序软件由三部分功能组成:①运算节点关机之前记录所挂载的文件系统信息;②开机后对要挂载的文件系统进行恢复;③完成日常工作中的文件系统挂载任务。fsmgr工作原理如图1所示。
图1 文件系统管理软件fsmgr功能框图
使用fsmgr软件时首先判断当前用户是否为运维管理账号脚本中定义的用户,如果不是则提示无权限使用。针对fsmgr软件的3种功能,编程设计了相应的3个参数选项:-b、-r、-m。执行“fsmgr -b”命令,在运算节点关机之前对所挂载的文件系统进行记录,获取需要备份的节点挂载的所有文件系统名称,并将获得的文件系统名称保存在“fsnamelist.XXX”的文件中;执行“fsmgr -r”命令,开机后对要挂载的文件系统进行恢复,读取之前保存的备份文件“fsnamelist.XXX”,再调用子程序脚本“mtfs”自动进行节点上文件系统的挂载;执行“fsmgr -m”命令,完成日常工作中的文件系统挂载,可以同时对多节点并行操作,输入需要挂载的节点范围、文件系统名称,调用 “mtfs” 脚本文件,在相应节点上完成文件系统的挂载。若使用中未添加参数或参数出现错误,软件将显示相应的提示信息,提示用户进行正确的操作。
3 文件系统挂载查询软件的研发
在实际工作中,经常出现部分运算节点的文件系统没有全部正常挂载的情况,生产用户运行并行作业或者多节点批量提交作业,一旦遇到某个文件系统未挂载的情况,导致作业无法正常运行进而影响全局的并行作业进度。针对这个问题,使用shell语言开发了文件系统挂载查询软件(以下简称fslist软件)。
fslist软件也是基于集群分组编写,与fsmgr软件配合使用。在运维管理账号脚本文件定义的用户使用fslist软件时,可以通过相应的参数,查询节点文件系统状态后直接将缺失的自动挂载[10]。没有定义的其他用户仅可以使用该软件查询指定的文件系统是否全部挂载到相应节点上。
fslist软件为不同的功能设计了相应参数: ①不带参数。获取用户输入的节点组及需要查询的文件系统名称,通过mount命令得到当前节点挂载的所有文件系统信息,查询其中是否包含正在查找的文件系统,若包含则返回“节点名+文件系统名+OK”的信息,若没有则返回“节点名+文件系统名+not mounted”信息。②已定义的运维管理用户,通过-m参数可以在完成上述功能基础上,将缺失的文件系统重新挂载到相应节点上。
4 软件应用
软件开发完成后,对软件进行测试及应用。
4.1 软件应用环境
fsmgr、fslist软件可在安装linux操作系统的集群上免安装使用。目前已应用于数据中心4套PC集群中。
4.2 fsmgr软件应用方法
fsmgr软件主要应用于集群运算节点关机、重启后,应用效果包括:
1)使用运维管理账号输入命令“fsmgr -b node1”,对node1节点当前挂载文件系统信息进行备份,生成fsnamelist.XXX文件,存放节点当前挂载的所有文件系统名称,如图2所示:
图2 运算节点当前已挂载文件系统备份
2)重启node1节点并对该节点挂载文件系统进行恢复时,使用运维管理账号输入命令“fsmgr -r node1”,即可按照备份文件fsnamelist.XXX,恢复挂载。该命令可以同时并行恢复多个节点的文件系统。
3)若需要完成日常工作中的文件系统挂载任务,使用运维管理账号输入命令“fsmgr-m node1-node FS1 FS2”,即可通过fsmgr软件,对node1-nodeX范围的运算节点,自动挂载FS1、FS2等文件系统。
4.3 fslist应用方法
fslist软件主要应用于运算节点挂载文件系统的查询、缺失文件系统的挂载。应用效果包括:
1)输入命令“fslist node1 FS1 FS2”,使用未定义的普通用户检查文件系统挂载情况,效果如图3所示。
图3 普通用户查询文件系统挂载情况
图4 运维管理用户输入文件系统名称查询并挂载文件系统
2)在安装Geoeast软件的集群上,输入命令“fslist-pnode1 projname”,普通用户通过项目名和节点名称,检查每一个运算节点上生产项目需要的文件系统挂载情况。
3)输入命令“fslist-m node1 FS1 FS2”,运维管理用户通过相应参数在查询文件系统挂载情况的同时,将缺失的文件系统重新挂载到运算节点,如4所示;输入命令“fslist-pm node1 projname”,通过项目名查询文件系统并挂载项目需要的文件系统。
4.4 fsmgr软件及fslist软件应用效果
在拥有70节点的曙光集群上对fsmgr软件及fslist软件进行应用及效果检查。
在日常工作中平均每个节点需要挂载120个文件系统,当整个集群关机重启后,用传统方式手动输入120次批量挂载文件系统的命令,大约需要50 min才能完成文件系统挂载,使用fsmgr软件,软件能够自动将所有需要的文件系统挂载到节点上,大约需要6 min。重启一个节点使用传统方式挂载文件系统大约需要30 min,使用fsmgr软件大约需要3 min。
fslist软件在日常工作中使用时能自动地根据文件系统名称、项目名称等方式查询节点上有哪些需要的文件系统未挂载,并将未挂载的文件系统自动挂载到节点上。与传统的用户手动的通过输入大量的命令、文件系统名称来查询再挂载相比极大的提高了工作效率。以查询5个文件系统挂载情况进行测试,使用传统方式查询并挂载文件系统大约需要16 min,使用fslist软件大约需要5 min。
通过大量测试得出结论,在4套集群上使用fsmgr软件挂载文件系统比传统方式提高工作效率约6.4倍,备份、恢复挂载文件系统准确率100%,自动挂载节点文件系统准确率100%。使用fslist软件查询并挂载文件系统比传统方式提高工作效率约2.3倍,自动查询节点漏挂文件系统准确率100%,补挂载文件系统准确率100%。
5 结 论
研发了异构存储文件系统管理新技术,实现了快速、准确、高效地自动批量挂载、查询文件系统,节省了大量的人工操作时间,减少了人为操作失误,为海量异构存储文件系统进行科学统一管理提供了新的技术工具,极大地提高了地震处理解释系统运行效率。新技术方法可在同行业大规模数据中心异构存储文件系统管理中应用,具有非常广阔的前景。