Distributed Systems
MinIO의 이레이저 코딩 구현
MinIO의 EC 구현을 인코딩/디코딩, 쿼럼, 복구 관점으로 설명합니다.
MinIO의 이레이저 코딩 구현
MinIO EC 구현의 핵심은 "데이터를 분산 저장하고, 일부 손실에서도 서비스 응답을 유지"하는 것입니다.
구조 요약
- 객체를 데이터/패리티 조각으로 분할
- 여러 디스크에 분산 저장
- 읽기 시 손실 조각을 동적으로 복구
중요한 설계 포인트
1) 쿼럼 기반 읽기/쓰기
필요한 최소 디스크 수를 충족할 때만 성공으로 판단합니다.
2) 병렬 I/O
조각 단위 병렬 처리로 대역폭을 활용합니다.
3) 힐링 연동
읽기/백그라운드 과정에서 손상 조각을 감지하면 복구 루틴과 연결됩니다.
운영 체크리스트
- 디스크 장애 시 읽기 지연 변화 모니터링
- EC 파라미터와 워크로드(오브젝트 크기) 적합성 검토
- 힐링 backlog 증가 시 즉시 원인 분석
결론
MinIO EC는 저장 절감을 위한 옵션이 아니라 서비스 가용성 전략입니다. 파라미터는 성능 테스트 결과로 결정해야 합니다.