CentOS 7 NFS 서버 구축

2016.11.29 11:26

gooddew 조회:926

NFS 서버는 컴퓨터 끼리 저장 공간을 공유할수 있도록 해주는 시스템을 말하며, 주로 Linux(Unix) 사이에 네트워크 공유할때 사용하며


일부 윈도우 (엔터프라이즈, 엘티메이트)버전도 가능 합니다.


윈도우서 서버가 될수도 있지만 여기서는 서버는 CentOS 만 사용하고 클라이언트는 CentOS 와 윈도우 7 로 사용하는 강좌를 진행합니다.




① NFS 서버


☞ NFS 서버 설치


01.png


# yum -y install nfs-utils



* 설정 파일 수정

05.png


# nano /etc/exports



04.png


/var/nfs_share    192.168.0.*(rw,sync)      


/var/nfs_share 라는 폴더를 192.168.0.0/24 네트워크 대역에서 접근을 승인 하며,

rw 는 읽기 쓰기 권한이 주어지고 , sync는 동기화까지 지원한다는 의미 


저장후



* 공유 폴더 생성 및 권한 설정


16.png


☞ 공유 폴더 생성

# mkdir /var/nfs_share


☞ 폴더 권한 설정 ( 707 : 사용자와 다른 사용자 모두 읽기 쓰기 허용 )

# chmod 707 /var/nfs_share



☞ NFS 관련 서비스 시작


17.png


☞ NFS 관련 서비스 시작


# systemctl start rpcbind


# systemctl start nfs-server


# systemctl start rpc-statd


# systemctl start nfs-idmapd


만약 NFS 서버를 상시 가동한다면


위 4개 서버별로 # systemctl enable "서버 데몬 이름"     설정하면 됩니다.

 


☞ NFS 서버에서 공개된 폴더 정보 확인


18.png



# exportfs -v
/var/nfs_share  192.168.0.*(rw,wdelay,root_squash,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)


나중에 공유 폴더를 변경 하려면 /etc/exports 파일의 설정만 수정 후에 # exportfs -r 실행 해주면되며,


추가로 NFS 관련 서비스를 재실행 할 필요는 없습니다.





☞ 서비스가 사용중인 포트 상태 확인


25.png


여러 포트가 사용중에 있습니다.


여기서 서비스를 중지하고 다시 실행하면 포트가 바뀌는 서비스가 있습니다.


그래서 시스템에서 방화벽을 사용 여부에 따라서 서버 NFS 설정 방법이 다릅니다.


시스템에서 방화벽을 사용해여 된다면 포트를 고정해야 되며,


만약 방화벽을 사용한한다면 방화벽 서비스를 끄고 iptables 로 정책을 모두 삭제하면 됩니다.




▶ 방화벽을 사용안하는 경우


☞ 방화벽 서비스 중단하기


# systemctl  stop  firewalld


☞ 방화벽 포트 정책 삭제


# iptables -F


방화벽을 사용안하는 경우 이렇게 서버 설정이 완료 됩니다.




▶ 방화벽을 사용하는 경우


☞ 포트를 고정 합니다.


26.png


설정 파일을 열어서 제일 하단에 아래 내용을 추가 합니다.


# nano /etc/sysconfig/nfs

-------------------------------

LOCKD_TCPPORT=32803

LOCKD_UDPPORT=32769

MOUNTD_PORT=892

RQUOTAD_PORT=875

STATD_PORT=662

STATD_OUTGOING_PORT=2020

-------------------------------

위 항목들 파일 어딘가 주석 처리되서 항목이 있기는 합니다.


하나하나 찾아서 수정을 해도 되지만, 정확하고 쉽게 수정 하기 위해서 제일 하단에 위 내용을 복사해서 추가 합니다 


Ctrl + W → Y → 저장이 됩니다.



☞ 방화벽을 오픈 합니다.


27.png



# firewall-cmd --permanent --zone=public --add-port=111/tcp
# firewall-cmd --permanent --zone=public --add-port=111/udp
# firewall-cmd --permanent --zone=public --add-port=2049/tcp
# firewall-cmd --permanent --zone=public --add-port=32803/tcp
# firewall-cmd --permanent --zone=public --add-port=32769/udp
# firewall-cmd --permanent --zone=public --add-port=892/tcp
# firewall-cmd --permanent --zone=public --add-port=892/udp
# firewall-cmd --permanent --zone=public --add-port=875/tcp
# firewall-cmd --permanent --zone=public --add-port=875/udp
# firewall-cmd --permanent --zone=public --add-port=662/tcp
# firewall-cmd --permanent --zone=public --add-port=662/udp



