NFS에 관해 혼자서 정리해 봤다….

gundal님의 글…

 

NFS Server/Client 요약

1. NFS Server 구성요소.

1) 설정파일 및 필요한 파일

– /etc/dfs/dfstab : NFS로 공유할 Directory 및 mount 될 option설정
(/etc/init.d/nfs.server 스크립트가 읽어서 이 내용대로 NFS 공유.)
-/etc/init.d/nfs.server : /etc/dfs/dfstab을 참조 /usr/lib/nfs/nfsd를 구동하는 start script
-/etc/dfs/sharetab : 현재 공유설정 해 놓은 file/directory 목록

– /etc/rmtab : 현재 원격으로 mount되어 있는 file/directory 및 client목록
-/etc/dfs/fstypes : mount할 파일시스템의 type을 명시해 놓은 파일(default: nfs)
-/etc/nfs/nfslog.conf : NFS log daemon 설정 파일
구성daemon 및 파일
-/usr/lib/nfs/nfsd : 실제 NFS 서버 데몬. Client의 mount요청을 주시하다가 요청이 발생하면 /etc/dfs/dfstab의 내용에 따라 파일시스템을 공유하도록 mount시켜줌.

– /usr/lib/nfs/mountd : NFS client의 공유(mount)요청에 대해 공유자원의 file handle을 넘겨주는 역할을 하는 데몬.( client에게 공유목록의 i-node 등을 전달.)
-/etc/default/nfslogd : NFS log 데몬.

* /usr/lib/nfs/statd : /etc/init.d/nfs.client script에 의해 구동되며
* /usr/lib/nfs/lockd : 서버와 클라이언트 양쪽모두 구동됨

2. NFS Client 구성요소.
1) 설정파일 및 필요한 파일
-/etc/vfstab : 원격으로 mount할 host:dir_path, mount point, fs type, option을 명시한다.
-/etc/init.d/nfs.client : /etc/vfstab을 참조하여 mountall (NFS resource mount)실행. 이 스크립트가 실행되면 /usr/lib/nfs/statd, /usr/lib/nfs/lockd 가 실행된다.
-/etc/mnttab : 현재 mount된 파일시스템정보를 담고있는 파일(local, remote)
-/etc/dfs/fstypes : mount할 파일시스템의 type을 명시해 놓은 파일(default: nfs)
-/usr/sbin/mount : local 혹은 remote 파일시스템을 mount(/etc/vfstab을 참조.)
2) 구성daemon 및 파일
-/etc/dfs/sharetab : 현재 공유설정 해 놓은 file/directory 목록
-/etc/rmtab : 현재 원격으로 mount되어 있는 file/directory 및 client목록
-/etc/dfs/fstypes : mount할 파일시스템의 type을 명시해 놓은 파일(default: nfs)
-/usr/lib/nfs/statd : 원격으로 mount할 파일시스템의 상태를 감지하는 daemon으로 원격NFS서버에 공유자원에 문제가 생기면 네트워크 연결을 재 시도함.
-/usr/lib/nfs/lockd : NFS서버가 client들에게 공유자원의 사용여부를 통보하는데 이 daemon은 서버가 주는 정보에 의거하여 원격공유자원에 읽기/쓰기를 관리한다.
3. NFS 사용 설명

1) Server side
/etc/dfs/dfstab 파일에 NFS 공유자원을 설정한다.

Ex) # vi /etc/dfs/dfstab

# share [-F fstype] [ -o options] [-d] [pathname] [resource]

# .e.g,

# share -F nfs -o rw=engineering -d “home dirs”‘ /export/home2

share -F nfs /work3/gundal

share -F nfs /work2

share -F nfs /work1

/work3/gundal, /work2, /work1 디렉토리를 원격에서 mount하도록 허용.

option을 지정할 수 있다. ( -o )

root=client : client로 지정된 시스템의 root user는 이 디렉토리에 대해 superuser권한을 갖는다.

rw=acces_list : read/write 옵션으로 access_list에 명시된 client들이 mount가능.

ro=access_list : read only 옵션으로 access_list에 명시된 client들이 mount가능.

access_list 구성 : client들을 구분자 ‘:’를 이용하여 명시한다.

Ex) share -F nfs -o rw=client1:client2:clinet3:… directory

IP주소로 client를 명시할 경우 ‘@’를 앞에 붙인다.

Ex) share -F nfs -o ro=@211.176.132.18:@211.176.132.20:…. directory

도메인으로 명시할 경우 앞에 ‘.’을 붙인다.

Ex) share -F nfs -o ro=.gfs.com:.boxcorea.com:…. Directory

/usr/sbin/share command로 확인해 본다.

# /usr/sbin/share -F nfs [ ?o option_list ] directory

에러 메시지가 없으면 설정에 문제가 없다.

공유가 되어 있는지 확인.

# /usr/sbin/share

– 공유되어 있는 항목을 보여준다.

공유를 제거한 후 /etc/init.d/nfs.server start 실행

# /usr/sbin/unshare directory

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

공유 및 서버데몬 확인

# ps ?e | grep nfs

/usr/lib/nfs/statd

/usr/lib/nfs/lockd

/usr/lib/nfs/mountd

/usr/lib/nfs/nfsd ?a 16

위 4개의 daemon이 실행 중이면 서버측 설정 및 작동은 정상임.

2) Client side

(1)서버의 공유자원을 확인.

# /usr/lib/nfs/dfshare [host-name]

-공유되어있는 directory 또는 자원들을 list한다.

(2)/usr/sbin/mount 명령으로 mount 해본다.

# /usr/sbin/mount ?F nfs [ -o option_list ] [host-name:/공유directory ]

– mount 되거나 mount를 기다리고 있으면 일단 정상적인 nfs공유 가능.

(3)booting시 자동으로 NFS mount하도록 하기 위해 /etc/vfstab을 수정
# vi /etc/vfstab

host-name:/directory – mount-point nfs – yes [bg,soft][fg,hard]

※ option 중 [bg|fg],[soft|hard],[intr|nointr]

booting시 첫번째 mount 실패시…

bg :background로 mount 계속 시도

fg : foreground로 mount 계속 시도.(default)

Soft : 에러 메시지를 출력하고 booting process 진행

Hard : timeo(timeout) 에 명시한 시간이 경과할 때까지 계속시도.(default)

intr : keyboard로 mount process를 중단 가능.(default)

nointr : keyboard로 mount process 중단 불가.

timeo=n : 1?10초 단위로 timeout 값을 지정.(default UDP:11, TCP:600)

retry=n : 재시도 횟수지정 (default:10,000)

(4) 수동으로 mount시 # /usr/sbin/mountall -r

-r : vfstab의 설정 중 remote resour만 mount

Sun box의 호스트아이디 바꾸기…

Let’s assume the MAC address you want to program is 8:0:20:aa:bb:cc and the hostid is 80aabbcc. Note: MAC and hostid don’t have to correspond.

at the ok prompt:

ok> 0 0 mkp
ok> 8 0 20 aa bb cc 80aabbcc mkpl
ok> ^d ^r (control+d, control+r)

(if 0 0 mkp fails, try 1 1 mkp, or 2 2 mkp)

오늘 아침에 해봤음..

솔라리스 2.5.1에서 FIFO 에러

>Quick question: we’ve got our first PCI-based Sun, a brand new Ultra 5, just
>put Solaris 2.5.1 HW 11/97 and pretty recent recommended patches on it. A
>couple of times during the installation, and lots of times once we start X, we
>notice the following message appear in the console:
>
>NOTICE: m64: fifo error, bus_reg=7b23a040

Several people have told me incredibly quickly that I need Sun patch 103792-18
or later on 2.5.1, or 105362-18 or later on 2.6. A couple of people wondered
if 2.5.1 ran properly on the Ultra 5 – yes it does. I’ve grabbed the absolute
latest 103792-20 and installed that. I rebooted the machine and the message
goes away.

솔라리스 낮은버젼에서 ultra10 440MHz CPU를 썼을때 FIFO에러가 나는 모양이다.

위에것은 구글에서 찾은것인데..
패치하면 해결된다는 내용인것 같네.

GF시스템에 문의 한 결과.
solaris7 environmentCD를 넣고 부팅한후, 설치할 OS를 선택하면 된다고..

실제로는 안해봐서 모르겠다.

15″ LCD를 Sun Ultra10에 붙이기…

ultra10에 woody를 설치해보려고 집에 가져갔다.
문제는 집에있는 모니터..
15″ LCD인데 화면이 안나오는게 문제.

기억을 더듬어서,
아무것도 안보이는 화면을 향해서

set-defaults
setenv output-device screen 1024×768 60
이렇게 쳐 넣고
reset

여전히 안보임…

결국 CRT붙여서 해봤더니..
기억을 제대로 못하고 있었던게 문제다.

올바른 방법은
setenv output-device screen:r1024x768 at 60

기억력의 한계…..

core 화일 관련 명령어…

core화일이 생겼을경우…

