Unix/CentOS

automount, 혹은 autofs 활용

ForceCore 2007. 2. 7. 08:21

서버A는 학부생용 서버

서버B는 학부생용 데이터서버 1 (NFS)

서버C는 학부생용 데이터서버 2 (NFS)

서버D는 윈도우 서버 (윈도우 공유)

이렇다고 하자.

 

A에서는 /home에다가 B, C의 NFS 디렉토리를 마운트 한다. 그리하여 A에 계속 하드를 추가시키지 않아도 네트워크를 이용하면 얼마든지 데이터서버 E, F...  를 추가해 갈 수 있을 것이다.

D의 파일도 A의 시스템상 어디선가 쓰고 있어서 마운트 해야한다....

 

 

하지만 문제가 발생한다.

B, C가 부팅이 완전히 된 뒤 서버 A가 켜지면 다행인데

A가 먼저 켜지고, B, C가 그 다음에 켜진다면?

 

/etc/fstab

에 고정적으로 마운트 한 것이 모두 소용이 없게 된다...;;

마운트 안 되면 다시 수작업으로 (...) 마운트 해야지 된다.

 

autofs는 파일시스템을 사용할 때 마운트 하고, 사용을 오랫동안 안 하면 자동으로 unmount해준다. 따라서 A가 먼저 켜지고 B, C가 켜지더라도 B, C서버가 완전히 부트 될 때 까지 사용자가 몇 번만 시도해주면 (-_-) 사용할 수 있게 되는 것이다.

 

CentOS에서 autofs 데몬은

/etc/init.d/autofs

에 있다. 디폴트로는 "서비스 사용되지 않음"인듯.

테스트가 완료될 때 까지는

/etc/rc5.d/K28autofs는 비활성화된 채로 놔두는 것으로 하자.

 

일단은 삼바 마운트를 기준으로 설정파일을 만지는 것을 보여준 뒤 NFS마운트도 곧 보여주겠다.

 

1. 마스터 파일의 에디트

 

/etc/auto.master파일을 에디트 했다.

 

필자는 아래 줄을 추가함:

 

/.automount/smb /etc/autofs/auto.smb --ghost

 

/.automount/smb: /.automount/smb 디렉토리는 autofs의 지배하에 들어가게 된다. 주의: 이미 파일이 존재하고 있는 디렉토리를 여기에 적으면 안 됨. 파일이 날아가는 것은 아니지만, 오토마운트 데몬이 도는 동안 그 디렉토리의 내용은 오토마운트 데몬에 독점되므로, 오토마운트 데몬이 마운트 한 것만 보이게 된다;;

기존의 다른 파일이 있는 곳에다 마운트를 하고 싶으면 할 수 없이 소프트링크를 쓸 수 밖에...;;

 

/etc/autofs/auto.smb: 첫 옵션으로 지정한 디렉토리를 지배하겠다고 했지만... 구체적으로 어떻게 지배할 것인지는 두번째 옵션으로 지정한 파일의 설정을 따른다. 이것이 보조 설정 파일...

 

--ghost: 실제로 디렉토리가 마운트 되어있지 않더라도 (네트워크가 끊겼다든지) ls 했을 때 디렉토리를 보이라는 옵션이다.

 

2. 보조 설정의 에디트

 

/etc/autofs

라는 디렉토리를 생성했다. (CentOS에 디폴트로 있는 디렉토리가 아니다.)

 

그리고 /etc/autofs/auto.smb 파일을 만들었다.

 

ldif    -fstype=cifs,credentials=/etc/autofs/ldif.auth  ://D.yyy.ac.kr/ldif

 

ldif: 오토마운트 된 디렉토리가 어떤 이름을 지니게 되는가?

이 설정에 따르면 공유된 디렉토리는 서버 A에서 /.automount/smb/ldif 로 보이게 된다.

 

-fstype=cifs,credentials=/etc/autofs/ldif.auth

마운트 옵션이 되겠다.

