Difference between revisions of "Architecture"

From Tranzman Documentation
Jump to: navigation, search
Line 1: Line 1:
===Introduction===
+
==Introduction==
Tranzman comes as an appliance out-of-the-box. It can be deployed in a Virtual machine or physical server using a bootable ISO or OVA.
 
  
Tranzman is an appliance and not a software binary and so ''it is not available as an executable binary or rpm''.
+
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 has two components - An Appliance and an Agent component.
+
Unlike a software binary, Tranzman is an appliance and therefore <b>not available as an executable binary or RPM</b>.
  
 +
Tranzman consists of two main components: the <b>Appliance</b> and the <b>Agent</b>.
  
===Appliance component===
 
The core framework of Tranzman appliance ('''TZM''') has
 
  
::'''Queue Manager (tzmqm)'''
+
===Appliance Component===
  
::'''Data Transfer Engine (tzmtd)'''
+
The core framework of the Tranzman appliance ('TZM') includes:
  
* TZM is built on RHEL8.6 sources and uses an internal database ('''postgresql''').
+
'''1. Queue Manager (tzmqm)'''
 +
'''2. Data Transfer Engine (tzmtd)'''
  
* Appliance can be accessed via CLISH and webUI. Hosts an internal web server running nginx for webUI.
+
Additional details about the appliance:
  
* Additionally, Configuration Converters, Catalog Converters and Data Converters (applicable to CVT and RWV) performs all the manipulation internally.
+
- TZM is built on <b>Rocky Linux</b> sources and utilizes an internal database (<b>PostgreSQL</b>).
 +
- 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.
 +
- Configuration Converters, Catalog Converters, and Data Converters (applicable to CVT and RWV) handle all manipulations internally.
  
  
===Agent component===
+
===Agent Component===
* This is an interface between Tranzman and the Backup server
 
  
* Awaits Actions from the Tranzman Sever
+
The Agent serves as the interface between Tranzman and the backup server. Here are its key functions:
  
* Execute the Actions received from Tranzman server
+
- Awaits actions from the Tranzman Server.
 +
- Executes the received actions from the Tranzman server.
 +
- Returns the action status result to the Tranzman Server.
  
* Return the Action status result to the Tranzman Server
+
The Agent is a minimal standalone binary installed on the backup server. It initiates <b>tzmclnt</b> and other processes on the backup server.
  
Agent is a minimal standalone binary installed on Backup server and it starts tzmclnt and other processes on Backup server
 
  
  
===High Level Process Flow===
+
==High-Level Process Flow==
* All processes in the Tranzman Appliance depends on the Relational Database and the QueueManager process.
 
  
* The QueueManager is responsible for updating '''Actions''' into the Agents queue and the actions has a list of APIs for the Tranzman Agent. The QueueManager manages the flow of actions for all the migrations.
+
- All processes within the Tranzman Appliance rely on the Relational Database and the QueueManager process.
 +
 
 +
- 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.
 +
 
 +
- 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.
 +
 
 +
- The actions retrieved by the Agents can trigger various procedures.
  
* Agent communicates with the '''Data Transfer Engine''' to retrieve Actions from the Queue and to PUT/GET catalog data associated with it.
 
  
* The '''Actions''' that the Agents retrieve from its Queue perform one of many different actions.
 
  
  
Line 57: Line 61:
 
[[File:CVT.jpg|750px]]
 
[[File:CVT.jpg|750px]]
  
 +
== Actions ==
  
===Actions===
+
Actions consist of a sequence of instructions to be executed by the agent on the backup server as part of the transition process.
Actions has a sequence of instructions to be executed by the agent on the backup server to complete a specific procedure as part of Transition.
 
  
The below table shows all the Actions available in Tranzman.
+
The following table shows all the available actions in Tranzman:
  
