To migrate from Release 5.4 realm servers to Release 6.x FTL servers without interrupting service to clients, complete this task.
This is task phase
B in migrating from Release 5.4 to Release 6.x. In this phase you will replace realm server processes with FTL server processes that provide realm services.
Background
Release 6.0 FTL servers use a different fault tolerance mechanism than the realm servers from Release 5.x. Instead of pairing a regular server and a backup server, Release 6.0 FTL servers generalize the quorum-based fault tolerance mechanism from earlier releases of the persistence server.
Migrate the primary realm server and its backup server. (Later, you will repeat these steps for satellites and disaster recovery sites.)
-
Designate three host computers to run FTL servers.
Re-use the two hosts that already run the primary realm server and its backup (5.4). The third must a be new host that you designate for this purpose.
-
Install Release 6.x on all three hosts.
-
Prepare a single configuration file for all three of the new FTL servers (6.x).
In the globals section of this file, specify the three core server hosts.
In the servers section of this file, configure
only the
realm services. Omit other services until later. For example:
globals:
core.servers:
ftl1: host1:8080 # 5.x default client port, replaces primary
ftl2: host2:5238 # 5.x non-default client port, replaces backup
ftl3: host3:8585 # 6.0 default port
servers:
ftl1:
- realm:
data: /myhome/ftlserver/data
ftl2:
- realm:
ftl: host2:5331
data: /myhome/ftlserver/data
ftl3:
- realm:
data: /myhome/ftlserver/data
Incorporate the relevant realm server command line arguments into the new configuration file.
Ensure that the new FTL servers use the same data directory as the old realm server that they replace.
Note: If 5.x clients connected to the 5.x realm server at
default ports, then you do not need to configure ports for backward compatibility.
In contrast, if the 5.x realm server specified
non-default values for
--http or
--ftl, then specify the corresponding backward compatibility URLs for the realm services (6.x) that replace the primary and backup realm servers (5.4). That is, configure core server port with the value of the 5.x HTTP port, and configure the realm service FTL address with the value of the 5.x FTL port. Clients using the FTL 5.4 library connect to the replacement realm services at these old addresses. When all the clients have migrated to the FTL 6.x library, you can delete the backward compatibility FTL addresses from the configuration file.
-
Stop the
backup realm server (5.4).
Leave the primary (or satellite) realm server (5.4) running.
-
Start two FTL servers (6.x) on separate host computers.
-
Start one FTL server on the
former backup host.
The data directory for this FTL server
must be the existing data directory from the former backup host (5.4).
The FTL server (6.x) loads the existing realm definition from that data directory.
-
Start the second FTL server on the
new third host.
The data directory for this FTL server
must be empty.
The two FTL servers (6.x) automatically force a quorum, even though an odd number of servers is not present.
They synchronize the realm definition data. Both data directories now contain an identical realm definition.
-
Verify quorum status in the realm status panel of the FTL server GUI.
-
Stop the old primary realm server (5.4).
Clients of that realm server failover to the new FTL servers (6.x).
-
Start a third FTL server (6.x) on the former primary host computer.
The data directory for this FTL server
must be empty.
Wait for it to join the quorum and synchronize realm definition data.
Migration is complete for this quorum.
At each satellite location, migrate the satellite realm server and its backup server.
Migrate the disaster recovery realm server and its backup server.