Non-containerized Cluster-to-Containerized Cluster Migration (Whole Cluster)

  • Last update: 2024-08-13
  • Overview

    Version

    Project Version

    Functional Change

    FineReport11.0

    FineBI6.0

    /

    Application Scenario

    Containerized projects require lower upgrade and maintenance costs compared with common clusters.

    The solution described in this document helps you migrate an original non-containerized FineBI cluster to a containerized cluster.

    In the following steps, the FineBI project and cluster components (such as the state server, file server, and external database) are migrated.

    After the migration, the original project can be restarted and reused.

    iconNote:
    This document takes the FineBI project as an example to illustrate the migration steps. The migration steps for the FineReport project are the same, with only two differences:

    1. The files to be copied for the FineReport and FineBI projects are not the same. Pay attention to the table content in this document.

    2. When you start/stop the container with FineOps, close the fr component for a FineReport project, and close the bi 6 component for a FineBI project.

    Preparing the New Containerized Project

    Deploying FineOps

    Containerized FineBI projects need to be deployed via FineOps. You need to deploy FineOps first.

    For details, see FineOps Deployment.

    Deploying a New Containerized Project

    Before migration, you need to deploy a containerized cluster project via FineOps first.

    For details, see New Project Deployment.

    iconNote:
    1. Note down the relevant information of mysql, redis, and minio components. The passwords are randomly generated, so you should modify the passwords of these components to facilitate future use.


    iconNote:

    2. Note down the mounting path (customizable) of FineBI projects. This is the storage path of the project files, and will be needed in subsequent steps.


    Confirming the Remaining Disk Space of the New Project Server

    1. Check the size of the original non-containerized project.

    2. Expand the remaining disk space on the server node where the new containerized project is located moderately according to the size of the original project. You are advised to expand the remaining disk space to more than twice the size of the original project, with a minimum value of 500GB.

    Confirming the New Project Version

    The version of the new containerized FineBI project is typically more up-to-date compared with that of the original project. You need to confirm the new project version and upgrade the original project to the same version.

    Log in to the new containerized project as the admin, and choose System Management > Registration Management > Version Information to confirm the minor version of the project (accurate to the JAR package date).

    Closing a New Containerized Project

    Log in to FineOps, click Project Management, click the new containerized project, and choose Maintenance > Component Management.

    Find the bi 6 component and click the Stop button to close all project nodes of the new containerized cluster. See the following figure.

    Backing Up the config Folder

    Find the config folder in /fanruanxxx/bi directory of the FineBI project mounting path and back it up.

    The commands stored in the YAML file of the config folder are used for project deployment, and might be used or referenced for subsequent operation and maintenance. Ensure to back them up at an offsite location.

    Preparing the Original Non-containerized Project

    Backing Up the Original Project

    Before project migration, you must back up the original project and then proceed with subsequent operations. This can avoid the rollback failure of the original project caused by project file loss if the migration fails.

    For details about backing up the project, see section "Backup Method" in Project Backup and Restoration.

    Upgrading the Original Project

    The version of the new containerized FineBI project is typically more up-to-date compared with that of the original project.

    Therefore, you need to upgrade the original non-containerized project to the same version as that of the new project, and then perform migration.

    Obtaining the JAR Package

    Paid users can contact the technical support personnel to obtain the project JAR package of the same minor version (accurate to the JAR package date) as that of the new project mentioned in the section "Confirming New Project Version."

    To contact our technical support personnel, you can send an email to international@fanruan.com or click the  icon at https://help.fanruan.com/fineops-en/.

    Upgrading the Original Non-containerized Project

    For details about upgrading the project to a specified version, see Designer Upgrade Guide.

    Closing Other Project Nodes

    For details about closing other original non-containerized project nodes and keeping only one surviving project node, see Closing or Restarting the FineBI Project.

    Migrating the External Database

    You need to synchronize the configuration databases of the new and original projects to ensure that the platform configurations of the two projects are completely identical. However, the new and original projects should not be connected to the same external database.

    Creating an Empty Database

    • If the original project uses a non-MySQL 8 type external database:

    The new project's external database should still be deployed in a new database under the same address. The MySQL database mentioned in section "New Project Deployment" cannot be used.

    Create a new database name at the address of the original project's external database to serve as the empty database for migration.

    • If the original project uses a MySQL 8 type external database:

    You are advised to deploy the new project's external database in the MySQL database mentioned in section "New Project Deployment."

    Create a new database name in the mysql 8 component deployed in the containerized environment in section "New Project Deployment" to serve as the empty database for migration.

    Migrating the Database

    Log in to the sole surviving node of the original project as the admin, and choose System Management > System Setting > General > External Database.

    • Configure the external database to the empty database mentioned in the previous step.

    • Select Migrate Data to Database to Be Enabled.

    • Click Enable New Database.

    When the prompt "Successfully switched to the target database." is displayed, it means that the external database has been successfully switched.

    Installing the MinIO Resource Warehouse Plugin

    Since the original non-containerized project needs to be connected to the containerized cluster components, you need to install the required plugins first.

    Log in to the sole surviving node of the original project as the admin, choose System Management > Plugin Management, and install the MinIO Resource Warehouse Plugin. See the following figure.

    Connecting to Cluster Components

    Log in to the sole surviving node of the original project as the admin, and choose System Management > Intelligent O&M > Cluster Configuration.

    1. Enable Status Server. Select Redis Single Machine, and enter the redis component information noted down in the section "New Project Deployment."

    2. Enable File Server Sharing. Select MinIO, and enter the minio component information noted down in the section "New Project Deployment."

    3. Disable Cache Mode and set Cluster Communication Protocol to TCP.

    4. Enable Cluster.

    For details about restarting the project node, see Closing or Restarting the FineBI Project.

    Choose System Management > Intelligent O&M again to check whether the content under Cluster Configuration has been updated.

    Closing the Original Project

    For details about closing all nodes of the original project, see Closing or Restarting the FineBI Project.

    Migrating the Project

    Copying and Pasting Files

    Copy the necessary files from the last surviving project node of the original non-containerized cluster and the original file server, and paste them into each node of the containerized cluster and the MinIO server.

    1. Check in advance whether the original non-containerized cluster is configured with a mounting directory and a shared file server, and ensure that the correct files are copied and pasted.

    2. The mounting files of the new containerized project are stored in the mounting path set in the section "Deploying a New Project."

    iconNote:
    1. You cannot use the docker cp command to copy and paste the entire webroot folder into the container, as it may cause functional issues.

    2. You cannot directly copy and paste the entire webroot folder into the mounting directory of the containerized project, as some files cannot be overwritten.

    3. Copy and paste the final file of the project instead of the file backed up in the section "Backing up the Original Project."

    4. MinIO utilizes the S3 protocol, so you cannot directly use the files uploaded to the server. For details, see Introduction to MinIO File Server.

    • Files Needed to Be Copied for FineBI

    Original Non-containerized Project Directory

    New Containerized Project Mounting Directory

    Description

    %Tomcat_HOME%/logs

    %BI_HOME%/fanruan

    xxx/bi6/tomcat_logs

    Function: It is the location of Tomcat general logs.

    Necessity in copying and pasting: optional. Tomcat historical access log may not need to be copied.

    %Tomcat_HOME%/webapps/we

    broot/bi-data

    %BI_HOME%/fanruan

    xxx/bi6/bi-data

    Function: It stores extracted data of FineBI.

    Necessity in copying and pasting:

    Not necessary: If the new and original projects are on the same server, you can remount the bi-data folder of the original project using -v or extract the data again after the new project is started.

    Not recommended: If the new and original projects are on different servers, you are not advised to copy and paste files. The folder generally contains a large amount of data, making it difficult for you to copy and paste. You can extract data again after the new project is started.

    %Tomcat_HOME%/webapps/we

    broot/logs

    %BI_HOME%/fanruan

    xxx/bi6/logs

    Function: It stores swift logs.

    Necessity in copying and pasting: optional.

    If you do not copy and paste it, logdb (the historical operation logs of the project)l will be lost. There will be no data under Platform Management > Platform Log.

    You do not need to copy and paste it if historical usage information is not required.

    %Tomcat_HOME%/webapps/we

    broot/WEB-INF/classes

    %BI_HOME%/fanruan

    xxx/bi6/classes

    Function: It stores default and custom class files called by the project.

    Necessity in copying and pasting: necessary.

    It may store custom class files. If you do not copy and paste it, the normal use of the project will be affected.

    %Tomcat_HOME%/webapps/we

    broot/WEB-INF/config

    %BI_HOME%/fanruan

    xxx/bi6/config

    Function: It stores configuration-database-related files.

    Necessity in copying and pasting: necessary.

    It stores the configuration database (finedb) called by the platform. If you do not copy and paste it, the normal use of the project will be affected.


    Locate the following two directories:

    %Tomcat_HOME%/webapps/we

    broot/WEB-INF/lib

    %Tomcat_HOME%/webapps/we

    broot/WEB-INF/customLib

    Copy and paste all custom JAR files except for the following built-in JARs of the project.

    Click to show more

    fdl-bi-extension-4.0.jar

    fdl-boot-4.0.jar

    fdl-core-4.0.jar

    fdl-cron-4.0.jar

    fdl-datasource-4.0.jar

    fdl-third-4.0.jar

    fine-accumulator-11.0.jar

    fine-activator-11.0.jar

    fine-autuator-formula-11.0.jar

    fine-bi-adapter-6.0.jar

    fine-bi-datamining-6.0.jar

    fine-bi-datamining-third-6.0.jar

    fine-bi-engine-spider-6.0.jar

    fine-bi-engine-third-6.0.jar

    fine-bi-foundation-6.0.jar

    fine-bi-middle-6.0.jar

    fine-bi-query-6.0.jar

    fine-bi-query-excel-6.0.jar

    fine-bi-query-third-6.0.jar

    fine-bi-scheduler-6.0.jar

    fine-bi-spider-cluster-6.0.jar

    fine-cbb-11.0.jar

    fine-core-11.0.jar

    fine-datasource-11.0.jar

    fine-decision-11.0.jar

    fine-decision-bi-11.0.jar

    fine-decision-report-11.0.jar

    fine-report-engine-11.0.jar

    fine-schedule-11.0.jar

    fine-schedule-bi-11.0.jar

    fine-schedule-report-11.0.jar

    fine-swift-log-adaptor-11.0.jar

    fine-third-11.0.jar

    fine-webui-11.0.jar

    h2-2.1.214.jar

    jtds-1.3.1.jar

    mssql-jdbc-9.4.1.jre8.jar

    mysql-connector-java-5.1.49-bin.jar

    ojdbc8.jar

    orai18n.jar

    sqlite-jdbc-3.35.4.jar

    jarfile-checksum.txt

    readme.txt

    version-bi.txt

    %BI_HOME%/fanruan

    xxx/bi6/customlib

    Function: It stores JAR packages customized by projects or externally imported JAR packages.

    Necessity in copying and pasting: necessary. Otherwise, template access will be affected.

    %Tomcat_HOME%/webapps/we

    broot/WEB-INF/plugins

    %BI_HOME%/fanruan

    xxx/bi6/plugins

    Function: It stores plugin-related files.

    Necessity in copying and pasting: necessary. Otherwise, plugin-related functions will be affected.

    %ftp%/backup

    Minio file storage pat

    h/backup

    Function: It stores historical backup files of the project.

    Necessity in copying and pasting: optional. You do not need to copy and paste backups that can be stored in the original directory.

    %ftp%/assets/temp_attach

    Minio file storage pat

    h/assets/temp_attach

    Function: It stores the information related to FineBI data table.

    Necessity in copying and pasting: necessary.

    It stores the project's original Excel file information. If you do not copy and paste it, the original Excel files will be lost.

    %ftp%/assets/vcs

    Minio file storage pat

    h/assets/vcs

    Function: It stores backup files of FineReport templates. 

    Necessity in copying and pasting: optional.

    If the project does not use the FineReport template, or if you do not need to roll back historically developed templates, you do not need to copy and paste it.

    %ftp%/assets/Other files

    Minio file storage pat

    h/assets/Other files

    Function: It stores general files that share the persistent directory.

    Necessity in copying and pasting: necessary.

    It stores the files required for the normal operation of the project. If you do not copy and paste it, the normal use of the project will be affected.

    %ftp%/reportlets

    Minio file storage pat

    h/reportlets

    Function: It stores FineReport templates.

    Necessity in copying and pasting: optional.

    If the project does not use the FineReport template, you do not need to copy and paste it.

    %ftp%/schedule

    Minio file storage pat

    h/schedule

    Function: It stores files generated by Task Schedule.

    Necessity in copying and pasting: optional.

    If you do not copy and paste it, you cannot access the result report mounted to the decision-making platform by Task Schedule.

    • Files Needed to Be Copied for FineReport

    Original Non-containerized Project Directory

    New Containerized Project Mounting Directory

    Description

    %Tomcat_HOME%/logs

    %FR_HOME%/fanruanxx

    x/fr/tomcat_logs

    Function: It is the location of Tomcat general logs.

    Necessity in copying and pasting: optional. Tomcat historical access log may not need to be copied.

    %Tomcat_HOME%/webapp

    s/webroot/logs

    %FR_HOME%/fanruanxx

    x/fr/logs

    Function: It stores swift logs.

    Necessity in copying and pasting: optional.

    If you do not copy and paste it, logdb (the historical operation logs of the project)l will be lost. There will be no data under Platform Management > Platform Log.

    You do not need to copy and paste it if historical usage information is not required.

    %Tomcat_HOME%/webapp

    s/webroot/WEB-INF/classes

    %FR_HOME%/fanruanxx

    x/fr/classes

    Function: It stores default and custom class files called by the project.

    Necessity in copying and pasting: necessary.

    It may store custom class files. If you do not copy and paste it, the normal use of the project will be affected.

    %Tomcat_HOME%/webapp

    s/webroot/WEB-INF/config

    %FR_HOME%/fanruanxx

    x/fr/config

    Function: It stores configuration-database-related files.

    Necessity in copying and pasting: necessary.

    It stores the configuration database (finedb) called by the platform. If you do not copy and paste it, the normal use of the project will be affected.

    Locate the following two directories:

    %Tomcat_HOME%/webapp

    s/webroot/WEB-INF/lib

    %Tomcat_HOME%/webapp

    s/webroot/WEB-INF/custom

    Lib

    Copy and paste all custom JAR files except for the following built-in JARs of the project.

    Click to show more

    fine-accumulator-11.0.jar

    fine-activator-11.0.jar

    fine-cbb-11.0.jar

    fine-core-11.0.jar

    fine-datasource-11.0.jar

    fine-decision-11.0.jar

    fine-decision-report-11.0.jar

    fine-report-engine-11.0.jar

    fine-schedule-11.0.jar

    fine-schedule-report-11.0.jar

    fine-service-management-2.0.7.jar

    fine-swift-log-adaptor-11.0.jar

    fine-third-11.0.jar

    fine-webui-11.0.jar

    ifxjdbc_informix.jar

    jtds-1.3.1.jar

    mysql-connector-java-5.1.49-bin.jar

    ojdbc8.jar

    orai18n.jar

    sqlite-jdbc-3.39.4.0.jar

    sqljdbc.jar

    sybase.jar

    jarfile-checksum.txt

    readme.txt

    %FR_HOME%/fanruanxx

    x/fr/customlib

    Function: It stores JAR packages customized by projects or externally imported JAR packages.

    Necessity in copying and pasting: necessary. Otherwise, template access will be affected.

    %Tomcat_HOME%/webapp

    s/webroot/WEB-INF/plugins

    %FR_HOME%/fanruanxx

    x/fr/plugins

    Function: It stores plugin-related files.

    Necessity in copying and pasting: necessary. Otherwise, plugin-related functions will be affected.

    %ftp%/backup

    Minio file storage path/bac

    kup

    Function: It stores historical backup files of the project.

    Necessity in copying and pasting: optional. You do not need to copy and paste backups that can be stored in the original directory.

    %ftp%/assets/temp_attach

    Minio file storage path/ass

    ets/temp_attach

    Function: It stores read and write caches.

    Necessity in copying and pasting: necessary.

    It stores the project's read and write (image) caches. If you do not copy and paste it, the preview of background images set in the templates may appear empty.

    %ftp%/assets/vcs

    Minio file storage path/ass

    ets/vcs

    Function: It stores backup files of FineReport templates.

    Necessity in copying and pasting: optional.

    If the project does not require a rollback of previously developed FineReport templates, you do not need to copy and paste it.

    %ftp%/assets/Other files

    Minio file storage path/ass

    ets/Other files

    Function: It stores general files that share the persistent directory.

    Necessity in copying and pasting: necessary.

    It stores the files required for the normal operation of the project. If you do not copy and paste it, the normal use of the project will be affected.

    %ftp%/reportlets

    Minio file storage path/rep

    ortlets

    Function: It stores FineReport templates.

    Necessity in copying and pasting: necessary. Otherwise, all the templates in the project will be lost.

    %ftp%/schedule

    Minio file storage path/sch

    edule

    Function: It stores files generated by Task Schedule.

    Necessity in copying and pasting: optional.

    If you do not copy and paste it, you cannot access the result report mounted to the decision-making platform by Task Schedule.

    Starting the New Project

    Log in to FineOps, click Project Management, click the new containerized project, and choose Maintenance > Component Management.

    Find the bi 6 component and click the Start button of the component to start all project nodes. See the following figure.


    Verifying If Migration is Successful

    Log in to all project nodes sequentially:

    1. If all cluster nodes appear in System Management > Intelligent O&M > Cluster Configuration > Node Management, it means the multi-node cluster has been successfully configured.

    2. If the project configuration on each node is identical, it means the external database has been successfully configured.

    Extracting Data

    After the project migration, you normally need to extract data again.

    Log in to the new project to check and modify the data storage path. The paths of the new server and the original server may not be identical. Ensure the displayed path is where you intend to store the data.

    The new containerized cluster is an extraction cluster by default. For details about modifying the data storage path, see Data Storage Path.

    Starting the Original Non-containerized Project

    1. Overwrite webroot files of the original non-containerized project with the webroot project files backed up in section "Backing Up the Original Project."

    2. For details about starting the original non-containerized project, see Closing or Restarting the FineBI Project.

    Migrating the License

    If the original project has a license for registration, typically, you need to migrate the license to the new project. For containerized projects, you are advised to use Container Private Cloud Authentication.

    Destroying the License of the Original Non-containerized Project

    1. Request the License Migration plugin from the business personnel and destroy the license of the original non-containerized project. For details, see Authorization Migration Plugin.

    2. Find the destruction certificate in %BI_HOME%/webroot/WEB-INF/resources of the original non-containerized project.

    Obtaining a License for the New Containerized Project

    Request the license image file fanruan_license_server.tar from the business personnel and authorize the new containerized project. For details, see Container Private Cloud Authentication.

    You should attach the destruction certificate obtained in the previous step to your email, and specify that it is for migration of a non-containerized project to a containerized project.

    Attachment List


    Theme: Existing Project Manipulation
    • Helpful
    • Not helpful
    • Only read