【必要环境说明】

网维大师版本号文件版本号:2000
网吧有2台系统虚拟盘服务器,1主,1副。
【问题现象】
客户机使用A镜像,从主服务器启动正常。同样使用A镜像,在副服务器上启动,客户机开机提示:failed to connect diskserver。
同时用户已经发现镜像同步不完整,img同步好了,但是有一个还原点始终无法成功同步。
【分析过程】
系统虚拟盘的问题一般看日志都是可以看出些门道的,于是直奔日志:
主服务器controlserver20120707.log,发现有日志提示:ControlCommitAskFileData Zero FileSize!,翻译之后是:控制文件数据文件提交要求零!,不是很好理解,进一步解释是:控制服务提交的文件数据大小为0。
副服务器Diskless Server20120707.log,发现有日志提示:fail to Initial DSPrivateDataManager!,意思是说无法初始化数据管理,而针对这个案例来说,其实就是无法正常加载img信息,所以出现开机提示failed to connect diskserver。
副服务器controlserver20120707.log,发现有日志提示:ControlCommitAckFileData No FileData To Write!,翻译成中文是:没有数据写入。
开始并不理解是什么意思,进一步看主服务器的还原点文件,发现镜像索引文件idx大小为0KB,用记事本打开里面内容为空,而正常的索引文件肯定不是0KB的,且该还原点文件建立日期是6月份,用户执行了合并还原点操作之后,该还原点文件仍然无法合并到img内同时无法删除,结果导致文件仍然保存,如下图:

idx文件大小为0KB的原因可能是磁盘方面曾经出过问题。

进一步查看镜像目录内的xml文件,发现在xml里的记录也保存着这几个还原点的信息,但是这几个文件实际上已经是垃圾文件,这么说的原因请查看还原点关系派生ppt,有动画演示过程。

  PPT文稿-还原点派生关系模拟.rar (54.2 KB, 850 次)

【原理依据】
img目录下的data、idx、mrk三个文件的作用介绍如下:
data:还原点数据(也就是开超级修改之后的变更数据)
idx:是data里的文件索引,用于查找数据块。
mrk:标记数据块未还原点内的数据,用于快速跳过还原点。
日志、以及img的xml描述文件
【与此可能有关联的现象】

【感谢补充】