{| class="wikitable" style="margin:auto;width:100%;color:red;text-align:left;borderstyle=ridge;"
+
{| class="wikitable" style="margin:auto;width:100%;color:red;text-align:left;borderstyle=ridge;"
 
|-
 
|-
| style="text-align:left;color:darkred;"| Init
+
| style="text-align:left;color:darkred;"| '''Init'''
|| Runs once on origin and destination as part of the initial discovery to get system information.
+
| Runs once on both the origin and destination during the initial discovery to retrieve system information.
 
|-
 
|-
| style="text-align:left;color:darkred;"| QueryProduct
+
| style="text-align:left;color:darkred;"| '''QueryProduct'''
|| Runs once on origin and destination as part of the initial discovery for detecting the backup product on the system.
+
| 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
+
| style="text-align:left;color:darkred;"| '''QueryConfig'''
|| Runs once on the origin and destination to determine the configuration objects (storage, credentials, workloads, etc) on the system.
+
| 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
+
| style="text-align:left;color:darkred;"| '''QueryMedia'''
|| Runs cyclic on the origin and destination to determine the media information.
+
| Runs cyclically on both the origin and destination to gather media-related information.
 
|-
 
|-
| style="text-align:left;color:darkred;"| QueryImages
+
| style="text-align:left;color:darkred;"| '''QueryImages'''
|| Runs cyclic on the origin and destination to discover all backup images.
+
| Runs cyclically on both the origin and destination to discover all backup images.
 
|-
 
|-
| style="text-align:left;color:darkred;"| CreateConfig
+
| style="text-align:left;color:darkred;"| '''CreateConfig'''
|| Runs once on the target to create required configuration components.
+
| Runs once on the target system to create necessary configuration components.
 
|-
 
|-
| style="text-align:left;color:darkred;"| CreateWorkloads
+
| style="text-align:left;color:darkred;"| '''CreateWorkloads'''
|| Runs once on the target to create required backup configuration components.
+
| Runs once on the target system to create required backup configuration components.
 
|-
 
|-
| style="text-align:left;color:darkred;"| CrossCheck
+
| style="text-align:left;color:darkred;"| '''CrossCheck'''
|| Runs daily during data transfer to compare origin and destination data.
+
| Runs daily during data transfer to compare data between the origin and destination.
 
|-
 
|-
| style="text-align:left;color:darkred;"| ExportImages
+
| style="text-align:left;color:darkred;"| '''ExportImages'''
|| Runs cyclic on the origin to export the selected images.
+
| Runs cyclically on the origin system to export selected images.
 
|-
 
|-
| style="text-align:left;color:darkred;"| ManipulateImages
+
| style="text-align:left;color:darkred;"| '''ManipulateImages'''
|| Converts / renames components that are mapped between origin and destination.
+
| Converts or renames components that are mapped between the origin and destination.
 
|-
 
|-
| style="text-align:left;color:darkred;"| ImportImages
+
| style="text-align:left;color:darkred;"| '''ImportImages'''
|| Runs cyclic on the destination to import the migrated images.
+
| Runs cyclically on the destination system to import the migrated images.
 
|-
 
|-
| style="text-align:left;color:darkred;"| CreateMedia
+
| style="text-align:left;color:darkred;"| '''CreateMedia'''
|| Runs cyclic on the destination to create / update the media.
+
| Runs cyclically on the destination to create or update the media.
 
|-
 
|-
| style="text-align:left;color:darkred;"| CheckConn
+
| style="text-align:left;color:darkred;"| '''CheckConn'''
|| Runs on demand on origin and destination to test connectivity of clients, and to push NetBackup certificates
+
| 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
+
| style="text-align:left;color:darkred;"| '''FinalizeOrigin'''
|| Runs once on origin during final switchover.
+
| Runs once on the origin during the final switchover.
 
|-
 
|-
| style="text-align:left;color:darkred;"| FinalizeDestination
+
| style="text-align:left;color:darkred;"| '''FinalizeDestination'''
|| Runs once on destination as part of final switchover.
+
| Runs once on the destination as part of the final switchover.
 
|-
 
|-
| style="text-align:left;color:darkred;"| Assessment
+
| style="text-align:left;color:darkred;"| '''Assessment'''
|| Runs on demand to run Pre-Assessment and Post Acceptance tests before and after migration respectively.
+
| Runs on demand to perform Pre-Assessment and Post Acceptance tests before and after migration, respectively.
 
|-
 
|-
| style="text-align:left;color:darkred;"| HouseKeeping
+
| style="text-align:left;color:darkred;"| '''HouseKeeping'''
|| Runs cyclic to cleanup the completed info from the Tranzman Database.
+
| Runs cyclically to clean up completed information from the Tranzman Database.
 
|-
 
|-
| style="text-align:left;color:darkred;"| PreDuplication
+
| style="text-align:left;color:darkred;"| '''PreDuplication'''
|| Runs cyclic based on rules to perform Duplications on the Origin if required, as part of a split.
+
| 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
+
| style="text-align:left;color:darkred;"| '''PostDuplication'''
|| Runs cyclic based on rules to perform Duplications on the Destination if required,as part of storage migration.
+
| Runs cyclically based on rules to perform duplications on the destination if required, as part of storage migration.
 
|-
 
|-
 +
|}
  
|}
+
== Migration Flow ==
 
  
===Migration Flow===
+
=== Same Vendor Migration Flow ===
====Same Vendor migration flow====
 
 
[[File:Migration_flow-same_vendor.jpg|750px]]
 
[[File:Migration_flow-same_vendor.jpg|750px]]
  
