Using Replication Feeds
Replication feeds enable the replication of objects from one or more domains or the entire cluster to another cluster. Replication provides extra protection and can be a crucial component of a high-availability design. Replication occurs as a background process that is considered "best effort" and subject to inter-cluster bandwidth. For those who require more deterministic replication, a remote synchronous write feature can be employed in gateways serving the source cluster of a replication feed.
Types of Replication
What type of replication method is chosen and how to configure it depends on whether a legacy Swarm implementation exists and on the needs for securing replication traffic over untrusted networks. (v10.0)
Secure Replication — Swarm Storage supports remote replication over a WAN, so replication feeds can operate through the Content Gateway. When a replication feed is defined, specify which replication mode to use: either the legacy bidirectional GET method of replication (which may be needed for specific application compatibility or network requirements) or the recommended direct POST method, which offers better performance and flow management. With Swarm Storage 10.0 and later, TLS/SSL security can be implemented as it fits the implementation:
Upload a trusted certificate to Swarm
Replicate to an SSL offloader that services the target cluster
Replicate from a forward proxy on the source cluster.
...
Drawio |
---|
zoom | 1 |
---|
simple | 0 |
---|
inComment | 0 |
---|
custContentId | 1041006708 |
---|
pageId | 687702205 | custContentId | 1041006708 |
---|
lbox | 1 |
---|
diagramDisplayName | Replication-direct-POST.drawio |
---|
contentVer | 1 |
---|
revision | 1 |
---|
baseUrl | https://caringo.atlassian.net/wiki |
---|
diagramName | Replication-direct-POST.drawio |
---|
pCenter | 0 |
---|
width | 466 |
---|
links | |
---|
tbstyle | |
---|
height | 639.5 |
---|
|
Drawio |
---|
zoom | 1 |
---|
simple | 0 |
---|
inComment | 0 |
---|
custContentId | 1040810059 |
---|
pageId | 687702205 | custContentId |
---|
1040810059 | lbox | 1 |
---|
diagramDisplayName | Replication-bidirectional-GET.drawio |
---|
contentVer | 1 |
---|
revision | 1 |
---|
baseUrl | https://caringo.atlassian.net/wiki |
---|
diagramName | Replication-bidirectional-GET.drawio |
---|
pCenter | 0 |
---|
width | 406 |
---|
links | |
---|
tbstyle | |
---|
height | 282 |
---|
|
...
Adding a Replication Feed
To add a feed in to the cluster, click the +Add button at the top right of the page and then select the Replication button.
When a replication feed is defined, set the scope and select which type (Replication Mode) is in force and with what speed (number of concurrent Threads), if using direct POST:
...
ID (existing feeds) | Read-only; system-assigned identifier |
---|
Status (existing feeds) | Read-only; the current feed processing state. |
---|
Name | The name attached to a feed. |
---|
Scope | The feed filters that were selected for the replication feed. The object is replicated to the domain(s) indicated in this field. Info |
---|
Gateway adminDomainDo not create the same domain in two clusters: ; always create it in the source cluster and then replicate it to the target. A Gateway must use an independent adminDomain, at least temporarily, if the Gateway is in front of the target cluster. (CLOUD-2785) Verify the source cluster’s adminDomain is included in the list of replicated domains if choosing to replicate specific domains. |
Entire source cluster (global) — To replicate all objects in the source cluster, leave the default selection of Entire source cluster (global) Only objects in select domain(s) — To replicate the objects in one or more domains, select the 'Only objects in select domain(s) option. In the text box that appears, enter one or more domains: Enter the domain to replicate the objects within a specific domain. Enter multiple domains separated by commas, and/or use pattern matching to replicate objects within multiple domains. Enter domains to exclude them from replication. (v10.0)
The field value allows pattern matching with the Python regular expression (RE) syntax, so multiple domain names can be matched. The exception to the RE matching is that the "{m,n}" repetitions repetition qualifier may not be used. An example domain list value using RE is: .*\.example\.com This matches both of these domains: accounting.example.com, engineering.example.com . |
---|
Target Remote Cluster Name | The configuration setting for the target cluster (the cluster.name parameter in the.cfg file of the target cluster). configure the Gateway setting allowSwarmAdminIP when using Gateway as a target. See Gateway Configuration |
---|
Proxy or Host(s) | The IP address(es) or host name(s) of either: One or more nodes in the target cluster. It is best to list all nodes in the target cluster, while swarm Swarm follows redirects, it does not use those redirect targets for subsequent requests. A reverse proxy host that routes to the target cluster.
To Enter each address with a comma or space between them to enter two or more node IP addresses, enter each address separated by a comma or spaces. |
---|
Port | Defaults to 80. Allows specifying a custom port for the remote cluster. |
---|
Replication Mode | Defaults to Direct POST. Choose replication via direct POST (recommended) or bidirectional GET. Switching modes does not require a feed restart. (v9.6) For best performance, choose direct POST replication, which can go through Gateway. GET replication is the legacy method, which may be needed for application compatibility or networking requirements. |
---|
Threads | Replication via direct POST. The default replication speed (20 simultaneous threads) is best for same-sized clusters with minimal replication backlog. When processing backlog, the new default push thread count is 20 per node (in releases prior to v15.0, it was 6 per volume) Reduce the threads to avoid overwhelming a smaller target cluster. For faster replication against a backlog, increase the threads temporarily , and monitor bandwidth and cluster performance, as boosting the speed stresses both clusters. |
---|
SSL Server | Replication via direct POST. Defaults to none. Enable Require trusted SSL if replicating over an untrusted network; Allow untrusted SSL is available but not intended for production systems. (v10.0) |
---|
Remote Admin Name/Password | Inherit from source cluster: Uncheck the enabled box, if the remote cluster user name is different from the source cluster name in the same realm. Then enter: User/Password credentials |
---|
...
Excerpt |
---|
Using Feed ActionsClicking on an existing feed in the Feeds list opens the Feed Settings page, with the existing settings populated. The Actions (gear) icon menu at the top right supports multiple feed actions, appropriate to the type of feed: Pause / Resume | Manual Pause: Feed processing may occasionally need to be paused to perform system maintenance. Pause the search feed before stopping the Elasticsearch service in the search cluster when upgrading an Elasticsearch cluster. Return to the action menu and select the Resume action to resume feed processing after completing system maintenance. Automatic Pause: When the setting feeds.pauseDisconnectPerHourLimit is non-zero and the number of disconnects for a node exceeds the value (default 1000), the feed are is automatically paused with a CRITICAL error message. |
---|
Refresh | Object data is sent to the feed target in near real-time (NRT) as they are it is written or updated. Any objects unable to be processed immediately are retried each HP cycle until successful, at which point they are marked as complete and are not resent. Select the Refresh option from the feed action menu, which verifies and rehydrates all previously sent content to a remote cluster if a data loss failure occurs on the remote feed target and restoration from backup is not possible. This process takes some time, as it must revisit all objects in the cluster. |
---|
Delete | When a feed is deleted, it frees source cluster resources. This process does not affect the objects previously pushed to the remote target. Select the Delete option from the feed action menu and verify the intention to permanently delete the feed. The deleted feed is removed from the remaining cluster nodes within 60 seconds. |
---|
View feed table | Displays the SNMP Repository Dump for the selected node, for feed diagnostics (see below). |
---|
Troubleshooting FeedsFeed diagnostics — Double-click a blocked feed to open the settings page, click the gear icon, and select View feed table, which displays the SNMP Repository Dump for the selected node to troubleshoot. (v2.0)
Review the feedPluginState status to identify the blockage. Example: feedPluginState blocked: Destination cluster onyx1 reports invalid request: Castor-System-Cluster value must refer to a remote cluster on RETRIEVE request Idle feeds — A feed can appear to be idle with items still queued for processing. Plan for the fact that feed status reporting is a best-effort snapshot, not a low-latency or guaranteed transaction mechanism. Feed prioritization — Domain and bucket context objects are prioritized for all types of feeds; this improves usability when remote sites are initiated. Retries for blocked feeds — Blocked feeds are retried every 20 minutes, but if the definition for a blocked feed is changed, it triggers an immediate attempt with the new definition, which may clear the blockage. (v10.1)
|
...