728x90
728x170
NFS(Network File System)
NFS(Network File System)의 개요
- NFS(Network File System)
- 1984년 Sun Microsystems 사에서 개발한 프로토콜
- TCP/IP 네트워크 상에서 다른 컴퓨터의 파일 시스템을 마운트하고 공유한다.
- 상대방의 파일 시스템 일부를 마치 자기 자신의 디렉터리인 것처럼 사용 할 수 있게 해준다.
- NIS 와 더불어 RPC(Remote Procedure Call) 기반으로 작동한다.
- 해당 서비스를 해주는 rpcbind(구 portmap) 데몬을 먼저 실행시켜야 한다.
- 사용이 편리한 대신, 보안에 상당히 미약하기 때문에 주의해서 사용해야 한다.
NFS 관련 주요 RPM 패키지
- NFS 서버를 구축하려면 다음과 같이 2개의 패키지를 설치해야 한다.
- rpcbind
- RPC 기반 연결을 위해 필요한 패키지
- rpcbind, rpcinfo 등 포함
- nfs-utils
- NFS 서버 관련 패키지
- 관련 데몬 및 명령어 포함
- rpcbind
- 만약 설치가 안되어 있으면, 다음의 명령을 실행하여 설치를 진행한다.
- # yum install rpcbind
- # yum install nfs-utils
NFS 서버의 설정의 개요
- NFS 서버의 접근 제어
- /etc/exports 파일에서 설정
- 특정 디렉터리에 rw 옵션을 지정하는 경우, 리눅스의 디렉터리 퍼미션에도 rw 권한이 있는지 반드시 확인해야 한다.
- /etc/exports 파일에서 설정
- 데몬 스크립트인 rpcbind, nfs-server를 실행하면 사용이 가능하다.
NFS 서버 설정 순서
① 접근 관련 설정
# vi /etc/exports
② 관련 데몬 실행
- 기본적으로 관련 데몬 스크립트는 nfs-server.service 이지만, nfs-server 라는 스크립트도 제공한다.
- 변동 사항이 있는 경우
- systemctl start nfs-server 스크립트 전에 systemctl daemon-reload 명령의 실행을 요구하기도 한다.
- 관련 메시지가 발생하면 먼저 실행하도록 한다.
- systemctl start nfs-server 스크립트 전에 systemctl daemon-reload 명령의 실행을 요구하기도 한다.
# systemctl start rpcbind
# systemctl start nfs-server
③ 서버 동작과 관련 메시지 확인
- NFS 서버 동작 오류 시에 매우 유용함.
- 성공적으로 시작했을 경우에도 관련 정보를 자세하게 확인할 수 있음.
# systemctl -l status nfs-server
④ 관련 서버 동작의 확인
- ps 명령으로 관련 데몬이 정상적으로 동작하는지 확인함.
# ps aux | egrep 'rpcinfo | nfs-server'
⑤ NFS 서버의 재시작
- NFS 서버 관련 설정을 변경했을 경우에는 관련 데몬을 재시작해야 함.
# systemctl restart nfs-server
⑥ 부팅 시 NFS 관련 서버 활성화
# systemctl enable rpcinfo nfs-server
환경 설정 파일 : /etc/exports
- /etc/exports 파일 설정
- 줄 단위로 외부에 공유할 디렉터리를 입력
- 공백([TAB])으로 구분하여 허가 할 호스트 지정 및 옵션 기입
- 허가 할 호스트
- IP 주소
- 도메인
- /etc/hosts 에 설정한 호스트명
- NIS 에서 설정한 그룹명
- 허가 할 호스트
- 와일드 카드로 ‘모두’ 라는 의미의 * 사용 가능
설정법
공유_할_디렉터리 허가할_호스트(옵션) [허가할_호스트(옵션) ...]
주요 옵션
옵션 | 설명 |
ro | 읽기 전용으로 지정하는 옵션 (기본값) |
rw | 읽기 및 쓰기가 가능하도록 지정하는 옵션 |
root_squash | - NFS 클라이언트에서 접근하는 root 사용자를 무시하고, 서버상의 nobody(또는 nfsnobody) 사용자로 매핑시키는 옵션 (기본값) - 일반 사용자의 권한은 그대로 인정됨. |
no_root_squash | NFS 클라이언트에서 접근하는 root 사용자를 무시하지 않고, root으로 인정함. |
no_subtree_check | 하위 디렉터리를 검사하지 못하도록 할 때 설정 |
all_squash | root를 포함하여 모든 사용자의 권한을 nobody(또는 nfsnobody) 사용자로 매핑시킴. |
secure | - 포트 번호가 1024 이하인 요청만 허가할 때 사용함. - 기본값을 설정됨. - 반대 설정 : insecure |
sync | - 변경 사항이 안정적으로 저장된 경우에만 관련 요청에 응답하도록 함. - 기본값으로 설정되어 있음. |
async | - 쓰기가 설정된 디스크 스토리지에 사용하면 유용한 옵션 - 데이터 변경(Data Corruption)에 대비해 비동기적 처리를 할 때 사용 |
anonuid | 접근하는 사용자 권한을 지정하는 uid로 매핑시킬 때 사용 |
anongid | 접근하는 그룹 권한을 지정하는 gid로 매핑시킬 때 사용 |
설정 예
/nfsdata 192.168.5.13
/nfdsdata1 192.168.5.0/255.255.255.0(rw, root_squash)
/nfdsdata2 192.168.12.0/24(rw, no_root_squash)
/nfdsdata1 *.hankuk.ac.kr(rw, all_squash)
/ master(rw) trusty(rw, no_root_squash)
/home/starrykss linux120(rw, all_squash, anonuid=500, anongid=500)
NFS 클라이언트에서 사용법
- NFS 클라이언트에서는 mount 명령을 이용하여 NFS 서버의 파일 시스템을 이용할 수 있다.
- 부팅할 때 마운트하여 사용하려면 /etc/fstab 파일에 등록하면 된다.
(1) mount 및 mount.nfs 명령 이용하기
사용 예
# mount -t nfs 192.168.5.13:/nfsdata /mnt
- 192.168.5.13의 /nfsdata를 /mnt 디렉터리로 마운트
# mount.nfs 192.168.5.13:/nfsdata /mnt
- 192.168.5.13의 /nfsdata를 /mnt 디렉터리로 마운트
(2) /etc/fstab 등록하기
설정 예
# vi /etc/fstab
192.168.5.13:/nfsdata /mnt nfs timeo=15,soft,retrans=3 0 0
주요 옵션
옵션 | 설명 |
timeo | - RPC 타임아웃이 발생된 후에 첫 번째 재전송 요구를 보낼 때의 시간 - 단위 : 1/10초 |
retrans | 타임아웃이 발생된 후에 재전송 요구의 회수를 지정함. |
soft | NFS 서버 요청에 실패하면 retrans에 설정한 횟수만큼 재요청을 시도함. |
hard | - NFS 서버 요청에 실패하면 무한정 재시도 함. - 특별히 옵션을 명기하지 않으면 기본적으로 적용됨. |
rsize | NFS 서버로부터 읽어 들이는 바이트 값 지정 |
wsize | NFS 서버에 쓸 때 적용되는 바이트 값 지정 |
fg | 포어그라운드 형태로 마운트를 시도하고, 실패하면 마운트를 중단함. |
bg | 첫 번째 마운트에 실패하면 백그라운드 형태로 다시 시도함. |
728x90
그리드형(광고전용)
'System Software > Linux' 카테고리의 다른 글
[리눅스 명령어] mdadm (0) | 2022.03.30 |
---|---|
[리눅스] 샌드메일(sendmail) 관련 주요 파일 (0) | 2022.03.18 |
[리눅스] /etc/named.conf (0) | 2022.03.18 |
[리눅스] /etc/logrotate.conf (0) | 2022.03.18 |
[리눅스] NTP(Network Time Protocol) (0) | 2022.03.18 |
[리눅스] KVM(Kernel-based Virtual Machine) (0) | 2022.03.18 |
[리눅스] vsftpd (0) | 2022.03.17 |
[리눅스] /etc/httpd/conf/httpd.conf (0) | 2022.03.17 |