솔라리스의 NFS는 윈도의 네트워크 드라이브와 같은 역할임.

◆ 관련 NFS Daemon 4가지
  - mountd
  - nfsd
  - statd
  - lockd


■ mountd daemon
서버의 마운트와 관련된 모든 일을 관장함.
/usr/lib/nfs/mountd
클라이언트의 요청을 관리하고 액세스 제어
파일 핸들(File handle) 생성
서버는 /etc/rmtab에 entry 생성
클라이언트는 /etc/mnttab에 file handle 맵핑

■ NFS server daemon(nfsd)
/usr/lib/nfs/nfsd
공유디렉토리가 있어야만 동작함.
클라이언트가 보낸 파일 핸들과 작업 내역을 확인
/etc/init.d/nfs.server 스크립트에 의해 동작
/etc/dfs/dfstab에 공유정보가 있으면 동작

■ lockd와 statd
/usr/lib/nfs/statd
/usr/lib/nfs/lockd
위 두 개의 데몬은 기본적으로 서버를 켜면 실행됨.



NFS 서버 구성파일
□ /etc/dfs/dfstab
서버에서 부팅시 공유할 자원 맵핑. 즉 공유정보를 등록.
변경되면 반드시 nfsd와 mountd 데몬을 재시작 해야만 한다.


관련 명령어
● share
공유하고자 하는 디렉토리를 공유하는 명령어
share {-F fstype} {-o options} {-d description} pathname
○ 옵션 종류
ro : 읽기전용으로 마운트
ro=access-list : access list안에 있는 사용자만 읽기전용으로 공유디렉토리 마운트 가능.
rw : 읽고쓰기로 마운트
access-list=client:client 는 사용자가 두명 이상일 때 콜론(:)으로 구분.
만약에 IP주소로 클라이언트를 명시할 때는 IP주소 앞에 @를 붙인다. ex) @192.168.0.200:@192.168.0.201:...
만약에 도메인으로 명시할 때는 도메인 앞에 .를 붙인다. ex) .sksstar.com:.skspzt.co.kr:...
root=access-list 는 access list안에 있는 사용자의 시스템의 루트유저는 이 공유디렉토리에 대해 수퍼유저권한을 갖는다.
-F : 파일시스템 설정. nfs로 해야 함.
-d : 디렉토리에 대한 설명. " "로 묶어주고 그 안에 설명을 작성함.

● dfshares
NFS 서버에서 어떤 디렉토리를 공유해 놓았는지 확인하는 명령어
dfshares {-F nfs} {host}



NFS 클라이언트 구성파일
□ /etc/vfstab
서버에서 부팅시 마운트할 자원 맵핑


관련 명령어
● mount
mount {-F fstype} {-o options} server:pathname mount_point
○ 옵션 종류
ro, rw
bg, fg
soft, hard
suid, nosuid
timeo=n 는 타임아웃 설정
retry=n 는 재시도 시간 횟수
retrans=n 는 재전송 횟수

위 옵션이 있는 이유는 예전에는 NFS서버가 죽으면 물려있던 NFS클라이언트도 전부 죽었다. 그래서 클라이언트에서 mount 옵션에 아래 3개의 옵션을 주어 문제를 해결함.



NFS 설정 순서

◇ 서버 구성 순서
/etc/dfs/dfstab 구성
  ↓
/etc/init.d/nfs.server 스크립트 실행

◇ 클라이언트 구성 순서
/etc/vfstab 구성
  ↓
/etc/init.d/nfs.client 스크립트 실행



[실습] 서버에서 공유한 /usr/share/man을 클라이언트에서 마운트하여 사용해보자.
   IP 주소  Hostname
 서버  192.168.0.200  server118
 클라이언트  192.168.0.201  server136

1. 위는 서버이고 아래는 클라이언트이다.


2. 서버와 클라이언트 각각 /etc/hosts 파일에 서로의 정보를 저장한다.


3. /etc/dfs/dfstab 파일 안에 아무 내용도 들어가 있지 않으면 nfs 서버가 시작되지 않는다. 아래 내용과 같이 /usr/share/man파일을 읽기전용으로 공유한다는 내용을 추가하고 저장한다.


4. /etc/dfs/dfstab 파일을 수정한 다음 nfs 서버를 시작시킨다. 그 다음 dfshares 명령을 입력하면 현재 어떤 자원이 공유되었는지 정보가 나온다.
dfmounts로 확인해보면 아직 공유한 자원을 사용하는 클라이언트는 존재하지 않는다.


5. 클라이언트에서 실습을 위해 기존의 man은 백업받아두고 서버의 man을 마운트 시킨다.


6. 서버에서 dfmounts 를 치면 클라이언트가 공유한 자원을 마운트시켰다는 것을 알 수 있다.


7. 클라이언트에서 man 명령을 치면 서버의 man을 이용하여 도움말을 잘 보여준다는 것을 확인할 수 있다.


8. 클라이언트에서 mount를 치면 현재 서버의 man을 마운트했다는 것을 확인할 수 있다. 서버의 man을 재부팅 시에도 계속 마운트 하고 싶다면 /etc/vfstab에 추가를 하면 된다. 마운트를 취소하고 싶으면 umount 명령을 이용한다.
umount를 치면 서버의 man에 대한 마운트 정보가 없어졌다는 것을 확인할 수 있다.


9. 서버에서 dfmounts를 치면 공유된 자원을 현재 아무도 마운트하고 있지 않다는 것을 확인할 수 있다.

'운영체제 > 솔라리스' 카테고리의 다른 글

[솔라리스] syslog  (0) 2010.07.22
[솔라리스] AutoFS  (0) 2010.07.22
[솔라리스] swap 공간 관리  (0) 2010.07.21
[솔라리스] 패키지 및 패치 관리  (0) 2010.07.21
[솔라리스] 시스템 부팅 과정  (0) 2010.07.20
Posted by 겨울섬
,