Linux/CentOS
NFS
Glory-L
2022. 8. 28. 19:17
NFS
- Network Filesystem
- 네트워크를 통해 다른 장치의 파티션을 마운트
> 파티션을 제공하는 장치를 NFS server,
마운트 명령으로 파티션을 제공 받는 장치를 NFS client로 사용
- 최초에는 Unix 중 하나가 사용하던 service
>유용성이 높아 다른 OS에서도 사용
- 정보
패키지 : nfs-*(CentOS 7 버전부터 단일 패키지)
데몬 : nfs
방화벽 : service=nfs
설정파일 : /etc/exports

설정 파일 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도 같이 확인해주는 것이 좋다.
-> /nfs_server 디렉토리를 생성 해주지 않았기 때문에 생기는 문제

-> nfs를 사용하기 때문에 client 쪽에서 파일을 생성하면 server 측에도 자동으로 파일 생성 되는 것을 확인 할 수 있다.
nfs로 접속하여 파일을 공유하면 치명적인 단점이 서버에 있는 모든 용량을 클라이언트가 사용하게 되버린다.
-> 오토마운트로 용량 제한 해준 후 마운트 시켜주는 방법으로 해결 가능 * 방법은 automount 정리 글 참고


클라이언트 자동화?
-> server는 automount 설정을 해서 자동 마운트 되지만 클라이언트는 일일이 server쪽 파일을 mount 해줘야한다.
그렇기 때문에 autofs 이를 자동화를 시켜준다.
autofs
- auto filesystem
- 자동으로 filesystem(= partition)을 사용할 수 있도록 해주는 서비스
> /etc/fstab 파일과 역할은 비슷하지만, 설정이 아닌 서비스로 동작
( /etc/fstab 파일을 이용한 오토마운트는 부팅 시 무조건 적용)
but, autofs 서비스를 이용한 오토마운트는 데몬이 실행되어야 오토마운트가 동작)

- 정보
패키지 : 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에서 설정)