




已阅读5页,还剩51页未读, 继续免费阅读
(通信与信息系统专业论文)监控系统中网络控制器热备份的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 本文的选题源于松下公司( 北京) 的视频监控系统数字化、网络化改造项目。 文中主要研究了系统的核心控制设备一网络控制器( n c ) 的双机热备份问题。 论文中首先介绍了项目的背景和备份系统在其中的重要作用。接着在当前流 行的镜像技术的基础上,描述了双机热备份系统的的基本功能,并分析了n c 双机 热备份系统的功能和需求。然后根据各功能需求,对所涉及的操作系统( l i n u x ) 相关功能和网络相关协议分别进行了研究和分析。最后在上述工作的基础上,提 出了一种能满足n c 项目需求的实用的双机热备系统方案。该方案构建于l i n u x 系 统之上,分为核心层和用户层。核心层功能主要用于协调热备份系统从操作系统 中截获数据并进行相应管理;用户层功能包括系统状态监测、切换、日志文件以 及备份数据传输等。各个功能基本上各由一个进程来实现,通过进程问通信和同 步机制来实现协同工作。初步的分析表明该设计方案是切实可行的。 关键词:网络控制器双机热备份系统镜像技术l i n u x 操作系统 a b s t r a c t a b s t r a c t t h et o p i co ft h i st h e s i si so r i g i n a t e df r o map r o j e e to fe s c a l a t i n gp a n a s o n i c ( b e i j i n g ) sv i d e os u r v e i l l a n c es y s t e mt ob em o r ed i g i t a l i z e da n ds u i t a b l ef o rn e t w o r k e n v i r o n m e n t t h em a i nw o r k sf o c u so nt h ep r o b l e mo fr e p l i c a t e db a c k u po ft h ec o r e c o n t r o ld e v i c e t h en e t w o r kc o n t r o l l e r c ) i nt h es y s t e m w ef i r s ti n t r o d u c e ds o m eb a c k g r o u n d so ft h ep r o i e c ta n dt h ei m p o r t a n c eo ft h e b a c k u ps y s t e mi ni t t h e nb a s e df i l lt h ew i d e l yu s e dc u r r e n tm i r r o rt e c h n i q u e s ,w e d e s c r i b e ds o m eb a s i cf u n c t i o n so ft h ed u a l h o t s t a n d b ys y s t e m a n da n a l y z e dt h e f u n c t i o n sa n dt h e i rr e q u i r e m e n t so fi ti nn c n e x ta c c o r d i n gt ot h er e q u i r e m e n t s ,w e s t u d i e da n da n a l y z e dt h ei n v o l v e df u n c t i o n so ft h eu n d e r l y i n go p e r a t i o ns y s t e m ( l i n u x ) a n dp r o t o c o l su s e di nt h en e t w o r k f i n a l l yo i lt h eb a s i so ft h ew o r k sa b o v e ,w ep r o p o s e d ap r a c t i c a ls c h e m eo fb a c k u ps y s t e mt h a tc o u l dm e e tt h er e q u i r e m e n to ft h en cp r o j e c t t h es c h e m ei s i m p l e m e n t e du p o nl i n u x ,a n dc a l lh ed i v i d e di n t ot w ol a y e r s t h e f u n c t i o no ft h ec o r el a y e ri sm a i n l yu s e dt oc o o r d i n a t et h es y s t e mo f b a c k u pt oc a p t u r e d a t af r o mt h eo p e r a t i o ns y s t e m ,a n dp e r f o r mm a n a g e m e n ta c c o r d i n g l y f u n c t i o n si nt h e u s e rl a y e ri n c l u d et h em o n i t o r i n go fs y s t e ms t a t u s ,s w i t c h i n gb e t w e e na c t i v ea n d s t a n d b yd e v i c e s ,t r a n s m i t i n gl o gf i l e sa n db a c k u pd a t a , a n de t c b a s i c a l l ye a c hf u n c t i o n w i l lb ec a r r i e do u tb yap r o c e s s ,a n dt h ec o o r d i n a t i o no ft h e mc a nb ea c h i e v e db y i n t e r - p r o c e s sc o m m u n i c a t i o n sa n ds y n c h r o n i z a t i o n s e l e m e n t a r ya n a l y s e ss h o wt h a tt h e d e s i g ni sf e a s i b l e t e c h n i q u e sl i n u xo s d u a lh o s tb a c k u pm i r r o r 创新性声明 本人声明所呈交的论文是我个人在导师的指导下进行的研究工作及所取得的 研究成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文 中不包含其它人已经发表或撰写过的研究成果;也不包含为获得西安电子科技大 学或其它教育机构的学位或证书丽使用过的材料。与我一同工作的同志所做的任 何贡献均已在论文中徽了明确的说明并表示了谢意。 申请学藏耱叟与资料若有不实之处,本人承扫一切相关责任。 雄人签名:! 刍麓:日期:丝:臣: 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即t 研究 生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。本人保证毕 业离校后,发表论文或使用论文工作成果时署名单位仍然为西安电子科技大学。 学校有权保留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全 部或部分内容,可以允许采用影印、缩印、或其它复制手段保存论文。( 保密的论 文在解密后遵守此规定) 本学位论文属于保密,在二年解密后适用本授权书。 本人签名:! i l 蓝日期:型: :垃 导师签名:主 日期:兰望彳。, 第一章绪论 第一章绪论 1 1 项目背景 随着以因特网为代表的各种技术蓬勃发展,网络给社会的生产、生活带来了 巨大的变化;同时,网络业务本身也不断在数量和内容上发生改变。除了传统的 以网络浏览、文件传输和电子邮件为代表的数据通信业务之外,语音、视频和多 媒体业务已经占据了当今网络流量的巨大份额并仍然在高速增长之中。在众多的 网络视频应用中,视频监控系统是一个重要的分支,而且最近几年在世界范围和 我国都增长迅猛。如何将传统的闭路式视频监控系统和网络建设相结合,为用户 提供功能更齐备、价格更低廉、使用更方便的新型视频监控产品,是主流监控设 备提供商和新兴的网络监控产品生产者们目前正在追求的目标。本论文的课题就 是源于与松下公司( 北京) 合作的视频监控系统数字化、网络化改造项目。 松下公司的原系统主要由控制台、主处理单元( m p u ) 、一些机箱( 可能插 有一个多个功能板,分别完成摄像头控制、视频切换和监视器控制等任务) 、摄 像头以及监视器组成。m p u 通过配置软件对下连机箱进行一些配置,完成对系统 的一些初始化。之后,m p u 不断向下发送状态查询信息获得系统最新的状态。管 理员通过控制台向m p u 发送切换,控制命令,m p u 利用保存在其中的配置信息以 及状态查询信息对相应的机箱( 一个或多个) 发送命令消息,机箱通过内置的本 地处理器( l c p u ) 对功能板进行控制,以达到对相应摄像头、监视器的正确控制。 由于在原系统中,交换机箱和控制机箱的使用要求必须在系统中配备价格昂 贵的松下公司的摄像头和监视器,系统虽然性能优良,使用可靠,但是当组建较 大型的监控系统时成本过高。项目的主要目标是通过增加必要的网络控制设备, 使松下专有的老式监控系统能够和其它一些厂家生产的新型编解码器等设备协同 工作,降低整个系统的造价。项目主要包括以下几方面的改造: 1 设计与开发网络控制器( n c ) 以取代原系统的机箱,主要完成协议转换以 及模拟原系统机箱动作。比如,将m p u 发送过来的切换消息进行解析,转换成为 编解码器支持的消息格式,通过以太网发送给编解码器。 2 使用编解码器系统连接控制其所支持厂商的摄像头和监视器。解码器收到 n c 经过协议转换发送过来的命令消息( 控制- 切换) ,控制摄像头通过以太网建立 与编码器的连接。 改造后的网络监控系统主要由m p u 、n c 、编解码器、摄像头以及监视器组成。 在n c 的设计中使用一个配置表来记录编解码器的配置信息。在n c 中还包含了该 系统所支持的所有编解码器协议的开发包,以便实现系统对不同编解码器厂商产 2 监控系统中网络控制器热备份的设计与实现 品的兼容。因此,在改造后的新系统中,n c 在接收到m p u 发来的消息后,既要 模拟原系统中机箱的动作向m p u 作出响应,又要对消息进行解析、处理完成协议 转换功能。在该系统中,n c 是处于核心位置的控制设备,为了提高系统的可靠性 我们需要对n c 进行热备份功能的设计,以便当前正在工作的n c 出现故障时,由 另外一台几乎与它保持镜像的备用n c 较为平滑的接管任务,不至于引起系统瘫 痪。 对n c 的备份是系统级的备份,备份的内容包括数据库信息、设备的状态信息、 系统同步信息等。这种备份操作在计算机系统和计算机网络中非常普遍。 随着计算机系统和网络设备应用的不断深化,人为操作错误、系统软件或应 用软件缺陷、硬件损坏突然断电、意外死机等诸多因素都有可能造成计算机中 关键数据的破坏和丢失。这就需要长期进行数据备份,以实现在发生故障后对数 据的恢复。一个好的系统数据备份方案可以将灾难的损失减4 n 最低程度。 对大量数据的冗余备份被称为数据镜像技术。当前比较流行的镜像技术主要 有磁盘双工、廉价冗余磁盘阵列( r a i d ) 、双机数据热备份和w e b 站点的镜像。 磁盘双工是指将两个硬盘接在同一个硬盘控制卡上,使用一个硬盘控制卡来 管理两个硬盘的技术。当用户向计算机写数据时,磁盘镜像技术就同时将数据写 入两个硬盘中,一旦一个硬盘损坏,便可从另一个硬盘上获得数据,以保证数据 存取的连续性和数据安全性。一 廉价冗余磁盘阵列( r a m ) 可分为6 级( r a d 帖r a m 5 ) ,每一级提供不同 的性能、可靠性和费用。每个磁盘的低可靠性由于冗余而得到补偿。使用多个硬 盘驱动器,高速磁盘控制器以及特殊的软件驱动程序来增加数据安全和改善硬盘 子系统的性能。r a i d 通过分散数据到多个硬盘驱动器来保护数据,然后计算和保 存奇偶校验信息。冗余允许任何一个驱动器失效时阵列本身不丢失任何数据。可 以替换一个失效的驱动器,并从阵列的其他驱动器的信息中重建其内容。r a i d 通 过分配读任务到多个驱动器,并允许从不同的位置读相同的数据( 取决于哪一处 的数据更靠近读磁头) ,从而提高了磁盘子系统的性能。 双机数据热备份是指使用两台服务器向外部提供统一的访问界面,正常情况 下由主服务器提供服务,对主服务器的写请求同时送到从服务器,进行数据的实 时备份。当主服务器故障时,从服务器自动切换对外界提供服务,但外界察觉不 到服务的中断。这是目前性价比最好的一种镜像备份方案。 w e b 站点的镜像主要是将因特网w e b 信息从一个站点镜像到另一个站点, 完成w e b 信息的复制。它的特点在于可以将一个w e b 站点的所有目录结构和内 容全部拷贝下来,并使你在脱离原来w e b 服务器的情况下继续浏览这些内容,还 可以每次搜索并修改链接发生改变的u r l 以及其他需要修改的内容。 第一章绪论 3 1 2 本文主要内容和章节安排 在本文中,基于对上述现有备份技术及其原理的研究与分析,结合实际项目 的需要,提出了一种可行的基于l i n u x 平台的双机热备份实现方案。文中详细分析 了备份系统的工作过程和项目总体对n c 备份系统的需求,有针对性地研究了 l i n u x 系统下为实现n c 双机备份所需的技术细节以及相关的网络通信协议。在此 基础上提出了自己的设计方案,描述了各个模块之间的协同工作关系,并给出了 各个对应功能实现所用进程的具体数据结构定义和伪码描述。在所提出的方案中, n c 双机之间通过以太网连接,关键数据在两个系统之间镜像存储。正常运行时, 主机对外提供服务,数据实时的通过网络镜像备份到备机上。被镜像的资源包括 磁盘( 分区) 、主n c 的名称及其口地址以及重要的应用程序等。双机之间通过 网络发送i c m p 报文,来判断对方是否正常工作。当主机发生故障或主机检查到 自身的某种故障后,备机接管主机任务。对用户来说,这种切换是透明的。 论文后续部分安排如下。第二章中首先介绍了双机热备份系统的基本功能, 并分析了n c 双机热备份系统的功能和需求。第三章根据各功能需求,对所需的 l i n u x 系统中的相关功能和网络中相关协议进行了研究和分析,依次介绍了l i n u x 下设备管理、进程管理、相关网络协议及其在备份系统中的应用。第四章在上述 工作的基础上,提出了能满足n c 项目需求的构建于l i n u x 系统之上的双机热各系 统方案,给出了整体描述以及核心层和用户层的程序框架。最后是简短的结论。 第二章双机热备系统基本原理与n c 备份功能需求 5 第二章双机热备系统基本原理与n c 备份功能需求 本章介绍通用的双机热备份系统的工作方式,对系统状态和动作作了说明, 并给出了状态转移表和转移图。接着按照通用备份系统的功能要求对项目中n c 系 统的需求进行了分析。 2 1 双机数据热备份方式概述 在双机热备份的一般工作模式下,h o s t a ( 主机) 向外界提供业务,h o s t b ( 备 机) 不向外提供任何业务。双机间不断通过心跳线( h e a r tb e a tl i n e ) 检测对方是 否正常工作。当h o s ta 发生故障时,系统进行主备切换,备机上升为主机以保证 向外界提供近似连续的服务。每台机器都有一个自用的磁盘( 分区) ,装有相同 的操作系统。还有一对共用的磁盘( 分区) 组,通过镜像技术使两磁盘( 分区) 组内容一致,同时两台机器还装有相同的应用系统。 双机热备份系统使用纯软件方式实现,两个系统之间通过以太网连接,关键 数据在两个系统之间镜像存在。正常运行时,控制权在主机上,数据实时的镜像 备份到备机上。当主机发生故障或主机检查到某种故障后,系统控制权切换到备 机上。由于采用以太网作为系统的数据链路,主机可以不干扰备机工作,自动脱 离并在一个孤立的环境中进行故障的诊断与维修。主机修复后,控制权需要再切 回到主机。数据需要从备机恢复到主机,这个工作在后台自动完成,应用程序读 取数据仍从备机上进行,不会中断。数据恢复完成后,双机系统进入正常工作模 式。 在保证数据可靠性的多种方案中,纯软件方式的双机热备份是一种性价比较 好的方案,适合国内大多数关键业务系统。在本项目中,我们考虑使用纯软件方 式的双机数据热备份来实现对n c 的双机备份。 2 2 双机系统的一些说明 2 2 1 双机状态的定义 图2 1 给出了双机的工作情况,不失一般性,我们使用了本项目中的网络配置 结构,并用主n c 和备 c 作为主机和备机。工作中双机的状态可以定义如下: 主机( a c t i v e ) :双机都处于正常工作状态且链路1 和链路2 ( 见图2 1 ) 通信正 常时负责当前业务处理的一侧称为主机; 备机( s t a n d b y ) :双机都处于正常工作状态且链路1 和链路2 通信正常时作为 备份,并不处理当前业务的一侧称为备机; 6 监控系统中网络控制器热备份的设计与实现 单机( s t a n da l o n e ) :一侧故障后独立负责当前业务的一侧称为单机: 脱机( o f f l i n e ) :由于自身故障,或链路故障,或未上电的一侧称为脱机。 图2 1n c 双机热备份系统结构图 2 2 2 双机状态转移表 表2 i 双机状态转移表 主机备机单机脱机 i 人机命令主 1 备机告警要求复位 1 主机告警要求复位 备倒换 2 人机命令备机复位 2 人机命令主机复位 主机 3 主机重启或断电 2 午夜定时主 备倒换 3 备机重启或断电 1 人机命令 主备倒换 1 - 人机命令主机复位i 备机故障要求复位 备机 2 主机故障要求复位2 人机命令备机复位 2 午夜定时 主备倒换 3 主机重启或断电3 备机重启或断电 1 脱机恢复1 脱机恢复过程中叉 1 单机重启 单机 成功 死机 i 双机同时上 1 双机同时 电成功 1 单机上电启动成1 脱机恢复过程中又 脱机 上电成功 2 脱机恢复成 功死机 功 表2 1 列出了在上文中定义的双机系统的各个状态之间发生状态转移的驱动 事件。 2 2 3 双机状态转移图 为了更清晰的表示各个状态之间的关系,图2 2 以转移图的形式给出了双机工 作过程中各个状态之间的发生转移的情形。图中将双机系统分为双机工作时的状 态和单机工作时的状态。 第二章双机热备系统基本原理与n c 备份功能需求 7 图2 2 双机状态转移图 2 3n c 双机热备份系统的需求分析 由于篇幅所限,本文不进行详细的n c 结构和功能的介绍。在该项目中为了实 现n c 的双机备份功能,n c 应该具有哪些必要的功能,需要系统提供怎样的支持, 依赖于怎样的通信协议和机制等是本节主要解决的问题。 8 监控系统中网络控制器热备份的设计与实现 2 3 1 正常情况下备份数据同步功能 正常工作情况下,主机通过数据线( 见图2 1 ) 以证实一重传机制( 也就是同 步备份方式) 向备机传输数据,达到双机系统级同步。这样在主机出现故障时, 备机能顺利接管主机的工作,使主备之间实现尽量平滑的倒换。备机收到备份数 据后,修改自己的数据映像,并向主机发送证实响应。这种数据的备份应该是系 统级的。 另外,需要指出的是,为保证镜像数据传输通路的带宽最大,本系统需要在 主从服务器中增加一个网卡,为镜像数据提供专用的数据传输通道。 2 3 2 故障检测功能 主机和备机需要通过心跳线不断发送试探消息以监测对方是否正常。若在链 路上有一段时间收不到对方任何消息,则认为对方出现故障。报告故障,进行故 障处理。在本系统中我们采用p i n g 思想,利用i c m p 回应请求应答报文测试 信宿机的可达性。若对方有回答报文,则认为对方处于活动状态。当启动双机数 据热备份系统时,有一个进程监视主( 备) 服务器的工作,定期发送“心跳信号”, 表明主( 备) 服务器工作正常。当备( 主) 服务器在规定时间内没有收到“心跳信 号”时,备( 主) 服务器认为主( 备) 服务器出现故障,开始接管主( 备) 服务器的所 有任务,包括主( 备) 服务器的主机名和口地址。所有与主( 备) 服务器相连的工作 站都不会感觉到任何变化,仍然继续工作。 心跳线是在串口上采用s l i p ( s e r i a ll i n ei n t e r n e tp r o t o c 0 1 ) ,这样就可以在上层 使用t c p a p 协议,该线路主要用于传输双机数据热备份时所需的控制信息以及心 跳检测。我们可以采用两条线来进行心跳信号的检测,实现冗余的心跳检测线( 数 据线和串口心跳线) ,加强系统故障判断能力。只有当两条心跳检测线都出现故 障时,才认为对方服务器出现故障,进而进行状态切换。 2 3 3 故障处理功能 双机系统根据故障情况决定是否要进行倒换及如何倒换。本论文中我们主要考 虑n c 发生故障的情况: 当主机出现故障( 非公共资源的故障) 时,如果备机正常,则备机成单机、 主机成脱机:否则主机坚持其主机状态。 当备机出现故障时,备机通知主机后转成脱机状态。 当主机死机或断电时备机自动转为主机;备机死机或断电时主机坚持其 单机状态。 2 3 4 故障恢复功能 在这里我们主要考虑n c 下列从故障中如何恢复的情况: 第二章双机热备系统基本原理与n c 备份功能需求 9 重新加电恢复:若故障机为主n c ,故障排除重新加电后,通过当前链路与 单机取得联系,然后向单机发出恢复请求,从单机处得到当前的数据映像, 使得双机达到数据一致后转为主机,单机变为备机开始正常的数据同步。 当故障机为备n c ,重新加电后,通过当前链路与单机取得联系,然后向单 机发出恢复请求,从单机处得到当前的数据映像,使得双机达到数据一致 后仍然转为备机,单机变为主机开始正常的数据同步。 告警消除后的恢复:当脱机侧所有的告警均消除后脱机自动向单机发出恢 复请求,双方进行完数据同步后,若脱机原来是主n c ,上升为主n c ,否 则继续作为各n c 。 2 3 5 人机交互功能 出于系统维护、升级、管理等需要,备份系统应该支持人机命令接口以进行主 动的主备切换,在关键的大型网络结点中或者服务器机群中,经常在凌晨实行这 种切换操作来排除那些主机无法在业务负荷较重情况下出现的软故障,或者进行 系统升级。同时人机交互功能也是支持其它必要的配置和管理功能所必须的。人 机交互功能须在系统功能确定的基础上统一设计,并能满足用户对远程维护和管 理的需求。 2 3 6 机问通信方式及消息的定义 机间通信方式 双机之间用于备份的的通信协议主要是用来同步和备份数据,应该选用u d p 协 议。不使用t c p 协议主要是基于下面几个方面的考虑: 1 虽然t c p 协议提供的传输是可靠的,但是t c p 层的确认并不意味着对方高 层软件确实成功处理了数据,因此仍然可能出现双机间数据的不一致。为了避 免双机间数据的不一致,在高层必须提供某种证实机制,其功能覆盖了t c p 本身的证实机制,因而此时t c p 的优点就不明显了。 2 就开销而言,t c p 协议的开销比u d p 大得多。因而,采用u d p 协议在效率 上比较适合。 3 系统中双机的地位是对等的,但t c p 协议本身的处理是不对称的,有客户 机和服务器之分,因此采用t c p 协议就结构上不太适合。 4 t c p 是面对字节流的,而u d p 是面对报文的。系统在传输层协议上传输的 是报文( 分区信息,更新的数据,应用程序等) ,需要区分报文界限。因此 u d p 比t c p 更适合。 1 0 监控系统中网络控制器热备份的设计与实现 差错检验 利用传输层和链路层协议自身的校验功能来实现双机间通信的差错检验是方 便可行的策略。以太网链路层m a c 帧中的3 2 位f c s 差错校验和u d p 帧中的校验序 列提供了数据传输的校验功能。在n c 的整体设计中,这两个功能都是对应用程序 可见的,但是备份应用可以只用u d p 的校验序列就可以完成对数据的差错检验并 在此基础上实现进一步的重传功能,弥补u d p 的不足。 证实策略 证实策略即上面提到的简单重传功能的一部分。如果接收方正确收到了数据, 应该另发送发知悉;否则在经过一段时间之后发送方会重传数据。证实策略可以 在接收方验证收到的u d p 净荷无误之后发送应答消息给发送方来实现。 消息类型及其功能 根据前面的相关描述,n c 实现备份功能所需要的消息类型和相应的功能如下: 命令涓意( d o u b l e m s g c o m m a n d ) :双机间交互的数据( 双机态的备份数据、告 警数据、管理员发送的指配数据等) 。当主机工作在单机状态下时不向备机同步 双机态的备份数据。 证实涓意( d o u b l e m s g a c k ) :请求下一数据同时证实已经收到的数据,避免对 端重发;一定时间内没有有效数据往链路上发送时发送证实消息,以保证链路上 一直有交互数据避免系统误判。 试挥消息( d o u b l e m s g f e e l ) :发送该消息,以确定对方是否处于活动状态。 倒换涓惠( d o u b l e m s g e x c i _ n g e ) :在主备双机间,通知对端准备倒换。倒换 方式分为:主备倒换( 对方成主机、自己成各机) :主机复位( 对方成单机、自 己成脱机) ;备机复位( 对方成单机、自己成脱机) 。 确定倒换消息( d o u b l e s g d o - e x c i a n g e ) :在主备双机间,各机确定上升为主 机后回送主机确定倒换消息。 教据涓意( d o u b l e s 鲫a t a ) :在主脱的情况下,用来传送主机的当前数据映 象,只用于脱机恢复时。 消息结构 消息体的结构如图2 3 所示: 图2 3 消息体结构 其中各字段的含义 和长度为: t m p e ( 1 个字节) : 消息的类型; 第二章双机热备系统基本原理与n c 备份功能需求 l l l e a ( 2 个字节) :d a t a 的长度; d a t a ( 第4 字节开始) :消息的内容。具体的说,在命令消息中,d a t a 为 备份数据和初始指配的内容;在倒换消息中,d a t a 为倒换方式;其中: a c t i v e t o s t a n d b y 表示对方成主机、自己成备机; a c t i v e t o o f f l i n e 表示对方成主机、自己成脱机; s t a n d b y _ j o o f f l i n e 表示对方不变、自己成脱机;确定倒换消息中, d a t a 空;数据消息中,d a t a 为主机的数据映象;试探消息中,d a t a 为发送 者的身份标识。 第三章相关的i _ i n u x 系统功能和网络协议的研究 1 3 第三章相关的l i n u x 系统功m 一- 幂n 网络协议的研究 n c 系统中的操作协议转换主要由软件实现,这些软件运行在l i n u x 平台之上。 作为应用最广泛的类i j n i x 操作系统,l i n u x 对本系统而言最主要的优点是其拥有 众多的开放资源和源码,有利于根据实际需要改造或者编写所需的核心程序。由 于n c 中的数据热备份操作需要干预对存储设备的读写并利用网络设备实现双机 通信,同时在核心层和用户层的各功能进程之间存在大量的交互通信和同步问题, 因此我们对l i n u x 的设备管理和进程通信机制进行了较深入的研究,以便于在方案 设计中应用。此外,双机间的通信、对端状态的查询和管理等涉及网络通信,因 此本章也对相关的网络通信协议进行了介绍。本章直接叙述相关内容,略去了对 l i n u x 和网络的基本知识的介绍。 3 1l i n u x 设备管理 l i n u x 系统中对设备的管理采用设备文件管理方式。l i n u x 系统下的驱动程序 仅仅为相应的设备提供基本的输入输出函数,不需要安装,只要向虚拟文件系统 ( v f s ) 注册就可以使用。当应用程序需要使用此设备时,可以访问该设备对应的 文件节点,利用v f s 调用该设备的相关处理函数。 3 1 1l i n u x 下的设备驱动程序介绍 设备驱动程序与设备类型一一对应,设备的主设备号表示设备的类型。一个 驱动程序可以控制一种类型的多个物理设备,驱动程序使用设备的次设备号对这 些设备进行区分。 在l i n u x 系统中,当使用f o p e n 函数打开一个文件时,可以得到该文件对应 的s t r u c tf i l e 结构,进而得到该文件的操作接口f i l e _ o p e r a t i o n s ,通过接口实现对 文件的操作。当使用o p e n 函数打开该文件时,得到s t r u c ti n o d e 结构,进而得到该 文件的操作接口。对于字符设备而言,f i l eo p e r a t i o n s 结构就是其设备接口,而 块设备的设备接口严格来说应该是b l o c k _ d e v i c e _ o p e r a t i o n s 结构。块设备注册时 提供给内核的就是该结构,根据该结构生成对应的m eo p e r a t i o n s 结构,放入s t m c t i n o d e 结构。s t r u c ti n o d e 结构中成员变量s t r u c tb l o c kd e v i c e ib d e v 中的关键成员 变量是s t r u c tb l o c k , d e v e i c e _ o p e r a t i o n s + b do p ,它是块设备注册的操作函数表, 可以根据该结构生成对应f i l eo p e r a t i o n s 结构。主要的一些数据结构如下所示: s t r u c tf i l e ( s t r u c tf i l e ;_ o p e r a t l o n s * fo p 监控系统中网络控制器热备份的设计与实现 s t r i l c ti n o d e ( 一 s t r u c tf i l e _ o p e r a t l o n * i _ f o p ; s t r u t * b l o c k _ d e v i c e * i _ b d e v ; ) ; s t r u c tf i l e _ o p e r a t l o n s s t r u c tm o d u l e * o w n e r ; l o f f _ tf * l l s e e k ) s t r u c tf i l e 1 0 f f _ t i n * ) ; s s l z e _ t ( * r e a d ) ( s t r u t , f i l e ,c h a r ,s i z e _ t ,l o f f _ t ) ; s s i z e _ t ( * w r i t e ( s t r u c tf i l e ,c o n s tc h a r s i z e _ t , l o f f _ t ; i n * ( * r e a d d i r ) ( s t r u c tf i l e ,v o i d ,f i l l d l r _ t ) : u n s i g n e d i n * ( * p o l l )s t r u c t f i l e , s t r u c t p o l l _ t a b l e _ s t r u c to ) ; i n * ( * i o c t l ) ( s t r u c ti n o d e ,s t r u c tf i l e ,u n s i g n e d i n * u n s i g n e dl o n g ) ; i n * ( * m m a p ) ( s t r u c tf i l e ,s t r u c tv m _ a r e as t r u c t ) : i n * ( * o p e n i ( s t r u c ti n o d e ,s t r u c tf i l e ) ; i n * ( * f l u s h ) s t r u c tf i l e ) ; i n t ( * r e l e a s e ) ( s t r u c tl n o d e ,s t r u c tf i l eo ) ; i n * 【* f s y n c )( s t r u c tf i l e ,s t r u c td e n t r y ,i n t d a t a s y n c ) ; i n * ( * f a s y n c ) i n * s t r u t * f i l e ,i n t ) ; i n * ( * l o c k ) ( s t r u c tf i l e ,i n * s t r u c tf i l el o c ko ) ; s s i z e _ t ( * r e a d v ) ( s t r u t * f i l e ,c o n s * s t r u o ti o v e c , u n s i g n e dl o n g ,l o f f _ to ) ; s s l z e _ t ( * w r l t e v ) s t r u o tf i l e ,c o n s * s t r u o ti o v e c , u n s i g n e dl o n g ,l o f f _ to ) ; s s i z e _ t ( * s e n d p a g e ) ( s t r u c tf i l e ,s t r u c tp a g e ,i n * , s i z e _ t ,l o f f _ t ,i n * ) ; u n s i g n e dl o n g( * g e t _ u n m a p p e d _ a r e a ) s t r u c t f i l e , u n s i g n e dl o n g ,u n s i g n e dl o n g u n s i g n e dl o n g u n s i g n e d l o n g ) ; ) ; s t r u c tb l o c k _ d e v l c eo p e r a t l o n s ( i n ti * o p e n ) s t r u c ti n o d e ,s t r u t * f i l e ) ; i n * ( * r e l e a s e ) ( s t r u c ti n o d e ,s t r u c tf i l eo ) ; 第三章相关的l m u x 系统功能和网络协议的研究 1 5 ) ; i n t ( + i o c t l ) ( s t r u c ti n o d e ,s t r u c tf i l e ,u n s i g n e d , u n s i g n e dl o n g ) ; i n t ( * c h e c k _ _ m e d i a _ c h a n g e ) ( k d e v _ t ) ; i n t ( * r e v a l i d a t e ) ( k d e v _ t ) ; s t r u c tf i l e _ o p e r a t i o n sd e f b l kf o p sz ( o p e n : b l k d e v _ o p e n r e l e a s e : b l k d e v _ c l o s e , l l s e e k : b l o c k _ l l s e e k , r e a d : g e n e r i c _ f i l e _ r e a d w r i t e : g e n e r i cf i l e _ w r l t e , m m a p :g e n e r l c _ f i l e _ n m a p , f s y n c : b l o c l c - - f s y n c , i o c t l : b l k d e v _ i o c t l , ) ; d e f _ b l k _ f o p s 结构中函数分两类。一类最终归结到用户注册的 b l o c k _ d e v i c e _ o p e r a t i o n s 结构中的函数调用( 例如o p e n ) ;另一类函数在用户注册 的b l o c k _ d e v i c e _ o p e r a t i o n s 结构中找不到对应的函数( 例如r e a d ) 。 b l k d e v - 0 p 锄o 的调用流程是,首先调用s t r u c ti n o d e 中的i _ b d e v l x l o p o p e n , 若该函数为空,调用利用g e t _ b l k f o p s ( m a j o r ( i n o d e i _ b d e v ) ) 调用b l k d e v s 】 结构中与该文件对应的b l o c k - d e v j c c - o p e r a t i s ) 中的o p e n 函数。 3 1 2l i n u x 下块设备驱动程序 3 1 2 1 块设备驱动程序接口 l i n u x 内核与驱动程序的接口是以“块设备开关表”和“字符设备开关表”分 别描述的。开关表是一个核心数组,数组的大小等于此操作系统所支持的设备种 类数。每一种设备类型在表中有若干表项,这些表项在系统调用时引导核心转到 适当的驱动程序接口。在l i n u x 中,块设备的开关表项由b l k d e v s m a x _ b l k d e v 表示。 # d e f i n em a x _ b l k d e v2 5 5 s t a t i cs t r u c t ( c o n s tc h a r * n a m e ; s t r u c tb l o c k _ d e v l c e _ o p e r a t i o n s * b d o p s ; ) b l k d e v sf n a x _ b l k d e v ; 该结构与字符设备的c h r d e v s m a x _ b l k d e v 类似,通过 c h r d e v s m a x _ b l k d e v 即可满足字符设备的操作需求。但是对于块设备,仅仅有 b l k d e v s m a x _ b l k d e v 是不够的。d e f b l k _ f o p s 中的成员函数除了o p e n 、r e l e a s e 等函数利用了设备注册时提供的b l o c kd e v i c e _ o p e r a t i o n s 结构中的成员变量外, 1 6 监控系统中网络控制器热备份的设计与实现 其它函数都是采用所有块设备通用的操作函数。由于b l o c k , r e a d 与b l o c k _ w r i t e 等 函数必然要涉及到硬件的操作,因此在通用块设备操作函数中仍然需要调用一个 设备相关的操作函数。为此l i n u x 中专门设置了b l k _ d e v 【】这个全局数组及相关结 构。该数组以主设备号为索引,每个已在系统中注册的块设备都在该数组中有对 应的一项。b l k _ d e v 【】数组中的元素是b l kd e vs t r u c t 结构类型的,其中含有底层 设备操作函数的指针以及请求队列。在后面还会对该数组的作用进一步介绍。 t y p e d e fs t r u c tr e q u e s t _ q u e u er e q u e s t _ q u e u e _ t s t r u c tb l k _ d e v _ _ s t r u c t ( | q u e u e _ p r o ch a st ob ea t o m i c r e q u e s t _ q u e u etr e q u e s t _ q u e u e ; q u e u e _ p r o c* q u e u e ; v o i d * d a t a ; ) ; s t m c tr e q u e s t _ q u e u e 用来管理块设备的请求队列。一般情况下,一个块设备 对应一个s t r u c tr e q u e s t _ q u e u e 。在该结构中主要包含操作函数r e q u e s t _ f i n ( 块设备 的底层接口函数) 与读、写请求的链表r e q u e s t _ f r e e l i s t 2 。通过这个数组中的两个 l i s t ,可以分别访问保存读、写请求的队列。_head s t r u c tr e q u e s t _ q u e u e (t h eq u e u er e q u e s tf r e e l i s t ,o n ef o rr e a d sa n do n ef o r w
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年全国英语二级试卷及答案
- 值班培训考试题及答案
- 深度研究:2025年K2教育人工智能个性化学习系统在提升学生学习动力中的应用报告
- 青海净化工程方案(3篇)
- 押题宝典教师招聘之《小学教师招聘》模考模拟试题及参考答案详解【突破训练】
- 2025年A级考试试题及答案
- 教师招聘之《幼儿教师招聘》综合检测模拟卷及参考答案详解【综合题】
- 2025年教师招聘之《小学教师招聘》考前冲刺测试卷包附答案详解(达标题)
- 2025年上海速写高考试题及答案
- 金融工程专业辅修方案(3篇)
- 2025篮球裁判员培训
- 食品欺诈培训课件
- QGDW11008-2013低压计量箱技术规范
- 灯展场所安全管理制度
- 【A市农药包装物回收现状调研分析2100字】
- 功能性益生菌筛选-洞察及研究
- 2025构网型风力发电机组并网性能测试规程
- 物品抵押合同协议书模板
- 风险管理2025年风险管理师考试试题及答案
- 2025年电动车电子刹车器项目可行性研究报告
- 高级月嫂培训课件
评论
0/150
提交评论