Hello!
I have a working 3-node fdb cluster with some data. Sometimes I need to make a copy of this cluster: a cluster on another three nodes (with another IP addresses) containing the same data.
I’ve regarded the following ways:
-
Backup all data from the first cluster with fdbbackup and restoring them to the new one with fdbrestore.
-
Creating a dr site of the source cluster on the new cluster with fdbdr and then stopping the replication after finishing of copying data.
Both ways allows to create a copy of the source cluster but take a lot of time for large databases.
I’m looking for a faster alternative of making such copy.
My idea is shutting down the whole source cluster (sometimes it is acceptable), copy the contents of the storage directories from the source nodes to the same directories of the destination nodes and then starting up both clusters. Copying files performs much faster then extracting/inserting key-value pairs.
This can be done extremaly fast if the cloud or the virtual platform allows to make a linked copy of data volumes. In this case I can shutdown the source cluster, make a snapshot of their data volumes and start the source cluster up. Then I can create clone of the snapshot as a linked copies (it is done with the constant time because there is no any real copying of data) and use them on the destination cluster.
The problem is that when I’m trying to use data files from one cluster on another, fdb does not see the “stolen” data:
[oleg@oleg2 devops]$ fdbcli -C standby-fdb.cluster
Using cluster file `standby-fdb.cluster’.
The database is unavailable; type `status’ for more information.
Welcome to the fdbcli. For help, type `help’.
fdb> status details
Using cluster file `standby-fdb.cluster’.
The coordinator(s) have no record of this database. Either the coordinator
addresses are incorrect, the coordination state on those machines is missing, or
no database has been created.
192.168.56.81:4500 (reachable)
192.168.56.82:4500 (reachable)
192.168.56.83:4500 (reachable)
Unable to locate the data distributor worker.
Unable to locate the ratekeeper worker.
Is there any way of enforcing fdb to use data files copied from another cluster?
Is there another alternative of fast cloning fdb clusters?