84 lines
3.4 KiB
Markdown
84 lines
3.4 KiB
Markdown
|
---
|
||
|
layout: default
|
||
|
title: Segment replication configuration
|
||
|
nav_order: 12
|
||
|
parent: Segment replication
|
||
|
grand_parent: Availability and Recovery
|
||
|
---
|
||
|
|
||
|
# Segment replication configuration
|
||
|
|
||
|
Segment replication is an experimental feature. Therefore, we do not recommend the use of segment replication in a production environment. For updates on the progress of segment replication or if you want to leave feedback that could help improve the feature, see the [Segment replication issue](https://github.com/opensearch-project/OpenSearch/issues/2194).
|
||
|
{: .warning }
|
||
|
|
||
|
To enable the segment replication type, reference the steps below.
|
||
|
|
||
|
## Enabling the feature flag
|
||
|
|
||
|
There are several methods for enabling segment replication, depending on the install type. You will also need to set the replication strategy to `SEGMENT` when creating the index.
|
||
|
|
||
|
### Enable on a node using a tarball install
|
||
|
|
||
|
The flag is toggled using a new jvm parameter that is set either in `OPENSEARCH_JAVA_OPTS` or in config/jvm.options.
|
||
|
|
||
|
1. Option 1: Update config/jvm.options by adding the following line:
|
||
|
|
||
|
````json
|
||
|
-Dopensearch.experimental.feature.replication_type.enabled=true
|
||
|
````
|
||
|
|
||
|
1. Option 2: Use the `OPENSEARCH_JAVA_OPTS` environment variable:
|
||
|
|
||
|
````json
|
||
|
export OPENSEARCH_JAVA_OPTS="-Dopensearch.experimental.feature.replication_type.enabled=true"
|
||
|
````
|
||
|
1. Option 3: For developers using Gradle, update run.gradle by adding the following lines:
|
||
|
|
||
|
````json
|
||
|
testClusters {
|
||
|
runTask {
|
||
|
testDistribution = 'archive'
|
||
|
if (numZones > 1) numberOfZones = numZones
|
||
|
if (numNodes > 1) numberOfNodes = numNodes
|
||
|
systemProperty 'opensearch.experimental.feature.replication_type.enabled', 'true'
|
||
|
}
|
||
|
}
|
||
|
````
|
||
|
|
||
|
### Enable with Docker containers
|
||
|
|
||
|
If you're running Docker, add the following line to docker-compose.yml underneath the `opensearch-node` and `environment` section:
|
||
|
|
||
|
````json
|
||
|
OPENSEARCH_JAVA_OPTS="-Dopensearch.experimental.feature.replication_type.enabled=true" # Enables segment replication
|
||
|
````
|
||
|
|
||
|
### Setting the replication strategy on the index
|
||
|
|
||
|
To set the replication strategy to segment replication, create an index with replication.type set to `SEGMENT`:
|
||
|
|
||
|
````json
|
||
|
PUT /my-index1
|
||
|
{
|
||
|
"settings": {
|
||
|
"index": {
|
||
|
"replication.type": "SEGMENT"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
````
|
||
|
|
||
|
## Known limitations
|
||
|
|
||
|
1. Enabling segment replication for an existing index requires [reindexing](https://github.com/opensearch-project/OpenSearch/issues/3685).
|
||
|
1. Rolling upgrades are currently not supported. Full cluster restarts are required when upgrading indexes using segment replication. [Issue 3881](https://github.com/opensearch-project/OpenSearch/issues/3881).
|
||
|
1. [Cross-cluster replication](https://github.com/opensearch-project/OpenSearch/issues/4090) does not currently use segment replication to copy between clusters.
|
||
|
1. Increased network congestion on primary shards. [Issue - Optimize network bandwidth on primary shards](https://github.com/opensearch-project/OpenSearch/issues/4245).
|
||
|
1. Shard allocation algorithms have not been updated to evenly spread primary shards across nodes.
|
||
|
1. Integration with remote-backed storage as the source of replication is [currently unsupported](https://github.com/opensearch-project/OpenSearch/issues/4448).
|
||
|
|
||
|
### Further resources regarding segment replication
|
||
|
|
||
|
1. [Known issues](https://github.com/opensearch-project/OpenSearch/issues/2194).
|
||
|
1. Steps for testing (link coming soon).
|
||
|
1. Segment replication blog post (link coming soon).
|