elasticsearch節點資料遷移
最近筆者的es叢集有一個節點的機器有硬體問題,準備置換新機器,所以想把這臺機器上的所有es資料都遷移到別的節點上面(一臺機器5T左右的資料,生產網段不考慮物理遷移)。
下面講一下遷移的步驟及方法:
- 由於我是單機器跑兩個節點,所以我的節點遷移是分開做的(怕產生太多流量)
首先遷移一個節點
PUT _cluster/settings
{
"transient" : {
"cluster.routing.allocation.exclude._name" : " ES5_DATANODE23 "
}
} -
觀察叢集,直至沒有任何分片操作。
遷移第二個節點:
PUT _cluster/settings
{
"transient" : {
"cluster.routing.allocation.exclude._name" : "ES5_DATANODE3,ES5_DATANODE23"
}
}
觀察叢集,直至沒有任何分片操作。
到這裡該臺機器應該是沒有任何分片了 -
因為筆者的index是保留歷史15天,但是以上的操作是不會操作關掉的index的,所以防止新的index,繼續在這臺機器上產生分片,需做以下操作
PUT _cluster/settings
{
"transient" : {
"cluster.routing.allocation.exclude._ip" : "127.0.0.1 "(填寫機器ip地址)
}
} -
15天后取消該設定,同時下線該機器,value設定為空即可
PUT _cluster/settings
{
"transient" : {
"cluster.routing.allocation.exclude._name" : " "
}
}