2024年4月19日发(作者:)

维普资讯

第26卷第4期 

核电子学与探测技术 

Vok 26 No.4 

2006年7月 

Nuclear Electronics 8L Detection Technology 

July 2006 

海量存储系统中磁带文件缓存管理 

程耀东,马 楠,于传松,陈 刚 

(中国科学院高能物理研究所计算中心,北京100049) 

摘要:针对磁带库的数据访问特点,根据高能物理领域的实际需求,提出了分组协同缓存策略。这 

策略以缓存模型为基础,结合本地缓存与协同缓存的优点,把缓冲区分成不同的组,不同组的缓冲区 

之间相互独立;同一组的缓冲区由网络上不同节点上的磁盘组成,这些磁盘之间相互协作。还对该缓存 

策略的目录管理、更新算法、一致性等问题进行了详细分析。实验说明,该策略能很好的满足高能物理 

领域的数据处理和海量存储需求。 

关键词:海量存储;磁带库;缓存管理;分组协同缓存 

中图分类号:TP333 文献标识码:A 文章编号:0258-0934(2006)04--0438--05 

新一代高能物理实验将产生越来越多的数 

统结构、工作流程、缓存目录管理、缓存更新算 

据。对于很多大型实验,仅一个实验,每年就能 

法、缓存一致性等。最后介绍了实验环境和相 

产生几百TB甚至几PB的数据。对于如此巨 关的实验结果。 

大的数据量,同时考虑到交换、长期保存等因 

素,全部使用磁盘存储是不够的,而具有容量 

1相关研究 

大、成本低、可靠性高、保存时间长以及交换方 

1.1缓存模型 

便等特点的磁带成为海量存储系统中必不可缺 通过对文件访问的大量观察和研究,人们 

少的选择。但是,磁带是顺序读写设备,使用起 

发现文件访问的随机请求分布符合齐普夫定 

来非常不便;磁带库操作主要依赖于物理运动, 

律。这里假设缓存收到了一系列的文件访问请 

速度慢。而海量存储系统需要将磁盘、磁带等 

求。N表示访问的总文件数,所有的文件按照 

存储资源整合起来,向用户提供全局统一的、可 

访问的频度依次排列, 一1,2,3…N。e表示 

以随机访问存储空间。其中,磁带文件在磁盘 

分布的偏斜度,则文件i的存取概率PN( )满 

上的缓存管理非常关键。因为磁盘缓存是连接 

