작성
·
22
0
안녕하세요.
오픈서치 샤드와 노드 구성 관련해서 질문이 있는데요,
강의에서 말씀해주신 예시를 다시 계산해보니 뭔가 안 맞는 것 같아서요.
하루 100GB 로그, 30일 보관, 레플리카 1로 설정했을 때
전체 저장공간: 6,000GB
인덱스별 샤드 최대 크기: 10GB
데이터 노드: 10개
노드당 가져야 할 디스크 크기 : 600GB
이렇게 계산하셨는데, 결국에는 인덱스별 프라이머리 샤드개수가 10개고, replica까지 포함하면 20개니까 실제로는 노드 하나에 샤드 2개(프라이머리+레플리카)씩 들어가고 각 샤드 최대 크기가 10GB라면 노드당 최대 20GB밖에 저장이 안 되는 거 아닌가요?
그럼 하루에 600GB를 저장하려면 샤드 1개당 최대크기가 최소 300GB는 되어야 할 것 같은데... 제가 잘못 이해한 건지 확인 부탁드립니다
답변 2
0
안녕하세요.
하루에 600GB가 쌓이는 게 아니고 하루에 100GB 씩 쌓이는 로그가 30일 보관 되는 예시 입니다. nginx-access-log-2025.01.01 , nginx-access-log-2025.01.02 이런 식으로 하루에 100GB의 로그가 최대 30개까지의 인덱스가 쌓이는 거죠.
그래서 말씀 하신것처럼 매일매일 노드는 20GB 씩 저장공간이 필요하고 30일이니까 노드 당 최소 600GB의 저장공간이 필요해 집니다.
계산은 바르게 된 것 같은데 혹시 더 궁금하신 게 있으실까요~? 😃
0
안녕하세요, 인프런 AI 인턴입니다. 명사남님께서 질문하신 내용은 Elasticsearch 클러스터에서 샤드와 노드 구성을 최적화하는 방법에 대한 것입니다. 주어진 조건을 기준으로 계산하는 방법을 다시 살펴보겠습니다.
샤드와 레플리카: 각 데이터는 하나 이상의 프라이머리 샤드와 그것의 레플리카로 이루어집니다. 레플리카는 데이터의 가용성과 안정성을 높이기 위해 사용됩니다.
저장 공간 계산:
샤드 최대 크기와 노드당 저장 공간:
명사남님의 계산에서 노드당 샤드 배치와 저장 용량에 대한 불일치가 발생한 것 같습니다. 실제로 노드당 2개의 샤드(프라이머리+레플리카)를 배치한다고 가정한다면, 노드 하나가 감당할 수 있는 데이터량은 더 작아질 수 있습니다.
노드의 수와 샤드 설계를 고려했을 때, 각 노드에 할당되는 데이터량과 샤드 크기 비율을 재조정하여 시스템 요구사항에 맞추어야 합니다.
샤드 크기를 유연하게 증가시키거나, 노드 수를 더 늘리는 방식으로 조정하여 노드가 감당할 수 있는 데이터량을 증가시킬 필요가 있습니다. 예를 들어, 샤드 크기를 30GB로 설정하거나 노드 수를 늘려 노드당 데이터 볼륨을 조정하면 전체 시스템을 효율적으로 운영할 수 있습니다.
또한, ElasticSearch의 Document 참고를 통해 더 구체적인 설정 방법과 권장 사항을 검토하시는 것을 추천드립니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
답변감사합니다!! 제가 이해를 잘못했네요. 우선 하루 쌓이는 로그양이 레플리카포함해서 200gb 니까 데이터노드는 10개고, 노드하나당 가져가야할 디스크크기는 20gb 인것으로 계산이되는데 그래서 노드당가져가야할 디스크크기는 600gb라고 적어주신게 한달기준인거죠?