데이타를 컴퓨터 상에 안전하게 저장하는 것은 정보 처리의 기본이다. 컴퓨터 사용자의 데이타는 파일이라고 불리는 하나의 추상화된 단위로 구별되어 처리되는 것이
보통이며, 실제 데이타는 여러가지 형태의 컴퓨터의
저장 장치에 디지털 정보로 저장이 된다. 파일시스템은 이러한 파일을
컴퓨터 상에서 보관하는 방법을 제공하는 운영체제의 일부분이다.
파일시스템은 사용자의 데이타를 추상화한 파일이라는 관리 단위와
실제 데이타가 저장되어 있는 물리적인 저장 장치의 정보를 연결시켜
주는 것이라고 생각할 수 있다.

파일시스템은 하나의 파일이 만들어지고, 그것이 명시적으로
없어질 때까지 보관하기 위하여 각 데이타에 대해 특정한 파일 이름을
주어서 관리하며, 추상적인 파일과 물리적인 저장 장치의 내용을 연결지으며,
전원 공급의 중단이나 소프트웨어의 문제점으로부터 파일을 보호하여야
할 책임이 있다.
보통 하나의 컴퓨터에는 하나의 파일시스템이 존재하며
이것을 로컬 파일시스템이라고 부른다. 로컬 파일시스템은 다른 컴퓨터에서는
사용할 수 없고, 해당 컴퓨터에 물리적으로 연결된 저장 장치에만
파일을 저장하게 된다.
그러나, 로컬 파일시스템은 여러가지 문제를 가지게
된다. 우선, 저장 장치에 문제가 생겼을 경우에 저장되었던 모든 데이타를
손실하게 되므로, 주기적으로 다른 저장 장치에 백업을 해 주어야
한다. 또한, 로컬 파일시스템은 다른 컴퓨터의 사용자와의 데이타
공유가 상당히 힘들다는 단점을 가지고 있다. 물론, 하나의 커다란
시스템에서 여러 명의 사용자가 접속하여 사용하는 호스트 방식일
경우에는 하나의 로컬 파일시스템으로도 사용자끼리의 정보 공유가
어느 정도 가능하지만, 개인용 컴퓨터의 활발한 보급과 네트워크 컴퓨팅
기술의 발전으로 인한 다운사이징에 의해서 현재는 많은 수의 컴퓨터가
많은 수의 사용자에 의해 사용되고 있기 때문에, 서로 다른 컴퓨터
사용자끼리의 정보 공유가 반드시 필요하게 되었다. 로컬 파일시스템으로는
이러한 사용자끼리의 정보 공유는 디스켓을 이용한 직접 복사나 네트워크를
이용한 파일 전송에 의해서만 가능하다. 이것은 당연히 사용자의 불편과
생산성의 저하를 초래하게 된다. 분산파일시스템은 이러한 로컬 파일시스템의
문제를 해결하고자 하는 노력의 결과이다.
분산파일시스템이란, 물리적으로 서로 다른 컴퓨터끼리
네트워크로 연결하여, 사용자에게 동일하게 보이는 파일 접근 공간을
제공해 주는 시스템을 말한다. 많은 수의 사용자가 서로 다른 컴퓨터를
사용하는 환경에서 네트워크를 통하여 공통된 파일시스템을 제공해
주는 시스템이다.

근래에 들어, 컴퓨터의 메모리나 디스크의 가격이 대폭
저렴해지고, 작은 컴퓨터의 성능도 향상되면서, 종래와 같이 커다란
메인컴퓨터에 많은 수의 사용자가 접속하여 일을 처리하는 방식이
줄어들게 되었다. 대신에 개인용 컴퓨터에서 사용자는 개인적인 일을
처리하며, 서버라고 불리는 중간급 컴퓨터가 다양한 작업을 처리하게
되었다. 또한, 네트워크 기술의 발전과 활발한 보급에 따라 여러 작은
컴퓨터가 서로 네트워크로 연결되어 쉽게 데이타를 주고 받을 수 있게
되었다. 이러한 상황에서 서로 다른 컴퓨터의 파일을 함께 공유해서
사용할 수 있는 방법이 나타나게 된 것이다.
분산파일시스템은 서로 다른 컴퓨터의 파일을 함께
사용하게 됨으로써 많은 이점을 가지고 있다.

