다음 이전 차례

5. 서버 설치하기

레드햇 6.0을 서버로 운영한다는 기준에 맞추어 필요한 모든 RPM들을 만들어 놓았다.

모든 소프트웨어는 LTSP download page에서 찾을 수 있으며 ftp로는 LTSP ftp server에서 받을 수 있다.

5.1 다운로드 가능한 패키지들

XFree86-xfs-3.3.3.1-52.i386.rpm

X 폰트 서버의 업그레이드이며 레드햇 6.0에는 필요하지만 6.1에는 불필요하다.

bootp-2.4.3-7.i386.rpm

Bootp 데몬

lts_core-1.0.rpm

LTS package의 중심. 루트파일시스템, 각종 구성파일, 워크스테이션을 위한 문서들을 담고 있다. 문서들은 /usr/doc/lts-1.0 디렉토리에 들어가며 거기에는 이 문서의 HTML, SGML, Postscript 그리고 Text형식이 준비되어 있다.

lts_kernel_ne2000-1.0.rpm

NE2000어댑터를 위한 드라이버가 포함되어 컴파일된 커널이다. 이 커널을 위한 컴파일 .config 화일은 /tftpboot/lts/kernel_configs/config.ne2000에 들어가 있다.

lts_kernel_rtl8139-1.0.rpm

RTL8139칩을 이용한 어댑터를 위한 드라이버가 포함되어 컴파일된 커널이다. 이 커널을 위한 컴파일 .config 화일은 /tftpboot/lts/kernel_configs/config.rtl8139에 들어가 있다. 이 칩을 사용한 어댑터의 예로서는 SMC-1211TX 10/100 등이 있다.

X Servers

다양한 X 서버들이 ltsp.org site 에 준비되어 있다.

이 모든 패키지는 LTSP websiteLTSP ftp server에서 구할 수 있다.

5.2 IP주소 체계 계획

네트워크 상의 모든 장비들은 고유한 ip주소를 가져야 한다. 이 예 에서는 사용 보류된 C클래스 어드레스인 192.168.0.0 대역을 사용하겠다. 물론 원하는 어드레스로 바꾸어도 된다.

서버의 주소로 192.168.0.254 를 택하고 워크스테이션용으로 192.168.0.1 부터 하나씩 올라가며 사용하도록 하겠다. 이 주소체계는 하나의 서버에 253개의 워크스테이션을 가능하게 할 수 있다.

만일 더 많은 수의 워크 스테이션이 필요하다면 서로다른 C클래스 어드레스를 갖는 여러개의 서버를 구성하든지, 아니면 하나의 서버와 B클래스 어드레스를 사용하면 된다. 이 경우 65533개의 워크스테이션이 가능하게 된다. (굉장하게 들리죠??)

워크스테이션의 이름으로는 'ws001'에서 시작하여 하나씩 위로 올라가는 방법을 택했다.

5.3 XFS 업그레이드 Upgrade the xfs package

레드햇 6.0에 포함된 xfs패키지는 원격 워크스테이션을 지원하지 않는다. 지금은 업데이트된 xfs가 있으며 이는 레드햇 사이트나 LTSP에서 다운 받을 수 있다. XFree86-xfs-3.3.3.1-52.i386.rpm 이나 그 후의 버젼이 필요하다.

만일 레드햇 6.1을 사용한다면 xfs는 신경쓸 일이 없다. 이 버젼에서는 원격 워크스테이션을 위한 기능이 있다. 그러나 물론 구성파일과 X를 위한 XF86Config파일은 수정을 해주어야 한다.

업그레이드 하는 명령은 다음과 같다.

rpm -U XFree86-xfs-3.3.3.1-52.i386.rpm

업그레이드를 했다면 시작 스크립트를 수정해야 한다. 수정해야 할 파일은 /etc/rc.d/init.d/xfs이며 두줄을 바꿔주어야 한다. 바꿔야 할 내용은 레드햇 버젼에 따라 다르다.

레드햇 6.0

daemon --check xfs su xfs -c \"xfs -port -1\" -s /bin/sh으로 시작하는 줄을 찾아야 한다. 22번째 줄근처와 41번째 줄근처에 있다. 다음과 같이 수정한다.

 daemon --check xfs su xfs -c \"xfs -port 7100\" -s /bin/sh

Redhat 6.1

daemon xfs -droppriv -daemon -port -1으로 시작하는 줄을 찾아야 한다. 22번째 줄근처와 41번째 줄근처에 있다.

다음과 같이 수정한다.

daemon xfs -droppriv -daemon -port 7100

