1. 개요
1) UNIX가 제공하는 파일 시스템 종류
FFS(Fast File System), UFS(Unix FS), RFS(Remote FS),NFS(Network File System), S55FS, EXT3 등
2) inode(index-node)
- 파일 시스템 내에서 파일을 관리하는 자료 구조
- 파일의 효율적인 관리와 접근을 위해 사용함
- 파일 크기, UID, GID, Permission, 생성일, 마지막 변경일 등이 있음
3) 디렉토리(Directory)
- 임의 파일들의 집합
- 유닉스 파일 시스템 계층 구조는 디렉토리를 이용한 트리 구조(p.61)
- 맨 위에는 루트 디렉토리가 있고, 아래로 내려가면서 서브 디렉토리가 위치
- 홈 디렉토리: 사용자가 로그인할 때 최초로 접근하는 디렉토리(‘/etc/passwd’)
- ‘.’은 현재 디렉토리를, ‘..’는 상위 디렉토리를 의미
4) fd(file descriptor)
- 파일 테이블을 가리키는 키 배열
- fd[0]: 표준 입력(stdin), 터미널로부터 데이터 입력
- fd[1]: 표준 출력(stdout), 터미널에 데이터 출력
- fd[2]: 표준 에러(stderr), 터미널로 오류 메시지 출력
※ 파일을 열 때는 사용하지 않는 fd를 파일에 연결 - 사용자 프로세스와 inode 사이의 관계
[ 사용자 프로세스 → fd → 파일 테이블 → inode ] - sys-open() 시 인자로 넘어간 파일 이름으로 디렉토리를 검사해 inode를 얻어온다.
- 파일 테이블은 해당하는 inode를 가리키고 있다.
- inode는 파일의 블록 포인터를 가지고 있다.
- 사용 예
$ gcc –o a a.c 2> /tmp/err
5) vnode/vfs(virtial file system)
- SunOS에서 최초로 도입한 가상의 파일 시스템
- 여러 종류의 파일 및 파일 시스템을 지원하기 위한 자료 구조
- 여러 타입의 파일 시스템을 동시에 지원하기 위한 구조
- 네트워크 등을 통한 파일 시스템 지원을 완벽하게 보장
6) 슈퍼블록(Super-Block)
- 아래와 같이 파일 시스템에 대한 모든 정보를 갖는다.
- 전체 inode 개수, 빈 inode 개수
- 전체 블록 개수, 빈 블록 개수
- 사용 가능한 최초 블록 번호
- 블록 하나 당 크기
- 마지막 마운트 시간
- 마지막 블록 쓰기 시간
- 매직 번호(파일의 타입을 지정하는 번호) - 지원하는 파일 시스템 종류
: ext, ext2, ext3, xia, minix, msdos, vfat, proc, smb, ncp, iso9660, sysv, hpfs, affs, ufs 등
2. 원격 파일 시스템(NFS)
1) 개요
- 네트워크에 파일을 저장하는 파일 시스템(Network File System)
- 외부(원격) 디렉토리를 마치 자기 컴퓨터의 디렉토리인 것처럼 사용할 수 있다.
- 중앙 집중형 파일 시스템을 구현할 수 있다.
- 원격으로 접속한 유저가 파일 소유 권한이 있다면, UID를 이용하여 접근할 수 있다.
2) 장점
- 여러 사용자들이 파일을 공유하기 편리하다.
- 물리적인 장치를 상대적으로 적게 사용한다. (비용 절감 및 효율적인 자원 이용)
- RAID를 활용하여 안정성을 증가시킬 수 있다.
- 스토리지 서버에서만 백업을 진행하면 되므로, 백업하기에 편리하다.
3) 단점
- 물리적으로 내장된 보조기억장치에 비해 속도가 느리다. (네트워크 속도에 따른 제약)
- 네트워크를 사용하므로 상대적으로 보안에 취약하다. (Kerberos 등의 프로토콜 필수)
- 중앙의 NFS 서버가 살아있을 때만 파일 서비스를 이용할 수 있다.
4) NFS가 제공하는 주요 서비스
- 마운트 서비스
- 원격 파일 액세스
- 원격 실행 서비스
- 원격 시스템 통계 서비스
- 원격 사용자 나열 서비스
- 부트 매개변수 서비스: Sun 운영 체제 디스크가 없는 클라이언트에 시작 매개변수 제공
- 원격 벽 서비스: 서버 및 클라이언트 보호 서비스
- 스프레이 서비스: 원격 프로시저 호출(RPC) 패킷의 단방향 스트림 전송
- PC 인증 서비스: PC에서 NFS에 접근하기 위한 사용자 인증 서비스
- 개선된 보안 서비스: Kerberos 5 프로토콜 등
- ID 변환 서비스: ID 정보 맵핑
5) NFS 관련 파일
- /etc/exports: 서버가 클라이언트에 반출하는 모든 디렉토리 표시
- /etc/xtab: 현재 반출된 디렉토리 나열(/etc/exports 파일과 유사한 형식)
- /etc/nfs/hostkey: NFS 서버가 Kerberos 호스트 Principal 및 keytab 파일의 위치 지정
- /etc/nfs/local_domain: 시스템의 로컬 NFS 도메인 저장
- /etc/nfs/realm.map: 수신 Kerberos Principal(name@kerberos-realm 형식)을 name@nfs-domain 형식으로 맵핑하는데 사용
- /etc/nfs/princmap: Principal이 서버의 완전한 도메인 이름이 아닌 경우 호스트 이름을 Kerberos Principal로 맵핑하는 데 사용
- /etc/nfs/security_default: NFS 클라이언트가 사용할 수 있는 보안 기능 목록 표시
'UNIX 이론 정리' 카테고리의 다른 글
inode 자료구조 및 stat() 구조체 (0) | 2022.10.03 |
---|---|
UNIX 프로세스 동작 - foreground 프로세스, background 프로세스 (0) | 2022.10.03 |
UNIX 입출력 장치 관리 - 특수 파일(디바이스 파일) (0) | 2022.10.03 |
UNIX 커널 내부 구조 (0) | 2022.10.03 |
UNIX 시스템의 특징, UNIX 가상 메모리 관리 (0) | 2022.10.03 |