分享

OpenAFS学习手札(3)

 yeqiwei 2005-12-30
   现在继续完成我的手札,这篇是将完成第一台AFS服务器的配置,第一台服务器配置的时候是服务端和客户端在一台机器上的。这里我将按照 OpenAFS 官方手册上的顺序来进行,我不确定是不是需要分开一篇或者两篇来写,看长度决定吧。让人伤心的是,我在公司配合这手札做 OpenAFS 试验的服务器,在我全部搞定配置并开始传文件的时候硬盘挂了,好在我已经完成该记录的东西,重新做一遍系统也就一天吧。

5 启动BOS Server

       在完成OpenAFS的RPM包安装后,就可以在你的第一台AFS服务器上启动AFS的各个服务了。在使用RPM包安装AFS组件的时候,已经将各种常用的AFS控制命令(如:bosfsklog等)装载进 /usr/sbin 目录,如没有特殊说明,后面所涉及的命令均可以在任何目录下运行。
       使用 bosserver 命令来启动Basic OverSeer (BOS)ServerBOS Server 用来监控其他AFS服务)。由于你还没有配置你 cell 的AFS认证,BOS Server的普通操作就没有办法通过认证检查,所以在命令行中就需要用 -noauth 参数来禁止使用认证检查。在无认证的模式中,bos 命令就不用验证身份和权限了。
       安全提示在对 cell 做禁用认证模式操作的时候,最好不要离开你的机器,并且不中断的一次性做完各种操作。除非你用认证模式重启了 BOS Server
        启动 bossever 的时候系统将自动做一些操作,比如创建一些文件等:
       -------------------------------
        # /usr/afs/bin/bosserver -noauth &
       -------------------------------
       运行后用 ps -ef 命令可以看到 bosserver 已经在系统后台以非认证的方式运行。此时检查系统会发现在运行bosserver后系统创建了 /usr/afs/db ,/usr/afs/local 目录和 /usr/afs/etc/ThisCell ,/usr/afs/etc/CellServDB 文件以及在 /usr/vice/etc 下的相应文件连接。

6 定义cell名称和配置服务器相关

      现在我们可以分配 cell 的名字了,要注意的是名称中不可以包括大写字母或者超过64个字符。
      后面的命令中使用我自己的例子,在我的试验里<machine name>为 SA-test2<cell name>为 afs.server
      使用 bos setcellname 命令来分配cell 名称,这个命令会修改 /usr/afs/etc/ThisCell (定义服务器 cell 名称 ),/usr/afs/etc/CellServDB (列出 cell 的数据库服务器)这两个文件。
       要注意的是:在这个手册中,以后相关机器名(machine name)的讨论中均要用的是 FQDNfully-qualified hostname (比如:fs1.abc.com) 。cell 名(cell name)也一样。在我的实践中发现如果不用 FQDN 名,只用传统机器名其实也可以,但是这样会导致本机AFS系统因为无法解析 FQDN 名而无法启动,解决办法就是修改文件 CellServDB 中机器名(machine name)前的IP地址:将地址修改为本机网卡地址而不是原来的回环地址 127.0.0.1(命名详细请看本篇最后的小讨论)
       请确认 bosserver 正在后台运行,这时候才可以使用 bos setcellname 命令:
       ------------------------------- 
       # bos setcellname  <machine name> <cell name> -noauth      
       -------------------------------
       运行这个命令后名称定义将被写入 /usr/afs/etc/ThisCell ,/usr/afs/etc/CellServDB 这两个文件,用 vi 或者 cat 命令可以看到格式如下(以我试验的名称为例):
       -------------------------------
       # vi /usr/afs/etc/ThisCell 
       afs.server
       -------------------------------   
       # vi /usr/afs/etc/CellServDB 
       >afs.server #Cellname
         127.0.0.1   #SA-test2
       -------------------------------
       显然我没有用 FQDN 名,所以为了以后AFS系统的正常运行,我将 127.0.0.1 改成网卡的实际地址192.168.0.8。   
       使用 bos listhosts 命令验证我们已经注册了第一个 cell 数据库:
       -------------------------------
       # bos listhosts <machine name> -noauth
       Cell name is afs.server
            Host 1 is SA-test2
       -------------------------------

