媒体错误后,将磁带移出Bacula池

我们最近遇到了一个情况,我们有3卷处于Error状态,堵塞了我们的'默认'池。

我们有几个媒体池用于不同的目的,因此有最大量指令,以便我们意识到问题(例如, 这个问题,数据量的突然增加等)。

我的Default池是:

 Pool { Name = Default Pool Type = Backup Recycle = yes Recycle Oldest Volume = yes RecyclePool = Scratch AutoPrune = yes # Prune expired volumes Volume Retention = 60 days Maximum Volumes = 35 Cleaning Prefix = "CLN" } 

作业保留参数设置为使我们无法清除磁带或将另一个磁带添加到池中:

 17-Mar 23:05 server8-dir JobId 10652: Start Backup JobId 10652, Job=server1.2012-03-17_23.05.00_57 17-Mar 23:05 server8-dir JobId 10652: Warning: Unable add Scratch Volume, Pool "Default" full MaxVols=35 17-Mar 23:05 server8-dir JobId 10652: Pruning oldest volume "000026L2" 17-Mar 23:05 server8-dir JobId 10652: Using Device "TS3200-1a" 17-Mar 23:05 server8-dir JobId 10652: Warning: Unable add Scratch Volume, Pool "Default" full MaxVols=35 17-Mar 23:05 server8-dir JobId 10652: Pruning oldest volume "000026L2" 17-Mar 23:05 server8-sd JobId 10652: Job server1.2012-03-17_23.05.00_57 is waiting. Cannot find any appendable volumes. Please use the "label" command to create a new Volume for: Storage: "TS3200-1a" (/dev/nst0) Pool: Default Media type: LTO3 

有没有办法告诉Bacula自动将任何Error ed卷移出池,所以它们不占用空间? 其中一个曾经在那里一段时间(自2011-08-20 00:10:34以来),所以我不认为它会被搬出去。

这里强调这是自动发生的 – 我认为当RecyclePool被设置时,卷被移出池是有意义的。

(背景:我们为很多不同的客户维护Bacula,我们试图尽可能自动地发生事情,虽然这不是一个问题,但也许这还不存在,应该作为一个function请求。)

关于Bacula的伟大之处在于有许多方法可以解决您可能遇到的任何问题。
以下是这种情况的几个选项:

选项1:
彻底delete volume错误的卷(在bacula控制台delete volume ,然后select你想摆脱的)。
如果你确定音量坏/有缺陷,这个是我的select – 如果你不能使用它,没有任何意义。 卷删除是一个不会影响磁带的目录操作,因此,如果您需要从中恢复数据,则始终可以使用bscan创build商品并恢复可读的内容。

选项2:
摆脱池中的Maximum Volumes指令。
这可以保证你再也不用处理这个问题了,但是也意味着你可以创build一个无限数量的卷,如果你搞砸了一个标签命令。 (我通常不会在我的池中设置Maximum Volumes – 当您的备份大小比需要更大的增长时,它会增加新的磁带)。

备选案文3:
重新标记音量(在bacula控制台relabel ,然后select要移动的音量)。
请注意,在重新标记卷之前,卷必须标记为“已Purged或“已Recycled – 所有这些都是目录操作(它们不需要影响实际的磁带/卷),因此您可以在故障卷上运行purge volume卷,然后如果你愿意的话,将它们relabel为另一个池。
purge volume可以覆盖/忽略工作保留参数 – 或者更准确地说,清除音量,不pipe任何保留参数,这是一个战术核武器,应小心处理。

选项4:
我一直假设我们正在谈论真正的磁带 – 如果这些是虚拟磁带文件,并且“错误”状态来自以前的一些瞬间事件,则可以使用update volume来清除错误(将其设置为任何适当的非错误状态)。 你应该明确的做到这一点,如果你确信有问题的数量是好的