Difference between revisions of "Architecture"
From Tranzman Documentation
(→Migration Flow) |
|||
| Line 1: | Line 1: | ||
| − | == | + | __TOC__ |
| + | <br> | ||
| + | <br> | ||
| + | <div style="background-color:#fde9e9; padding: 1.5rem; text-align:center; margin-bottom:2rem; border-radius:8px; max-width:80%; margin: 0 auto; margin-bottom:2rem;"> | ||
| + | <h1 style="border-bottom:none; font-size:2.5em; font-weight:bold;">Tranzman Appliance Architecture & Migration Flow</h1> | ||
| + | <p style="font-size:1.2em; text-align:left;"> | ||
| + | Tranzman is delivered as an appliance, ready for deployment out-of-the-box.<br> | ||
| + | It can be installed on either a virtual machine or a physical server using a bootable ISO or OVA.<br> | ||
| + | Unlike traditional software binaries, Tranzman is an appliance and therefore <b>not available as an executable binary or RPM</b>. | ||
| + | </p> | ||
| + | </div> | ||
| − | + | <div style="max-width:80%; margin: 0 auto;"> | |
| − | + | <div style="background-color:#edf7ff; padding:1.5rem; border-radius:8px; box-shadow:0 2px 4px rgba(0,0,0,0.06); margin-bottom:2rem;"> | |
| + | <h2 style="border-bottom:2px solid #bbdefb; padding-bottom:0.5rem; font-size:1.5em;">Tranzman Components</h2> | ||
| + | <h3 style="font-size:1.2em;">Appliance Component</h3> | ||
| + | <ul> | ||
| + | <li>Queue Manager (<b>tzmqm</b>)</li> | ||
| + | <li>Data Transfer Engine (<b>tzmtd</b>)</li> | ||
| + | </ul> | ||
| + | <ul> | ||
| + | <li>Built on <b>Rocky Linux</b> sources and utilizes an internal <b>PostgreSQL</b> database.</li> | ||
| + | <li>Accessible via CLISH (Command Line Interface Shell) and web user interface (webUI), hosted on an internal web server running <b>nginx</b>.</li> | ||
| + | <li>Configuration Converters, Catalog Converters, and Data Converters manage all data manipulations internally.</li> | ||
| + | </ul> | ||
| + | <h3 style="font-size:1.2em;">Agent Component</h3> | ||
| + | <ul> | ||
| + | <li>Acts as the communication bridge between Tranzman and the backup server.</li> | ||
| + | <li>Waits for instructions from the Tranzman Server.</li> | ||
| + | <li>Executes received actions and reports status back to the Tranzman Server.</li> | ||
| + | <li>Minimal standalone binary installed on the backup server, initiating <b>tzmclnt</b> and other necessary processes.</li> | ||
| + | </ul> | ||
| + | </div> | ||
| − | Tranzman | + | <div style="background-color:#fef3f7; padding:1.5rem; border-radius:8px; box-shadow:0 2px 4px rgba(0,0,0,0.06); margin-bottom:2rem;"> |
| + | <h2 style="border-bottom:2px solid #f8bbd0; padding-bottom:0.5rem; font-size:1.5em;">High-Level Process Flow</h2> | ||
| + | <ul> | ||
| + | <li>All Tranzman Appliance processes rely on the relational database and the QueueManager.</li> | ||
| + | <li>The <b>QueueManager</b> updates action queues for Agents, handling all migration-related operations.</li> | ||
| + | <li>The <b>Agent</b> interacts with the <b>Data Transfer Engine</b>, fetching instructions and performing PUT/GET operations for catalog data.</li> | ||
| + | <li>Actions retrieved by the Agents trigger various migration procedures.</li> | ||
| + | </ul> | ||
| + | <div style="display:flex; flex-wrap:wrap; gap:2rem; justify-content:center;"> | ||
| + | <div> | ||
| + | <h4 style="text-align:center;">Same Vendor Transition (SVT)</h4> | ||
| + | [[File:SVT.jpg|480px]] | ||
| + | </div> | ||
| + | <div> | ||
| + | <h4 style="text-align:center;">Cross Vendor Transition (CVT)</h4> | ||
| + | [[File:CVT.jpg|480px]] | ||
| + | </div> | ||
| + | <div> | ||
| + | <h4 style="text-align:center;">Recovery Without Vendor (RWV)</h4> | ||
| + | [[File:CVT.jpg|480px]] | ||
| + | </div> | ||
| + | </div> | ||
| + | </div> | ||
| − | === | + | <div style="background-color:#eff8f0; padding:1.5rem; border-radius:8px; box-shadow:0 2px 4px rgba(0,0,0,0.06); margin-bottom:2rem;"> |
| + | <h2 style="border-bottom:2px solid #c8e6c9; padding-bottom:0.5rem; font-size:1.5em;">Actions</h2> | ||
| + | <p>Actions are sequences of instructions executed by the agent on the backup server to facilitate transitions.</p> | ||
| + | <table style="margin:auto;width:100%;color:darkblue;text-align:left;border-style:ridge;"> | ||
| + | <thead> | ||
| + | <tr> | ||
| + | <th style="text-align:left;color:darkblue;">Action</th> | ||
| + | <th style="text-align:left;">Description</th> | ||
| + | </tr> | ||
| + | </thead> | ||
| + | <tbody> | ||
| + | <tr><td><b>Init</b></td><td>Runs once on both origin and destination during initial system discovery.</td></tr> | ||
| + | <tr><td><b>QueryProduct</b></td><td>Identifies the backup product installed on both origin and destination.</td></tr> | ||
| + | <tr><td><b>QueryConfig</b></td><td>Detects configuration objects (e.g., storage, credentials, workloads) on both systems.</td></tr> | ||
| + | <tr><td><b>QueryMedia</b></td><td>Continuously collects media-related data on both systems.</td></tr> | ||
| + | <tr><td><b>QueryImages</b></td><td>Continuously discovers all backup images on origin and destination.</td></tr> | ||
| + | <tr><td><b>CreateConfig</b></td><td>Creates necessary configuration components on the target system.</td></tr> | ||
| + | <tr><td><b>CreateWorkloads</b></td><td>Establishes required backup configurations on the target system.</td></tr> | ||
| + | <tr><td><b>CrossCheck</b></td><td>Performs daily data comparisons between origin and destination.</td></tr> | ||
| + | <tr><td><b>ExportImages</b></td><td>Cyclically exports selected images from the origin system.</td></tr> | ||
| + | <tr><td><b>ManipulateImages</b></td><td>Renames or converts components mapped between origin and destination.</td></tr> | ||
| + | <tr><td><b>ImportImages</b></td><td>Imports migrated images cyclically into the destination system.</td></tr> | ||
| + | <tr><td><b>CreateMedia</b></td><td>Updates or creates new media on the destination system.</td></tr> | ||
| + | <tr><td><b>CheckConn</b></td><td>Tests client connectivity and pushes NetBackup certificates.</td></tr> | ||
| + | <tr><td><b>FinalizeOrigin</b></td><td>Completes final origin system preparations before switchover.</td></tr> | ||
| + | <tr><td><b>FinalizeDestination</b></td><td>Completes final destination system preparations post-switchover.</td></tr> | ||
| + | <tr><td><b>Assessment</b></td><td>Executes pre-assessment and post-transition validation tests.</td></tr> | ||
| + | <tr><td><b>HouseKeeping</b></td><td>Cyclically clears completed records from the Tranzman Database.</td></tr> | ||
| + | <tr><td><b>PreDuplication</b></td><td>Performs pre-duplication on the origin based on split migration rules.</td></tr> | ||
| + | <tr><td><b>PostDuplication</b></td><td>Performs post-duplication on the destination storage as part of migration.</td></tr> | ||
| + | </tbody> | ||
| + | </table> | ||
| + | </div> | ||
| − | The | + | <div style="background-color:#fffbf4; padding:1.5rem; border-radius:8px; box-shadow:0 2px 4px rgba(0,0,0,0.06);"> |
| − | + | <h2 style="border-bottom:2px solid #ffe0b2; padding-bottom:0.5rem; font-size:1.5em;">Migration Flow</h2> | |
| − | + | <h3 style="font-size:1.2em;">Same Vendor Migration Flow</h3> | |
| + | [[File:Migration_flow-same_vendor.jpg|480px]] | ||
| + | <h3 style="font-size:1.2em;">Cross Vendor Migration Flow</h3> | ||
| + | <p><b>If the backup data is stored on Tape</b></p> | ||
| + | [[File:Migration_flow-cross_vendor_onTape.jpg|480px]] | ||
| + | <ul> | ||
| + | <li>(1) The Tranzman server reads data directly from tapes via its Data Converter.</li> | ||
| + | <li>(2) Optionally, converted data may be duplicated onto a destination storage system.</li> | ||
| + | </ul> | ||
| + | <p><b>If the backup data is stored on Disk</b></p> | ||
| + | [[File:Migration_flow-cross_vendor_onDisk.jpg|480px]] | ||
| + | <ul> | ||
| + | <li>(1) The converter reads data from the origin storage over <i>NFS/CIFS</i>.</li> | ||
| + | <li>(2) Optionally, converted images may be duplicated onto the native destination storage.</li> | ||
| + | </ul> | ||
| + | <p><b>If the backup data is encrypted or deduplicated</b></p> | ||
| + | [[File:Migration_flow-cross_vendor_encryptedBackup.jpg|480px]] | ||
| + | <ul> | ||
| + | <li>(1) Pre-duplicate the data onto shared storage.</li> | ||
| + | <li>(2) The converter reads the data from shared storage.</li> | ||
| + | <li>(3) Optionally, data may be duplicated onto native destination storage.</li> | ||
| + | </ul> | ||
| + | </div> | ||
| − | + | </div> | |
| − | |||
| − | |||
| − | |||
| − | + | <div style="display:flex; justify-content:space-between; margin-top:2rem; padding:1rem; background-color:#ffffff; max-width:90%; margin: 2rem auto 0;"> | |
| − | + | <div style="text-align:left;"> | |
| − | + | [[File:prev_icon.jpg|30px|link=Overview]] [[Overview|Previous]] | |
| − | + | </div> | |
| − | + | <div style="text-align:right;"> | |
| − | + | [[Security|Next]] [[File:next_icon.jpg|30px|link=Security]] | |
| − | + | </div> | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | [[File: | ||
| − | |||
| − | = | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | [[ | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
Revision as of 09:24, 11 September 2025
Contents
Tranzman Appliance Architecture & Migration Flow
Tranzman is delivered as an appliance, ready for deployment out-of-the-box.
It can be installed on either a virtual machine or a physical server using a bootable ISO or OVA.
Unlike traditional software binaries, Tranzman is an appliance and therefore not available as an executable binary or RPM.
Tranzman Components
Appliance Component
- Queue Manager (tzmqm)
- Data Transfer Engine (tzmtd)
- Built on Rocky Linux sources and utilizes an internal PostgreSQL database.
- Accessible via CLISH (Command Line Interface Shell) and web user interface (webUI), hosted on an internal web server running nginx.
- Configuration Converters, Catalog Converters, and Data Converters manage all data manipulations internally.
Agent Component
- Acts as the communication bridge between Tranzman and the backup server.
- Waits for instructions from the Tranzman Server.
- Executes received actions and reports status back to the Tranzman Server.
- Minimal standalone binary installed on the backup server, initiating tzmclnt and other necessary processes.
High-Level Process Flow
- All Tranzman Appliance processes rely on the relational database and the QueueManager.
- The QueueManager updates action queues for Agents, handling all migration-related operations.
- The Agent interacts with the Data Transfer Engine, fetching instructions and performing PUT/GET operations for catalog data.
- Actions retrieved by the Agents trigger various migration procedures.
Actions
Actions are sequences of instructions executed by the agent on the backup server to facilitate transitions.
| Action | Description |
|---|---|
| Init | Runs once on both origin and destination during initial system discovery. |
| QueryProduct | Identifies the backup product installed on both origin and destination. |
| QueryConfig | Detects configuration objects (e.g., storage, credentials, workloads) on both systems. |
| QueryMedia | Continuously collects media-related data on both systems. |
| QueryImages | Continuously discovers all backup images on origin and destination. |
| CreateConfig | Creates necessary configuration components on the target system. |
| CreateWorkloads | Establishes required backup configurations on the target system. |
| CrossCheck | Performs daily data comparisons between origin and destination. |
| ExportImages | Cyclically exports selected images from the origin system. |
| ManipulateImages | Renames or converts components mapped between origin and destination. |
| ImportImages | Imports migrated images cyclically into the destination system. |
| CreateMedia | Updates or creates new media on the destination system. |
| CheckConn | Tests client connectivity and pushes NetBackup certificates. |
| FinalizeOrigin | Completes final origin system preparations before switchover. |
| FinalizeDestination | Completes final destination system preparations post-switchover. |
| Assessment | Executes pre-assessment and post-transition validation tests. |
| HouseKeeping | Cyclically clears completed records from the Tranzman Database. |
| PreDuplication | Performs pre-duplication on the origin based on split migration rules. |
| PostDuplication | Performs post-duplication on the destination storage as part of migration. |
Migration Flow
Same Vendor Migration Flow
Cross Vendor Migration Flow
If the backup data is stored on Tape
- (1) The Tranzman server reads data directly from tapes via its Data Converter.
- (2) Optionally, converted data may be duplicated onto a destination storage system.
If the backup data is stored on Disk
- (1) The converter reads data from the origin storage over NFS/CIFS.
- (2) Optionally, converted images may be duplicated onto the native destination storage.
If the backup data is encrypted or deduplicated
- (1) Pre-duplicate the data onto shared storage.
- (2) The converter reads the data from shared storage.
- (3) Optionally, data may be duplicated onto native destination storage.