Difference between revisions of "Architecture"

From Tranzman Documentation
Jump to: navigation, search
Line 1: Line 1:
==Introduction==
+
## Overview of Tranzman Appliance
  
Tranzman is delivered as an appliance out-of-the-box. It can be deployed on either a virtual machine or a physical server using a bootable ISO or OVA.
+
Tranzman is a specialized appliance designed for workload migrations between different backup systems. It is delivered as a complete solution, deployable on either virtual machines or physical servers using bootable ISO or OVA formats. Unlike traditional software binaries, Tranzman is not available as an executable binary or RPM, emphasizing its appliance nature.
  
Unlike a software binary, Tranzman is an appliance and therefore <b>not available as an executable binary or RPM</b>.
+
### Components of Tranzman
  
Tranzman consists of two main components: the <b>Appliance</b> and the <b>Agent</b>.
+
Tranzman consists of two primary components:
  
 +
**1. Appliance Component**
 +
- **Core Framework:** The Tranzman appliance (TZM) includes:
 +
  - **Queue Manager (tzmqm)**
 +
  - **Data Transfer Engine (tzmtd)**
 +
- **Technical Specifications:**
 +
  - Built on **Rocky Linux** with an internal **PostgreSQL** database.
 +
  - Accessible via a **Command Line Interface Shell (CLISH)** and a web user interface (webUI), hosted on an internal **nginx** web server.
 +
  - Includes Configuration Converters, Catalog Converters, and Data Converters for internal manipulations.
  
===Appliance Component===
+
**2. Agent Component**
 +
- The Agent acts as the interface between Tranzman and the backup server with key functions:
 +
  - Awaits and executes actions from the Tranzman Server.
 +
  - Returns action status results to the Tranzman Server.
 +
- It is a minimal standalone binary installed on the backup server, initiating processes like **tzmclnt**.
  
The core framework of the Tranzman appliance ('TZM') includes:
+
## High-Level Process Flow
  
'''1. Queue Manager (tzmqm)'''
+
The operational flow within the Tranzman appliance relies heavily on its relational database and Queue Manager:
'''2. Data Transfer Engine (tzmtd)'''
 
  
Additional details about the appliance:
+
- The **Queue Manager** updates actions into the Agents' queue, managing migration flows effectively.
 +
- The **Agent** retrieves actions from the queue and communicates with the Data Transfer Engine to perform necessary PUT/GET operations related to catalog data.
  
- TZM is built on <b>Rocky Linux</b> sources and utilizes an internal database (<b>PostgreSQL</b>).<br>
+
### Logical Designs
- The appliance can be accessed via CLISH (Command Line Interface Shell) and a web user interface (webUI). It hosts an internal web server running <b>nginx</b> for the webUI.<br>
 
- Configuration Converters, Catalog Converters, and Data Converters (applicable to CVT and RWV) handle all manipulations internally.
 
  
 +
Tranzman supports various migration scenarios with logical designs for:
  
===Agent Component===
+
- **Same Vendor Transition (SVT)**
 +
- **Cross Vendor Transition (CVT)**
 +
- **Recovery Without Vendor (RWV)**
  
The Agent serves as the interface between Tranzman and the backup server. Here are its key functions:
+
These designs facilitate structured transitions tailored to specific vendor requirements.
  
- Awaits actions from the Tranzman Server.<br>
+
## Actions in Tranzman
- Executes the received actions from the Tranzman server.<br>
 
- Returns the action status result to the Tranzman Server.<br>
 
  
The Agent is a minimal standalone binary installed on the backup server. It initiates <b>tzmclnt</b> and other processes on the backup server.
+
Actions in Tranzman are sequences of instructions executed by the Agent during the transition process. Below is a summary of available actions:
  
 +
| Action              | Description                                                                |
 +
|---------------------|-----------------------------------------------------------------------------|
 +
| **Init**            | Runs once on both origin and destination to retrieve system information.    |
 +
| **QueryProduct**    | Detects the installed backup product during initial discovery.              |
 +
| **QueryConfig**    | Determines configuration objects present in the system.                    |
 +
| **QueryMedia**      | Gathers media-related information cyclically on both systems.              |
 +
| **QueryImages**    | Discovers all backup images cyclically on both systems.                    |
 +
