TapeTrack Documentation

Because there is more to tape management than you ever realized

User Tools

Site Tools


cookbook:veeam

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
cookbook:veeam [2021/02/16 21:58] Scott Cunliffecookbook:veeam [2025/01/21 22:07] (current) – external edit 127.0.0.1
Line 1: Line 1:
 ====== VEEAM Sync Cookbook ====== ====== VEEAM Sync Cookbook ======
  
 +Veeam Backup & Replication is a software product developed by Veeam Software to back up, restore and replicate data on virtual machines
 +
 +
 +===== Prerequisites =====
 +
 +A defined ODBC connection to the Veeam database.
 +
 +===== Data Extraction =====
 +
 +Data is extracted from Veeam via an SQL connection and then processing that raw data for the Sync with TapeTrack via a ttidef file.
 +
 +===== Synchronization =====
 +
 +<note important>You will need to install the [[cli:sync_suite|TapeTrack Sync software]] to complete these instructions.</note>
 +
 +Synchronization with TapeTrack is performed by calling the [[cli:TMSS10Sync|TMSS10Sync]] command line program, along with:
 +
 +  - Veeam ODBC connection.
 +  - Command line arguments that instruct the program how to process volumes. 
 +  - A synchronization definition file that instructs the program how to interpret the SQL output.
 +
 +The command line code is usually contained within a batch file and scheduled to execute automatically on a regular time frame to suit your requirements.
 +
 +==== Example Command Line Arguments ====
 +
 +<code plain;>
 +TMSS10Sync -d default.ttidef -a -S batch:-password@server 
 +</code>
 +
 +Where:
 +  * ''-d'' is the path to the Synchronization Definition File.
 +  * ''-a'' tells the program to add new tape volumes if they are encountered.
 +  * ''-S'' tells the program what [[cli:server_argument|Server]] to connect to.
 +
 +=== Example Batch File ===
 +
 +{{veeam_batch.png}}
 + 
 +===== TTIDEF Sample  =====
 +
 +Sample TTIDEF file (default.ttidef) to:
 +  * Connect to VEEAM database (veeam2 in this example).
 +  * Extract barcode, media pool ID and last write time.
 +  * Set Customer-ID to US01.
 +  * Set Media-ID to LTO.
 +  * Set Volume location based off media pool ID.
 +  * Set Volume Description based off media pool ID.
 +
 +<code>
 +#
 +# Connect to Veeam database
 +SetODBC("DSN=veeam2");
 +# Extract data
 +SetSQL("SELECT [barcode],[media_pool_id],[last_write_time] FROM [VeeamBackup].[dbo].[Tape.tape_mediums]");
 +
 +
 +# Set Customer-ID
 +SetLiteral(CUSTOMER, "US01");
 +# Set media to LTO as only one media type in report
 +SetLiteral(MEDIA, "LTO");
 +
 +# Set place marker for Description 
 +SetLiteral(DESCRIPTION, "????");
 +# Set place marker for Repository
 +SetLiteral(REPOSITORY, "????");
 +
 +# Extract Volume-ID from column 1
 +Extract(VOLUME, 1, 10, 0);
 +# Extract media pool-id for translation from column 2
 +Extract(USER1, 2, 50, 0);
 +# Extract last writetime from column 3
 +Extract(WRITETIME, 3, 50, 0);
 +
 +# Set writetime format
 +SetWriteTimeFormat("%%Y-%%m-%%d %%H:%%M:%%S");
 +
 +# Add translations to set Description based off Media Pool-ID
 +AddTranslation2(DESCRIPTION, USER1, "4C6BFE92-5C7F-BFE9-A18E-B52A8049C167", "Alpha media pool");
 +AddTranslation2(DESCRIPTION, USER1, "601ED8E9-647E-A19E-B18E-F6D66B0EE584", "Bravo media pool");
 +AddTranslation2(DESCRIPTION, USER1, "375TED22-7654-B34R-67GH-TMX642021SEE", "Charlie media pool");
 +AddTranslation2(DESCRIPTION, USER1, "9454924F-834C-22C0-9A35-F6D44B0EE214", "Free Tapes");
 +AddTranslation2(DESCRIPTION, USER1, "3376924Q-221C-59C0-3A65-F6D32B0FW857", "Imported");
 +
 +
 +# Add translations to set Repository based off Media Pool-ID
 +# Move matching media pools offsite
 +AddTranslation2(DESCRIPTION, USER1, "4C6BFE92-5C7F-BFE9-A18E-B52A8049C167", "OFFS");
 +AddTranslation2(DESCRIPTION, USER1, "601ED8E9-647E-A19E-B18E-F6D66B0EE584", "OFFS");
 +AddTranslation2(DESCRIPTION, USER1, "375TED22-7654-B34R-67GH-TMX642021SEE", "OFFS");
 +
 +# All other media pool place in library
 +AddTranslation2(REPOSITORY, USER1, "*", "LIBR");
 +
 +# Stop any movement from racking back to offsite
 +AddSkipOnRepositoryChange("OFFS", "RACK", "*");
 +</code>
  
 <- :cookbook:tsm|TSM Sync Cookbook ^ :cookbook:introduction|Cookbook ^  -> <- :cookbook:tsm|TSM Sync Cookbook ^ :cookbook:introduction|Cookbook ^  ->
  
-{{tag> cookbook}}+{{tag> cookbook veeam sync}}
  
cookbook/veeam.1613512714.txt.gz · Last modified: 2025/01/21 22:07 (external edit)