DSL虚拟化分布式软件日志管理系统研究

3.0 闻远设计 2024-03-17 62 4 672.48KB 8 页 免费
侵权投诉
DSL 虚拟化分布式软件日志管理系统研究
0 、引言
随着云计算规模的不断扩大,灾备系统的发展成为各行各业关注的重点,云计算故障可能产生灾
难性的后果,云计算中的系统故障和软件故障则会影响成千上万家企业.与此同时,分布式软件的
组成部分也日趋庞大与复杂,这给系统调试以及系统维护带来了很大的不确定性.
如何有效利用分布式软件在运行过程中产生的大量软件日志文件来分析状态和改善性能,以及满
足软件日志服务在效率、健壮性、可扩展性方面的需求,是一个具有研究意义和实用价值的课
.虚拟化技术的不断发展给灾备与容错技术提供了更加广阔的前景.
针对灾备云平台中所出现的系统运行环境和服务软件的故障,利用虚拟化技术封装各虚拟节点中
系统的服务软件故障,可将故障带来的损失大大降低.由于分布式软件系统十分复杂,这使得分布
式软件的故障处理和维护得变异常困难.
庞大且复杂的系统在日常运行中会有各种各样的日志,若不能将这些文件及时妥当的保存,一旦
出现问题或性能低下时,很难提出有效的解决方案.针对分布式软件日志管理中存在的诸多问题,
为了实现分布式软件调试、监控、故障诊断与恢复功能,以及各结点的高可用性和高可靠性,
文在基于虚拟化的分布式容错备份技术的背景下,提出了 VDSL 虚拟化分布式软件日志管理系
,主要有以下功能点:第一,虚拟化支撑平台中分布式软件的软件日志记录;第二,虚拟化支撑平
台中软件日志同步.
1、软件日志记录平台
软件日志记录的工具包括插桩工具,翻译工具以及调试工具.插桩工具获得程序的控制权,翻译工
具记录程序指令的执行流,调试工具产生各种可供阅读性的软件日志文件.
以上 3个工具实现了软件日志功能完整的工作流程.
1.1 动态二进制翻译
动态二进制翻译是在程序运行时动态的执行二进制代码翻译.
一般以程序的代码块为基本单位,经翻译后生成的目标代码块立即存入缓存代码中执行,直到遇
到一个新的且未翻译过的代码块.动态二进制翻译的优势是跟随着动态程序的控制流推进,很好
地解决了代码覆盖和改后执行代码的问题.
同时,由于能得到程序的动态运行时数据信息,更有利于进行有效的信息搜集和性能优化.
1.2 户级翻译框架
针对虚拟化环境下运行的业务软件,本文提出了一种用户级别的翻译框架:LogOS.LogOS 是一个
针对系统翻译的基于动态翻译框架扩展的翻译框架,可以对内核和用户级二进制文件进行翻
.LogOS 允许在包Intel VT 技术的 Xen VMM ,对未改的程序进行插桩和翻译.LogOS
体架构1.
LogOS 由一个虚拟(virtual machine,VM),一个代码高缓存单code cache 和一个 Logger 调用
检测 API .VM 由一个即时,一个模拟和一个调程序组成.LogOS 得对程
序的控制,VM 的组成部分执行程序:度器启JIT(just in time)检测程序
代码.被编译的代码存在目标代码高缓存单.
代码缓存进出 VM 及到存和恢复用程序状态 emulator 翻译不能直执行的指令.
是给需要 VM 特殊处理的系统调用使用的.LogOS 立在作系统上的,它只
状态下的代码.程序在 LogOS 中执行完,Logger 完成了对程序的插桩,后与程序分
,将所得到的不同粒度的软件运行日志存在本地文件中.
1.3 软件日志记录
日志系统实现的日志记录功能包括:检查,函数调用检查,缓存调用检查,线程程序竞争检查
堆栈使用检查.利用 Xen 虚拟化技术将 LogOS GuestOS 下面,可以避免修GuestOS
,且可以观测Domain U 指令的执行,提供了好的隔离性和透明,同时,Xen
Hypervisor LogOS 提供模拟的件支.
1.3.1 存分析
Memlog 堆栈异常是程序的代码错,处理堆栈异常困难的地方在于定位 Bug 发生的代
.Memlog 检查内存中一行为,够检测到程序运行中的所有存错误情况.Memlog
作为动态二进制检测工具,改程序代码的情况下动态检测指令访堆栈情况,
录具有实用价值的运行日志信息.
其检测原理如2.有效值表映射:进程中地址空间的各个存在和它匹配映射
;同样,一样存在和它匹配的位.节或者寄值的有效性和已初始化的值可以有
这样的量标记.有效地址表映射:用一个 bit 址空间的各个节的地,记录程序是可以
这个.检测原:当程序读一个节时会检查之匹配的位的真假.若为,的读
作位是非法操.
当程序一个节时,检查之匹配的位的真假.若为,写操作位是非法操.
1.3.2 缓存调用分析
Cachelog 指令访问缓存的中率高低对一个程序的运行速度存在不的影响.Cachelog 检测
指令对存的每次计算出缓存中率,出影响程序性能的瓶颈.为了模拟程序在不同 Cache
配置下的执行行为,Cachelog 必须探测到程序每条指令的每次缓存读写命中率,而根据各种
Cache 配置模拟 Cache 的行为.为了对不同的 Cache 配置实现行为模拟,必须理解 Cache 特征参
.
对于普通缓存块,格参数包括:缓存与缓存块的大、缓存的组方式与替换策略等.对缓存
块的读替换Cache 行为模拟中十分关,下面阐述的算法原型可以实现以上功能.
1):Read_Addr Block_Size 匹配并.按照块的组用对后的 Read_Addr
查找缓存块所在的组.遍历 Cache_Block 检测有效值,并查找同地Cache_Block
.查找成功,hit_count++,反之,miss_count++.
同时,更新缓存块的数据.
2)写操:按照写配原.假设缓存时发生不中的情况,一定要将缓存的数据置换入缓
存进.
此时,对缓存作和读.为当前流行的 CPU 遵循配原,所以
Cachelog 用统一算模拟缓存的写操.
3)替换操:以下一步即将访问的地,查找其所保存的组.依据相应置换在组里选
取命中率低的缓存块.重新计算新缓存块的 block_start_addr.
2 、分布式软件日志同步
2.1 日志
软件日志记录进程在执行时产生各种数据,包括程序在运行时的各个级别数据信息.为了支
故障计与性能分析,日志系统很重要的一个部分计日志记录的.日志记录的
是可配置,可以配置分布式软件在运行过程中所要记录的日志数据信息.为保
志管理系统的用性,定义了如下日志记录:Id:日志记录中的日志 Id 连续递增,当需要对
系统中个节点中的个服务软件的状态在某段的运行状进行分析时,查找这一段连
Id.
IpAddress:记录日志的主IP.由日志系统过本地函数获得.
LogTime:记录日志的时.LogPid:产生日志的进程.
ObjName:产生日志的分布式软件对象名称.
LogType:日志类型,表示不同类型软件日志的用.
LogLevel:日志级别,根据不同粒度数据流记录可以产生不同的日志.
LogText:日志.
为了确保日志文件有,日志系统将上的日志数据封装为具有统一式的日志文件.
志系统的日志记录结与日志文件结构之间的关系,3.
对于统的文本传输方式,日志系统用效率更高的二进制数据传输方式.,在对日志文
数据之,本文CORBA Any 类型封装成 8位位组序,这样可以日志系统
密信息传输.外界看,日志信息传输过程中是完全透明,无法使用文本编辑器打开
志文件,这样可以确保日志传输安全.
传输,开始解封装日志信息.CORBA 中提取属于本文日志文件的性值,还原
前的原始格.以上流程实现了软件日志的式处理.
2.2 日志传输
假设一个进程同时申请访独占有系统资源.这种状况肯会使各进程之间产生
竞争.目前,在大多分布式软件系统中,个服务软件的个进程写自己的日志文件.
假设系统中有 k个进程,他们都在单写自己的日志文件,则进程不会产生互斥.假设
进程读日志文件的时,传输代理需要读这些日志文件中的,需要解决读写互斥
.,多个进程如何对同一个进程进行读写互斥操作是一个亟待解决的问题.
常的做法是对文件加,是用加解决文件读写互斥存在以下个问题:
1)对于很高的系统会影响系统的性能;2)可扩展性,制了节点的主性能.于是,本文提
出一种用于以上问题的方:冲区策略,4:K 个进程相互独,个进程各有
相应的缓冲区.
摘要:

