Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2258484
  • 博文数量: 862
  • 博客积分: 14125
  • 博客等级: 上将
  • 技术积分: 10598
  • 用 户 组: 普通用户
  • 注册时间: 2007-07-27 16:53
个人简介

https://github.com/zytc2009/BigTeam_learning

文章分类

全部博文(862)

文章存档

2019年(3)

2018年(1)

2017年(10)

2015年(3)

2014年(8)

2013年(3)

2012年(69)

2011年(103)

2010年(357)

2009年(283)

2008年(22)

分类: WINDOWS

2009-10-31 12:08:53

5.从UNIX平台访问Windows上VOB的互操作

在了解了以上所讲的网络环境中ClearCase互操作的配制后,也许你会有这样的疑问,如果反过来,让Windows做ClearCase VOB服务器端,而Linux做客户端,那样该如何配制使Linux客户端访问Windows上创建的VOB呢?我们在以上章节中介绍的三种情况在现实生活中应用的比较多,接下来将要介绍的情况在现实中尽管应用得相对比较少,但还是有此种可能性的,下面就来介绍一下这种环境究竟应当如何实现。在配置此种环境时,有两个难点需要解决。其一,如何创建VOB tag,使在Windows上的VOB可以在Linux中显示出来;其二,如何装载VOB,使之可以正常使用。只要解决了以上两个问题,我们就可以很顺利的搭建起此种互操作的环境了。当前的网络环境构造是这样的:在网络中我们有一个ClearCase VOB server, 它安装在Windows平台上,同时它也作为注册服务器(Registry Server);一台License Server;还有多个ClearCase客户端,他们都安装在Linux平台上。我们希望从一个Linux ClearCase的客户端来访问在Windows ClearCase VOB服务器上的VOB。

首先,同前面所有的操作一样,我们将ClearCase VOB服务器和ClearCase客户端指向同一个注册服务器(Registry Server)。关于在Linux平台上指定Registry Server的操作我们在前面的文章中已经详细讲解过了。

接下来,我们需要在Windows VOB服务器上激活CCFS。CCFS的英文全称叫ClearCase File Service,它是ClearCase提供的一种文件传输机制。通过激活该服务,使我们在一种操作系统上创建的静态视图(snapshot view)或网络视图(web view)能够访问另一种操作系统上的VOB。通常情况下,在安装了ClearCase后,CCFS是默认被激活的。如图在ClearCase配置面板中激活CCFS。同时我们也需要在面板中选择VOB服务器所在的域,如图。我们通过域来匹配在Linux上的用户和组的名称。


Fig5.1 激活CCFS服务并选择Windows所属域
Fig5.1 激活CCFS服务并选择Windows所属域

在注册服务器上,我们需要分别明确指定Windows VOB服务器和peer Linux客户端的Regions。由于我们的注册服务器与VOB服务器同在Windows上,如果在注册服务器上未显示Linux的Region时,我们需要用cleartool mkregion命令在注册服务器上创建跟Linux上Region同名的Region。


Fig5.2 指明Peer Linux客户端的Region
Fig5.2 指明Peer Linux客户端的Region

接下来的一步在互操作中非常关键,就是要解决VOB服务器端和客户端用户权限一致的问题,也就是说,在服务器端创建VOB的用户以及它所属组的名称和在客户端要装载该VOB的用户以及它所属组的名称信息要一致。如何在Windows及Linux创建用户和组的过程在该文档中并不做介绍,但在这里我们介绍一种验证方法来检查是否在Windows上和Linux上创建的用户和组的信息是匹配的。我们用credmap命令来检验。首先从Windows服务器端的C:\Program Files\Rational\ClearCase\etc\utils目录下运行credmap 命令,输出如下图。


Fig5.3 用credmap命令在Windows VOB服务器端查看用户和组的信息
Fig5.3 用credmap命令在Windows VOB服务器端查看用户和组的信息

在Windows上运行完后,我们再在Linux上运行credmap 这个命令。通过运行结果查看是否在Windows上和在Linux上的用户和所属组的信息是匹配的。如果最后的GROUP返回值是-2或NOBODY,那么表示匹配是不成功的。

在前期环境配置工作准备好后,我们需要在Windows VOB服务器端创建几个VOB,创建VOB的具体过程就不在这里敖述了,前面都已有所介绍。关键的一步是在创建完VOB后,我们需要在Linux Region上创建VOB tag。我们必须在Windows VOB服务器上创建VOB tag,并同过-region参数存储该VOB tag在Linux Region上。并且这个VOB tag的名称必须是Linux可以解析的,也就是以"/"开头,最后很重要的是,我们在创建VOB tag的过程中要用-ngpath这个参数,而不是-gpath,值得注意的是-ngpath这个参数后边跟的路径是一个本地路径。这也就是为什么我们在一开始要激活CCFS的原因。创建的过程如图所示:


