Moving to Crowd Data Center

Still need help?

The Atlassian Community is here for you.

Ask the community

Below is the process for migrating from Crowd Server to Crowd Data Center.

If you're installing Crowd for the first time and you don't have any existing Crowd data to migrate, see Installing Crowd Data Center

 

Before you begin

Before you install Crowd Data Center, you need to answer a few questions.

 

What is Crowd Data Center?

Tell me more...

You should first understand what Crowd Data Center is, and how it works. We've gathered some resources that will help you get to know the high-level overview of Data Center, and its architecture.

Take a look at Crowd Data Center.

How do I get it?
Tell me more...

You'll need two things to get started – an installer, and a license. There's no special installer for Data Center – you just install Crowd, and then enable Data Center features in it.

As for the license, get your Crowd Data Center license, or try it out for free.

What are the prerequisites?

Tell me more...

Supported platforms

Supported operating systems, databases, etc., are the same as for the Server installation, and you can see them here: Supported platforms. You need to use an external database - HSQLDB is not supported.

Node requirements

Those specific to Data Center include requirements for nodes that create the cluster:

  • Each node is a separate machine (physical or virtual). They don't need to be identical, but should be as similar as possible for consistent performance.
  • All nodes are running the same version of Crowd. You'll be copying Crowd from one node to another, so this shouldn't be a problem.
  • They use the same timezone, and have the current time synced. You can use ntpd to set this up.
  • All nodes share a common database, also installed on a separate machine.
  • All nodes can access the shared home directory. You can set it up using NFS, or a similar solution. We'll mention it in this guide.
Do I need a load balancer?
Tell me more...

Yes. Crowd Data Center relies on a load balancer to balance the traffic between the nodes, and this guide assumes that you already have one set up. You can use a load balancer of your choice, just make sure it meets these requirements:

  • Supports "cookie based session affinity", also known as "sticky sessions".
  • Can route HTTP/HTTPS traffic to one of the available nodes.
  • Can determine whether a node is available or not, and route requests to other nodes if needed.
  • All Atlassian applications and other REST clients must access your nodes through the load balancer.

Or you can just turn your proxy into a load balancer.

Many bigger installations of Crowd already have a reverse proxy configured, and many reverse proxies can do load balancing as well. We've provided some examples on how to use your proxy as a load balancer. See Load balancer examples.


1. Enable Crowd Data Center on your existing Crowd Server instance

 

Crowd Data Center is available for Crowd 3.0, or later. If you're not on this version yet, install or upgrade your Crowd instance. See Crowd installation and upgrade guide.

Your Crowd license will determine whether you're running Crowd Data Center or Crowd Server. To run Crowd Data Center you need a Data Center license. You can purchase your Crowd Data Center license here , or try out free evaluation license .

  1. Go to  > Licensing to enter your license key. Once successful you should see that Data Center is now available, but you need to restart before you can start using it:
  2. Stop Crowd now. Before restarting it you will need to set up the shared home directory.
 

2. Set up the shared directory

Crowd Data Center requires that the <CROWD HOME>/shared directory can be read and written by all the machines running Crowd Data Center.

When installing Crowd Server <CROWD HOME>/shared is created as a normal directory. To use Crowd Data Center:

  1. Stop Crowd.
  2. Backup your Crowd home directory before making any changes.
  3. Prepare a shared, network-accessible directory.

    For this example we will assume the you are using Linux, and the shared directory is available at /mnt/nfs/crowd

  4. Move <CROWD HOME>/shared to the shared directory you've prepared:

    mv <CROWD_HOME>/shared /mnt/nfs/crowd
  5. Mount or create a symbolic link at <CROWD_HOME>/shared  that points to the copied directory:

     

    ln -s /mnt/nfs/crowd/shared <CROWD_HOME>/shared

  6. Check if <CROWD_HOME>/shared/crowd.cfg.xml exists and is accessible from the machine running Crowd to verify you have configured the directory correctly.
  7. Start Crowd again.

 

3. Add the first Crowd node to your load balancer

The load balancer distributes the traffic between the nodes. If a node stops working, the remaining nodes will take over its workload, and your users won't even notice it.

  1. First, add your load balancer as a trusted proxy server in Crowd. See Configuring Trusted Proxy Servers.
  2. Add the first node to the load balancer.

  3. Restart the node, and then try opening different pages in Crowd. If the load balancer is working properly, you should have no problems with accessing Crowd.
  4. In Crowd, go to > Clustering. The node should be listed as part of the cluster. 

    tip/resting Created with Sketch.

    If your load balancer supports health checks, configure it to perform a check on http://<crowd-node>:8095/<context-path>/status, where <crowd-node> is the node's hostname or IP address, and <context-path> is the Crowd's context path (e.g. /crowd). If the node doesn't respond with a 200 OK response within a reasonable time, the load balancer shouldn't direct any traffic to this node.

  5. After you've added the node to the load balancer, configure the Crowd's base URL to also point to the load balancer. Go to > General, and enter the URL of your load balancer as Base URL.

4. Add the remaining nodes to the cluster

  1. Copy the Crowd installation directory to the new node. 
  2. Create a home directory, like you did for the first node, and mount shared as its sub-directory.
  3. Edit crowd-init.properties, and enter the path to the home directory that you just created. 

    Where can I find crowd-init.properties?

    The crowd-init.properties file is in <installation-directory>\crowd-webapp\WEB-INF\classes\.

  4. Go to <installation-directory>/apache-tomcat/conf/Catalina/localhost, and delete the openidserver.xml file. This is needed because currently the CrowdID component doesn't support clustering, and it must be enabled only on the first node. The component will work as usual.
  5. Start Crowd. It will read the configuration from the shared directory, and start without any extra setup.
  6. Take a look around the new Crowd instance. Verify that user and group management, directory synchronization, and any custom integrations all work as expected.
  7. Again, verify that the node was added to the cluster. In Crowd, go to  > Clustering.

     
  8. If everything looks fine, you can configure your load balancer to start routing traffic to the new node. Once you do this, you can make a couple of changes in one Crowd instance to see if they're visible in other instances as well.

What else?

Adding node names

When displaying information about your nodes in the Crowd footer or on the  > Clustering page, Crowd Data Center uses random IDs that were generated for your nodes. Instead, you can give them more persistent and readable names by setting the cluster.node.name system property, like in the following example:

CATALINA_OPTS=-Dcluster.node.name=node-1

Last modified on Oct 6, 2021

Was this helpful?

Yes
No
Provide feedback about this article
Powered by Confluence and Scroll Viewport.