* (1) Export the data and tranfer to Tranzman server.
+
* (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.
  
* (2) Convert the data within Tranzman server.
+
=== Cross Vendor Migration Flow ===
  
* (3) Transfer the data to Destination and import it.
 
 
====Cross Vendor Migration flow====
 
 
'''If the backup data is on Tape'''
 
'''If the backup data is on Tape'''
 
 
[[File:Migration_flow-cross_vendor_onTape.jpg|750px]]
 
[[File:Migration_flow-cross_vendor_onTape.jpg|750px]]
  
* (1) Data converter in Tranzman server reads the data from Tapes directly.
+
* (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.
* (2) Optionally, the converted data can be duplicated to a destination storage
 
  
 
'''If the backup data is on Disk'''
 
'''If the backup data is on Disk'''
 
 
[[File:Migration_flow-cross_vendor_onDisk.jpg|750px]]
 
[[File:Migration_flow-cross_vendor_onDisk.jpg|750px]]
  
* (1) Converter reads the data from Origin storage over ''NFS/CIFS''
+
* (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.
* (2) Optionally, can duplicate the converted images to native destination storage
 
  
 
'''If the backup data is encrypted or deduplicated'''
 
'''If the backup data is encrypted or deduplicated'''
 
 
[[File:Migration_flow-cross_vendor_encryptedBackup.jpg|750px]]
 
[[File:Migration_flow-cross_vendor_encryptedBackup.jpg|750px]]
  
* (1) Pre-duplicate the data to shared storage
+
* (1) Pre-duplicate the data to shared storage.
 
+
* (2) The converter reads the data from the shared storage.
* (2) Converter reads the data from shared storage  
+
* (3) Optionally, the data can be duplicated to the native destination storage.
 
 
* (3) Optionally, the data can be duplicated to native destination storage
 
  
  

Revision as of 08:31, 27 February 2024

Introduction

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.

Unlike a software binary, Tranzman is an appliance and therefore not available as an executable binary or RPM.

Tranzman consists of two main components: the Appliance and the Agent.


Appliance Component

The core framework of the Tranzman appliance ('TZM') includes:

1. Queue Manager (tzmqm) 2. Data Transfer Engine (tzmtd)

Additional details about the appliance:

- TZM is built on Rocky Linux sources and utilizes an internal database (PostgreSQL). - The appliance can be accessed via CLISH (Command Line Interface Shell) and a web user interface (webUI). It hosts an internal web server running nginx for the webUI. - Configuration Converters, Catalog Converters, and Data Converters (applicable to CVT and RWV) handle all manipulations internally.


Agent Component

The Agent serves as the interface between Tranzman and the backup server. Here are its key functions:

- Awaits actions from the Tranzman Server. - Executes the received actions from the Tranzman server. - Returns the action status result to the Tranzman Server.

The Agent is a minimal standalone binary installed on the backup server. It initiates tzmclnt and other processes on the backup server.


High-Level Process Flow

- All processes within the Tranzman Appliance rely on the Relational Database and the QueueManager process.

- The QueueManager is responsible for updating Actions 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.

- The Agent communicates with the Data Transfer Engine to retrieve actions from the queue and to perform PUT/GET operations related to catalog data.

- The actions retrieved by the Agents can trigger various procedures.



Logical design for Same Vendor Transition (SVT)

SVT.jpg


Logical design for Cross Vendor Transition (CVT)


CVT.jpg


Logical design for Recovery Without Vendor (RWV)


CVT.jpg

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:

Init Runs once on both the origin and destination during the initial discovery to retrieve system information.
QueryProduct Runs once on both the origin and destination as part of the initial discovery to detect the backup product installed on the system.
QueryConfig Runs once on both the origin and destination to determine configuration objects (such as storage, credentials, workloads, etc.) present in the system.
QueryMedia Runs cyclically on both the origin and destination to gather media-related information.
QueryImages Runs cyclically on both the origin and destination to discover all backup images.
CreateConfig Runs once on the target system to create necessary configuration components.
CreateWorkloads Runs once on the target system to create required backup configuration components.
CrossCheck Runs daily during data transfer to compare data between the origin and destination.
ExportImages Runs cyclically on the origin system to export selected images.
ManipulateImages Converts or renames components that are mapped between the origin and destination.
ImportImages Runs cyclically on the destination system to import the migrated images.
CreateMedia Runs cyclically on the destination to create or update the media.
CheckConn Runs on demand on both the origin and destination to test connectivity of clients and to push NetBackup certificates.
FinalizeOrigin Runs once on the origin during the final switchover.
FinalizeDestination Runs once on the destination as part of the final switchover.
Assessment Runs on demand to perform Pre-Assessment and Post Acceptance tests before and after migration, respectively.
HouseKeeping Runs cyclically to clean up completed information from the Tranzman Database.
PreDuplication Runs cyclically based on rules to perform duplications on the origin if required, as part of a split.
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

Migration flow-same vendor.jpg

  • (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 Migration flow-cross vendor onTape.jpg

  • (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 Migration flow-cross vendor onDisk.jpg

  • (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 Migration flow-cross vendor encryptedBackup.jpg

  • (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.



Prev icon.jpg Next icon.jpg