Hail, experts!
I have a 4-node cluster of CouchBase 2.2.0 community edition (build-837) running on Windows 8 R2.
Due to high CPU usage for half of the nodes, I would like to migrate to linux and see if I can bring down CPU utilization (or at least balance it more evenly across nodes in the cluster).
After combing thru the docs, I speculate that the correct upgrade/migration path from windows --> linux and from 2.2.0 --> 5.1 is to do an online swap-rebalance upgrade twice, as follows:
- 2.2.0 (windows) --> 4.6 (windows)
- *Do I need to upgrade to 2.5.x first? *
- 4.6 (windows) --> 5.1 (Linux)
- Can I switch from windows to linux in this step?
- What extra planning or preparation is required?
However, the docs are unclear about the details and questions posed above:
The upgrade matrix for the current version of couchbase server community edition (5.1) suggests that you can upgrade from 2.5.x to any 4.x version using an online swap-rebalance upgrade or a standard online upgrade, followed by an upgrade to 5.x, but that for this last step “Services require more planning during an upgrade.” So far I have not found any indication of what that additional planning could be.
But I couldn’t find a windows version of 2.5.x to install. A little digging found this page suggesting that 2.2.0 is the latest 2.x version of the community edition, and 2.5.x is the latest 2.x version of the enterprise edition, so perhaps the docs above were written for enterprise edition, and perhaps an upgrade from 2.2.0 to any 4.x version is possible.
However, further reading about 2.2.0 community edition reveals that
It is not possible either to mix operating systems within the same cluster, or configure XDCR between clusters on different platforms. You should use same operating system on all machines within a cluster and on the same operating systems on multiple clusters if you perform XDCR between the clusters
I have not found that same restriction in any of the more recent versions of the manual (I looked at 2.5.x, 3.0.1, 3.1, 4.6, and v 5.1 (the current version)).
So again, in summary, my questions are:
- do I need to upgrade from 2.2.0 to 2.5.x on windows, somehow
- Can I run a mixed-platform cluster in version 4 and in version 5?
- What are the proper “extra planning” things to consider when upgrading from 4.6 (windows) to 5.1 (linux)?