1. 목적

ㄱ. 리눅스 시작시에 NFS 디렉토리를 자동으로 마운트 해보자


2. 본론

ㄱ. 리눅스의 NFS 디렉토리를 시작시에 자동으로 마운트 하기위해 데몬 서비스로 등록해야함

a. 데몬은 리눅스 서버가 부팅할 때 백그라운드 프로세스로 실행되고 있는 프로그램이다.

i. 리눅스는 다양한 기능과 서비스를 제공하기 위해 많은 데몬 프로세스를 실행

ii. 대부분의 데몬 프로세스는 마지막에 d라는 문자를 포함

iii. 리눅스에서는 네트워크 관련 서비스 처리를 데몬이 담당

iv. 데몬은 독립형 데몬과 수퍼데몬으로 구분

ⓐ. 독립형 데몬

- 웹 서버(HTTPD), DB 서버(MYSQLD)와 같잉 시스템에 독자적으로 프로세스가 구동되어 서비스를 제공

- 항상 메모리에 상주하고 대기하여 클라이언트 요청을 기다림

' 자주 호출되는 서비스의 경우 메모리에 상주시켜 독립형 데몬으로 사용하는 것이 적절

- 독립형 데몬의 실행 스크립트 파일은 대부분 /etc/init.d/ 디렉토리에 존재

- 독립형 데몬의 실행 형식

# /etc/init.d/<서비스 이름> {start | restart | stop}

ⓑ. 수퍼 데몬

- 작은 규모의 서비스는 종속형 데몬으로 필요 시에만 수퍼 데몬이 작동시킴

- 평소에는 4개의 데몬 프로세스가 잠자고 있지만, 타겟 시스템이 호스트 시스템에 서비스를 요청하면 수퍼 데몬을 통하여 서비스 제공

- 수퍼 데몬 XINETD는 /etc/xinetd.d/<데몬 프로그램 이름> 이라는 다수의 설정 파일 사용

' 종속형 데몬 관련 설정 파일을 수정하면 수퍼 데몬을 반드시 재실행

' 요청이 종료되면 서비스 데몬도 종료

b. 부팅 시 자동으로 서비스를 실행

i. 부팅 시 자동으로 서비스를 실행하는 절차

ⓐ.  /etc/init.d에 실행 서비스 셀 프로그램 작성

ⓑ. update-rc.d 명령으로 작성된 스크립트를 초기화 스크립트 링크에 등록

# update-rc.d target.sh defaults 99

-> target.sh의 서비스를 부팅 시 마지막 순서(99)로 실행하도록 등록

ii. 타겟 시스템에서 부팅 시 자동으로 네트워크 IP 설정하고, 호스트의 NFS 공유 디렉토리를 마운트 하는 서비스 등록

ⓐ. /etc/init.d/target.sh 셀 스크립트 작성

ⓑ. update-rc.d 실행하여 등록

ⓒ. 재 부팅 후 확인

c. 자동 실행되는 셀 파일 생성하고, 실행권한 부여 후 등록

# vi /etc/init.d/target.sh


# target.sh의 내용

mount -t nfs 192.168.100.5:/home/lee/nfs_host /root/nfs_target 

형식 : mount -t nfs 호스트IP:호스트의 NFS 디렉토리 타깃의 NFS 디렉터리

# chmod +x /etc/init.d/target.sh

update-rc.d target.sh defaults 99

d. 기존 연결했던 NFS 마운트 해제 후 재 부팅 해봄

# umount /root/nfs_target

# ls /root/nfs_target

# reboot

e. 재 부팅 후 마운트 된 것을 알 수 있음.


3. 결론

ㄱ. 리눅스 데몬 등록을 통해 NFS 디렉토리를 자동으로 마운트 해보았다.

Posted by 시크한공돌이
,

1. 목표 

ㄱ. 이전 시간에 고정 IP 설정하는 법을 배웠습니다. 그 고정 IP를 임베디드 보드에 세팅하고 호스트와의 NFS(network file system)을 설정하는 법을 배워보도록 하겠습니다.


2. 준비

ㄱ. 타겟 임베디드 보드에 고정 IP 설정을 해줍니다. (타겟 IP는 192.168.0.5 라고 가정)

ㄴ. 호스트에 고정 IP(호스트의 IP는 192.168.0.6 이라고 가정)와 nfs-kernel-server 패키지를 인스톨 해줍니다.

sudo apt-get install nfs-kernel-server

위의 명령어를 입력하여 설치합니다.


3. 본문

ㄱ. 먼저 NFS에서 사용할 공유 디렉토리를 생성해 주어야 합니다.

mkdir ~/nfs_host

명령어를 통해 nfs_host라는 디렉토리를 홈 및 유저 폴더에 생성해 줍니다.


ㄴ. 위의 설정을 완료 하였다면 NFS 관련 설정 파일인 /etc/exports 파일을 편집 하여야 합니다.

sudo vi /etc/exports

명령어를 통해 파일을 엽니다.

다음과 같은 그림이 뜨는데 색 별로 글씨로 설명하면 

- 호스트(사용자가 쓰는 PC의 개발환경)의 NFS용 공유 디렉토리
- 타겟의 IP 주소
- NFS 공유 방식입니다. (공유 방식 / rw : 읽기 / 쓰기, sync : NFS가 쓰기 작업할 때 마다 디스크 동기화, no_root_squash : NFS 클라이언트가 서버의 루트 권한 접근 허용)

그림 1. /etc/exports 파일의 설정 모습

 위의 그림 1과 같이 규칙에 맞게 설정을 해줍시다.

위와 같은 설정을 한 후에 아래 명령어를 입력하여 nfs-kernel-server를 재구동 시켜줍니다.

sudo /etc/init.d/nfs-kernel-server restart


ㄷ. 이제 호스트 설정이 완료 되었으니 임베디드 타겟 보드에서 NFS를 마운트 해야합니다.

먼저 다음의 명령어로 공유 디렉토리를 마운트 할 디렉토리를 만들어 줍니다.

mkdir /root/nfs_target


그 다음 다음과 같은 명령어를 통해 마운트 하게 됩니다.

mount -t nfs 192.168.0.6:/home/dean/nfs_host \    엔터

> /root/nfs_target    엔터

성공하게 되면 호스트와 디렉토리가 동기화 됨을 볼 수 있습니다.


4. 결론

ㄱ. NFS를 구축하는 법을 배워보았습니다.

ㄴ. 가끔 공유가 안되는 경우가 있는데 그럴경우 ufw 와 같은 방화벽 설정을 해제하거나 허용 IP를 추가하는 것으로 해결 할 수 있습니다.


Posted by 시크한공돌이
,