足以下条件[ : 

物理操作和用户使用的桥梁,必须要能同时满 

PN( )一(黑,

足磁带库存储和用户使用的特点。为此,本文 

‘ 

 

提出了分组协同缓存策略。 

, 1、一 

其中n一( 、 

本文首先介绍了缓存模型和传统的缓存策 

=1

南),

‘ 

1 i N 

略等相关研究。然后提出适合磁带库虚拟化的 

当0=0时,则是标准的齐普夫分布,具有 

分组协同缓存模型,并详细介绍了该策略的系 

80/20负载偏斜原则,即系统8O 的请求涉及 

2O 的数据。当0>0时, 越大,偏斜度就越 

高,8O 的请求涉及小于2O 9/5的数据。由此可 

收稿日期:2005-02—28 

知,只要在磁盘上缓存最经常访问的2O 的数 

作者简介:程耀东(1977一),河南人,博士研究生,计 

据,则缓存的命中率就可以达到8O 。 

算机网络技术研究与应用研究 

1.2本地缓存与协同缓存策略 

438 

维普资讯

在计算机系统中,缓存是以空间换性能的 

种重要方法。在磁带库虚拟化中,磁带文件 

在磁盘上的缓存是把顺序读写的磁带映射成随 

机读写存储空间的关键。磁盘上的缓存可以有 

多种组织形式,这里首先讨论一下客户端本地 

缓存和协同缓存策略。 

客户端本地缓存的基本思想就是把磁带上 

的文件缓存到客户端的本地磁盘上。这种缓存 

策略算法简单,容易实现,应用广泛,但却不适 

合海量存储中的磁带库虚拟化。首先,根据齐 

普夫分布公式,要想达到比较理想的缓存性能, 

需要缓存最经常访问的2O 的数据。磁带库 

中磁带数目多,存储容量大,因此需要客户端的 

本地磁盘缓存也要很大。但是,客户端的本地 

磁盘空间一般在几十个GB左右,不能满足缓 

存性能要求。其次,由于磁带库虚拟化中,缓存 

的粒度大(一般以文件为单位),当缓存空间太 

小时,可能无法缓存所有同时要访问的文件。 

这不仅仅是性能问题,还可能导致虚拟化失败。 

本地缓存策略还不利于利用各个客户端上空闲 

的磁盘空间。 

协同缓存技术最初是在基于Client/SeI'ver 

体系结构的分布式文件系统背景下提出来的, 

旨在利用多个客户机的空闲内存来构建一个较 

大的、可共享的协同缓存,以减轻服务器的负 

担。比如,UC Berkeley的xFSE。]系统中,就采 

用了这种技术,称之为N.Charlce算法。采用 

N-Chance算法后,能使访问磁盘的次数减少 

5O ,同时响应时间缩短了73 . 

在海量存储系统中,由于磁带文件所需缓 

存空间较大,需要把多台机器上的磁盘联合起 

来,构成一个很大的缓冲池,向所有的用户提供 

文件访问服务,这可以称为磁盘协同缓存技术。 

当网络的范围比较大(比如大规模的校园网), 

必须有新的缓存策略来解决这些问题。本文提 

出了分组协同缓存策略,以下部分将对其进行 

详细论述。 

2分组协同缓存策略 

2.1系统结构 

分组协同缓存策略的基本思想是把整个缓 

存分成不同的组,每一组称为组缓存;不同的组 

缓存之间相互独立;每个组缓存由网络中不同 

节点上的磁盘组成,这些磁盘相互协同;把用户 

分成不同的组,不同的组对应不同组缓存。实 

际上,同一实验组的用户,通常位于同一子网, 

经常访问的文件的也基本相同。因此,可以给 

同一实验组的用户分配一个组缓存,本组经常 

访问的文件可以缓存在一个组缓存中。只要文 

件被一个用户访问过,同组的其他的用户就可 

以在该组缓存中访问它,而不必要再通过网络 

传输。这大大减轻了主干网的压力,同时也提 

高了数据的访问效率。不同的实验组的用户很 

少访问相同的文件,因此可以给他们分配不同 

的组缓存,组缓存之间相互独立,减轻了缓存管 

理的额外开销。 

分组协同缓存策略的系统结构如图1所 

示。该系统主要由物理磁带库、组缓存、元数据 

服务器(MetaData Server)等组成。所有的组 

件,包括用户组,都连接在网络上。组缓存可以 

有多个,一般不在同一子网中。用户可以连接 

到任意一个组缓存上,但为了提高整个缓存的 

性能,用户应该连接到与它最近的组缓存上。 

用户在某一时刻,只能连接到一个指定的组缓 

存上,这个组缓存称为本地组缓存。理论上,组 

缓存可以由网络上任意的一系列磁盘组成,但 

实际上这些磁盘尽量要在同一子网上。元数据 

服务器只有一个,记录了磁带文件的一些属性, 

比如文件的磁带文件名、大小、属主、创建时间、 

修改时间、在磁带上的存储位置等。 

图1分组协同缦存策略的系统结构 

下面证明此策略优于不分组策略。假设系 

统中有 组用户,对应于 个组缓存,每个组缓 

存由在同一子网的磁盘组成。假设某用户a访 

问某一文件的频率函数为厂(口),并且假设此文 

件的大小为L。如果不分组,此文件可能缓存 

到任一子网的磁盘缓存上,概率为1/n,那么通 

439 

维普资讯

过主干网络的数据传输量一L+E(n一1)/"3L 

(厂(口)一1)。如果使用分组策略,则主干网络 

的传输量为L。显然,当厂(口)≥1时,使用分组 

策略的主干网络传输量比不使用分组策略时 

小,对主干网络的带宽压力小。主干网络传输 

量效能: 一不分组策略主干网传输量/分组策 

存中存在该文件且缓存有效,就通过网络把该 

文件传输到本地的组缓存中。如果在所有的组 

缓存中找不到该文件,就从元数据服务器上读 

出该文件在磁带库中的位置(比如磁带的卷号、 

在磁带上的序号等),然后从磁带上读取该文 

件,写到本地的组缓存中。从基本工作流程可 

以看出,打开文件操作最终打开的是磁盘缓存 

文件,因此对于磁带文件的顺序读写就转化成 

对磁盘文件的随机读写了。 

2.3缓存目录管理 

~ 

略主干网传输量一1+[(尢一1)/尢][厂(口)一13。 

显然,文件访问频率厂(口)越高,用户组尢 

越多, 就越大,主干网络传输量效能就越高, 

说明分组策略的优势就越明显。仿真实验数据 

(图2)也验证了这一点。 

在磁带库虚拟化中,磁盘缓存的粒度以文 

件为单位。缓存文件的属性、状态等信息记录 

在缓存目录中。每一个组缓存都有自己的缓存 

目录,不同的组缓存目录相互独立。缓存目录 

的主要数据结构如下: 

struct b ̄caLentry{ 

_

避 

嵌 

臻 

匮 

signed64size/*文件大小*/ 

char ipath[(MAXPATHLEN)+13; 

/*内部文件名*/ 

图2主干网传输效能 

char group[-MAXGRPNAMELEN+1]; 

char user ̄MAXUSRNAMELEN+13 I 

uid_tuid 

gid_tgid 

modetmask 

_

2.2基本工作流程 

用户要访问某个磁带文件时,必须要先打 

开这个文件。打开文件的过程如图3所示。 

从元敦据 

服务器上 

读取该文 

int reqid ̄/*缓存文件的请求号*/ 

int status/*状态*/ 

time

t c

_

_

件芷融带 

上的位置 

time;/*创建时间*/ 

土墨 

读取该文件.传 

输刭本地组埋存 

从磁带上 

读取该文 

time_t a.time/*访问时间*/ 

time_tm_time ̄/*修改时间*/ 

char xflfe["(MAXPATHLEN)+1] 

/*外部文件名*/ 

}; 

件.传输 

报错 

到本地组 

缓存 

图3基本工作流程 

其中,ipath(内部文件名)是指缓存文件的 

物理位置,由所在的机器名、文件名以及请求号 

组成,比如testhostl:/datal/a.txt.reqid。 

打开文件时,首先在元数据服务器上检查 

该文件是否存在。如果这个文件不存在,并且 

reqid(请求号)代表缓存文件在该缓存中的请 

求序号。每当增加一个缓存文件时,请求号就 

加1。缓存文件的状态分为:正在调入、正在换 

出、等待写磁带、写磁带成功、写磁带失败、无效 

是以“读”方式打开,就报告该文件不存在。如 

果以“写”方式打开,则在本地的组缓存中创建 

文件。如果元数据服务器上已经存在该文件, 

就需要检查本地的组缓存中是否存在该文件。 

如果存在,检查缓存文件是否有效。如果有效, 

就打开该缓存文件。如果本地组缓存中不存在 

该文件,或者缓存文件无效,就检查在其他的组 

缓存中是否存在该文件。如果找到某一个组缓 

等。)【file(外部文件名)是指在元数据服务器上 

的文件名,就是磁带文件名。事实上,检查某个 

磁带文件是否在缓存中,就是检查缓存文件的 

外部文件名是否等于该磁带文件名。 

2.4更新策略 

当一个缓存文件被修改以后,内容与磁带 

维普资讯

上的原本出现了不一致,需要更新。用修改后 

的数据替换原本的策略对系统性能和可靠性有 

关键的影响。传统的更新策略有立即写和延迟 

写 s一。对于立即写策略,一旦缓存文件被修改, 

立刻把更新的数据写到磁带上。因为磁带顺序 

读写的特性,不能对原来的文件进行直接的插 

入或者部分修改,只能重新写一份。这样一来, 

对于每次修改,机械手都需要抓带、定位、写数 

据等操作,耗费时间长。由于每次修改,哪怕是 

对文件的部分修改,都要在磁带上写一份新文 

件,浪费了存储空间。 

对于延迟写,比较重要的一点是写原本的 

时机,即什么时候回写。这里,设置了一个时间 

和回写的阈值。每隔这段设定的时间,就对缓 

存目录进行一遍扫描,对于需要回写的文件,建 

立一个回写列表。扫描完成后,把这个列表中 

所有的文件的大小加起来,判断是否超过回写 

的阈值。如果超过阈值,就开始回写。如果没 

有超过阈值,就释放回写列表,等待下一次的扫 

描。通过对于扫描时间和阈值的设置,大大降 

低了写磁带的次数,提高磁带存储空间的利用 

率。 

当访问的文件不在缓存中,且缓存没有剩 

余空间时,就需要进行缓存置换。由于缓存以 

文件为单位,且高能物理中的数据文件都比较 

大(一般是几百兆字节),因此进行缓存置换的 

代价比较高。为了避免置换操作经常发生,引 

入了“水位(threshold)”的概念,用来表示缓存 

使用率。这里设置了三个水位,低水位H 、回 

写水位H2、回收空间水位H3,且H1<H2< 

Hs。当缓存的使用率到达回写水位Hz时,就 

自动的进行缓存文件的扫描与回写,而不管是 

否到了前面所设置的扫描时间和回写阈值。当 

缓存的使用率到达回收空间水位Hs时,就自 

动的进行缓存空间回收。根据LFU算法[4](最 

久没有使用算法:Least Frequently Used algo— 

rithm),选择出最久没有使用的且已经写到磁 

带的缓存文件进行删除,一直到低水位H 时 

停止。这样就保证了缓存中总有一定的空闲空 

间。明显地,设置“水位”降低了缓存利用率,但 

同换取的性能相比,是值得的。 

2.5缓存一致性 

同一个文件在不同的组缓存中,可能有多 

个副本。当其中一个副本被修改时,就可能发 

生缓存一致性问题。有两种情况,一种是副本 

之间的不一致,另一种是副本和原本之间的不 

致。对于副本之间的一致性问题用时间戳 

(timestamp)来解决。当客户端访问某一缓存 

文件时,首先检查缓存目录中的修改时间是否 

与元数据服务器中的修改时间一致。如果一 

致,认为缓存有效。如果不一致,认为缓存失 

效,并检查所有的组缓存,读取其中有效的缓 

存。如果没有找到合适的缓存文件,就读取磁 

带上的原本。当缓存文件修改成功后,就立即 

更新元数据服务器中的修改时间字段。 

由于磁带是顺序读写设备,在原来数据的 

基础上进行插入、修改等操作非常困难。因此, 

采用“缓存一旦修改、立即删除原本”的策略来 

解决副本和原本之间的一致性问题。不管是哪 

个一个组缓存发生了修改,都要清除元数据服 

务器中磁带文件的存储位置。磁带文件的存储 

位置清除以后,就等于删除了原本。因此,在任 

何一个副本修改后,都不再存在原本,从而解决 

了原本与副本的不一致性。由于客户端在读取 

原本之前要检查所有的组缓存,所以客户端总 

能读取到最新的副本。 

3实验环境 

中科院高能物理研究所拥有北京正负电子 

对撞机等大型实验设备,同时还有众多的国际 

合作项目。这些项目产生了大量的实验数据, 

需要具有强大计算能力和海量数据存储能力的 

高性能计算环境[5]。目前,实验环境中使用了 

DellPowerVault 136T自动磁带库,采用 

CERN的CASTOR ̄。]存储管理软件,在部署的 

过程中应用了本文的分组协同缓存策略。把 

CASTOR stager配置成组缓存。为了监控和 

统计缓存以及磁带库的操作,使用了CEI 新 

开发的监控系统CASTOR monitoring。 

个实际的例子。某实验组有一个由1O 

个计算节点(共2O个CPU)组成的集群计算系 

统,这1O个计算节点上的空闲磁盘共同组成了 

个组缓存,大小为300GB。这些计算节点通 

过Matrix E5交换机同磁带服务器相连。磁带 

库中给这个实验组分配2个LTO1的磁带驱动 

器。组缓存的时间阈值设为1800s,回写数据 

阈值为15GB。低水位H 、回写水位H2、回收 

空间水位H3分别为7O 、85 、95 。根据监 

44] 

维普资讯

控系统的统计信息,得出如图4所示的结果。 

由图看出,在一般情况下,缓存的使用率在 

8O 左右,当缓慢增加到95 时,自动启动空 

间回收程序,短时间内使缓存使用率降低到 

7O 。在大数据量的导人/导出时,缓存使用率 

在把磁带库从脱机存档的角色逐渐变成在线存 

储设备中的重要一员。在磁带库虚拟化技术 

中,磁盘缓存作为用户访问和磁带操作的桥梁, 

对虚拟化的成功与否以及性能起着至关重要的 

频繁到达95 和回到低水位7O ,造成了缓存 

使用率的“振荡”。缓存大小和各个水位值的设 

置要根据用户实际使用情况做相应的调整,从 

而达到较好的缓存使用效率和性能。 

8O 

作用。针对磁带库的数据访问特点和高能物理 

的实际需求,本文提出了分组协同缓存策略。 

该策略以齐普夫缓存模型为基础,总结了传统 

的本地缓存与协同缓存的优缺点,采用以组为 

单位的缓存策略。测试实验说明,该缓存策略 

能够很好的满足高能物理的计算和存储需求, 

对于磁带库虚拟化技术的进一步研究和应用有 

着十分重要的意义。 

参考文献: 

舔6o 

求 

悔40 

2 

O 

E13陈玉鹏,等.机械手存储库缓存替换算法研究及应 

时问 

用EJ3.计算机工程与应用,2003,39(36):5. 

E2]Anderson T,et a1.Serverless Network File Sys- 

