Debian 12 bookworm
Sponsored Link

GlusterFS : Geo Replication2023/06/19

 
Configure GlusterFS Geo Replication to create a replication volume of a GlusterFS volume on a remote site.
This configuration is general Primary-Replica (read only replica) settings.
For example, Configure Geo Replication to a Gluster Volume [vol_distributed] like an example of the link here.
Primary and Replica are both in internal network on this example, though, it's possible to configure Geo Replication over the internet.
                                  |
+----------------------+          |          +----------------------+
| [GlusterFS Server#1] |10.0.0.51 | 10.0.0.53| [GlusterFS Server#3] |
|   node01.srv.world   +----------+----------+   node03.srv.world   |
|                      |          |          |                      |
+----------------------+          |          +----------------------+
   [vol_distributed]              |         [secondary-vol_distributed]
+----------------------+          |          +----------------------+
| [GlusterFS Server#2] |10.0.0.52 | 10.0.0.54| [GlusterFS Server#4] |
|   node02.srv.world   +----------+----------+   node04.srv.world   |
|                      |                     |                      |
+----------------------+                     +----------------------+

[1]
Create a volume for replication on Replica Nodes (node03, node04), refer to here.
It proceeds with a volume named [secondary-vol_distributed] on this example.
[2] On all Nodes, install required packages.
root@node01:~#
apt -y install rsync
[3] On a Node that makes replication volume, change settings of the volume.
root@node03:~#
gluster volume set secondary-vol_distributed performance.quick-read off

volume set: success
[4] On a Node that makes primary volume, set SSH key-pair.
It proceeds with [root] account and with no-passphrase on this example.
By the way, if you set like this example, it needs to change sshd settings temporarily to [PermitRootLogin yes].
However, if the servers are internet facing one, you had better to transfer keys with other secure ways without changing sshd even if temporary.
root@node01:~#
ssh-keygen -q -N ""

Enter file in which to save the key (/root/.ssh/id_rsa):

root@node01:~#
ssh-copy-id node01

root@node01's password:

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'node01'"
and check to make sure that only the key(s) you wanted were added.

root@node01:~#
ssh-copy-id node02

root@node01:~#
ssh-copy-id node03

root@node01:~#
ssh-copy-id node04

[5] On a Node that makes primary volume, create Geo replication sessions.
root@node01:~#
gluster system:: execute gsec_create

Common secret pub file present at /var/lib/glusterd/geo-replication/common_secret.pem.pub
# gluster volume geo-replication [primary volume] [(replication host)::(replication volume)] ***

root@node01:~#
gluster volume geo-replication vol_distributed node03::secondary-vol_distributed create push-pem

Creating geo-replication session between vol_distributed & node03::secondary-vol_distributed has been successful
[6] On a Node that makes primary volume, and also On a Node that makes replication volume, enable shared storage feature.
root@node01:~#
gluster volume set all cluster.enable-shared-storage enable

volume set: success
[7] On a Node that makes primary volume, configure meta-volume and start Geo replication.
After starting Geo replication, try to wtite files on a primary volume to verify replication works normally.
# gluster volume geo-replication [primary volume] [(replication host)::(replication volume)] ***

root@node01:~#
gluster volume geo-replication vol_distributed node03::secondary-vol_distributed config use_meta_volume true

geo-replication config updated successfully
root@node01:~#
gluster volume geo-replication vol_distributed node03::secondary-vol_distributed start

Starting geo-replication session between vol_distributed & node03::secondary-vol_distributed has been successful
root@node01:~#
gluster volume geo-replication vol_distributed node03::secondary-vol_distributed status

PRIMARY NODE    PRIMARY VOL        PRIMARY BRICK             SECONDARY USER    SECONDARY                            SECONDARY NODE    STATUS    CRAWL STATUS       LAST_SYNCED
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
node01          vol_distributed    /glusterfs/distributed    root              node03::secondary-vol_distributed                      Active    Changelog Crawl    2023-06-18 21:13:07
node02          vol_distributed    /glusterfs/distributed    root              node03::secondary-vol_distributed                      Active    Changelog Crawl    2023-06-18 21:13:07
Matched Content