NFS (Network File System)
: TCP/IP 네트워크 상에서 다른 컴퓨터의 파일 시스템을 마운트하여 사용할 수 있도록 해주는 시스템
: RPC (Remote Procedure Call) 기반으로 작동
: 사용이 편리한 대신 보안이 취약
- RPC (Remote Procedure Call)
: 별도의 원격 제어를 위한 코딩 없이 다른 주소 공간에서 함수나 프로시저를 실행할 수 있게하는 프로세스 간 통신 기술
NFS 관련 명령어
- rpcinfo
- exportfs
- showmount
- nfsstat
rpcinfo
: rpc 관련 정보 출력
- 형식
: rpcinfo [option] [host]
- 주요 옵션
: -p
> 등록된 rpc 프로그램의 정보 출력
: -s
> 관련 정보를 간결하게 출력
exportfs
: NFS 서버에 export된 디렉터리 관리
- 형식
: exportfs [option] [host]
- 주요 옵션
: -v
> 자세히 출력
: -r
> /etc/exports 내용 다시 읽기
: -a
> export 된 모든 디렉터리 호출
: -u
> export된 하나 이상의 디렉터리 해제
showmount
: NFS 서버의 마운트 관련 정보 출력. NFS 클라이언트에서 NFS 서버에 export된 정보 확인
- 형식
: showmount [option] [host]
- 주요 옵션
: -a (--all)
> 호스트명:디렉터리 형태로 출력
: -e [host] (--exports)
> export 된 리스트 출력
: -d (--directories)
> NFS 클라이언트에 의해 마운트된 디렉터리 목록 출력
nfsstat
: NFS 관련 상태 정보 출력. 서버와 클라이언트에서 모두 사용 가능
- 형식
: nfsstat [option]
- 주요 옵션
: -c (--client)
> NFS 클라이언트 관련 정보 출력
: -s (--server)
> NFS 서버 관련 정보 출력
NFS 관련 파일
- /etc/exports
- /etc/rc.d/init.d/rpcbind
- /etc/rc.d/init.d/nfs
- /etc/fstab
/etc/exports
: NFS 환경설정 파일. 서버에 대한 접근 제어
- 형식
directory host(option) [host(option)]
: 허가할 host는 tab 단위로 띄어서 구분
- 주요 옵션
: ro
> 읽기 전용 (기본값)
: rw
> 읽기 및 쓰기
: root_squash
> 클라이언트의 root 사용자 무시 후 nobody 사용자로 매핑
: no_root_squash
> 클라이언트의 root 사용자 인정
: no_subtree_check
> 하위 디렉터리 검사 불가 설정
: all_squash
> root을 포함한 모든 사용자를 nobody로 매핑
: secure
> 포트번호가 1024 이하일 경우에만 허가 (기본값). 반대는 insecure
: sync
> 변경 사항이 안정적으로 저장된 경우에만 요청에 응답. (기본값)
: async
> 데이터 변경에 대해 비동기적으로 처리
: anonuid
> 접근하는 사용자 권한을 지정한 uid로 매핑
: anongid
> 접근하는 그룹 권한을 지정한 gid로 매핑
- 예시
```
/nfs/data1 192.168.10.3
/nfs/data2 192.168.5.0/255.255.255.0(rw, root_squash)
/nfs/data3 2mukee(rw,all_squash,anonuid=512)
```
/etc/rc.d/init.d/rpcbind
: rpc 데몬 스크립트
/etc/rc.d/init.d/nfs
: NFS 서버 데몬 스크립트
/etc/fstab
: NFS 클라이언트에서 NFS 마운트를 설정
NFS 서버 설정
1) 패키지 설치
- yum install rpcbind, nfs-utils
: rpcbind
> RPC 기반 연결을 위해 필요한 패키지. rpcbind, rpcinfo 포함
: nfs_utils
> NFS 서버 관련 패키지. 데몬 및 명령어 포함
2) 공유 디렉터리 생성 및 권한 설정
- mkdir /nfs/data1
- chmod 1777 /nfs/data1
3) /etc/export 파일 설정
- vim /etc/export
```
/nfs/data1 2mukee(rw,all_squash,anonuid=512)
```
3) 데몬 실행
- service rpcbind start
- service nfs start
4) 데몬 동작 확인
- ps aux | grep nfs
NFS 클라이언트 설정
1) NFS 서버의 파일 시스템 마운트
- mount -t nfs 192.168.10.1:/nfs/data1 /data1
2) 마운트 정보 확인
- mount | grep nfs
3) 공유 디렉터리 내에 파일 혹은 디렉터리 생성
- mkdir /data1/test
4) /etc/fstab 파일에 등록
- vim /etc/fstab
```
192.168.10.1:/nfs/data1 /data1 nfs timeo=15,soft,retrans=3 0 0
```
: 내용 추가
Refference
'Certification > 리눅스마스터' 카테고리의 다른 글
리눅스 메일 서버 관리 (0) | 2022.10.20 |
---|---|
리눅스 파일 서버 관리 3 - FTP (0) | 2022.10.20 |
리눅스 파일 서버 관리 1 - SAMBA (0) | 2022.10.20 |
리눅스 인증 서버 관리 (NIS/LDAP) (0) | 2022.10.20 |
리눅스 HTTP 서버 관리 (0) | 2022.10.17 |