| **CreateConfig**    | Creates necessary configuration components on the target system.            |
 +
| **CreateWorkloads** | Creates required backup configuration components on the target system.      |
 +
| **CrossCheck**      | Compares data between origin and destination daily during data transfer.    |
 +
| **ExportImages**    | Exports selected images cyclically from the origin system.                  |
 +
| **ManipulateImages** | Converts or renames components mapped between origin and destination.      |
 +
| **ImportImages**    | Imports migrated images cyclically on the destination system.              |
 +
| **CreateMedia**    | Creates or updates media cyclically on the destination system.              |
 +
| **CheckConn**      | Tests connectivity of clients on demand on both systems.                    |
 +
| **FinalizeOrigin**  | Finalizes actions on origin during switchover.                            |
 +
| **FinalizeDestination** | Finalizes actions on destination during switchover.                    |
 +
| **Assessment**      | Performs Pre-Assessment and Post Acceptance tests around migration events.  |
 +
| **HouseKeeping**    | Cleans up completed information from the Tranzman Database cyclically.    |
 +
| **PreDuplication**  | Performs duplications on origin based on rules if required.                |
 +
| **PostDuplication** | Performs duplications on destination based on rules if required.          |
  
 +
## Migration Flows
  
==High-Level Process Flow==
+
### Same Vendor Migration Flow
 +
1. Export data to the Tranzman server.
 +
2. Convert data within the Tranzman server.
 +
3. Transfer and import data to the destination.
  
- All processes within the Tranzman Appliance rely on the Relational Database and the QueueManager process.<br>
+
### Cross Vendor Migration Flow
 +
- If backup data is on Tape:
 +
  1. The data converter reads directly from tapes.
 +
  2. Optionally duplicate converted data to destination storage.
  
- The <b>QueueManager</b> is responsible for updating <b>Actions</b> into the Agents' queue. These actions are associated with a list of APIs for the Tranzman Agent. The QueueManager effectively manages the flow of actions for all migrations.<br>
+
- If backup data is on Disk:
 +
  1. The converter reads data from origin storage over NFS/CIFS.
 +
  2. Optionally duplicate converted images to native destination storage.
  
- The <b>Agent</b> communicates with the <b>Data Transfer Engine</b> to retrieve actions from the queue and to perform PUT/GET operations related to catalog data.<br>
+
- If backup data is encrypted or deduplicated:
 +
  1. Pre-duplicate data to shared storage.
 +
  2. Read data from shared storage for conversion.
 +
  3. Optionally duplicate to native destination storage.
  
- The actions retrieved by the Agents can trigger various procedures.
+
This structured approach ensures efficient management of workload migrations across various environments while maintaining integrity and performance throughout the process.
  
 +
---
  
 
+
This overview provides a comprehensive understanding of Tranzman's architecture, functionality, and operational flows tailored for effective workload migration between different backup vendors.
 
 
===Logical design for Same Vendor Transition (SVT)===
 
<!-- no need of additional line break here -->
 
[[File:SVT.jpg|750px]]
 
 
 
 
 
===Logical design for Cross Vendor Transition (CVT)===
 
<br>
 
[[File:CVT.jpg|750px]]
 
 
 
 
 
===Logical design for Recovery Without Vendor (RWV)===
 
<br>
 
[[File:CVT.jpg|750px]]
 
 
 
== Actions ==
 
 
 
Actions consist of a sequence of instructions to be executed by the agent on the backup server as part of the transition process.
 
 
 
The following table shows all the available actions in Tranzman:
 
 
 
