리눅스 & 솔라리스 NFS 설정

Linux & Solaris 2009.08.04 05:32 posted by JP™

1. 서버 /etc/exports 파일 설정
  share-directory   client1(options,,,) client2(options,,,)

  - share-directory  : 공유할 디렉토리명
  - client1      : 공유 디렉토리에 접근할수 있도록 허용된 호스트들
  - options      : 접근 권한설정
    + ro : 클라이언트는 공유 디렉토리에 대해 읽기만 가능하다,
    + rw : 클라이언트는 공유 디렉토리에 대해 읽기/쓰기가 가능하다.
    + no_root_squash  : 클라이언트의 root는 서버의 root와 같은 권한을 가진다.
    + No_subtree_check : 공유된 디렉토리내에 있는 서브 디렉토리들을 공유에서 제외 시키는 경우 설정

  #vi /etc/exports
  /fileserver/images 192.168.1.211(rw) 192.168.1.212(ro)
 
  ※ 폴더 권한은 707로 준다.
  ※ Cent 5.2  “Permission denied“ 에러 발생시 insecure 옵션 추가

 
2. NFS 서버 데몬 구동

  #/etc/init.d/portmap start
  #/etc/init.d/nfs start

  #/usr/sbin/exportfs -ar : 파일이 커널에 적용되도록 한다.
  #/usr/sbin/exportfs -v : 현재 커널에서 알고 있는 익스포트 리스트를 출력한다
  #/usr/sbin/nfsstat   : NFS 상태 정보를 출력한다.

 


3. NFS 클라이언트 마운트

 ※ 솔라리스10 은 NFS 버젼 때문에 타기종 OS가 서버인 NFS 가 마운트 되지 않는 경우가 있다
   이때
    vi /etc/default/nfs 에서
    #NFS_SERVER_VERSMAX=4 값을 NFS_SERVER_VERSMAX=3 로
    #NFS_CLIENT_VERSMAX=4 값을 NFS_CLIENT_VERSMAX=3 로 바꿔주고 실행 하면 된다.


  #/etc/init.d/nfslock start : 데몬시작
 
  * 수동마운트
  리 눅 스 : #mount -t nfs 192.168.1.220:/fileserver/images/ /images
  솔라리스 : #mount -f nfs 192.168.1.220:/fileserver/images/ /images
   
  * 마운트 실행시 사용할수 있는 옵션들
    -o timeo=10  : NFS 서버와 연결이 끊어진 경우 timeo에서 지정한시간(1/10초단위) 기다렸다가 경고 메시지를 발생
    -o rsize=1024 wsize=1024  : 읽고/쓰기 버퍼의 크기를 설정한다.(1024KB=1M)
    -o soft    :  remote mount를 실행할 때 성공하지 못하면 timeo 까지만 retry 후 에러 메시지를 발생하고 종료
    -o hard    :  remote mount가 성공할 때 까지 무한시 재시도한다. (디폴트값이다)
    -o bg     :  첫번째 마운트 시도가 실패인경우 백그라운드로 계속 마운트를 재시도한다.


  * 부팅시 자동마운트(리눅스)
  #vi /etc/fstab
  192.168.1.220:/fileserver/images/ /images nfs defaults
 
 
  * 부팅시 자동마운트(솔라리스)
  #vi /etc/vfstab
  192.168.1.220:/fileserver/images/ - /images nfs - yes soft,intr,bg
 
  * 설정후 마운트
  #mount /images
 
 
 
  * 마운트 해제
  umount /images
 
 ※ umount: /images : device is busy 가 뜰경우

   fuser -k /images 후 umount /images 실행

 

 

*NFS 서버 방화벽 설정

#vi /etc/sysconfig/nfs 수정

STATD_PORT=4001
LOCKD_TCPPORT=4002
LOCKD_UDPPORT=4002
MOUNTD_PORT=4003

 

# vi /etc/services
rquotad  4004/tcp  # rpc.rquotad tcp port
rquotad  4004/upd  # rpc.rquotad udp port


#service nfs restart
#service nfslock restart


#포트정보 확인

#/usr/sbin/rpcinfo -p

100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100021 1 udp 4002 nlockmgr
100021 3 udp 4002 nlockmgr
100021 4 udp 4002 nlockmgr
100021 1 tcp 4002 nlockmgr
100021 3 tcp 4002 nlockmgr
100021 4 tcp 4002 nlockmgr
100005 1 udp 4003 mountd
100005 1 tcp 4003 mountd
100005 2 udp 4003 mountd
100005 2 tcp 4003 mountd
100005 3 udp 4003 mountd
100005 3 tcp 4003 mountd
100024 1 udp 4000 status
100024 1 tcp 4000 status


#vi /etc/sysconfig/iptables

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 111 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 2049 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 4001 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 4002 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 4003 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 4004 -j ACCEPT

-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 111 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 2049 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 4001 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 4002 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 4003 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 4004 -j ACCEPT


포트 추가

#/sbin/service iptables restart

 

마운트가 정상적이지 않을겨우

daemon rpc.lockd -p 4001


  1. Commented by at 2017.03.14 10:24

    비밀댓글입니다

MySQL 문자셋 지정

Linux & Solaris 2009.08.04 05:29 posted by JP™

euckr 로 지정 할 경우 아래처럼 /etc/my.cnf 파일을 수정하면 되고
utf-8 을 사용하고 싶으면 euckr 을 utf8 로 수정하면 된다.

[client]
default-character-set=euckr

[mysqld]
init_connect = SET collation_connection=euckreuckr
init_connect = SET NAMES euckreuckr(& utf8)
default-character-set=euckr
collation-server=euckr
default-collation=euckr_korean_ci

[mysqldump]
default-character-set=euckr

[mysql]
default-character-set=euckr

mysql 리스타트

<확인>
mysql> show variables like 'c%';



mysql processlist 에 알수없는 호스트 관련 프로세스가 계속 떠 있으면서 속도가 느려질 경우


vi /etc/hosts 파일에 해당 호스트 IP를 추가하고
mysqladmin -uroot -p flush-host 로 적용시켜 준다.