| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
- LLM기반CBF
- 스프링단위테스트방법
- dialtimeout
- 존폴결혼반지
- steam game score
- 존폴반지
- 외부 톰캣 특수문자 깨질 때
- integrationtest
- 한글 특수문자 자바스크립트
- 존폴쥬얼리
- 자바스크립트 깨질 때
- 스팀 게임 스코어 알고리즘
- 동시 요청 처리
- tomcat튜닝
- dial timeout
- 비개인화추천모델
- set-cookie 안만들어짐
- jqxWidget워터마크
- 분산파일
- jsp permission denied
- 존폴결혼예물
- Akamai 연구결과
- staem algorithm
- spring unit test
- jsp 예외 permission
- 분산파일시스템
- jqx워터마크제거
- cookie refreshToke
- LLM기반 콘텐츠 추천
- 추천시스템steam
- Today
- Total
hola 개발
[ 분산 파일 시스템 ] 분산 파일 시스템의 등장 배경과 개요 본문
[ 분산 파일 시스템 등장 배경 ]
데이터를 다루는 방식은 시대에 따라 끊임없이 변화해 왔습니다. 과거에는 전통적인 데이터베이스 시스템이 기업의 핵심이었고, 정형화된 데이터를 저장하고 처리하는데 최적화되어 있었습니다. 하지만 어느 순간부터 이러한 패러다임에 큰 전환점이 찾아옵니다.
데이터의 폭발적 증가와 변화
인터넷과 모바일 환경이 발전하면서, 더 이상 단순히 숫자나 표 형식으로 정리된 데이터만을 다루지 않게 되었습니다.
- SNS에서 쏟아지는 글과 댓글
- 서버 로그(Log)
- 동영상(Video)과 음성(Audio) 콘텐츠
- 웹사이트와 각종 플랫폼에서 수집되는 방대한 자료
이처럼 비정형 데이터 또는 부분적으로만 정형화된 데이터들이 폭발적으로 증가하기 시작했습니다.
기존 방식의 한계
문제는 이러한 데이터를 기존의 데이터 웨어하우스(DW) 방식으로는 감당하기 어렵다는 점입니다.
데이터 웨어하우스는 정형 데이터 분석에 강점을 가지고 있지만, 방대한 비정형 데이터까지 효과적으로 저장하고 처리하는 데는 한계가 있었습니다.
새로운 패러다임의 필요성
이제는 단순히 데이터를 쌓아 두는 것을 넘어,
- 어떻게 효율적으로 저장할 것인가?
- 어떻게 빠르게 처리할 것인가?
- 그리고 어떻게 가치 있는 분석을 할 것인가?
이 질문들에 답하기 위해 분산 파일 시스템(Distributed File System) 이 등장하게 된 것입니다.
[ 분산 파일 시스템 이란? ]
분산 파일 시스템(Distributed File System) 은 네트워크를 통해 여러 호스트 컴퓨터에 분산 저장된 파일들을 마치 하나의 통합된 파일 시스템처럼 접근할 수 있게 해주는 기술입니다.
즉, 물리적으로는 다른 위치의 서버나 장비에 데이터가 흩어져 있지만, 사용자는 이를 로컬 디스크에 있는 것처럼 편리하게 사용할 수 있습니다.
[ 분산 파일 시스템의 주요 특징 ]
분산 파일 시스템은 단순히 데이터를 여러 서버에 나누어 저장하는 것 이상의 의미를 가집니다.
안정적으로 동작하기 위해, 확장성(Scalability), 장애 허용(Fault Tolerance), 데이터 일관성(Data Consistency) 이라는 세 가지 큰 특징을 갖고 있습니다.
1. Scalability (확장성)
데이터의 양은 시간이 지날수록 기하급수적으로 늘어납니다.
전통적인 중앙 집중형 스토리지는 용량 한계에 부딪히지만, 분산 파일 시스템은 다릅니다.
- 새로운 서버를 추가하면 자동으로 저장 용량이 확장됩니다.
- 데이터 블록이 여러 노드에 분산되기 때문에 저장과 접근 모두 병렬적으로 처리됩니다.
- 빅데이터 분석, AI 학습처럼 방대한 데이터가 필요한 작업에 유리합니다.
즉, 시스템 성능을 수평적으로 확장할 수 있다는 점이 가장 큰 장점입니다.
2. Fault Tolerance (장애 허용)
서버나 디스크는 언제든 고장날 수 있습니다. 하지만 분산 파일 시스템에서는 이런 문제가 곧바로 서비스 중단으로 이어지지 않습니다.
- 동일한 데이터를 여러 노드에 복제(replication) 하여 저장합니다.
- 특정 노드가 다운되더라도 다른 노드에서 데이터를 불러올 수 있습니다.
- 복구 과정도 자동화되어 있어 운영자가 직접 개입하지 않아도 안정성을 유지할 수 있습니다.
결과적으로, 분산 파일 시스템은 데이터 손실 위험을 최소화하며, 고가용성을 제공합니다.
3. Data Consistency (데이터 일관성)
여러 노드에 분산 저장된 데이터가 항상 동일한 상태를 유지해야 합니다.
특히 클라이언트가 동시에 데이터를 읽고 쓰는 상황에서는 일관성(consistency) 보장이 매우 중요합니다.
- 분산 파일 시스템은 특정한 일관성 모델(예: HDFS의 write-once-read-many) 을 적용하여 데이터 충돌을 방지합니다.
- 데이터 업데이트가 발생하면 각 노드의 복제본이 동기화되어, 사용자는 항상 올바른 데이터를 보게 됩니다.
- 시스템 설계에 따라 강한 일관성(Strong Consistency) 또는 최종적 일관성(Eventual Consistency)을 적용하기도 합니다.
이 덕분에 여러 사용자가 동시에 접근하더라도 데이터 무결성이 보장됩니다.
[ 분산 파일 시스템의 종류 ]
분산 파일 시스템은 대용량 데이터를 여러 서버에 분산 저장하고, 네트워크를 통해 마치 하나의 파일 시스템처럼 사용할 수 있게 해줍니다.
대표적으로 GFS, HDFS, AFS, GlusterFS 네 가지가 많이 언급됩니다.
1. GFS (Google File System)
- 개발 배경: 구글이 검색 엔진과 웹 서비스에서 발생하는 방대한 데이터를 저장하고 처리하기 위해 자체 개발
- 특징
- 마스터-슬레이브 구조 (Master + 여러 ChunkServer)
- 파일을 고정 크기의 청크(64MB) 로 분할하여 저장
- 데이터는 기본적으로 복제(3개 사본) 되어 장애에 강함
- 주로 대규모 읽기 중심 워크로드에 최적화
- 활용 예시: 구글 검색 인덱스, 맵리듀스 기반 처리
2. HDFS (Hadoop Distributed File System)
- 개발 배경: GFS 논문을 바탕으로 아파치 재단이 오픈소스로 구현
- 특징
- NameNode + DataNode 구조
- 파일을 블록 단위(기본 128MB)로 분할하여 여러 노드에 분산 저장
- 데이터 복제(기본 3개) 로 안정성 확보
- 대규모 데이터 처리(예: Hadoop MapReduce, Spark) 와 긴 순차적 읽기에 최적화
- 활용 예시: 빅데이터 분석, 데이터 웨어하우스, 클라우드 스토리지
3. AFS (Andrew File System)
- 개발 배경: 카네기 멜론 대학교(CMU)에서 개발, 이후 IBM이 상용화
- 특징
- 네트워크를 통해 여러 사용자가 파일을 공유할 수 있도록 설계
- 캐시 기반 설계: 클라이언트 로컬에 파일을 캐싱하여 성능 향상
- 대규모 분산 환경에서 사용자 인증과 접근 제어에 강점
- 연구·교육기관, 기업 환경에서 널리 사용됨
- 활용 예시: 대학 캠퍼스, 연구 네트워크 환경
4. GlusterFS (Gluster File System)
- 개발 배경: 오픈소스 프로젝트, 현재는 Red Hat이 지원
- 특징
- 완전한 오브젝트 스토리지 기반 아키텍처
- 중앙 집중형 메타데이터 서버 없이 스케일 아웃 구조 제공
- 필요할 때 서버를 추가하여 용량과 성능을 확장 가능
- POSIX 호환 파일 시스템으로 일반적인 파일 접근이 가능
- 클라우드 스토리지, 미디어 스트리밍, 백업 시스템 등에 활용
- 활용 예시: OpenStack, Kubernetes와의 통합