使用 Bacula 调度作业时出现“对存储命令的响应错误”

使用 Bacula 调度作业时出现“对存储命令的响应错误”

我有一个带有 9 个客户端的 Bacula 设置,它运行良好。今天我不得不添加另一个客户端,因此我从另一个客户端复制并改编了现有配置文件,但是当我为新客户端安排作业时,我收到以下错误:

20-Mar 17:50 tools-dir JobId 39: Start Backup JobId 39, Job=BackupPresenze2.2012-03-20_17.50.49_04
20-Mar 17:50 tools-dir JobId 39: Using Device "FileStorage"
20-Mar 17:50 presenze2-fd JobId 39: Fatal error: Failed to connect to Storage daemon: bacula.mylan.local:9103
20-Mar 17:50 tools-dir JobId 39: Fatal error: Bad response to Storage command: wanted 2000 OK storage
, got 2902 Bad storage

从客户端我可以通过 telnetbacula.mylan.local:9103顺利地进行操作,其他客户端的作业也能顺利完成...我可以检查什么?
(如果相关的话,服务器和客户端运行 Ubuntu 10.04)

答案1

看起来这是一个“慢速 DNS”类型的问题...我将主机名添加到 /etc/hosts 中,现在 Bacula 运行正常。

答案2

就我而言,是防火墙 - FD(客户端)无法连接到 SD(存储守护进程)端口TCP/9103。但 director 可以正常检索客户端状态status client=myclient-fd(因为 DIR 可以连接到 FD 到端口TCP/9102

这个错误令人困惑,因为从因果关系上看,这听起来像是 SD 正在向 FD 返回错误(这意味着 FD 毕竟可以连接到 SD),而实际上是 DIR 注意到 FD 没有连接到 SD 并发出错误。

答案3

[rt@bacula user]# netstat -anp | grep bac
tcp        0      0 127.0.0.1:9101          0.0.0.0:*               LISTEN      48075/bacula-dir
tcp        0      0 0.0.0.0:9102            0.0.0.0:*               LISTEN      48077/bacula-fd
tcp        0      0 10.x.y.z:9103        0.0.0.0:*               LISTEN      48076/bacula-sd #<---
Storage {                             # definition of myself
  Name = bacula-sd
  SDPort = 9103                  # Director's port
  WorkingDirectory = "/var/spool/bacula"
  Pid Directory = "/var/run"
  Maximum Concurrent Jobs = 20
# SDAddress = {{ ansible_fqdn }}
}

在向存储系统添加另一个接口后,这些“存储错误”开始出现。查看后发现 StorageDaemon 只监听一个接口。注释SDAddress强制 sd 监听所有接口。

相关内容