Fig5.4 在Windows VOB服务器上创建VOB tag
Fig5.4 在Windows VOB服务器上创建VOB tag

在Linux Region中创建好VOB tag后,我们可以在Linux上通过cleartool lsvob命令看到该VOB tag和该VOB的存储路径。若想使用此VOB,我们需要在Linux客户端创建视图(view)并装载该VOB。在创建视图的时候要注意,我们只能创建静态试图(snapshot view),因为当从Linux ClearCase客户端访问Windows ClearCase VOB服务器上的VOB时,只支持通过静态视图的形式访问,并且必须通过指定-tmode参数使用strip_cr的文本模式。任何一个视图都有一个互操作文本模式,这个模式是通过在创建视图的时候指定-tmode参数来改变的,这个参数决定了在一个视图中文本文件所使用路径的规则,例如在Windows中,我们用"\"指定文件的路径,而在Linux中,我们用"/"来指定文件所在路径。具体创建视图的过程如下图所示:


Fig5.5 创建Linux客户端静态视图
Fig5.5 创建Linux客户端静态视图

试图创建完毕后,我们就可以装载VOB了。在装载过程中,由于我们使用了静态视图,因此要通过更改视图的config spec中的规则(rule)来装载VOB。我们先进入创建的试图所在的路径,然后通过cleartool edcs命令来更改config spec中的规则。运行完cleartool edcs后,我们编辑config spec文件如下例所示:
element * CHECKEDOUT
element * /main/LATEST
load /unixvob
编辑完文件保存,我们可以看到以下运行结果,如图:


Fig5.6 编写静态视图的Config Spec并装载VOB
Fig5.6 编写静态视图的Config Spec并装载VOB

这时,我们再查看当前目录就可以看到VOB已经被装载上了,同时在当前目录下还有一个叫update的日志文件,我们进入VOB,就可以正常在VOB中操作文件了。





回页首


6.小结

我们在本文中讲解了四种不同类型的在网络环境中配置ClearCase的方法。其中包括了在单一操作系统平台上,即全部是Windows或Linux平台的环境下,ClearCase客户端访问ClearCase VOB服务器端的情况;还包括了在混合操作系统平台的环境中,从Windows ClearCase客户端访问Linux VOB服务器上的VOB和从Linux ClearCase客户端访问Windows VOB服务器上的VOB的这两种互操作的情况。

在这四种类型的配置操作中,有共性的地方,也有不同的地方。共性之处其一就是ClearCase客户端与VOB服务器端用户权限的问题,要保证在VOB服务器端创建VOB的用户所属组的名称与在ClearCase客户端装载VOB的用户所属组的名称相同。其二,ClearCase VOB服务器端与ClearCase客户端需要指向同一台Registry Server。其三,VOB服务器上VOB的存储路径必须共享出来,不论是用NFS、CCFS、还是SMB中的哪一种方式共享。并且必须保证ClearCase客户端能够通过主机名访问到该VOB的存储路径。当然在配置四种环境中,不同之处比较多,其中比较特殊的是通过Linux ClearCase客户端访问Windows上的VOB时,必须通过CCFS创建静态视图来访问VOB。

通过本文的学习,我们已经掌握了在任何一种网络环境中搭建ClearCase,这也为进一步学习应用ClearCase打下了坚实的基础。





回页首


7.参考





回页首


8.致谢

在这里我想衷心的感谢我的Manager付鲁平和我的Team Leader姜静波,我相信如果没有他们的鼓励,我不会顺利完成此篇文章。还有要感谢所有和我一起工作的Rational组的同事,特别是施慧斌,商慧波,史新丽,和曾经在IBM共事过的郑如彬,他们在ClearCase相关技术方面提供了鼎力支持并一同讨论分析所遇到的难题。另外还有要感谢在IBM做Linux Support的工程师李建文,他提供了有关Linux系统的支持。当然还有我深爱的父母和男友,他们给了我精神上莫大的支持。最后,由于在写作过程中还参考了大量红皮书,IBM文档和IBM developerWorks上的相关文章,在此也向所有文章的作者表示衷心的感谢。





回页首


9.附加说明

免责声明
在本站点发表的话题仅代表本人观点,并非代表 IBM 的立场、策略和观点。本文档所介绍的信息仅仅限于本文的环境。本文档不提供任何类型的包括显式或隐含的担保,不对任何(但不限于)收入或利润的损失或其它间接的、特殊的、偶然的、必然的损失负责,使用者将自行承担由于使用本文档所造成的各类经济损失和法律责任。相关技术细节,请咨询IBM公司、操作系统服务提供商,或者直接质询作者。



关于作者

 

韩姗姗,是 IBM中国软件开发实验室 Rational 团队的软件工程师,熟悉 Rational ClearCase 与 Rational ClearQuest。


http://www.ibm.com/developerworks/cn/rational/r-hanss/
阅读(1322) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~