분산파일시스템은 클라이언트/서버 구조를 기반으로
한다. 하나 이상의 파일 서버가 동일한 파일시스템 구조를 제공하며,
여러 클라이언트가 이들 서버가 관리하는 파일 시스템을 사용하게
되는 식이다. 클라이언트는 서버에게 파일 처리를 요구하며, 서버는
그 요구를 처리하고 응답하게 된다. 또한, 서버끼리도 서로 간의 파일
처리를 위하여 네트워크를 통하여 협조하게 된다.
그러나, 분산파일시스템은 단일한 제어 체계를 가진
하나의 컴퓨터 시스템이 아니라 서로 독립적이고 분리된 컴퓨터 시스템
사이에서 파일 서비스를 제공하여야 하기 때문에 로컬 파일시스템과
비교해 여러가지 고려해야 할 것들이 많아지게 된다.



분산파일시스템으로 가장 널리 쓰이며, 상업적으로도
성공한 산업계 표준화된 분산파일시스템으로는 Sun Microsystems에서
만든 NFS (Network File System), Transarc에서 만든 AFS (AFS File
System), 그리고, OSF에서 만든 DFS (Distributed File System)이
있다. 모두가 UNIX 시스템을 기반으로 하는 시스템들이며 여기서는
각 분산파일시스템의 특징을 하나씩 살펴본다.

