Distributed storage

hi2li·2026년 5월 18일

infra

목록 보기
2/9

여러 대의 서버의 디스크를 하나의 거대한 저장소 처럼 묶어서 사용하는 저장 방식

  • 사용자는 하나의 스토리지 처럼 사용하지만,
    실제로는
Node1
 ├─ Disk1
 └─ Disk2

Node2
 ├─ Disk1
 └─ Disk2

Node3
 ├─ Disk1
 └─ Disk2

이렇게 여러 서버의 디스크에 데이터가 나누어서 저장된다.

등장배경

기존에 RAID는 하나에 서버 내부에서 여러 디스크를 묶어 장애 대응과 성능 향상을 제공한다.

하지만 만약 서버가 고장나거나 네트워크 단절 등의 문제가 발생하면 전체 서비스가 중단될 수 있다.

→ 데이터를 여러 서버에 나누어 저장하여 해결.

  • 데이터 증가와 대용량 서비스 환경에서 기존 단일 스토리지의 용량·성능·장애 한계를 해결하기 위해 등장했다.
  • 여러 장비에 데이터를 분산 저장하므로 확장성이 좋고 장애 발생 시에도 일부 데이터 손실 없이 서비스 지속이 가능하다.
  • 보통 데이터 복제(replication)나 Erasure coding, 분산 파일 시스템 기술을 함께 사용한다.
  • 대표 예시로 Hadoop Distributed File System, Ceph, GlusterFS 등이 있다.

Erasure coding

  • 데이터를 여러 조각으로 나누고, 복구용 조각까지 함께 저장해서 일부 서버나 디스크가 고장나도 데이터를 복구할 수 있게 하는 기술
  • 단순히 복제하여 빠르게 해결할 수 있지만 비효율적이다. (저장공간을 많이 사용함)
  • 대용량 저장소에서는 조금 느리긴 해도 용량 효율이 중요하기 때문에 Erasure coding을 많이 사용한다.

Quorum

  • 분산 시스템은 서버가 여러 대라서, 각 서버가 서로 다른 판단을 할 수 있음
  • 예를 들어 네트워크가 분리되면 각 서버 그룹이 자신이 정상이라고 판단하여 동시에 데이터를 수정하려고 할 수 있는데, 이를 split-brain문제라라고 한다.
  • 장애시 어떤 해결책을 할것인지 다른 선택을 하게 될 수 있음

→ "전체 중 과반수 동의를 얻은 쪽만 정상으로 인정하자.”

→ 이를 통해 여러 서버가 동시에 서로 다른 데이터를 기록하는 문제를 방지할 수 있다.

CAP이론

  • 분산 시스템에서는 일관성, 가용성, 네트워크 분리 대응 이 3개를 완벽하게 만족할 수 없다는 이론
  • 즉 분산 시스템은 장애 상황에서 무엇을 우선할지 선택해야 하며, Quorum이나 Consensus 알고리즘(Raft 등)은 이러한 문제를 해결하기 위해 사용된다.
profile
Easy come , Easy go

0개의 댓글