Replication and Sync cluster node2 with node1

Good morning everyone

  1. I got workin ns8 server node1 (mail + roundcube)
  2. Installed another ns8 server and joined as cluster node2 to node1
  3. node2 successfuly joined. Its working (no errors displayed)
  4. add LDAP provider to node2 with success
  5. clone apps to node 2 with success

what next to get it working … if node1 is offline ?
Still searching replication settings and cannot find
after turn off node1 … services not working (roundcube + mail)

any tip Im glad to … consume with pleasure :slight_smile:

THX for advance
and sorry for trouble
have a nice sunday
:slight_smile:

Good morning Daniel,

NS8 core itself doesn’t provide app replication. Clone and Move are one-shot actions that copy an app’s state at that moment, with no ongoing sync afterward, so cloning mail/Roundcube to node2 gives you a snapshot, not a live replica that takes over if node1 goes down.

Replication, where it exists, comes from the apps themselves — for example the LDAP/Samba AD provider apps support multi-master replication — but mail (Postfix/Dovecot) and Roundcube don’t have that built in, so what you’re seeing is expected behavior, not a misconfiguration.

ok.

I assumed that clustering is for redundance or HA

thx for explaining it so clearly
but :slight_smile: … stil 2 question … on my mind

  1. Is it possible to make script doing that: clone and move app … and put it to schedule

  2. Wonder about purpose to make a cluster at all
    if You can backup and restore app at any non clustered ns8 machine.
    is clustering has other purposes in ns8 ?

    THX
    BIG respect for You Work
    Take care.

Good question. Clustering in NS8 is mainly about managing and running more apps conveniently across more hardware — centralized management from one UI/API, and spreading apps across nodes based on resources — not (yet) about automatic failover.

If you need HA today, that’s better achieved at the VM hypervisor level (e.g. live migration, hypervisor-level replication) rather than trying to replicate it at the NS8 app layer.

Worth noting: back in NS7 there was a feature called “hotsync” that attempted exactly this kind of node-to-node sync/failover, but with virtualization now handling that job well, the idea has become a lot less attractive to pursue again in NS8.

Thx for advice Davide I’m aware about replication in Virtualization apps. For me that one who invent virtualization and bring it to … today level … should get a Nobel price.
Respect for all the people who did it and still doing that.

Thank You very much for fruitfully converstion.

and stay healty
take care

:slight_smile:

Sometimes I would like to code a hotsync path for a module. Clone the module once, then keep the data in sync with rsync afterwards. The building block is already there: clone-module runs a transfer-state step that rsyncs the module volumes and the agent state directory to the destination, so the periodic part is mostly a matter of repeating that step instead of the whole clone.

The data side is the easy half though. When the primary goes down and we want to switch to the replica, there is still at least one manual step: repointing the A/AAAA record to the replica node.

That step is precisely what Kubernetes removes. There the DNS name points to a Service VIP that never moves. The EndpointSlice controller drops the failing pod as soon as its readiness probe fails, kube-proxy reprograms the routing on every node, and traffic follows the healthy replica without anyone editing a DNS record. We have no equivalent of that in NS8, so the switch stays manual.

Im not a expert but I think a simple script on router like mikrotik can do the trick with DNS switch after node1 is offline
You can put second trefik path additionaly too

but that script with rsync module and rsync volume … You definitely got mine attention :slight_smile:
is it workin with terminal on ns8

can You provide more info ?

take care
and Respect !
for You and You work.

Just an idea but yes it is intended to be used in a terminal, probably a python script, anyway it is a global work and the dns issue is the missing piece