분산파일시스템 중에서 가장 상업적으로 성공하였으며,
가장 널리 쓰이는 것이 Sun Microsystem사의 NFS이다. NFS는 현재는
거의 표준화가 된 여러가지 구조적인 특징을 가지고 만들어졌다. 첫째로,
NFS는 개방형 시스템이다. 모든 내부 프로토콜 구조가 공개되어 있으며,
이것을 바탕으로 구현이 되었다. 둘째로, Sun에서는 VFS (Virtual
File System)라는 추상화된 인터페이스를 정의하였다. 이것은 파일
시스템과 운영 체제 사이의 작업을 개념화함으로써 다양한 운영체제에서
서로 다른 구현이 쉽도록 해 준다. 세째로, 공개화된 RPC를 이용하여
구현이 쉽다. 네째로, NFS RPC는 하드웨어 독립적인 정보 교환을 위해
XDR이라고 불리는 데이타 정의 언어를 사용한다.
NFS는 기본적인 파일 작업을 위한 명령어를 제공한다.
다음 명령어들은 파일시스템과 그 파일시스템을 이용하는 클라이언트
응용 프로그램 사이에서 사용되는 VFS 인터페이스 명령들이다.
open open a file and return a descriptior
close close a file
rdwr read or write a file
ioctl perform a special, file system specific operation on a file
getattr fetch attributes of a file
setattr fetch attributes of a file
access test access rights of a file or directory
lookup read a directory entry
remove destroy a file
link give a file an alternate name
rename change the name of a file
mkdir create a directory
rmdir destroy a directory
readdir read the contents of a directory
symlink create a symbolic link
readlink examine a symbolic link
fsync make permanent any changes to a file
위의 명령어들은 VFS의 기본 명령이고, 구현된 운영체제에
따라 조금씩 다른 명령어가 추가될 수 있다. VFS를 이용한 파일시스템의
구현은 기존의 로컬 파일시스템까지 포함한 하나의 커다란 파일시스템,
즉, VFS를 구성하고, 파일시스템을 사용하는 응용 프로그램에서 VFS
인터페이스가 제공하는 명령어를 수행한다. NFS 서버가 제공하는 파일인
경우에는 이 VFS 인터페이스 명령이 NFS RPC의 형태로 바뀌어 해당
NFS 서버로 전달하게 된다. NFS 서버는 자신이 관리하는 파일에 요청된
파일 명령을 수행하고, 그 결과를 클라이언트 응용 프로그램으로 전달한다.
각 운영체제별로 다르게 구현되어 있는 구조적인 데이타인 경우에는
XDR (eXternal Data Representation)을 이용하여 추상화하여 서로
데이타를 교환한다.
NFS 서버와 클라이언트간의 프로토콜은 하나의 작업이
각각 독립적으로 수행될 수 있도록 설계되었다. NFS 클라이언트는
전혀 특별한 정보를 가지고 있지 않으며, NFS 서버는 state가 없이
수행이 된다. 즉, 하나의 파일 작업의 수행이 끝나면 다시 원래의
상태로 돌아가는 식이다. 이러한 설계의 장점은 파일 작업 수행 시
이전의 상태에 대해서는 전혀 고려를 하지 않아도 된다는 것이다.
또한, 클라이언트와 서버 간의 문제 발생 시에도 특별한 복구 작업이
필요가 없는 점도 있다. 서버의 문제 시에는 서버가 다시 동작할 때까지
기다리면 되고, 클라이언트의 문제는 전혀 고려 대상이 아니어도 된다.
서버가 물론 가지고 있어야 할 상태 정보도 없다.
그러나, state가 없는 서버는 클라이언트가 사용자 성능
향상을 위해 서버의 파일을 캐쉬하는 것을 어렵게 한다. 서버는 이전의
정보를 전혀 가지고 있지 않기 때문에, 어떤 클라이언트가 어떤 파일을
가지고 있는지 전혀 알지 못한다. 클라이언트는 서버의 파일을 메모리에
직접 가지고 오며, 이 파일이 항상 최신의 것인지 알기 위해서는 서버에
확인을 항상 거쳐야 한다. 이 확인 작업은 서버에서 새로 파일을 가져
오는 정도의 작업을 필요로 한다. 이 문제는 NFS의 확장성에 영향을
미친다.
NFS 서버의 내용을 클라이언트에서 사용하기 위해서
NFS 서버는 공유하고자 하는 디렉토리 구조를 export한다. Export란,
특정 NFS 서버가 자신의 로컬 파일 시스템의 일부분을 외부에서 사용할
수 있도록 공개하는 작업이다. 클라이언트 시스템은 공개된 NFS 서버의
디렉토리의 전부 또는 일부분만을 자신의 로컬 파일 시스템의 일부처럼
보이도록 마운트할 수 있다. NFS 클라이언트의 사용자는 마운트된
NFS 서버의 디렉토리를 클라이언트의 디렉토리처럼 사용할 수 있다.
이와 같은 방식은 파일의 사용 구조에 대해서는 전혀 NFS 서버가 관여하지
않고, NFS 클라이언트가 마운트하는 형태와 이름에 따라 달라질 수
있으므로, 개개의 클라이언트마다 다르게 보일 수 있다. 당연히 이러한
방식은 위치 독립성에 영향을 준다. 좋은 NFS 관리자는 이러한 마운트를
조정하여 모든 클라이언트에서 같은 디렉토리 구조를 가지도록 해
주어야 한다.