☞ 방화벽 설정 적용

# firewall-cmd --reload

success




☞ 포트 오픈 상태 확인


10.png


# iptables -nL


28.png


포트 몇개가 추가로 열렸습니다.


이렇게 해서 방화벽 사용하는 경우의 서버 설정이 완료 됬습니다.





② Linux( Unix ) 사용자의 NFS 클라이언트


☞ NFS 클리라이언트 설치


01.png


서버 패키지 이름과 동일합니다.

# yum -y install nfs-utils



☞ 서버의 공유 폴더  확인 ( 서버 ip : 192.168.0.19 )


21.png


# showmount -e 192.168.0.19
Export list for 192.168.0.19:
/var/nfs_share 192.168.0.*
[root@Client ~]#


/var/nfs_share 공유 폴더가 있다고 나오네요.


☞ 서버의 공유 폴더를 마운트 할수 있게 클라이언트에서 폴더를 생성합니다.


22.png


# mkdir /mnt/nfs_server


☞ 서버의 NFS 공유 폴더를 마운트 하기


23.png


# mount -t nfs 192.168.0.19:/var/nfs_share /mnt/nfs_server



☞ 디스크 파티션 상태를 확인해보겠습니다.


24.png


☞ 파티션 상태 확인


# df -Th


[root@Client ~]# df -Th
Filesystem                  Type      Size  Used Avail Use% Mounted on
/dev/sda2                   xfs       146G 1015M  145G   1% /
devtmpfs                    devtmpfs  1.9G     0  1.9G   0% /dev
tmpfs                       tmpfs     1.9G     0  1.9G   0% /dev/shm
tmpfs                       tmpfs     1.9G  8.6M  1.9G   1% /run
tmpfs                       tmpfs     1.9G     0  1.9G   0% /sys/fs/cgroup
tmpfs                       tmpfs     379M     0  379M   0% /run/user/0
192.168.0.19:/var/nfs_share nfs4      594G 1012M  593G   1% /mnt/nfs_server


빨간색 부분의 네트워크 드라이브로해서 파티션이 추가 됬네요.


클라이언트에서 서버의 폴더( /mnt/nfs_server/ )를 사용 할수 있습니다.


NFS 를 더 이상 사용안하려면, 마운트 해제하면 되는데


33.png


# umount /mnt/nfs_server 하시면 됩니다.

 





③ 윈도우 클라이언트


☞ 일부 윈도우 버전에서 NFS 를 지원합니다.


여기서는 윈도우 7 엔터프라이즈 버전으로 진행하겠습니다.



15.png


제어판 → 프로그램 기능 → 윈도우 기능 사용/사용안함 선택 → NFS용 서비스 → NFS 클라이언트 체크하고 확인을 눌러서 프로그램을 설치합니다.


☞ NFS 서버에 접근이 가능한지 테스트 해보겠습니다.


29.png



C:\Users\Administrator>showmount -e 192.168.0.19
다음의 내보내기 목록 192.168.0.19:
/var/nfs_share                     192.168.0.*


네트워크 공유 가능한 리스트가 나오면 정상입니다.


이제 윈도우에서 가상의 드라이브를 NFS 서버의 공유 폴더로 설정 하겠습니다.


30.png


C:\Users\Administrator>mount 192.168.0.19:/var/nfs_share *
Z: 현재 192.168.0.19:/var/nfs_share에 성공적으로 연결되어 있습니다.

명령을 완료했습니다.

C:\Users\Administrator>


탐색기에 보면 Z: 드라이브로 해서 네트워크 드라이브가 연결되어 있습니다.


31.png


만약 드라이브 연결을 해지 하려면 C:\>umount 드라이브명:(z:) 명령을 내리면 됩니다.


32.png


C:\Users\Administrator>umount z:

연결을 끊는 중          Z:      \\192.168.0.19\var\nfs_share
명령을 완료했습니다.

C:\Users\Administrator>