最新のBackupExec 2010 R3を使用してバックアップシステムをセットアップしていますが、バックアップメディアとしてUSBハードドライブを使用したいと思います。 Backup Execにディスクローテーション戦略を導入するための最も手間のかからない方法を見つけようとしていますが、次の問題が発生しています。
ディスクへのバックアップフォルダはディスクIDではなくドライブ文字に基づいているため、このオプションには問題があります。つまり、次のことを意味します。
これはすべて、リムーバブルバックアップをディスクフォルダから外部ドライブにリンクする簡単な方法がないことを意味します。
Backup Execがディスクを見つけて使用していたため、この設定は最初は機能しているように見えました。ただし、システムはバックアップに使用する物理ディスクを気にしないようで、他のディスクフォルダへのバックアップですでに設定されているドライブ上のディスクフォルダへのバックアップを作成します。このシナリオを想像してみてください。
Backup Execデバイス:
対応する物理デバイス:
PD001とPD002は、2日分のバックアップを処理するためにシステムに接続されています。ただし、Backup Execは両方のバックアップにBED001を使用し、バックアップを処理するためにPD001上のディスクフォルダに新しいバックアップを作成します。
ここでの大きな問題は、特定の日付からデータを取得するために復元操作が必要な場合に、どのディスクが必要かを簡単に識別できるようにシステムを設定するにはどうすればよいですか?
私は間違いなく私の最初の答えに固執していますが、私は別のアプローチを追加したいと思いました。それはあなたが最初の努力で働くことができるかもしれません。ただし、これについての大規模な免責事項は、私が試したことがないためです。通常、Backup Execを意図したとおりに使用しない限り、通常は涙で終わります。
基本的に、このアプローチでは、バックアップジョブを実行する前に、すべてのバックアップUSBディスクに同じドライブ文字が割り当てられていることを確認する必要があります。これは、 http://www.uwe-sieber.de/usbdlm_e.html からUSBDLMを使用して実行できる可能性があります。それ以外の場合は、WMIスクリプト(手動で実行するか、バックアップジョブの前に日中に実行するようにスケジュールする)を調べて、シリアル/モデル/デバイスIDで有効な接続済みUSBディスクを見つけ、そのドライブを割り当てます。 -RB2Dの固定されたものへの手紙。プレジョブの実行前にバックアップデバイスが決定されていない場合は、プレジョブコマンドでこれを実行できる場合もあります。
このアプローチの問題は、最終的に(R)B2DになるIMGファイルに対するBackupExecの番号付けロジックが原因であると思います。 Backup Execは、何が上書きされるかなどを追跡できなくなると思います。RB2Dを使用するたびにインベントリ操作を実行する場合、これは回避できる可能性があります。この場合も、バックアップデバイスが決定される前にpre-jobコマンドが実行されると、ドライブ文字が割り当てられた後、バックアップジョブが実行される前に、bemcmd.exe
を使用して保存済みインベントリジョブを実行できる場合があります。
許可されたプラグアンドプレイデバイスIDのリストに基づいて、ディスク上の最初のパーティションを特定のドライブ文字で強制的にマウントする基本的なVBScriptファイルは次のとおりです。 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
幸運を。
ここでは誰もがこの問題を複雑にしすぎています。BackupExecで最初に考えたよりもはるかに簡単で明白です。
3台のドライブを使用します。1台は構内を離れない固定ドライブです(これについては後ほど詳しく説明します)。
MON-1
およびMON-2
。からTHURS-1
およびTHURS-2
。Friday1
からFriday5
。JAN
--DEC
。バックアップは両方のドライブに対して一晩実行されるという考えです。一方のドライブが見つからないために障害が発生しますが、もう一方のドライブにバックアップされます。
毎週金曜日と月に、アーカイブ目的で施設を離れない固定ドライブにバックアップします。
したがって、バックアップは次のようになります(GFSシステムと2つのUSBリムーバブルドライブを使用)。
MON1
MON2
TUES1
TUES2
WEDS1
WEDS2
THURS1
THURS2
FRIDAY1
FRIDAY2
FRIDAY3
FRIDAY4
FRIDAY5
月-1月
月-2月
。 。 。
月-12月
DAY1はUSBドライブ1に関連します
DAY2はUSBドライブ2に関連します
失敗したバックアップをキャンセルし、スケジュールを変更しないことを覚えている限り、同様に機能します。
回転させたいUSBディスクの数に応じて、1つのオプションは、すべてのUSBディスクをマウントして、それぞれが独自のドライブ文字を取得し、それぞれにリムーバブルB2Dフォルダーを作成して、すべてをデバイスプールに追加できるようにすることです。次に、ジョブはデバイスプールをターゲットにします。
理論的には、それらはリムーバブルとしてマークされているため、Backup Execは、使用される前に、各RB2Dフォルダーが存在するかオンラインであるかを確認します。また、それらはプール(およびそのプールを対象とするジョブ)にあるため、BackupExecは最初に見つけたオンラインのものを使用します。
ドライブ文字を確実に割り当てることができるよりも多くのUSBディスクを回転させる場合は、各ドライブに取り外し不可能なB2Dフォルダーを作成する必要があります。ただし、BEは使用前にオンラインかどうかを確認しようとしないため、USBディスクを交換するたびにBEサービスを再起動する必要があります。
KBには詳細があります: