2sjin
2sjin
2sjin

블로그 메뉴

  • My GitHub
  • 전체 게시글
    • UNIX 이론 정리
    • Linux
      • Linux 관련 노하우
      • Linux 과제
      • OracleCloud & Ubuntu
      • Tomcat Server
      • MySQL Server
      • 구름 OS
      • 라즈베리파이4
    • 데이터베이스
      • DB 관련 노하우
      • DB 과제
      • DB 프로젝트
    • Unity
    • Computer Science
      • 통신 & 네트워크
      • 자료구조 & 알고리즘
      • 운영체제
      • 정보보호
      • 기타 분야
    • 소프트웨어
      • 소프트웨어공학
      • 프로그래밍 언어

공지사항

인기 글

태그

  • 팀 프로젝트
  • 개인 Term Project

최근 글

티스토리

전체 방문자
오늘
어제
hELLO · Designed By 정상우.
2sjin

2sjin

UNIX 이론 정리

UNIX 파일 시스템, 원격 파일 시스템(NFS)

2022. 10. 3. 19:52

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
'UNIX 이론 정리' 카테고리의 다른 글
  • inode 자료구조 및 stat() 구조체
  • UNIX 프로세스 동작 - foreground 프로세스, background 프로세스
  • UNIX 입출력 장치 관리 - 특수 파일(디바이스 파일)
  • UNIX 커널 내부 구조
2sjin
2sjin

티스토리툴바