위의 수정내용은 폰트서버가 원격 워크스테이션에게도 서비스 해주도록 하는 것이다.

/etc/X11/XF86Config파일도 수정해야 한다.

다음과 같은 줄을 찾는다.

FontPath   "unix/:-1"
다음과 같이 수정한다.
FontPath   "tcp/localhost:7100"

5.4 bootpd 설치

레드햇에는 bootpd가 포함되어 있지 않다. 따라서 전 버전에서 찾아 보거나 레드햇에서 다운을 받거나 ftp.ltsp.org에서 다운 받을 수 있다. 인스톨하는 명령은 다음과 같다.

rpm -i bootp-2.4.3-7.i386.rpm

이 명령으로 설치가 되고 샘플 구성화일도 설치가 된다.

5.5 lts_core 패키지 설치

lts_core-1.0.rpm 파일을 ftp.ltsp.org에서 다운 받아서 다음의 명령으로 인스톨한다.

rpm -i lts_core-1.0.rpm
이 명령은 /tftpboot/lts 디렉토리를 만들어 주고 그 안에 루트 파일시스템으로 마운트 될 기본적인 디렉토리 구조를 만들어 준다. 또한 /etc/bootptab/etc/exports 파일안에 필요한 항목들을 추가해 준다.

5.6 적합한 커널 선택

워크스테이션이 부팅될때 서버로부터 커널을 다운받아 메모리에 적재하고 실행하게 된다. 이 커널은 네트워크 부팅을 위하여 좀 특별하게 컴파일 되어야 하며 네트워크 어댑터 드라이브가 포함되어 있어야 한다. 이 드라이버를 모듈로 로드할수는 없다. 필요한 설정이 되어 있는 커널을 준비했으며 단지 부착된 네트워크 어댑터에 맞는 커널을 골라서 다운받아 설치하기만 하면 된다.

RPM들이 ltsp사이트에 있으며 예를 들어 lts_kernel_ne2000-1.0.rpm을 다운받아서 설치하는 명령은 다음과 같다.

rpm -i lts_kernel_ne2000-1.0.rpm 
이 명령은 vmlinuz.ne2000 커널이미지를 /tftpboot/lts 디렉토리에 넣어준다. 다른 커널이 필요하다면 같은 과정으로 설치할 수 있다.

5.7 X서버 선택

가지고 있는 비디오카드에 맞는 X 서버를 골라야 한다. XF86_SVGA 서버가 대부분의 경우 잘 작동되지만 가지고 있는 카드의 칩셋에 맞는 서버를 골라서 설치한다면 보다 좋은 성능을 기대할 수 있게 된다.

해당 X서버를 레드햇에서 다운받아도 좋으며 ltsp사이트에서 다운 받는다면 X서버를 적절한 위치에 설치까지 해주는 rpm을 구할 수도 있다.

만약 SiS-620칩셋을 가진 비디오 카드를 사용한다면 3.3.5이후의 XF86_SVGA를 사용해야 할 것이다. 이전 버젼의 서버는 SiS칩셋을 제대로 지원하지 않는다. 다음과 같은 파일들이 LTSP의 사이트에 있다. lts_xmach64-1.1.rpmlts_xsvga-1.1.rpm등을 다운 받아서 설치할 수 있다.

예를 들어 SVGA서버를 인스톨하는 명령은 다음과 같다.

rpm -i lts_xsvga-1.1.rpm 
이 명령으로 XF86_SVGA 서버를 /tftpboot/lts/ltsroot/usr/X11R6/bin디렉토리에 설치할 수 있다.

5.8 구성화일 편집

lts_core를 설치함으로써 몇몇 설정항목을 자동으로 추가해 주기는 하지만 대부분의 경우 상황에 맞게 수정을 해주어야 할 것이다.

/etc/inetd.conf

디폴트로 bootp와 tftp에 관련된 항목이 주석처리 되어있다. 다음과 같은 줄을 찾아서 #마크를 지워주어야 한다.

#
#tftp   dgram   udp     wait    root    /usr/sbin/tcpd  in.tftpd
#bootps dgram   udp     wait    root    /usr/sbin/tcpd  bootpd
# 

/etc/X11/xdm/Xservers

서버에서 X를 자동으로 실행 할것인가를 결정해야 한다. 만일 시스템을 부팅할 때 자동으로 그래피컬한 로그인 화면을 보길 원한다면 아래 내용을 신경쓸 일이 없다. 그러나 X가 자동을 시작되길 바라지 않는다면 아래의 줄을 주석처리해야 한다.

