5.X/8. Breaking Changes

v5.0-13. Packaging

drscg 2017. 10. 22. 13:21

APT/YUM repository URL changesedit

The repository for apt and yum packages has changed from https://packages.elastic.co to https://artifacts.elastic.co/.

apt와 yum package repository가 https://packages.elastic.co 에서 https://artifacts.elastic.co/로 변경되었다.

Full details can be found in Installing Elasticsearch.

자세한 사항은 Installing Elasticsearch에서 알 수 있다.

Default logging using systemd (since Elasticsearch 2.2.0)edit

In previous versions of Elasticsearch, the default logging configuration routed standard output to /dev/null and standard error to the journal. However, there are often critical error messages at startup that are logged to standard output rather than standard error and these error messages would be lost to the nether. The default has changed to now route standard output to the journal and standard error to inherit this setting (these are the defaults for systemd). These settings can be modified by editing the elasticsearch.service file.

Elasticsearch의 이전 버전에서, 기본 logging 설정은 표준 출력(standard output)을 /dev/null 로 전달하고 표준 오류(standard error)를 journal로 전달했다. 그러나, 시작 시에 가끔씩 나타나는 치명적인 error 메세지가 있는데, 표준 오류가 아닌 표준 출력에 기록되어, 이들 error 메세지를 잃어버리게 된다. 이제 기본값은 표준 출력을 journal로 전달하고 표준 오류는 이 설정을 상속하도록 변경되었다(이것이 systemd의 기본값이다). 이러한 설정은 elasticsearch.service 파일을 수정하여 변경할 수 있다.

Longer startup timesedit

In Elasticsearch 5.0.0 the -XX:+AlwaysPreTouch flag has been added to the JVM startup options. This option touches all memory pages used by the JVM heap during initialization of the HotSpot VM to reduce the chance of having to commit a memory page during GC time. This will increase the startup time of Elasticsearch as well as increasing the initial resident memory usage of the Java process.

Elasticsearch 5.0.0 에서 -XX:+AlwaysPreTouch flag가 JVM 시작 option에 추가되었다. 이 option은 HotSpot VM을 초기화하는 동안 JVM heap에 사용되는 모든 memory page를 터치하여, GC 시간 동안 memory page를 commit할 필요를 줄인다. 이렇게 하면 Elasticsearch의 시작 시간이 늘어나고 Java process의 초기 상주 memory 사용량이 늘어난다.

JVM optionsedit

Arguments to the Java Virtual Machine have been centralized and moved to a new configuration file jvm.options. This centralization allows for simpler end-user management of JVM options.

JVM(Java Virtual Machine)의 argument가 중앙 집중화되어, 새로운 구성 파일 jvm.options 로 이동되었다. 이러한 중앙 집중화를 통해 JVM option을 보다 간단하게 최종 사용자가 관리할 수 있다.

This migration removes all previous mechanisms of setting JVM options via the environment variables ES_MIN_MEMES_MAX_MEMES_HEAP_SIZEES_HEAP_NEWSIZEES_DIRECT_SIZEES_USE_IPV4,ES_GC_OPTSES_GC_LOG_FILE, and JAVA_OPTS.

이 마이그레이션은, 환경 변수 ES_MIN_MEMES_MAX_MEMES_HEAP_SIZEES_HEAP_NEWSIZE,ES_DIRECT_SIZEES_USE_IPV4ES_GC_OPTSES_GC_LOG_FILEJAVA_OPTS 을 통해, JVM option을 설정하는 이전의 모든 mechanism을 제거한다.

The default location for this file is in config/jvm.options if installing from the tar or zip distributions, and /etc/elasticsearch/jvm.options if installing from the Debian or RPM packages. You can specify an alternative location by setting the environment variable ES_JVM_OPTIONS to the path to the file.

