분산 파일 시스템(Distributed File System)은 이더넷 네트워크에 연결된 Shared File System 으로, 주로 네트워크 상에 존재하는 여러 Shard File System 들을 클러스터링하여 Virtual File System 형태로 제공하는 것을 말한다.
그렇기 때문에 Block level Access가 아닌 network protocol 로 각 파일시스템에 내부적으로 접근하게 된다.
주로 여러 네트워크로 연결된 파일시스템들이 공유폴더를 구축하고, 이를 DFS 가 Managing 하여 클러스터링하는 형태이다.
이 때, 연결된 각 File System 서버들의 파일들은 Globally Unique 하게 관리되며, DFS 서버에 장애가 발생할 경우 DFS 를 사용할 수 없게 되어있다.
그렇기 떄문에 DFS 파일 시스템은 서버 내에서 각 클러스터된 파일시스템들에 대한 Fault-Tolerance 를 관리해주게 되고, 때때로 고성능을 내기 위해 Parallel 한 클러스터를 구축하기도 한다.
Distributed File System 과 Distributed Data Store 의 차이는 DFS는 로컬에서 파일을 접근하는 것과 마찬가지의 Interface 를 제공한다는 점이다.
즉, 사용자는 실제 파일 시스템을 다루듯 디렉토리 리스팅, 파일 실행, 파일 삭제 등을 할 수 있다.
DFS 가 제공하는 이점은 다음과 같다.
- Data migration 의 단순화
- 데이터 사용의 용이함
- 보안상 관리의 이점
- 서버의 고가용성 확보
이러한 Distributed File System 은 일반적으로 사용할 때에는 중앙 DFS 서버에서 관리하나, 클라우드에서 프로비저닝 될 때에는 하나의 서비스 형태로 제공된다.
대표적으로 Amazon S3, Google Cloud Storage, Openstack SWIFT, Microsoft Azure 가 있으며 모두 HTTP 프로토콜을 이용한 REST API 형태로 인터페이스를 제공한다.
* NFS 역시 분산 파일시스템의 일종이다.
NFS(Network File System) 는 네트워크에 파일을 저장하는 메커니즘이다.
원격 컴퓨터에 있는 파일 시스템을 마치 로컬의 파일시스템처럼 사용할 수 있도록 허용하는 분산 파일 시스템이다.
NFS File System 은 서버와 클라이언트로 이루어져있고, 일반적인 로컬 파일시스템과 똑같은 기능을 수행할 수 있는 인터페이스를 제공한다.
'Computer Base > Computer Engineering' 카테고리의 다른 글
Google Protobuf 정리 내용 및 사용방법 (0) | 2018.11.06 |
---|---|
YAML 데이터 포멧에 대한 정리 (0) | 2018.10.31 |
컴파일러의 개념 + 어떻게 컴파일러가 작동하는지(How Compiler works) (0) | 2018.10.11 |
프로그래밍의 2가지 로직 패턴. 도메인 모델(Domain Model) & 트랜잭션 스크립트(Transaction Script) (0) | 2018.08.09 |
메타데이터(Meta Data) (0) | 2018.08.06 |