다음과 같은 줄을 찾는다.

:0 local /usr/X11R6/bin/X 

만약 # 기호를 이용하여 주석처리를 해 준다면 xdm이 X를 가동하는 것을 막아준다. 이 경우 X를 시작하기 위해서는 startx 스크립트를 실행하면 된다.

/etc/X11/xdm/Xaccess

이 파일은 원격 워크스테이션이 xdm과 교신할수 있는지 여부를 결정해 준다. 레드햇 6.0에서는 기본적으로 허용되어 있으나 6.1에서는 디폴트로 막혀있다.

원격 접속을 가능하게 하려면 40번째 줄 근처에 있는 다음 줄에서 #기호를 지우면 된다.

# *                                     #any host can get a login window

/etc/inittab

서버에서 xdm을 실행해줄 필요가 있다. 이는 보통 /etc/inittab에서 제어되며 사용가능한 xdm서버는 여러가지가 제공된다. (xdm, gdm, kdm등)

xdm을 사용할 것을 권장한다.

/etc/inittab에서 다음줄을 찾는다.

x:5:respawn:/etc/X11/prefdm -nodaemon 
6.0에서는 prefdm은 gdm에 링크되어 있으며, 6.1에서는 prefdm은 어떤 xdm을 이용할 것인가를 결정하는 스크립트 파일이다.

이 줄을 다음과 같이 수정한다.

x:5:respawn:/usr/bin/X11/xdm -nodaemon
보통 xdm은 런레벨 5에서 작동된다. 서버가 어떤 런 레벨에 있는지는 다음 항목을 보면 알 수 있다. /etc/inittab파일의 initdefault항목을 보았을 때, 다음과 같다면
id:3:initdefault:
아래와 같이 고쳐준다.
id:5:initdefault: 

/etc/bootptab

lts-core패키지를 인스톨 하면 다음 항목을 /etc/bootptab파일에 추가해준다.

## LTS-begin ####################################################
.ltsp:\
  :ht=ethernet:\
  :ds=192.168.0.254:\
  :gw=192.168.0.254:\
  :lg=192.168.0.254:\
  :sm=255.255.255.0:\
  :hn:\
  :hd=/tftpboot/lts:\
  :rp=/tftpboot/lts/ltsroot:
#
# The following is an example of a line needed for a workstation
#
# ws001:tc=.ltsp:ha=AABBCCDDEEFF:bf=vmlinuz.ne2000:ip=192.168.0.1:
## LTS-end ######################################################
각각의 워크스테이션을 위한 항목을 추가해 주어야 한다. 예로 추가되어 있는 라인을 본보기 삼아 수정하면 된다.

ha=항목을 채워주기 위하여 네트워크 어댑터의 맥어드레스를 알아야 하며 bf=항목을 채워주기 위하여 필요한 커널의 이름을 알아야 한다. 또한 ip=항목에는 해당 워크스테이션에 지정된 ip주소를 넣어주어야 한다.

또한 준비된 것과 다른 네트워크 어드레스를 사용한다면 해당 항목들을 모두 수정해 주어야 한다.

/etc/hosts

bootptab파일에 해당 워크스테이션에 대한 정보를 등록해 주었다면 워크스테이션의 ip주소와 이름을 연결해 줄 수 있는 뭔가를 해주어야 한다. 즉, /etc/hosts파일에 등록을 하거나 DNS서버에 등록을 해주거나 등이다. NFS서버는 반드시 마운트를 요구하는 클라이언트의 이름을 ip주소로 풀어낼 수 있어야 하기 때문이다.

/etc/exports

자동으로 추가된 항목만으로 잘 작동할 수 있으나 만일 다른 주소의 네트워크 어드레스를 사용한다면 상황에 맞게 수정해 주어야 한다. 기본은 아래와 같다.

## LTS-begin ## 
/tftpboot/lts/ltsroot   192.168.0.0/255.255.255.0(ro,no_root_squash)
## LTS-end ##

/etc/rc.d/init.d/syslog

이 스크립트는 시스템이 부팅될 때 syslogd데몬을 시작하는 파일이다. 이는 네트워크 상의 다른 장비가 이 서버의 데몬에게 로그 메시지를 보내어 기록할 수 있도록 하기 위하여 수정될 필요가 있다.

22번째 줄근처에 다음 내용을 아래와 같이 바꾸어 준다.

daemon syslogd -m 0 
daemon syslogd -m 0 -r 

/tftpboot/lts/ltsroot/etc/lts.conf

이는 각각의 워크스테이션에 대한 설정 파일이다. 설정가능한 대부분의 내용이 여기에 들어 있다.

