APP下载

杜比播放服务器日志原理及分析方法的探究

2020-06-15

现代电影技术 2020年5期
关键词:日志硬盘服务器

许 鹏

(杜比实验室国际技术服务 (上海)有限公司,上海200030)

众所周知,数字电影播放服务器是以传统计算机硬件架构所组成的,运行在Linux操作系统上,符合DCI规范的专用电影播放服务器。在实际使用中若播放服务器出现故障,如何快速准确地定位故障,找到故障根本原因,除了使用排除法、替换法、比较法等常规故障排摸方法,熟练掌握播放服务器日志分析法这一技能将事半功倍。

播放服务器系统日志是指播放服务器在运行过程中产生的事件记录。这些记录被系统程序收集归档并存放到文件中,生成系统日志文件。日志文件详细记载着所发生事件的类型、时间、相关进程、操作描述及信息级别。数字电影播放服务器日志不仅有常规的操作系统日志,比如系统内核 (kernel)日志,网络服务日志 (Apache)等,还包含了多个专用的设备日志,如播放日志、安全管理器日志等全面记录播放服务器的历史事件。显然,日志中包含了很多有用的信息和线索,通过查看日志可大体掌握设备的配置信息、历史事件、维护状态和告警及错误消息,有利于快速判断故障。虽然日志分析很有用,但是日志中信息量巨大,学习掌握难度也大。如要在巨量的数据中提取有用的信息,必须拥有扎实的基础知识并掌握一些实用的技巧。如果没有掌握有效的方法和知识的积累,那么只会在信息的海洋中迷失,从而无功而返。

1 播放服务器日志的结构和相关原理

首先,最重要的是了解播放服务器日志的结构和相关原理,以下以杜比服务器Show Vault的日志为例作具体说明。如图1所示。

图1 杜比服务器Show Vault的日志

下载的杜比播放服务器日志是一个以.tgz扩展名结尾的压缩文件,例如drmreport_230068_2019_10_05.tgz。从命名中可以得知该播放服务器的媒体模块序列号为230068,日志获取的时间为2019年10月5日。当解压缩该文件后,会得到另外两个压缩文件drmreport.tgz和sbcreport.tgz,还有一个重要的文本文件drmreport.txt。当在用户界面点击下载播放服务器日志时,系统会在后台执行多个命令,并把这些指令和运行结果存放到这个日志文件中。因此可以把drmreport.txt看作为播放服务器的系统报告,里面包含了软件版本、安全时钟、磁盘阵列、硬盘信息、网络信息等诸多内容,非常重要。当再次解压缩drmreport.tgz文件,进入/doremi/log目录中,会发现大量带有后缀名为.log的文件。这就是播放服务器的设备日志,其总体数量在120个左右,每个日志文件记录着不同软件子系统的事件信息。由此可见,杜比播放服务器根据软件子系统的功能将日志文件分门别类列出,不仅数量多,而且信息量大。必须搞清楚主要日志文件的功能属性和工作原理,避免大海捞针,才能有的放矢地去正确的位置寻找线索。表1挑出了重要的日志文件做简要说明。

表1 重要日志文件的简要说明

例如,通过bootseq.log 日志可检查用户非法关机的行为。当发现日志中每天都重复出现“[WARNG]:boot sequence-check:Invalid boot sequence detected”这条记录时,可明确判定用户是否按照正常流程关闭服务器,因此当下一次开机时,系统会在日志中自动记录非法关机的行为。这类操作的不良后果可能会导致系统文件丢失甚至操作系统崩溃,需及时提醒用户改变操作习惯,防范于未然。又如,drm_errorsummary.log收集了播放服务器历史上所有的错误时间,并做了故障归类。分析日志时应优先打开该日志,快速掌握全局情况,再到相关日志中查找线索,验证细节。这样可大量节约时间,提高效率。

2 播放服务器日志分析

了解日志文件的结构和其功能属性后,还需要结合计算机、英语等综合知识,才能更好地理解并分析日志。笔者根据自身经验总结了6条经验法则以供参考:

(1)日志分析应具备良好英语能力和Linux系统知识