pstack core ==> core화일이 만들어질 당시 프로세스의 스택 정보 확인..

pflags core ==> core화일이 만들어질 당시 프로세스에 전달된 시그널 확인.

기타 coreadm 명령어를 참조..

=====================================
ex)
# pstack core
core ‘core’ of 11632: ./chklastlog -f /var/adm/wtmpx
ff3905e8 memcpy (3, ffbffec4, ffbffed4, 21db0, 0, 0) + 10c
000109b8 _start (0, 0, 0, 0, 0, 0) + 5c

# pflags core
core ‘core’ of 11632: ./chklastlog -f /var/adm/wtmpx
data model = _ILP32
/1: flags = PR_PCINVAL
sigmask = 0xffffbefc,0x00003fff cursig = SIGSEGV

솔라리스9에서 APM설치할때..

dk님의 글

솔라리스9에 APM설치하면서 궁금한게 생겼습니다.
예전에.. IpFilter 설치할때.. gcc는 32비트로 컴파일되기 때문에..
egcs라는 64비트 컴파일러로 했잖아요… (실제로 설치는 패키지로 했지만.. ㅋㅋ ^^;;)
MySQL이랑.. Apache, PHP도 보통 gcc로 컴파일하는데..
문제 없이 돌아가잖아요..
무슨 차이가 있을까요??
APM도 egcs로 컴파일 하는 게 맞는거 아닐까요??

그리고.. 솔라리스9에서 APM 설치하는거 깔끔하게 정리되면.. 올릴께용~~
아참.. 오늘 OpenBSD 3.3 i386 버전으로 방화벽 구축했습니다.. ㅋㅋ
룰셋은 IpFilter하고 똑 같네요.. ㅋㅋ
지금 셋팅하고 있는 솔라리스가 그 방화벽 안단에 있습니다.. ㅋㅋㅋ

계속 에러발생~~ T.T

dk님의 글

# gcc -v 하면..
——————
theone% gcc -v
Reading specs from /usr/local/lib/gcc-lib/sparc-sun-solaris2.9/3.3.2/specs
Configured with: ../configure –with-as=/usr/ccs/bin/as –with-ld=/usr/ccs/bin/ld –disable-nls –disable-libgcj –enable-languages=c,c++ : (reconfigured) ../configure –with-as=/usr/ccs/bin/as –with-ld=/usr/ccs/bin/ld –disable-nls –disable-libgcj –enable-languages=c,c++
Thread model: posix
gcc version 3.3.2
——————
gcc 컴파일 configure를 보면 –with-as=/usr/ccs/bin/as 이것 때문에 계속 에러가 나네요..
as가 설치되지 않았습니다. ㅋㅋㅋ 웁쓰..

리눅스에선 아래 처럼 특정 파일이 어느 패키지의 일부분인지 알 수 있잖아요..
——————
>> 특정 파일이 어떤 패키지의 일부분인지 파악하고 싶을때
# rpm -qf /etc/passwd
setup-2.5.25-1
——————

솔라리스에서도 이런 검색이 가능한지요… 궁금합니다.. ㅋㅋㅋ
이런식으로 확인해서 그 패키지를 설치하면.. 문제를 해결 할 수 있을것 같습니다.

================================================

Anonymous | 월, 04/19/2004 – 03:26

패키지 관련된 것중 자세하게 리스트를 보는것은 잘 모르겠고,
아래처럼 해보면, 어느 패키지에 있는건지는 알 수 있는데….
정확한 답은 아닌듯 하네요.

# pkgchk -l -p /usr/ccs/bin/as
Pathname: /usr/ccs/bin/as
Type: regular file
Expected mode: 0755
Expected owner: root
Expected group: bin
Expected file size (bytes): 372408
Expected sum(1) of contents: 2332
Expected last modification: Nov 20 04:18:54 2001
Referenced by the following packages:
SUNWsprot
Current status: installed

solaris 9에서 sendmail access설정하기

solaris9의 sendmail의 기본 설정에서는 access화일에 스패머를 등록해도 동작하지 않는다.
다음과 같은 작업을 해줘서 받는 메일을 거부할 수 있도록 했다.

먼저,

cp /usr/lib/mail/cf/main.mc new.mc

new.mc 에 다음의 내용을 추가한다.
divert(0)dnl
VERSIONID(`@(#)main.mc 1.5 (Sun) 08/10/00′)
OSTYPE(`solaris8′)dnl
DOMAIN(`solaris-generic’)dnl
define(`DATABASE_MAP_TYPE’, `dbm’)
FEATURE(`access_db’)