NFS는 서버의 내용을 복제하지 않는다. 하나의 서버의
내용은 그 서버에만 존재하여야 하며 다른 곳에 복제되어 존재할 수는
없다.
NFS에서의 접근 제어는 우선, NFS 서버가 자신의 디렉토리 구조를 공개할 경우에 특정 서버만이 가능하도록 명시할 수 있는 방법이 있으며, 일단 공개되어 클라이언트 시스템이 마운트한 이후에는 단일 UNIX 시스템에서와 같다. NFS 클라이언트의 UID는 NFS 서버에서의 UID와 같은 권한을 가진다. 따라서, NFS 서버와 클라이언트 사이에는 사용자의 UID에 대한 일치 작업이 있어야 한다.
NFS가 공개되기 시작한 즈음에 CMU의 ITC (Information
Technology Center)에서는 연구 차원의 분산 처리 환경이 구축되었고,
여기에 사용된 분산파일시스템이 좋은 성능을 가지고 있었다. CMU에서의
몇년간의 개발 후인, 1990년에 ITC의 멤버들은 Transarc이라는 상업
회사를 만들어 AFS라는 분산파일시스템을 판매하기 시작하였다.
AFS는 많은 점에서 NFS와 비슷하다. AFS 클라이언트는
NFS와 마찬가지로 VFS라는 가상 파일시스템을 운영하여 로컬 파일시스템의
사용과 AFS 파일시스템의 사용을 구분하여 처리한다. 또한, 파일 작업
역시 RPC로 이루어지며, XDR을 사용하는 것이 같다. 그러나, 가장
다른 점은 클라이언트에서의 캐싱을 제공하여 성능 향상과 확장성을
좋게 만들었다는 것이다. AFS 클라이언트는 수십 Mbyte의 로컬 시스템을
캐쉬로 사용한다. AFS 클라이언트는 AFS 서버로부터 파일을 받아서
로컬 파일시스템에 캐쉬로 저장을 해 두고, 차후의 이용시에는 AFS
서버가 아니라 로컬 캐쉬에서 파일을 이용한다.

AFS 클라이언트의 캐쉬가 항상 서버의 내용과 같게
만드는 방법은 callback 약속이라는 것을 이용한다. AFS 서버는 클라이언트가
파일을 자신의 캐쉬로 가져간 이후에 파일의 변동이 생기면, 그 파일을
캐쉬로 가지고 있는 모든 클라이언트 시스템에 해당 파일의 내용이
무효임을 알린다. Callback 약속은 클라이언트가 서버에서 파일을
가져갈 경우에 성립이 되며, 서버는 파일의 변동 시에 이 약속을 취소하게
된다. 클라이언트는 캐싱된 파일의 이용 시에 항상 이 callback 약속을
확인하여 이것이 유효할 경우에만 사용하고, 그렇지 않을 때는 새로
파일을 서버에서 가져온다. 이런 방법으로써 클라이언트는 자주 사용되는
파일을 매번 서버에서 가져오는 부가 작업을 줄일 수 있어서 성능이
좋아진다.
AFS 서버는 당연히 state 정보를 가지고 있다. 서버는
callback 유지를 위해 모든 클라이언트의 캐시 상태를 기록하고 있어야
한다. 그러나, 너무 많은 정보를 서버가 유지하지 않도록 하기 위해
일정한 기간 이상의 callback은 변동이 없더라도 자동으로 없어지도록
하거나, 일정 기간마다 모든 callback을 제거하는 방식을 사용한다.
문제 발생 시의 복구 작업은 AFS 캐쉬를 사용하기 때문에
NFS보다 복잡하다. Callback 정보는 서버의 메모리에 있기 때문에
서버가 문제가 있을 경우에는 모든 callback 약속을 무효화하고 새로
파일을 가져가야 한다. 또한, 클라이언트 쪽에서도 서버를 주기적으로
확인하여 서버가 재시동되었거나 응답이 없으면, 자신이 가지고 있는
callback을 모두 무효화한다. 이러한 작업을 위해서 AFS에서는 모든
서버와 클라이언트가 같은 시스템 시간을 맞추도록 되어 있다.
AFS의 사용은 클라이언트에서 /afs라는 정해진 디렉토리에
서버가 제공하는 모든 디렉토리 구조를 마운트하여 사용한다. AFS에서는
볼륨이라고 불리는 단위로 파일시스템이 관리되는데, 볼륨은 트리
형태의 디렉토리 구조에서의 한 부분을 가지고 있다. /afs 아래의
모든 디렉토리는 특정한 볼륨에 속해져 있으며, 각 볼륨과 볼륨은
서로 마운트되어 있다. 이 마운트 구조는 클라이언트가 아니라 서버가
관리하므로, 모든 클라이언트에서 같은 구조의 디렉토리를 볼 수 있으며,
특정 서버에 종속된 마운트 포인트가 아니므로 마운트 지점의 변경이
없이 하나의 볼륨을 다른 서버로 옮길 수 있다. 볼륨은 또한 같은
내용이 여러 군데의 서버에 복제될 수 있어서 사용자의 가용성을 높이고,
서버의 문제 발생시에 대비할 수 있으며, 서버 간의 로드 분산에도
쉽게 이용이 가능하다. 모든 복제된 볼륨은 읽기만 가능하며, 하나의
마스터 볼륨에서만 변경이 가능하게 되어 있다.

