Назад | Перейти на главную страницу

Backup Exec «Съемное резервное копирование на диск» с вращающимися дисками?

Я настраиваю систему резервного копирования с использованием последней версии Backup Exec 2010 R3 и хотел бы использовать жесткие диски USB в качестве носителя для резервного копирования. Я пытаюсь найти лучший способ без проблем внедрить стратегию ротации дисков в Backup Exec, но у меня возникают следующие проблемы:

Настройка (упрощена для решения возникшей проблемы)

Использование встроенного съемного резервного копирования на диск

У этого варианта есть проблемы, потому что папки резервного копирования на диск основаны на буквах дисков, а не на идентификаторах дисков. Что означает, что:

Все это означает, что у меня нет простого способа связать съемные резервные копии в дисковых папках с внешними дисками.

Использование резервной копии на диск.

Поначалу казалось, что такая установка работает, поскольку Backup Exec находит диски и использует их. Однако система, похоже, не заботится о том, какой физический диск использовать для резервного копирования, и создает резервную копию в дисковые папки на дисках, которые уже были настроены с другими резервными копиями в дисковые папки. Представьте себе такой сценарий:

Устройства Backup Exec:

Соответствующие физические устройства:

PD001 и PD002 подключены к системе для резервного копирования за два дня. Однако Backup Exec использует BED001 для обоих резервных копий и создает новую резервную копию в папке на диске PD001 для обработки резервного копирования.

БОЛЬШОЙ вопрос

Большой вопрос здесь заключается в том, как мне настроить систему, чтобы упростить определение того, какой диск необходим в случае, если для получения данных с определенной даты потребуется операция восстановления?

Альтернативный ответ: принудительное сохранение буквы диска

Хотя я определенно придерживаюсь своего первого ответа, я подумал, что добавлю еще один подход, который вы, возможно, сможете заставить работать с некоторыми начальными усилиями. Однако серьезный отказ от ответственности по этому поводу, поскольку я никогда не пробовал его, и, как правило, если вы не используете Backup Exec именно так, как он был задуман, это обычно заканчивается слезами.

Принудительно через USBDLM или сценарий WMI

По сути, этот подход требует, чтобы все ваши USB-диски резервного копирования имели одинаковую букву диска до запуска задания резервного копирования. Это можно сделать с помощью USBDLM из http://www.uwe-sieber.de/usbdlm_e.html. В противном случае вы бы посмотрели на сценарий WMI - запускаемый вручную или по расписанию в течение дня до задания резервного копирования - чтобы найти действительный подключенный USB-диск по серийному номеру / модели / идентификатору устройства и назначить его диск -письмо на исправленный ваш RB2D. Вы даже можете запустить это в команде перед выполнением задания, при условии, что устройство резервного копирования не было определено до выполнения предварительного задания.

Задний план

Я считаю, что проблемы с этим подходом будут связаны с логикой нумерации Backup Exec для файлов IMG, которые попадают в (R) B2D. Я ожидаю, что Backup Exec потеряет информацию о том, что можно перезаписать и т. Д. Этого можно было бы избежать, если бы вы выполняли операции инвентаризации на RB2D каждый раз, когда вы его использовали. Опять же, если команда предварительного задания запускается до определения устройства резервного копирования, вы можете использовать bemcmd.exe для запуска сохраненного задания инвентаризации после присвоения буквы диска и до запуска задания резервного копирования.

Пример VBScript для взаимодействия с WMI

Базовый файл VBScript, который принудительно монтирует первый раздел на диске с заданной буквой диска, на основе списка разрешенных идентификаторов устройств Plug & Play выглядит следующим образом. Он должен работать на всех версиях Windows Server 2003 и выше, но на данный момент у меня под рукой только XP, поэтому я не тестировал его:

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 диска, один из которых является фиксированным, который не покидает территорию (подробнее об этом через секунду).

  • Вы создаете 2 резервные копии в день: MON-1 и MON-2. сквозь THURS-1 и THURS-2.
  • затем Friday1 сквозь Friday5.
  • в заключение JAN - DEC.

Резервные копии на ПН, ВТ, СР, ЧЕТ

Идея состоит в том, что резервное копирование будет выполняться на ОБЕИХ дисках за ночь. Вы получите сбой, так как один диск не может быть найден, но он сделает резервную копию на другом.

Резервные копии на ПЯТНИЦЫ и МЕСЯЦЫ

Каждую пятницу и месяц он выполняет резервное копирование на ваш фиксированный диск, который не покидает помещение для архивных целей.

Обзор

Таким образом, ваши резервные копии должны выглядеть так (с использованием системы GFS и двух съемных USB-накопителей).

MON1
ПН2
Вт1
Вт2
СР1
СР2
ЧЕТВЕРГ1
ЧЕТВЕРГ2
ПЯТНИЦА 1
ПЯТНИЦА 2
ПЯТНИЦА 3
ПЯТНИЦА 4
ПЯТНИЦА 5
МЕСЯЦ-ЯНВАРЬ
МЕСЯЦ-ФЕВРАЛЬ
. . .
МЕСЯЦ-ДЕКАБРЬ

DAY1 относится к USB-накопителю 1
DAY2 относится к USB-накопителю 2

Это тоже работает, если вы не забываете отменять неудачные резервные копии и не переносите их.!

Попробуйте использовать одну букву диска для каждой папки

В зависимости от того, сколько USB-дисков вы хотите повернуть, одним из вариантов может быть монтирование всех USB-дисков, позволяющее каждому из них получить свою собственную букву диска, создание папки Removable B2D на каждом из них и добавление их всех в пул устройств. Затем ваша работа будет нацелена на пул устройств.

BE проверит съемные папки RB2D

Теоретически, поскольку они помечены как съемные, Backup Exec будет проверять, существует ли каждая папка RB2D / находится ли она в сети, прежде чем ее использовать. А поскольку они находятся в пуле (и задание нацелено на этот пул), Backup Exec будет использовать первый онлайн-пул, который сможет найти.

BE НЕ будет проверять фиксированные папки B2D

Если вы намереваетесь повернуть больше USB-дисков, чем вы можете надежно назначить буквы дисков, вам придется создать несъемные папки B2D на каждом из дисков. Однако BE не будет пытаться проверить, подключены ли они к сети, прежде чем они будут использованы, поэтому вам придется перезапускать службы BE каждый раз при смене USB-диска.

KB имеет более подробную информацию: