ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • LINUX NFS서버 구축하는 방법
    System of Infra/Linux System 2022. 7. 9. 21:43
    반응형

    LINUX 로고이미지

    LINUX NFS서버 구축하는 방법

    ★NFS(Network File System) 설명
    1. 컴퓨터 사용자가 원격 컴퓨터에 있는 파일을 마치 자신의 컴퓨터에 있는 것처럼 검색하고 사용하며 읽기/쓰기를 사용할 수 있음.
    2. SMB와 거의 흡사하지만 Linux와 Windows간 파일공유에는 대부분 SMB를 쓰고, Linux 간에는 대부분 NFS를 사용함, NFS는 TCP/IP 프로토콜을 사용하며, 포트번호는 고정되어있지 않음.

    리눅스 서버#1 : 192.168.111.100(NFS서버)
    리눅스 서버#2: 192.168.111.130
    윈도우 서버#3: 192.168.111.128
    [root@localhost /]# dnf -y install nfs-utils
    마지막 메타 데이터 만료 확인 : 1 day, 21:08:45 전에 2022년 07월 07일 (목) 오후 11시 09분 01초.
    Package nfs-utils-1:2.3.3-14.el8.x86_64 is already installed.
    종속성이 해결되었습니다.
    ========================================================================================================
     꾸러미                 아키텍처            버전                              리포지토리           크기
    ========================================================================================================
    Upgrading:
     nfs-utils              x86_64              1:2.3.3-14.el8_0.2                BaseOS              466 k
    
    거래 요약
    ========================================================================================================
    업그레이드  1 꾸러미
    
    총 다운로드 크기 : 466 k
    패키지 다운로드중:
    nfs-utils-2.3.3-14.el8_0.2.x86_64.rpm                                   168 kB/s | 466 kB     00:02    
    --------------------------------------------------------------------------------------------------------
    합계                                                                    168 kB/s | 466 kB     00:02     
    트랜잭션 점검 실행 중
    트랜잭션 검사가 성공했습니다.
    트랜잭션 테스트 실행 중
    트랜잭션 테스트가 완료되었습니다.
    거래 실행 중
      준비 중입니다  :                                                                                  1/1 
      스크립틀릿 실행: nfs-utils-1:2.3.3-14.el8_0.2.x86_64                                              1/1 
      스크립틀릿 실행: nfs-utils-1:2.3.3-14.el8_0.2.x86_64                                              1/2 
      Upgrading      : nfs-utils-1:2.3.3-14.el8_0.2.x86_64                                              1/2 
      스크립틀릿 실행: nfs-utils-1:2.3.3-14.el8_0.2.x86_64                                              1/2 
      스크립틀릿 실행: nfs-utils-1:2.3.3-14.el8.x86_64                                                  2/2 
      정리           : nfs-utils-1:2.3.3-14.el8.x86_64                                                  2/2 
      스크립틀릿 실행: nfs-utils-1:2.3.3-14.el8.x86_64                                                  2/2 
      확인 중        : nfs-utils-1:2.3.3-14.el8_0.2.x86_64                                              1/2 
      확인 중        : nfs-utils-1:2.3.3-14.el8.x86_64                                                  2/2 
    
    업그레이드 됨:
      nfs-utils-1:2.3.3-14.el8_0.2.x86_64                                                                   
    
    완료되었습니다!
    ▶ 리눅스 서버#1(NFS서버)에 NFS 패키지를 dnf -y install nfs-utils 명령어를 수행하여 설치합니다.
    [root@localhost /]# rpm -qa | grep -i nfs-util
    nfs-utils-2.3.3-14.el8_0.2.x86_64
    ▶ rpm 명령어를 통해서 리눅스 서버#1(NFS서버)에 nfs-utils-2.3.3-14.el8_0.2.x86_64 버전 패키지가 설치된 것을 확인할 수 있습니다.
    [root@localhost /]# mkdir nfsshare
    
    [root@localhost /]# chmod 777 nfsshare
    
    [root@localhost /]# cp /var/log/vm* /nfsshare/
    ▶ 리눅스 서버#1(NFS서버)에 공유할 디렉터리 이름을 nfsshare로 생성을 합니다. 생성이 완료되면 디렉터리에 대한 권한을 소유자/그룹/기타 사용자 모두 읽기/쓰기/실행의 권한을 부여합니다.
    추가적을  /var/log/vm*으로 시작되는 파일을 nfsshare에 복사를 합니다.
    [root@localhost nfsshare]# ls -ltr
    합계 80
    -rw------- 1 root root  1421  7월  9 20:20 vmware-network.1.log
    -rw------- 1 root root  1121  7월  9 20:20 vmware-network.2.log
    -rw------- 1 root root  1120  7월  9 20:20 vmware-network.4.log
    -rw------- 1 root root  1420  7월  9 20:20 vmware-network.3.log
    -rw------- 1 root root  1420  7월  9 20:20 vmware-network.5.log
    -rw------- 1 root root   739  7월  9 20:20 vmware-network.6.log
    -rw------- 1 root root  1120  7월  9 20:20 vmware-network.7.log
    -rw------- 1 root root  1420  7월  9 20:20 vmware-network.8.log
    -rw------- 1 root root  1121  7월  9 20:20 vmware-network.log
    -rw------- 1 root root   739  7월  9 20:20 vmware-network.9.log
    -rw------- 1 root root  7782  7월  9 20:20 vmware-vgauthsvc.log.0
    -rw-r--r-- 1 root root 22886  7월  9 20:20 vmware-vmsvc.log
    -rw-r--r-- 1 root root  6590  7월  9 20:20 vmware-vmusr.log
    ▶ 리눅스 서버#1(NFS서버)에 vmware로 시작되는 파일이 복사된 것을 확인할 수 있습니다.
    [root@localhost /]# vi /etc/exports
    /nfsshare	192.168.111.*(rw,sync)
    ▶ 리눅스 서버#1(NFS서버)에 /etc/exports 파일을 편집기로 열어서 공유할 디렉토리명 /nfsshare 등록을 하고 공유할 아이피에 대해서 192.168.111.* 대역 모두에 rw(읽기/쓰기) 권한을 부여한 뒤 sync 동기화하겠다는 설정을 한 뒤 저장합니다.
    [root@localhost /]# systemctl restart nfs-server
    
    [root@localhost /]# systemctl enable nfs-server
    Created symlink /etc/systemd/system/multi-user.target.wants/nfs-server.service → /usr/lib/systemd/system/nfs-server.service.
    ▶ 리눅스 서버#1(NFS서버)에서 nfs 서비스를 재기동 하고 재부팅 뒤 활성화되도록 enable 합니다.
    [root@localhost /]# exportfs -v
    /nfsshare     	192.168.111.*(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)
    ▶ 리눅스 서버#1(NFS서버)에 exportfs -v를 사용하게 되면 어떤 디렉토리를 공유하는지에 대해서 확인을 할 수 있습니다.
    [root@localhost etc]# cat rpc
    #ident	"@(#)rpc	1.11	95/07/14 SMI"	/* SVr4.0 1.2	*/
    #
    #	rpc
    #
    portmapper	100000	portmap sunrpc rpcbind
    rstatd		100001	rstat rup perfmeter rstat_svc
    rusersd		100002	rusers
    nfs		100003	nfsprog
    ypserv		100004	ypprog
    mountd		100005	mount showmount
    ▶ /etc/rpc 파일을 확인하게 되면 nfs는 고정 포트가 지정되어 있지 않기 때문에 해당 파일에 등록되어 있는 포트를 통해서 사용이 되고 있습니다. 해당 파일에서 nfs의 경우 100003으로 지정되어 있는 것을 확인할 수 있습니다.
    [root@localhost etc]# rpcinfo -p
       program vers proto   port  service
        100000    4   tcp    111  portmapper
        100000    3   tcp    111  portmapper
        100000    2   tcp    111  portmapper
        100000    4   udp    111  portmapper
        100000    3   udp    111  portmapper
        100000    2   udp    111  portmapper
        100024    1   udp  47110  status
        100024    1   tcp  54179  status
        100005    1   udp  20048  mountd
        100005    1   tcp  20048  mountd
        100005    2   udp  20048  mountd
        100005    2   tcp  20048  mountd
        100005    3   udp  20048  mountd
        100005    3   tcp  20048  mountd
        100003    3   tcp   2049  nfs
        100003    4   tcp   2049  nfs
        100227    3   tcp   2049  nfs_acl
        100021    1   udp  47304  nlockmgr
        100021    3   udp  47304  nlockmgr
        100021    4   udp  47304  nlockmgr
        100021    1   tcp  46447  nlockmgr
        100021    3   tcp  46447  nlockmgr
        100021    4   tcp  46447  nlockmgr
    ▶ 추가적으로 nfs 외의 고정할당 되어 있지 않은 포트들의 서비스에 대해서 어떤 번호를 쓰는지 확인을 할 수 있습니다. (rpc에 등록되어 있는 데몬만 확인할 수 있음)
    [root@localhost /]# rpm -qa | grep -i nfs-util
    nfs-utils-2.3.3-14.el8.x86_64
    ▶ 리눅스 서버#2에서 nfs 패키지를 설치합니다.
    [root@localhost /]# showmount -e 192.168.111.100
    Export list for 192.168.111.100:
    /nfsshare 192.168.111.*
    ▶ 리눅스 서버#2에서 showmount -e 명령어를 통해서 NFS서버에서 어떤 디렉터리를 공유 디렉터리로 제공하고 있는지 확인할 수 있습니다.
    [root@localhost /]# mkdir myshare
    
    [root@localhost /]# mount -t nfs 192.168.111.100:/nfsshare myshare
    
    [root@localhost /]# df -Th | grep -i myshare
    192.168.111.100:/nfsshare nfs4       76G  5.5G   71G   8% /myshare
    ▶ 리눅스 서버#2에서 마운트 할 디렉터리 myshare를 생성해주고 NFS서버에 있는 nfsshare 공유 디렉터리를 마운트 합니다. mount -t nfs 192.168.111.100:/nfsshare myshare
    [root@localhost myshare]# touch 1
    [root@localhost myshare]# touch 2
    [root@localhost myshare]# touch 3
    ▶ 리눅스 서버#2에서 touch 파일을 테스트로 생성해봅니다.
    [root@localhost nfsshare]# ls -al
    합계 88
    drwxrwxrwx   2 root   root    4096  7월  9 20:49 .
    dr-xr-xr-x. 20 root   root    4096  7월  9 20:19 ..
    -rw-r--r--   1 nobody nobody     0  7월  9 20:49 1
    -rw-r--r--   1 nobody nobody     0  7월  9 20:49 2
    -rw-r--r--   1 nobody nobody     0  7월  9 20:49 3
    -rw-------   1 root   root    1421  7월  9 20:20 vmware-network.1.log
    -rw-------   1 root   root    1121  7월  9 20:20 vmware-network.2.log
    -rw-------   1 root   root    1420  7월  9 20:20 vmware-network.3.log
    -rw-------   1 root   root    1120  7월  9 20:20 vmware-network.4.log
    -rw-------   1 root   root    1420  7월  9 20:20 vmware-network.5.log
    -rw-------   1 root   root     739  7월  9 20:20 vmware-network.6.log
    -rw-------   1 root   root    1120  7월  9 20:20 vmware-network.7.log
    -rw-------   1 root   root    1420  7월  9 20:20 vmware-network.8.log
    -rw-------   1 root   root     739  7월  9 20:20 vmware-network.9.log
    -rw-------   1 root   root    1121  7월  9 20:20 vmware-network.log
    -rw-------   1 root   root    7782  7월  9 20:20 vmware-vgauthsvc.log.0
    -rw-r--r--   1 root   root   22886  7월  9 20:20 vmware-vmsvc.log
    -rw-r--r--   1 root   root    6590  7월  9 20:20 vmware-vmusr.log
    ▶ 리눅스 서버#1(NFS서버)에서 touch 파일로 생성한 1,2,3이 동일하게 보이는 것을 확인할 수 있습니다.
    [root@localhost myshare]# vi /etc/fstab
    #
    # /etc/fstab
    # Created by anaconda on Mon Feb 28 23:00:05 2022
    #
    # Accessible filesystems, by reference, are maintained under '/dev/disk/'.
    # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
    #
    # After editing this file, run 'systemctl daemon-reload' to update systemd
    # units generated from this file.
    #
    /dev/mapper/cl-root     /                       xfs     defaults        0 0
    UUID=5df19972-5e83-456a-9bfb-326342d458ae /boot                   ext4    defaults        1 2
    /dev/mapper/cl-swap     swap                    swap    defaults        0 0
    
    192.168.111.100:/nfsshare	/myshare	nfs	defaults	0	0 --> 추가
    ▶ 리눅스 서버#2에서 재부팅 후에도 nfs를 통해서 마운트 된 파일 시스템이 끊기지 않도록 /etc/fstab에 등록해줍니다.

     

    LINUX 로고이미지1

    ▶ 윈도우 서버#3에서 NFS용 클라이언트 패키지를 설치하도록 합니다.

     

    LINUX 로고이미지2

    ▶ 윈도우 서버#3에서 mount 192.168.111.100:nfsshare * 명령어를 cmd 창에서 수행하게 되면 NFS 서버에 있는 공유 디렉토리를 윈도우서버#3에서도 마운트 되어 사용할 수 있습니다.

     

    LINUX 로고이미지3

    ▶ 윈도우 서버#3에서 vmware로 시작되는 파일들이 그대로 보이는 것을 확인할 수 있습니다.

    2022.07.08 - [System of Infra/LINUX] - LINUX SMB 윈도우 공유볼륨 리눅스에 마운트하는 방법

     

    LINUX SMB 윈도우 공유볼륨 리눅스에 마운트하는 방법

    LINUX SMB 윈도우 공유볼륨 리눅스에 마운트하는 방법 ★Samba [SMB]에 대한 설명 1. Window서버와 LInux/Unix 서버 간의 파일 공유를 위해서 개발된 프로토콜 2. Linux에서 Window 또는 Window에서 Linux..

    pinetreeday.tistory.com

    2022.07.08 - [System of Infra/LINUX] - LINUX SMB 리눅스 공유볼륨 윈도우 드라이브 연결하기

     

    LINUX SMB 리눅스 공유볼륨 윈도우 드라이브 연결하기

    LINUX SMB 리눅스 공유 볼륨 윈도우 드라이브 연결하기 ★Samba [SMB]에 대한 설명 1. Window서버와 LInux/Unix 서버 간의 파일 공유를 위해서 개발된 프로토콜 2. Linux에서 Window 또는 Window에서 Linux..

    pinetreeday.tistory.com

    2020.04.21 - [System of Infra/UNIX] - IBM AIX NFS mount 구성 방법

     

    IBM AIX NFS mount 구성 방법

    IBM AIX NFS mount 구성 방법 [root@test_svr1:/]# ifconfig -a en3: flags=1e084863,480 inet 10.50.1.151 netmask 0xffffff00 broadcast 10.50.1.255 tcp_sendspace 262144 tcp_recvspace 262144 rfc1323 1 [ro..

    pinetreeday.tistory.com

     

    PS. 포스팅의 내용은 제 기준으로 작성한 것이기 때문에 참고해서 보시면 감사하겠습니다.

    포스팅 과정의 오류 및 오타 그리고 궁금한 점에 대해서는 댓글 남겨주세요.

    반응형

    댓글

Designed by Tistory.