日志的语言环境是英语,虽然每条日志不长,语法不难,但是需要掌握大量的英语专业词汇,理解其特殊的含义,这是读懂日志的基础。例如,杜比播放服务器日志中有一个频繁出现的单词是“Dolphin”,普通意译为 “海豚”,在播放服务器环境中它是媒体模块的代号。其次,还要掌握Linux系统的相关知识,包括Linux文件和目录、操作指令等。

上述提到的drmreport.txt文件里包含了大量在系统生成日志时执行的指令和返回的结果。了解这些指令的意义,可直接判断该子模块的状态。例如:其中一条命令为 “cat/etc/timezone”,返回结果为 “Asia/Shanghai”,便可得知服务器所在的时区。

(2)日志分析应具备较强的逻辑推理能力

日志文件是由大量的信息所组成的,有用的信息可能散布在一个或多个不同的文件中。这就需要我们有较强的逻辑推理能力,根据故障发生的时间节点,在不同日志文件中找寻线索,反复比对在该时间点所发生的事件,串联起来推理问题,综合判断故障的原因。

(3)善于查找关键词

所谓关键词是指日志中频繁出现并赋有特殊意义的英语单词,它们的反复出现往往暗示着故障已经发生。善于利用关键词的查找,无疑是日志初学者快速定位故障的捷径。例如关键词 “underflow”表示数据溢出,可能是硬盘或节目包的问题。又如“decoder crash”表示出现了解码错误,故障大多与媒体模块IMB板有关。通过搜索关键词,可节省大量时间,快速找到相关线索。

(4)运用合适的工具能事半功倍

日志文件的内容大多是可读的本文,如果直接用windows自带的记事本打开的话,所显示的日志会是杂乱无章,看得人一头雾水。建议大家使用notepad++或UltraEdit打开日志文件,这类软件会将每条日志有序排列,并标注行号,这样可以一目了然获取每行日志的时间、信息级别、相关程序及事件描述等信息。另外,还可以运用软件的高级搜索、关键字标记、双屏阅读等功能提高日志的可读性。其次,还应该充分利用每家设备厂商的定制化日志分析软件和工具。杜比播放服务器使用的是在线日志分析网站,用户可以将日志上传到网站,系统会自动分析日志后,详细列出播放服务器的基本信息,警告和故障条目,并逐一给出故障解决方案。

(5)日志不是万能的,不是所有问题都记录

这是初学日志分析需要注意的地方,日志中不会包含所有的信息,也不会记录所有的问题。比如杜比播放服务器电源发生故障,是不会记录在任何日志中。又如,当影厅内出现杂音的情况,由于播放服务器不能对音频信号输出做监控和检查,日志中自然不会记录这类故障。日志分析只是故障判断的一个辅助手段,大多时候很有用,但也不是万能的。

(6)部分日志是研发代码和机器语言,不要奢望完全读懂日志

当读取日志文件时,总会发现一些令人百思不得其解的专业代码和机器语言,这是很正常的。除非你参与了整个产品的研发过程,否则很难面面俱到,从头到尾弄清楚每一行日志的含义。运用日志分析的目的,在于从信息的海洋中找到有效、易懂的信息,来辅助判断问题。只要能够掌握大部分有用的信息,并理解它表示的含义,同样的可达到较好的效果,而不必过分咬文嚼字,纠结于细节。

3 案例说明

下面通过三个实际案例来更好地说明如果利用日志来查找线索,分析故障可能发生的原因。

案例1:Show Vault播放服务器放映中频繁出现卡顿的故障现象

根据此现象,不难判断出是由播放服务器磁盘阵列中的一块或多块硬盘或媒体模块解码故障所引起的。首先,解压缩日志后打开rm_errorsummary.log,该日志的功能是收集所有子系统的错误日志并归档列出。在这个案例中,日志里列出了大量有关硬盘的错误记录如图2所示。

图2 硬盘报警日志

md0是存储节目的系统分区,SDC和ata3都对应于第三块硬盘,从中看出该硬盘发生了大量的读写错误,并被系统标记为媒体错误。随后,再打开关于硬盘状态的drmreport.log去找寻更多的线索。搜索关键词mdstat可快速定位磁盘阵列和硬盘状态的相关信息如图3和图4所示。

图3 磁盘阵列状态

md1的标记符 [4/3][UU_U]表示了拥有4块硬盘的磁盘阵列系统已经处于降低运行,第三块硬盘SDC已经被磁盘阵列移除。

图4 硬盘SMART 信息

