Upgrade procedure of elasticsearch from 1.x to 2.x


(sukanta) #1

Hi,

We have around 80 es clusters in our production environment and with terabytes of data .
Currently we are running with elasticsearch-1.4.1-SNAPSHOT version and now we are planning to update it with 2.1.1 version.

In 2.x version the Multiple path.data striping , In our es configuration we used multiple data directories like this
path.data: ["/mnt1/data/es","/mnt2/data/es"]

So while upgrading to 2.x es takes 2-3 hrs to become yellow state , I want to know what is the best way we can upgrade with out downtime. I have read the document that you guys mentioned in https://www.elastic.co/blog/key-point-to-be-aware-of-when-upgrading-from-elasticsearch-1-to-2

Like building new cluster with 2.x and Dual-feed source event data to both old and new cluster .

I want to know how can we dual feed data on both old and new cluster

Please give some suggestions

Thanks And Regards
Sukanta


(Nik Everett) #2

Dual feeding is something you'd have to implement application side.

I don't know if there is something you can do to speed up data.path work.
It might be nice to get a sense how much is data.path and how much is the
replicas drifting from the primary's data. 1.4.1 doesn't have synced flush
so even if you aren't writing data the new processes can't know that
the primary and the replica have the same data if their files are
different.

Another old school trick is to build a new replica that replaces the old
replica but has its bits copied from the primary before the restart. It
probably will shorten the time to yellow after the restart at the cost of
the same amount of time before the restart. You do it using the API to move
shards: just move the replicas off of the nodes they are on. After 1.7 this
kind of trickery should have no place due to synced flush. It won't do
anything for the data.path shuffling but that might not be all that long.


(system) #3