차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

nfs_설정 [2017/01/25 05:18] – 만듦 zzungnfs_설정 [2026/01/20 01:04] (현재) koov
줄 1: 줄 1:
 +===== 환경 =====
  
 +  * Red Hat Enterprise Linux 7.3
 +  * NFS-Server 
 +    * Hostname : system1.example.com
 +  * NFS-Client
 +    * Hostname : system2.example.com
 +
 +
 +===== NFS-Server 기본 구성 ===== 
 +
 +  - 패키지 설치 및 구동
 +<code vim>
 +[root@system1 ~]# yum install nfs-server nfs-secure
 +[root@system1 ~]# systemctl status nfs-secure nfs-server
 +[root@system1 ~]# systemctl enable nfs-server nfs-secure
 +[root@system1 ~]# systemctl start nfs-server nfs-secure
 +</code>
 +
 +
 +  - NFS 마운트 폴더 생성
 +<code vim>
 +// NFS 에서 사용할 mount 폴더 생성
 +[root@system1 ~]# mkdir /public
 +[root@system1 ~]# mkdir /private
 +</code>
 +
 +  - NFS Export 설정
 +<code vim>
 +[root@system1 ~]# vi /etc/exports
 +/public     *.example.com(ro)     // ro 옵션은 Read only 
 +/private     *.example.com(rw,no_root_squash,sec=krb5p)     // rw 옵션은 ReadWrite, 
 +
 +[root@system1 ~]# exportfs -avr     // exports 파일에서 설정한 내용 시스템에 적용
 +exporting *.example.com:/private
 +exporting *.example.com:/public
 +</code>
 +
 +
 +  - 방화벽 설정
 +<code vim>
 +[root@system1 ~]# firewall-cmd --permanent --add-service=nfs
 +success
 +[root@system1 ~]# firewall-cmd --reload
 +success
 +</code>
 +
 +
 +===== NFS-Client 기본 구성 =====
 +
 +  - NFS-Utils 패키지 설치
 +<code vim>
 +[root@system2 ~]# yum install nfs-utils
 +</code>
 +  - NFS Client 에서 마운트할 디렉토리 생성
 +<code vim>
 +[root@system2 ~]# mkdir /mnt/nfsmount
 +[root@system2 ~]# mkdir /mnt/nfssecure
 +</code>
 +
 +  - NFS 마운트 테스트 
 +<code vim>
 +[root@system2 ~]# mount -t nfs 192.168.70.46:/public /mnt/nfsmount/
 +[root@system2 ~]# cd /mnt/nfsmount/
 +[root@system2 ~]# ls
 +</code>
 +
 +  - /etc/fstab 설정
 +<code vim>
 +[root@system2 ~]# vim /etc/fstab
 +system1.example.com:/public  /mnt/nfsmount  nfs defaults,_netdev 0 0
 +system1.example.com:/private /mnt/nfssecure nfs defaults,_netdev,sec=krb5p 0 0
 +</code>
 +
 +===== NFS-Server && Client (rw 옵션) 마운트 테스트 ===== 
 +
 +  * rw 옵션은 Read & Write 가 가능하며, 허용된 User 에 대해서만 접근 권한이 있음
 +  * 해당 테스트는 User " Koov " 유저만 rw 만 가능하게 설정하여 테스트 진행 함 
 +
 +
 +System1.example.com
 +<code vim>
 +[root@system1 ~]# useradd koov
 +[root@system1 ~]# id koov
 +uid=1001(koov) gid=1001(koov) groups=1001(koov)
 +[root@system1 ~]# chown koov -R /private/
 +[root@system1 ~]# ls -ld /private/
 +drwxr-xr-x. 3 koov root 30 Jan 24 16:56 /private/
 +
 +</code>
 +
 +system2.example.com
 +
 +<code vim>
 +[root@system2 secret]# id koov
 +uid=1001(koov) gid=1001(koov) groups=1001(koov)
 +[root@system2 ~]# mount -t nfs system1.example.com:/private /mnt/nfssecure/
 +[root@system2 ~]# cd /mnt/nfssecure
 +[root@system2 nfssecure]# whoami
 +root
 +[root@system2 nfssecure]# touch TEST.txt
 +touch: cannot touch ‘TEST.txt’: Permission denied
 +
 +[root@system2 ~]# su - koov
 +Last login: Tue Jan 24 17:09:03 KST 2017 on pts/0
 +[koov@system2 ~]$ whoami
 +koov
 +[koov@system2 ~]$ cd /mnt/nfssecure/
 +[koov@system2 nfssecure]$ touch TEST.txt
 +[koov@system2 nfssecure]$ ls
 +TEST.txt
 +</code>
 +
 +===== NFS 구성시 주의점 =====
 +
 +동일 NFS서버에 마운트가 필요한 경우 마운트 포인트중 몇개는 마운트가 안되는 경우가 생긴다.
 +예를 들어
 +
 +<WRAP prewrap>
 +<code bash>
 +192.168.0.5:/volume2/PUBLIC  /pub  nfs  _netdev,defaults  0 0
 +192.168.0.5:/volume2/ISO     /iso  nfs  _netdev,defaults  0 0
 +</code>
 +</WRAP>
 +
 +위와같이 ''192.168.0.5'' 서버에 2개의 exports가 존재하고 둘다 마운트해야할때 클라이언트에 위와같이 fstab에 선언하여도 둘다 마운트 되는것이 아니라 하나만 마운트 되는 경우가 있다.
 +
 +이것은 NFS서버쪽에서 짧은시간에 여러개의 마운트 요청이 들어오면 하나만 처리되고 나머지는 무시되는 현상이 발생해서 그렇다.
 +
 +이럴때는 마운트 하는 클라이언트 쪽에서 해당 경로 접근시 자동 마운트 하도록 ''automount''기능을 이용하는것이 좋다.
 +
 +<WRAP prewrap>
 +<code vim>
 +192.168.0.5:/volume2/PUBLIC  /pub  nfs  _netdev,defaults,x-systemd.automount,x-systemd.idle-timeout=600  0 0
 +192.168.0.5:/volume2/ISO     /iso  nfs  _netdev,defaults,x-systemd.automount,x-systemd.idle-timeout=600  0 0
 +</code>
 +</WRAP>
 +
 +위와같이 하면 해당경로를 시스템이 접근하는 순간 자동으로 마운트 해주기 때문에 부팅시 딜레이도 줄일수 있고 안정적이므로 권장한다.
  • nfs_설정.txt
  • 마지막으로 수정됨: 2026/01/20 01:04
  • 저자 koov