DSL虚拟化分布式软件日志管理系统研究0、引言随着云计算规模的不断扩大,灾备系统的发展成为各行各业关注的重点,云计算故障可能产生灾难性的后果,云计算中的系统故障和软件故障则会影响成千上万家企业.与此同时,分布式软件的组成部分也日趋庞大与复杂,这给系统调试以及系统维护带来了很大的不确定性.如何有效利用分布式软件在运行过中产生的大量软件日志文件来分析状态和改善性能,以及满足软件日志服务在效率、健壮性、可扩展性方面的需求,是一个具有研究意义和实用价值的课题.虚拟化技术的不断发展给灾备与容错技术提供了更加广阔的前景.针对灾备云平台中所出现的系统运行环境和服务软件的故障,利用虚拟化技术封装各虚拟节点中系...

展开>> 收起<<
DSL虚拟化分布式软件日志管理系统研究.docx

共8页,预览3页

还剩页未读, 继续阅读

相关推荐

作者:闻远设计 分类:其它行业资料 价格:免费 属性:8 页 大小:672.48KB 格式:DOCX 时间:2024-03-17

开通VIP享超值会员特权

  • 多端同步记录
  • 高速下载文档
  • 免费文档工具
  • 分享文档赚钱
  • 每日登录抽奖
  • 优质衍生服务
/ 8
客服
关注