diff options
Diffstat (limited to 'doc/admin-guide/en-US/markdown/admin_geo-replication.md')
-rw-r--r-- | doc/admin-guide/en-US/markdown/admin_geo-replication.md | 249 |
1 files changed, 121 insertions, 128 deletions
diff --git a/doc/admin-guide/en-US/markdown/admin_geo-replication.md b/doc/admin-guide/en-US/markdown/admin_geo-replication.md index 47a2f66283f..6c6aaefda9d 100644 --- a/doc/admin-guide/en-US/markdown/admin_geo-replication.md +++ b/doc/admin-guide/en-US/markdown/admin_geo-replication.md @@ -128,8 +128,6 @@ and slave nodes within your environment: time lag, all the changes in brick2 between this period may go unnoticed during synchronization of files with Slave. - For more information on setting up NTP, see [][]. - **To setup Geo-replication for SSH** Password-less login has to be set up between the host machine (where @@ -139,13 +137,13 @@ geo-replication Start command will be issued) and the remote machine 1. On the node where geo-replication sessions are to be set up, run the following command: - `# ssh-keygen -f /var/lib/glusterd/geo-replication/secret.pem` + # ssh-keygen -f /var/lib/glusterd/geo-replication/secret.pem Press Enter twice to avoid passphrase. 2. Run the following command on master for all the slave hosts: - `# ssh-copy-id -i /var/lib/glusterd/geo-replication/secret.pem.pub @` + # ssh-copy-id -i /var/lib/glusterd/geo-replication/secret.pem.pub @ ##Setting Up the Environment for a Secure Geo-replication Slave @@ -184,7 +182,7 @@ except for the following: - Slave must have a running instance of glusterd, even if there is no gluster volume among the mounted slave resources (that is, - file tree slaves are used exclusively) . + file tree slaves are used exclusively). ### Restricting Remote Command Execution @@ -237,73 +235,66 @@ level access to the particular volume. **To setup an auxiliary gluster mount for the agent**: -1. Create a new group. For example, `geogroup`. +1. In all Slave nodes, create a new group. For example, `geogroup`. -2. Create a unprivileged account. For example, ` geoaccount`. Make it a +2. In all Slave nodes, create a unprivileged account. For example, ` geoaccount`. Make it a member of ` geogroup`. -3. Create a new directory owned by root and with permissions *0711.* +3. In all Slave nodes, Create a new directory owned by root and with permissions *0711.* For example, create a create mountbroker-root directory `/var/mountbroker-root`. -4. Add the following options to the glusterd volfile, assuming the name - of the slave gluster volume as `slavevol`: - - `option mountbroker-root /var/mountbroker-root ` - - `option mountbroker-geo-replication.geoaccount slavevol` - - `option geo-replication-log-group geogroup` +4. In any one of Slave node, Run the following commands to add options to glusterd vol +file(`/etc/glusterfs/glusterd.vol`) + in rpm installations and `/usr/local/etc/glusterfs/glusterd.vol` in Source installation. - If you are unable to locate the glusterd volfile at - `/etc/glusterfs/glusterd.vol`, you can create a volfile containing - both the default configuration and the above options and place it at - `/etc/glusterfs/`. + ```sh + gluster system:: execute mountbroker opt mountbroker-root /var/mountbroker-root + gluster system:: execute mountbroker opt geo-replication-log-group geogroup + gluster system:: execute mountbroker opt rpc-auth-allow-insecure on + ``` - A sample glusterd volfile along with default options: +5. In any one of the Slave node, Add Mountbroker user to glusterd vol file using, - volume management - type mgmt/glusterd - option working-directory /var/lib/glusterd - option transport-type socket,rdma - option transport.socket.keepalive-time 10 - option transport.socket.keepalive-interval 2 - option transport.socket.read-fail-log off + ```sh + gluster system:: execute mountbroker user geoaccount slavevol + ``` - option mountbroker-root /var/mountbroker-root - option mountbroker-geo-replication.geoaccount slavevol - option geo-replication-log-group geogroup - end-volume + where slavevol is the Slave Volume name - If you host multiple slave volumes on Slave, you can repeat step 2. - for each of them and add the following options to the `volfile`: + If you host multiple slave volumes on Slave, for each of them and add the following options to the +volfile using, - option mountbroker-geo-replication.geoaccount2 slavevol2 - option mountbroker-geo-replication.geoaccount3 slavevol3 + ```sh + gluster system:: execute mountbroker user geoaccount2 slavevol2 + gluster system:: execute mountbroker user geoaccount3 slavevol3 + ``` -5. Setup Master to access Slave as `geoaccount@Slave`. + To add multiple volumes per mountbroker user, - You can add multiple slave volumes within the same account - (geoaccount) by providing comma-separated list (without spaces) as - the argument of `mountbroker-geo-replication.geogroup`. You can also - have multiple options of the form `mountbroker-geo-replication.*`. - It is recommended to use one service account per Master machine. For - example, if there are multiple slave volumes on Slave for the master - machines Master1, Master2, and Master3, then create a dedicated - service user on Slave for them by repeating Step 2. for each (like - geogroup1, geogroup2, and geogroup3), and then add the following - corresponding options to the volfile: + ```sh + gluster system:: execute mountbroker user geoaccount1 slavevol11,slavevol12,slavevol13 + gluster system:: execute mountbroker user geoaccount2 slavevol21,slavevol22 + gluster system:: execute mountbroker user geoaccount3 slavevol31 + ``` +6. Restart `glusterd` service on all Slave nodes. - `option mountbroker-geo-replication.geoaccount1 slavevol11,slavevol12,slavevol13` +7. Setup a passwdless SSH from one of the master node to the user on one of the slave node. +For example, to geoaccount. - `option mountbroker-geo-replication.geoaccount2 slavevol21,slavevol22` +8. Create a geo-replication relationship between master and slave to the user by running the +following command on the master node: - `option mountbroker-geo-replication.geoaccount3 slavevol31` + ```sh + gluster volume geo-replication <master_volume> <mountbroker_user>@<slave_host>::<slave_volume> create push-pem [force] + ``` - Now set up Master1 to ssh to geoaccount1@Slave, etc. +9. In the slavenode, which is used to create relationship, run `/usr/libexec/glusterfs/set_geo_rep_pem_keys.sh` +as a root with user name, master volume name, and slave volume names as the arguments. - You must restart glusterd after making changes in the configuration - to effect the updates. + ```sh + /usr/libexec/glusterfs/set_geo_rep_pem_keys.sh <mountbroker_user> <master_volume> <slave_volume> + ``` ### Using IP based Access Control @@ -316,7 +307,7 @@ To set access control based on IP address for file tree slaves: 1. Set a general restriction for accessibility of file tree resources: - `# gluster volume geo-replication '/*' config allow-network ::1,127.0.0.1 ` + # gluster volume geo-replication '/*' config allow-network ::1,127.0.0.1 This will refuse all requests for spawning slave agents except for requests initiated locally. @@ -324,7 +315,7 @@ To set access control based on IP address for file tree slaves: 2. If you want the to lease file tree at `/data/slave-tree` to Master, enter the following command: - `# gluster volume geo-replicationconfig allow-network ` + # gluster volume geo-replicationconfig allow-network `MasterIP` is the IP address of Master. The slave agent spawn request from master will be accepted if it is executed at @@ -338,7 +329,7 @@ comma-separated lists of CIDR subnets. If you want to extend IP based access control to gluster slaves, use the following command: -`# gluster volume geo-replication '*' config allow-network ::1,127.0.0.1` + # gluster volume geo-replication '*' config allow-network ::1,127.0.0.1 ##Starting Geo-replication @@ -350,9 +341,9 @@ functioning correctly. To start Gluster Geo-replication -- Start geo-replication between the hosts using the following command: +- Use the following command to start geo-replication between the hosts: - `# gluster volume geo-replication start` + # gluster volume geo-replication start For example: @@ -374,14 +365,12 @@ Geo-replication in your environment. - Verify the status by issuing the following command on host: - `# gluster volume geo-replication status` + # gluster volume geo-replication status For example: - `# gluster volume geo-replication Volume1 example.com:/data/remote_dir status` - # gluster volume geo-replication Volume1 example.com:/data/remote_dir status - + # gluster volume geo-replication Volume1 example.com:/data/remote_dir status MASTER SLAVE STATUS ______ ______________________________ ____________ Volume1 root@example.com:/data/remote_dir Starting.... @@ -394,24 +383,18 @@ geo-replication sessions, as needed. **To display geo-replication status information** -- Display information of all geo-replication sessions using the - following command: +- Use the following command to display information of all geo-replication sessions: # gluster volume geo-replication Volume1 example.com:/data/remote_dir status - MASTER SLAVE STATUS - ______ ______________________________ ____________ - Volume1 root@example.com:/data/remote_dir Starting.... +- Use the following command to display information of a particular master slave session: -- Display information of a particular master slave session using the - following command: - - `# gluster volume geo-replication status` + # gluster volume geo-replication status For example, to display information of Volume1 and example.com:/data/remote\_dir - `# gluster volume geo-replication Volume1 example.com:/data/remote_dir status` + # gluster volume geo-replication Volume1 example.com:/data/remote_dir status The status of the geo-replication between Volume1 and example.com:/data/remote\_dir is displayed. @@ -419,32 +402,38 @@ geo-replication sessions, as needed. - Display information of all geo-replication sessions belonging to a master - `# gluster volume geo-replication MASTER status` + # gluster volume geo-replication MASTER status For example, to display information of Volume1 # gluster volume geo-replication Volume1 example.com:/data/remote_dir status - MASTER SLAVE STATUS - ______ ______________________________ ____________ - Volume1 ssh://example.com:gluster://127.0.0.1:remove_volume OK + The status of a session could be one of the following: + +- **Initializing**: This is the initial phase of the Geo-replication session; + it remains in this state for a minute in order to make sure no abnormalities are present. + +- **Not Started**: The geo-replication session is created, but not started. + +- **Active**: The gsync daemon in this node is active and syncing the data. - Volume1 ssh://example.com:file:///data/remote_dir OK +- **Passive**: A replica pair of the active node. The data synchronization is handled by active node. + Hence, this node does not sync any data. - The status of a session could be one of the following four: +- **Faulty**: The geo-replication session has experienced a problem, and the issue needs to be + investigated further. -- **Starting**: This is the initial phase of the Geo-replication - session; it remains in this state for a minute, to make sure no - abnormalities are present. +- **Stopped**: The geo-replication session has stopped, but has not been deleted. -- **OK**: The geo-replication session is in a stable state. + The Crawl Status can be one of the following: -- **Faulty**: The geo-replication session has witnessed some - abnormality and the situation has to be investigated further. +- **Changelog Crawl**: The changelog translator has produced the changelog and that is being consumed + by gsyncd daemon to sync data. -- **Corrupt**: The monitor thread which is monitoring the - geo-replication session has died. This situation should not occur - normally. +- **Hybrid Crawl**: The gsyncd daemon is crawling the glusterFS file system and generating pseudo + changelog to sync data. + +- **Checkpoint Status**: Displays the status of the checkpoint, if set. Otherwise, it displays as N/A. ##Configuring Geo-replication @@ -452,13 +441,32 @@ To configure Gluster Geo-replication - Use the following command at the Gluster command line: - `# gluster volume geo-replication config [options]` + # gluster volume geo-replication config [options] For example: - To view list of all option/value pair, use the following command: + Use the following command to view list of all option/value pair: + + # gluster volume geo-replication Volume1 example.com:/data/remote_dir config + +####Configurable Options + +The following table provides an overview of the configurable options for a geo-replication setting: - `# gluster volume geo-replication Volume1 example.com:/data/remote_dir config` + Option | Description + --- | --- + gluster-log-file LOGFILE | The path to the geo-replication glusterfs log file. + gluster-log-level LOGFILELEVEL| The log level for glusterfs processes. + log-file LOGFILE | The path to the geo-replication log file. + log-level LOGFILELEVEL | The log level for geo-replication. + ssh-command COMMAND | The SSH command to connect to the remote machine (the default is SSH). + rsync-command COMMAND | The rsync command to use for synchronizing the files (the default is rsync). + use-tarssh true | The use-tarssh command allows tar over Secure Shell protocol. Use this option to handle workloads of files that have not undergone edits. + volume_id=UID | The command to delete the existing master UID for the intermediate/slave node. + timeout SECONDS | The timeout period in seconds. + sync-jobs N | The number of simultaneous files/directories that can be synchronized. + ignore-deletes | If this option is set to 1, a file deleted on the master will not trigger a delete operation on the slave. As a result, the slave will remain as a superset of the master and can be used to recover the master in the event of a crash and/or accidental delete. + checkpoint [LABEL|now] | Sets a checkpoint with the given option LABEL. If the option is set as now, then the current time will be used as the label. ##Stopping Geo-replication @@ -467,9 +475,9 @@ of data from Master to Slave) in your environment. **To stop Gluster Geo-replication** -- Stop geo-replication between the hosts using the following command: +- Use the following command to stop geo-replication between the hosts: - `# gluster volume geo-replication stop ` + # gluster volume geo-replication stop For example: @@ -502,10 +510,6 @@ geo-replication session run the following command on Master: # gluster volume geo-replication Volume1 root@example.com:/data/remote_dir status - MASTER SLAVE STATUS - ______ ______________________________ ____________ - Volume1 root@example.com:/data/remote_dir OK - **Before Failure** Assume that the Master volume had 100 files and was mounted at @@ -528,11 +532,7 @@ Geo-replication session is changed from "OK" to "Faulty". To view the status of this geo-replication session run the following command on Master: - # gluster volume geo-replication Volume1 root@example.com:/data/remote_dir status - - MASTER SLAVE STATUS - ______ ______________________________ ____________ - Volume1 root@example.com:/data/remote_dir Faulty + # gluster volume geo-replication Volume1 root@example.com:/data/remote_dir status Machine2 is failed and now you can see discrepancy in number of files between master and slave. Few files will be missing from the master @@ -540,20 +540,19 @@ volume but they will be available only on slave as shown below. Run the following command on Client: - client # ls /mnt/gluster | wc –l - 52 + client # ls /mnt/gluster | wc –l + 52 Run the following command on slave (example.com): - Example.com# # ls /data/remote_dir/ | wc –l - 100 + Example.com# # ls /data/remote_dir/ | wc –l + 100 **To restore data from the slave machine** -1. Stop all Master's geo-replication sessions using the following - command: +1. Use the following command to stop all Master's geo-replication sessions: - `# gluster volume geo-replication stop` + # gluster volume geo-replication stop For example: @@ -568,29 +567,27 @@ Run the following command on slave (example.com): > Repeat `# gluster volume geo-replication stop `command on all > active geo-replication sessions of master volume. -2. Replace the faulty brick in the master by using the following - command: +2. Use the following command to replace the faulty brick in the master: - `# gluster volume replace-brick start` + # gluster volume replace-brick start For example: machine1# gluster volume replace-brick Volume1 machine2:/export/dir16 machine3:/export/dir16 start Replace-brick started successfully -3. Commit the migration of data using the following command: +3. Use the following command to commit the migration of data: - `# gluster volume replace-brick commit force ` + # gluster volume replace-brick commit force For example: machine1# gluster volume replace-brick Volume1 machine2:/export/dir16 machine3:/export/dir16 commit force Replace-brick commit successful -4. Verify the migration of brick by viewing the volume info using the - following command: +4. Use the following command to verify the migration of brick by viewing the volume info: - `# gluster volume info ` + # gluster volume info For example: @@ -611,7 +608,7 @@ Run the following command on slave (example.com): For example: - `example.com# rsync -PavhS --xattrs --ignore-existing /data/remote_dir/ client:/mnt/gluster` + example.com# rsync -PavhS --xattrs --ignore-existing /data/remote_dir/ client:/mnt/gluster Verify that the data is synced by using the following command: @@ -627,10 +624,9 @@ Run the following command on slave (example.com): Now Master volume and Slave directory is synced. -6. Restart geo-replication session from master to slave using the - following command: +6. Use the following command to restart geo-replication session from master to slave: - `# gluster volume geo-replication start ` + # gluster volume geo-replication start For example: @@ -650,18 +646,17 @@ geo-replication index, so the recommended way to set the time manually is: 1. Stop geo-replication between the master and slave using the following command: - `# gluster volume geo-replication sto`p + # gluster volume geo-replication stop 2. Stop the geo-replication indexing using the following command: - `# gluster volume set geo-replication.indexing of`f + # gluster volume set geo-replication.indexing of -3. Set uniform time on all bricks.s +3. Set uniform time on all bricks. -4. Restart your geo-replication sessions by using the following - command: +4. Use the following command to restart your geo-replication session: - `# gluster volume geo-replication start ` + # gluster volume geo-replication start **Running Geo-replication commands in one system** @@ -684,5 +679,3 @@ available in follow-up minor release. [ Geo-replication over WAN ]: ../images/Geo-Rep_WAN.png [ Geo-replication over Internet ]: ../images/Geo-Rep03_Internet.png [ Multi-site cascading Geo-replication ]: ../images/Geo-Rep04_Cascading.png - []: http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Migration_Planning_Guide/ch04s07.html - [1]: www.redhat.com/support/ |