Ch2 NFS 서버 설정
NFS 서버 설정 /etc/exports
TCP/IP 네트워크상에서 다른 컴퓨터의 파일 시스템을 마운트하고 공유한다.
상대방의 파일 시스템 일부를 마치 자기 자신의 디렉터리인 것처럼 사용 할 수 있게 해준다.
NIS와 더불어 RPC 기반으로 작동한다.
해당 서비스를 해주는 rpcbind 데몬을 먼저 실행시켜야한다
사용이 편리한 대신, 보안에 상당히 미약하기 때문에 주의해서 사용해야 한다.
NFS 서버를 구축 하려면 다음과 같이 2개의 패키지를 설치해야 한다.
rpcbind
prc 기반의 연결을 위해 필요한 패키지
rpcbind, prcinfo 등 포함
nfs-utils
NFS 서버 관련 패키지
관련 데몬 및 명령어 포함
NFS 서버의 접근 제어
/etc/exports 파일에서 설정
특정 디렉터리에 rw 옵션을 지정하는 경우, 리눅스 디렉터리 퍼미션에도 rw 권한이 있는지 반드시 확인해야 한다.
데몬 스크립트인 rpcbind, nfs-server를 실행하면 사용이 가능하다.
접근 관련 설정
vi /etc/export
관련 데몬 실행
기본적으로 관련 데몬 스크립트는 nfs-server.service 이지만, nfs-server 라는 스크립트도 제공한다.
변동 사항이 있는 경우
systemctl start nfs-server 스크립트 전에 systemctl daemon-reload 명령의 실행을 요구하기도 한다.
관현 메시지가 발생하면 먼저 실행하도록 한다.
systemctl start rpcbind
systemctl start nfs-server
/etc/export 파일 설정
줄 단위로 외부에 공유할 디렉터리를 입력
공백([tab])으로 구분하여 허가 할 호스트 지정 및 옵션 기입
허가 할 호스트
IP 주소
도메인
/etc/hosts에 설정한 호스트명
NIS 에서 설정한 그룹명
와일드 카드로 '모두'라는 의미의 * 사용 가능
설정법
공유할_디렉터리 허가할_디렉터리 허가할_호스트(옵션)
주요 옵션
ro | 읽기 전용으로 지정하는 옵션(기본값) |
rw | 읽기 및 쓰기가 가능하도록 지정하는 옵션 |
root_squash | NFS클라이언트에서 접근하는 root 사용자를 무시하고, 서버상의 nobody로 매핑시키는 옵션, 일반 사용자의 권한은 그대로 인정된다 |
no_root_squash | NFS클라이언트에서 접근하는 root 사용자를 무시하지 않고, root으로 인정한다. |
all_squash root | root 를 포함하여 모든 사용자의 권한은 nobody로 매핑시킨다. |
no_subtree_check | 하위 디렉터리를 검사하지 못하도록 할 때 설정 |
secure | - 포트 번호가 1024 이하인 요청만 허가할 때 사용한다. - 기본값으로 설정되어 있다. - 반대 설정: insecure |
sync | 변경 사항이 안정적으로 저장된 경우에만 관련 요청에 응답하도록 한다. 기본값으로 설정되어 있다. |
async | 쓰기가 설정된 디스크 스토리지에 사용하면 우용한 옵션 데이터 변경에 대비해 비동기적 처리를 할 때 사용 |
annouid | 접근하는 사용자 권한을 지정하는 uid로 매핑시킬 때 사용 |
annogid | 접근하는 그룹 권한을 지정하는 gid로 매핑시킬때 사용 |
주요옵션
timeo | RPC 타임아웃이 발생된 후에 첫 번째 재전송 요구를 보낼 때의 시간 단위 1/10초 |
retrans | 타임아웃이 발생된 후에 재전송 요구의 횟수를 지정한다. |
soft | NFS 서버 요청에 실패하면 returans에 설정한 회수만큼 재요청을 시도한다. NFS 서버 요청에 실패하면 무한정 재시도한다. 특별히 옵션을 명시하지 않으면 기본적으로 적용된다. |
rsize | NFS 서버로부터 읽어 들이는 바이트 값 지정 |
wsize | NFS 서버에 쓸 때 적용되는 바이트 값 지정 |
fg | Foreground 형태로 마운트를 시도하고, 실패하면 마운트를 중단한다. |
bg | 첫번째 마운트에 실패하면 백그라운드 형태로 다시 시도한다. |