Skip to content

[LVS] CentOS5.2 기반 LVS 셋팅(Piranha)

조회 수 21727 추천 수 0 2009.11.04 18:10:25

>> CentOS5.2 기반 LVS 셋팅(Piranha) <<

 

1. CentOS5.2 CD를 깐다..
   깔때, 웹(Http, PHP)와 클러스터 항목을 추가하여 깔아야 한다.

 

2. 리눅스 콘솔 한글 설정
vi /etc/sysconfig/i18n 파일을 편집기로 연 다음에,

LANG="en_US"
SUPPORTED="en_US.UTF-8:en_en:ko_KR.eucKR:ko_KR:ko"
SYSFONT="latarcyrheb-sun16"
SYSFONTACM="iso01"
LC_CTYPE="ko_KR"

 

위 부분으로 대체한다.
또한, 원할한 yum 업데이트나 네임서버 경로설정을 위해서 다음 파일을 열어 삽입한다.


vi /etc/resolv.conf
search 164.124.101.2
nameserver 168.126.63.1
nameserver 168.126.63.2

 

그리고, 프롬프트상에서 문자가 깨져보일경우, vi /etc/crontab 을 열어 LANG=c 를 추가한다.
타임싱크를 위해 0,5,10,15,20,25,30,35,40,45,50,55 * * * * root rdate -s time.bora.net 삽입! 다음, 리부팅한다.

 

3. vi /etc/sysctl.conf

net.ipv4.ip_forward = 0 부분의 0을 "1"로 수정한다.

그런다음

sysctl -p 명령을 입력하여 커널파라미터를 적용한다.

 

4. ntsysv에서 불필요한 데몬은 지운다.

단, avahi-daemon, haldaemon, hidd, ipvsadm, kudzu, modclustderd, piranha-gui. pulse 은 부팅시 자동활성화 되도록 체크하고

httpd는 자동활성화 시키면 안된다. 자동활성화가 되게 되면 piranha-gui 데몬과 충돌나게 된다.

--------------------------------------------------------------------------------------------------------------
먼저 /usr/sbin/piranha-passwd 를 이용하여 piranha에 접속할 패스워드를 설정한다.
# piranha-passwd
New Password:
Verify:
Updating password for user piranha

/etc/rc.d/init.d/piranha-gui 를 실행하여 piranha gui 에 접속한다.

# /etc/rc.d/init.d/piranha-gui start

처음 설치시 기본 port는 3636으로 웹으로 접속을 한다. 아이디는 piranha 이다.
설정내용은 웹환경에서 쉽게 이해할 수 있다.
기본적으로는 lvs 세팅을 할 수 있으며 lvs 서버를 이중화하는 것도 가능하다.


** global setting
Primary server public ip : LVS 서버의 공인 ip
Primary server private ip : nic가 두개이고 공인과 사설로 분리할 경우 사설 IP
LVS type : LVS 타입은 lvs 만 지원
Use network type: NAT의 경우 LVS 를 통하여 들어온 패킷이 real server 로 전달되고 다시 LVS를 통하여 클라이언트로 응답을 해준다. 이경우 real server 의 gateway는 LVS의 사설 IP가 된다. Direct Routing 을 사용하면 real server 에서 바로 router 로 나간다. 이경우 리얼서버에서 별도의 세팅이 필요하다. 이에 대해서는 별도로 설명한다.
NAT를 이용할 경우에는 NAT 에 해당하는 몇가지 항목들을 더 입력해야한다.

** redundancy

** virtual servers
virtual server 를 추가한다.
Name : 가상서버를 구별할 이름
Application port: 서비스에 사용할 포트
Device: vip 에서 사용할 네트워크 장치
Re-entry Time: 실제 서버에 고장일 난 경우 활성 LVS 라우터가 고장난 실제 서버를 다시 클러스터로 불러오기 위해 시도하는 초단위 주기
Service timeout: 실제 서버가 활동을 멈춘 후 고장으로 판단되어 클러스터에서 제거될 때까지의 초단위 주기
Persistence: 클라이언트로부터의 요청을 서비스하는 도중에 서버 관리자가 가상 서버로의 지속성 연결을 할 경우 연결 타임아웃 제한이 만료되기 전에 허용되는 비활성 시간(초)

이제 위에서 만든 가상 서버에 real 서버를 추가하면 됩니다.


여기서 세팅한 내용은 아래 파일에 저장이 된다.


