Elasticsearch는 단계적인 규칙으로 이루어진 upgrade process를 이용하여 서비스 중단 없이 upgrade될 수 있다. 이 섹션에서는 어떻게 단계적으로 upgrade를 수행하거나 재시작할 수 있는지를 살펴본다. Rolling upgrade를 설치하고자 하는 elasticsearch release에서 지원하는지 아닌지 알기 위해서 다음 표를 활용하라.
Upgrade From |
Upgrade To |
Supported Upgrade Type |
0.90.x |
1.x |
Restart Upgrade |
< 0.90.7 |
0.90.x |
Restart Upgrade |
>= 0.90.7 |
0.90.x |
Rolling Upgrade |
1.x |
1.x |
Rolling Upgrade |
[TIP]
Elasticsearch를 upgrade하기 전에 breaking changes (http://www.elastic.co/guide/en/elasticsearch/reference/current/breaking-changes.html) docs를 통해 컨설팅을 받아보는 것도 좋은 생각이다.
Backup Your Data!
Upgarde를 수행하기 전에 system의 data를 backup 하는 것이 좋다. Upgrade과정 중에 오류가 발생해서 원래 상태로 roll back하는데 필요하다. Upgrade는 때로 Elasticsearch가 index file에 접근하는데 필요한 Lucene libraries를 upgrade하기도 한다. 그리고 한번 Lucene이 새로운 버전으로 upgrade되고 나면, 이전 버전의 elasticsearch release에서는 현재 Lucene 버전으로 접근할 수 없다.
0.90.x 이전 버전
0.90.x system을 백업하고, index flushing을 하지 않도록 한다. 백업 과정에서 index를 disk에 flush하지 않도록 방지한다.
$ curl -XPUT 'http://localhost:9200/_all/_settings' -d '{
"index": {
"translog.disable_flush": "true"
}
}'
그리고 재할당을 하지 않도록 한다. 백업 과정 중에 하나의 노드로부터 다른 노드로 data를 옮기는 것을 방지한다.
$ curl -XPUT 'http://localhost:9200/_cluster/settings' -d '{
"transient" : {
"cluster.routing.allocation.disable_allocation":
"true"
}
}'
재할당과 index flush를 하지 않도록 설정한 다음에, 선호하는 백업 방식(tar, storage array snapshot, backup software)으로 Elasticsearch Data를 백업한다. 백업이 완료되고 더 이상 Elasticsearch data path에서 읽을 데이터가 없으면 재할당과 index flush를 가능하도록 설정한다.
$ curl -XPUT 'http://localhost:9200/_all/_settings' -d '{
"index": {
"translog.disable_flush": "false"
}
}'
$ curl -XPUT 'http://localhost:9200/_cluster/settings' -d '{
"transient" : {
"cluster.routing.allocation.disable_allocation":
"false"
}
}'
1.0 이후 버전
1.0 이후 버전을 백업하기 위해서는 snapshot 기능을 사용하여 간단하게 할 수 있다. 자세한 방법은 backup and restore with snapshots (http://www.elastic.co/guide/en/elasticsearch/reference/current/modules-snapshots.html) 을 통해서 알 수 있다.
댓글을 달아 주세요
댓글 RSS 주소 : http://www.yongbi.net/rss/comment/714