{| class="wikitable" style="margin:auto;width:100%;color:red;text-align:left;borderstyle=ridge;"
 
|-
 
| style="text-align:left;color:darkred;"| '''Init'''
 
| Runs once on both the origin and destination during the initial discovery to retrieve system information.
 
|-
 
| style="text-align:left;color:darkred;"| '''QueryProduct'''
 
| Runs once on both the origin and destination as part of the initial discovery to detect the backup product installed on the system.
 
|-
 
| style="text-align:left;color:darkred;"| '''QueryConfig'''
 
| Runs once on both the origin and destination to determine configuration objects (such as storage, credentials, workloads, etc.) present in the system.
 
|-
 
| style="text-align:left;color:darkred;"| '''QueryMedia'''
 
| Runs cyclically on both the origin and destination to gather media-related information.
 
|-
 
| style="text-align:left;color:darkred;"| '''QueryImages'''
 
| Runs cyclically on both the origin and destination to discover all backup images.
 
|-
 
| style="text-align:left;color:darkred;"| '''CreateConfig'''
 
| Runs once on the target system to create necessary configuration components.
 
|-
 
| style="text-align:left;color:darkred;"| '''CreateWorkloads'''
 
| Runs once on the target system to create required backup configuration components.
 
|-
 
| style="text-align:left;color:darkred;"| '''CrossCheck'''
 
| Runs daily during data transfer to compare data between the origin and destination.
 
|-
 
| style="text-align:left;color:darkred;"| '''ExportImages'''
 
| Runs cyclically on the origin system to export selected images.
 
|-
 
| style="text-align:left;color:darkred;"| '''ManipulateImages'''
 
| Converts or renames components that are mapped between the origin and destination.
 
|-
 
| style="text-align:left;color:darkred;"| '''ImportImages'''
 
| Runs cyclically on the destination system to import the migrated images.
 
|-
 
| style="text-align:left;color:darkred;"| '''CreateMedia'''
 
| Runs cyclically on the destination to create or update the media.
 
|-
 
| style="text-align:left;color:darkred;"| '''CheckConn'''
 
| Runs on demand on both the origin and destination to test connectivity of clients and to push NetBackup certificates.
 
|-
 
| style="text-align:left;color:darkred;"| '''FinalizeOrigin'''
 
| Runs once on the origin during the final switchover.
 
|-
 
| style="text-align:left;color:darkred;"| '''FinalizeDestination'''
 
| Runs once on the destination as part of the final switchover.
 
|-
 
| style="text-align:left;color:darkred;"| '''Assessment'''
 
| Runs on demand to perform Pre-Assessment and Post Acceptance tests before and after migration, respectively.
 
|-
 
| style="text-align:left;color:darkred;"| '''HouseKeeping'''
 
| Runs cyclically to clean up completed information from the Tranzman Database.
 
|-
 
| style="text-align:left;color:darkred;"| '''PreDuplication'''
 
| Runs cyclically based on rules to perform duplications on the origin if required, as part of a split.
 
|-
 
| style="text-align:left;color:darkred;"| '''PostDuplication'''
 
| Runs cyclically based on rules to perform duplications on the destination if required, as part of storage migration.
 
|-
 
|}
 
 
 
== Migration Flow ==
 
 
 
=== Same Vendor Migration Flow ===
 
[[File:Migration_flow-same_vendor.jpg|750px]]
 
 
 
* (1) Export the data and transfer it to the Tranzman server.
 
* (2) Convert the data within the Tranzman server.
 
* (3) Transfer the data to the destination and import it.
 
 
 
=== Cross Vendor Migration Flow ===
 
 
 
'''If the backup data is on Tape'''<br>
 
[[File:Migration_flow-cross_vendor_onTape.jpg|750px]]
 
 
 
* (1) The data converter in the Tranzman server reads the data directly from tapes.
 
* (2) Optionally, the converted data can be duplicated to a destination storage.
 
 
 
'''If the backup data is on Disk'''<br>
 
[[File:Migration_flow-cross_vendor_onDisk.jpg|750px]]
 
 
 
* (1) The converter reads the data from the origin storage over ''NFS/CIFS''.
 
* (2) Optionally, the converted images can be duplicated to the native destination storage.
 
 
 
'''If the backup data is encrypted or deduplicated'''<br>
 
[[File:Migration_flow-cross_vendor_encryptedBackup.jpg|750px]]
 
 
 
* (1) Pre-duplicate the data to shared storage.
 
* (2) The converter reads the data from the shared storage.
 
* (3) Optionally, the data can be duplicated to the native destination storage.
 
 
 
 
 
 
 
 
 
{| class="wikitable"  style="margin:auto;width:100%;color:blue;text-align:center;borderstyle=ridge;"
 
|-
 
| [[Image:prev_icon.jpg|30px|link=Overview]]
 
|| [[Image:next_icon.jpg|30px|link=Security]]
 
|}
 

Revision as of 06:14, 20 February 2025

    1. Overview of Tranzman Appliance

