1993.1.26
SUBJECT: NFS의 개념
DESCRIPTION:
0. Network을 경유한 file 전송 경로
0) remote machine의 file을 가져 온다.
Local Machine | Network | Remote Machine
| |
+-----------+ +-----------+ | | +-----------+ +-----------+
| file 전송 |─→ | Network |───────→ | Network | ─→| file 전송 |──┐
| Client | | S/W | | | | S/W | | Server | ↓Disk
+-----------+ +-----------+ | | +-----------+ +-----------+ +-------+
| | | file |
+-------+
| |
+-----------+data +-----------+ | data | +-----------+data +-----------+
┌─| file 전송 |←─ | Network |←─────── | Network |←─ | file 전송 |←─┐
Disk│ | Client | | S/W | | | | S/W | | Server | │Disk
↓ +-----------+ +-----------+ | | +-----------+ +-----------+ +-------+
+-------+ | | | file |
| file | | | +-------+
+-------+ | |
1) file의 data를 처리한다.
+-----------+ +----------+ +---------------+
| local |────→| file |────→| application |
| file |←────| system |←────| software |
+-----------+ +----------+ +---------------+
2) 처리된 file을 본래로 되돌린다.
Local Machine | Network | Remote Machine
| |
+-----------+data +-----------+ | data | +-----------+data +-----------+
| file 전송 |─→ | Network |───────→ | Network | ─→| file 전송 |──┐
| Client | | S/W | | | | S/W | | Server | ↓Disk
+-----------+ +-----------+ | | +-----------+ +-----------+ +-------+
| | | file |
+-------+
1. 자원 공유형 network의 전달 경로
Local Machine | Network | Remote Machine
| |
+--------+ +--------+ +--------+ | | +-----------+
| 응 용 |─→ | File |─→|Network |───────→ | Network |──┐
| S/W |←─ | System |─┐| S/W | | | | S/W | │
+--------+ +--------+ │+--------+ | | +-----------+ ↓
↓ | | +--------------+
+---------+ | | | Remote |
| Local | | | | file service |
| file | | | +--------------+
+---------+ | |
2. 자원 공유형 network의 Software 구성
Client
+--------------------------------+
| Application S/W |
+-----------------┰-------------+
┃ Server
+-----------------╂-------------+ +-------------------------------------+
| +---------------╂-----------+ | | +-------------+ +--------------+ |
| | ┏━━━┻━━━┓ | | | | | | | |
| +-------╂----------+ ┃ | | | | Remote File | | Local File | |
| +-------╂--------+ | Remote | | | | Server | | Server | |
| | ┃ | | File | | | | ┏━━━━━━━━┓ | |
| | Local File | | 관리 | | | +-------╂----+ +------╂------+ |
| | 관리 | | ┃ | | | +-------╂----+ +------╂------+ |
| | ┃ | | ┃ | | | | ┃ | | ┃ | |
| +-------╂--------+ +---╂---+ | | | ┃ | | ┃ | |
| +-------╂--------+ +---╂---+ | | | Network | | Hard Disk | |
| | ┃ | | ┃ | | | | 처리부 | | 제어 | |
| | Hard Disk | | Network| | | | ┃ | | ┃ | |
| | 관리 | | 처리부 | | | | ┃ | | ┃ | |
| | ┃ | | ┃ | | | | ┃ | | ┃ | |
| +----+--╂--------+ +---╂┬-+ | | +---┬--╂----+ +------╂--+---+ |
+------|--╂--------------╂┼----+ +-----┼--╂----------------╂--|-----+
| ┃ ┃│ │ ┃ ┃ |
| ↓ ┃│ │ ┃ ↓ |
+----+--------+ ┃│ │ ┃ +----------+--+
| File | ┃│ │ ┃ | File |
+-------------+ ┃│ │ ┃ +-------------+
Disk ┃│ │ ┃ Disk
┗┿━━━━━━━━━━━┿━┛
---------------------------┴----------------------┴---------------------------------
3. NFS(Network File System)
* disk 영역을 관리하고 file의 access를 관리하기도 하는 등의 일은 OS의 filesystem이 담당하던 것.
이와 같이 filesystem이 하던 작업을 network을 초월해서 여러대의 컴퓨터가 실행할 수 있게끔 한 것이
바로 NFS이다.
* NFS는 local file system이 있는 directory에서 remote system상의 directory와
논리적으로 연결(mount)하는 작업을 해준다.
일단 그 접속(mount)가 이루어지면
local disk와 마찬가지로 remote disk를 전혀 차이 없이 access할 수 있다.
사용자나 application은 자신이 access하려는 화일이 실제로 어느 컴퓨터에 있는지를 의식할 필요가 없다.
* NFS 접속 방식은 local disk의 filesystem이 "UFS(4.2)" type으로 mount되듯이
remote disk의 filesystem or directory를 "nfs" type으로 mount하면 된다.
* NFS는 server-client model로 구현되며
local disk를 사용할 수 있게끔 허용해 주는 쪽, 즉 export해 주는 쪽을 "nfs server"라 하고
remote disk를 사용하려 하는 쪽, 즉 nfs mount하려는 쪽을 "nfs client"라 한다.
* NFS를 사용하여 얻을 수 있는 이점 중 'disk의 절약'이 있다.
여러 시스템에서 똑 같이 사용하는 file들을 각 시스템 disk마다 저장해 놓지 않고
한 시스템에만 저장해 놓고 NFS mount해 사용하면 그만큼 disk를 절약할 수 있게된다.
* 처음에는 Sun workstation들이 disk를 공유하기 위해 개발하였지만
요즈음은 기종에 관계없이 또 여러 OS에 구현되도록 설계되어 있다.
많은 vendor들이 그들의 컴퓨터에 대해 NFS를 제공하고 있다.
이처럼 민간 기업이 독자적 사양을 결정한 것이 업계에 널리 수용되면서 사실상의 표준이 된 경우를
"defact standard(업계표준)"이라 부르고
IEEE 등 공공기관에서 규정된 "IS(International Standard:국제표준)"과는 구별된다.
4. NFS의 Software 구성
Client Server
+-----------------------+
| Application Program | "remote file 관리부에 해당"
+-----------------------+ ┃
↓ ┃
+---------+ ━━━━━┫ +-----------+
┌───| vnode |────┐ ┃ "nework 관리부에 해당" ┌────→| vnode |
│ +---------+ │ ┃ ┃ │ +-----------+
↓ ↓ ↓ ┃ ┃ │ ↓
+----------+ +---------+ +----------+┃ +-------------+ +-----------+
| 4.2 BSD | | VFS | | Remote |┃ | NFS server | | 4.2 BSD |
| VFS | +---------+ | VFS |┃ +-------------+ | VFS |
+----------+ │ +----------+┃ ↑ +-----------+
↓ ↓ ┃ │ ↓
+---------+ +----------+┃ +-------------+ +-----------+
| File | | RPC/XDR |┛ | RPC / XDR | | File |
+---------+ +----------+ +-------------+ +-----------+
│ ↑
↓ │
+----------+ +-------------+
| TCP/IP | | TCP / IP |
+----------+ +-------------+
LAN │ │
──────────────┴──────────────┴─────────────
VFS: Virtual File System vnode : vitual node
RPC: Remote Procedure Call
XDR: External Data Representation
Revision History
Created on Jan. 22 ,1993