보안을 위해서는 모든 사용자에게 특정 시스템에 속하지
않는 AFS UID를 부여하고, 이 AFS UID와 사용자 패스워드를 통해 사용자를
인증한다. 인증된 사용자는 파일시스템의 각 디렉토리별로 명시된
7가지 권한(read, write, lookup, insert, delete, lock, admin)의
접근제어리스트 (ACL)로 사용 권한을 제한받는다. ACL은 UNIX의 방식보다
더 세밀하고 유연한 방식을 제공하지만, 사용자가 혼란을 겪을 우려가
있다.
AFS의 모든 사용자 정보와 패스워드 정보, 볼륨의 위치
정보 등의 파일 시스템 관리 정보는 데이타베이스 서버라고 불리는
특별한 서버에 따로 저장이 되어 있다. 모든 클라이언트와 서버, 서버와
서버간의 작업은 이 데이타베이스 서버와의 통신을 통해 이루어진다.
AFS에서는 이들간의 통신에서도 보안 유지를 위해 암호화 방식을 사용한다.
OSF/DCE의 DFS는 AFS를 기반으로 만들어졌기 때문에
AFS와 많은 점에서 유사하다. 가장 주요한 차이점은 DFS에서 좀더
정확한 single-site UNIX semantic을 제공하는점이다. DFS에서는 AFS의
callback 대신에 클라이언트 캐쉬를 access token을 써서 관리한다.
token을 가진 클라이언트는 특정한 파일을 혼자서만 변경할 것을 보장받는다.
Access token은 동시에 여러 클라이언트가 파일을 변경할
경우에도 그 변경이 겹치지 않는다면 허용하며, 겹칠 경우에는 하나의
token을 취소하여, 변경 후에 새로운 token을 가져가도록 요구한다.
이와 같은 방식으로 DFS에서는 하나의 UNIX 파일 시스템에서와 같은
일관성을 유지한다.
다른 여러 면에서는 DFS가 AFS의 서비스를 모두 제공한다.
클라이언트 캐싱, 통일된 디렉토리 구조, 읽기 전용의 파일 복제 등등을
DFS에서도 제공한다. 가장 큰 다른 점은 AFS는 클라이언트 시스템에
분산 파일 서비스를 제공하지만, DFS는 그 자체가 DCE의 클라이언트라는
것이다. 따라서, DFS는 보다 더 효율적으로 분산 파일 서비스를 제공할
수 있다.
앞에서 다룬 세가지 분산파일시스템의 특성을 다음
표로 나타내었다.
| Sharing | Availability | Caching | Naming | Protection | |
| NFS | potentially inconsistent if clients cache | read-only replication | negligible client cache | client-controlled mount point
may not transparent | UNIX id,
UNIX mode bits |
| AFS | consistent
open/close session | read-only replication | large, coarse-grained client cache | server-controlled transparent mount point | Kerberos id, ACL on directory |
| DFS | single-site UNIX semantics | read-only replication | large, fine-grained client cache | server-controlled transparent mount point | Kerberos id, full ACL |
여기서 다루지 않은 것 중의 하나는 각 분산파일시스템의 구현 범위인데,
NFS는 거의 모든 UNIX 시스템에서 기본적으로 제공하는 시스템이며,
AFS는 그보다는 좀 못하지만 대부분의 UNIX 시스템을 지원하는 반면에,
DFS는 아직 제한된 플랫폼에서만 사용이 가능하다.
그리고, 각 분산파일시스템은 서로 함께 하나의 시스템에 사용이
가능하다. 각 분산파일시스템은 서로 간섭하지 않으므로, 하나의 컴퓨터
시스템에서 세가지 다른 분산파일시스템을 동시에 운영하는 것도 전혀
문제가 없다.
앞에서는 분산파일시스템이 생겨났던 UNIX 시스템에서의 분산파일시스템에
대해서만 설명을 하였는데, 개인용 컴퓨터에서도 똑같은 필요에 의해
여러가지 방법이 구현이 되었다.
개인용 컴퓨터는 얼마전까지도 네트워크에 연결이 되지 않고, 완전히
독립적으로 운영되는 것이 보통이었기 때문에 서로 다른 컴퓨터와의
파일 공유에 대해서는 많은 고려가 없었다. 파일이나 프로그램을 공유할
필요가 있을 경우에는 디스켓을 이용하여 사람이 직접 데이타를 이동시켜야
하는 불편이 있었다. 여기서는 사용자가 가장 많은 PC 윈도우즈 환경에서
파일을 서로 공유하는 방법에 대해 설명한다.
Microsoft 사에서 개발된 Windows 3.x, Windows 95, Windows NT,
그리고 IBM의 OS/2 운영체제는 SMB (Server Message Protocol)이라는
것을 사용하여 파일을 공유할 수 있는 방법을 제공한다. Windows 3.x에서는
SMB를 직접 지원하지는 않기 때문에 Windows for Workgroups 이라는
패키지를 따로 설치해야 한다. SMB를 지원하는 각 PC는 서버나 클라이언트,
또는 동시에 두가지 기능을 함께 할 수도 있다.

