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/response/714

06. Repositories

Elastic Search/02. Setup 2015/05/11 19:09 용비

APT YUM 기반 배포판을 이용할 있도록 Repositories 제공하고 있다. Source 아니라 Elasticsearch 빌드한 Binary package만을 제공한다. Major 버전을 통한 우발적인 upgrade 피하기 위해서 major 버전별로 url 나누었다. 0.90.x 버전은 전부 0.90으로, 1.0.x 1.0으로, 1.1.x 1.1 같은 숫자로 표시한다.


Elasticsearch 서명 키로는 PGP key D88E42B4 사용한다.

Fingerprint 다음과 같다.

4609 5ACC 8548 582C 1A26 99A9 D27D 666C D88E 42B4

http://pgp.mit.edu 에서 사용할 있다.


APT

Public Singing Key 다운로드 하고 설치한다.


wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -


/etc/apt/source.list 파일에 repositories 정의를 추가한다.


echo "deb http://packages.elastic.co/elasticsearch/1.5/debian stable main" | sudo tee -a /etc/apt/sources.list


[WARINIG]

Elasticsearch repositories 추구하기 위해서 echo method 사용하라. Source 제공하지 않기 때문에 Add-apt-repository deb-src 사용하지 말라. Deb-src entry 추가했다면, 다음과 같은 error 발생할 것이다.

 

Unable to find expected entry 'main/source/Sources' in Release file (Wrong sources.list entry or malformed file)

Just delete the deb-src entry from the /etc/apt/sources.list file and the installation should work as expected.


Repository 준비되었다면 apt-get update 실행하라. 다음과 같이 설치할 있다.

sudo apt-get update && sudo apt-get install elasticsearch


부팅할 자동으로 Elasticsearch 실행하도록 설정하려면 다음과 같이 하면 된다.

sudo update-rc.d elasticsearch defaults 95 10


YUM


public Signing Key
다운로드 받아서 설치한다.


rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch


/etc/yum.repos.d/ 디렉토리에 .repo 확장자를 가진 파일을 추가하라. 예를 들어 elasticsearch.repo 파일을 만든다.


[elasticsearch-1.5]
name
=Elasticsearch repository for 1.5.x packages
baseurl
=http://packages.elastic.co/elasticsearch/1.5/centos
gpgcheck
=1
gpgkey
=http://packages.elastic.co/GPG-KEY-elasticsearch
enabled
=1


그러면 repository 사용할 준비가 것이다. 이제 설치할 있다.


yum install elasticsearch


부팅 시에 elasticsearch 자동으로 시작하도록 설정해 보자. SysV init 사용한 배포판이라면 다음과 같이 실행할 있다.


chkconfig --add elasticsearch


[WARNING]

CentOS5 같은 RPM v3 사용한 예전 rpm 기반 배포판이라면 repositories 동작하지 않는다.


아니면 systemd 사용하여 설치할 있다.


sudo /bin/systemctl daemon-reload
sudo
/bin/systemctl enable elasticsearch.service

받은 트랙백이 없고, 댓글이 없습니다.

댓글+트랙백 RSS :: http://www.yongbi.net/rss/response/712

설치된 이후 폴더 구조는 다음과 같다.


Type

Description

Default Location

Setting

home

Elasicsearch 설치


path.home

bin

Elasticsearch 노드를 시작할 있는 binary script 있는 폴더

{path.home}/bin


conf

Elasticsearch.yml 포함한 설정 파일이 있는 폴더

{path.home}/config

path.conf

data

노드에 할당된 index/shard 데이터 파일이 있는 폴더.

여러 위치에 있을 있음

{path.home}/data

path.data

logs

로그 파일이 있는 폴더

{path.home}/logs

path.logs

plugins

Plugin 파일이 위치한 폴더. 플러그인은 subdirectory 갖고 있음.

{path.home}/plugins

path.plugins


Multiple data location stripe를 허용한다. Striping 간단하게 하나의 location 모든 파일을 위치시킬 수도 있고, index.store.distributor 값에 근거해서 파일 위치를 결정할 수도 있다.

  • least_used (default) : 항상 가장 적합한 space directory 선택한다.
  • random : 랜덤하게 directory 선택한다. 특정 디렉토리가 선택될 가능성은 디렉토리에서 이용할 있는 space 비례한다. , 이용가능한 space 많을수록 선택될 가능성이 높아진다.

동일한 데이터를 여러 복사하는 것이 아니라, RAID 0 같음에 유의하라. 간단하지만, RAID 사용하여 복잡하게 구성하고 싶지 않은 사람들에게 좋은 솔루션이 있다. 다음과 같이 설정하면 된다.


path.data: /mnt/first, /mnt/second


혹은 다음과 같이 array 형태로 설정할 수도 있다.


path.data: ["/mnt/first", "/mnt/second"]


Default Paths

아래 값들은 특별히 수정하지 않았다면, elasticsearch 사용하는 default path들이다.


deb and rpm

Type

Description

Location Debian/Ubuntu

Location RHEL/CentOS

home

Elasticsearch 설치

/usr/share/elasticsearch

/usr/share/elasticsearch

bin

노드를 실행할 있는 elasticsearch 포함한

binary script 있는 폴더

/usr/share/elasticsearch/bin

/usr/share/elasticsearch/bin

conf

Elasticsearch.yml/logging.yml 설정 파일이 있는 폴더

/etc/elasticsearch

/etc/elasticsearch

conf

Heap size, file descriptor 포함한 환경 변수 설정 파일이 있는 폴더

/etc/default/elasticsearch

/etc/sysconfig/elasticsearch

data

노드에 할당된 index/shard data 파일이 위치한 폴더

/var/lib/elasticsearch/data

/var/lib/elasticsearch

logs

로그 파일 위치

/var/log/elasticsearch

/var/log/elasticsearch

plugins

플러그인 파일 위치. 플러그인은 하위에 폴더를 포함하고 있다.

/usr/share/elasticsearch/plugins

/usr/share/elasticsearch/plugins


zip and tar.gz

Type

Description

Location

home

Elasticsearch 설치

{extract.path}

bin

노드를 실행할 있는 elasticsearch 포함한

binary script 있는 폴더

{extract.path}/bin

conf

Elasticsearch.yml/logging.yml 설정 파일이 있는 폴더

{extract.path}/config

conf

Heap size, file descriptor 포함한 환경 변수 설정 파일이 있는 폴더

{extract.path}/config

data

노드에 할당된 index/shard data 파일이 위치한 폴더

{extract.path}/data

logs

로그 파일 위치

{extract.path}/logs

plugins

플러그인 파일 위치. 플러그인은 하위에 폴더를 포함하고 있다.

{extract.path}/plugins

받은 트랙백이 없고, 댓글이 없습니다.

댓글+트랙백 RSS :: http://www.yongbi.net/rss/response/711