본문 바로가기

Linux

NFS

[NFS(Network FileSystem)]
  - 네트워크를 통한 다른 장치의 파티션을 마운트

  - 정보
      패키지 : nfs-utils
      데몬 : nfs
      방화벽 : service=nfs
      설정파일 : /etc/exports  (파일은 이미 존재하지만 안에 내용은 없는 크기가 0짜리 파일임)

  - 설정파일 내용 입력 형식
       <공유할 디렉토리> <서버에 접근할 ip주소>(옵션)
       ex)  /nfs_server 192.168.X.X(rw,root_squash,sync)

 

       * 옵션
           rw                 : 권한
           root_squash : client가 root로 로그인했을 때 root로 취급 안해주고 nobody 취급
           sync             : 양쪽 동기화 옵션


  - Client 접속 형식
         mount -t nfs <NFS 서버 ip>:<서버 공유 디렉토리> <마운트 할 Client 디렉토리>


showmount -e <NFS서버 ip>

  - nfs 가능한 목록을 보여줌

 

exportfs -v

  - 적용된 exports 설정 정보를 보여줌

 

rpcinfo -p

  - RPC Service들의 정보를 출력

  - portmapper, mountd, nfs, nfs_acl, nlockmgr이다.

              * RPC(Remote Procedure Call) : 원격 프로세스 호출을 의미

 

rpc.mountd

  - 클라이언트가 마운트를 요청하면 /etc/exports 파일 설정에 따라 마운트 요청을 처리

 

rpc.nfsd

  - 클라이언트가 rpc.mountd에 의해 마운트 되면, rpc.nfsd를 사용하여 클라이언트의 요구에 따라 처리

    (/etc/exports에 설정에 따라 작업을 할 수 있다)

 

rpc.statd

  - rpc.rockd와 함께 파일 잠금 해제와 비정상적으로 종료 시 복구를 담당

 

rpc.lockd

  - 파일 잠금을 통해 클라이언트에서 여러 사용자가 한 파일을 수정하는 것을 방지

 

Portmap

  - RPC(Remote Procedure Call) 프로그램을 Port에 Mapping 시킴

 


1번 CentOS7(10.0.0.1)을 서버로 사용할 것이다

nfs 패키지 설치 후 진행한다

 

공유할 디렉토리를 생성 해준다

/etc/exports

nfs 서버가 공유 할 디렉토리를 설정 파일에 추가 해준다

서버에 접근 가능한 client는 ip주소가 10.0.0.X 인 client들이다

방화벽을 열어주고 설정파일을 제대로 작성했는지 확인한다

이제 Client에서 nfs를 확인 해본다

마찬가지로 nfs 패키지를 설치 후 진행한다

 

2번 CentOS7(10.0.0.2)

client는 서버에서 공유한 디렉토리를 마운트 시킬 포인트를 만들고 nfs로 마운트 시킨다

 

nfs-server

server에서 공유한 디렉토리에 파일을 생성하면

 

nfs-client

client의 마운트 포인터에도 생성된 것을 통해 nfs가 성공적으로 동작하는 것을 확인할 수 있다

root_squash 옵션으로 client가 nfs 연결 시 root 취급을 받지 못하는데

서버가 공유한 디렉토리에 other의 w 권한이 없기 때문에 client에서 파일 생성이 불가능 하다

 

nfs-server

서버에서 공유할 디렉토리에 other의 w 권한을 추가 해주면

 

nfsc-client

client에서도 파일 생성 및 삭제가 가능하다

하지만 nfs는 랜덤 port를 사용하기 때문에 방화벽 문제가 발생할 수 있다

그렇기 때문에 nfs port를 고정해서 사용하는 것이 좋다

 

/etc/sysconfig/nfs

nfs 설정 파일에 rpc.locd, rpc.mountd, rpc.statd의 port를 주석 해제 후 수정해서 고정해준다

 

nfs 포트가 고정 된것을 확인할 수 있다 이제 해당 포트의 방화벽을 열어준다

(111, 2049, 50001 - 50003/ tcp,udp)

 

nfs server

nfs server에서 공유 디렉토리에 파일을 생성 해주면 

 

nfs client

client에서도 확인이 가능하다

이제 마운트 시 설정 해준 고정 포트로 마운트 되었는지를 확인하면 된다

설정 했던 rpc.mountd port는 50002였다

 

nfs server

서버에서 확인 해보면 설정해준 고정포트로 마운트 된것을 확인할 수 있다

'Linux' 카테고리의 다른 글

Proxy 서버  (0) 2022.10.12
Sendmail & Dovecot  (0) 2022.10.11
HTTP - 인증, 접근 제어  (0) 2022.10.10
주, 보조 DNS + VirtualHost  (0) 2022.10.09
DNS + HTTP  (0) 2022.10.09