mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-02-05 20:48:22 +00:00
Until now we had a cloud-azure plugin which is providing 3 distinct features: * discovery on Azure * snapshot/restore on Aure * SMB store This commit splits the plugin by feature so people can use either one or the other or both features. Doc is updated accordingly.
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
|
|
----
|