강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

11. SULinux 2.0 NFS 설정 및 운영 - SULinux 2.0 공개 강좌

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문

11. SULinux 2.0 NFS 설정 및 운영



  NFS(Network File System)를 사용하여 원격지에 있는 자원(Disk, CD-ROM등)을 마치 로컬에 있는 자원처럼 마운트(Mount)하여 사용할 수 있습니다. 리눅스나 유닉스에서 사용하는 소유자, 권한 등을 완벽하게 사용할 수 있어 스토리지 공유등의 다양한 분야에 사용됩니다. NFS는 지속적인 발전을 거듭하여 왔습니다. 현재 NFS v4까지 있으며 SULinux는 v2, v3, v4를 지원합니다. NFS v3에서 여러 가지 기능을 제공해 왔으며, v4는 복잡한 인터넷 환경을 고려하여 가변포트를 사용하지 않고, 보안요소가 많이 고려되었습니다. NFSv3까지는 UDP포트를사용하여 데이터를 전송하였습니다. 이는 신뢰성이 뛰어난 네트워크에서는 효율적이지만, 인터넷 환경에는 적합하지 않습니다. NFSv4는 TCP만 사용하므로 보다 신뢰성 있는 전송이 가능합니다. SULinux는 다양한 버전의 NFS를 사용할 수 있습니다.
  NFS는 RPC(Remote Procedure Calls)를 사용합니다. RPC를 이용하여 mount, read등의 명령을 전달합니다. NFS클라이언트는 NFS서버로부터 파일핸들의 받아 이 핸들을 사용하여 파일에 접근합니다.

  주요 서비스 설명

  관련 프로그램



1. NFS의 동작구조

  (1) NFSv3 동작 구조

  NFS서버는 RPC(Remote Procedure Calls)를 사용하여 동작합니다. 먼저 NFS클라이언트가 NFS서버의 특정 디렉토리를 마운트 하기 위해서는 다음 과정을 거치게 됩니다.
  1. NFS서버의 portmap에 접속하여 get_port 라는 RPC요청을 하고 NFS서버는 마운트포트번호를 NFS클라이언트에게 전달합니다.
  2. NFS클라이언트는 마운트포트번호를 통하여 rpc.mountd에 접속하고 RPC마운트 요청합니다. NFS서버는 클라이언트를 확인하고, /etc/exports파일을 참조하여 파일시스템의 파일핸들을 NFS클라이언트에게 전달합니다. NFS클라이언트는 이 파일핸들을 마운트합니다.
  위와 같은 과정으로 마운트를 하였다면, 파일을 읽을 때는 마운트 된 최상위 디렉토리부터 속성을 읽어 오고, 하위 디렉토리를 찾고, 속성을 읽어오고, 파일을 찾아 읽는 과정을 거치게 됩니다. 모든 과정에서는 RPC를 사용하게 됩니다. 위 과정에서 rpc.nfsd와 접속하게 됩니다.
  NFS 상태, 쿼타정보를 알기 위해서는 rpc.stated와 rpc.rquotad등을 사용합니다. 
  * NFS를 사용하기 위해서는 NFS클라이언트 IP에 대해서 UDP, TCP모든 포트를 오픈 하여야 원활하게 NFS를 사용할 수 있습니다.

  (2) NFSv4 동작 구조

  NFSv4는 이전 버전과 다르게, PORT는 TCP 2049포트만 사용합니다. portmap의 도움을 받지도 않으며, nfslockd 및 nfsstatd 등의 프로그램 또한 필요하지 않습니다. NFSv4를 사용한다면, 방화벽의 모든 포트를 오픈 할 필요 없이 2049포트만을 오픈하면 됩니다.



2. NFS서버 시작 및 종료

  NFS Server는 항상 실행하고 있는 서버 프로그램입니다. SULinux는 NFS를 서비스 프로그램으로 관리하며 다음과 같이 관리할 수 있습니다.

   SULinux의 “서비스 설정”에서 nfs를 시작, 종료, 재시작 할 수 있습니다.
시작 => 시스템 => 관리 => 서버 설정 => 서비스 설정

  위 그림은 nfs를 시작, 종료, 재시작 할 수 있는 “서비스 설정”입니다. 위 그림의 서비스 중 “nfs”을 선택하고 , 아이콘을 눌러 원하는 작업을 할 수 있습니다.

