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/275/trackback
List of Articles
번호 제목 글쓴이 날짜 조회 수sort
207 인증서문제 (modulus 비교) ADMINPLAY 2009-07-08 21862
206 리눅스 네트워크 설정 ADMINPLAY 2009-05-11 21856
205 mii-tool 사용법 ADMINPLAY 2009-11-30 21766
» [LVS] CentOS5.2 기반 LVS 셋팅(Piranha) ADMINPLAY 2009-11-04 21727
203 crossdomain.xml 정책변경에 따른 변경사항. ADMINPLAY 2010-08-31 21702
202 FreeBSD 커널패닉 복구하기 ADMINPLAY 2009-08-08 21701
201 OS 종류 및 버전확인 ADMINPLAY 2008-12-23 21701
200 swap 증설작업 ADMINPLAY 2009-11-26 21664
199 tar 분할 압축 및 해제 및 특정 디렉토리만 압축 ADMINPLAY 2009-07-18 21657
198 리눅스에서 계정 생성시 자동으로 디렉토리가 생성되게 하... ADMIN 2008-11-04 21625
197 리눅스에서 윈도우 공유 폴더 마운트 ADMINPLAY 2009-06-04 21530
196 OOM : out of memory ADMINPLAY 2010-10-05 21511
195 리눅스에서 IP 할당하는 방법 ADMINPLAY 2010-05-03 21451
194 시스템 최적화 - 동시사용자 늘리기위한 커널 조정 ADMINPLAY 2009-06-17 21352
193 리눅스 계정 삭제, 접속 차단 ADMIN 2008-11-03 21327
192 압축 : tar / gzip / jar / tbz 사용법 ADMINPLAY 2009-06-29 21285
191 콘솔에서 로그인이 안될때 ADMINPLAY 2008-12-29 21260
190 vi 에디터 - 라인 범위정해서 주석처리하기 ADMINPLAY 2011-01-07 21185
189 리눅스 vsftp의 root 접속문제 ADMINPLAY 2009-07-07 21182
188 웹사이트 F5 키 막기 ADMINPLAY 2010-05-07 21068

Copyright ADMINPLAY corp. All rights reserved.

abcXYZ, 세종대왕,1234

abcXYZ, 세종대왕,1234