Glory-L 2022. 8. 28. 19:17
NFS
 
- Network Filesystem
 
- 네트워크를 통해 다른 장치의 파티션을 마운트
> 파티션을 제공하는 장치를 NFS server,
  마운트 명령으로 파티션을 제공 받는 장치를 NFS client로 사용
 
 
- 최초에는 Unix 중 하나가 사용하던 service
>유용성이 높아 다른 OS에서도 사용
 

 

 

기본적으로 CentOS7 에 설치 되어 있다.

 
- 정보
 
패키지 : nfs-*(CentOS 7 버전부터 단일 패키지)
데몬 : nfs
방화벽 : service=nfs
설정파일 : /etc/exports

 

처음에 vi편집기로 열면 내용이 아무 것도 없다.

 
설정 값 입력하고 저장 후 나온다.
 
 
설정 파일 vi 입력 내용
 
1 /nfs_server  192.168.196.128(rw,no_root_squash,sync)
 
/nfs_server -> 내가 어떤 디렉토리를 공유하겠다고 알려줌
 
192.168.196.128 -> 용량을 공유 받을 장치의 ip 입력(client 개념?)
 
(rw,no_root_squash,sync) -> 옵션 부분(주의! ip와 옵션 사이에 공백이 들어가면 안된다)
 
※ ro : read only, rw : read + write(읽기와 저장 모두 가능)
 
※ root_squash : squash(짓이기다 , 으깨다), 클라이언트가 root권한으로 NFS 연결을 시도하려고 할 때 그 root 권한을 인정해주지 않겠다는 설정
  no_root_squash : 클라이언트가 root 사용자로 접근 했을 때 접근을 허용 한다는 의미
 
※ all_squash :
  no_all_squash :
 
default 값은 root_squash, no_all_squash로 설정 되어 있다.
 
※ sync : 연결하는 양쪽을 동기화 시켜주는 옵션
 
설정 파일 저장하고 systemctl restart nfs -> 데몬을 실행할 때는 항상 systemctl status도 같이 확인해주는 것이 좋다.
 
 

재실행은 잘 되었으나 status 하단에 문제가 있는것으로 보인다. (Failed to stat...)

 
-> /nfs_server 디렉토리를 생성 해주지 않았기 때문에 생기는 문제 
 
아까 오류가 사라진 것을 확인
 

MP(마운트 포인트)를 각각 만들어주고 nfs 파일 타입으로 server와 client를 마운트 시킨다.

 
-> nfs를 사용하기 때문에 client 쪽에서 파일을 생성하면 server 측에도 자동으로 파일 생성 되는 것을 확인 할 수 있다. 
 
 

마운트 확인

 
nfs로 접속하여 파일을 공유하면 치명적인 단점이 서버에 있는 모든 용량을 클라이언트가 사용하게 되버린다.
-> 오토마운트로 용량 제한 해준 후 마운트 시켜주는 방법으로 해결 가능 * 방법은 automount 정리 글 참고 

 

100M로 용량이 제한된 server 생성

 

server nfs 용량 만큼만 client쪽에서 받아온 것을 확인
 
클라이언트 자동화?
-> server는 automount 설정을 해서 자동 마운트 되지만 클라이언트는 일일이 server쪽 파일을 mount 해줘야한다. 

그렇기 때문에 autofs 이를 자동화를 시켜준다. 

 
autofs

 

- auto filesystem
 
- 자동으로 filesystem(= partition)을 사용할 수 있도록 해주는 서비스
> /etc/fstab 파일과 역할은 비슷하지만, 설정이 아닌 서비스로 동작
  ( /etc/fstab 파일을 이용한 오토마운트는 부팅 시 무조건 적용)
but, autofs 서비스를 이용한 오토마운트는 데몬이 실행되어야 오토마운트가 동작)

 

yum으로 설치

 

- 정보

 

패키지 : autofs-*
데몬 : autofs
방화벽 : X (통신을 하는것이 아닌 마운트를 자동으로 해주는 서비스이기 때문에)
설정파일 : /etc/autofs.conf
 
 
vi /etc/autofs.conf
 
설정 확인
 
#master_map_name = auto.master -> automount 작업 자체에 대한 설정은 여기서 하게 된다.
 
 
#browse_mode = no -> 굉장히 중요, autofs service로 오토마운트한 장치들을 보게 하는 것을 가능하게 할 것인지 아닌지
 
-> no에서 yes로 변경
 
mount_nfs_default_protocol = 4 -> 마운트 버전 프로토콜 몇을 사용할 것인지 -> ipv4 현재
 
 
ll /etc/auto.master -> 파일로 존재함
 
vi 설정
 
/misc  /etc/auto.misc -> /etc/auto.misc에 적힌 automount 관련된 내용들이 /misc에 적힘
 
 
vi /etc/auto.misc 설정 확인
 
각각             mount point              |               options                         |                device         를  기준으로 구성 되어 있다.
 
설정 추가하기
 
option : -rw, hard, intr ....
 
soft - 연결을 시도하다가 연결이 끊기면 그대로 접속 종료 하는 설정 
 
hard - 연결 시도하다가 실패하면 timeout 설정에 적힌 시간까지 접속을 시도 하는 설정
 
 
intr -> 인터럽트 설정, 중간에 연결이 비정상적으로 종료 되어 있을 때 그 정보를 유지해서 바로 연결할 수 있도록 하는 설정
 
local device를 automount 할꺼면 장치명 그대로 써줘도 되지만
 
원래 마지막 위치에는 그 해당 서버 ip가 들어가 줘야한다. (지금은 한개의 머신으로 서로 동작했기 때문에 자기 아이피를 넣어줌)
 

 

데몬 재실행

 

 

-> misc/nfs_auto/ 밑에 파일을 옮기면 공유 받으려는 ip주소의 계정 디렉토리에도 생성된다. (/etc/auto.misc에서 설정)