Cloudera Embedded Container Service(ECS) 위에 CDW · CDE · CAI 를 올릴 때 서버를 주문하기 전에 정해야 하는 것은 두 가지다. 디스크를 몇 장 넣을 것인가, 그리고 어디에 RAID 를 걸 것인가. 하드웨어 견적이 확정되면 뒤에 바꾸기 어려우므로 설치 전에 결론을 내야 한다.
ECS 워커 노드의 데이터 디스크에 RAID1 을 거는 것은 권장되지 않는다. 데이터 보호를 담당하는 계층이 이미 위에 있기 때문이다.
반대로 OS 디스크는 RAID1 로 묶는다. 부팅이 안 되는 노드는 쿠버네티스가 대신해 줄 수 있는 것이 없고, 재설치 시간이 그대로 장애 시간이 된다.
디스크를 몇 장 넣든 다음 네 갈래는 마운트를 나눈다. 한 파일시스템에 몰아 두면 이미지 하나가 캐시 영역까지 밀어내면서 노드 전체가 DiskPressure 로 넘어간다.
| 마운트 | 담는 것 | RAID |
|---|---|---|
/ |
OS, kubelet | RAID1 |
/var/lib/docker (또는 /var/lib/containerd) |
컨테이너 이미지, writable layer | 걸지 않는다 |
/var/lib/longhorn |
Longhorn 이 쓰는 블록 저장 영역. CDW 메타데이터를 비롯한 PVC 가 여기에 앉는다 | 걸지 않는다 |
/data/cdw_cache |
CDW 의 쿼리 캐시와 임시 결과, shuffle | 걸지 않는다 |
Cloudera 문서는 위 네 갈래를 나누라고 적지만, 물리 디스크를 네 장 꽂으라는 뜻은 아니다. 큰 SSD 한 장을 LVM 으로 갈라 마운트를 나눠도 요구사항은 만족한다. 다만 CDW 캐시는 I/O 가 가장 몰리는 자리이므로, 여유가 있으면 이 영역만 별도 디스크로 떼는 편이 낫다.
물리 디스크를 넉넉히 쓸 수 있을 때의 배치다. 실제 용량은 워크로드에 따라 달라지므로 아래는 출발점으로만 본다. 설치 전에 해당 버전의 Cloudera ECS 설치 요구사항 문서에서 최소 용량을 다시 확인한다 (확인 필요).
OS SAS 600GB x 2 RAID1 -> /
docker SSD 600GB x 1 JBOD -> /var/lib/docker
cdw_cache SSD 960GB x 1 JBOD -> /data/cdw_cache
longhorn SSD 960GB x 1 JBOD -> /var/lib/longhorn
절약해야 한다면 OS 2장 + 데이터 1장(2TB 이상)으로 줄이고 데이터 디스크를 LVM 으로 셋으로 가른다. 이보다 더 줄이면 CDW 나 CDE 를 올렸을 때 캐시 영역이 먼저 찬다.
컨테이너 이미지 풀, shuffle, 쿼리 캐시는 모두 임의 접근이 많은 작업이라 SAS HDD 로는 버티기 어렵다. 데이터 영역은 SSD 또는 NVMe 로 잡는다. OS 영역은 SAS 로 두어도 무방하다.