7 数据库服务器的启动

       下一步用 bos create 命令在 /usr/afs/local/BosConfig 文件中建立4个数据库服务器组件服务的记录,并让它们跑起来,这四个在数据库服务器上跑的程序是:
        1:认证服务器(the kaserver process),处理认证数据库
        2:备份服务器(the buserver process),负责备份数据数据库
        3:保护服务器(the ptserver process),负责保护数据库
        4:卷定位服务器(the vlserver process ),负责卷定位数据库(VLDB
       注意:…………
       在后面的命令中都将包括 -cell 参数,这个参数就是你在“6 定义cell名称和配置服务器相关”中所定义的cell name
       1:使用 bos create 命令加入认证服务器记录并启动它(以我试验的名称为例):
       --------------------------------------
       # bos create SA-test2 kaserver simple /usr/afs/bin/kaserver -cell afs.server -noauth 
       --------------------------------------
       这时候会看到系统报告认证错误,你可以忽略这个错误,它是不会影响系统运作的。
       2:继续启动备份,保护,卷定位数据库服务:
       --------------------------------------
       # bos create SA-test2 buserver simple /usr/afs/bin/buserver -cell afs.server -noauth 
       # bos create SA-test2 ptserver simple /usr/afs/bin/ptserver -cell afs.server -noauth
       # bos create SA-test2 vlserver simple /usr/afs/bin/vlserver -cell afs.server -noauth
       --------------------------------------    
       运行以上命令后,系统已经修改了/usr/afs/local/BosConfig 文件,用 vi 或者cat 命令可以看到:
       --------------------------------------
       # vi /usr/afs/local/BosConfig
       restartime 11 0 4 0 0
       checkbintime 3 0 5 00
       bnode simple kaserver 1
       parm /usr/afs/bin/kaserver
       end
       bnode simple buserver 1
       parm /usr/afs/bin/buserver
       end
       bnode simple ptserver 1
       parm /usr/afs/bin/ptserver
       end
       bnode simple vlserver 1
       parm /usr/afs/bin/vlserver
       end
       ------------------------------------
       同时用 ps -ef 命令可以发现以上4个进程已经在系统中运行。这时也可以查看各个服务运行日志(log中会打印出服务启动的详细情况,这是系统配置调整不可少的),日志存放在 /usr/afs/logs 中,对应于bosserverkaserverbuserverptservervlserver的log分别为:BosLogAuthLogBackupLogPtLogVLLog
       注意:如果在启动这些服务的时候,log报告各个服务因为 Ubik 错误而不能启动,请查看 CellServDB 的配置中机器名(machine name)前需要配置的是你的本机IP而不是127.0.0.1,如果修改后还是不行,那就将 /etc/hosts 文件中的 127.0.0.1 也修改为你的本机IP,并且这样做会对后面文件服务器(fs server)和客户端的配合运行带来方便。
       至此数据库服务器上的BOS服务部件已经正确运行了。
 

200408220128 关于机器名(machine name)和单元名(cell name)的命名讨论

       在配合这篇手册的试验系统搭建中,我一开始用的是传统的machine nameSA-test2cellnameafs.server。在CellServDBmachine name前的IP已经从127.0.0.1改为本机的IP:192.168.0.8。各个服务运行正常。在配置完文件服务器(fs server),安全性等等后,用运行其他机器上的客户端程序去连接却得到下面的错误:
       ---------------------------
        afsd: All AFS daemons started.
        afsd: Can‘t mount AFS on /afs(22)
       ---------------------------
在google上查到一大堆的人有这样的问题,但是没有有价值的答复,没有找到返回的这个错误类型22到底是什么,更没有解决方法。唉,靠天靠地,不如靠自己啊。在查看客户端机器上系统log:/var/log/message 的时候发现log中有一条是:
    -----------------------------------
     localhost kernel: afs: Lost contact with  file server 127.0.0.1 in cell afs.server
   -----------------------------------
于是我判断因为没有DNSafs.server 做地址解析,客户端于是将afs.server解析成为127.0.0.1,所以没有办法连上afs.server,但是这点并不那么确实,因为在客户端的CellServDB中已经定义了afs.server的地址是192.168.0.8。抱着试试看的心态,我为afs.server做了DNS记录,结果和我怀疑的一样,这么做并没有解决问题。出错的信息是一样的。想去分析客户端afsd的源程序,发现是编译过的而不是脚本。于是我回过头来分析客户端上这个出错信息,当服务器和客户端在同一台机器上的时候一切正常,但是分离后就有了问题,看了上面这个错误信息N遍后我觉得它所要表达的意思不是和127.0.0.1afs.server服务器失去连接,而是:afsd和在cell afs.server上地址为127.0.0.1的文件服务器(file server)失去了连接!这才是关键!是客户端连不上file server!怪异的是file server的地址并没有在客户端上配置,所以应该是BOS返回给客户端的,可是为什么file server应该是起在127.0.0.1上了而没有起在我所需要的192.168.0.8上?DNS已经解析了cell afs.server是在192.168.0.8上。CellServDB中也定义了正确的afs.server地址,我去查看了file server的log:Filelog,果然显示是启动在127.0.0.1上了,问题得到定位。分析:服务启动的时候由于机器名为传统的SA-test2file server/etc/hosts 直接得到的是localhost,是127.0.0.1,所以返回给客户端也是这个回环地址。于是我修改了 /etc/hosts 中的记录,客户端成功连上服务器!
       如果当时使用了FQDN名,并在DNS上添加记录,问题就不会这么麻烦了,不过也有可能发生。所以我建议,在搭建环境的时候尽量使用FQDN名,不用也没有关系,但是需要在调试的时候时时想着名称解析的问题。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多