Important
|
This article describes how to upgrade from Fusion 4.0.x to 4.1.y. Single-step upgrade procedures are now available for upgrading directly from Fusion 4.0.x to the latest version of Fusion Server. |
Introduction
This article describes how to perform the following upgrade:
-
From version: Fusion
4.0.x
-
To version: Fusion
4.1.y
Important
|
Only specific version-to-version upgrade sequences are supported. Some upgrades require multiple steps. |
For more information, see Fusion 4.x.
For Fusion 3.1 and later releases, a migrator is available for upgrading Fusion.
During the upgrade process, the migrator uses a properties file. After downloading and installing the migrator, the properties files is in the /opt/lucidworks/fusion/4.0.x/var/upgrade
directory (on Unix or MacOS) or the C:\lucidworks\fusion\4.0.x\var\upgrade\
directory (on Windows). The file names reference the versions you are upgrading from and to. For example:
-
To upgrade
4.0.2
to4.1.3
, the migrator uses the4.0.x-4.1.x.properties
file.
Migration entails down time and multiple starts and stops of Fusion services. Plan accordingly, especially in terms of disabling external load balancers or monitors that might react adversely to the starts and stops.
Download the latest migrator immediately before upgrading. This helps ensure that the upgrade goes smoothly.
Important
|
The newer Fusion instance must be newly untarred and never started. |
About the upgrade
This section describes how connectors, object migrations, and signals are migrated during an upgrade.
Connectors
In Fusion 3.1.0 and above, only a subset of connectors are included by default.
The migrator detects which connectors were used in the older version of Fusion, and installs them automatically in Fusion 4.1.y
. This step requires an Internet connection. If no connection is available, then you must download connectors and install them as bootstrap plugins.
If a connector to be upgraded wasn’t available during the upgrade, then a message in /opt/lucidworks/fusion/4.0.x/var/upgrade/tmp/migrator.log
(on Unix) or C:\lucidworks\fusion\4.0.x\var\upgrade\tmp\migrator.log
(on Windows) indicates this.
Only datasources for connectors that are supported in the new Fusion version are upgraded. Datasources for custom connectors aren’t upgraded.
If no Internet connection is available
If no Internet connection is available during an upgrade, the migrator can’t automatically download the connectors it needs. Using the Fusion UI or API later to install the connectors also might not be an option.
In this case, download the connector zip files for all existing connectors and any connectors that you are adding and place them in apps/connectors/bootstrap-plugins
for the new deployment (on all Fusion nodes). Do so at the time indicated in the procedures that follow.
Adding connectors during an upgrade
You can add connectors during an upgrade (that is, add connectors that aren’t in the old deployment).
Download the connector zip files and place them in apps/connectors/bootstrap-plugins
for the new version (on all Fusion nodes).
Object migrations and transformations
The migrator automatically migrates these Fusion 4.0 object types, transforming them as needed:
-
Collections
-
Index pipelines
-
Query pipelines
-
Search cluster configurations
-
Datasources
-
Parsing configurations
-
Object groups
-
Links
-
Tasks
-
Jobs
-
Spark objects
-
Apps
-
Appkit apps
-
Index profiles
-
Query profiles
-
Blobs
Important
|
In Fusion Server 4.0 and later, most objects exist in the context of apps. When you upgrade from Fusion Server 4.0.x to 4.1.y, the migrator upgrades app objects, all objects in or linked to objects in apps, and objects that are not linked to apps. You can explore the objects in Object Explorer. |
Noteworthy transformations
While migrating objects, the migrator makes these transformations:
-
It adds the new
log-shipper
service tofusion.properties
. -
It removes obsolete log-cleanup tasks.
-
It converts the format of job history records.
Access control migration
The migrator upgrades all access control configurations:
-
Security realms
-
Roles
-
Users
None of these should require adjustments after migration.
Association of blobs with apps
The association of blobs with apps becomes stronger in Fusion Server 4.1.1. Newly created blobs are only linked to the app to which they are uploaded, and are only shared with other apps when the blobs are directly linked to those apps (added to the apps in Object Explorer or linked using the Links API).
When migrating from pre-4.1.1 versions to 4.1.1 or later, the resulting apps might not contain all of the blobs that they contained prior to migration.
Note
|
It’s important to stress that this change doesn’t break the apps. |
What might change is the blobs that are linked to an app. This can be important if you export and re-import apps.
Recommendation: After migration from a pre-4.1.1 version to version 4.1.1 or later, we recommend that you use either Object Explorer or the Links API to manually link all blobs to the apps in which they are used.
Review known issues
Before upgrading, review the known issues to see whether any of them apply to the circumstances of your upgrade. Some known issues might require actions before upgrading.
That article also contains instructions regarding what to do if an upgrade step fails.
Upgrade on Unix
Use this procedure to upgrade Fusion on a single Unix node or on multiple Unix nodes.
Perform the steps in this procedure on the indicated nodes on which Fusion is running ("Fusion nodes"). To perform an upgrade, Fusion nodes must have at least these services running:
-
API service (
api
) -
Proxy service (
proxy
)
Important
|
For every step on multiple nodes, ensure that the step completes on all Fusion nodes before going to the next step. There is the notion of a "main node" during the migration process. This node will be used for certain centralized migration activities that do not need to be done on every node, such as downloading connectors that are then uploaded to blob storage that is shared by all, etc. Just pick one of your Fusion nodes to be the "main node"; there’s no special requirement as to which one you pick. |
Ensure that your current version of Fusion has a valid license
Ensure that your current version of Fusion has a valid permanent Fusion license before proceeding with the upgrade. Place a valid license.properties
file in the /opt/lucidworks/fusion/4.0.x/conf
directory.
Download and install the newer version of Fusion
-
Extract the newer version of Fusion:
cd /opt/lucidworks mv ~/Downloads/fusion-4.1.y.tar.gz ./ tar -xf fusion-4.1.y.tar.gz
For example, if Fusion is currently installed in
/opt/lucidworks/fusion/4.0.x
, then change your working directory to/opt/lucidworks/
and extract the file there. Don’t run the new version of Fusion yet. -
Ensure that the new version of Fusion has a valid permanent Fusion license before proceeding with the upgrade. Place a valid
license.properties
file in the/opt/lucidworks/fusion/4.1.y/conf
directory. -
(If there are custom
jar
files) If your deployment has customjar
files, add them to the new Fusion deployment. -
(If you are performing an upgrade without Internet access) Without Internet access, the migrator can’t download new versions of connectors automatically. Download the new versions of connector zip files for your current connectors from http://lucidworks.com/connectors/ and place them in
apps/connectors/bootstrap-plugins
for the new deployment. -
(If you are adding new connectors) If you want your new deployment to use connectors that are not in the current deployment, you can add them now. Download the connector zip files from http://lucidworks.com/connectors/ and place them in
apps/connectors/bootstrap-plugins
for the new deployment. -
Verify that there is sufficient disk space for a second copy of the Solr index directory,
fusion/4.0.x/data/solr
. If there isn’t sufficient disc space, free up space before proceeding.
Download and install the Fusion migrator
-
Download the latest migrator zip file for Unix. (Do this now, even if you have downloaded the migrator before, to ensure that you have the latest version.)
-
Create
FUSION_OLD
andFUSION_NEW
environment variables that point to the old and new Fusion installation directories respectively (using the full path).export FUSION_OLD="/opt/lucidworks/fusion/4.0.x" export FUSION_NEW="/opt/lucidworks/fusion/4.1.y"
For example, when upgrading from Fusion 4.0.2 to 4.1.3:
export FUSION_OLD="/opt/lucidworks/fusion/4.0.2" export FUSION_NEW="/opt/lucidworks/fusion/4.1.3"
-
Create this directory:
mkdir $FUSION_OLD/var/upgrade
-
Install the migrator:
tar -zxv -C $FUSION_OLD/var/upgrade --strip-components=1 -f fusion-migrator.tar.gz
Run the migrator
-
(On all Fusion nodes) Start all Fusion services for the old version of Fusion:
$FUSION_OLD/bin/fusion start
-
(Only on the main Fusion node) Run the migrator to export the configuration data from the old version of Fusion:
java -jar $FUSION_OLD/var/upgrade/migrator.jar --export
This message indicates that the step finished successfully:
Old Fusion configuration export (--export) finished successfully.
-
(On all Fusion nodes) Stop the old versions of Fusion services and Solr; but not ZooKeeper:
$FUSION_OLD/bin/webapps stop $FUSION_OLD/bin/admin-ui stop $FUSION_OLD/bin/proxy stop $FUSION_OLD/bin/connectors-classic stop $FUSION_OLD/bin/connectors-rpc stop $FUSION_OLD/bin/api stop $FUSION_OLD/bin/solr stop
If Spark and SQL services are running, also stop those:
$FUSION_OLD/bin/spark-master stop $FUSION_OLD/bin/spark-worker stop $FUSION_OLD/bin/sql stop
TipYou can see what is running with $FUSION_OLD/bin/fusion status
. -
(Only on secondary Fusion nodes) Prepare secondary nodes:
java -jar $FUSION_OLD/var/upgrade/migrator.jar --prepare-secondary
This message indicates that the step finished successfully:
Prepare secondary nodes (--prepare-secondary) finished successfully.
-
(On all Fusion nodes) Stop ZooKeeper for the old version of Fusion (unless you are using an external ZooKeeper instance, in which case you can ignore this step):
$FUSION_OLD/bin/zookeeper stop
-
(Only on the main Fusion node) Transform configuration data on the main Fusion node:
java -jar $FUSION_OLD/var/upgrade/migrator.jar --main-transform
NoteDepending on the size of your Solr index, this step can take a long time (for example, multiple tens of minutes). This message indicates that the step finished successfully:
Fusion data transformations on main node (--main-transform) finished successfully.
-
(On all Fusion nodes) Start ZooKeeper for the new version of Fusion (unless you are using an external ZooKeeper instance, in which case you can ignore this step):
$FUSION_NEW/bin/zookeeper start
-
(Only on the main Fusion node) Import the first part of configuration data into the new version of Fusion:
java -jar $FUSION_OLD/var/upgrade/migrator.jar --zookeeper-import
This message indicates that the step finished successfully:
New Fusion Zookeeper import (--zookeeper-import) finished successfully.
-
(On all Fusion nodes) Start all Fusion services for the new version of Fusion:
$FUSION_NEW/bin/fusion start
-
(Only on the main Fusion node) Import the second part of configuration data into the new version of Fusion:
java -jar $FUSION_OLD/var/upgrade/migrator.jar --fusion-import
This message indicates that the step finished successfully:
New Fusion object import (--fusion-import) finished successfully.
TipAfter migration, you can find details about the results in the fusion/4.0.x/var/upgrade/tmp
directory. If the migration produces unexpected results, the files in this directory are helpful for troubleshooting.
Validate the new version of Fusion
-
(Only on the main Fusion node) Restart the new version of Fusion (all services defined in
fusion.properties
):$FUSION_NEW/bin/fusion restart
-
Log into the Fusion UI (your
admin
password is the same as for the old installation), and confirm the release number of the new version of Fusion:-
Clear your browser’s cache.
Otherwise, you might inadvertently access a cached version of the old Fusion UI and see inconsistent behavior.
-
In a browser, open the Fusion UI at
http://localhost:8764/
(replacelocalhost
with your server name or IP address if necessary). -
Log in.
-
Navigate to Admin > About Fusion.
The About Fusion panel should display the newer Fusion release number.
-
-
Ensure that all connectors were installed automatically during the upgrade.
-
For Fusion 4.x from the Fusion launcher, click the tile for a migrated app. Click System > Blobs. If any connectors are missing from the list, click Add > Connector Plugin and install them manually.
-
For Fusion 3.x from the Fusion launcher, click Devops > Home
> Blobs. If any connectors are missing from the list, click Add > Connector Plugin and install them manually.
-
-
Ensure that all customizations you made in the former version of Fusion are present in the new one.
-
If you migrated from version 4.0.x to version 4.1.1 or later, confirm associations between blobs and apps and make adjustments if necessary.
-
When you are satisfied with the migration and you have backed up the
fusion/4.0.x/
directory, you canrm -fr fusion/4.0.x/
to remove the older version of Fusion (on all Fusion nodes).
Upgrade on Windows
Use this procedure to upgrade Fusion on a single Windows node or multiple Windows nodes.
Perform the steps in this procedure on the indicated nodes on which Fusion is running ("Fusion nodes"). To perform an upgrade, Fusion nodes must have at least these services running:
-
API service (
api
) -
Proxy service (
proxy
)
Important
|
If you are upgrading Fusion on multiple nodes, then, for every step on multiple nodes, ensure that the step completes on all Fusion nodes before going to the next step. There is the notion of a "main node" during the migration process. This node will be used for certain centralized migration activities that do not need to be done on every node, such as downloading connectors that are then uploaded to blob storage that is shared by all, etc. Just pick one of your Fusion nodes to be the "main node"; there’s no special requirement as to which one you pick. |
Ensure that your current version of Fusion has a valid license
Ensure that your current version of Fusion has a valid permanent Fusion license before proceeding with the upgrade. Place a valid license.properties
file in the C:\lucidworks\fusion\4.0.x\conf
directory.
Download and install the newer version of Fusion
-
Move the
fusion-4.1.y.zip
file to the directory that contains thefusion\
directory.For example, if Fusion is installed in
C:\lucidworks\fusion\4.0.x
, then move the file toC:\lucidworks
. -
Unzip the
fusion-4.1.y.zip
file. Don’t run the new version of Fusion yet. -
For Fusion 4.x, ensure that the new version of Fusion has a valid permanent Fusion license before proceeding with the upgrade. Place a valid
license.properties
file in theC:\lucidworks\fusion\4.1.y\conf
directory. -
(If there are custom
jar
files) If your deployment has customjar
files, add them to the new Fusion deployment. -
(If you are performing an upgrade without Internet access) Without Internet access, the migrator can’t download new versions of connectors automatically. Download the new versions of connector zip files for your current connectors from http://lucidworks.com/connectors/ and place them in
apps\connectors\bootstrap-plugins
for the new deployment. -
(If you are adding new connectors) If you want your new deployment to use connectors that are not in the current deployment, you can add them now. Download the connector zip files from http://lucidworks.com/connectors/ and place them in
apps\connectors\bootstrap-plugins
for the new deployment. -
Verify that there is sufficient disk space for a second copy of the Solr index directory,
fusion\4.0.x\data\solr
. If there isn’t sufficient disc space, free up space before proceeding.
Download and install the Fusion migrator
-
Download the latest migrator zip file for Windows. (Do this now, even if you have downloaded the migrator before, to ensure that you have the latest version.)
-
Open a Command Prompt window and create
FUSION_OLD
andFUSION_NEW
environment variables that point to the old and new Fusion installation directories respectively. For example:set FUSION_OLD=C:\lucidworks\fusion\4.0.2 set FUSION_NEW=C:\lucidworks\fusion\4.1.3
-
Create a
fusion\4.0.x\var\upgrade
directory. -
Unzip the migrator zip file, and move the contents of the extracted folder to
fusion\4.0.x\var\upgrade
.
Run the migrator
-
(On all Fusion nodes) Start all Fusion services for the old version of Fusion:
%FUSION_OLD%\bin\fusion.cmd start
-
(Only on the main Fusion node) Run the migrator to export the configuration data from the old version of Fusion:
java -jar "%FUSION_OLD%\var\upgrade\migrator.jar" --export
This message indicates that the step finished successfully:
Old Fusion configuration export (--export) finished successfully.
-
(On all Fusion nodes) Stop the old versions of Fusion services and Solr; but not ZooKeeper:
%FUSION_OLD%\bin\webapps.cmd stop %FUSION_OLD%\bin\admin-ui.cmd stop %FUSION_OLD%\bin\proxy.cmd stop %FUSION_OLD%\bin\connectors-classic.cmd stop %FUSION_OLD%\bin\connectors-rpc.cmd stop %FUSION_OLD%\bin\api.cmd stop %FUSION_OLD%\bin\solr.cmd stop
If Spark and SQL services are running, also stop those:
%FUSION_OLD%\bin\spark-master.cmd stop %FUSION_OLD%\bin\spark-worker.cmd stop %FUSION_OLD%\bin\sql.cmd stop
TipYou can see what is running with %FUSION_OLD%\bin\fusion status
. -
(Only on secondary Fusion nodes) Prepare secondary nodes:
java -jar "%FUSION_OLD%\var\upgrade\migrator.jar" --prepare-secondary
This message indicates that the step finished successfully:
Prepare secondary nodes (--prepare-secondary) finished successfully.
-
(On all Fusion nodes) Stop ZooKeeper for the old version of Fusion (unless you are using an external ZooKeeper instance, in which case you can ignore this step):
%FUSION_OLD%\bin\zookeeper.cmd stop
-
(Only on the main Fusion node) Transform configuration data on the main Fusion node:
java -jar "%FUSION_OLD%\var\upgrade\migrator.jar" --main-transform
NoteDepending on the size of your Solr index, this step can take a long time (for example, multiple tens of minutes). This message indicates that the step finished successfully:
Fusion data transformations on main node (--main-transform) finished successfully.
-
(On all Fusion nodes) Start ZooKeeper for the new version of Fusion (unless you are only using an external ZooKeeper instance, in which case you can ignore this step):
%FUSION_NEW%\bin\zookeeper.cmd start
-
(Only on the main Fusion node) Import the first part of configuration data into the new version of Fusion:
java -jar "%FUSION_OLD%\var\upgrade\migrator.jar" --zookeeper-import
This message indicates that the step finished successfully:
New Fusion Zookeeper import (--zookeeper-import) finished successfully.
-
(On all Fusion nodes) Start Solr for the new Fusion version:
%FUSION_NEW%\bin\solr.cmd start
-
(Only on the main Fusion node) Run a script to remove all old plugins from the blob store. Replace
solr-address
andsolr-port
as appropriate (as shown in the example):java -cp "%FUSION_OLD%\var\upgrade\jython-standalone-2.7.1.jar;%FUSION_OLD%\var\upgrade\migrator.jar" org.python.util.jython "%FUSION_OLD%\var\upgrade\transformations\manual_delete_old_plugin_blobs.py" --solr-address solr-address --solr-port solr-port
For example:
java -cp "%FUSION_OLD%\var\upgrade\jython-standalone-2.7.1.jar;%FUSION_OLD%\var\upgrade\migrator.jar" org.python.util.jython "%FUSION_OLD%\var\upgrade\transformations\manual_delete_old_plugin_blobs.py" --solr-address localhost --solr-port 8983
This message indicates that plugins were deleted successfully:
Deleted old plugin blobs from solr <?xml version="1.0" encoding="UTF-8"?> <response> <lst name="responseHeader"> <int name="status">0</int> <int name="QTime">246</int> </lst> </response> Old connector plugin blobs were deleted successfully.
-
(On all Fusion nodes) Start all Fusion services for the new version of Fusion:
%FUSION_NEW%\bin\fusion.cmd start
-
(Only on the main Fusion node) Import the second part of configuration data into the new version of Fusion:
java -jar "%FUSION_OLD%\var\upgrade\migrator.jar" --fusion-import
This message indicates that the step finished successfully:
New Fusion object import (--fusion-import) finished successfully.
TipAfter migration, you can find details about the results in the fusion\4.0.x\var\upgrade\tmp
directory. If the migration produces unexpected results, the files in this directory are helpful for troubleshooting.
Validate the new version of Fusion
-
(On all Fusion nodes) Restart all Fusion services for the new version of Fusion:
%FUSION_NEW%\bin\fusion.cmd restart
-
Log into the Fusion UI (your
admin
password is the same as for the old installation), and confirm the release number of the new version of Fusion:-
Clear your browser’s cache.
Otherwise, you might inadvertently access a cached version of the old Fusion UI and see inconsistent behavior.
-
In a browser, open the Fusion UI at
http://localhost:8764/
(replacelocalhost
with your server name or IP address if necessary). -
Log in.
-
Navigate to Admin > About Fusion.
The About Fusion panel should display the newer Fusion release number.
-
-
Ensure that all connectors were installed automatically during the upgrade.
-
For Fusion 4.x from the Fusion launcher, click the tile for a migrated app. Click System > Blobs. If any connectors are missing from the list, click Add > Connector Plugin and install them manually.
-
For Fusion 3.x from the Fusion launcher, click Devops > Home
> Blobs. If any connectors are missing from the list, click Add > Connector Plugin and install them manually.
-
-
Ensure that all customizations you made in the former version of Fusion are present in the new one.
-
If you migrated from version 4.0.x to version 4.1.1 or later, confirm associations between blobs and apps and make adjustments if necessary.
-
When you are satisfied with the migration and you have backed up the
fusion\4.0.x
directory, you can remove the older version of Fusion by removing that directory (on all Fusion nodes).