在ubuntu下安装opensaf

周末用了两个晚上安装成功了opensaf,发文总结一下安装过程,和其他菜鸟共享。

系统信息:
虚拟机: Oracle VirtualBox
操作系统: ubuntu 2.6.38-12-generic


1. 安装opensaf依赖的类库,我这里只缺libxml2和tipc-config:

1) 更新apt-get
sudo apt-get update

2) 安装libxml2和libxml2-dev:(rpm转换成deb包安装没有成功)
sudo apt-get install libxml2
sudo apt-get install libxml2-dev
sudo apt-get install autoconf

3)安装tipc-config:
下载tipc utilities v2.0.0: http://tipc.sourceforge.net/tipc_linux.shtml
解压后用make来build,生成tipc-config,全路径为:/home/ubuntu/Downloads/tipcutils-2.0.0/tipc-config/tipc-config
在/root/.bashrc里把tipc-config的路径添加到PATH环境变量并执行source /root/.bashrc。
PATH=$PATH:/home/ubuntu/Downloads/tipcutils-2.0.0/tipc-config
export PATH

2. 安装opensaf:
1) 下载opensaf http://devel.opensaf.org/downloads

2) 解压后./configure, make, make install安装。(缺省的enable TIPC,参考TIPC和TCP性能比较:http://www.strlen.de/tipc/)

3)运行opensafd失败,/var/log/syslog里显示如下错误信息:
Jun 23 19:18:46 ubuntu-VirtualBox osafrded[5517]: Started
Jun 23 19:18:46 ubuntu-VirtualBox osafrded[5517]: bind FAILED Permission denied
Jun 23 19:18:46 ubuntu-VirtualBox osafrded[5517]: remove /var/lib/opensaf/rde_rda.sock FAILED No such file or directory
Jun 23 19:18:46 ubuntu-VirtualBox opensafd[5497]: Failed #012 DESC:RDE
Jun 23 19:18:46 ubuntu-VirtualBox opensafd[5497]: Going for recovery
Jun 23 19:18:46 ubuntu-VirtualBox opensafd[5497]: Trying To RESPAWN /usr/local/lib/opensaf/clc-cli/osaf-rded attempt #1
Jun 23 19:18:46 ubuntu-VirtualBox opensafd[5497]: Sending SIGKILL to RDE, pid=5511
Jun 23 19:18:46 ubuntu-VirtualBox osafrded[5517]: Exiting...

权限问题。
从opensaf的论坛里查到如下solution:
首先创建opensaf的group: groupadd opensaf,然后执行下面的命令:
  • 1) useradd -r -g opensaf -d /usr/local/share/opensaf/ -s /sbin/nologin -c "OpenSAF" opensaf
  • 2) echo "opensaf ALL = NOPASSWD: /sbin/reboot, /home/ubuntu/Downloads/tipcutils-2.0.0/tipc-config/, /usr/bin/pkill" >> /etc/sudoers
  • 3) echo 'Defaults:%opensaf !requiretty' >> /etc/sudoers
  • 4) echo 'Defaults:opensaf !requiretty' >> /etc/sudoers
  • 5) chown opensaf /var/lib/opensaf
  • 6) chgrp opensaf /var/lib/opensaf
  • 7) chown opensaf /var/run/opensaf
  • 8) chgrp opensaf /var/run/opensaf
  • 9) chown -R opensaf /var/log/opensaf
  • 10) chgrp -R opensaf /var/log/opensaf


4)继续运行opensafd失败,/var/log/syslog里显示如下错误信息:
Jun 23 19:42:47 ubuntu-VirtualBox immload: Load starting
Jun 23 19:42:47 ubuntu-VirtualBox immload: ***** Loading from XML file imm.xml at /etc/opensaf *****
Jun 23 19:42:47 ubuntu-VirtualBox immload: ***** FILE:/etc/opensaf/imm.xml IS NOT ACCESSIBLE ***********
Jun 23 19:42:47 ubuntu-VirtualBox immload: Load from imm.xml file ending ABNORMALLY dir:/etc/opensaf file:imm.xml
Jun 23 19:42:47 ubuntu-VirtualBox osafimmnd[6414]: LOADING APPARENTLY FAILED status:1
Jun 23 19:42:47 ubuntu-VirtualBox osafimmd[6406]: ******** LOADING FAILED. File(s) possibly missing, inaccessible or corrupt .. ? *********
Jun 23 19:42:47 ubuntu-VirtualBox osafimmnd[6414]: IMMND - Periodic server job failed
Jun 23 19:42:47 ubuntu-VirtualBox osafimmnd[6414]: Failed, exiting...

