156 lines
4.0 KiB
Plaintext
156 lines
4.0 KiB
Plaintext
|
[[repository-azure]]
|
||
|
=== Azure Repository Plugin
|
||
|
|
||
|
The Azure Repository plugin adds support for using Azure as a repository for
|
||
|
{ref}/modules-snapshots.html[Snapshot/Restore].
|
||
|
|
||
|
[[repository-azure-install]]
|
||
|
[float]
|
||
|
==== Installation
|
||
|
|
||
|
This plugin can be installed using the plugin manager:
|
||
|
|
||
|
[source,sh]
|
||
|
----------------------------------------------------------------
|
||
|
sudo bin/plugin install repository-azure
|
||
|
----------------------------------------------------------------
|
||
|
|
||
|
The plugin must be installed on every node in the cluster, and each node must
|
||
|
be restarted after installation.
|
||
|
|
||
|
[[repository-azure-remove]]
|
||
|
[float]
|
||
|
==== Removal
|
||
|
|
||
|
The plugin can be removed with the following command:
|
||
|
|
||
|
[source,sh]
|
||
|
----------------------------------------------------------------
|
||
|
sudo bin/plugin remove repository-azure
|
||
|
----------------------------------------------------------------
|
||
|
|
||
|
The node must be stopped before removing the plugin.
|
||
|
|
||
|
[[repository-azure-usage]]
|
||
|
==== Azure Repository
|
||
|
|
||
|
To enable Azure repositories, you have first to set your azure storage settings in `elasticsearch.yml` file:
|
||
|
|
||
|
[source,yaml]
|
||
|
----
|
||
|
cloud:
|
||
|
azure:
|
||
|
storage:
|
||
|
account: your_azure_storage_account
|
||
|
key: your_azure_storage_key
|
||
|
----
|
||
|
|
||
|
For information, in previous version of the azure plugin, settings were:
|
||
|
|
||
|
[source,yaml]
|
||
|
----
|
||
|
cloud:
|
||
|
azure:
|
||
|
storage_account: your_azure_storage_account
|
||
|
storage_key: your_azure_storage_key
|
||
|
----
|
||
|
|
||
|
The Azure repository supports following settings:
|
||
|
|
||
|
`container`::
|
||
|
|
||
|
Container name. Defaults to `elasticsearch-snapshots`
|
||
|
|
||
|
`base_path`::
|
||
|
|
||
|
Specifies the path within container to repository data. Defaults to empty
|
||
|
(root directory).
|
||
|
|
||
|
`chunk_size`::
|
||
|
|
||
|
Big files can be broken down into chunks during snapshotting if needed.
|
||
|
The chunk size can be specified in bytes or by using size value notation,
|
||
|
i.e. `1g`, `10m`, `5k`. Defaults to `64m` (64m max)
|
||
|
|
||
|
`compress`::
|
||
|
|
||
|
When set to `true` metadata files are stored in compressed format. This
|
||
|
setting doesn't affect index files that are already compressed by default.
|
||
|
Defaults to `false`.
|
||
|
|
||
|
`read_only`::
|
||
|
|
||
|
Makes repository read-only. coming[2.1.0] Defaults to `false`.
|
||
|
|
||
|
Some examples, using scripts:
|
||
|
|
||
|
[source,json]
|
||
|
----
|
||
|
# The simpliest one
|
||
|
PUT _snapshot/my_backup1
|
||
|
{
|
||
|
"type": "azure"
|
||
|
}
|
||
|
|
||
|
# With some settings
|
||
|
PUT _snapshot/my_backup2
|
||
|
{
|
||
|
"type": "azure",
|
||
|
"settings": {
|
||
|
"container": "backup_container",
|
||
|
"base_path": "backups",
|
||
|
"chunk_size": "32m",
|
||
|
"compress": true
|
||
|
}
|
||
|
}
|
||
|
----
|
||
|
// AUTOSENSE
|
||
|
|
||
|
Example using Java:
|
||
|
|
||
|
[source,java]
|
||
|
----
|
||
|
client.admin().cluster().preparePutRepository("my_backup3")
|
||
|
.setType("azure").setSettings(Settings.settingsBuilder()
|
||
|
.put(Storage.CONTAINER, "backup_container")
|
||
|
.put(Storage.CHUNK_SIZE, new ByteSizeValue(32, ByteSizeUnit.MB))
|
||
|
).get();
|
||
|
----
|
||
|
|
||
|
[[repository-azure-validation]]
|
||
|
===== Repository validation rules
|
||
|
|
||
|
According to the http://msdn.microsoft.com/en-us/library/dd135715.aspx[containers naming guide], a container name must
|
||
|
be a valid DNS name, conforming to the following naming rules:
|
||
|
|
||
|
* Container names must start with a letter or number, and can contain only letters, numbers, and the dash (-) character.
|
||
|
* Every dash (-) character must be immediately preceded and followed by a letter or number; consecutive dashes are not
|
||
|
permitted in container names.
|
||
|
* All letters in a container name must be lowercase.
|
||
|
* Container names must be from 3 through 63 characters long.
|
||
|
|
||
|
[[repository-azure-testing]]
|
||
|
==== Testing Azure
|
||
|
|
||
|
Integrations tests in this plugin require working Azure configuration and therefore disabled by default.
|
||
|
To enable tests prepare a config file `elasticsearch.yml` with the following content:
|
||
|
|
||
|
[source,yaml]
|
||
|
----
|
||
|
cloud:
|
||
|
azure:
|
||
|
storage:
|
||
|
account: "YOUR-AZURE-STORAGE-NAME"
|
||
|
key: "YOUR-AZURE-STORAGE-KEY"
|
||
|
----
|
||
|
|
||
|
Replaces `account`, `key` with your settings. Please, note that the test will delete all snapshot/restore related
|
||
|
files in the specified bucket.
|
||
|
|
||
|
To run test:
|
||
|
|
||
|
[source,sh]
|
||
|
----
|
||
|
mvn -Dtests.azure=true -Dtests.config=/path/to/config/file/elasticsearch.yml clean test
|
||
|
----
|