(计算机系统结构专业论文)nas系统中卷管理器的研究与实现.pdf_第1页
(计算机系统结构专业论文)nas系统中卷管理器的研究与实现.pdf_第2页
(计算机系统结构专业论文)nas系统中卷管理器的研究与实现.pdf_第3页
(计算机系统结构专业论文)nas系统中卷管理器的研究与实现.pdf_第4页
(计算机系统结构专业论文)nas系统中卷管理器的研究与实现.pdf_第5页
已阅读5页,还剩60页未读 继续免费阅读

(计算机系统结构专业论文)nas系统中卷管理器的研究与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

华中科技大学硕士学位论文 摘要 毓着电子商务和因特网的迅猛发展,传统的存储机制已 海量信息存储以及数据的容错性和安全性的需求。因此 n e t w o r ka t t a c h e ds t o r a g e ) 技术应运而生 卷管理器的设计与实现是构建附网存储系统的关键技术 统中,通过软件r a i d ( r e d u n d a n ta r r a y so fi n d e p e n d e n td i s k s ) 技术实现的卷管 理器具有高性价比和控制灵活的特点,但是卷管理器实现的高复杂度,n a s 系统自身的冗余性和i d e ( i n t e g r a t e dd i s ke l e c t r o n i c s ) 磁盘热插拔技术一直是 实现软件r a i d 技术的难点。( 因此,通过对卷管理器的基本理论和设计模型的 深入分析,改进了卷管理器的控制策略,并在f r e e b s d 上加以实现,从而增 强了系统的可用性。卅 采用直接非循环图模型( d a g s :d i r e c t e da e y c l i cg r a p h s ) 设计卷管理器,可 以降低实现的复杂度,便于优化代码。i d a g s 是将每一次r a i d 操作解释为一 次图的流程。通过d a g s 模型,可以直观地解释不同r a j d 级别的正常模式和 降级模式控制流程,同时将出错控制和在线数据重建机制与具体r a i d 级别分 离。h 以f r e e b s d 为设计平台实现的卷管理器,处于磁盘驱动与文件系统之间的 伪设备层。基于伪设备技术,可以实现普通磁盘和逻辑r a i d 之间的映射机制, 定义卷管理器的原子操作集、d a g s 库和卷状态管理机制,改变系统读,写磁 盘的策略和缓冲区管理策略,并提供卷管理器的控制接口。 通过分离内核和根系统的加载路径,可以实现n a s 系统自身的冗余性。 在分析f r e e b s d 固有磁盘驱动程序的基础上,改进其算法,并添加磁盘监控 功能,可以实现i d e 磁盘的热插拔技术。 关键词:附网存储系统;冗余磁盘阵列;卷管理器;直接非循环图;伪设各 华中科技大学硕士学位论文 a b s t r a c t w i t ht h e r a p i dd e v e l o p m e n to fe - c o m m e r c ea n di n t e r n e t ,t r a d i t i o n a ls t o l c a g e m e c h a n i m ah a sn o tb e e na b l et om e e tt h ep r e s e n tn e e d s o f h u g ei n f o m 曲o ns t o r a g e 如】l tt o l e r a n c e a n d s e c u r i t y a c c o 删y , n a s 伯= b ) b 留朗噙r 睁鹤吐l e 劬e d e 翘加d t h ed e s i g na n di m p l e m e n t a t i o no ft h ev o l u m em a n a g 嚣i st h ek e y t e c h n o l o g yo f t h en a s s y s t e m i nt h en a ss y s t e m , t h ev o l u m em a n a g e r b a s e do i l9 d 】卧僦r a i dh a st h ef e a t u r e so f h i g h c o s tp e m m n 锄c ca n d f l e x i b i l i t y b u tt h ec o m p l e x i t yo f t i 世v o l u m em 卸a g e r si n 硒h 珊n 衄t h e s e l f - r e d u n d a n c y o f t h e n a ss y s t e m a n d t h e h o t p l u g 慨h n o l o g y o f i d e d i s k s a r c 砖研钯曲) 1 0 舒 i ns o i t w d r er a k ) s oo i ll i a eb a s i so f t h e w a l y s i so f t h ee l e m e m a yt b 巧a n d t h em o d e l o f d e s i g n , t h ev o l m n e m a n a g e r c o r a m l p o l i c yi s 证n g o v c da n dh n p l e m e n t c do nf r e e b s d , w h i c h t o n e s u p t h e 洲啦i b i l 蚵o f n 】e 掣;吼 t h ed e s i g no ft h ev o l u m em 越嗡w h i c ha d o p t st h em o d e lo fd a c - s , c a nd a m m t h e c o m p l e 。d t y a n d o p 血n i 绉t h e c o d e d a g s i r m p r m e a c h r a i d o l z t a t i o n a s a f l o w c h a r t d a g - s c a l l b eu s e dt oe x p l a i ni n t u i t i v e l yl i a en o m l a la n dd e d em o d e l so f 妇d i f f e m 吐r a i dl e v e l sa n d s e p a r a l e t h e e r r o r c o n l m l a n d r e c o n s l r m f i o n o n - l i n e f r o m i t 舱r a i d l e v e l s t h ev o l u m e m a n a g e rl y i n g i nt h e p s e u d o d g v i c el a y e rb e t w e e nt h ed i s kd r i v e r 孤】df i l es y s t e mi s i 】m p l e m e n t e do n l h ep l a t f o r mo f f r e e b s d w 衲t h e p s e u d o d e v i c e t e c h n o l o g y , t h e r ei sma p p r o a c h t or e a l i z et h em a pm e c h a n i s mo f p h y s i c a ld i s ka d d r e s st ol o g i cr a i d a d d i e s s - d e f i n et h e 刮6 0 缸c o p c l 面o n s e t , d a g s 蛐a i l d v o l u m e m a n a g e m e n t m e c h a n i s m , c t m n g e t h e i o a n d b u f f e r s w a t e g y a n d p r o v i d e t h e c o n t r o l i n t e r f a c e o f l t l c v o k n n e n m n a g 苴 t h e s e l f - r e d u n d a n c yo f 位n a s 掣湖n i sm l p l e m e n t c d b y 簧p 毫瞄硒g t h el o a do f l o 墨n e lf r o m t l 】c l o a d o f r o o t f i l es y s t e m o n l h e b a s i s o f f l a ea m l y s i s o f l d e d i s k d r i v e r i n f m e b s d , t h e i d e d i s k h o tp l u gt e c i m o l o g yi s i m p l e m e n t e db y0 p 缸i 趣t h ed r i v e ra n d 蛐t h e d i s km o n i t o r i n g 6 m c d o n k e y w o r d s :n a s ;r a i d ;v o l u m e m a n a g e , d a g s ;p s e u d o d c , , v i c e n 华中科技大学硕士学位论文 1 1 课题背景 1 绪论 1 课题来源 2 0 0 1 年1 月,华中科技大学外存储国家专业实验室开发附网存储服务器, 该系统采用f r e e b s d 为开发平台,通过软件r a i d q 技术实现磁盘阵列。本 课题是该项目的关键技术之一,研究并实现了基于软件r a i d ( r e d u n d a n t a r r a y so f i n d e p e n d e n td i s k s ) 的卷管理控制器。 2 技术背景 九十年代以前,存储产品大多作为服务器的组成部分之一,这种形式的 存储被称为服务器附属存储( s a s :s e r v e ra t t a c h e ds t o r a g e ) 或直接附属存储 ( d a s :d i r e c ta t t a c h e ds t o r a g e ) 。 随着技术发展,进入九十年代以后,人们逐渐意识到i t 系统的数据集 中和共享成为一个亟待解决的问题。于是,网络化存储的概念被提出并得到 了迅速发展。网络存储主要有两种表现形式:存储区域网络( s a n :s t o r a g e a r e an e t w o r k ) 和附网存储( n a s :n e t w o r ka r a c h e ds t o r a g e ) “。s a n 和n a s 之间的相同点之一在于系统和存储之间连接的外部特性。 s a n 般基于光纤通道( f c :f i b r ec h a n n c l ) 口】构建,系统具有非常优异 的性能。它是一种将磁盘阵列、磁带等存储设备与服务器连接起来的高速专 用子网,它允许服务器连接s a n 中的任何存储阵列或磁带,这样不管数据 放置在哪里,服务器都可直接存取所需的数据。各种服务器和存储设备直接 连接在一起,构成一个具有高性能和可扩展集群环境,具有极好的可扩展性、 高性能、高可用性、易于管理以及容错能力强等诸多优势,特别适合于存储 量大的工作环境,如海量数据的实时存储、数据共享、数据保护、数据迁移、 灾难恢复和数据仓库等领域。 1 华中科技大学硕士学位论文 所谓n a s ,是一种将分布、独立的数据整合为大型、集中化管理的数据 中心,以便于对不同主机和应用服务器进行访问的技术【”。 n a s 通常在一个l a n 上占有自己的节点。在这种配置中,一台服务器 处理网络上的所有数据,将负载从应用或企业服务器上卸载下来。n a s 设备 包括存储器件( 例如磁盘阵列、c d d v d 驱动器、磁带驱动器或可移动的存 储介质) 和集成在一起的简易服务器,可用于实现涉及文件存取及管理的所 有功能。 n a s 设备一般支持多计算机平台,用户通过网络支持协议可调用相同的 文档,因而,设备无需改造即可用于混合u n i x w i n d o w s n t 局域网。而且, n a s 设备的物理位置灵活,通过物理链路与网络连接。n a s 设备无需应用 服务器的干预,允许用户在网络上存取数据,这样既可减小c p u 的开销, 也能显著改善性能,其基本硬件结构如图1 1 。 图1 1n a s 服务器的基本硬件结构 3 n a s 的关键特性 n a s 通常作为文件服务的设备,由工作站或服务器通过网络协议( 如 t c p i p ) 和应用程序( 如网络文件系统n f s 或者通用i n t e r n e t 文件系统c i f s ) 来进行文件访问。大多数n a s 连接在工作站客户机和n a s 文件共享设备之 间进行。这些连接依赖于企业的网络基础设施来正常运行。 ( 1 ) 为了提高系统性能和不间断的用户访问,n a s 采用了专业化的操 2 华中科技大学硕士学位论文 作系统用于网络文件的访问,这些操作系统既支持标准的文件访问, 也支持相应的网络协议。 f 2 ) n a s 使文件访问操作更为快捷,并且易于向基础设施增加文件存 储容量。因为n a s 关注的是文件服务而不是实际文件系统的执行情 况,所以n a s 设备经常是自包含的,而且相当易于部署。 f 3 ) n a s 设备与客户机之间主要是进行数据传输。 今天在l a n w a n 上传输的大量数据被分成许多小的数据块,传输的处 理过程需要占用处理器资源来中断和重新访问数据流。如果数据包的处理占 用太多的处理器资源,则在同一服务器上运行的应用程序会受到影响。由于 网络拥堵影响n a s 的性能,所以,其性能局限性之一是网络传输数据的能 力。 4 n a s 系统的应用范围 虽然许多的中小企业一直面临着数据量不断扩张所带来的压力,但长期 以来,市场上一直缺少满足中小企业存储需求的产品。s a n 、大型磁带库、 磁盘柜等产品虽然都是很好的存储解决方案,但他们那高贵的身份和复杂的 操作是资金和技术实力有限的中小企业无论如何也不能接受的。市场需要一 种面对中小企业的简单、易用的存储解决方案。 n a s 正是这种需求下的产物,它不仅可以满足中小企业和政府部门现在 对存储设备的需求,还具有足够的扩展空间,以适应他们未来的发展需求。 相关技术的成熟是n a s 产品快速发展的重要因素,尤其是i d e 硬盘技术的 飞速发展和i d er a i d 技术的引入,可以说是n a s 产品发展的一个里程碑。 在这里需要指出,硬盘厂商和i d e 设备供应商的加入和推动是n a s 产品发 展的主要推动力。他们不仅使n a s 的产品更加成熟,也使其成本不断降低, 使n a s 产品进人中小企业成为可能。 5 卷管理器在n a s 系统中的作用 。 卷管理器在n a s 系统中起着至关重要的作用,可提供数据冗余能力, 保护数据安全,在服务器应用中担当文件、数据库应用的安全重任。 卷管理器的作用主要有: ( 1 ) 提供各种r a i d 级别的算法。 3 华中科技大学硕士学位论文 ( 2 ) 动态改变n a s 系统的r a i d 级别。 ( 3 ) 实时监控n a s 系统磁盘状态。 ( 4 ) 磁盘出错控制机制。 ( 5 ) 在线自动重建机制。 1 2 国内外的研究情况 n a s 产品主要有n a s 硬盘服务器和n a s 光盘镜像服务器【5 1 ,其中,n a s 光盘镜像服务器是种将硬盘高速缓存和瘦服务器技术相结合,专为光盘网 络共享而设计的光盘网络共享设备。它使客户机能以硬盘的访问速度来共享 光盘上的信息资源,消除了c d r o m 驱动器瓶颈问题,改善了光盘的网络共 享性能。 d a t a q u e s t 公司的统计报告指明,n a s 产品在9 0 年代中期开始孕育,1 9 9 7 年底市场开始迅速增长,并保持每年翻一番的增长趋势,1 9 9 8 年全球销售 额约为1 亿美元,约2 1 0 0 0 套,2 0 0 0 年则超过7 亿美元,约1 6 0 0 0 0 套。短 短几年的发展,n a s 设备已逐渐成为网络数据存储方案的首选关键设备,其 低端产品主要应用于小的工作组网络环境中,用于文件数据的存储与共享; 中端产品则强调高的可靠性和可用性,可用于数据保护、办公室和中小型企 业等场合;高端产品则旨在加速企业服务器的性能,作为企业级的存储服务 器( s t o r a g es e r v e r ) 和数据中一t i , ( d a t ac e n t e r ) 。 q u a n t u m 公司推出了s n a ps e r v e r 系列产品,i o m e g a 公司推出了n a s a 3 0 0 u 、n a sp 4 0 0 u 和n a sp 4 0 5 u 系列。 美国卡内基梅隆大学的并行数据实验室一直是该领域的先行者。他们提 出了软件r a i d 的实现模型 6 1 ,现在致力于活动存储网络( a s n :a c t i v e s t o r a g en e t w o r k ) 0 7 1 的研究。 华中科技大学外存储系统实验室( 国家专业实验室、教育部重点实验室) 瞄准网络存储这一存储科学的主流发展方向,以“2 1 l ”工程建设为契机, 构建了国内第一个网络存储系统异构平台 8 1 ,建设成功了具有国际先进装备 水平和较高管理水平的实验和研究环境,具体包括s a n 试验床、千兆局域 4 华中科技大学硕士学位论文 网和异构服务器平台【9 1 、多媒体类设备、集群并行计算和存储实验室等。同 时,华中科技大学外存储国家专业实验室与美国f i r s ti n t e r n e ta l l i a n c e 公司 合作开发n a s 产品。 1 3 关键技术 本项目在f r e e b s d 系统上实现n a s 系统。其中卷管理器的实现是n a s 系统中的关键技术。卷管理器的设计和实现是和操作系统的文件系统、磁盘 驱动不可分的,我们是在文件系统和磁盘驱动之间的伪设备层实现卷管理 器。因此,卷管理器的实现不仅涉及到软件r a i d 技术,而且和所实现的平 台以及采用的磁盘特性( i d e :i n t e g r a t e dd i s ke l e c t r o n i c s 和s c s i :s m a l l c o m p u t e rs y s t e mi n t e r f a c e ) u o l 关系紧密。本节围绕卷管理器的实现的关键技 术进行概括性描述。 1 r a i d 技术 软件r a i d 技术又称逻辑r a i d 技术【1 1 1 ,是在没有r a i d 控制卡的磁盘 上实现r a i d 功能。这时,文件系统既要负责分布数据,也要保持期望的容 错级别( r a i d o 、r a i d i 和r a i d 5 等等) t t , t z l 。软件r a i d 的实现是以直接非 循环图模型( d a g s :d i r e c t e da c y c l i cg r a p h s ) 6 j 3 q 5 1 为基础的,d a g s 将每一 次r a i d 操作解释为一次图的流程。通过d a g s ,可以方便地对不同r a i d 级别的正常模式和降级模式,以及出错控制【1 8 1 和在线数据重建机制【1 9 。2 4 1 构建模型,从而简化卷管理器实现的复杂度和代码的优化。 2 f r e e b s d 相关技术 本课题的操作系统选用f r e e b s d ,这是从b s d 4 4 系统 2 s l 发展起来的一 种自由、强壮的操作系统。 卷管理器处于f r e e b s d 内核的文件系统和磁盘驱动之间。文件系统采用 快速文件系统( f f s :f a s tf i l es y s t e m ) 2 5 , 2 6 1 ,并利用s o f tu p d a t e 技术【2 7 2 9 1 提 高文件系统读写性能。由于我们选用i d e 磁盘,f r e e b s d 固有的驱动程序不 能满足软件r a i d 的全部特性,譬如:热插拔技术【l 】。因此,必须改进i d e 的驱动程序p 钟以及添加磁盘监控程序监控程序是通过扫描a t a ( a t , 华中科技大学硕士学位论文 a t t a c h m e n t ) 寄存器【3 1 】实现的。 处在伪设备层的卷管理器是通过设备开关表【2 5 】实现其控制机制的,在内 核中,通过v n o d e ( v i r t u a ln o d e ) 技术3 2 3 4 1 实现卷管理器与文件系统和磁盘驱 动之间的数据传输,同时,由卷管理器的读写策略在伪设备层 3 5 , 3 6 1 控制底层 磁盘的读写策略【”】。 3 网络相关技术 从网络的角度而言,n a s 设备可以被看着为一个网络结点。一个健壮的 n a s 设备应该提高各种网络服务功能,以及支持不同的网络协议。而因特网 正在向下一代网络环境( i p v 6 ) 过渡,i p v 4 和i p v 6 两种网络环境共存是不争的 事实,因此,可以将n a s 设备作为一种通过引进能够转发数据包和在异类 网( i p v 6 i p v 4 ) 通信之间转换i p 协议及相关协议的中间媒体,提供i p v 4 和i p v 6 的通信中转功能3 8 ”1 。 1 4 本文结构安排 本文对n a s 系统中的卷管理器和r a i d 技术做了较为深入的研究。r a i d 技术的出现,是为了提高数据存储的可靠性。它用效率来换取可靠性。n a s 把磁盘阵列技术融合在它的文件系统中,这样既提高了数据的可靠性,又利 用磁盘的并行操作,提高了系统的整体性能。本文的研究根据卡内基梅隆大 学提出r a i d f r a m e 原型,分析了基于d a g s ( 直接非对称图:d i r e c t e d ,a c y c l i c g r a p h s ) 的软件r a i d 模型,并且在f r e e b s d 系统上实现和提高了 r a i d f r a m e 。 本文的研究工作为: 1 在比较s a n 与n a s 两类不同的网络存储技术和研究n a s 技术的特点 和n a s 系统的硬件构造的基础之上,总结了n a s 设备的优点及其应用 范围。 2 详细地比较分析了几种不同类型的r a i d ,重点分析了r a i d 5 的读 写机制。 6 、蠢 华中科技大学硕士学位论文 3 研究了d a g s 模型的原理,在此基础上提出了d a g s 模型的执行机 制,并在传统的向前错误恢复和向后错误恢复机制的基础上,提出了我 们的改进策略:r o l l a w a y 错误恢复策略,同时研究了基于磁盘调度的 重构算法的在线数据重建机制。 4 ,深入地分析了n a s 系统中卷管理器实现的框架和不同模块:操作系 统、卷管理器、文件系统、网络文件共享和w e b 管理模块。为自己设计 实现卷管理器打下基础。 5 实现了卷管理器中两项重要的技术:热备份与热插拔技术。 6 结合f r e e b s d 的伪设备、虚结点、v o p ( v n o d eo p e r a t i o n ) 、磁盘读写 策略和i d e 磁盘驱动等相关技术设计实现了以f r e e b s d 为基础的 n a s s t o r 系统中的卷管理器。 综上所述,本文在n a s 系统及其卷管理器的设计方面做了一定的研究 工作,为软件r a i d 技术在n a s 系统中的应用打下了一定的基础。 7 华中科技大学硕士学位论文 2 1r a ld 概述 2 卷管理器理论基础 在n a s 设备中,既要便于管理大容量磁盘和确保数据的安全性,又要 便于成本的控制和性能的升级,使得卷管理模块的作用日渐增大。卷管理模 块与文件系统不同的是在所提供的磁盘管理的等级,它更多地涉及设备操 作。文件系统是和逻辑设备一起工作,而逻辑设备则是由卷管理模块创建的, 卷管理模块创建并排列磁盘设备分区,形成连续的存储空间,作为逻辑设备 以供文件系统存放数据,文件系统将数据均匀地分布到逻辑磁盘,因此可以 最好地保证数据的可靠性和一致性。由于存储空间的分布性和连续性,可并 行地从几个磁盘上存取数据,提高数据传输带宽,获得较高的性能。卷管理 模块的主要功能是磁盘分区的创建以及在这些分区上创建逻辑分区,这些处 理在n a s 设备上是动态实现的。 现在卷管理模块最重要的功能就是实现冗余磁盘阵列( r a i d ) ,将离散的 磁盘变成r a i d 子系统。r a i d 具有较高的性能,这是因为不同的磁盘上的 数据可以同时读取,从而提高磁盘的带宽;所有磁盘可以并行地执行寻道工 作,减少寻道时间,而寻道时间又是最耗时的磁盘操作:最后r a i d 的请求 可以并行地处理,提高整体性能。在提高性能的同时,r a i d 的使用就是要 保证一定程度的容错性能。在没有容错机制的时候,由于多个磁盘同时使用, 使得磁盘失效的概率增加,再加上数据分布在不同的磁盘上,一个磁盘失效 往往导致整个数据的丢失。因此通过相应的冗余磁盘容错机制,来保证在不 丢失保存在失效磁盘上的数据的前提下允许磁盘的失效。通过实现冗余的方 式和数据在磁盘上的划分方式分类,有:r a i d 0 、r a i d l 、r a i d 5 等。 3 华中科技大学硕士学位论文 2 1 1 软件r a i d 的可靠性模型 磁盘和r a i d 系统的可靠性可用胛盯( m e a nt i m et of a i l u r e ,平均无故 障时间) 值度量i i 】。 r a i d o 由台磁盘驱动器所构成,无校验盘,无容错功能,是典型的不 可修复串联系统。设磁盘的平均无故障时间为舸乃。吐,则r a i d 0 的m f 为: 岫。:叫 即r a i d o 的可靠性仅为单盘的,。 对于r a i d i 5 ,每一级别的r a i d 都有d 台磁盘作数据盘,而用- d 台 磁盘来进行检纠错。另外,还可以加一个热备份磁盘来替换可能失效的磁盘, 系统具备容错和单盘失效时系统可修复的功能,其可靠性模型属于马尔科夫 串联型可修复系统。 设:( 1 ) 每个磁盘的失效率x 是一个常数,即a 2 m t i r f 。:( 2 ) 每个驱动 器的修复率掣也是一个参数,即2 夕乞m 。( m t t r d - s k 为单台磁盘的平均修 复时间) ;( 3 ) 失效事件和修复事件相互独立;( 4 ) 在r a i d l 5 中,磁盘总数为 n ,分成以个组,每组有d 个数据盘,c 个校验盘,一个热备份盘, n = 虬( d + c + 1 ) 据此,可画出如图2 1 所示的马尔科夫可靠性模型图中,状态“0 ”组 内全部磁盘都工作正常,状态“1 ”表示有一个盘失效,系统处于降级和修复 运行,仍能提供服务,状态“2 ”为系统的吸收状态,表示有两个盘失效,系 统无法正常工作。 ! 旦g 1 01 - 、 竺 ( d + c t ) 图2 1 单组仞+ 纠个盘的马尔科夫可靠性模型 _ 一 9 华中科技大学硕士学位论文 依据此马尔科夫模型,可得出如下微分方程组: 敞f ) = 一( d + c ) 弛( f ) + 朋( r ) 鼻f ) = ( d + c ) 兄晶( r ) 一,以( f ) 一( d + c 一1 ) a p 2 ( f ) 睦i f ) = ( d + c 一1 ) 珉( f ) 对上式进行拉氏变换,并把初始条件e o ( o ) = 1 ,最( o ) = 最( o ) = 0 代入,可解 得系统可靠度为: r c s ,2 晶c s ,+ 日c s ,2j f ;1 i 曩z ;兰芒;i :;i i i 苦 ; 所以有: m t t f = 罂p ( ,) 衍= ! 蛩正 弘( ,枷= l ;i + m s r ( 一) s = r ( o ) = 占等轰;导;兰静 当 2 ( g + c ) + 1 】五 s c d k d e v ,0 ,& r a i d c d e v s w , & r a i d d i s kc d e v s w ) 创建r a i dc d e v s w 实体,这是通过r a i d i n i t o 实现的。 r a i d c t lc d e v s w 和r a i dc d e v s w 这两个数据结构是通过r a i d c t ls o f t c 和 r a i ds o f t c 控制的。其关系如图4 4 。这两个s o f t c 的数据结构是内核控制伪 设备的数据结构,不仅有指向系统调用函数指针,而且还包含了该伪设备特 有的一些数据结构。 4 2 3 卷管理器i o c t l 命令集 f r e e b s d 内核空间的i o c t l 函数原型: i o c t l ( d e v jd e v ,u _ i o n gc m d ,c a d d r td a t a ,i n tf l a g s ,s t r u c tp r o c + p ) 3 6 华中科技大学硕士学位论文 d e v :操作的设备号; c r n d :i o c t l 要执行的命令集:一般而言,该命令集定义在一个头文件里, 而内核实现该设备功能的代码和用户级代码都应该包含该头文件, 这样,用户就可以从用户空间发出控制命令,内核根据控制命令执 行相应的操作。 d a t a :由用户级代码传入内核级代码的参数的指针,参数的类型是在定 义命令集的同时定义的。 f l a g s :目前没有什么意义。 p :p r o c 结构指针,联系着发出i o c t l 请求的用户进程。 通常,f r e e b s d 是通过一系列宏定义来定义i o c t l 的命令集。常用的宏是: 一i o w r ( g ,n ,t ) 、一i o w ( g ,n ,t ) 、一i o r ( g ,n ,t ) 和一i o ( g ,n ) ,g 表示该命令所属的组 别;n 表示该命令在这个组的位置( 序号) ;t 表示系统分配给入参的空间大小。 这些宏的意义在于根据提供的参数将该命令映射为内核空间独一无二的无 符号长整数。 在我们的卷管理器中,主要的命令集如下 1 4 , 1 5 1 : # t d e f i n er a i d f r 诬c o 盱i g l j 陋_ i 册r ( el ,v o i d , ) 该命令的功能:在用户级代码中根据用户建卷信息组装成一个数据结 构,并通过( v o i d ) 指针指向该数据结构,通过该命令通知内核完成建卷的 初始配置。 # d e f i n er a i d f r a m e _ s h u t i ) o w n i o w r ( m2 ,i n t ) 该命令的功能:当用户不需要卷管理时,在用户级代码中指定要关闭的 设备名,并根据设备名找到对应的设备号,通过( i n t ) 传入内核,内核根据这 个参数关闭相关的守护内核线程,释放其占有的各种内核资源( v n o d e 、进程 i d 、缓冲区等) 。 # d e f i n er a i i ) f r a 蛭一a d d h o t s p a r e i o w ( r ,2 2 ,l 邺i n g l e c 唧e n t t ) 该命令的功能:向一个已建立完成的卷上添加一个h o t s p a r c 磁盘,热备 份磁盘的信息是通过r f s i n g l e c o m p o n e n t _ t 结构的指针传递的a | ;d e f i n er a i d f r a 娅靴丽t e p a r i t y i o ( r , 7 ) 该命令的功能:在完成初始化配置之后,或者发现最近一次非正常结束 一_ 一 3 , 华中科技大学硕士学位论文 卷管理,该命令会对r a i d 伪设备的物理磁盘位置重新做校验。 # d e f i n el 诅i d f r l 匹c o p y b a c k i o ( r 1 , 8 ) 该命令的功能:当用新盘替换损坏的磁盘的时候,数据如果需要从热备 份磁盘导回新盘,只有在有磁盘损坏的情况下,热备份盘才会再使用。 # d e f i n er a i d f r a m e _ r e b u i l 吐i np i c e i o v ( r ,2 4 ,r f _ s i n g l e c o l p o n e n t - t ) 该命令的功能:在线恢复磁盘,目标盘的信息是通过 r fs i n g l e c o m p o n e n tt 结构的指针传递的。 # d e f in er a i d f r 姚一s e t a u t o c o n t i g i o w r ( r ,2 8 ,i n t ) 该命令的功能:对于已经建立好的卷,可以设置自动配置功能,这样, 在系统启动时,不须用户干预,内核会自动搜索该卷,并启动该卷的控制机 制,如果用户在e t c f s t a b 中设置了相关的m o u n t 信息,则系统会自动将该卷 m o u n t 到指定的目录结点。缺省是不设置a u t o c o n f i g 功能,即( i n t ) 对应的数 据为0 。 # d e f i n el a i d a _ s e t _ r o o t - i o 崃( e2 9 ,i n t ) 该命令的功能:将已经建好的卷做为f r e e b s d 系统的根系统。这个功能 对于我们的n a s 系统的健壮性是非常重要的。我们会在以后的章节中详细 讨论。 4 2 4 虚结点( v n o d e ) v n o d e 是u n i x 中的传统技术f 3 3 , 3 43 , 提供一个可扩展的面向对象接1 3 , 包含了独立于低层文件系统的有用信息。每一个激活的文件、每一个当前目 录、每一个已经m o u n t 的文件系统、纯文本文件、特殊设备、各种伪设备和 根系统都有一个独一无二的虚结点。一般b s du n i x 系统一个v n o d e 都包含 如下信息: 各种标志:用于标识v n o d e 的锁和v n o d e 的一般属性。 各种计数器:比如涉及到该v n o d e 的打开读写文件实体数目:与该v n o d e 相关的页数目和缓冲区数目。 一个指向m o u n t 结构体的指针:m o u n t 结构体包含了该v n o d e 对应的文 3 8 华中科技大学硕士学位论文 件系统信息。 由于不同的操作系统的v n o d e 策略是不一样,譬如:f r e e b s d 、n e t b s d 和o p e n b s d 都是从4 4 b s d 发展起来的,但由于各自的重点、目标不一致, 其内核的v n o d e 结构及其操作是有很大区别的。因此,我们给出f r e e b s d 下 的v n o d e 结构的定义如下: s t r u c tv n o d e u _ l o n g v f l a g ; i n t v u s e c o u n t ; i n tv _ w r i t e c o u n t ; i n t v _ h o l d c n t ; u _ l o n g v i d ; s t r u c t m o u n t + v _ m o u n t ; v o p t ”vo p ; t a i l q e n t r y ( v n o d e ) v _ f r e e l i s t ; l i s t e n t r y ( v n o d e ) v _ m n r v n o d e s ; s t r u c tb u f l i s t s v e l e a n b l k h d ; s t r u c tb u f l i s t s v _ d i r t y b l k h d ; l i s t e n t r y ( v n o d e )v _ s y n c l i s t ; l o n gv _ n u m o u t p u t ; e n u m v t y p ev t y p e ; u n i o n s t r u c tm o u n t + v u _ m o u n t e d h e r e ; s t r u c ts o c k e t + v u _ s o c k e t ; s t r u c t s t r u c ts p e c i n f o * v u _ s p e c i n f o ; s l i s t _ e n t r y ( v n o d e ) v u _ s p e c n e x t ; ) v u _ s p e c ; s t r u c tf i f o i n f o + v u f i f o i n f o ; 3 0 华中科技大学硕士学位论文 s t r u c t n q l e a s e + vl e a s e ; d a d d r tv l a s t w ; d a d d r tv c s t a r t ; d a d d r tv _ l a s t a ; i n t v _ c l e n ; s t r u c tv n l o b j e c t “一o b j e c t ; s t r u c t s i m p l e l o e kv _ i n t e r l o c k ; s t r u c t l o c k + v _ v n l o c k ; e n u m v t a g t y p ev t a g ; v o i d+ vd a t a ; l i s t h e a d ( ,n a m e c a c h e ) v c a c h e s r c ; t a i l q h e a d ( ,n a m e c a c h e ) v _ c a c h e d s t ; s t r u c tv n o d e + vd d ; u l o n g v d d i d ; s t r u c t s t r u c ts i m p l e l o c kv p i l o c k ; s t r u c ts e l i n f o v p i s e l i n f o ; s h o r t v p i e v e n t s ; s h o r t v p i r e v e n t s ; ) v _ p o l l i n f o ; s t r u c tp r o c + v _ v x p r o c ; ; v _ f l a g :说明v n o d e 的用途,比如:v r o o t 说明该v n o d e 是根文件系统 的虚结点:v t e x t 是纯文本属性。 v _ u s e c o u n t :内核中使用该v n o d e 的客户的个数,这是由系统调用v r e f 0 、 v r e l e 0 和v p u t o 维护。 v _ w r i t e c o u n t :正在写文件的客户的数目。 v _ _ h o l d c n t :内核中禁止重复使用该v n o d e 的客户的个数,这是由系统调 用v h o | d 0 和v d r o p 0 维护的。 4 0 华中科技大学硕士学位论文 当v _ u s e c o u n t 和v _ h o l d c n t 都为0 时,该v n o d e 应该加在空闲虚结点链 表中。 v _ i d :该v n o d e 的标号。 v _ m o u n t :指向该v n o d e 所在的虚拟文件系统的指针。 v j p :指向v n o d e 操作( 函数) 矢量的指针,稍后专门讨论虚结点操作。 v _ f r e e l i s t :系统中空闲v n o d e 的链表指针。 v _ m n t v n o d e s :一个m o u n t 结点上的v n o d e 链表指针。 v _ c l e a n b l k h d :v n o d e 的干净缓冲池链表,即该缓冲池用于存放文件系 统是同步的、一致的数据。 v _ d i r t y b l k h d :v n o d e 的脏缓冲池链表,即该缓冲池用于存放被修改过, 而且还没有和文件系统同步的数据。 v _ s y n c l i s t :需要同步文件系统的脏缓冲区链表。 v _ n u m o u t p u t :正在对该v n o d e 写的数目。 v _ t y p e :v n o d e 的类型,比如:v d i r 是目录类型;v c h r 是字符设备类 型。 y _ u n :是一个联合体,其成员的意义在于根据v _ t y p e 的值,v u n 存放 相应的数据。比如:v _ t y p e 是v d i r 的类型,则v _ u n 使用的是v u _ m o u n t e d h e r e 成员,指向它m o u n t 的虚拟文件系统。 v _ o b j e c t :指向虚拟内存对象的指针。 v _ i n t e r l o c k :v n o d e 结构内部的锁机制,可以控制vf l a g ,vu s e c o u n t , v _ h o l d c o u n t 和v _ w r i t e c o u n t 。 v _ t a g :下层数据的类型,比如:v t u f s 是标准u n i x 文件系统;v t n f s 是标准网络文件系统:v t s m b f s 是s a m b a 共享文件系统。 vd a t a :文件系

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论