随后进一步检查第三块硬盘的SMART 值,其中1、5、197项的数值显示异常,远超出标准范围,表明该硬盘有存在大量底层读写错误和重新分配的扇区数,已无法自行修复,必须及时更换。

最后,可以打开播放日志odeticsd.log,从中搜索关键词underflow,匹配出多个错误记录,同时显示了当时所播放的节目信息。如图5所示。

图5 odeticsd日志

由此可见,经过多个日志的验证和分析,可以准确地定位到第三块硬盘是发生卡片故障的根本原因。考虑到硬盘故障可能是隐形的,即图形界面中不告警,状态指示灯仍有可能是绿色,因此通过日志来判断无疑更加直观准确。

案例2:Show Vault播放服务器放映中图像异常

与图像有关的问题应先定位故障的源头是放映机还是播放服务器,可通过检查放映机通道设置并播放放映机内部测试图来检查。如果排除了放映机的嫌疑,仍有条纹或闪烁这类故障现象,应重点考虑播放服务器的解码部分。同样先打开drm_errorsummary.log,可以发现日志里出现了大量从kernel.log收集到的解码错误 (Decoders Crashed)如图6所示。

图6 Kernel日志

图7 odeticsd日志

其次,查看odestic.log 日志,发现负责解码dolphin子系统有连接超时和传输数据的错误,进一步证实了故障源于解码部分,即媒体模块IMB 板。另外,odestic.log日志完整记录每场电影播放的事件,对于偶发性故障,应在日志中重点检查影院所反馈的故障时间点,从而有效地缩小检索范围,准确定位故障。如图7所示。

因此,可以刷新或升级媒体模块的固件来进一步观察故障是否解决,如故障仍然存在,需更换IMB板块。

案例3:Show Vault播放服务器无法正常播放节目,显示不能加载播放列表

通常此类故障,在图像化界面提示的信息较少,且涉及到的故障可能较多,很难快速做出判断,日志分析是一个很好的手段。

首先,打开drm _errorsummary.log,发现安全管理器SM 的版本显示为丢失,根据DCI规范,当播放服务器的SMS子系统无法与安全管理器SM连接的情况下,是无法加载播放列表和播放电影。如图8所示。

图8 服务器型号和版本信息

其次,逐一检查与加载播放列表有关的日志文件odestc.log 和drmplaylistd.log 这两个日志。发现这两个日志中都存在相关错误,特别是在drmplaylistd.log中更为明显,显示播放服务器反复启动却始终无法连接到安全管理器。如图9所示。

图9 drmplaylistd日志

因此,故障解决的思路是检查IMB板与放映机之间的网络通信,应通过排查网络中的设备,包括网线、交换机、放映机的控制板及IMB板来定位故障。

通过以上案例分析,可以看出日志分析绝非易事,它不仅需要有良好的英语基础,而且要对设备的工作原理和各个子系统熟练掌握,才能成功地在大量的数据中找到线索,并结合对设备的硬件和软件的理解,最终定位故障。

总而言之,日志分析应遵循从易到难,简单的可通过关键词搜索,复杂的情况需根据故障发生的时间点,反复对比不同的日志,从而找到有价值的线索和关键突破点。希望通过此文能抛砖引玉,提供对播放服务器日志分析的思路和方法,帮助影院技术人员从中收获启发,并举一反三,掌握好这个故障诊断的利器。

注释

①杜比公司于2014年收购Doremi公司并延用Doremi的核心技术,本文提到的Show Vault服务器现为杜比公司所有。

② 杜 比 日 志 在 线 分 析 网 站 www.http ://loganalyzer.dolbycustomer.com/,用户可上传日志文件做在线分析。

③S.M.A.R.T.全称为 “Self-Monitoring Analysis and Reporting Technology”,即 “自我监测、分析及报告技术”,是一种自动的硬盘状态检测与预警系统和规范。

猜你喜欢

日志硬盘服务器
PCle 4.0平台的性价比之选!WD_BLACK SN770固态硬盘
一名老党员的工作日志
读扶贫日志
雅皮的心情日志
2018年全球服务器市场将保持温和增长
雅皮的心情日志
插拔硬盘所引起的硬盘启动顺序更改
用独立服务器的站长注意了
定位中高端 惠普8路服务器重装上阵