Upgrading from 3.0.0 to 4.0.0
Introduction
This document describes the necessary steps when upgrading Infinite Scale from release 3.0.0 to 4.0.0.
Read the important notes in the Upgrading Infinite Scale documentation before you start. |
Upgrade Steps
-
Shut down the Infinite Scale instance.
-
Update Infinite Scale via:
-
Docker
docker pull owncloud/ocis:4.0.0
-
or get the binary from download.owncloud.com.
-
-
Migrate the Space Index to Messagepack:
It is important to disable clients and users logging in while the space index migration tomessagepack
is in progress. To do so, you have two choices:-
Start Infinite Scale with only two necessary services. The example uses the binary as base:
OCIS_RUN_SERVICES="gateway,nats,storage-system,storage-users" \ ocis server
-
If configured, shut-down or disable the reverse proxy for Infinite Scale.
Because either the Infinite Scale proxy service is not running or the reverse proxy is inaccessible, no clients or users can login.
-
-
Migration process
During the restart of Infinite Scale, the symlinks of spaces in the DecomposedFS will be migrated to
messagepack
automatically via thestorage-users
service.-
Monitoring progress via logs
The start of the migration can be identified in the log by messages like:
{"level":"info","root":"/var/lib/ocis/storage/users","time":"2023-08-02T06:08:21.002825802Z","caller":"github.com/cs3org/reva/v2@v2.15.0/pkg/storage/utils/decomposedfs/migrator/0004_switch_to_messagepack_space_index.go:46","message":"Migrating /var/lib/ocis/storage/users/indexes/by-user-id/b7a2149b-3320-43a3-9bd2-c216340c212d.mpk to messagepack index format..."} ... {"level":"info","root":"/var/lib/ocis/storage/users","time":"2023-08-02T06:08:21.028153362Z","caller":"github.com/cs3org/reva/v2@v2.15.0/pkg/storage/utils/decomposedfs/migrator/0005_fix_messagepack_space_index_format.go:37","message":"Fixing index format of /var/lib/ocis/storage/users/indexes/by-user-id/b7a2149b-3320-43a3-9bd2-c216340c212d.mpk"}
When migration has finished - which can take a while depending on the quantity of spaces - you can see log messages like this:
{"level":"info","time":"2023-08-02T06:08:21.026943689Z","caller":"github.com/cs3org/reva/v2@v2.15.0/pkg/storage/utils/decomposedfs/migrator/0004_switch_to_messagepack_space_index.go:92","message":"done."} ... {"level":"info","time":"2023-08-02T06:08:21.028422073Z","caller":"github.com/cs3org/reva/v2@v2.15.0/pkg/storage/utils/decomposedfs/migrator/0005_fix_messagepack_space_index_format.go:66","message":"done."}
-
Monitoring progress via command
-
Use the command below to check the status of the migration steps.
-
Replace
<path-to-decomposedFS>
with the physical path of the environment variable:
OCIS_BASE_DATA_PATH
+/storage/users
Example:/var/lib/ocis/storage/users
-
For more details see the Base Data Directory documentation.
-
Command
ocis migrate decomposedfs -r <path-to-decomposedFS> list
Depending on the number of steps to process, you will see an output like the following:
+-----------+-----------+---------+ | Migration | State | Message | +-----------+-----------+---------+ | 0001 | succeeded | | | 0002 | succeeded | | | 0003 | succeeded | | | 0004 | succeeded | | | 0005 | succeeded | | +-----------+-----------+---------+
-
-
-
Run the "repair and migrate jsoncs3 indexes" command:
-
Note, run this command only if there are shares present.
-
If you run this command and no shares are present, an error will be printed like the following:
error: not found: list container: error: not found: jsoncs3-share-manager-metadata/storages
This error has no impact and can be neglected.
ocis migrate rebuild-jsoncs3-indexes
When finished, you will see an output like this:
Scanning storage storage-users-1 (1/1) Rebuilding space 1/1... done done
-
-
Finally, either start the Infinite Scale instance as usual or re-enable the reverse proxy.
-
Check your Instance
When the instance has started successfully, check the logs for any unusual entries.
Manage Breaking Changes
-
All environment variables that were marked for deprecation in Infinite Scale release 4.0.0 have finally been removed.
-
Client pool selectors have changed from IP addresses
127.0.0.1:9xxx
to service namescom.owncloud.api.*
. There is no need to configure them at the moment.
How to Identify if You Are Affected
-
If you are using deprecated environment variables in your config.
See the deprecation notices in each service in the List of Services and the Global Environment Variables. Note that you need to select the 3.0.0 tab to identify deprecations that may affect you. -
If you have changed the default configuration for the OCIS_REVA_GATEWAY environment variable.
In all other cases, there is nothing that needs to be done as the new defaults for client pool selectors will be used automatically.
How to Manage the Change
-
Manage deprecated variables
-
Environment variables that have been deprecated without successor can safely be removed from the configuration. These envvars do not harm as they are not used anymore.
-
Environment variables that have been deprecated with a successor need to be updated accordingly.
-
-
The
OCIS_REVA_GATEWAY
environment variableManually reconfigure the environment variable to the new namespace:
Default used value, new and old
Global envvar
Namespace (new)
IP (old)
com.owncloud.api.gateway
127.0.0.1:9142