123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 |
- [role="xpack"]
- [[ilm-migrate-to-data-tiers]]
- === Migrate to data tiers routing API
- ++++
- <titleabbrev>Migrate indices and ILM policies to data tiers routing</titleabbrev>
- ++++
- Switches the indices and ILM policies from using custom node attributes and
- <<shard-allocation-filtering, attribute-based allocation filters>> to using <<data-tiers, data tiers>>, and
- optionally deletes one legacy index template.
- Using node roles enables {ilm-init} to <<data-tier-migration, automatically move the indices>> between
- data tiers.
- Migrating away from custom node attributes routing can be manually performed
- as indicated in the <<migrate-index-allocation-filters, Migrate index allocation
- filters to node roles>> page.
- This API provides an automated way of executing three out of the four manual steps listed
- in the <<data-tier-migration, migration guide>>:
- . <<stop-setting-custom-hot-attribute, Stop setting the custom hot attribute on new indices>>
- . <<remove-custom-allocation-settings, Remove custom allocation settings from existing {ilm-init} policies>>
- . <<set-tier-preference, Replace custom allocation settings from existing indices>> with the corresponding <<data-tier-shard-filtering,tier preference>>
- [[ilm-migrate-to-data-tiers-request]]
- ==== {api-request-title}
- `POST /_ilm/migrate_to_data_tiers`
- The API accepts an optional body that allows you to specify:
- - The legacy index template name to delete. Defaults to none.
- - The name of the custom node attribute used for the indices and ILM policies allocation filtering.
- Defaults to `data`.
- [[ilm-migrate-to-data-tiers-prereqs]]
- ==== {api-prereq-title}
- * {ilm-init} must be stopped before performing the migration. Use the <<ilm-stop-request, stop ILM API>>
- to stop {ilm-init} and <<ilm-get-status-request, get status API>> to wait until the
- reported operation mode is `STOPPED`.
- [[ilm-migrate-to-data-tiers-query-params]]
- ==== {api-query-parms-title}
- `dry_run`::
- (Optional, Boolean)
- If `true`, simulates the migration from node attributes based allocation filters to data tiers, but does
- not perform the migration. This provides a way to retrieve the indices and ILM policies that need to be
- migrated.
- Defaults to `false`.
- [[ilm-migrate-to-data-tiers-example]]
- ==== {api-examples-title}
- The following example migrates the indices and ILM policies away from defining
- custom allocation filtering using the `custom_attribute_name` node attribute, and
- deletes legacy template with name `global-template` if it exists in the system.
- ////
- [source,console]
- ----
- POST _ilm/stop
- PUT _template/global-template
- {
- "index_patterns": ["migrate-to-tiers-*"],
- "settings": {
- "index.routing.allocation.require.custom_attribute_name": "hot"
- }
- }
- PUT warm-index-to-migrate-000001
- {
- "settings": {
- "index.routing.allocation.require.custom_attribute_name": "warm"
- }
- }
- PUT _ilm/policy/policy_with_allocate_action
- {
- "policy": {
- "phases": {
- "warm": {
- "actions": {
- "allocate": {
- "require": {
- "custom_attribute_name": "warm"
- }
- }
- }
- },
- "delete": {
- "min_age": "30d",
- "actions": {
- "delete": {}
- }
- }
- }
- }
- }
- ----
- // TESTSETUP
- [source,console]
- ----
- DELETE warm-index-to-migrate-000001
- DELETE _ilm/policy/policy_with_allocate_action
- POST _ilm/start
- ----
- // TEARDOWN
- ////
- [source,console]
- ----------------------------------------------------------------
- POST /_ilm/migrate_to_data_tiers
- {
- "legacy_template_to_delete": "global-template",
- "node_attribute": "custom_attribute_name"
- }
- ----------------------------------------------------------------
- If the request succeeds, a response like the following will be received:
- [source,console-result]
- ------------------------------------------------------------------------------
- {
- "dry_run": false,
- "removed_legacy_template":"global-template", <1>
- "migrated_ilm_policies":["policy_with_allocate_action"], <2>
- "migrated_indices":["warm-index-to-migrate-000001"] <3>
- }
- ------------------------------------------------------------------------------
- <1> Shows the name of the legacy index template that was deleted. This will be missing
- if no legacy index template was deleted.
- <2> The ILM policies that were updated.
- <3> The indices that were migrated to <<data-tier-shard-filtering,tier preference>> routing.
|