Scientific Linux 6.3에서 NFS 서버 및 클라이언트 설정

Scientific Linux 6.3에서 NFS 서버 및 클라이언트 설정

2022-10-19 last update

7 minutes reading linux storage
이 가이드는 Scientific Linux 6.3에서 NFS 서버와 NFS 클라이언트를 설정하는 방법을 설명합니다. NFS는 네트워크 파일 시스템을 의미합니다. NFS를 통해 클라이언트는 NFS 서버의 원격 공유가 로컬 하드 디스크에 있는 것처럼 액세스(읽기, 쓰기)할 수 있습니다.

1 서문


여기에서 두 개의 Scientific Linux 시스템을 사용하고 있습니다.
  • NFS 서버: server.example.com, IP 주소: 192.168.0.100
  • NFS 클라이언트: client.example.com, IP 주소: 192.168.0.101

  • 2 NFS 설치


    섬기는 사람:
    NFS 서버에서 다음을 실행합니다.
    yum install nfs-utils nfs-utils-lib
    그런 다음 NFS 서버에 대한 시스템 시작 링크를 만들고 시작합니다.

    chkconfig --levels 235 nfs on 
    /etc/init.d/nfs start
    고객:
    클라이언트에서 다음과 같이 NFS를 설치할 수 있습니다(실제로 서버에서와 동일).
    yum install nfs-utils nfs-utils-lib

    3 서버에서 디렉토리 내보내기


    섬기는 사람:
    클라이언트가/home 및/var/nfs에 액세스할 수 있도록 디렉토리를 만들고 싶습니다. 따라서 서버에서 "내보내기"해야 합니다.
    클라이언트가 NFS 공유에 액세스할 때 이것은 일반적으로 사용자 없음으로 발생합니다. 일반적으로/home 디렉토리는 아무도 소유하지 않으며(소유권을 nobody로 변경하는 것을 권장하지 않습니다!)/home에서 읽고 쓰기를 원하기 때문에 NFS에 루트(루트)로 액세스해야 한다고 알려줍니다./home 공유가 읽기 전용이라면 이것은 필요하지 않을 것입니다)./var/nfs 디렉토리가 존재하지 않으므로 디렉토리를 생성하고 소유권을 변경할 수 있습니다. 내 테스트에서 사용자와 그룹은 모두 내 Scientific Linux 테스트 시스템(서버 및 클라이언트) 모두에서 ID 99를 가지고 있지 않았습니다. NFS 클라이언트에서/var/nfs에 쓰려고 할 때 Permission denied 오류가 발생하여 모든 사람이 해당 디렉토리에 쓸 수 있도록 chmod 777/var/nfs를 수행했습니다. 클라이언트에서/var/nfs에 쓰기가 작동하고 클라이언트에서/var/nfs에 쓰여진 파일은 사용자와 그룹이 소유한 것으로 보이지만 서버에서는 (존재하지 않는) 사용자와 그룹이 소유했습니다. ID 65534; 그래서/var/nfs의 소유권을 서버의 사용자/그룹 65534로 변경하고/var/nfs의 권한을 다시 755로 변경했으며, 짜잔, 클라이언트는/var/nfs에 쓸 수 있었습니다.
    mkdir /var/nfs
    chown 65534:65534 /var/nfs
    chmod 755 /var/nfs
    이제 NFS 공유를 "내보내는"위치에서/etc/exports를 수정해야 합니다./home 및/var/nfs를 NFS 공유로 지정하고 루트로/home에 액세스하도록 NFS에 지시합니다(/etc/exports, 형식 및 사용 가능한 옵션에 대한 자세한 내용은 다음을 참조하십시오.
    man 5 exports
    )
    vi /etc/exports


    /home           192.168.0.101(rw,sync,no_root_squash,no_subtree_check)
    /var/nfs        192.168.0.101(rw,sync,no_subtree_check)

    (no_root_squash 옵션은/home이 루트로 액세스되도록 합니다.)
    /etc/exports를 수정할 때마다 다음을 실행해야 합니다.
    exportfs -a
    변경 사항을 적용합니다.

    4 클라이언트에 NFS 공유 마운트


    고객:
    먼저 NFS 공유를 마운트하려는 디렉토리를 생성합니다. 예:
    mkdir -p /mnt/nfs/home
    mkdir -p /mnt/nfs/var/nfs
    그런 다음 다음과 같이 마운트할 수 있습니다.
    mount 192.168.0.100:/home /mnt/nfs/home
    mount 192.168.0.100:/var/nfs /mnt/nfs/var/nfs
    이제 출력에 두 개의 NFS 공유가 표시되어야 합니다.
    df -h
    [[email protected] ~]# df -h
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/mapper/vg_server2-LogVol00
                          9.7G  1.7G  7.5G  18% /
    tmpfs                 499M     0  499M   0% /dev/shm
    /dev/sda1             504M   39M  440M   9% /boot
    192.168.0.100:/home   9.7G  1.7G  7.5G  19% /mnt/nfs/home
    192.168.0.100:/var/nfs
                          9.7G  1.7G  7.5G  19% /mnt/nfs/var/nfs
    [[email protected] ~]#
    그리고
    mount
    [[email protected] ~]# mount
    /dev/mapper/vg_server2-LogVol00 on / type ext4 (rw)
    proc on /proc type proc (rw)
    sysfs on /sys type sysfs (rw)
    devpts on /dev/pts type devpts (rw,gid=5,mode=620)
    tmpfs on /dev/shm type tmpfs (rw)
    /dev/sda1 on /boot type ext4 (rw)
    none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
    sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
    192.168.0.100:/home on /mnt/nfs/home type nfs (rw,vers=4,addr=192.168.0.100,clientaddr=192.168.0.101)
    192.168.0.100:/var/nfs on /mnt/nfs/var/nfs type nfs (rw,vers=4,addr=192.168.0.100,clientaddr=192.168.0.101)
    [[email protected] ~]#

    5 테스트


    이제 클라이언트에서 NFS 공유에 테스트 파일을 생성할 수 있습니다.
    고객:
    touch /mnt/nfs/home/test.txt
    touch /mnt/nfs/var/nfs/test.txt
    이제 서버로 이동하여 두 테스트 파일을 모두 볼 수 있는지 확인합니다.
    섬기는 사람:
    ls -l /home/
    [[email protected] ~]# ls -l /home/
    total 0
    -rw-r--r-- 1 root root 0 Dec 11 16:58 test.txt
    [[email protected] ~]#
    ls -l /var/nfs
    [[email protected] ~]# ls -l /var/nfs
    total 0
    -rw-r--r-- 1 nfsnobody nfsnobody 0 Dec 11 16:58 test.txt
    [[email protected] ~]#
    (테스트 파일의 다른 소유권에 유의하십시오./home NFS 공유는 루트로 액세스되므로/home/test.txt는 루트가 소유하고/var/nfs 공유는 nobody/65534로 액세스하므로/var/nfs/test.txt는 65534의 소유입니다.)

    6 부팅 시 NFS 공유 마운트


    NFS 공유를 클라이언트에 수동으로 마운트하는 대신/etc/fstab을 수정하여 클라이언트가 부팅될 때 NFS 공유가 자동으로 마운트되도록 할 수 있습니다.
    고객:
    /etc/fstab을 열고 다음 줄을 추가합니다.
    vi /etc/fstab


    [...]
    192.168.0.100:/home  /mnt/nfs/home   nfs      rw,sync,hard,intr  0     0
    192.168.0.100:/var/nfs  /mnt/nfs/var/nfs   nfs      rw,sync,hard,intr  0     0

    rw,sync,hard,intr 대신 다른 마운트 옵션을 사용할 수 있습니다. 사용 가능한 옵션에 대해 자세히 알아보려면
    man nfs
    수정된/etc/fstab이 작동하는지 테스트하려면 클라이언트를 재부팅하십시오.
    reboot
    재부팅 후 출력에서 ​​두 개의 NFS 공유를 찾아야 합니다.
    df -h
    [[email protected] ~]# df -h
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/mapper/vg_server2-LogVol00
                          9.7G  1.7G  7.5G  18% /
    tmpfs                 499M     0  499M   0% /dev/shm
    /dev/sda1             504M   39M  440M   9% /boot
    192.168.0.100:/home   9.7G  1.7G  7.5G  19% /mnt/nfs/home
    192.168.0.100:/var/nfs
                          9.7G  1.7G  7.5G  19% /mnt/nfs/var/nfs
    [[email protected] ~]#
    그리고
    mount
    [[email protected] ~]# mount
    /dev/mapper/vg_server2-LogVol00 on / type ext4 (rw)
    proc on /proc type proc (rw)
    sysfs on /sys type sysfs (rw)
    devpts on /dev/pts type devpts (rw,gid=5,mode=620)
    tmpfs on /dev/shm type tmpfs (rw)
    /dev/sda1 on /boot type ext4 (rw)
    none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
    sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
    192.168.0.100:/home on /mnt/nfs/home type nfs (rw,sync,hard,intr,vers=4,addr=192.168.0.100,clientaddr=192.168.0.101)
    192.168.0.100:/var/nfs on /mnt/nfs/var/nfs type nfs (rw,sync,hard,intr,vers=4,addr=192.168.0.100,clientaddr=192.168.0.101)
    [[email protected] ~]#

    7 링크


  • 리눅스 NFS: http://nfs.sourceforge.net/
  • 과학 리눅스: https://www.scientificlinux.org/