使用旋转磁盘的Backup Exec“可移动备份到磁盘”?

我正在使用最新的Backup Exec 2010 R3build立一个备份系统,我想使用USB硬盘作为备份媒体。 我试图找出最好的方法来将磁盘旋转策略引入到Backup Exec中,但是我遇到了以下问题:

设置(简化以解决手头的问题)

  • Windows 2003 R2服务器上的Backup Exec 2010 R3服务器
  • 每周的每一天都使用不同的“备份至磁盘”文件夹
  • 根据星期几转动外部磁盘

使用内置的可移动备份到磁盘选项

此选项存在问题,因为“备份至磁盘”文件夹基于驱动器号而不是磁盘ID。 这意味着:

  • 多个可移动备份到磁盘驱动器不能分配给相同的驱动器号。
  • 如果将驱动器号分配给磁盘以允许为磁盘驱动器创build多个可移动备份,则在创build全面的全年备份系统时,可以轻松使用所有可用的驱动器号。 此外,还需要进行特殊的设置才能使用磁盘(将驱动器号分配给驱动器)。
  • 如果由于Windows USB驱动器行为而重新安排驱动器号分配,备份驱动器将不会联机。

所有这一切意味着我没有一个简单的方法将可移动备份连接到磁盘文件夹到外部驱动器。

使用备份到磁盘设置

起初,由于Backup Exec正在查找磁盘并使用它们,因此该设置似乎起作用。 但是,系统似乎不关心使用哪个物理磁盘进行备份,并且创build备份到已经与其他备份到磁盘文件夹设置的驱动器上的磁盘文件夹。 想象一下这个场景:

Backup Exec设备:

  • BED001
  • BED002

相应的物理设备:

  • PD001
  • PD002

PD001和PD002连接到系统来处理两天的备份。 但是,Backup Exec将BED001用于两个备份,并在PD001上创build一个新的备份到磁盘文件夹以处理备份。

大问题

这里最大的问题是如何设置系统,以便在需要恢复操作以从特定date检索数据的情况下识别需要哪个磁盘?

替代答案:强制驱动器号码持久性

虽然我肯定坚持我的第一个答案,但我想我会增加另一种方法,你可能会得到一些初步的努力工作。 尽pipe如此,我从来没有尝试过,但通常情况下,除非按照预期的方式使用Backup Exec,否则通常会以泪结束。

强制通过USBDLM或WMI脚本

实质上,这种方法要求在备份作业运行之前确保所有的备份USB磁盘都使用相同的驱动器盘符。 这可能是可行的使用USBDLM,从http://www.uwe-sieber.de/usbdlm_e.html 。 否则,您将查看WMI脚本 – 手动运行或计划在备份作业之前在白天运行 – 按串行/型号/设备ID查找有效的连接的USB磁盘,并分配其驱动器到你的RB2D的固定的一个。 如果在作业前运行之前没有确定备份设备,您甚至可以在预作业命令中执行此操作。

背景

我认为这种方法存在的问题将归因于Backup Exec对最终在(R)B2D上的IMG文件的编号逻辑。 我预计Backup Exec将会丢失可以被覆盖的内容等。如果您每次使用RB2D执行清点操作,这都是可以避免的。 同样,如果预定义命令在确定备份设备之前运行,那么在分配驱动器盘符之后和备份作业运行之前,可以使用bemcmd.exe运行已保存的清单作业。

示例VBScript与WMI接口