SMB 프로토콜은 1987년에 Microsoft에서 처음 개발되었다. SMB 프로토콜은
클라이언트와 서버 구조로 이루어져서 클라이언트는 파일 서비스를
요구하고, 서버는 그 요구에 대한 응답을 하는 구조로 이루어져 있다.
SMB 서버는 자신의 파일 시스템이나 프린터와 같은 여러가지 로컬
자원을 네트워크 상의 클라이언트가 사용할 수 있도록 공개한다. 클라이언트는
공개된 서버의 자원을 이용할 수 있게 된다. 클라이언트는 TCP/IP,
NetBEUI, IPX/SPX와 같은 PC에서 사용가능한 여러가지 전송 프로토콜을
사용하여 SMB 요구를 할 수 있다. 이것은 SMB가 여러가지 전송 프로토콜
위에서 설계되었기 때문에 가능하다.

SMB 모델은 두가지 형태의 보안 방법을 제공한다. 하나는 Share Level이라고
불리며, 다른 하나는 User Level이라고 한다. Share Level은 서버의
특정 자원을 패스워드를 통해 사용할 수 있는 보안 방법이다. 클라이언트는
특정 자원을 사용하기 위해 패스워드를 입력하며 서버는 이 패스워드만으로
클라이언트가 자원을 사용하도록 허가한다. User Level은 Share Level보다
보안기능이 강화된 것으로 서버가 사용자별로 패스워드를 입력하도록
요구한다. 클라이언트는 서버의 사용자로 인증을 받고 나서야 자원의
사용이 가능하다.
SMB를 이용한 서버의 사용은 네트워크 자원 연결이라는 방법을 사용한다.
서버의 이름과 서버가 공개하는 자원의 이름을 클라이언트에서 입력하여
서버의 자원을 클라이언트 시스템의 자원인 것처럼 사용한다. 서버의
드라이브는 네트워크 드라이브로 연결하고, 서버의 프린터는 네트워크
프린터로 연결되어 사용하게 된다.
여러 대의 많은 서버가 많은 자원을 공개하고 있는 네트워크 환경에서는
클라이언트가 어떤 서버에서 어떤 자원을 공개하는지 알 수 없는 경우가
많다. 이런 환경에서의 사용을 위해서 SMB 클라이언트와 서버는 네트워크
환경을 검색할 수 있는 기능을 제공한다. 모든 서버는 자신이 공개하는
자원을 broadcasting 정보를 이용하여 알리고, 클라이언트는 필요
시에 모든 공개 자원을 디렉토리 구조처럼 검색할 수 있다.
Microsoft에서는 이 SMB 프로토콜을 확장하여 PC 윈도우즈뿐만이
아니라 UNIX 시스템에서도 사용이 가능한 분산파일시스템을 개발 중에
있다. CIFS (Common Internet File System)이라고 이름지어진 이 시스템은
SMB 프로토콜을 기반으로 UNIX와의 파일 공유를 지원하는 것을 목표로
한다.
지금까지는 UNIX 환경의 분산파일시스템과 PC 윈도우즈 환경의 분산파일공유방법에 대해 따로 설명을 하였다. 물론, 이 두가지 환경의 출발이 달랐기 때문에 서로 다르게 발전되어 왔으나, 네트워크 환경이 널리 보급되고 PC를 클라이언트로 하고 UNIX 시스템을 서버로 하는 서비스가 일반화 되면서 두 시스템관의 파일 공유의 필요가 늘어나게 되었다.
UNIX와 PC 윈도우와의 파일 공유는 기존에 사용되던 방법을 확장시킨
형태가 대부분이다.

