ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [리눅스] NFS
    서버/리눅스 2017. 4. 18. 21:46

    NFS

    네트워크 파일 시스템

    리눅스와 리눅스간의 통신( 공유폴더 )


    데몬

    nfs

    rpcbind


    Server ( linux - /nfs )

    #설치 > nfs-utils.x86_64

    #>yum install -y nfs-utils.x86_64


    #설정

    #>vi /etc/export


    초기설정은 빈 파일이며, 디렉터리와 목록사이는 [tab]으로 구분

    <공유할 디렉터리>    <사용자 목록>(<권한,권한2>)

     

    #사용자 목록 (access allow host)

    IP/netmask or IP/prefix

    ex) 100.100.100.0/24

    100.100.100.0/255.255.255.0

    #권한

    ro    :    읽기전용 ( read only )

    rw    :    읽기쓰기 ( read write )

    sync :    동기화 ( 바뀌자마자 바로 보여줌 )

    no_root_squash : root ( 서버측 root로 인증되어 들어간다. )

    root_squash : 기본값, nfsnobody ( 즉 guest의 사용자 )


    /etc/exports

    /nfs    *(ro,sync)


    :wq


    #실행

    #>systemctl restart nfs

    #>systemctl restart rpcbind

    #>exportfs

    #>ip addr

    넷파일시스템과 rpcbind는 묶음이므로 2개의 데몬을 재시작해준다.

    exportfs 명령어는 공유대상의 대한 정보를 보여준다.

    와일드 카드를 사용했으므로 <world>라고 표시된다.

     

    리눅스 서버 ip를 확인한다.


     

    Client ( linux - /nfs_client )

    #nfs 서버의 공유 디렉터리 확인
    #>yum install -y nfs-utils.x86_64 

    #>showmount -e <server_ip>

    #>showmount -e 100.100.100.128

     

     

    *Error

    RPC : Program not registered > nfs, rpcbind daemon

    ( 서버 측 문제이므로 데몬 2개의 restart 하고 상태를 확인합니다.

      잘 동작한다면 시간의 여유를 두고 다시 시도합니다.)

     

    *else서버의 공유폴더가 확인됬으면 접근을 하기위한 설정을 합니다.

     

    항상 리눅스는 서버의 폴더를 접근할 때 mount를 사용합니다

    #>mkdir /nfs_client   

    #>mount -t nfs <server_nfs_path> <mount_point>

              #>mount -t nfs 100.100.100.128:/nfs /nfs_client

    #>df -h

     마운트할 디렉터리를 생성

     서버디렉터리 마운트

     마운트 확인

    연결이 확인되었으면 관리를 잘해주셔야 합니다.

    항상 서버를 종료시키전에 모든 클라이언트를 종료시켜주셔야 데이터를 안전하게 보관할 수 있습니다.

     

    지금은 read-only 상태니깐 파일을 생성, 삭제가 불가능합니다.

     

    따라서 서버에서 만들어주고 다시 확인해주셔야 합니다.

    서버 >

    클라이언트 >

     

    서버의 속성을 바꾸려면 클라이언트를 모두 해제해줘야 합니다.(umount)

    순서

     1   클라이언트 마운트 해제

    cli#>umount /nfs_client

     2   서버 측 /etc/exports 수정 (rw,sync)

    ser#>vi /etc/exports

    /nfs    *(rw,sync)

     3             nfs 데몬 서비스 재시작

    ser#>systemctl restart nfs

     4             /nfs 디렉터리 권한 수정 (o+w / 777)

    ser#>chmod o+w /nfs

     5   클라이언트 마운트

    cli#>mount -t nfs 100.100.100.128:/nfs /nfs_client

     6                  파일 생성

    cli#>cd /nfs_client

    cli#>touch file2.txt

    게스트 사용자가 아닌 서버측 root ( 관리자 )의 사용권한으로 만들고 싶다면

    위와 같은 순서로 /etc/exports파일을 수정하는데 이때 권한에 no_root_squash만 추가한다 ex) *(rw,no_root_squash)

     

     

    #마운트 용량

    cli#>df -h

      

     이렇게 마운트가 되면 서버에서 /nfs 공유디렉터리를 제공했기때문에 /dev/sda2인 장치파일이 제공되었다.

     이 의미는 서버의 전체디스크를 제공한 것과 동일하므로 제공할 때는 장치를 하나 만들어서 용량설정을 한 후 제공해주어야 한다.

     

    댓글

Designed by Tistory.