发现文件/etc/opensaf/imm.xml不存在,用下面的方法生成imm.xml:

cd /usr/local/share/opensaf/immxml/
如果需要修改主备设备数量,或主备设备hostname,需要在此目录下执行下面操作
./immxml-clustersize -s 1
修改刚才生成的nodes.cfg,将其中的SC-1改为对应的主机名(必须于/etc/opensaf/node_name 一致)
./immxml-configure
cp imm.xml.20100217_2201 /etc/opensaf/imm.xml

5)修改/etc/opensaf/nodeinit.conf里TIPC参数:
/usr/local/lib/opensaf/nid_tipc:TIPC:S:/usr/local/lib/opensaf/nid_tipc:4000::2:1:start eth3 1234:stop

root@ubuntu-VirtualBox:/etc/opensaf#  ifconfig -a
eth3      Link encap:Ethernet  HWaddr 08:00:27:e8:ff:a6 
          inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fee8:ffa6/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:4 errors:0 dropped:0 overruns:0 frame:0
          TX packets:36 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1300 (1.3 KB)  TX bytes:8557 (8.5 KB)

lo        Link encap:Local Loopback 
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:6475 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6475 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:474472 (474.4 KB)  TX bytes:474472 (474.4 KB)

6)启动opensafd:
/etc/init.d/opensafd start 

查看日志没有再报错 tail -f /var/log/syslog 
其他opensaf的log在/var/log/opensaf/下:
root@ubuntu-VirtualBox:/var/log/opensaf# ls *
mds.log  nid.log

dtlog:

saflog:
saLogAlarm_20120623_205543.log  saLogNotification_20120623_205543.log  saLogSystem_20120623_205543.log
saLogAlarm_20120623_205945.log  saLogNotification_20120623_205945.log  saLogSystem_20120623_205945.log
saLogAlarm_20120623_210633.log  saLogNotification_20120623_210633.log  saLogSystem_20120623_210633.log
saLogAlarm_20120624_140443.log  saLogNotification_20120624_140443.log  saLogSystem_20120624_140443.log
saLogAlarm.cfg                  saLogNotification.cfg                  saLogSystem.cfg


下面是启动的进程。
root@ubuntu-VirtualBox:/etc/opensaf# ps -ef|grep opensaf
root      1746     1  0 14:04 ?        00:00:01 /bin/bash /usr/local/lib/opensaf/nid_tipc start lo 1234
opensaf   1766     1  0 14:04 ?        00:00:00 /usr/local/lib/opensaf/osafrded
opensaf   1779     1  0 14:04 ?        00:00:00 /usr/local/lib/opensaf/osaffmd
opensaf   1786     1  0 14:04 ?        00:00:00 /usr/local/lib/opensaf/osafimmd
opensaf   1795     1  0 14:04 ?        00:00:03 /usr/local/lib/opensaf/osafimmnd
opensaf   1859     1  0 14:04 ?        00:00:00 /usr/local/lib/opensaf/osaflogd
opensaf   1873     1  0 14:04 ?        00:00:00 /usr/local/lib/opensaf/osafntfd
opensaf   1881     1  0 14:04 ?        00:00:00 /usr/local/lib/opensaf/osafclmd
opensaf   1896     1  0 14:04 ?        00:00:01 /usr/local/lib/opensaf/osafamfd
root      1904     1  0 14:04 ?        00:00:03 /usr/local/lib/opensaf/osafamfnd
root      1917     1  0 14:04 ?        00:00:00 /usr/local/lib/opensaf/osafsmfnd
opensaf   1919     1  0 14:04 ?        00:00:00 /usr/local/lib/opensaf/osafsmfd
opensaf   1930     1  0 14:04 ?        00:00:00 /usr/local/lib/opensaf/osafmsgnd
opensaf   1965     1  0 14:04 ?        00:00:00 /usr/local/lib/opensaf/osaflcknd
opensaf   1974     1  0 14:04 ?        00:00:00 /usr/local/lib/opensaf/osafmsgd
opensaf   1980     1  0 14:04 ?        00:00:00 /usr/local/lib/opensaf/osafckptnd
opensaf   1994     1  0 14:04 ?        00:00:00 /usr/local/lib/opensaf/osafamfwd
opensaf   2001     1  0 14:04 ?        00:00:00 /usr/local/lib/opensaf/osaflckd
opensaf   2008     1  0 14:04 ?        00:00:00 /usr/local/lib/opensaf/osafevtd
opensaf   2024     1  0 14:04 ?        00:00:00 /usr/local/lib/opensaf/osafckptd

你可能感兴趣的:(ubuntu)