¹«Á¤Áö, ¹«Á¦ÇÑ Web ¼¹ö¸¦ ¸¸µéÀÚLinux Virtual Server Project& M$-WLBSby Byoungjoon Shin 1999-9-9 |
![]() |
¾È³çÇϽʴϱî? ½Åº´ÁØÀÔ´Ï´Ù.
¿äÁò ÀÎÅͳÝÀÇ ±âÇÏ ±Þ¼öÀûÀÎ Áõ°¡·®À¸·ÎÀÎÇØ ±âÁ¸ÀÇ Web¼¹öÀÇ
¼º´ÉÀÌ »ç¿ëÀÚÀÇ ¿ä±¸¸¦ µû¶ó°¡Áö ¸øÇÏ´Â »óȲÀÌ ¹ß»ýÇϰí
ÀÖ½À´Ï´Ù. Web¼¹öÀÇ upgrade¸¦ »ý°¢ÇØ º¼ ¼ö°¡ ÀÖÁö¸¸, À̰͵µ °ð
ºÎÇϰ¡ ¸ðÀÚ¶ó°Ô µÉ °ÍÀ̸ç, upgrade °úÁ¤µµ »ó´çÈ÷ º¹ÀâÇÏ°í ºñ¿ëµµ
¸¸¸¸ÇÏÁö°¡ ¾Ê½À´Ï´Ù.
±âÁ¸ÀÇ ¹æ¹ýÀ¸·Î´Â Round-Robin DNS ³ª °í°¡ÀÇ IP ºÐ¹è±âÀåÄ¡µéµµ ÀÖÁö¸¸, À̶ÇÇÑ °¡°ÝÀÌ ¸¸¸¸ÇÏÁö°¡ ¾Ê½À´Ï´Ù.
±×·¯¸é, SW¸¸À» ÀÌ¿ëÇÑ ¹æ¹ýÀ¸·Î´Â ¾î¶²°ÍÀÌ ÀÖÀ»±î ã¾Æº¸¾Ò´õ´Ï, Á¦¸ñ°ú °°ÀÌ Linux °è¿¿¡¼´Â "Linux Virtual Server Project(http://proxy.iinchina.net/~wensong/ippfvs/)" °¡ ÀÖ°í, M$ÀÇ °è¿¿¡¼´Â WLBS°¡ ÀÖ´õ±º¿ä.
ÀÌ µÎ SW¸ðµÎ ¿ÜºÎ »ç¿ëÀÚ¿¡°Ô´Â ÇϳªÀÇ IP¸¸À» º¸¿©ÁÖ¸é¼,
³»ºÎÀûÀ¸·Î´Â n°³ÀÇ ¼¹ö¸¦ µ¹¸®´Â ¼Ö·ç¼ÇÀÔ´Ï´Ù.
Áï, n°³ÀÇ ¼¹ö¿¡ °°Àº web ¼ºñ½º¸¦ ¿î¿µÇϸé¼, ºÎÇϰ¡ Áõ°¡ÇϰÔ
µÇ¸é, ¼¹ö¸¸ ´Ã·Á¼ ¼º´ÉÀ» Çâ»ó½Ãų¼ö ÀÖ´Â ¹æ¹ýÀÔ´Ï´Ù. ¶ÇÇÑ, n°³ÀÇ
¼¹ö°¡ µ¿½Ã¿¡ Á×Áö¸¸ ¾Ê´À´Ù¸é, ÇØ´ç ¼ºñ½º(web)´Â Àý´ë
´Ù¿îµÇÁö¾Ê´Â ¹«Á¤Áö ½Ã½ºÅÛÀ» ¸¸µé¾î ÁÖ°Ô µË´Ï´Ù.
¿ì¼±, °³³äµµ¸¦ º¸¸é, LVSP(linux virtual server project)ÀÇ ±×¸²Àº ¾Æ·¡¿Í °°½À´Ï´Ù.
M$ÀÇ WLBS(Windows Load Balancing Server)´Â ¾Æ·¡¿Í °°½À´Ï´Ù.
Àá½Ã µÎ ½Ã½ºÅÛÀ» ºñ±³ÇØ º¼±î¿ä?
Ç׸ñ | LVPS | WLBS |
¿î¿µÈ¯°æ | Linux/Unix °è¿ | Windows NT 4.0 Server Windows NT 4.0 Server Enterprise Edition (Âü°í·Î Çѱ¹ M$¿¡¼´Â Enterprise Edition¿¡¼¸¸ µÈ´Ù°í ÁÖÀåÇÏ¿´À½, ºñ½Ñ sw ÆÈ¾Æ¸ÔÀ»·Á°í, ³ª»Û xx) |
ºñ¿ë | ¹«·á | ¹«·á |
Ãִ뿬°á¼ö | 100´ë ÀÌ»ó | 64´ë |
±¸¼º | 1°³ÀÇ Load Balancer(Real Server °¡´É) n °³ÀÇ Real Server·Î ±¸¼º |
n °³ÀÇ wlbs ¼¹ö·Î ±¸¼º |
clustering ¹æ¹ý | Non-Shared cluster | Non-Shared cluster |
¼³Ä¡¹æ¹ý | Kernel patch | Wlbs setup |
Àû¿ë¹üÀ§ | LAN/WAN | LAN |
½ºÄÉÁÙ¹æ¹ý | Round-Robin Scheduling Weighted Round-Robin Scheduling Least-Connection Scheduling Weighted Least-Connection Scheduling ÀÇ 4°¡Áö Áß¿¡¼ ¼±Åð¡´É |
ºñ°ø°³ |
°¢ swÀÇ ÀÚ¼¼ÇÑ ³»¿ëÀº ÇØ´ç web ÆäÀÌÁö¿¡¼ ã¾Æ º¸½Ã±¸¿ä. ¿©±â¿¡¼´Â Á¦°¡ ¼³Ä¡Çϰí, Å×½ºÆ®Çϰí, ¿î¿µÇÑ ³»¿ëÀ» ±âÁØÀ¸·Î ¼³¸íÇÏ¿© µå¸®°Ú½À´Ï´Ù.
¿ì¼± ÄÄÇ»ÅͰ¡ ÀÖ¾î¾ß °ÚÁö¿ä. 2´ëÀÌ»ó + Ŭ¶óÀÌ¾ðÆ® 1´ë ^^
ÄÄÇ»ÅÍÀÇ ±âÁ¾Àº ¹«¾ùÀÌ¶óµµ »ó°üÀÌ ¾ø½À´Ï´Ù. °¢ OS°¡ ¿î¿µ°¡´ÉÇÑ
ÃÖ¼ÒÇÑÀÇ ½Ã½ºÅÛÀÌ¸é µË´Ï´Ù.
LVSP
Kernel ¼Ò½º 2.2.12 ·Î Å×½ºÆ® ÇÏ¿´½À´Ï´Ù.
LVSP ȨÆäÀÌÁö¿¡¼ ÃֽŹöÁ¯(Å×½ºÆ®ÇÒ ´ç½ÃÀÇ ÃֽŹöÁ¯ ipvs-0.8.2-2.2.12.tar.gz)À» ¹Þ¾Æ ¿É´Ï´Ù.
WLBS
Windows NT 4.0 Server
WLBS¸¦ M$ÀÇ È¨ÆäÀÌÁö¿¡¼ ¹Þ¾Æ ¿É´Ï´Ù.
LVSP
linuxÀÇ Ä¿³Î ÄÄÆÄÀÏ¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ Á¤º¸´Â http://kldp.org¿¡ °¡¸é ÀÖ½À´Ï´Ù.
À§¿¡¼ ¹Þ¾Æ¿Â ÆÄÀÏÀ» ÀÓÀÇ µð·ºÅ丮¿¡ ¾ÐÃàÇØÁ¦ ÇÕ´Ï´Ù.# tar xvzf ipvs-0.8.2-2.2.12.tar.gz (/usr/src µð·ºÅ丮¿¡ Ç®¾ú´Ù°í °¡Á¤ÇÕ´Ï´Ù.)
# cd ipvs-0.8.2-2.2.12
# vi README
# cd ipvsadm-1.2 : ipvsadm ¼³Ä¡¸¦ À§Çؼ
# make
# make install
# cd /usr/src/linux
# cat <path-name>/ipvs-0.8.2-2.2.12.patch | patch -p1
¿¹) cat ../ipvs-0.8.2-2.2.12.patch | patch -p1
ÀÌ ÀÌÈÄÀÇ °úÁ¤ÀÇ ¸®´ª½ºÀÇ Ä¿³Î ÄÄÆÄÀÏ °úÁ¤°ú ¶È°°½À´Ï´Ù. ´ÜÁö ¸î°¡Áö ÄÄÆÄÀÏ ¿É¼ÇÀ» ÁöÁ¤ÇØ ÁÖ¾î¾ß µÇ´Âµ¥, Àúµµ ¿Ö ÁöÁ¤ÇØ ÁÖ¾î¾ß ÇÏ´ÂÁö´Â ÀÚ¼¼È÷ ¸ð¸£Áö¸¸, ÇØ´ç »çÀÌÆ®ÀÇ ¼³¸í¿¡ ±×·¸°Ô µÇ¾î Àֱ⠶§¹®¿¡ ÁöÁ¤ÇØ ÁÖ¾ú½À´Ï´Ù.
Linux Ä¿³Î ÄÄÆÄÀϰúÁ¤ Áß¿¡¼
# make menuconfig -- Ä¿³Î ÄÄÆÄÀÏ ¼³Á¤ ÁöÁ¤½Ã
Kernel Compile Options:
Code maturity level options --->
[*] Prompt for development and/or incomplete code/drivers
Networking options --->
[*] Network firewalls
....
[*] IP: firewalling
[*] IP: always defragment (required for masquerading) (NEW)
....
[*] IP: masquerading
....
[*] IP: masquerading virtual server support (EXPERIMENTAL)(NEW)
(12) IP masquerading table size (the Nth power of 2)(NEW)
<*> IPVS: round-robin scheduling(NEW)
<*> IPVS: weighted round-robin scheduling(NEW)
<*> IPVS: weighted least-connection scheduling(NEW)
<*> IPVS: persistent client connection scheduling(NEW)
....
[*] IP: aliasing : À̺κÐÀÇ lvsp Ȩ¿¡´Â ¾ø´Âµ¥, ÁöÁ¤¾ÈÇØÁÖ¸é ¾ÈµÇ´õ±º¿ä.¡¡
ÄÄÆÄÀÏÀÌ ¿Ï·áµÈ ÈÄ¿¡ »õ·Î¿î ÄÄÆÄÀÏ·Î ¸®ºÎÆÃÇÕ´Ï´Ù. À̰ÍÀ» ¼³Ä¡°¡ ¿Ï·áµÈ °ÍÀÔ´Ï´Ù.
¡¡
WLBS
M$ »çÀÌÆ®¿¡¼ ¹Þ¾Æ¿Â wlbsÀÇ ÆÄÀÏ(wlbs22_i386.exe)ÀÇ ¾ÐÃàÀ» ÀÓÀÇÀÇ µð·ºÅ丮¿¡ Ç®¾îÁÝ´Ï´Ù.
readme.txt¸¦ È®ÀÎÇØ º¸½Ã±¸¿ä.
¾ÐÃàÀ» Ǭ µð·ºÅ丮¿¡ wlbs.hlp ÆÄÀÏÀ» º¸½Ã¸é ÀÚ¼¼ÇÑ ¼³Ä¡¿¡ °üÇÑ Á¤º¸°¡ ÀÖ½À´Ï´Ù. ±×¸²°ú ÇÔ²²...
¸ÕÀú, °¡»ó IP(»ç¿ëÀÚ¿¡°Ô º¸¿©Áú IP)¿Í °¢ ¼¹ö¿¡ ÇÒ´çµÈ IP°¡ ¾Æ·¡¿Í °°´Ù°í ÇսôÙ.
°¡»ó IP : 172.26.20.110
¼¹ö #1ÀÇ IP : 172.26.20.111
¼¹ö #2ÀÇ IP : 172.26.20.112
LVSP
LVSP¿¡¼´Â Load balancer ÄÄÇ»ÅÍ¿Í Real ServerÀÇ ¼³Á¤ÀÌ ¾à°£ ´Ù¸¨´Ï´Ù.
Load balancer (Linux Director) ÄÄÇ»ÅÍ¿¡¼ ¾Æ·¡¿Í °°ÀÌ ¸í·ÉÀ» ÁÝ´Ï´Ù.
ifconfig eth0 172.26.20.111 netmask 255.255.255.0 broadcast 172.26.20.255 up
route add -net 172.26.20.0 netmask 255.255.255.0 dev eth0
ifconfig eth0:0 172.26.20.110 netmask 255.255.255.255 broadcast 172.26.20.110 up
route add -host 172.26.20.110 dev eth0:0
ipvsadm -A -t 172.26.20.110:23 -s wlc (WLC scheduling is used for this virtual service)
ipvsadm -a -t 172.26.20.110:23 -R 172.26.20.112 -gReal ServerÀÇ ¼ö¸¸Å ¸¶Áö¸· ¶óÀÎÀ» ¹Ýº¹Çؼ ÁÖ¾î¾ß ÇÕ´Ï´Ù.
¶ÇÇÑ Load balancer ÄÄÇ»Å͸¦ real server·Îµµ »ç¿ëÇÒ·Á¸é,ipvsadm -a -t 172.26.20.110:23 -R 127.0.0.1 -g
ÀÌ·¸°Ô ¸í·ÉÀ» Ãß°¡·Î ÁÝ´Ï´Ù.
¡¡
´ÙÀ½À¸·Î °¢ Real Server¿¡¼´Â ¾Æ·¡¿Í °°ÀÌ ¸í·ÉÀ» ÁÝ´Ï´Ù.
ifconfig eth0 172.26.20.112 netmask 255.255.255.0 broadcast 172.26.20.255 up
route add -net 172.26.20.0 netmask 255.255.255.0 dev eth0
ifconfig lo:0 172.26.20.110 netmask 255.255.255.255 broadcast 172.26.20.110 up
route add -host 172.26.20.110 dev lo:0
¿©±â±îÁö°¡ ¼³Á¤ÀÇ ÀüºÎ ÀÔ´Ï´Ù.
¡¡
WLBS
wlbsÀÇ ¼³Á¤ÀÇ µµ¿ò¸»ÀÇ ¼³Á¤¹æ¹ýÀ» ±×´ë·Î µû¶óÇÏ¸é ½±°Ô °¡´ÉÇÕ´Ï´Ù. ´Ù¸¸ ¾Æ·¡ÀÇ ±×¸²¿¡¼ ÇѰ¡Áö¸¸ ¹Ù²Ù¾î ÁÖ¸é µË´Ï´Ù.
Primary IP address : °¡»ó IP 172.26.20.110
Subnet mask : 255.255.255.0 ( C Ŭ·¡½ºÀÎ °æ¿ì)
Full Internet name : DNS¼¹ö¿¡¼ ¼³Á¤ÇÑ À̸§
Multicast support : ¸¸¾à Lan card¸¦ 1°³·Î »ç¿ëÇÑ´Ù¸é ¼³Á¤ÇØ ÁֽʽÿÀ.
Priority(ID) : °¢ ¼¹öÁß¿¡¼ ã¾Æ°¥ ¼ø¼
Dedicated IP address : °¢ ¼¹öÀÇ ½ÇÁ¦ IP 172.26.20.111
Filtering mode : °¢ ¼¹ö°¡ µ¿ÀÏ ½Ã½ºÅÛÀÌ ¾Æ´Ñ°æ¿ì¿¡´Â Load percentage¸¦ ¼³Á¤ÇÕ´Ï´Ù.[Add]¹öưÀ» ´·¯ÁÖ°í, [OK]¹öưÀ» ´©¸¨´Ï´Ù.
À§ÀÇ °úÁ¤À» °¢ ¼¹ö¿¡¼ ¶È°°ÀÌ ÇØÁÖ¸é¼ ¼¹öÀÇ ½ÇÁ¦ IP¸¸ ¹Ù²Ù¾î ÁÝ´Ï´Ù.
¶ÇÇÑ µµ¿ò¸»¿¡ º¸¸é, Network ȯ°æÀÇ µî·ÏÁ¤º¸Áß¿¡¼ Binding¿¡ °ü·ÃµÈ ¼³Á¤À» ¹Ù²Ù´Â °ÍÀÌ ÀÖ½À´Ï´Ù. À̰ÍÀ» µµ¿ò¸»ÀÇ ±×¸²°ú ¶È°°ÀÌ ¼³Á¤ÇÏ¿© ÁÝ´Ï´Ù.
¼³Á¤ÀÌ ¿Ï·áµÇ¸é, ¸®ºÎÆÃÇÏ¿© À̺¥Æ® Ç¥½Ã±â¸¦ È®ÀÎÇϽʽÿÀ.
¡¡
Å×½ºÆ® ¹æ¹ýÀº µÎ ½Ã½ºÅÛÀÌ µ¿ÀÏÇÕ´Ï´Ù.
¸ÕÀú, µÎ´ë ¼¹ö¸ðµÎ¸¦ ·£¿¡ ¿¬°áµÇ¾î ÀÖ´Â »óȲ¿¡¼, °¢ ¼¹öÀÇ web ÃÊ±â ÆäÀÌÁö¸¦ ´«À¸·Î È®ÀÎÇÒ ¼ö ÀÖµµ·Ï ´Ù¸£°Ô ¸¸µé¾î ÁÝ´Ï´Ù.
°¢ ¼¹ö°¡ »ì¾Æ ÀÖ´ÂÁö È®ÀÎÇÕ´Ï´Ù.
ping 172.26.20.111
ping 172.26.20.112
À̹ø¿¡´Â °¡»ó IP·Î pingÀ» ÇØ º¾´Ï´Ù.
ping 172.26.20.110
ÀÌ ¼¼°³ÀÇ Å×½ºÆ®¿¡¼ ÀüºÎ ÀÀ´äÀÌ ÀÖÀ¸¸é Á¦´ë·Î ½ÇÇàµÇ´Â °ÍÀÔ´Ï´Ù. ´Ù¸¸, °¡»ó IP·ÎÀÇ pingÀÌ ¾î´À ½Ã½ºÅÛÀ¸·Î °¡´ÂÁö´Â ¾Ë¼ö°¡ ¾ø½À´Ï´Ù.
À̹ø¿¡´Â ºê¶ó¿ìÁ®¸¦ ¶ç¿ì°í,
°¢ ¼¹öÀÇ IP¸¦ url ÁÖ¼Ò¿¡ Àû¾î¼ web¼¹ö°¡ »ì¾Æ ÀÖ°í, °¢ ¼¹öÀÇ Ã³À½ ÆäÀÌÁö°¡ ´Ù¸¥ Áö¸¦ È®ÀÎÇÕ´Ï´Ù.
È®ÀÎÀÌ µÆÀ¸¸é, °¡»ó IP¸¦ url¿¡ Àû¾îÁÝ´Ï´Ù. ÀÌÁ¦ ¾î´Â ¼¹ö°¡ °¬´ÂÁö¸¦ È®ÀÎ ÇÒ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù.
ÇØ´ç ¼¹öÀÇ lan ÄÉÀ̺íÀ» »Ì¾ÆµÎ°í, ºê¶ó¿ìÁ®¿¡¼ '»õ·Î°íħ'À» ÇÏ¿© º¸½Ê½Ã¿À.
À̹ø¿¡´Â ´Ù¸¥ÂÊ ¼¹öÀÇ webȸéÀÌ ³ª¿Ã °ÍÀÔ´Ï´Ù.
¡¡
ÀÚ, ÀÌÁ¦ ¹«Á¤Áö, ¹«Á¦ÇÑ web¼ºñ½º¸¦ ÇÒ Áغñ°¡ µÈ °ÍÀÔ´Ï´Ù.
À̰ÍÀº ²À Web¼ºñ½º »Ó¸¸ ¾Æ´Ï¶ó TCP/IP¸¦ »ç¿ëÇÏ´Â ´ëºÎºÐÀÇ ¼ºñ½º¿¡ ÀÀ¿ëÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.
±×·³, µµ¿òµÇ¼Ì±â¸¦ ºË´Ï´Ù.
¡¡
1999³â 9¿ù 9¿ù