지금까지 설명한 여러가지 파일 공유 방법을 이용하면 여러가지 다른
컴퓨터 시스템에서도 네트워크로 연결된 다양한 파일시스템을 함께
사용할 수 있다. 여기서는 각자 따로 설명된 파일 공유 방법이 어떻게
서로 연결되어 사용이 가능한지 예를 들어 보이겠다.
NFS를 주로 이용한 파일 공유 방법은 UNIX 시스템끼리 서로의 파일
시스템을 공유하여 사용하도록 NFS 서버로 묶고, NFS 클라이언트인
UNIX 시스템과 PC-NFS를 이용한 PC 클라이언트, 그리고, Samba를 이용한
Samba 클라이언트가 NFS 서버의 파일을 이용하는 것이 대표적이다.
AFS를 주로 이용한 파일 공유 방법은 AFS를 설치한 UNIX 파일 시스템이
AFS 서버로서 AFS 파일 서비스를 제공하고, 각 AFS 클라이언트가 자신의
캐쉬에 AFS 파일 서비스를 받아 사용하게 한다. PC 윈도우즈에서는
Windows NT가 AFS 클라이언트를 제공하고 있으며, 다른 PC 윈도우즈
환경에서는 Samba가 AFS를 지원하므로 SMB를 이용하여 AFS 서버의
내용을 AFS 클라이언트에 설치된 Samba를 이용해 사용이 가능하다.
DFS solution은 아직 광범위하게 널리 쓰이지 않고 있으므로 여기서는
자세히 다루지 않는다.
혼합 solution은 NFS, AFS, DFS, 그리고 여러가지 PC 윈도우즈 공유
방법을 함께 사용하여 파일 공유를 구현하는 방법이다. NFS, AFS,
DFS가 같은 네트워크 환경에서 공존할 수 있으므로 모든 분산파일시스템의
장점을 살린 설계가 가능하다.
여기서는 분산파일시스템이 실제로 적용되어 사용되고 있는 포항공대의
사례를 살펴보고, 포항제철에서 적용할 수 있는 가상 시나리오를 설명한다.
포항공대의 많은 학과와 연구소에서는 여러가지 다양한 웍스테이션과
PC가 사용이 되고 있으며, 이들간의 파일 공유 방법도 여러가지 제공되고
있다. 1995년부터는 AFS 시스템을 도입하여 학교 전체를 하나의 파일
공유 공간으로 만들어 사용자의 파일 공유에 많은 도움을 주고 있다.
포항제철소의 분산환경관리시스템 구축 계획 중에서 분산파일시스템의
사용으로 이득을 얻을 수 있는 몇가지를 설명한다.