To create a Riak cluster on Ubuntu VPS servers, give every node a unique, resolvable name, bind Riak’s HTTP and Protocol Buffers listeners to a reachable interface, start one correctly configured node, and add the others with riak-admin cluster join. A join is only staged: inspect it with riak-admin cluster plan, commit it, and wait for transfers to finish before treating the cluster as ready.
Antihost offers Linux VPS plans with full root access, unlimited traffic on a 1 Gbps port and a 14-day free trial.
The procedure below applies to Riak KV installations using either modern riak.conf or older vm.args/app.config files. Riak documentation lists Ubuntu 12.04, 14.04 and 16.04 as supported historical systems; it does not establish a package source or compatibility guarantee for a current 2026 Ubuntu release, so verify the exact Riak build and operating-system support before provisioning production servers.
As an Amazon Associate I earn from qualifying purchases.
Free tools Windows power users keep installed
One-click scans. No signup required.
What a working Riak cluster requires
Riak nodes communicate as members of one ring. Every participating server must be able to resolve and reach the other members, and each node must advertise a unique name. A hostname or IP placed after the @ in the node name is not merely a label: it must resolve from the other VPSs.
- At least two Ubuntu VPS instances on a network that provides reliable connectivity between them.
- One identical Riak version and compatible configuration set on every node.
- A unique node name for each server, preferably an FQDN such as
riak1.example.com. - The same ring-size value on every node that will join the cluster.
- Firewall rules permitting the Riak traffic you actually configure.
- Listeners bound to a private or otherwise reachable interface rather than only loopback.
Riak’s documented default listeners bind to 127.0.0.1. That works for local testing but prevents another VPS from connecting. The cluster guide describes the essential operation as making each node listen on a non-local interface and then joining the nodes together.
#1 Best Overall
- Read Before You Buy — No Video Output: These adapters support charging and USB 2.0 data transfer, but cannot transmit video signals. Except for standard USB webcams (which use USB data only), they are not compatible with HDMI/DisplayPort cables, video-capable USB-C hubs, or docking stations with video output.
- Convert USB-A Ports to USB-C: Designed to connect USB-C earphones, cables, flash drives, card readers, and other USB-C accessories to standard USB-A ports. Plug-and-play with no drivers or software required.
- Aluminum Alloy Housing: Built with a sturdy aluminum alloy shell that aids in heat dissipation and protects against daily wear and scratches. Designed to maintain a stable and secure connection.
- Compact & Travel-Friendly: The ultra-compact design allows the adapter to stay plugged into your device without blocking adjacent ports or adding bulk, reducing wear and tear on your original USB ports.
- 12-Month Warranty: Backed by a 12-month manufacturer warranty for peace of mind. Designed to meet strict quality control standards for reliable everyday performance.
Check Ubuntu and Riak compatibility first
The historical Riak support list includes Ubuntu 12.04 (Precise), 14.04 (Trusty) and 16.04 (Xenial). Those entries do not prove that a repository, package, or service integration exists for Ubuntu releases current in 2026. Before creating production VPSs, confirm all of the following for the exact Riak build you intend to run:
- The supported Ubuntu release and CPU architecture.
- Whether you are using a binary package or a source build.
- The expected locations and syntax of the configuration files.
- The service account, data directories and startup mechanism.
- Whether the build is compatible with the Erlang/runtime packages on that Ubuntu image.
Do not mix package generations casually. Binary packages normally provide /usr/sbin/riak and /usr/sbin/riak-admin; source installations use scripts under the installation’s bin directory. Use the commands supplied by the build you installed.
Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minutePC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Plan names, addresses and firewall rules
Use stable, resolvable identities
Prefer fully qualified domain names over literal IP addresses for cluster member names. For example:
[email protected]
[email protected]
[email protected]
Make sure each name resolves correctly on every VPS before starting Riak. If you use provider DNS, private DNS, or /etc/hosts, apply the same mapping consistently. A name that resolves on one server but not another will produce confusing join and membership failures.
Choose private or public networking deliberately
Use private addresses when the VPS provider supplies an isolated network and clients do not need to reach Riak directly from the internet. Public listener addresses can work, but they increase exposure and require stricter security-group and host-firewall rules. Bind to a specific private address where possible; a wildcard such as 0.0.0.0 is broader and should be paired with restrictive firewall rules.
Open only the paths you need
The documented examples use Protocol Buffers on port 8087 and HTTP on port 8098. Treat those as configuration examples, not universal constants: confirm the ports in your deployed configuration, then allow only the required client and intra-cluster sources in the provider firewall/security group and Ubuntu host firewall.
Install the same Riak build on every VPS
Install one Riak version and a compatible configuration baseline on all servers before attempting membership changes. Keep package and source-built nodes out of the same cluster unless the specific release documentation confirms compatibility.
Rank #2
- 5-in-1 USB-C Hub: Experience comprehensive connectivity featuring a Power Delivery input, two USB-A 2.0 ports, a USB-A 3.0 port, and an HDMI port. (Note: The USB-C power delivery input port is only for connecting an external wall charger to power your laptop and cannot power peripheral devices.)
- 90W Pass-Through Charging: Achieve optimal charging with 90W pass-through power to your laptop, supported by a total input of 100W, with the hub reserving 10W for operational efficiency. (Note: Wall charger not included.)
- Quick Data Transfers: Accelerate your productivity with rapid data transfers using a high-speed 5Gbps USB 3.0 port and two 480Mbps USB 2.0 ports.
- 4K HDMI Display: Enhance your visual experience with a hub capable of delivering 4K resolution at 30Hz in both mirror and extend modes. Please note that this hub is compatible with MacBook (macOS 12 and newer), Windows 10 and 11, ChromeOS, and laptops equipped with DP Alt Mode and Power Delivery. Note: This device is not compatible with Linux.
- What You Get: Anker USB-C Hub (5-in-1, 4K HDMI), welcome guide, 18-month warranty, and our friendly customer service.
Modern installations place settings in riak.conf. Older installations may use vm.args and app.config. Locate the files used by your build and make the equivalent edits on every node. Record the chosen ring-size setting before starting any server:
| Configuration generation | Node name setting | Ring-size setting | Command locations |
|---|---|---|---|
| Modern | nodename = riak@hostname in riak.conf |
ring_size |
Typically /usr/sbin/riak and /usr/sbin/riak-admin for binary packages |
| Older | -name riak@hostname in vm.args |
ring_creation_size |
Scripts supplied by the package or the source tree’s bin directory |
The ring-size value must be identical on all nodes that will participate. Nodes initialized with different ring sizes cannot join the same cluster; correct this before staging a join rather than trying to repair the ring afterward.
Configure each node
Set a unique node name
On the first server, use a name such as:
nodename = [email protected]
On the second and third servers, change only the host portion:
nodename = [email protected]
nodename = [email protected]
With an older configuration, the equivalent syntax is:
-name [email protected]
Never copy the first server’s complete configuration without changing the node name. Two machines advertising the same name are not two members; they are conflicting identities.
Bind HTTP and Protocol Buffers to a reachable address
For a node whose private address is 10.0.0.11, a modern configuration can contain:
listener.http.internal = 10.0.0.11:8098
listener.protobuf.internal = 10.0.0.11:8087
Use each server’s own address on the corresponding node. The official examples also show wildcard bindings, but a private interface is safer when all clients and members are inside the same network. Ensure the address is present before Riak starts; binding to an address that the machine does not own will prevent the listener from coming up.
Recommended Free Tools
Rank #3
- Sleek 7-in-1 USB-C Hub: Features an HDMI port, two USB-A 3.0 ports, and a USB-C data port, each providing 5Gbps transfer speeds. It also includes a USB-C PD input port for charging up to 100W and dual SD and TF card slots, all in a compact design.
- Flawless 4K@60Hz Video with HDMI: Delivers exceptional clarity and smoothness with its 4K@60Hz HDMI port, making it ideal for high-definition presentations and entertainment. (Note: Only the HDMI port supports video projection; the USB-C port is for data transfer only.)
- Double Up on Efficiency: The two USB-A 3.0 ports and a USB-C port support a fast 5Gbps data rate, significantly boosting your transfer speeds and improving productivity.
- Fast and Reliable 85W Charging: Offers high-capacity, speedy charging for laptops up to 85W, so you spend less time tethered to an outlet and more time being productive.
- What You Get: Anker USB-C Hub (7-in-1), welcome guide, 18-month warranty, and our friendly customer service.
Start and prepare the first node
- Stop Riak if the package or an earlier test started it:
riak stop - Set the unique node name, ring-size value and listener addresses.
- Start the node:
riak start - Confirm locally that the service is running and that the configured listeners are active before attempting a remote join.
If this VPS was previously started as a single-node test with a default name, changing the name may leave old ring files behind. The appropriate recovery depends on whether the data is disposable and which Riak release you installed. A default single-node test setup may require stopping Riak, moving or removing its old ring files, and starting a clean ring before joining other nodes. Do not delete ring or data directories on a production node without a backup and a release-specific recovery plan.
Join the second and subsequent nodes
Stage the join from the new node
Configure and start the second VPS with its own name and listener address. Run the join command from that node, pointing at a running member:
riak-admin cluster join [email protected]
The older riak-admin join form is deprecated; use riak-admin cluster join. A successful command stages a proposed membership change. It does not make the node an active member by itself.
Review and commit the plan
On a cluster member, inspect the staged change:
riak-admin cluster plan
Read the proposed ownership changes and confirm that the intended node is being added. Finalize the operation only after reviewing the plan:
riak-admin cluster commit
Repeat the join, plan and commit sequence for every additional VPS. Do not assume that issuing the join command means the node is already serving the ring.
Verify membership and wait for handoff
After committing, check both membership and data movement:
riak-admin status | grep ring_members
riak-admin member-status
riak-admin transfers
The status output should include the expected node names in ring_members. member-status shows the membership state, while transfers reports ownership handoff work. Keep monitoring until transfers and handoff activity have completed; a committed plan can still leave the cluster unsettled while partitions move.
Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Clear out junk files and repair common Windows errorsFree Scan →Rank #4
- Dual Converters, Infinite Potential:Includes 2× USB C male to USB A female adapters and 2× USB A male to USB C female adapters. Perfect for a wide range of uses—tablets with Bluetooth keyboards, expand USB ports on macbook, and more. Two different converters for all your daily needs
- Next-Level 10Gbps & 3A Charging: No more slow 480Mbps, this usb to usb c adapter has a transfer speed of up to 10Gbps, allowing you to do more transferring in less time. This usb adapter fits both USB A and USB C charger, supporting up to 3A fast charging
- Upgraded Exquisite Craftsmanship: With an aluminum alloy housing and metal connector, the usbc to usb adapter is extremely durable and sturdy. Rigorously tested to withstand more than 10,000 times of plugging and unplugging, ensuring long-lasting performance
- Broad Compatible: The usb c to usb adapter widely supports all USB C/ USB A devices like laptops, tablets, cellphones, car chargers, and phone chargers. Such as compatible with MacBook Pro/Air 2023/2022, Thunderbolt 4/3 Devices,Apple MagSafe Watch 9/8/7/SE/Ultra, iPad Pro 2022/2021, Samsung Galaxy S23/S20/S10, and iPhone 17/16/15 Pro. Plug and play
- Please Note: To reach 10Gbps speed, keep the cable under 3.3 ft. For USB A Male to USB C adapters, try flipping the USB C connector. USB C Male to USB A adapters support bidirectional 10Gbps transfer within 3.3 ft
The partition-distribution algorithm is non-deterministic. Two valid plans can assign ownership differently, and the first plan is not guaranteed to be the most balanced. If the proposed distribution is unsuitable, clear the staged plan and create a new one according to the node-management procedure for your Riak release rather than committing an arrangement you do not want.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Troubleshoot nodes that cannot see one another
The node name does not resolve
Check name resolution from every VPS, not just from the machine where you typed the command. Verify that the FQDN in riak@... maps to the intended private address and that forward and reverse DNS policies do not produce inconsistent names. Correct DNS or host mappings, then restart Riak if the advertised name changed.
Listeners are still on loopback
If a remote join fails while local commands work, inspect the listener configuration. A binding to 127.0.0.1 accepts connections only from the same VPS. Replace it with the node’s private address or a deliberately scoped wildcard, restart Riak, and retest connectivity through the configured port.
A firewall blocks the configured ports
Compare the active listener ports with provider security-group rules and the host firewall. Permit the required Protocol Buffers and HTTP paths from the cluster or approved clients, and avoid opening them to the entire internet unless that exposure is intentional and protected.
Do these 3 things before closing this tab:
1Fix the driver behind crashes, sound loss and screen glitches2Repair Windows errors before they cause bigger problems3Scan for outdated or missing drivers - takes under a minuteThe join is staged but membership has not changed
Run riak-admin cluster plan and riak-admin cluster commit. Until the commit succeeds, the join remains a proposal. After committing, use member-status and transfers rather than relying on the original join command’s success message.
The ring sizes differ
Compare ring_size or ring_creation_size across every node. Different initial ring sizes are incompatible. Fix the configuration before adding the node; do not attempt to force a mismatched ring into membership.
A previous name or ring persists
When a server was initialized under a different name, stale ring files can cause it to behave as the old node. For disposable test data, stop Riak and create a clean ring using the release’s documented procedure. For retained data or production systems, use the force-replace workflow below instead of deleting files blindly.
Best Value
- 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
- Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
- Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
- HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
- What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.
Remove or replace a node safely
Planned decommission
For a running node that you intend to retire, stage its departure and then review and commit:
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
riak-admin cluster leave [email protected]
riak-admin cluster plan
riak-admin cluster commit
Continue monitoring riak-admin member-status and riak-admin transfers until ownership has moved and the node is no longer an active member. Keep the VPS available until the transfer work is complete.
Failed or unreachable node
From another healthy member, issue the node-name form of the leave operation for the failed node, then inspect and commit the resulting plan. Review the membership and transfer state afterward; an emergency removal still changes ownership and should not be treated as instantaneous.
Changing a hostname or address
Use the documented rolling replacement sequence when a node’s advertised name or address must change:
- Stop the node or mark it down according to your release’s procedure.
- Update its
nodenameand listener addresses. - Move the old ring directory aside rather than overwriting it.
- Start the node with the new identity.
- Join the new identity back to a healthy cluster member.
- Stage the replacement:
riak-admin cluster force-replace old-name new-name - Run
riak-admin cluster plan, inspect the ownership changes, and commit. - Verify with
riak-admin member-statusand monitorriak-admin transfers.
The exact old and new values must match the complete Riak node names, including the riak@ prefix and hostname. Treat this as a membership change, not as a simple DNS edit.
Private versus public listeners and other deployment choices
| Decision | Recommended use | Main operational consequence |
|---|---|---|
| Private listener address | Cluster and clients use an isolated VPS network | Smaller exposure; firewall rules can be limited to private sources |
| Public listener address | No private network is available or external clients require direct access | Requires stricter security-group and host-firewall controls |
| FQDN node identity | Stable names are available through provider or private DNS | Easier address changes and clearer membership records |
| IP-based identity | Only when stable, consistently resolvable addresses are guaranteed | An address change becomes a node replacement operation |
| Binary package | The target Ubuntu release has a verified compatible package | Uses package-provided paths such as /usr/sbin/riak |
| Source installation | You need a build unavailable as a package and can maintain it | Use the installation’s bin scripts and maintain configuration yourself |
Riak’s setup documentation does not provide a current 2026 price or performance comparison for VPS providers, nor does it establish a universal multi-datacenter topology. Select infrastructure only after checking its Ubuntu image, private networking, regions, firewall controls and the Riak build’s compatibility.
Quick Recap
Final readiness checklist
- Every node has a unique FQDN-based name and resolves it consistently.
- All nodes run the same verified Riak build and compatible configuration generation.
ring_sizeorring_creation_sizeis identical everywhere.- HTTP and Protocol Buffers listeners bind to reachable, intentionally scoped addresses.
- Provider and host firewalls allow the configured ports only from approved sources.
- The first node starts cleanly before any join is staged.
- Every additional node uses
riak-admin cluster join, followed by plan review and commit. ring_members,member-statusandtransfersshow the expected topology and completed handoff.- Planned removals use
cluster leave; address or name changes use the documented force-replace sequence.
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




