파일서버/NFS

NFS 설치 및 설정

서버엔지니어 2023. 3. 9.
728x90

NFS (Network File System)

NFS(Network File System)은 1984년에 썬 마이크로시스템즈가 개발한 프로토콜이며 네트워크상에서 file system을 공유하도록 설계된 file system의 한 종류입니다. 다른 host에 있는 file system의 일부를 자신의 폴더처럼 사용할 수 있게 해줍니다

 

NFS Server 설치 및 설정


rpcbind 와 nfs설치를 합니다.

설치가완료되면 아래와같이 nfs서버의 공유목록을 관리하는 /etc/exports파일에서 디렉토리,클라이언트ip,옵션등을 설정합니다.

yum -y install nfs nfs-utils-* rpcbind


vim /etc/exports
=================================================================
/home/test 192.168.9.40(rw,no_root_squash,sync)
=================================================================

/etc/exoports 옵션

ro : 파일 시스템을 읽기 전용(read only)로 마운트합니다.
rw : 파일 시스템을 읽고 쓸수 있도록 (read write) 마운트합니다.
insecure : 인증되지 않은 접근도 가능하도록 설정합니다.
no_root_squash : 서버와 클라이언트 모두 같은 루트(root)를 사용합니다
sync : Server와 client 간에 sync를 맞춥니다.
async : Server와 client 간에 sync를 맞추지 않습니다.

 

 

nfs는 rpcbind와 nfs를 제외하고는 모두 랜덤포트이기 때문에 /etc/sysconfig/nfs파일에서 포트를 고정 시켜주어야합니다. 

해당라인을 주석해제하시면 해당 포트로 고정이 됩니다.


vim /etc/sysconfig/nfs
=================================================================
12 RQUOTAD_PORT=875
20 LOCKD_TCPPORT=32803
22 LOCKD_UDPPORT=32769
57 MOUNTD_PORT=892

=================================================================

 

NFS 서비스 데몬

nfs : mountd에 의해 마운트된 디렉토리를 읽고, 쓰는 작업들을 처리해줍니다.
rpcbind : 시스템에서 rpc서비스를 관리하기위한데몬입니다.
nfslock : 파일을잠금을 제공하는 데몬으로 동시에 여러사람이 동일한파일을 수정하는것을 막습니다.
rquotad : nfs파일 시스템을 마운트한 사용자에게 quota를 처리합니다.
mountd : 클라이언트가 마운트를 요청하면 /etc/exports 파일 설정에 따라 마운트요청을 처리합니다.
방화벽에서 해당포트111,2049,875,32803,32763 tcp와 udp 모두 추가한 후 아래와 같이 rpcbind와 nfslock , nfs를 실행시켜주시면됩니다.

vim /etc/sysconfig/iptables
=================================================================
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 111 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 875 -j ACCEPT 
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 892 -j ACCEPT 
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 2049 -j ACCEPT 
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 32763 -j ACCEPT 
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 32803 -j ACCEPT 
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m udp --dport 111 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m udp --dport 875 -j ACCEPT 
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m udp --dport 892 -j ACCEPT 
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m udp --dport 2049 -j ACCEPT 
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m udp --dport 32763 -j ACCEPT 
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m udp --dport 32803 -j ACCEPT 
=================================================================

/etc/init.d/rpcbind start
/etc/init.d/nfslock start
/etc/init.d/nfs start

NFS Client 설치 및 마운트 

클라이언트에서 nfs마운트를하기위한 패키지를 아래와같이 설치한 후 마찬가지로 rpcbind와 nfslock,nfs를 실행한후 마운트를 진행하면 아래와같이 nfs로 마운트 되어있는 것을 확인할수 있습니다.

yum -y install nfs-utils nfs-utils-lib nfs-utils-devel nfs4-acl-tools libgssglue-devel

 

/etc/init.d/rpcbind start
/etc/init.d/nfslock start
/etc/init.d/nfs start
mount -t nfs4 192.168.9.50:/home/test01 /nfstest/

 

df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda3 ext4 455G 14G 418G 4% /
tmpfs tmpfs 495M 0 495M 0% /dev/shm
/dev/sda1 ext4 194M 29M 155M 16% /boot
192.168.9.50:/home/test01 nfs4 39G 9.3G 28G 26% /nfstest

부팅시 자동으로 nfs에 마운트되도록 설정

vim /etc/fstab

=================================================================
192.168.9.50:/home/test01 /nfstest nfs defaults 0 0

=================================================================

 

https://sysdocu.tistory.com/139

댓글