Tranzman is a specialized appliance designed for workload migrations between different backup systems. It is delivered as a complete solution, deployable on either virtual machines or physical servers using bootable ISO or OVA formats. Unlike traditional software binaries, Tranzman is not available as an executable binary or RPM, emphasizing its appliance nature.

      1. Components of Tranzman

Tranzman consists of two primary components:

    • 1. Appliance Component**

- **Core Framework:** The Tranzman appliance (TZM) includes:

 - **Queue Manager (tzmqm)**
 - **Data Transfer Engine (tzmtd)**

- **Technical Specifications:**

 - Built on **Rocky Linux** with an internal **PostgreSQL** database.
 - Accessible via a **Command Line Interface Shell (CLISH)** and a web user interface (webUI), hosted on an internal **nginx** web server.
 - Includes Configuration Converters, Catalog Converters, and Data Converters for internal manipulations.
    • 2. Agent Component**

- The Agent acts as the interface between Tranzman and the backup server with key functions:

 - Awaits and executes actions from the Tranzman Server.
 - Returns action status results to the Tranzman Server.

- It is a minimal standalone binary installed on the backup server, initiating processes like **tzmclnt**.

    1. High-Level Process Flow

The operational flow within the Tranzman appliance relies heavily on its relational database and Queue Manager:

- The **Queue Manager** updates actions into the Agents' queue, managing migration flows effectively. - The **Agent** retrieves actions from the queue and communicates with the Data Transfer Engine to perform necessary PUT/GET operations related to catalog data.

      1. Logical Designs

Tranzman supports various migration scenarios with logical designs for:

- **Same Vendor Transition (SVT)** - **Cross Vendor Transition (CVT)** - **Recovery Without Vendor (RWV)**

These designs facilitate structured transitions tailored to specific vendor requirements.

    1. Actions in Tranzman

Actions in Tranzman are sequences of instructions executed by the Agent during the transition process. Below is a summary of available actions:

| Action | Description | |---------------------|-----------------------------------------------------------------------------| | **Init** | Runs once on both origin and destination to retrieve system information. | | **QueryProduct** | Detects the installed backup product during initial discovery. | | **QueryConfig** | Determines configuration objects present in the system. | | **QueryMedia** | Gathers media-related information cyclically on both systems. | | **QueryImages** | Discovers all backup images cyclically on both systems. | | **CreateConfig** | Creates necessary configuration components on the target system. | | **CreateWorkloads** | Creates required backup configuration components on the target system. | | **CrossCheck** | Compares data between origin and destination daily during data transfer. | | **ExportImages** | Exports selected images cyclically from the origin system. | | **ManipulateImages** | Converts or renames components mapped between origin and destination. | | **ImportImages** | Imports migrated images cyclically on the destination system. | | **CreateMedia** | Creates or updates media cyclically on the destination system. | | **CheckConn** | Tests connectivity of clients on demand on both systems. | | **FinalizeOrigin** | Finalizes actions on origin during switchover. | | **FinalizeDestination** | Finalizes actions on destination during switchover. | | **Assessment** | Performs Pre-Assessment and Post Acceptance tests around migration events. | | **HouseKeeping** | Cleans up completed information from the Tranzman Database cyclically. | | **PreDuplication** | Performs duplications on origin based on rules if required. | | **PostDuplication** | Performs duplications on destination based on rules if required. |

    1. Migration Flows
      1. Same Vendor Migration Flow

1. Export data to the Tranzman server. 2. Convert data within the Tranzman server. 3. Transfer and import data to the destination.

      1. Cross Vendor Migration Flow

- If backup data is on Tape:

 1. The data converter reads directly from tapes.
 2. Optionally duplicate converted data to destination storage.

- If backup data is on Disk:

 1. The converter reads data from origin storage over NFS/CIFS.
 2. Optionally duplicate converted images to native destination storage.

- If backup data is encrypted or deduplicated:

 1. Pre-duplicate data to shared storage.
 2. Read data from shared storage for conversion.
 3. Optionally duplicate to native destination storage.

This structured approach ensures efficient management of workload migrations across various environments while maintaining integrity and performance throughout the process.

---

This overview provides a comprehensive understanding of Tranzman's architecture, functionality, and operational flows tailored for effective workload migration between different backup vendors.