[Elasticsearch] 운영 환경에서 노드 디스크 교체 작업 가이드
2019. 8. 30. 17:54ㆍElasticsearch
Elasticsearch 운영 환경에서 다양한 이유로 노드의 디스크를 교체를 해야 할 때가 있음
대략적인 순서는 다음과 같음
1. 클러스터 내 모든 인덱스 close
curl -XPOST 'IP:PORT/INDEX*/_close'
2. 노드 shutdown
kill -SIGTERM [node process ID]
3. 시스템 정지
halt -p
※ 시스템 정지 전에, 빠른 재부팅을 위해 /etc/fstab 내 교체할 디스크에 대해 주석처리해두면 좋다(#UUID=...)
그렇지 않을 경우 부팅 시 찾을 수 없는 디스크를 찾느라 오래걸릴 수 있다고 함
4. 디스크 교체 및 RAID 설정
5. 부팅 후 디스크 인식, 포맷, 마운트 작업
(여기서부터는 본인의 작업 환경에 따른 파티션 및 옵션 등을 사용)
2TB 이하 디스크의 경우 fdisk 명령어를 사용할 수 있으나 초과하는 경우 parted 명령어를 사용해야 함
파티션 셋팅
parted /dev/sdb
(parted)mklabel gpt
(parted)mkpart primary ext4 0% 100%
(parted)print <- 정상적으로 설정되었는지 확인
(parted)quit
파티션 셋팅 확인
fdisk /dev/sdb
Command (m for help):p
포맷
mkfs.ext4 /dev/sdb1
마운트
mkdir /data <- 마운트할 폴더 생성
mount /dev/sdb1 /data
df -h <- 마운트 상태 확인
부팅 마운트 설정 추가
blkid /dev/sdb1 <- UUID 확인 후
vi /etc/fstab
UUID=~~~~ /data ext4 defaults 0 0
6. 재부팅
reboot
7. elasticsearch 설정 파일 수정
마운트 디스크나 기타 다른 설정에 변경이 있다면 elasticsearch.yml 파일에서 수정
8. 노드 start
su - elasticsearch
ES_PATH_CONF=/.../config/A /.../bin/elasticsearch -d -p
9. close했던 인덱스 open
curl -X POST "IP:PORT/INDEX/_open?pretty"
명령어가 있지만 ..
데이터가 많은 경우 하나씩 open하면 계속 기다리면서 해야 하고,
한꺼번에 다 open하면 과도한 I/O 및 인덱싱 부하가 발생하므로 그렇게 하지 말라고 공식 문서에서는 가이드함
적당한 스크립트를 작성해 하나씩 open하는 것이 좋겠다 ..
'Elasticsearch' 카테고리의 다른 글
[Elasticsearch] 디스크 기반 shard allocation (0) | 2019.09.02 |
---|---|
[Elasticsearch] Cluster & Node (0) | 2019.08.29 |
[Elasticsearch] 특정 shard가 assigned되지 않고 다른 shard들이 relocate를 반복하는 현상 (0) | 2019.08.28 |
[Elasticsearch] 스냅샷이 지워지지 않는 경우 (0) | 2019.08.16 |
[Elasticsearch] 기본개념 이해하기 (0) | 2019.08.16 |