이 파일의 기본 위치는 tar 또는 zip 배포판으로 설치하는 경우 config/jvm.options`에 있으며, Debian 또는 RPM package에서 설치할 경우 `/etc/elasticsearch/jvm.options 에 있다. ES_JVM_OPTIONS 환경 변수를 파일의 경로로 설정하여 대체 위치를 지정할 수 있다.

Thread stack size for the Windows serviceedit

Previously when installing the Windows service, the installation script would configure the thread stack size (this is required for the service daemon). As a result of moving all JVM configuration to thejvm.options file, the service installation script no longer configures the thread stack size. When installing the Windows service, you must configure thread stack size. For additional details, see the installation docs.

이전에는 Windows service를 설치할 때 설치 script가 thread stack size를 설정했다(service daemon에는 필수임). 모든 JVM configuration을 jvm.options file로 이동한 결과, service 설치 script는 더 이상 thread stack size를 설정하지 않습니다. Windows service를 설치할 때 thread stack size를 설정해야 한다. 자세한 내용은 installation docs를 참조하자.

/bin/bash is now requirededit

Previously, the scripts used to start Elasticsearch and run plugin commands only required a Bourne-compatible shell. Starting in Elasticsearch 5.0.0, the bash shell is now required and /bin/bash is a hard-dependency for the RPM and Debian packages.

이전에는 Elasticsearch를 시작하고 plugin command을 실행하는 데 사용된 script는 Bourne 호환 shell만 필요했다. Elasticsearch 5.0.0 부터는, bash shell이 필요하며 /bin/bash 는 RPM과 Debian package의 hard-dependency이다.

Environmental Settingsedit

Previously, Elasticsearch could be configured via environment variables in two ways: first by using the placeholder syntax ${env.ENV_VAR_NAME} and the second by using the same syntax without the env prefix: ${ENV_VAR_NAME}. The first method has been removed from Elasticsearch.

이전에, Elasticsearch는 두 가지 방법으로 환경 변수를 통해 설정될 수 있었다 먼저 ${env.ENV_VAR_NAME}이라는 placeholder syntax을 사용하는 것이고, 두 번째 방법은 env 접두어없이(${ENV_VAR_NAME}) 동일한 구문을 사용하는 것이다. 첫 번째 방법은 Elasticsearch에서 제거되었다.

Additionally, it was previously possible to set any setting in Elasticsearch via JVM system properties. This has been removed from Elasticsearch.

또한, 이전에는 JVM system property를 통해 Elasticsearch에서 설정을 설정할 수 있었다. 이것은 Elasticsearch에서 제거되었다.

Dying on fatal errorsedit

Previous versions of Elasticsearch would not halt the JVM if out of memory errors or other fatal errors were encountered during the life of the Elasticsearch instance. Because such errors leave the JVM in a questionable state, the best course of action is to halt the JVM when this occurs. Starting in Elasticsearch 5.x, this is now the case. Operators should consider configuring their Elasticsearch services so that they respawn automatically in the case of such a fatal crash.

이전 버전의 Elasticsearch는 Elasticsearch instance가 동작하는 동안 메모memory리 부족 error 또는 기타 치명적인 error가 발생한 경우 JVM을 중지하지 않았다. 이러한 오류로 인해 JVM이 의심스러운 상태에 빠지기 때문에, 가장 좋은 방법은 이런 상황이 발생할 경우 JVM을 중지하는 것이다. Elasticsearch 5.x 부터는 이 경우이다. 운영자는 이러한 치명적인 crash의 경우, 자동으로 restart할 수 있도록 Elasticsearch service를 구성하는 것을 고려해야 한다.


'5.X > 8. Breaking Changes' 카테고리의 다른 글

v5.0-11. CAT API changes  (0) 2017.10.22
v5.0-12. Java API changes  (0) 2017.10.22
v5.0-14. Plugin changes  (0) 2017.10.22
v5.0-15. Filesystem related changes  (0) 2017.10.22
v5.0-16. Path to data on disk  (0) 2017.10.22