文|谭乐娟 孙天一
随着广电行业信息数字化趋势加快,音视频数字信息量迅猛增长,存储具有长期保存、不可更改、极少访问、规模巨大、动态增长等特点的音视频数据具有重大的社会价值。音视频归档系统自本世纪初的前十年的发展,已经形成了比较成熟的多级存储、层层迁移的系统体系结构,比较成功的解决了海量音视频数据的归档存储问题。
常见的存储介质有磁盘、磁带和光盘三种。磁盘是一种常用的在线存储介质,具有非常好的随机读写性能,读写速度是三者中最快的,但容量较小,价格较高,不易保存,寿命短,耗电,适合存储较小的、访问频繁的数据。磁带技术发展较为成熟,且具有容量大、价格低、寿命长、不易坏、可离线存储等优点,但由于是线性存储的,不适合进行随机读写,因此一般用来存储不经常访问的归档数据。光盘存储也被认为是数据归档的一种手段,其特点是价格低廉,技术含量低,而且便于大范围分发,但其容量无法与磁带和磁盘相比,能够支持的应用也比较受限,因此目前并不适用于企业数据中心级别的数据归档应用。因此,现有的音视频归档系统一般采取在线存储和近线存储相结合的方式,将某些频繁访问的内容和资料存储在在线磁盘或者磁盘阵列上,而访问频率较低但容量较大的内容则存储在磁带库中。
由于磁带的线性存储特性,一般都采取将实体文件和元数据分离的方式来存储。磁带上只存放实体文件,没有文件名称、时间以及目录层次结构等用于描述文件属性的元数据,这使得磁带不具备自描述性。这样,文件在磁带上并不是完整的,它们的元数据必须通过额外的数据库来保存。这种实体文件和元数据分开存储的方式也给磁带的使用带来了很大的不便,用户想要对磁带进行读写,必须通过特定的归档软件进行,不像磁盘和光盘那样可以直接拖拽。而且市场上的归档软件种类繁多,每款软件各自的存储格式都有所不同,彼此间缺乏相互操作性,所产生的元数据信息不能通用,这使得它们之间的信息交换变得非常困难。
为了改变这种情况,研究者们做了很多的尝试。某些备份机制,比如Unix/Linux中的tar文件打包指令,可以建立具有自我描述行的磁带副本,由于tar是公开的标准指令,这就解决了磁带备份缺乏通用性的问题,任何Unix/Linux都可以用tar指令将文件从磁带中解出来。但这种方式没有解决磁带文件不能立即使用的问题。某些厂商曾经推出一些可以让磁带拥有像磁盘一样及时操作功能的软件,如XenData公司的XenData Archive,Qumtum公司的SNSM系统,国内中科大洋公司和索贝数码公司的视频资料库产品。这些产品的基本思路是将磁带文件分割成小块,预先读入硬盘缓冲区,让用户可以无需完整将磁带文件存到硬盘就能用多媒体播放软件直接播放磁带中的视频文件。这种方式虽然一定程度上解决了磁带文件立即使用的问题,但必须在厂商特定的软件下才能生效,不是通用的。真正解决问题的是IBM的LTFS与LTO-5技术。
LTFS(线性磁带文件系统)被公认为是一项会让磁带应用复苏的技术。通过文件树形目录,这种技术首次让用户可以搜索磁带上的信息,搜索磁带的流程和磁盘存储一样。用户可以从一盘LTFS格式的磁带上自由拖放文件,这使得业务流程中整合磁带应用以及简易的长期归档成为可能。
LTO-5磁带格式首次支持LTFS,其支持磁带媒介分区,驱动器可以对每盘磁带写入两个可变长度的分区。一个分区中包含独立的分层文件系统目录,而另一个存放内容。LTFS为管理磁带上的文件提供了一个文件结构类型接口。用户所需做的就是加载磁带到驱动器,数据就可以通过浏览器或磁带相关应用进行访问。
LTFS要求磁带支持双分割区功能,一个数据区(Data Partition)和一个索引区(Index Partition)。数据区中存放了所有的数据内容与元数据,而索引区则存放数据区中数据的附属子集与附加元数据。两个分区共同构成LTFS Volume,每个分区的起始都是用于识别的标签(Label)区段,其后则是存放索引或数据内容的区段,不同区段间则以文件标记(file mark)区隔(图1)。
标签结构存储区由ANSI VOL1标签区和LTFS标签区组成。ANSI VOL1标签区实际上是一个80个字节的长度的有固定格式记录。而LTFS标签区则是一段XML格式的数据。
图1 LTFS格式
标签结构存储区后面是实际内容区域(Content Area),在索引区和数据区的内容区域(Content Area)存储方式存在一些差别。索引区里面存储的是索引结构(Index Construct),其索引结构也是一段XML格式的数据,描述文件的目录结构和存储区块信息。当删除或者更新文件时,由于磁带的线性特性,数据没有实际上被删除或者更新,而是重新生成了一个变化了的索引结构(Index Construct)插入在之前的索引结构(Index Construct)后面。同时,在数据区中也插入了一个同样的索引结构,放在当前数据内容的最后面。
另外,值得注意的是LTFS的索引结构(Index Construct)的XML,提供了扩展属性字段(Extended Attributes),通过利用XML的可扩展特性为LTFS内存储的文件添加更加复杂的描述信息,能够存储UTF格式的字符串和base64编码的二进制数据。如图片1所示。
LTFS除了单磁带机模式外,还有一种小型磁带库模式。当磁带库将其中某卷磁带第一次挂载起来时,LTFS软件会替这卷磁带的LTFS Volume在硬盘上建立一个对应的目标,作为这卷磁带的挂载点,其中含有这卷磁带中的目录和文件结构。日后当这卷磁带卸载后,用户可以依靠保存在硬盘上的目录知道这卷磁带的内容,而不需要实际载入这卷磁带。用户甚至还可以从这个实际上只是索引的目录中打开文件,此时LTFS软件将会通知磁带库将这卷磁带载入到空闲的磁带机中,以便实际读取文件。也就是说,当磁带库中的磁带至少放进磁带机中挂载一次以后,LTFS软件就能对磁带中的文件建立硬盘上的快速索引目录,供日后检索查询使用。
在实际应用中,要让LTFS格式发生效用,必须透过LTFS软件。LTFS软件主要有两个作用:将磁带机中的磁带格式化为LTFS格式,并将LTFS格式磁带挂载到操作系统上,或从操作系统中卸除。
IBM与HP两大LTO磁带机供应商都推出了LTFS软件。LTFS软件主要是通过FUSE(Filesystem in Userspace,用户空间文件系统)来与操作系统整合的(图2)。LTFS软件可通过FUSE将LTFS Volume挂载到操作系统的虚拟文件系统层(VFS),通过VFS层与应用程序通信。当通过LTFS软件将磁带中的LTFS Volume挂载到操作系统上以后,用户就可以将LTFS格式的磁带当成硬盘一样存取,利用资源管理器或者应用程序直接查看或者获取磁带中的文件,此时LTFS格式的磁带就相当于外接的硬盘。当要更换另一盘磁带时,只要用LTFS软件指令将原来磁带从操作系统中卸载,再挂载新的磁带即可。如图2所示。
LTFS软件包括以下几个常用指令:
LtfsCmdDrives:查看驱动器状态,包括盘符、地址、序列号、状态等信息。
LtfsCmdAssign:给LTFS磁带驱动器分配一个盘符。
LtfsCmdLoad:手动加载磁带。
LtfsCmdCheck:校验并修复一个LTFS介质。一般用于磁带状态异常时。
LtfsCmdFormat:格式化磁带为LTFS格式,可在格式化时设置写入索引区的文件规则。
LtfsCmdEject:从驱动器卸载磁带。
LtfsCmdUnassign:释放驱动器的盘符。
通过LTFS软件对磁带进行读写操作的一般步骤如下:
1)使用LtfsCmdDrives查看可用的磁带驱动器。
2)使用LtfsCmdAssign给每个驱动器分配一个盘符。
3)将一个磁带插入驱动器,如果没有设置自动加载磁带,则使用LtfsCmdLoad指令手动加载。
4)使用LtfsCmdDrives命令查看磁带状态。如果磁带还没格式化,则使用LtfsCmdFormat指令格式化磁带;如果磁带处于不正常状态,则使用LtfsCmdCheck指令校验磁带。
5)像普通硬盘一样往磁带读写数据。
6)使用LtfsCmdEject指令卸载磁带。
7)使用LtfsCmdUnassign指令释放驱动器盘符。
图2 LTFS软件与操作系统整合
与传统磁带操作比较,LTFS的优点包括:
更直观的文件和目录结构显示:只要将LTFS格式的磁带挂载到操作系统上,便能通过操作系统的资源管理器将磁带中的文件和目录直接显示在系统桌面上,让用户可更直观地了解磁带中存储的文件。
更方便、快速的文件存取:可通过操作系统的资源管理器,以拖拽的操作方式将文件移出或者存入磁带。
更方便的磁带文件交换与移动:由于磁带文件是以开放规格的LTFS格式写入的,所以无需依赖任何特定的应用程序,只要系统能识别LTFS格式,无论什么平台都能存取LTFS磁带中的文件。
HP和IBM是两家主要的LTFS软件开发商,而LTFS开放式标准为整个LTO联合会所支持。HP在其StoreOpen Automation上支持LTFS,而IBM则在2012年5月在其IBM System Storage LTFS Library Edition中发布支持LTFS的磁带库。其他公司也同样发布了支持LTFS的产品,比如Crossroads发布的StrongBox设备;Cache-A在其旗舰产品Pro-Cache5、Power-Cache和Prime-Cache5支持LTFS功能。此外,Atempo现在使用的Atempo Digital Archive,一种文件归档产品,也全面兼容LTFS平台。
视频归档一般通过磁带库存储不常用的视频资料。由于传统的磁带不具备存储元数据和流媒体的功能,现有的磁带库需要利用数据库和归档软件来实现视频归档,给使用和管理带来了很多不便,也提高了系统建设的成本。特别是在小型视频归档系统中(如“新华08”视频归档系统),更是需要一套更为简单有效的归档解决方案。而LTFS技术正好能满足这样的需求。
图3 “新华08”视频归档系统
据统计,“新华08”的视频资料总数据量约为25T,视频时长约为3100小时。为了帮助“新华08”建立视频资料统一存储归档,并更好地对现有视频资料进行管理,我们建设了“新华08”视频归档系统。该系统能够实现视频资料的(实体文件+元数据文件)入库归档,权限控制,分类浏览,流媒体在线预览,描述信息的检索查询,元数据的编目加工和修改,归档审核等基本功能。系统由非编工作站、工作站、LTO-5磁带机、Lucence检索服务器组成,如图3所示。
工作站上装有LTFS软件,可将磁带机中的LTO-5磁带格式化成LTFS格式,挂载在HP工作站上。通过非编工作站完成编辑的视频文件一般包括高码流文件.mxf,低码流文件.wmv,和元数据文件.xml、.jpg。低码流文件和元数据文件一份放在检索服务器上的数据库,供用户检索用,另一份则和高码流一起通过磁带机存放在LTO-5磁带中。
由 于LTFS提供了索引区和数据区两个部分,系统利用索引区存储数据区中视频的元数据信息和低码流信息,从而去掉了视频磁带归档对数据库的依赖性,使得每一盘磁带成为一个独立的归档单元。在没有数据库的情况下,只需要读取索引区的信息,就能快速得到这盘磁带中的视频信息。另外,由于LTFS可以将磁带像磁盘一样挂载到操作系统中,因此可以像磁盘一样对磁带中的文件进行窗口查看和拖拽操作。
为了实现上述技术,首先用LtfsCmdFormat命令将磁带格式化成LTFS格式,让所有高码流文件存到数据区,所有元数据文件和低码流文件存到索引区。然后将该磁带挂载到HP工作站上,比如L盘。非编工作站归档时,将要归档的文件直接存到L盘即可。
当用户需要获取某个归档视频时,只需要找到该文件所在的磁带,将磁带挂载通过到操作系统中,打开盘符并直接将对应文件拖拽到硬盘上。
当不同的归档系统之间需要进行数据交换时,可以直接以文件为单位进行应用级别的数据交换,也可以复制一份磁带的副本进行物理级别的交换。
LTFS技术是磁带技术的一大革新,索引区的提出解决了实体文件与元数据分离的问题,实现了文件归档的原子操作,使磁带读写不再依赖其他归档软件,便于用户进行数据交换。它将磁带上的数据以文件的形式展现给用户,使得用户可以像磁盘一样对磁带进行拖拽操作,实现了磁带数据的立即可用。
本文对LTFS技术进行了研究,并详细介绍了“新华08”视频归档系统中LTFS技术的应用。该系统将LTO-5磁带格式化成LTFS格式,利用索引区存储元数据文件和低码流文件,数据区存储高码流文件,简化了视频归档操作流程,给归档文件的查找与获取提供了更直观的方式,实现了视频归档的原子操作,解决了磁带的数据交换问题,降低了系统建设的成本。
“新华08”视频归档系统中LTFS的应用是新华社音视频媒资系统扩容改造的一个试点。LTFS作为一个新兴技术,其技术的成熟程度和系统的稳定性还需要进一步实践验证。另外由于LTFS对磁带有了更高的要求,原有的磁带不能支持LTFS,系统的升级也是应用中需要考虑的一个问题。■