콘솔 접속하여 nfs를 시작, 종료, 재시작 할 수 있습니다.

  위 그림은 service 명령어를 사용하여 nfs를 시작, 재시작, 종료 한 결과입니다. 위와 같은 방법으로 nfs 서버를 제어 할 수 있습니다.



3. NFS서버 설정 및 접속방법

  SULinux는 기본적으로 NFS서버가 설치되어 있지만, 서비스는 시작되어 있지 않습니다. NFS서버를 사용하려면 다음과 같은 설정이 필요합니다.

  (1) NFS서버 설정 (NFSv3)

시작-> 시스템-> 관리-> 서버 설정-> "NFS“를 실행합니다.

  위 화면에서 “”아이콘을 눌러 다음과 같이 설정합니다.


  위 그림은 NFS의 일전적인 설정 화면입니다. “기본”탭의 내용에는 대상 디렉토리, 허용할 호스트, 읽기/쓰기를 허용할 것인지 선택합니다. 위 내용은 /home/sulinux 디렉토리를 192.168.0.169 NFS클라이언트에서 읽기/쓰기를 허용하기 위한 설정입니다.

  위 그림은 NFS의 “일반 옵션” 탭입니다. 대부분 기본 옵션을 사용합니다.

  위 그림은 “사용자 액세스” 탭입니다. NFS는 대부분 스토리지 공유등의 목적으로 많이 사용됩니다. root 권한으로 마운트하고, 모든 스토리지 권한을 NFS클라이언트에게 주는 경우이기 때문에 " 원격 루트 사용자를 로컬 루트로 취급함“을 활성화 시키게 됩니다. 이렇게 설정하였다면, "확인”을 눌러 설정을 완료합니다.

  위 그림은 설정이 완료된 내용을 보여 주게 됩니다. 위 내용은 /home/sulinux 디렉토리를 192.168.0.169 NFS클라이언트에서 읽기/쓰기를 허용하기 위한 설정입니다.
  모든 설정이 끝나면, NFS서버의 설정파일인 /etc/exports파일에는 다음과 같애 갱신됩니다.

  GUI 환경이 제공되지 않는 서버에서는 위내용을 /etc/exports파일에 넣어 주면 됩니다.


  (2) NFS 마운트(NFSv3)

  NFS클라이언트에서 NFS서버에 접속합니다. NFS 클라이언트에도 portmap 서비스가 가동중이여야 정상적으로 NFS 마운트가 됩니다. NFS 클라이언트는 다음과 같은 방법으로 마운트 합니다.

  mount 명령어를 사용하여 마운트 합니다. "-t nfs" 옵션을 사용하여 파일 시스템 타입을 nfs로 지정합니다. 다음으로 NFS서버의 IP또는 도메인을 넣어 줍니다. 특별한 경우가 아니면, IP를 넣는 것이 좋습니다. 도메인을 넣으면 네임서버 질의 하는 시간을 보내게 되기 때문입니다. 다음으로 “:”을 입력하고, 대상DIR를 넣습니다. 대상DIR은 NFS서버에서 지정한 공유경로가 됩니다. 다음은 NFS클라이언트의 마운트DIR을 입력합니다.
  다음은 NFS클라이언트(192.168.0.169)에서 NFS서버(192.168.0.202)에 설정된 공유 디렉토리  (/home/sulinux)를 로컬디렉토리(/nfsmount)에 마운트 하는 예제입니다.

  df명령어를 사용하여 확인 한 결과, 마운트 되어 있는 것을 확인 할 수 있습니다.

  (3) NFS서버 설정 (NFSv4)

  일반적인 NFS설정법은 NFSv3를 사용한 방법입니다. 그렇지만, NFSv4를 설정하는 방법은 서버 설정 및 클라이언트 설정에 있어 조금의 변화가 있습니다. 다음과 같이 설정하면, NFSv4를 설정할 수 있습니다. NFSv4를 사용하면, NFS서버에는 portmap 서비스가 필요 없으며, 사용하는 포트 또한 TCP 2049만을 사용합니다.

