본문 바로가기

리눅스

CentOS 6에서 NFS를 설치하고 설정하는 방법

반응형

CentOS 6에서 NFS(Network File System)를 설치하고 설정하는 방법

1. NFS 패키지 설치

NFS 패키지를 설치합니다.

sudo yum install -y nfs-utils nfs-utils-lib

 

2. NFS Port 설정

sudo vim /etc/sysconfig/nfs
#
# Define which protocol versions mountd
# will advertise. The values are "no" or "yes"
# with yes being the default
#MOUNTD_NFS_V2="no"
#MOUNTD_NFS_V3="no"
#
#
# Path to remote quota server. See rquotad(8)
#RQUOTAD="/usr/sbin/rpc.rquotad"
# Port rquotad should listen on.
#RQUOTAD_PORT=875
# Optinal options passed to rquotad
#RPCRQUOTADOPTS=""
#
#
# Optional arguments passed to in-kernel lockd
#LOCKDARG=
# TCP port rpc.lockd should listen on.
#LOCKD_TCPPORT=32803
# UDP port rpc.lockd should listen on.
#LOCKD_UDPPORT=32769
#
#
# Optional arguments passed to rpc.nfsd. See rpc.nfsd(8)
# Turn off v2 and v3 protocol support
#RPCNFSDARGS="-N 2 -N 3"
# Turn off v4 protocol support
#RPCNFSDARGS="-N 4"
# Number of nfs server processes to be started.
# The default is 8.
#RPCNFSDCOUNT=8
# Stop the nfsd module from being pre-loaded
#NFSD_MODULE="noload"
# Set V4 grace period in seconds
#NFSD_V4_GRACE=90
#
#
#
# Optional arguments passed to rpc.mountd. See rpc.mountd(8)
#RPCMOUNTDOPTS=""
# Port rpc.mountd should listen on.
#MOUNTD_PORT=892
#
#
# Optional arguments passed to rpc.statd. See rpc.statd(8)
#STATDARG=""
# Port rpc.statd should listen on.
#STATD_PORT=662
# Outgoing port statd should used. The default is port
# is random
#STATD_OUTGOING_PORT=2020
# Specify callout program
#STATD_HA_CALLOUT="/usr/local/bin/foo"
#
#
# Optional arguments passed to rpc.idmapd. See rpc.idmapd(8)
#RPCIDMAPDARGS=""
#
# Set to turn on Secure NFS mounts.
#SECURE_NFS="yes"
# Optional arguments passed to rpc.gssd. See rpc.gssd(8)
#RPCGSSDARGS=""
# Optional arguments passed to rpc.svcgssd. See rpc.svcgssd(8)
#RPCSVCGSSDARGS=""
#
# To enable RDMA support on the server by setting this to
# the port the server should listen on
#RDMA_PORT=20049

 

3. NFS 서비스 시작 및 활성화

NFS 서비스를 시작하고 부팅 시 자동으로 시작하도록 설정합니다.

sudo service rpcbind start
sudo service nfs start
sudo chkconfig rpcbind on
sudo chkconfig nfs on

 

4. NFS 공유 디렉토리 생성

NFS로 공유하려는 디렉토리를 생성합니다. 예를 들어, /data/nfs 디렉토리를 생성합니다.

sudo mkdir -p /data/nfs
728x90

5. NFS 공유 설정

NFS 서버가 공유할 디렉토리를 설정합니다. /etc/exports 파일을 편집합니다.

sudo vim /etc/exports

/etc/exports 파일에 다음과 같이 추가하여 /data/nfs 디렉토리를 네트워크에서 읽기 전용으로 공유합니다.

##NFS
/data/nfs 192.168.0.0/255.255.255.0(rw,sync)

이 예에서는 클라이언트의 IP 대역 (192.168.1.0/24)에서 읽기 전용으로 /data/nfs 디렉토리를 액세스할 수 있습니다. 필요에 따라 설정을 조정할 수 있습니다.

 

  • /home/public : directory to share with read-only access to all networks
  • /home/common : directory to share with read/write access to all networks
  • * : allow access from all networks
  • ro : read-only access
  • rw : read/write access
  • sync : synchronous access
  • root_squash : prevents root users connected remotely from having root privileges and assigns them the user ID for the user nfsnobody. This effectively "squashes" the power of the remote root user to the lowest local user, preventing unauthorized alteration of files on the remote server. Alternatively, the no_root_squash option turns off root squashing. To squash every remote user, including root, use the all_squash option. To specify the user and group IDs to use with remote users from a particular host, use the anonuid and anongid options, respectively. In this case, a special user account can be created for remote NFS users to share and specify (anonuid=,anongid=), where is the user ID number and is the group ID number.

6. NFS 서비스 재시작

NFS 설정 파일을 변경한 후 NFS 서비스를 재시작합니다.

sudo service nfs restart

 

7. NFS 서비스 동작 확인

rpcinfo -p
$ 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  59275  status
    100024    1   tcp  36167  status
    100011    1   udp    875  rquotad
    100011    2   udp    875  rquotad
    100011    1   tcp    875  rquotad
    100011    2   tcp    875  rquotad
    100005    1   udp  52417  mountd
    100005    1   tcp  48711  mountd
    100005    2   udp  53492  mountd
    100005    2   tcp  56130  mountd
    100005    3   udp  38971  mountd
    100005    3   tcp  34722  mountd
    100003    2   tcp   2049  nfs
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100227    2   tcp   2049  nfs_acl
    100227    3   tcp   2049  nfs_acl
    100003    2   udp   2049  nfs
    100003    3   udp   2049  nfs
    100003    4   udp   2049  nfs
    100227    2   udp   2049  nfs_acl
    100227    3   udp   2049  nfs_acl
    100021    1   udp  42508  nlockmgr
    100021    3   udp  42508  nlockmgr
    100021    4   udp  42508  nlockmgr
    100021    1   tcp  58946  nlockmgr
    100021    3   tcp  58946  nlockmgr
    100021    4   tcp  58946  nlockmgr

 

8. 방화벽 설정 (선택 사항)

만약 방화벽이 활성화되어 있다면, 필요한 포트를 방화벽 규칙으로 허용해야 합니다. NFS는 기본적으로 TCP 2049 포트를 사용합니다.

sudo iptables -A INPUT -p tcp --dport 2049 -j ACCEPT

방화벽 규칙을 추가한 후 방화벽을 다시 시작합니다.

sudo service iptables restart

 

9. NFS 클라이언트 설정 (다른 서버에서 액세스하려는 경우, 선택 사항)

다른 서버에서 NFS 공유에 액세스하려면 해당 서버에서 NFS 클라이언트를 설치하고 마운트하면 됩니다. NFS 클라이언트 설정은 NFS 서버와는 별도의 작업이며, 필요한 경우 해당 서버에 NFS 클라이언트를 설치하고 NFS 공유를 마운트할 수 있습니다.

 

NFS 서버를 CentOS 6에서 구성한 후, 다른 서버에서 NFS 공유 디렉토리에 액세스할 수 있게 됩니다. 설정을 완료한 후, showmount -e localhost 명령을 사용하여 로컬 NFS 서버에서 공유 디렉토리를 확인하고, 다른 서버에서도 NFS 마운트를 설정할 수 있습니다.

 

참고URL

- http://eduardo-lago.blogspot.kr/2012/02/installing-nfs-on-centos-62.html

 

728x90
반응형