---
updatedAt: 2026-05-29T13:58:21.000Z
agentTools:
  siteIndex: https://docs.jfrog.com/llms.txt
  projectIndex: https://docs.jfrog.com/installation/llms.txt
---

# 2-node VM to Quorum migration guide

<br />

# 2 Node Xray Cluster with Bundled RabbitMQ

<Callout icon="ℹ️" theme="info">
  A 2-node RabbitMQ cluster is not fault-tolerant for Quorum Queues. Choose the option that fits your infrastructure.
</Callout>

## Option A — Upgrade Both Nodes, Then Add a 3rd VM (Recommended)

**Step 1 —** Upgrade both existing nodes to Quorum Queues one at a time using the [Xray RabbitMQ Quorum Upgrade](xray-rabbitmq-quorum-upgrade#prerequisites) guide.

**Step 2 —** Once both nodes are upgraded, install a 3rd node and join it to the cluster using the [Xray Installation using installV2.sh](xray-installation-using-installv2sh) guide.

***

## Option B — Upgrade First Node, Convert Second Node to Xray-Only

Use this option only if provisioning a 3rd VM is not possible.

**Step 1 —** Stop Xray on the **second node**.

**RPM, Debian, Linux Archive**

```bash
systemctl stop xray
```

**Docker Compose**

```bash
docker compose -p xray down
```

**Step 2 —** From the **first node**, remove the second node from the RabbitMQ cluster:

**RPM, Debian, Linux Archive**

```bash
cd $JFROG_HOME/xray/app/third-party/rabbitmq/sbin
sudo -u xray ./rabbitmqctl forget_cluster_node rabbit@<node-name>
```

> If you are using a custom Linux user for the Linux Archive installation, replace `xray` with that user.

**Docker Compose**

```bash
docker exec <rabbitmq-container-name> rabbitmqctl forget_cluster_node rabbit@<node-name>
```

**Step 3 —** Upgrade the first node to Quorum Queues using the [Xray RabbitMQ Quorum Upgrade](xray-rabbitmq-quorum-upgrade#prerequisites) guide.

**Step 4 —** Convert the second node to Xray-only using the [Upgrading from bundled mode to Xray-only](rabbitmq-split-for-xray-xray-version-3131x#upgrading-from-bundled-mode-xray--rabbitmq-to-xray-only) guide. Make sure to provide the RabbitMQ URL of the first node along with the username and password — default is `guest` / `JFXR_RABBITMQ_COOKIE` unless overridden.

<br />