ten ̄s,ACM Transactions on Computer Systems 

100 

鬟9o 

姐80 

7O 

(TOCS),1996,14(1):41. 

[33徐高潮,等.分布计算系统EM3.北京:高等教育出 

版社,2004:290. 

时问 

6O 

E4]郑纬民,等.计算机系统结构EM3.北京:清华大学 

出版社,1998:164. 

图4缓存使用情况统计 

Es3Dajin aYang,et a1.Building an Advanced Compu- 

4总结 

由于数据量的急剧增加,仅磁盘已不能满 

足巨大的在线存储要求,磁带库虚拟化技术正 

tir Environment with SAN Support E c3//Pro. 

 ̄lings of Computing in High Energy Physics. 

Beijing,September 3-7th,2oo1:333. 

E63 CA 、0R web page:http://castor.weh cer/ ̄ch/ 

Cache management of tape files in mfte.,s storage system 

CHENG Yao-dong,MA Nan,YU Chuan-song,,CHEN Gang 

(Computing Center of IHEP,CAS,Beiii ̄g 100049,China) 

Abstr ̄t This paper proposes the group-cooperative caching policy accordingto the characteristics of 

tapes and requirements of igh henergy physics domain.This policy integrates the advantages of traditional 

local caching and cooperative achicng on basis of cache model It divides cache into independent roups;g 

the SalTte group of cache is made of cooperatig nisks on dnetwork.This paper also analyzes the directory 

management,update algorithm nd cache aconsistency of the policy.The experiment shows the policy can 

meet the requirements of atda processig nnd mass staorage in igh energy hphysics domain very welL 

Key words:IDAISS storage;tape library;group-oopcerative caching;cache oncsistency 

442