-
Notifications
You must be signed in to change notification settings - Fork 24.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[DOCS] Add put snapshot repo API docs #56827
Merged
Merged
Changes from all commits
Commits
Show all changes
3 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
266 changes: 266 additions & 0 deletions
266
docs/reference/snapshot-restore/apis/put-repo-api.asciidoc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,266 @@ | ||
[[put-snapshot-repo-api]] | ||
=== Put snapshot repository API | ||
++++ | ||
<titleabbrev>Put snapshot repository</titleabbrev> | ||
++++ | ||
|
||
Registers or updates a <<snapshots-register-repository,snapshot repository>>. | ||
|
||
[source,console] | ||
---- | ||
PUT /_snapshot/my_repository | ||
{ | ||
"type": "fs", | ||
"settings": { | ||
"location": "my_backup_location" | ||
} | ||
} | ||
---- | ||
|
||
[[put-snapshot-repo-api-request]] | ||
==== {api-request-title} | ||
|
||
`PUT /_snapshot/<repository>` | ||
|
||
`POST /_snapshot/<repository>` | ||
|
||
[[put-snapshot-repo-api-desc]] | ||
==== {api-description-title} | ||
|
||
A snapshot repository must be registered before you can perform | ||
<<snapshot-restore,snapshot and restore>> operations. You can use the put | ||
snapshot repository API to register new repositories and update existing ones. | ||
See <<snapshots-register-repository>>. | ||
|
||
TIP: Because snapshot formats can change between major versions of | ||
{es}, we recommend registering a new snapshot repository for each major version. | ||
See <<snapshot-restore-version-compatibility>>. | ||
|
||
[[create-snapshot-repo-api-path-params]] | ||
==== {api-path-parms-title} | ||
|
||
`<repository>`:: | ||
(Required, string) | ||
Name of the snapshot repository to register or update. | ||
|
||
[[put-snapshot-repo-api-query-params]] | ||
==== {api-query-parms-title} | ||
|
||
`master_timeout`:: | ||
(Optional, <<time-units, time units>>) Specifies the period of time to wait for | ||
a connection to the master node. If no response is received before the timeout | ||
expires, the request fails and returns an error. Defaults to `30s`. | ||
+ | ||
IMPORTANT: You can also specify this value using the `master_timeout` request | ||
body parameter. If both parameters are specified, only the query parameter is | ||
used. | ||
|
||
`timeout`:: | ||
(Optional, <<time-units, time units>>) Specifies the period of time to wait for | ||
a response. If no response is received before the timeout expires, the request | ||
fails and returns an error. Defaults to `30s`. | ||
+ | ||
IMPORTANT: You can also specify this value using the `timeout` request body | ||
parameter. If both parameters are specified, only the query parameter is used. | ||
|
||
`verify`:: | ||
(Optional, boolean) | ||
If `true`, the request verifies the repository is functional on all master and | ||
data nodes in the cluster. If `false`, this verification is skipped. Defaults to | ||
`true`. | ||
+ | ||
You can manually perform this verification using the | ||
<<snapshots-repository-verification,verify snapshot repository API>>. | ||
+ | ||
IMPORTANT: You can also specify this value using the `verify` request body | ||
parameter. If both parameters are specified, only the query parameter is used. | ||
|
||
[role="child_attributes"] | ||
[[put-snapshot-repo-api-request-body]] | ||
==== {api-request-body-title} | ||
|
||
`master_timeout`:: | ||
(Optional, <<time-units, time units>>) | ||
Specifies the period of time to wait for | ||
a connection to the master node. If no response is received before the timeout | ||
expires, the request fails and returns an error. Defaults to `30s`. | ||
+ | ||
IMPORTANT: You can also specify this value using the `master_timeout` query | ||
parameter. If both parameters are specified, only the query parameter is used. | ||
|
||
`timeout`:: | ||
(Optional, <<time-units, time units>>) | ||
Specifies the period of time to wait for | ||
a response. If no response is received before the timeout expires, the request | ||
fails and returns an error. Defaults to `30s`. | ||
+ | ||
IMPORTANT: You can also specify this value using the `timeout` query | ||
parameter. If both parameters are specified, only the query parameter is used. | ||
|
||
[[put-snapshot-repo-api-request-type]] | ||
`type`:: | ||
+ | ||
-- | ||
(Required, string) | ||
Repository type. | ||
|
||
.Valid values for `type` | ||
[%collapsible%open] | ||
==== | ||
`fs`:: | ||
Shared file system repository. Repositories of this type use a shared file | ||
system to store snapshots. This file system must accessible to all master and | ||
data nodes in the cluster. | ||
+ | ||
IMPORTANT: To register a shared file system repository, you must mount the same | ||
shared filesystem to the same location on all master and data nodes. This | ||
location must be registered in the `path.repo` setting on all master and data | ||
nodes in the cluster. | ||
+ | ||
See <<snapshots-filesystem-repository>>. | ||
|
||
[xpack]#`source`#:: | ||
Source-only repository. You can use source-only repositories to create minimal, | ||
source-only snapshots that take up to 50% less space on disk. | ||
+ | ||
Source-only snapshots are only supported if the <<mapping-source-field,`_source` | ||
field>> is enabled and no | ||
<<request-body-search-source-filtering,source-filtering>> is applied. | ||
+ | ||
WARNING: Source-only snapshots contain stored fields and index metadata. They do | ||
not include index or doc values structures and are not searchable when restored. | ||
After restoring a source-only snapshot, you must <<docs-reindex,reindex>> the | ||
data into a new index. | ||
+ | ||
See <<snapshots-source-only-repository>>. | ||
|
||
`url`:: | ||
URL repository. Repositories of this type are read-only | ||
for the cluster. This means the cluster can retrieve or restore snapshots from | ||
the repository but cannot write or create snapshots in it. | ||
+ | ||
You can use URL repositories as an alternative way to give a cluster read-only | ||
access to a shared file system (`fs`) repository. | ||
+ | ||
See <<snapshots-read-only-repository>>. | ||
==== | ||
|
||
More repository types are available through these official | ||
plugins: | ||
|
||
* {plugins}/repository-s3.html[repository-s3] for S3 repository support | ||
* {plugins}/repository-hdfs.html[repository-hdfs] for HDFS repository support in | ||
Hadoop environments | ||
* {plugins}/repository-azure.html[repository-azure] for Azure storage | ||
repositories | ||
* {plugins}/repository-gcs.html[repository-gcs] for Google Cloud Storage | ||
repositories | ||
-- | ||
|
||
`settings`:: | ||
+ | ||
-- | ||
(Required, object) | ||
Contains settings for the repository. Valid properties for the `settings` object | ||
depend on the repository type, set using the | ||
<<put-snapshot-repo-api-request-type,`type`>> parameter. | ||
|
||
.Valid `settings` properties for `fs` repositories | ||
[%collapsible%open] | ||
==== | ||
`chunk_size`:: | ||
(Optional, <<byte-units,byte value>>) | ||
Maximum size of files in snapshots. In snapshots, files larger than this are | ||
broken down into chunks of this size or smaller. Defaults to `null` (unlimited | ||
file size). | ||
|
||
`compress`:: | ||
(Optional, boolean) | ||
If `true`, metadata files, such as index mappings and settings, are compressed | ||
in snapshots. Data files are not compressed. Defaults to `true`. | ||
|
||
`location`:: | ||
(Required, string) | ||
Location of the shared filesystem used to store and retrieve snapshots. This | ||
location must be registered in the `path.repo` setting on all master and data | ||
nodes in the cluster. | ||
|
||
`max_restore_bytes_per_sec`:: | ||
(Optional, <<byte-units,byte value>>) | ||
Maximum snapshot restore rate per node. Defaults to `40mb` per second. | ||
|
||
`max_snapshot_bytes_per_sec`:: | ||
(Optional, <<byte-units,byte value>>) | ||
Maximum snapshot creation rate per node. Defaults to `40mb` per second. | ||
|
||
`readonly`:: | ||
(Optional, boolean) | ||
If `true`, the repository is read-only. The cluster can retrieve and restore | ||
snapshots from the repository but not write to the repository or create | ||
snapshots in it. | ||
+ | ||
If `false`, the cluster can write to the repository and create snapshots in it. | ||
Defaults to `false`. | ||
+ | ||
[TIP] | ||
===== | ||
If you register the same snapshot repository with multiple clusters, only | ||
one cluster should have write access to the repository. Having multiple clusters | ||
write to the repository at the same time risks corrupting the contents of the | ||
repository. | ||
|
||
Only a cluster with write access can create snapshots in the repository. All | ||
other clusters connected to the repository should have the `readonly` parameter | ||
set to `true`. This means those clusters can retrieve or restore snapshots from | ||
the repository but not create snapshots in it. | ||
===== | ||
==== | ||
|
||
.Valid `settings` properties for `source` repositories | ||
[%collapsible%open] | ||
==== | ||
`delegate_type`:: | ||
(Optional, string) | ||
Delegated repository type. For valid values, see the | ||
<<put-snapshot-repo-api-request-type,`type` parameter>>. | ||
+ | ||
`source` repositories can use `settings` properties for its delegated repository | ||
type. See <<snapshots-source-only-repository>>. | ||
|
||
==== | ||
|
||
.Valid `settings` properties for `url` repositories | ||
[%collapsible%open] | ||
==== | ||
`url`:: | ||
(Required, string) | ||
URL location of the root of the shared filesystem repository. The following | ||
protocols are supported: | ||
|
||
* `file` | ||
* `ftp` | ||
* `http` | ||
* `https` | ||
* `jar` | ||
|
||
URLs using the `file` protocol must point to the location of a shared filesystem | ||
accessible to all master and data nodes in the cluster. This location must be | ||
registered in the `path.repo` setting. | ||
|
||
URLs using the `http`, `https`, or `ftp` protocols must be whitelisted in the | ||
`repositories.url.allowed_urls` setting. This setting supports wildcards in the | ||
place of a host, path, query, or fragment in the URL. | ||
==== | ||
-- | ||
|
||
`verify`:: | ||
(Optional, boolean) | ||
If `true`, the request verifies the repository is functional on all master and | ||
data nodes in the cluster. If `false`, this verification is skipped. Defaults to | ||
`true`. | ||
+ | ||
You can manually perform this verification using the | ||
<<snapshots-repository-verification,verify snapshot repository API>>. | ||
+ | ||
IMPORTANT: You can also specify this value using the `verify` query | ||
parameter. If both parameters are specified, only the query parameter is used. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we just leave this out of the documentation maybe? This is a really useless setting at this point. Having it documented has led to some confusion in the past and I can't see what a user would get out of setting this to
false
.@DaveCTurner @tlrx any thoughts on this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll wait for more feedback, but if we remove this, I'll also remove the reference here:
https://www.elastic.co/guide/en/elasticsearch/reference/master/snapshots-register-repository.html#snapshots-filesystem-repository