NFS란?
- TCP/IP 네트워크 상에서 다른 컴퓨터의 파일 시스템을 마운트하고 공유하는 서버 프로그램입니다.
- 상대방의 파일 시스템 일부를 자신의 디렉터리처럼 사용합니다.
NFS 세팅
- 설치
- rpcbind : RPC 기반 연결을 위해 필요한 패키지입니다.
- nfs-utils : NFS 서버 관련 패키지로 관련 데몬 및 명령어를 포함합니다.
- NFS 서버 설정
- service rpcbind start
- service nfs start
/etc/exports
- NFS 환경설정 파일
- 외우는 법 : D-F 순이므로, "디피헬만" 알고리즘으로 외웠습니다.
공유할디렉터리 허가할호스트(옵션) [허가할호스트(옵션)]
- ro / rw : read only, read write
- root_squash : root 사용자를 nobody 사용자로 취급
- no_root_squash : root 사용자를 인정
- all_squash : root 사용자를 포함하여 모든 사용자의 권한을 nobody 사용자로 취급
- no_all_squash : 모든 유저에게 동일 권한을 줌
- anonuid / anongid : 접근하는 사용자 / 그룹 권한을 지정하는 uid로 매핑
/nfsdata 192.168.5.13
/nfsdata1 192.168.5.0/255.255.255.255(rw,root_squash)
/nfsdata2 192.168.12.0/24(rw, no_root_squash)
/nfsdata1 *.mohaemookji.com(rw,all_squash)
/ master(rw) trusty(rw,no_root_squash)
/home/posein linux120(rw,all_squash,anonuid=500,anongid=500)
NFS 클라이언트 설정
mount –t nfs 192.168.5.13:/nfsdata /mnt
# 또는
mount.nfs 192.168.5.13:/nfsdata /mnt
vi /etc/fstab
192.168.5.13:/nfsdata /mnt nfs timeo=15,soft,retrans=3 0 0
rpcinfo
- rpc 관련 정보 출력
- -p: 등록된 rpc 프로그램의 정보 출력
- -s: 관련 정보를 간결하게 출력
rpcinfo [option] [호스트명]
exports
NFS 서버에 export된 디렉터리 정보를 관리
-v : 설정된 내용 자세히 출력
-r : /etc/exports에 설정된 내용을 다시 읽어들임
-a : 한번에 export된 디렉터리 호출
-u : export된 하나 이상의 디렉터리 해제
exportfs [option] [호스트명]
showmount
- NFS 서버 마운트 관련 정보 출력
-a : 호스트명:디렉터리 형태로 출력 (--all)
-e [호스트명] : export된 리스트 출력 (--exports)
-d : NFS 클라이언트에 의해 마운트된 디렉터리 목록 정보 출력 (--directories)
showmount [option] [호스트명]
nfsstat
- NFS 관련 정보 출력. 서버와 클라이언트 모두 사용 가능
-c : 클라이언트 관련 정보만 출력 (--client)
-s : 서버 관련 정보만 출력 (--server)
문제1
Q. 다음은 NFS 서버의 설정파일이다. 다음 조건에 맞게 ( 괄호 ) 안에 알맞은 내용을 적으시오.(9점)
/etc/exports
( ① ) 192.168.10.10( (②), (③) )
■ 조 건
- nfs 공유 디렉터리는 /data/nfs 이다.
- 공유된 자원을 읽기/쓰기로 마운트 한다.
- 클라이언트에서 루트를 서버상에 nobody 사용자로 매핑 한다.
문제1. 풀이
- /data/nfs
- rw
- root_squash
문제2
Q. 다음은 NFS 클라이언트에서 부팅시 NFS 서버의 파일시스템을 이용할 수 있도록 설정하는과정이다. ( 괄호 ) 안에 알맞은 내용을 적으시오.(9점)
# vi /etc/fstab
( ① ) ( ② ) ( ③ ) timeo=30,soft,retrans=5 0 0
■ 조 건
- NFS 서버 도메인은 data.example.com이고 공유 디렉터리명은 /shared이다.
- NFS 클라이언트에서 마운트할 디렉터리명은 /remote_data이다.
문제2. 풀이
- data.example.com:/shared
- /remote_data
- nfs
문제3
Q. 다음은 NFS 서버에 대한 설정이다. ( 괄호 ) 안에 알맞은 내용을 적으시오.
# vi ( ① )
( ② )
■ 조건
- ① : NFS 서버의 설정 파일명을 절대경로로 기입한다.
- ② : 다음의 두 가지 조건에 해당하는 관련 설정을 한 줄로 기입한다.
가. /data/presales 디렉터리를 *
.example.com 도메인 대역에서 접근이 가능하고읽기, 쓰기가 가능하도록 한다.
나. NFS 클라이언트에서 root 사용자를 NFS 서버상에 root 사용자로 매핑하고읽기,
쓰기가 가능하도록 설정한다.
문제3. 풀이
- /etc/exports
- /data/presales *.example.com(rw, no_root_squash)
문제4
Q. 다음은 NFS 서버 설정에 대한 내용 이다. ( 괄호 ) 안에 알맞은 옵션을 넣으시오.
[root@ihd ~]# vi /etc/exports
/nfs_share ( ① )(rw,( ② ))
■ 조건
- 공유 디렉터리명 : /nfs_share
- 공유 접근 및 사용 권한 : root 사용자권한 읽기 쓰기 가능
- 공유 접근 클라이언트 : 192.168.5.0 네트워크의 주소를 갖는 클라이언트
문제4. 풀이
- 192.168.5.0/255.255.255.0
- no_root_squash
문제5
Q. 다음은 NFS 서버 및 클라이언트에서 명령어를 사용해서 정보를 확인하는 과정이다. 조건에 맞게 ( 괄호 ) 안에 알맞은 내용을 적으시오.
가. NFS 서버에서 외부에 공유된 내용을 세부적인 설정 정보를 포함해서 자세히
출력한다.
# ( ① )
나. NFS 클라이언트에서 NFS 서버인 192.168.12.22의 공유된 정보를 확인한다.
# ( ② ) 192.168.12.22
다. RPC 관련 정보를 확인한다.
# ( ③ )
라. NFS 서버 또는 NFS 클라이언트에서 NFS 관련 상태 정보를 출력한다.
# ( ④ )
■ 조건
- ①∼④번은 명령어 또는 명령어와 옵션 조합으로 기재한다.
문제5. 풀이
- exportfs -v
- showmount
- rpcinfo (또는 nfsstat -r)
- nfsstat
문제6
Q. 다음은 NFS 서버를 설정하는 과정이다. 조건에 맞게 ( 괄호 ) 안에 알맞은 내용을 적으시오
# vi ( ① )
/ihd ( ② ) (rw, ( ③ ) )
/kait 192.168.12.22 (rw, ( ④ ))
- /ihd 디렉터리에 접근할 수 있는 호스트는 192.168.5.0 네트워크 대역에 속한 호스트만 허가하고, root 사용자 권한으로 읽기 및 쓰기를 허가한다.
- /kait 디렉터리에 접근할 수 있는 호스트는 IP 주소가 192.168.12.22인 호스트만 가능하고, root 사용자를 포함해서 모든 사용자 권한은 인정하지 않는다.
문제6. 풀이
- /etc/exports
- 192.168.5.0/255.255.255.0
- no_root_squash
- all_squash