fstype=cifs 는 상당히 명확하죠... 윈도우 폴더를 인식시키는 파일시스템.

credentials=/etc/autofs/ldif.auth

이게 중요한데, 공유에 접속할 때 사용하는 비번이 적힌 파일을 던져주는 것이다 (!)

권한은 600으로 설정하고 내용을...

username=[사용자명]
password=[비번]

으로 한다.

 

윈도우 공유를 마운트 할 때가 그렇지만... 보안상 문제가 조금 있다;; rw 권한이 모든 사용자에게 허락되어 있는 것이다;; 마운트 옵션을 조금 손봐주자.

 

ldif    -fype=cifs,hard,intr,

credentials=/etc/autofs/ldif.auth,

uid=48,gid=48,dir_mode=0700,file_mode=0600

     ://C.yyy.ac.kr/ldif

 

(옵션이 너무 길어서 엔터로 끊어주었다)

 

hard, intr은 NFS에서의 옵션과 같다. 삼바 공유에선 intr은 아직 구현되지 않았다고 하지만...;

hard와 soft의 차이점은

http://tldp.org/HOWTO/NFS-HOWTO/client.html

4.3 mount options를 참고하시오.

 

uid, gid : 소유권자로 보일 유저 / 그룹

 

dir_mode, file_mode: 권한을 설정한다. 반드시 4자릿수로 해야만 한다;; 안 그러면 권한이 이상하게 보일 것이다.

 

데몬 시작!

 

테스트로 /etc/init.d/autofs start

를 해보자. 성공했다면 /.automount/smb/ldif

디렉토리가 보이고, ls로 그 내용을 볼 수 있을 것이다.

만족하면 서비스가 자동으로 시작되게끔 /etc/rc5.d/K28autofs를 S28autofs로 이름을 바꾼다.

 

NFS는 어떻게 하나요?

 

/etc/auto.master에 다음 줄 추가

/.automount/nfs /etc/autofs/auto.nfs --ghost

윈도우 공유를 처리할 때와 비슷하다. -_-a 여기까진 별로 특별한 점 없음.

 

/etc/autofs/auto.nfs의 내용은...

 

9X      -fstype=nfs,hard,intr,rw        B.yyy.ac.kr:/export/disk1/9X
2000    -fstype=nfs,hard,intr,rw        B.yyy.ac.kr:/export/disk1/2000
2001    -fstype=nfs,hard,intr,rw        B.yyy.ac.kr:/export/disk2/2001
2002    -fstype=nfs,hard,intr,rw        B.yyy.ac.kr:/export/disk3/2002
2003    -fstype=nfs,hard,intr,rw        B.yyy.ac.kr:/export/disk4/2003
2004    -fstype=nfs,hard,intr,rw        C.yyy.ac.kr:/export/disk1/2004
2005    -fstype=nfs,hard,intr,rw        C.yyy.ac.kr:/export/disk2/2005
2006    -fstype=nfs,hard,intr,rw        C.yyy.ac.kr:/export/disk3/2006
2007    -fstype=nfs,hard,intr,rw        C.yyy.ac.kr:/export/disk4/2007

 

와 같다. soft와 hard옵션 중 soft를 하면 파일이 방법당할 수 있다. hard로 하길 권장한다. soft를 하면 컴퓨터가 지멋대로 엉뚱한데다가 파일을 기록했다가 파일을 날려먹을 수 있다.

 

기존 홈디렉토리의 마운트들... /home/2000 2001... 등은 /.automount에 대한 소프트링크로 대체했다.

/home/local만은 로컬사용자를 위한 곳이라... 그런 예외가 없다면 /home을 오토마운트가 지배하도록 해도 좋다. (솔라리스가 그렇다.)

 

NFS서버쪽 설정은 필자의 블로그 다른 글을 참고하시길...

http://blog.naver.com/ssanzing2/140030020358 (Solaris10)

http://blog.naver.com/ssanzing2/140027935336 (CentOS)