-
LINUX NFS서버 구축하는 방법System of Infra/Linux System 2022. 7. 9. 21:43반응형
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에 등록해줍니다.
▶ 윈도우 서버#3에서 NFS용 클라이언트 패키지를 설치하도록 합니다.
▶ 윈도우 서버#3에서 mount 192.168.111.100:nfsshare * 명령어를 cmd 창에서 수행하게 되면 NFS 서버에 있는 공유 디렉토리를 윈도우서버#3에서도 마운트 되어 사용할 수 있습니다.
▶ 윈도우 서버#3에서 vmware로 시작되는 파일들이 그대로 보이는 것을 확인할 수 있습니다.
2022.07.08 - [System of Infra/LINUX] - LINUX SMB 윈도우 공유볼륨 리눅스에 마운트하는 방법
2022.07.08 - [System of Infra/LINUX] - LINUX SMB 리눅스 공유볼륨 윈도우 드라이브 연결하기
2020.04.21 - [System of Infra/UNIX] - IBM AIX NFS mount 구성 방법
PS. 포스팅의 내용은 제 기준으로 작성한 것이기 때문에 참고해서 보시면 감사하겠습니다.
포스팅 과정의 오류 및 오타 그리고 궁금한 점에 대해서는 댓글 남겨주세요.
반응형'System of Infra > Linux System' 카테고리의 다른 글
LINUX 방화벽(Firewall)서버 구축하는 방법[1편] (2) 2022.07.13 LINUX PROXY(프록시)서버 구현하는 방법 (18) 2022.07.11 LINUX SMB 리눅스 공유볼륨 윈도우 드라이브 연결하기 (2) 2022.07.08 LINUX SMB 윈도우 공유볼륨 리눅스에 마운트하는 방법 (2) 2022.07.08 LINUX PXE서버구축을 통한 OS 설치하는 방법 (6) 2022.07.06