MAILER(`local’)dnl
MAILER(`smtp’)dnl

위 화일로 cf화일을 생성한다.
/usr/ccs/bin/m4 ../m4/cf.m4 new.mc > new.cf

생성한 new.cf화일을
/etc/mail/sendmail.cf로 대체한다. 물론, 기존 화일은 백업을 해두는 것이 좋겠지.

마지막으로
/etc/mail/access화일을 편집한다

xxx@xxx.com REJECT
이처럼 하고

makemap dbm /etc/mail/access

solaris부팅시 samba서버 올리기…

스크립트를 만든다.
/etc/rc2.d/S83samba

스크립트 내용…
==========================
case “$1” in
start)
[ -f /usr/local/samba/lib/smb.conf ] || exit 0

/usr/local/samba/bin/smbd -D
/usr/local/samba/bin/nmbd -D
;;
stop)
pkill smbd
pkill nmbd
;;
*)
echo “Usage: $0 { start | stop }”
exit 1
;;
esac
exit 0
=============================

StorEDGE A1000 사용하기?

orkut.com의 솔라리스 커뮤니티에 사용법에 관한 기초적인 질문을 오렸더니 친절한 사람들이 답변을 달아 주었다.

문제는 E250에 붙어 있는 또는 대부분의 onboard SCSI 카드가 single ended라는 것이었다. 이것이 의미하는 것은 differential SCSI카드가 필요하다는 뜻!

ultra1에 Sbus Differential SCSI카드를 달고, probe-scsi-all했더니 디스크가 죽 뜬다. ultra1에 CDROM이 없어서, 250에 붙였던 디스크를 붙이고 부팅 시도를 했지만, 장치가 너무 달라 실패했다. 내일 CDROM붙여서 다시 시도해 봐야겠다.

raid manager도 역시 내일이면 결과가 나올듯하다.

참, 맨 마지막에 답글 달아준 Wolfgang에 의하면 터미네이터가 꼭 필요할거란 얘긴 사실과 좀 달랐다. 터미네이터는 붙이지 않아도 잘 인식 되었다.
이제, 기초작업은 끝났다.

참고삼아 질문과 답을 복사해서 올린다.
==============================================
Topic: how to use StorEdge A1000?

Hyun-ho how to use StorEdge A1000? 3/7/2004 9:14 PM
i got A1000 a few days ago.
but, i didn’t have any exprience that machine. how to use it?
i have E250, and one ultrawide scsi cable and one terminator. edit

Martin …………… 3/8/2004 3:04 AM
hiho,
you have to download the sun storedge raid manager 6.22 to configure your new HW-Raid-Controller:
http://www.sun.com/storage/disk-drives/raid.html

i found a howto for you:
http://docs.sun.com/db/doc/805-7756-10?q=raid+manager

greetings Preßy

Hank StorEdge A1000 3/9/2004 6:44 AM
If you don’t have it already, you might need a differential SCSI card. If I remember correctly, those suckers don’t work well with normal SCSI.

Hyun-ho thanks… but.. 3/10/2004 6:38 AM
thanks for answer..

but, is it just operate differential SCSI card really right?

my machine didn’t found A1000.
i was try ‘probe-scsi-all’
it was just found CDROM and Harddisk. there wasn’t A1000.

————————->
sorry for my poor english. edit
delete

Bruno 3/11/2004 3:12 PM
You do need a Dual Differential Ultra/Wide SCSI card. If you’re connecting it to a Sun e250, then obviously you would need a PCI card. I have a D1000 (quite similar to a A1000) and it’s connected via a SBUS Dual Differential Ultra/Wide SCSI card to the IO+SOC Board on my personal e4500.

Also See:
http://sunsolve.sun.com/handbook_pub/Systems/A1000/components.html

Wolfgang 3/11/2004 11:10 PM
You won’t need a DUAL differential card. A single channel high voltage differential (HVD) card would do. But yes: The A1000 is SCSI differential, the onboard interface on Sun servers usually is single ended SCSI. You might need the right terminator (differential) on the A1000 as well, I’m pretty sure the A1000 isn’t auto terminating.

wolfgang

=================================================

poss | 목, 03/18/2004 – 05:48

ultra1 , s-bus differential SCSI, A1000, ultrawide scsi 케이블.

이것 들을 각각 연결하고, solaris9, Raid manager 6.22를 설치.

format명령어 내리면,

A1000 디스크 어레이가 하나의 디스크로 잡혀서 나온다.!!!

별것 아닌 문제로 꽤 많은 시간 낭비!