시작-> 시스템-> 관리-> 서버 설정-> "NFS“를 실행합니다.

  위 화면에서 “”아이콘을 눌러 다음과 같이 설정합니다.

  위 그림은 NFS의 일전적인 설정 화면입니다. “기본”탭의 내용에는 대상 디렉토리, 허용할 호스트, 읽기/쓰기를 허용할 것인지 선택합니다. 위 내용은 /home/sulinux 디렉토리를 192.168.0.169 NFS클라이언트에서 읽기/쓰기를 허용하기 위한 설정입니다. "기본“탭의 설정은 NFSv3와 동일합니다.

  위 그림은 NFS의 “일반 옵션” 탭입니다. 대부분 기본 옵션을 사용합니다. NFSv4에서는 "파일시스템 ID 설정“에서 꼭 ”0“으로 해야 합니다. 이 옵션의 의미는 지정한 공유 디렉토리를 NFS "/"로 사용됩니다. 이 옵션을 선택하지 않으면 NFSv4로 사용할 수 없습니다.

  위 그림은 “사용자 액세스” 탭입니다. NFS는 대부분 스토리지 공유등의 목적으로 많이 사용됩니다. root 권한으로 마운트하고, 모든 스토리지 권한을 NFS클라이언트에게 주는 경우이기 때문에 " 원격 루트 사용자를 로컬 루트로 취급함“을 활성화 시키게 됩니다. 이렇게 설정하였다면, "확인”을 눌러 설정을 완료합니다. NFSv3와 동일합니다.

  위 그림은 설정이 완료된 내용을 보여 주게 됩니다. 위 내용은 /home/sulinux 디렉토리를 192.168.0.169 NFS클라이언트에서 읽기/쓰기를 허용하기 위한 설정입니다.  NFSv3와 동일하게 보입니다.

  모든 설정이 끝나면, NFS서버의 설정파일인 /etc/exports파일에는 다음과 같이 갱신됩니다.

  GUI 환경이 제공되지 않는 서버에서는 위내용을 /etc/exports파일에 넣어 주면 됩니다. 위 설정에서 NFSv3와 다른점은 "fsid=0"부분이 추가된 것을 확인 할 수 있습니다.

  (4) NFS 마운트(NFSv4)

    NFS클라이언트에서 NFS서버에 접속합니다. NFSv4 클라이언트에도 portmap 서비스가 가동중이여야 정상적으로 NFS 마운트가 됩니다. NFS 클라이언트는 다음과 같은 방법으로 마운트 합니다.

  mount 명령어를 사용하여 마운트 합니다. "-t nfs4" 옵션을 사용하여 파일 시스템 타입을 nfs4로 버전까지 명시하여 지정합니다. 일반적인 nfs는 nfs 버전 3를 의미합니다. 다음으로 NFS서버의 IP또는 도메인을 넣어 줍니다. 특별한 경우가 아니면, IP를 넣는 것이 좋습니다. 도메인을 넣으면 네임서버 질의 하는 시간을 보내게 되기 때문입니다. 다음으로 “:”을 입력하고, "/"를 넣습니다. 앞에서 지정한 NFS서버 옵션 “fsid=0” 때문에 /home/sulinux를 "/"인식 됩니다. 다음은 NFS클라이언트의 마운트DIR을 입력합니다.
  다음은 NFS클라이언트(192.168.0.169)에서 NFS서버(192.168.0.202)에 설정된 공유 디렉토리(/home/sulinux)를 로컬디렉토리(/nfsmount)에 마운트 하는 예제입니다.

  df명령어를 사용하여 확인 한 결과, 마운트 되어 있는 것을 확인 할 수 있습니다.

  (5) NFS 마운트 해제

  NFS클라이언트에서 NFS서버의 경로를 마운트 했다면, 마운트 해제 하는 방법은 아주 간단하니다. 일반적인 mount 명령어를 이용하여 할 수 있습니다.

  앞의 예제에서 NFS서버에 마운트 했던 내용을 다음과 같이 해제 하였습니다.



  본 강좌는 SULinux 2.0 GUI “사용설명서”를 참조하였습니다. 본 강좌의 개선점이나, 오타등이 있으면 service@linux.kr으로 알려주시기 바라며, 그 밖의 질문은 sulinux.net으로 해 주시기 바랍니다. 2010년 3월에 연구소장 에스유.

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,157 명
  • 현재 강좌수 :  36,515 개
  • 현재 접속자 :  194 명