基于允许的即插即用设备ID列表强制磁盘上的第一个分区挂载给定驱动器号的基本VBScript文件如下所示。 它应该可以在任何Windows Server 2003及更高版本上运行,但我现在只有XP版本,所以没有经过testing。

 Option Explicit Const DRIVE_LETTER = "Q:" Dim validDisks : validDisks = Array( _ "USBSTOR\\DISK&VEN_KINGSTON&PROD_DATATRAVELER_2.0&REV_PMAP\\001D0F0C73C8B91123110031&0", _ "USBSTOR\\DISK&VEN_TDKMEDIA&PROD_TF_150_DRIVE&REV_PMAP\\07AA0207B128CA8E&0", _ "pnpdeviceid_of_disk_3", _ "pnpdeviceid_of_disk_4" _ ) 'REMEMBER TO ESCAPE ANY \ WITH \\ Dim wmiService : Set wmiService = GetObject("winmgmts:{impersonationLevel=Impersonate}!//.") Dim wqlQuery : wqlQuery = "SELECT * FROM Win32_DiskDrive WHERE InterfaceType = 'USB' AND (PNPDeviceID = '" _ & Join(validDisks, "' OR PNPDeviceID = '") _ & "')" Dim diskDrives : Set diskDrives = wmiService.ExecQuery(wqlQuery, , 48) Dim diskDrive : For Each diskDrive In diskDrives WScript.Echo "Found disk: " & diskDrive.Caption Dim deviceID : deviceID = Replace(diskDrive.DeviceID, "\", "\\") wqlQuery = "ASSOCIATORS OF {Win32_DiskDrive.DeviceID=""" & deviceID & """} WHERE AssocClass = Win32_DiskDriveToDiskPartition" Dim partitions : Set partitions = wmiService.ExecQuery(wqlQuery, , 48) Dim partition : For Each partition In partitions WScript.Echo "Found partition: " & partition.Caption wqlQuery = "ASSOCIATORS OF {Win32_DiskPartition.DeviceID=""" & partition.DeviceID & """} WHERE AssocClass = Win32_LogicalDiskToPartition" Dim logicalDisks : Set logicalDisks = wmiService.ExecQuery(wqlQuery, , 48) Dim logicalDisk : For Each logicalDisk In logicalDisks WScript.Echo "Found logical disk: " & logicalDisk.DeviceID If UCase(Trim(logicalDisk.DeviceID)) <> UCase(DRIVE_LETTER) Then wqlQuery = "SELECT * FROM Win32_Volume WHERE Name = '" & logicalDisk.DeviceID & "\\'" Dim volumes : Set volumes = wmiService.ExecQuery(wqlQuery, , 48) Dim volume : For Each volume in volumes WScript.Echo "Found volume: " & volume.Name volume.DriveLetter = DRIVE_LETTER volume.Put_ WScript.Echo "Changed USB disk drive letter to " & DRIVE_LETTER & "." Exit For 'ONLY DO THIS TO THE FIRST ONE FOUND Next Else WScript.Echo "USB disk drive letter is already " & DRIVE_LETTER & ". No change required" End If Exit For 'ONLY DO THIS TO THE FIRST ONE FOUND Next Set logicalDisks = Nothing Exit For 'ONLY DO THIS TO THE FIRST ONE FOUND Next Set partitions = Nothing Exit For 'ONLY DO THIS TO THE FIRST ONE FOUND Next Set diskDrives = Nothing Set wmiService = Nothing 

祝你好运。

每个人都在这个问题上过分复杂化,比起使用Backup Exec首先想到的要容易和明显得多。

尝试使用3个驱动器

使用3个驱动器,其中一个是不会离开本地的固定驱动器(稍后再介绍一点)。

  • 您每天创build2个备份: MON-1MON-2 。 直到THURS-1THURS-2
  • 然后从Friday1Friday5
  • 终于1月 – 12月。

MON,TUE,WED,THUR的备份

这个想法是备份将在一夜之间运行到两个驱动器。 因为找不到一个驱动器,所以会失败,但是会被备份到另一个驱动器。

备份星期五和月份

每个星期五和月份,它将备份到您的固定驱动器,不会出于存档目的而离开该处所。

概观

所以你的备份应该是这样的(使用GFS系统和两个USB可移动驱动器)。

MON1
MON2
TUES1
TUES2
WEDS1
WEDS2
THURS1
THURS2
FRIDAY1
FRIDAY2
FRIDAY3
FRIDAY4
FRIDAY5
MONTH-JAN
MONTH-FEB
。 。 。
MONTH-DEC

DAY1属于USB驱动器1
DAY2属于USB驱动器2

只要你记得取消失败的备份并且不让他们重新安排,也可以工作。

尝试每个文件夹一个驱动器号

根据要旋转的USB磁盘的数量,一个选项可能是安装所有USB磁盘,允许它们各自获取自己的驱动器号,在每个磁盘上创build一个可移动B2D文件夹,并将其全部添加到设备池中。 然后您的工作将针对设备池。

BE会检查可移动的RB2D文件夹

理论上,因为它们被标记为可移动的,所以Backup Exec将在使用之前检查每个RB2D文件夹是否存在/在线。 而且,因为他们在一个池中(而且作业的目标是池),Backup Exec将使用它可以find的第一个在线的。

BE不会检查固定的B2D文件夹

如果打算旋转更多的USB磁盘而不是可靠地分配驱动器号,则必须在每个驱动器上创build不可移动的B2D文件夹。 但是,BE在使用之前不会尝试检查它们是否在线,因此每次更换USB磁盘时都必须重新启动BE服务。

KB有更多的细节:

  • Veritas知识库:TECH38839: 使用Backup Exec 2010和更高版本在Backup-to-Disk(B2D)位置使用外部硬盘驱动器时的Backup Exec最佳实践 ( 此处存档)。