각각의 부분은 개개의 워크스테이션을 나타내지만 Default섹션도 있다.

섹션들의 제목은 각각의 워크스테이션의 이름을 나타내거나 아니면 'Default'일 수가 있다. 모든 워크스테이션이 동일한 장비를 사용한다면 디폴트 섹션만으로 충분하다.

/tftpboot/lts/ltsroot/etc/lts.conf의 예는 다음과 같다.

[Default]
        XSERVER            = XF86_SVGA
        SERVER             = 192.168.0.254
        X_MOUSE_PROTOCOL   = "PS/2"
        X_MOUSE_DEVICE     = "/dev/psaux"
        X_MOUSE_RESOLUTION = 400
        X_MOUSE_BUTTONS    = 3

[ws001]
        XSERVER            = XF86_SVGA
        X_MOUSE_PROTOCOL   = "Microsoft"
        X_MOUSE_DEVICE     = "/dev/ttyS1"
        X_MOUSE_RESOLUTION = 50
        X_MOUSE_BUTTONS    = 3
        X_MOUSE_BAUD       = 1200

[ws002]
        XSERVER            = XF86_Mach64

[ws003]
        XSERVER            = XF86_SVGA
        X_COLOR_DEPTH      = 24
        

가능한 항목들은 다음과 같다.

SERVER

이 항목은 XDM과 SYSLOGD, 양쪽의 서버를 동시에 지칭한다. 만약 별도로 두 서버를 지정하지 않는다면 이 서버의 주소로 모든것이 통일된다.

XDM_SERVER

별도로 xdm서버를 지정하려면 사용한다. 만약 별도로 이 항목이 사용되지 않는다면 위의 항목에 지정된 대로 사용된다.

SYSLOG_HOST

별도로 syslogd서버를 지정하려면 사용한다. 만약 별도로 이 항목이 사용되지 않는다면 위의 항목에 지정된 대로 사용된다.

XSERVER

워크스테이션에 사용될 X서버의 종류를 지정한다. 가능한 어떤 서버도 해당위치에 설치되어 있다면 사용할 수 있다. 기본값은 XF86_SVGA이다.

X_MOUSE_PROTOCOL

XFree86 의 Pointer Protocol키워드는 모두 사용될 수 있다. 일반적으로는 "Microsoft" 이거나 "PS/2"이다. 기본값은 "PS/2"이다.

X_MOUSE_DEVICE

마우스가 연결된 장치명이다. 만약에 마우스가 시리얼 마우스라면 이 항목은 /dev/ttyS0같은 시리얼 포트중의 하나가 될 것이다. 마우스가 PS/2라면 /dev/psaux가 될것이다. 기본값은 /dev/psaux이다.

X_MOUSE_RESOLUTION

XF86Config 파일의 Resolution 값이다. 일반적으로 시리얼 마우스는 50정도이고 PS/2마우스는 400정도이다. 기본값은 400이다.

X_BUTTONS

이 항목은 마우스에 달려있는 버튼의 숫자를 알려준다. 보통 2 이거나 3 이다. 기본값은 3이다.

X_MOUSE_BAUD

시리얼 마우스의 경우 이 값는 baud rate이다. 기본값은 1200이다.

X_COLOR_DEPTH

이 항목은 색상을 결정한다. 가능한 값은 8, 15, 16, 24, 32 등이다. 8은 256색, 16은 65536색 등등이다. 모든 X서버가 모든 색상비트값을 지원하지는 않는다. 기본값은 16이다.

Comments

주석은 '#' 기호로 시작하여 줄 끝까지 이다.

5.9 데몬 재시작

모든 설정파일을 수정하거나 생성한 후 각각의 데몬들이 재시작되어야 한다. 각각의 데몬을 재 시작하거나 그냥 서버를 리부팅 해도 된다.

xfs

데몬을 세우기 위하여 아래의 명령을 사용한다.

/etc/rc.d/init.d/xfs  stop
그리고 나서 다시 시작하기 위하여 아래의 명령을 사용한다.
/etc/rc.d/init.d/xfs  start
어떤 이유에 의하여 xfs restart가 정상적으로 작동되지 않았다. 그래서 먼저 stop을 한 후, start를 실행한다. (역자 주: 정확한 확인을 하지는 않았으나 되는 경우도 있는 것으로 보임.)

NFS

exportfs -ra

bootpd

killall -q -HUP bootpd

syslogd

/etc/rc.d/init.d/syslog restart

inetd

killall -HUP inetd


다음 이전 차례