/etc/sysconfig/ha/lvs.cf

rimary = 210.124.122.81
primary_private = 192.168.7.81
service = lvs
backup_active = 1
backup = 210.124.122.82
backup_private = 192.168.7.82
heartbeat = 1
heartbeat_port = 539
keepalive = 6
deadtime = 18
network = direct
reservation_conflict_action = preempt
debug_level = NONE
virtual www.tunelinux.pe.kr {
&nbsp;&nbsp;&nbsp;&nbsp; active = 1
&nbsp;&nbsp;&nbsp;&nbsp; address = 210.124.122.86 eth0:1
&nbsp;&nbsp;&nbsp;&nbsp; vip_nmask = 255.255.255.0
&nbsp;&nbsp;&nbsp;&nbsp; port = 80
&nbsp;&nbsp;&nbsp;&nbsp; persistent = 1800
&nbsp;&nbsp;&nbsp;&nbsp; pmask = 255.255.255.255
&nbsp;&nbsp;&nbsp;&nbsp; send = \"GET / HTTP/1.0\\r\\n\\r\\n\"
&nbsp;&nbsp;&nbsp;&nbsp; expEct = \"HTTP\"
&nbsp;&nbsp;&nbsp;&nbsp; load_monitor = none
&nbsp;&nbsp;&nbsp;&nbsp; scheduler = wlc
&nbsp;&nbsp;&nbsp;&nbsp; protocol = tcp
&nbsp;&nbsp;&nbsp;&nbsp; timeout = 6
&nbsp;&nbsp;&nbsp;&nbsp; reentry = 15
&nbsp;&nbsp;&nbsp;&nbsp; quiesce_server = 0
&nbsp;&nbsp;&nbsp;&nbsp; server www1.tunelinux.pe.kr {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;address = 210.124.122.90
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;active = 1
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;weight = 100
&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp;&nbsp; server www2.tunelinux.pe.kr {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;address = 210.124.122.91
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;active = 1
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;weight = 100
&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp;&nbsp; server www3.tunelinux.pe.kr {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;address = 210.124.122.98
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;active = 1
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;weight = 100
&nbsp;&nbsp;&nbsp;&nbsp; }
}


위와 같이 설정파일을 만들었으면 이제 LVS 서비스를 시작하면 됩니다.
# /etc/init.d/pulse start

관련된 프로세서는 다음과 같습니다.
pulse : LVS 대몬 시작. primary/secondary heartbeat
lvs : ipvsadm 서비스 호출, nanny 프로세스 시작
nanny : 개별 실제 서버의 상태 모니터링

# pstree
init-+-crond
&nbsp;&nbsp;&nbsp;&nbsp; |-httpd---8*[httpd]
&nbsp;&nbsp;&nbsp;&nbsp; |-4*[keventd]
&nbsp;&nbsp;&nbsp;&nbsp; |-khubd
&nbsp;&nbsp;&nbsp;&nbsp; |-5*[kjournald]
&nbsp;&nbsp;&nbsp;&nbsp; |-klogd
&nbsp;&nbsp;&nbsp;&nbsp; |-2*[login---bash]
&nbsp;&nbsp;&nbsp;&nbsp; |-mdrecoveryd
&nbsp;&nbsp;&nbsp;&nbsp; |-4*[mingetty]
&nbsp;&nbsp;&nbsp;&nbsp; |-piranha_gui---2*[piranha_gui]
&nbsp;&nbsp;&nbsp;&nbsp; |-pulse---lvs---2*[nanny]
&nbsp;&nbsp;&nbsp;&nbsp; |-scsi_eh_0
&nbsp;&nbsp;&nbsp;&nbsp; |-sshd---bash---su---bash---pstree
&nbsp;&nbsp;&nbsp;&nbsp; |-sshd---bash---su---bash---tail
&nbsp;&nbsp;&nbsp;&nbsp; |-sshd
&nbsp;&nbsp;&nbsp;&nbsp; |-syslogd
&nbsp;&nbsp;&nbsp;&nbsp; `-xinetd

# tail -f /var/log/messages
Jul&nbsp;&nbsp;1 13:47:32 web1 pulse[18559]: STARTING PULSE AS MASTER
Jul&nbsp;&nbsp;1 13:47:32 web1 pulse: pulse startup succeeded
Jul&nbsp;&nbsp;1 13:47:50 web1 pulse[18559]: partner dead: activating lvs
Jul&nbsp;&nbsp;1 13:47:50 web1 lvs[18562]: starting virtual service http active: 80
Jul&nbsp;&nbsp;1 13:47:50 web1 lvs[18562]: create_monitor for http/contents running as pid 18569
Jul&nbsp;&nbsp;1 13:47:50 web1 lvs[18562]: create_monitor for http/contents running as pid 18570
Jul&nbsp;&nbsp;1 13:47:50 web1 nanny[18569]: starting LVS client monitor for 61.74.60.27:80
Jul&nbsp;&nbsp;1 13:47:50 web1 nanny[18569]: making 61.74.60.7:80 available
Jul&nbsp;&nbsp;1 13:47:50 web1 nanny[18570]: starting LVS client monitor for 61.74.60.27:80
Jul&nbsp;&nbsp;1 13:47:50 web1 nanny[18570]: making 61.74.60.23:80 available
Jul&nbsp;&nbsp;1 13:47:55 web1 pulse[18565]: gratuitous lvs arps finished

Jul&nbsp;&nbsp;1 13:48:20 web1 nanny[18570]: shutting down 61.74.60.23:80 due to connection failure -&gt; 23서버가 죽은경우 나오는 메시지

이중으로 구성한 경우 primary 의 네트워크 회선을 뽑으면 backup으로 넘어가고 다시 네트워크 회선을 연결하면 자동으로 primary로 넘어왔다. 그러나 pulse 를 stop 하고 다시 start 하는 경우에는 backup으로 넘어갔다가 다시 primary 로 넘어가지 않았다.


realserver 는 DR 알고리즘을 사용하는 경우 hidden 패치를 하고 loop device에 vip를 등록하여 사용하면 된다.

 

ifconfig lo:0 61.74.60.27 netmask 255.255.255.255 broadcast 61.74.60.27 up
route add -host 61.74.60.27 dev lo:0

profile

일요일은 짜빠게뤼~ 먹는날~^^

엮인글 :
http://adminplay.com/3348/c02/trackback
List of Articles
번호 제목 글쓴이 날짜 조회 수
147 제로보드4의 데이터를 XE 로 이전하는 방법 file ADMINPLAY 2009-11-23 21885
146 LVS-NAT 구축(Linux Virtual Server) file ADMINPLAY 2009-11-04 22955
145 리눅스 클러스터링 LVS(Linux Virtual Server) ADMINPLAY 2009-11-04 20396
» [LVS] CentOS5.2 기반 LVS 셋팅(Piranha) ADMINPLAY 2009-11-04 21727
143 LVS 기능 및 장점과 설치프로그램 및 적용사이트 ADMINPLAY 2009-11-04 23389
142 oracle IP 변경시 변경 해야될 파일 ADMINPLAY 2009-11-01 26278
141 리눅스 하드디스크 에러메세지 ADMINPLAY 2009-11-01 26413
140 가볍고 강력한 SNMP를 이용한 모니터링 프로그램입니다. file ADMINPLAY 2009-10-31 24859
139 네트워크 관리자를 위한 통합 모니터링 툴 - N.E.W.T file [2] ADMINPLAY 2009-10-31 24705
138 Dstat - 모니터링 file ADMINPLAY 2009-10-30 30686
137 mrtg on freebsd , monitor windows2003 ADMINPLAY 2009-10-11 16783
136 favicon 만들기 ADMINPLAY 2009-09-30 24835
135 rm -rf * 잘못 쳤을 때 울지 않기! ADMINPLAY 2009-09-30 19178
134 CentOS 5.0~5.1 :: 커널 2.6.17~2.6.24.1 vmsplice 커널버... ADMINPLAY 2009-09-28 22529
133 [Linux]RedHat Enterprise Linux 5 계열 VNC Server 설정 ADMINPLAY 2009-09-25 23712
132 [설치/설정] APM 튜닝정보 조금 ADMINPLAY 2009-09-24 19074
131 Making Linux Streaming Server RED5 스트리밍 리눅스서버... ADMINPLAY 2009-09-24 26632
130 CentOS 리눅스에서 완벽 동영상 재생하기 ADMINPLAY 2009-09-24 20481
129 Red Hat Linux 9 ADMINPLAY 2009-09-24 51551
128 chkconfig ADMINPLAY 2009-09-24 19816

Copyright ADMINPLAY corp. All rights reserved.

abcXYZ, 세종대왕,1234

abcXYZ, 세종대왕,1234