@@ -18,16 +18,21 @@ to ensure that each node is consistently assigned to the same data path.
1818[float]
1919==== Change of data folder layout
2020
21- While data was previously stored in `$DATA_DIR/nodes/$nodeOrdinal`, it
22- has now, with the removal of the `node.max_local_storage_nodes` setting,
23- moved directly to `$DATA_DIR`. Upon startup, Elasticsearch will check
24- to see if there is data in the old location, and automatically move it
25- to the new location. This automatic migration only works if `$nodeOrdinal`
26- is 0, i.e., multiple node instances have not previously run on the same
27- data path, which required for `node.max_local_storage_nodes` to explicitly
28- be configured. In case where the automatic migration cannot be done due to
29- ambiguity of `$nodeOrdinal` subfolders, the data path (i.e. `path.data`
30- setting) can either be adjusted for each node instance to one of the
31- `$nodeOrdinal` subfolders, or preferably the contents of the `$nodeOrdinal`
32- subfolders can be manually moved into separate new folders, with `path.data`
33- then set to one of these folders for each node instance.
21+ Each node's data is now stored directly in the data directory set by the
22+ `path.data` setting, rather than in `${path.data}/nodes/0`, because the removal
23+ of the `node.max_local_storage_nodes` setting means that nodes may no longer
24+ share a data path. At startup, Elasticsearch will automatically migrate the data
25+ path to the new layout. This automatic migration will not proceed if the data
26+ path contains data for more than one node. You should move to a configuration in
27+ which each node has its own data path before upgrading.
28+
29+ If you try to upgrade a configuration in which there is data for more than one
30+ node in a data path then the automatic migration will fail and Elasticsearch
31+ will refuse to start. To resolve this you will need to perform the migration
32+ manually. The data for the extra nodes are stored in folders named
33+ `${path.data}/nodes/1`, `${path.data}/nodes/2` and so on, and you should move
34+ each of these folders to an appropriate location and then configure the
35+ corresponding node to use this location for its data path. If your nodes each
36+ have more than one data path in their `path.data` settings then you should move
37+ all the corresponding subfolders in parallel. Each node uses the same subfolder
38+ (e.g. `nodes/2`) across all its data paths.
0 commit comments