Difference between revisions of "Architecture"

From Tranzman Documentation
Jump to: navigation, search
 
(30 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Introduction ==
+
__TOC__
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 has two components - An Appliance and an Agent component.
 
 
 
 
 
== Appliance component ==
 
The core framework of Tranzman appliance ('''TZM''') has
 
 
 
::'''Queue Manager (tzmqm)'''
 
 
 
::'''Data Transfer Engine (tzmtd)'''
 
 
 
* TZM is built on RHEL8.6 sources and uses an internal database ('''postgresql''').
 
 
 
* Appliance can be accessed via CLISH and webUI. Hosts an internal web server running nginx for webUI.
 
 
 
* Additionally, Configuration Converters, Catalog Converters and Data Converters (applicable to CVT and RWV) performs all the manipulation internally.
 
 
 
 
 
== Agent component ==
 
* This is an interface between Tranzman and the Backup server
 
 
 
* Awaits Actions from the Tranzman Sever
 
 
 
* Execute the Actions received from Tranzman server
 
 
 
* Return the Action status result to the Tranzman 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 ==
 
* 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.
 
 
 
* 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.
 
 
 
 
 
== Logical design for Same Vendor Transition (SVT) ==
 
<!-- no need of additional line break here -->
 
[[File:SVT.jpg]]
 
 
 
 
 
== Logical design for Cross Vendor Transition (CVT) ==
 
 
<br>
 
<br>
[[File:CVT.jpg]]
 
 
 
== Logical design for Recovery Without Vendor (RWV) ==
 
 
<br>
 
<br>
[[File:CVT.jpg]]
+
<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;">
== Actions ==
+
    Tranzman is delivered as an appliance, ready for deployment out-of-the-box.<br>
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.
+
    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>.
The below table shows all the Actions available in Tranzman.
+
  </p>
 
+
</div>
{| class="wikitable"  style="margin:auto;width:100%;color:red;text-align:left;borderstyle=ridge;"
 
|-
 
| style="text-align:left;color:darkred;"| Init
 
|| Runs once on origin and destination as part of the initial discovery to get system information.
 
|-
 
| 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.
 
|-
 
| 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.
 
|-
 
| style="text-align:left;color:darkred;"| QueryMedia
 
|| Runs cyclic on the origin and destination to determine the media information.
 
|-
 
| style="text-align:left;color:darkred;"| QueryImages
 
|| Runs cyclic on the origin and destination to discover all backup images.
 
|-
 
| style="text-align:left;color:darkred;"| CreateConfig
 
|| Runs once on the target to create required configuration components.
 
|-
 
| style="text-align:left;color:darkred;"| CreateWorkloads
 
|| Runs once on the target to create required backup configuration components.
 
|-
 
| style="text-align:left;color:darkred;"| CrossCheck
 
|| Runs daily during data transfer to compare origin and destination data.
 
|-
 
| style="text-align:left;color:darkred;"| ExportImages
 
|| Runs cyclic on the origin to export the selected images.
 
|-
 
| style="text-align:left;color:darkred;"| ManipulateImages
 
|| Converts / renames components that are mapped between origin and destination.
 
|-
 
| style="text-align:left;color:darkred;"| ImportImages
 
|| Runs cyclic on the destination to import the migrated images.
 
|-
 
| style="text-align:left;color:darkred;"| CreateMedia
 
|| Runs cyclic on the destination to create / update the media.
 
|-
 
| style="text-align:left;color:darkred;"| CheckConn
 
|| Runs on demand on origin and destination to test connectivity of clients, and to push NetBackup certificates
 
|-
 
| style="text-align:left;color:darkred;"| FinalizeOrigin
 
|| Runs once on origin during final switchover.
 
|-
 
| style="text-align:left;color:darkred;"| FinalizeDestination
 
|| Runs once on destination as part of final switchover.
 
|-
 
| style="text-align:left;color:darkred;"| Assessment
 
|| Runs on demand to run Pre-Assessment and Post Acceptance tests before and after migration respectively.
 
|-
 
| style="text-align:left;color:darkred;"| HouseKeeping
 
|| Runs cyclic to cleanup the completed info from the Tranzman Database.
 
|-
 
| 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.
 
|-
 
| 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.
 
|-
 
 
 
|}
 
 
 
 
== Migration Flow ==
 
=== Same Vendor migration flow ===
 
[[File:Migration_flow-same_vendor.jpg]]
 
 
 
* (1) Export the data and tranfer to Tranzman server.
 
 
 
* (2) Convert the data within Tranzman server.
 
 
 
* (3) Transfer the data to Destination and import it.
 
  
=== Cross Vendor Migration flow ===
+
<div style="max-width:80%; margin: 0 auto;">
[[File:Migration_flow-same_vendor.jpg]]
 
  
* (1) The Tape Library should be connected to Tranzman Server, so that the data converter can directly access the Tape and read the data. This will be stored in Tranzman staging area.
+
  <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>
  
* (2) Additionally, the data can be duplicated to a destination storage
+
  <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>
 +
    {| class="wikitable" style="width:100%; font-family:Roboto, sans-serif; font-size:14px; border-collapse:collapse; text-align:left; border:1px solid #e0e0e0;"
 +
    |+ style="font-size:18px; font-weight:bold; padding:12px; background-color:#f5f5f5;" | Tranzman Action Descriptions
 +
    |- style="background-color:#eeeeee; font-weight:bold; height:56px; border-bottom:2px solid #e0e0e0;"
 +
    ! style="padding:16px;" | Action
 +
    ! style="padding:16px;" | Description
 +
    |- style="height:52px; border-bottom:1px solid #e0e0e0;"
 +
    | style="padding:16px;" | Init
 +
    | style="padding:16px;" | Runs once on both origin and destination during initial system discovery.
 +
    |- style="height:52px; border-bottom:1px solid #e0e0e0;"
 +
    | style="padding:16px;" | QueryProduct
 +
    | style="padding:16px;" | Identifies the backup product installed on both origin and destination.
 +
    |- style="height:52px; border-bottom:1px solid #e0e0e0;"
 +
    | style="padding:16px;" | QueryConfig
 +
    | style="padding:16px;" | Detects configuration objects (e.g., storage, credentials, workloads) on both systems.
 +
    |- style="height:52px; border-bottom:1px solid #e0e0e0;"
 +
    | style="padding:16px;" | QueryMedia
 +
    | style="padding:16px;" | Continuously collects media-related data on both systems.
 +
    |- style="height:52px; border-bottom:1px solid #e0e0e0;"
 +
    | style="padding:16px;" | QueryImages
 +
    | style="padding:16px;" | Continuously discovers all backup images on origin and destination.
 +
    |- style="height:52px; border-bottom:1px solid #e0e0e0;"
 +
    | style="padding:16px;" | CreateConfig
 +
    | style="padding:16px;" | Creates necessary configuration components on the target system.
 +
    |- style="height:52px; border-bottom:1px solid #e0e0e0;"
 +
    | style="padding:16px;" | CreateWorkloads
 +
    | style="padding:16px;" | Establishes required backup configurations on the target system.
 +
    |- style="height:52px; border-bottom:1px solid #e0e0e0;"
 +
    | style="padding:16px;" | CrossCheck
 +
    | style="padding:16px;" | Performs daily data comparisons between origin and destination.
 +
    |- style="height:52px; border-bottom:1px solid #e0e0e0;"
 +
    | style="padding:16px;" | ExportImages
 +
    | style="padding:16px;" | Cyclically exports selected images from the origin system.
 +
    |- style="height:52px; border-bottom:1px solid #e0e0e0;"
 +
    | style="padding:16px;" | ManipulateImages
 +
    | style="padding:16px;" | Renames or converts components mapped between origin and destination.
 +
    |- style="height:52px; border-bottom:1px solid #e0e0e0;"
 +
    | style="padding:16px;" | ImportImages
 +
    | style="padding:16px;" | Imports migrated images cyclically into the destination system.
 +
    |- style="height:52px; border-bottom:1px solid #e0e0e0;"
 +
    | style="padding:16px;" | CreateMedia
 +
    | style="padding:16px;" | Updates or creates new media on the destination system.
 +
    |- style="height:52px; border-bottom:1px solid #e0e0e0;"
 +
    | style="padding:16px;" | CheckConn
 +
    | style="padding:16px;" | Tests client connectivity and pushes NetBackup certificates.
 +
    |- style="height:52px; border-bottom:1px solid #e0e0e0;"
 +
    | style="padding:16px;" | FinalizeOrigin
 +
    | style="padding:16px;" | Completes final origin system preparations before switchover.
 +
    |- style="height:52px; border-bottom:1px solid #e0e0e0;"
 +
    | style="padding:16px;" | FinalizeDestination
 +
    | style="padding:16px;" | Completes final destination system preparations post-switchover.
 +
    |- style="height:52px; border-bottom:1px solid #e0e0e0;"
 +
    | style="padding:16px;" | Assessment
 +
    | style="padding:16px;" | Executes pre-assessment and post-transition validation tests.
 +
    |- style="height:52px; border-bottom:1px solid #e0e0e0;"
 +
    | style="padding:16px;" | HouseKeeping
 +
    | style="padding:16px;" | Cyclically clears completed records from the Tranzman Database.
 +
    |- style="height:52px; border-bottom:1px solid #e0e0e0;"
 +
    | style="padding:16px;" | PreDuplication
 +
    | style="padding:16px;" | Performs pre-duplication on the origin based on split migration rules.
 +
    |- style="height:52px;"
 +
    | style="padding:16px;" | PostDuplication
 +
    | style="padding:16px;" | Performs post-duplication on the destination storage as part of migration.
 +
    |}
 +
</div>
 +
  <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>
  
{| class="wikitable"  style="margin:auto;width:100%;color:blue;text-align:center;borderstyle=ridge;"
+
<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;">
| Go to [[ Security| Security ]]
+
    [[File:prev_icon.jpg|30px|link=Overview]] [[Overview|Previous]]
|| Return to [[ Overview|Overview ]]
+
  </div>
|}
+
  <div style="text-align:right;">
 +
    [[Security|Next]] [[File:next_icon.jpg|30px|link=Security]]
 +
</div>

Latest revision as of 09:34, 11 September 2025



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.

Same Vendor Transition (SVT)

       SVT.jpg

Cross Vendor Transition (CVT)

       CVT.jpg

Recovery Without Vendor (RWV)

       CVT.jpg

Actions

Actions are sequences of instructions executed by the agent on the backup server to facilitate transitions.

Tranzman Action Descriptions
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

   Migration flow-same vendor.jpg

Cross Vendor Migration Flow

If the backup data is stored on Tape

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

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

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