- toc {:toc}
File-System Mounting
-
파일 시스템은 프로세스에 사용되기 전에 mount되어야 한다.
- Storage name, mount point(경로) 가 설정된다.
-
Root partition은 OS 포함한다.
- boot time에 mount 된다.
- 다른 partition은 자동, 수동으로 추가 가능
Virtual File Systems on Unix
- Virtual File System : 파일 시스템 구현의 객체 지향적 방식 제공
- 다형성을 이용해 파일 시스템 구현
- 다양한 타입의 파일 시스템에 대해 같은 시스템 콜 인터페이스 사용 허용
- 네트워크를 통해 고유하게 파일을 표현하는 매커니즘 제공
- EX) Linux
- inode object - 개별의 파일을 나타낸다.
- file object - 열린 파일을 나타낸다.
- superblock object - 전체 파일 시스템을 나타낸다.
- dentry object - 개별 디렉토리 entry를 나타낸다.
Remote File Systems
네트워크를 거쳐 파일 공유
- FTP(File Transfer Protocol) : 수동으로 각 파일을 공유한다.
- DFS(Distributed file system) : 여러 파일 시스템에서 동기적으로 공유. cluster에서 많이 사용한다.
- WWW(World Wide Web) : 링크로 다운로드, 업로드를 한다.
Network File System(NFS)
- 클라이언트-서버 네트워크 파일 시스템으로 널리 사용되고 구현되어 있다.
- NFS 서버로 동작하는 장비에 클라이언트가 접속하여 자신의 디스크처럼 사용할 수 있다.
- TCP, UDP/IP 프로토콜을 사용할 수 있다.
- RPC(Remote Procedure Call) : 서버 함수를 RPC 프로토콜을 사용해 가져올 수 있다.
- 투명한 방식으로 파일 시스템을 공유할 수 있게 한다.
- remote 디렉토리가 local 파일 시스템 디렉토리에 mount 되어 사용될 수 있다.
- Local에서 remote 디렉토리가 표시되는데 실제로는 서버에 있으나 접근해 사용 가능
NFS Mount Protocol
- Mount operation → (mount되는 remote 디렉토리 이름, 디렉토리를 저장하는 서버 이름)을 포함
- RPC에 mount request는 연결된다.
- Export list : mount 가능한 기기의 이름에 대해 명시
- Export list에 추가되어 있는 경우 서버는 mount된 디렉토리를 식별하는 file system identifier, inode number를 가진 file handler를 반환한다. ⇒ 추가적인 접근을 준다.
- Mount operation은 서버 측에 영향을 주지 않는다.
NFS Protocol
- Remote file 조작을 위해 RPC 제공
- 디렉토리에서 파일 찾기
- 디렉토리 entry 읽기
- 링크, 디렉토리 조작
- 파일 속성 접근
- 읽고 쓰기
- NFS 서버는 따로 저장하지 않고 필요할 때마다 읽어 처리한다. → 각 요청은 argment 전부를 제공
- 수정된 데이터는 결과가 클라이언트에 반환되기 전에 서버 디스크에 바로 적용되어야 한다.
- NFS protocol은 동시성 제어 매커니즘을 제공하지 않는다.
NFS Path-Name Translation
- Component 이름으로 경로 나누고 이름 및 디렉토리 vnode 쌍에 대해 별도 NFC lookup 호출을 해야한다.
- 이런 이름, 경로를 클라이언트 측에서 cache로 저장하면 빨라질 것.
NFS Remote Operations
-
System call과 NFS RPC 프로토콜은 거의 일대일 대응관계
-
성능 목적으로 buffering, caching 사용
- File-blocks cache : 파일이 열렸을 때 커널이 서버에서 cached 속성을 가져올지 재검증할지 확인(수정 여부 확인해야 하기 때문)
- File-attribute cache : 서버로부터 새로운 속성이 도착할 때마다 업데이트 된다.
-
서버에 데이터가 디스크에 써졌다는 확인 전에 클라이언트를 해제하면 안된다.