Question
After upgrading a CRX2.0/2.1 repository to CRX2.2, how is it possible to upgrade to the new Shared Nothing clustering [1] mode?
Answer
For backwards compatibility reasons, the upgrade process to CRX2.2 does not change the previous repository layout:
- upgraded CRX2.2 instance will still run with the previous configured clustering mode based on a shared directory (local copies + shared persistence)
- Jackrabbit FileJournal [2]
- Jackrabbit FileDataStore [3]
The new Shared Nothing mode basically removes the need for a shared folder which needs to be accessible to all nodes in a cluster (e.g. using NFS). Instead, all the three main storage areas are stored locally on each cluster node; synchronization is done fully over the network:
- Workspaces (TarPM)
- DataStore
- Journal
In order to upgrade to the Shared Nothing clustering mode, the following steps are required:
- make sure that the upgrade itself was performed successfully and the repository is accessible afterwards
- if running multiple CQ/CRX instances in a cluster, ensure that all cluster nodes are in sync
- stop (all cluster) instance(s)
- backup instance(s)
Next, the repository.xml configuration needs to be adapted to use the new classes for both DataStore and Journal:
<DataStore class="com.day.crx.core.data.ClusterDataStore"/> ... <Cluster> <Journal class="com.day.crx.persistence.tar.TarJournal"/> </Cluster>
Then perform the following operations on FS level to reorganize the data to be used in the Shared Nothing mode:
- move all files from crx-quickstart/repository/workspaces/crx.default/copy to crx-quickstart/repository/workspaces/crx.default (do this for all workspaces)
- move all files from crx-quickstart/repository/version/copy to crx-quickstart/repository/version
- move the folder crx-quickstart/repository/shared/repository/datastore to
crx-quickstart/repository/repository/datastore - move all files from crx-quickstart/repository/shared/namespaces to
crx-quickstart/repository/repository/namespaces - move all files from crx-quickstart/repository/shared/nodetypes to
crx-quickstart/repository/repository/nodetypes - delete the file crx-quickstart/repository/revision.log
- delete the directory crx-quickstart/repository/shared
- start the instance(s)
Applies to
CRX 2.2