socket write failed(24) _Netbackup的问题解决
1. 问题描述
netbackup的客户端与netbackup的服务器的IP地址不在同一个网端,并且两台计算机中间有一道防火墙,客户端是ping不通服务器的,无法通过ping测试网络的连通性。
为了保证netbackup的正常运行,需要开通两个计算机之间的3个端口的访问权限,分别是:13782,13720,13724。
通过检测防火墙的访问日志,我们可以看出客户端与服务器的之间的访问端口号和访问方向,大致为:
客户端 访问 服务器 13720
服务器 访问 客户端 13724
服务器 访问 客户端 13782
所以我们可以根据上面的情况,让网络管理员开通相关访问的端口。
在当前的客户端安装netbackup client(6.5),netbackup for db(6.5)等客户端软件后,可能是无法通过网络访问netbackup服务器,安装后有几个重要的文件没有生成,直接导致了在服务器端定义备份策略和定义客户端时报错(报错误号为25 和 24 的错误)
错误号=25 的错误是: (25) cannot connect to socket.
错误号=24 的错误是: (24) socket write failed.
本文的客户端为redhat linux 5.3 x86_64
1. 问题分析
2.1 首先我们看一下客户端安装后,在/etc/services文件中增加了3个端口的定义,如下所示:
Netbackup_client# more /etc/services|grep 13782
bpcd 13782/tcp # VERITAS NetBackup
bpcd 13782/udp # VERITAS NetBackup
Netbackup_client# more /etc/services|grep 13720
bprd 13720/tcp # BPRD (VERITAS NetBackup)
bprd 13720/udp # BPRD (VERITAS NetBackup)
Netbackup_client# more /etc/services|grep 13724
vnetd 13724/tcp # Veritas Network Utility
vnetd 13724/udp # Veritas Network Utility
2.2 客户端安装后,几个重要的配置文件
比较安装正常的客户端与本次出现问题的客户端,发现本次有问题的客户端安装后缺少几个netbackup client需要使用的几个关键文件,这些文件应该是在客户端安装过程中,由安装程序自动生成的,但在这个出问题的客户端上就是无法自动生成(重新尝试安装了多次,都是这个情况,应该是安装程序与当前复杂的网络环境导致的).
正常的客户端安装后有以下几个文件
Netbackup_client_ok# ls -lt /etc/xinetd.d
-rw-r--r-- 1 root root 311 Nov 10 13:32 bpcd
-rw-r--r-- 1 root root 377 Nov 10 13:32 bpjava-msvc
-rw-r--r-- 1 root root 344 Nov 10 13:32 vnetd
-rw-r--r-- 1 root root 307 Nov 10 13:32 vopied
。。。。。。
Netbackup_client_ok# ls -lt /usr/openv/netbackup
-rw-r--r-- 1 root root 66 Nov 10 13:44 bp.conf
-rwxr-xr-x 1 oracle dba 3607 Nov 10 13:32 nblog.conf
笔者做了几种情况的测试:
A.发现如果缺少/etc/xinetd.d/目录下的四个文件(bpcd,bpjava-msvc,vnetd,vopied)
在服务器端定义客户端的信息时会报(25)cannot connect to socket错误;
其实在服务器上定义客户端信息时,服务器需要访问客户端的bpcd 服务提供的13782端口.
进一步测试,发现在/etc/xinetd.d/目录下,增加一个bpcd文件,然后重新启动一下xinetd服务,服务器端就不会报(25)错误了;
需要说明的是,定义客户端没有问题了,但如果在客户端备份与恢复时,如果缺少另外的3个文件,一样会发生错误.所以/ect/xinetd.d/目录下的这4个文件一定要存在.
B.如果缺少/usr/openv/netbackup/目录下的两个文件
在服务器端定义客户端的信息时会报(24)错误.
2. 问题解决
虽然安装程序没有自动生成上述的几个重要的配置文件,我们可以通过手工创建的方式来解决这个问题.使用vi工具手工创建这些文件,当然如果有一个已经安装正常的客户端,直接拷贝过来就可以了.
#cd /etc/xinetd.d
Netbackup_client# more bpcd
service bpcd
{
socket_type = stream
protocol = tcp
wait = no
user = root
server = /usr/openv/netbackup/bin/bpcd
disable = no
}
Netbackup_client# more bpjava-msvc
# Service bpjava-msvc for NetBackup
service bpjava-msvc
{
socket_type = stream
protocol = tcp
wait = no
user = root
server = /usr/openv/netbackup/bin/bpjava-msvc
server_args = -transient
disable = no
}
Netbackup_client# more vopied
# Service vopied for NetBackup
service vopied
{
socket_type = stream
protocol = tcp
wait = no
user = root
server = /usr/openv/bin/vopied
disable = no
}
Netbackup_client# more vnetd
# Service vnetd for NetBackup
service vnetd
{
socket_type = stream
protocol = tcp
wait = no
user = root
server = /usr/openv/bin/vnetd
disable = no
instances = UNLIMITED
cps = 1000 1
}
Netbackup_client#cd /usr/openv/netbackup
Netbackup_client# more bp.conf
SERVER = netbackup
CLIENT_NAME = client_db1
MEDIA_SERVER = netbackup-ms
Netbackup_client# more nblog.conf
Default.LogDirectory=/usr/openv/logs
Default.DebugLevel=1
Default.DiagnosticLevel=6
Default.LogToStdout=false
Default.LogToStderr=false
Default.LogToOslog=false
Default.L10nLib=/usr/openv/lib/libvxexticu.so.1
Default.L10nResourceDir=/usr/openv/resources
Default.RolloverMode=FileSize
Default.RolloverAtLocalTime=00.00
Default.NumberOfLogFiles=3
Default.MaxLogFileSizeKB=5120
Default.LogFilePermissions=664
Default.SyslogIdent=VRTS-NB
Default.SyslogOpt=0
Default.SyslogFacility=LOG_LOCAL5
#Originators
102.L10nResource=nbwrg
102.OIDNames=nbwrg
111.L10nResource=emm
111.OIDNames=nbemm
113.L10nResource=nbcim
113.OIDNames=nbcim
116.L10nResource=nbpem
116.OIDNames=nbpem
117.L10nResource=nbjm
117.OIDNames=nbjm
118.L10nResource=nbrb
118.OIDNames=nbrb
119.L10nResource=bmrd
119.OIDNames=bmrd,bmrbd
119.L10nLib=/usr/openv/lib/libvxexticuST.so.1
121.L10nResource=bmrsavecfg
121.OIDNames=bmrsavecfg
121.L10nLib=/usr/openv/lib/libvxexticuST.so.1
122.L10nResource=bmrc
122.OIDNames=bmrc
122.L10nLib=/usr/openv/lib/libvxexticuST.so.1
123.L10nResource=bmrs
123.OIDNames=bmrs
123.L10nLib=/usr/openv/lib/libvxexticuST.so.1
124.L10nResource=bmrmedia
124.OIDNames=bmrcreatefloppy
124.L10nLib=/usr/openv/lib/libvxexticuST.so.1
125.L10nResource=bmrsrt
125.OIDNames=bmrsrtadm
125.L10nLib=/usr/openv/lib/libvxexticuST.so.1
126.L10nResource=bmrprep
126.OIDNames=bmrprep
126.L10nLib=/usr/openv/lib/libvxexticuST.so.1
127.L10nResource=bmrsetup
127.OIDNames=bmrsetupmaster,bmrsetupboot
127.L10nLib=/usr/openv/lib/libvxexticuST.so.1
128.L10nResource=bmrcommon
128.OIDNames=bmrcommon,bmrlibs,bmrmisc
128.L10nLib=/usr/openv/lib/libvxexticuST.so.1
129.L10nResource=bmrconfig
129.OIDNames=bmrconfig
129.L10nLib=/usr/openv/lib/libvxexticuST.so.1
130.L10nResource=bmrpkg
130.OIDNames=bmrcreatepkg
130.L10nLib=/usr/openv/lib/libvxexticuST.so.1
131.L10nResource=bmrrestore
131.OIDNames=bmrrestore
131.L10nLib=/usr/openv/lib/libvxexticuST.so.1
132.L10nResource=nbsl
132.OIDNames=nbsl
134.L10nResource=ndmpagent
134.OIDNames=ndmpagent
134.L10nLib=/usr/openv/lib/libvxexticuST.so.1
137.L10nResource=libraries
140.L10nResource=mmui
140.OIDNames=mmui
142.L10nResource=bmrepadm
142.OIDNames=bmrepadm
142.L10nLib=/usr/openv/lib/libvxexticuST.so.1
143.L10nResource=emm
143.OIDNames=mds
144.L10nResource=emm
144.OIDNames=da
151.L10nResource=ndmp
151.OIDNames=ndmp
154.L10nResource=bmrovradm
154.OIDNames=bmrovradm
#TAO debug level
156.DebugLevel=0
163.L10nResource=nbsvcmon
163.OIDNames=nbsvcmon
#VaultService
166.L10nResource=nbvault
166.OIDNames=nbvault
178.L10nResource=dsm
178.OIDNames=dsm
#FAT Pipe services
199.L10nResource=ftservices
199.OIDNames=FATServer
200.L10nResource=ftservices
200.OIDNames=FATClient
201.L10nResource=ftservices
201.OIDNames=FSM
219.L10nResource=rsrcevtmgr
219.OIDNames=rem
220.L10nResource=dps
220.OIDNames=dps
222.L10nResource=nbrmms
222.OIDNames=nbrmms
226.L10nResource=nbstserv
226.OIDNames=nbstserv
230.L10nResource=rdsm
230.OIDNames=rdsm
231.L10nResource=nbevtmgr
231.OIDNames=nbevtmgr
221.L10nResource=nbrmms
221.OIDNames=mpms
248.L10nResource=bmrlaunch
248.OIDNames=bmrlaunch
248.L10nLib=/usr/openv/lib/libvxexticuST.so.1
261.L10nResource=aggs
261.OIDNames=aggs
263.OIDNames=wingui
271.L10nResource=nbecmsg
271.OIDNames=nbecmsg
272.L10nResource=expmgr
272.OIDNames=expmgr
定义好以上这6个文件后,重新启动一下xinetd 服务
#services xinetd restart
Stopping xinetd: [ OK ]
Starting xinetd: [ OK ]
再去服务器端定义这个客户端,发现一切正常了,问题到此得到解决.