Ä¿ÇǴнº, ½Ã½ºÅÛ ¿£Áö´Ï¾îÀÇ ½°ÅÍ Ä¿ÇÇÇâÀÌ ³ª´Â *NIX
Ä¿ÇǴнº
½Ã½ºÅÛ/³×Æ®¿÷/º¸¾ÈÀ» ´Ù·ç´Â °÷
* HanIRCÀÇ #coffeenix ¹æ
[ Àåºñ ¹× ȸ¼± ÈÄ¿ø ]
HOME > ½Ã½ºÅÛ °ü¸® / ¼­¹ö¿î¿µ µµ¿ò¸»
°Ë»ö : »çÀÌÆ® WHOIS À¥¼­¹ö Á¾·ù

ÃÖÀûÈ­ / Æ©´× / ¼º´É°³¼± (6, ±Û 1, ÀÚ·á 3)
µð½ºÅ© ÄõÅÍ(quota) (3, ±Û 1, ÀÚ·á 3)
µð½ºÅ© °ü¸® / ÆÄÀϽýºÅÛ / mount (34, ±Û 13, ÀÚ·á 12)
¹é¾÷(backup) / ½Ã½ºÅÛ º¹±¸ (14, ±Û 6, ÀÚ·á 11)
¼­¹ö¿î¿µ (8, ±Û 2, ÀÚ·á 9)
ÇÁ¸°ÅÍ °ü¸® / ÇÁ¸°Æà (7)
ÆÐÅ°Áö °ü¸® / ÆÐÄ¡ / rpm (10, ±Û 5, ÀÚ·á 1)
ºÎÆÃ, boot / LILO / GRUB (10, ±Û 5, ÀÚ·á 9)
¼­¹ö ¸ð´ÏÅ͸µ (10, ±Û 5, ÀÚ·á 2)
·Î±×ÀÎ / ·Î±×¾Æ¿ô (1)
·Î±×(log) / syslog (5, ±Û 3, ÀÚ·á 3)
¸Þ¸ð¸®, ½º¿Ò(swap), ·¥µð½ºÅ©(ramdisk) (3, ±Û 2)
»ç¿ëÀÚ °ü¸®(°èÁ¤ °ü¸®) (1, ÀÚ·á 1)

  FreeBSD¿¡¼­ CARP¿Í HAProxy·Î ÀÌÁßÈ­(HA) ±¸¼º ÀÛ¼ºÀÏ : 2015/03/11 10:42
 
  • ±Û¾´ÀÌ : ÁÁÀºÁøÈ£ ( http://coffeenix.net/ )
  • Á¶È¸¼ö : 15826
          [ ÀÌÀüÈ­¸é / ¼öÁ¤ ]   ºñ¹Ð¹øÈ£ :     Àμâ¿ë È­¸é
      Á¦  ¸ñ : FreeBSD¿¡¼­ CARP¿Í HAProxy·Î ÀÌÁßÈ­(HA) ±¸¼º
    ÀÛ¼ºÀÚ : ÁÁÀºÁøÈ£(truefeel, http://coffeenix.net/ )
    ÀÛ¼ºÀÏ : 2015.2.17(È­)


    1. CARP(Common Address Redundancy Protocol)¶õ

    ³×Æ®¿÷¿¡¼­ VRRP(Virtual Router Redundancy Protocol)¸¦ µé¾îº» Àû Àִ°¡?
    VRRP, CARP À̸§¿¡ Redundancy(¸®´ø´ø½Ã)°¡ µé¾î°¡ ÀÖ´Â °ÍÀ» º¸¸é ¿ëµµ°¡ ¹«¾ùÀÎÁö ÁüÀÛÀÌ °¥ °ÍÀÌ´Ù.
    ¶ó¿ìÅÍ 1´ë¸¸ ¿î¿µÇÒ ¶§ ÀÌ ¶ó¿ìÅÍ¿¡ ¹®Á¦°¡ ¹ß»ýÇÏ¸é ¼­ºñ½º Àå¾Ö°¡ ¹ß»ýÇÑ´Ù. À̸¦ ¸·°íÀÚ ±âº»¶ó¿ìÅÍ + Çϳª ÀÌ»óÀÇ ¹é¾÷ ¶ó¿ìÅ͸¦ ±¸¼ºÇÑ´Ù. ±×¸®°í VRRP·Î ¶ó¿ìÅÍ¿¡ °¡»óÀÇ ¼­ºñ½º IP(VIP)¸¦ ºÎ¿©ÇÑ´Ù. VIP·Î ¼­ºñ½º¸¦ ÇÏ´Ù°¡ ±âº» ¶ó¿ìÅÍ°¡ Àå¾Ö°¡ ¹ß»ýÇÏ¸é ¹é¾÷ ¶ó¿ìÅÍ·Î VIP°¡ ÀÚµ¿À¸·Î ³Ñ¾î°¡¹Ç·Î ¼­ºñ½º Àå¾Ö´Â VIP°¡ ³Ñ¾î°¡´Â ¾ÆÁÖ ÂªÀº ¼ø°£ »ÓÀÌ´Ù. Àå¾Ö½Ã°£ÀÌ ¾ø´Ù°í ºÁµµ ÁÁ´Ù.

    VRRPÀÇ ¶óÀ̼¾½º¸¦ ÇÇÇؼ­ »õ·Ó°Ô ±¸ÇöÇÑ°Ô CARP´Ù.

    À̱ÛÀº ´ÙÀ½°ú °°Àº ¼­¹ö ȯ°æ¿¡¼­ ¼³¸íÇÏ°Ú´Ù.

    - VIP(¼­ºñ½º IP) : 10.10.10.10
    - ¼­¹ö 1 : 10.10.10.1
    - ¼­¹ö 2 : 10.10.10.2

    CARP ÀÌÁßÈ­(¶Ç´Â ´ÙÁßÈ­)´Â Active-Active±¸¼ºÀº µÇÁö ¾Ê°í, Active-Standby·Î ±¸¼ºÀÌ µÈ´Ù.
    ¼­¹ö 1°ú ¼­¹ö 2 Áß¿¡¼­ 1´ë°¡ Active(CARP¿¡¼­ MASTER¶ó°í ºÎ¸§)°¡ µÇ°í ÀÌ ¼­¹ö°¡ VIP 10.10.10.10À» °®°Ô µÈ´Ù. µû¶ó¼­ ¿ÜºÎ¿¡¼­ VIP·Î ¿äûÇϸé ÀÌ ¼­¹ö°¡ ¼­ºñ½º¸¦ ¹Þ°Ô µÈ´Ù. ´Ù¸¥ 1´ë´Â Standby(CARP¿¡¼­ BACKUPÀ̶ó°í ºÎ¸§)°¡ µÈ´Ù. ¸¸¾à MASTER¼­¹ö°¡ ÁװԵǸé, 1~3Ãʳ»¿¡ ÀÚµ¿À¸·Î BACKUP¼­¹ö°¡ MASTER¼­¹ö·Î ÀüȯµÈ´Ù.





    ³»°¡ MASTER¶ó´Â °ÍÀ» ¾î¶»°Ô ¾Ë¸±±î? MASTER ¶Ç´Â BACKUP¼­¹ö¿¡¼­ ÆÐŶÀ» ¸ð´ÏÅ͸µÇغ¸¸é MASTER°¡ 224.0.0.18·Î CARP ÆÐŶÀ» broadcastingÇÏ´Â °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù. ÀÌ ÆÐŶÀ» ÅëÇØ ´©°¡ MASTERÀÎÁö ¾Ë°Ô µÈ´Ù. ÆÐŶÀ» º¸³»´Â °£°Ý(ÃÊ´ÜÀ§)Àº advbase°ª°ú advskew°ªÀÇ Á¶ÇÕÀ¸·Î ¼³Á¤Çϴµ¥, ÀÌ ºÎºÐÀº µÚ¿¡¼­ ¼³¸íÇÏ°Ú´Ù.

     MASTER -> 224.0.0.18 CARP ÆÐŶ broadcast 



    2-1. CARP ¼³Á¤ (FreeBSD 9 ÀÌÇÏ)

    ifconfig ¸í·É 2¹øÀ¸·Î ¼³Á¤ÀÌ ³¡³­´Ù. ÀÌ·¸°Ô °£´ÜÇÑ ÀÌÁßÈ­°¡ ÀÖ¾î? ÁÁÁÒ?

     
    1) ¼­¹ö 1¿¡¼­
    # ifconfig carp0 create
    # ifconfig carp0 vhid 1 advskew 0   pass <ºñ¹Ð¹øÈ£> 10.10.10.10/24

    2) ¼­¹ö 2¿¡¼­
    # ifconfig carp0 create
    # ifconfig carp0 vhid 1 advskew 100 pass <À§¿Í °°Àº ºñ¹Ð¹øÈ£> 10.10.10.10/24
     


    - vhid : Virtual Host ID(VHID). ÀÌÁßÈ­ ±×·ì(¶Ç´Â ´ÙÁßÈ­ ±×·ì. 'virtual group' ¶Ç´Â 'redundancy group'À̶ó°í ºÎ¸¥´Ù. ÆíÀÇ»ó 'ÀÌÁßÈ­ ±×·ì'À̶ó°í ÇÏ°Ú´Ù.)¿¡¼­ »ç¿ëÇÏ´Â ¹øÈ£´Ù. 1~255±îÁö ÁöÁ¤°¡´ÉÇÏ°í, °°Àº ±×·ìÀÇ ¼­¹ö´Â °°Àº ¹øÈ£¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù. À§¿¡¼­´Â 1À» »ç¿ëÇß°í, 2´ë ¼­¹ö ¸ðµÎ¿¡¼­ 1À» »ç¿ëÇØ¾ß ÇÑ´Ù. 3´ë·Î ´ÙÁßÈ­ ±¸¼ºÇÑ´Ù¸é 3´ë ¸ðµÎ °°¾Æ¾ß ÇÑ´Ù.
    - advbase : 'advertisement base' ¾àÀÚ. ÀÌÁßÈ­ ±×·ì¿¡ ¸î ÃÊ°£°ÝÀ¸·Î ¾Ë¸± °Í(advertisement)ÀÎÁö¸¦ ÁöÁ¤ÇÑ´Ù. ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é 1ÃÊ. 1~255±îÁö °¡´É.
    - advskew : 'advertisement skew' ¾àÀÚ. ½ÇÁ¦·Î ÀÌÁßÈ­ ±×·ì¿¡ ¾Ë¸± ¶§´Â advbase + advskey°ª/256 ÃÊ °£°ÝÀ¸·Î ¾Ë¸°´Ù. 100À¸·Î ÁöÁ¤Çß´Ù¸é 1 + 100/256ÃÊ, ¾à 1.39ÃÊ°¡ µÈ´Ù. 0À¸·Î ÁöÁ¤Çß´Ù¸é advbase + 0ÃÊ = 1ÃÊ °£°ÝÀ¸·Î ¾Ë¸°´Ù. ³·Àº °ªÀϼö·Ï MASTER·Î ¼±ÅÃµÉ °¡´É¼ºÀÌ ³ô´Ù.
    - pass : ºñ¹Ð¹øÈ£. °°Àº ÀÌÁßÈ­ ±×·ì³¢¸®´Â µ¿ÀÏÇØ¾ß ÇÑ´Ù.

     
    # ifconfig carp0 create
    # ifconfig
    ... »ý·« ...
    lo0: flags=8049 metric 0 mtu 16384
    ¡¡¡¡¡¡options=3
    ¡¡¡¡¡¡inet 127.0.0.1 netmask 0xff000000
    carp0: flags=8 metric 0 mtu 1500¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡<-- carp0 ÀÎÅÍÆäÀ̽º°¡ Ãß°¡µÇ¾ú´Ù.
    # ifconfig carp0 vhid 1 advskew 0 pass <ºñ¹Ð¹øÈ£> 10.10.10.10/24
    # ifconfig carp0
    carp0: flags=49 metric 0 mtu 1500
    ¡¡¡¡¡¡inet 10.10.10.10 netmask 0xffffff00
    ¡¡¡¡¡¡carp: BACKUP vhid 1 advbase 1 advskew 0¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡<-- óÀ½Àº BACKUP
    # ifconfig carp0
    carp0: flags=49 metric 0 mtu 1500
    ¡¡¡¡¡¡inet 10.10.10.10 netmask 0xffffff00
    ¡¡¡¡¡¡carp: MASTER vhid 1 advbase 1 advskew 0¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡<-- ¹Ù·Î MASTER·Î ¹Ù²ñ
     


    /var/log/messages¿¡´Â ´ÙÀ½°ú °°Àº ·Î±×°¡ ³²´Â´Ù. link°¡ DOWN»óÅ·Π¹Ù²î¾ú´Ù¸é BACKUP ¼­¹ö°¡ µÇ¾úÀ½À» ¸»ÇÏ°í, UP »óÅ·Π¹Ù²î¾ú´Ù´Â °ÍÀº MASTER ¼­¹ö·Î ÀüȯµÆÀ½À» ÀǹÌÇÑ´Ù. 3Ãʸ¸¿¡ ÀüȯµÆÀ½À» ¾Ë ¼ö ÀÖ´Ù.

     
    Feb 17 18:35:25 www1 kernel: bce0: promiscuous mode enabled
    Feb 17 18:35:25 www1 kernel: carp0: INIT -> BACKUP
    Feb 17 18:35:25 www1 kernel: carp0: link state changed to DOWN
    Feb 17 18:35:28 www1 kernel: carp0: link state changed to UP
     



    2-2. CARP ¼³Á¤ (FreeBSD 10)

    FreeBSD 10Àº ifconfig alias·Î CARP¸¦ ¼³Á¤ÇÑ´Ù. ³Ý¸¶½ºÅ©´Â /32¸¦ »ç¿ëÇÑ´Ù.

     
    # kldload carp
    # ifconfig em1 vhid 1 advskew 100 pass <ºñ¹Ð¹øÈ£> alias 10.10.10.10/32
    #
    # ifconfig em1
    em1: flags=8943 metric 0 mtu 1500
    ¡¡¡¡¡¡options=9b
    ¡¡¡¡¡¡ether ... »ý·« ...
    ¡¡¡¡¡¡inet 10.10.10.11 netmask 0xffffff00 broadcast 10.10.10.255
    ¡¡¡¡¡¡inet 10.10.10.10 netmask 0xffffffff broadcast 10.10.10.10 vhid 1
    ¡¡¡¡¡¡media: Ethernet autoselect (1000baseT )
    ¡¡¡¡¡¡status: active
    ¡¡¡¡¡¡carp: BACKUP vhid 1 advbase 1 advskew 100
     


    em1Àº CARP¸¦ »ç¿ëÇÏ°Ô µÉ ÀÎÅÍÆäÀ̽º¸íÀÌ´Ù. º»ÀÎÀÇ ¼­¹ö ȯ°æÀ» º¸°í º¯°æÇؼ­ ¼³Á¤ ÇÒ °Í.


    3-1. rc.conf ¼³Á¤ (FreeBSD 9 ÀÌÇÏ)

    CARP Ä¿³Î ¸ðµâÀÌ ·ÎµùµÇµµ·Ï /boot/loader.conf¿¡ ´ÙÀ½À» Ãß°¡ÇÑ´Ù.

     if_carp_load="YES"
     


    /etc/rc.conf À» ¼³Á¤ÇÑ´Ù. advskew°ªÀº ¼­¹ö 1, 2¿¡ µû¶ó Àû´çÈ÷.

     
    cloned_interfaces="carp0"
    ifconfig_carp0="vhid 1 advskew 0 pass ºñ¹Ð¹øÈ£ 10.10.10.10/24"
     



    3-2. rc.conf ¼³Á¤ (FreeBSD 10)

    1) /boot/loader.conf ¼³Á¤

     carp_load="YES"
     


    2) /etc/rc.conf ¼³Á¤ (advskew°ªÀº ¼­¹ö 1, 2¿¡ µû¶ó Àû´çÈ÷. em1´Â º»ÀÎÀÇ ¼­¹ö ȯ°æ¿¡ ¸Â°Ô º¯°æÇÒ °Í)

     
    ifconfig_em1="inet 10.10.10.11 netmask 255.255.255.0"¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡   <-- ±âÁ¸ ¼³Á¤
    ifconfig_em1_alias0="vhid 1 advskew 0 pass ºñ¹Ð¹øÈ£ alias 10.10.10.10/32"  <-- CARP ¼³Á¤ Ãß°¡
     



    4. MASTER¸¦ BACKUPÀ¸·Î Àüȯ

    ¼­¹ö 1ÀÌ ÇöÀç MASTER´Ù. ¼­¹ö°¡ Áװųª ³×Æ®¿÷ÀÌ ²÷±ä´Ù¸é ÀÚµ¿À¸·Î ¼­¹ö 2°¡ MASTER·Î ÀüȯµÉ °ÍÀÌ´Ù. ±×·±µ¥ ¼­¹ö 1¿¡¼­ º°µµ ÀÛ¾÷ÀÌ ÇÊ¿äÇؼ­ ¼öµ¿À¸·Î ¼­ºñ½º¸¦ ¼­¹ö 2·Î ³Ñ±â°í ½Í´Ù¸é ¾î¶»°Ô ÇØ¾ß ÇÒ±î. ¼­¹ö 1¿¡¼­ ´ÙÀ½ ¸í·ÉÀ¸·Î »óŸ¦ BACKUPÀ¸·Î ÀüȯÇÒ ¼ö ÀÖ´Ù. º¯°æ ÈÄ¿¡´Â µÎ ¼­¹ö¿¡¼­ ifconfig ¸í·ÉÀ¸·Î MASER¿Í BACKUPÀÌ ÀüȯµÆ´ÂÁö È®ÀÎÇÑ´Ù.

     
    1) FreeBSD 9 ÀÌÇÏ
    # ifconfig carp0 state backup

    2) FreeBSD 10
    # ifconfig em1 vhid 1 state backup (em1Àº º»ÀÎÀÇ ÀÎÅÍÆäÀ̽º¸í¿¡ ¸Â°Ô)
     


    ¼­¹öÀÇ messages ·Î±×¸¦ º¸¸é DOWNÀÌ µÈ ÈÄ ¼­¹ö 2¿¡¼­ UPÀÌ µÉ ¶§±îÁö 3ÃÊÁ¤µµ ½Ã°£ÀÌ °É·È´Ù. 3ÃÊ µ¿¾ÈÀº ¼­ºñ½º ¿¬°áÀÌ ¹®Á¦ÀÖ¾úÀ» °ÍÀÌ´Ù.

     
    1) ¼­¹ö 1¿¡¼­ ·Î±×
    Feb 17 18:40:49 www1 kernel: carp0: link state changed to DOWN

    2) ¼­¹ö 2¿¡¼­ ·Î±×
    Feb 17 18:40:52 www2 kernel: carp0: link state changed to UP
     


    »óÅ Àüȯº¸´Ù´Â ¼­¹ö 1¿¡¼­ CARP ÀÎÅÍÆäÀ̽º¸¦ down½ÃÅ°´Â°Ô Àå¾Ö½Ã°£À» ÁÙÀÏ ¼ö ÀÖ´Ù. ¼­¹ö 2°¡ MASTER·Î µÈ °ÍÀ» È®ÀÎÇß´Ù¸é CARP ÀÎÅÍÆäÀ̽º¸¦ ´Ù½Ã up½ÃÄÑÁØ´Ù.

     
    1) FreeBSD 9 ÀÌÇÏ
    # ifconfig carp0 down
    ¸î ÃÊ ÈÄ ´Ù½Ã up½ÃÄÑÁØ´Ù.
    # ifconfig carp0 up

    2) FreeBSD 10 (alias »èÁ¦ÇÏ´Â °Í°ú °°Àº ¹æ½ÄÀÌ´Ù. ifconfig em1 -alias °°Àº ½Ç¼ö¸¦ ÇÏÁö ¸»ÀÚ. CARP¼³Á¤ÀÌ ¾Æ´Ñ em1 ¼³Á¤ ÀÚü°¡ ³¯¶ó°£´Ù.)
    # ifconfig em1 inet 10.10.10.10 -alias
    ¸î ÃÊ ÈÄ ´Ù½Ã ¼³Á¤ÇÑ´Ù.
    # ifconfig em1 vhid 1 advskew 100 pass <ºñ¹Ð¹øÈ£> alias 10.10.10.10/32
     


    À§ ¸í·ÉÀ» ³»¸®ÀÚ¸¶ÀÚ ¼­¹ö 1ÀÇ CARP link°¡ DOWN(»óÅ´ MASTER -> INIT·Î ¹Ù²ñ)µÇ¾ú°í, ¼­¹ö 2´Â Áöü¾øÀÌ BACKUP -> MASTERÀ¸·Î ÀüȯµÇ¾ú´Ù. (¡Ø ¹Ù·Î ÀüȯµÉ ¼öµµ ÀÖ°í 1~2ÃÊ °É¸± ¼öµµ ÀÖ´Ù.)

     
    1) ¼­¹ö 1¿¡¼­ ·Î±×
    Feb 17 18:44:24 www1 kernel: carp0: link state changed to DOWN

    2) ¼­¹ö 2¿¡¼­ ·Î±×
    Feb 17 18:44:24 www2 kernel: carp0: BACKUP -> MASTER (master timed out)
    Feb 17 18:44:24 www2 kernel: carp0: link state changed to UP
     



    5-1. CARP ¼³Á¤ »èÁ¦ (FreeBSD 9 ÀÌÇÏ)

    ifconfig carp0 downÀº »óŸ¸ MASTER, BACKUP -> INIT·Î Àüȯ½ÃŲ´Ù. delete´Â VIPÁ¤º¸¸¸ Áö¿î´Ù. CARP ¼³Á¤À» ¿ÏÀüÈ÷ Áö¿ì·Á¸é destroy ÆĶó¹ÌÅ͸¦ »ç¿ëÇÑ´Ù.

     
    # ifconfig carp0 down
    # ifconfig carp0
    carp0: flags=8 metric 0 mtu 1500
    ¡¡¡¡¡¡inet 10.10.10.10 netmask 0xffffff00
    ¡¡¡¡¡¡carp: INIT vhid 1 advbase 1 advskew 100
    #
    # ifconfig carp0 delete
    # ifconfig carp0
    carp0: flags=8 metric 0 mtu 1500
    ¡¡¡¡¡¡carp: INIT vhid 1 advbase 1 advskew 100
    #
    # ifconfig carp0 destroy
     



    5-2. CARP ¼³Á¤ »èÁ¦ (FreeBSD 10)

    FreeBSD 10¿¡¼­´Â À§¿¡¼­ ¼³¸íÇÑ´ë·Î ifconfig alias¸¦ »èÁ¦ÇÑ´Ù.

     
    # ifconfig em1
    em1: flags=8943 metric 0 mtu 1500
            ether ... »ý·« ...
            inet 10.10.10.11 netmask 0xffffff00 broadcast 10.10.10.255
            inet 10.10.10.10 netmask 0xffffffff broadcast 10.10.10.10 vhid 1
            media: Ethernet autoselect (1000baseT )
            status: active
            carp: BACKUP vhid 1 advbase 1 advskew 100
    # ifconfig em1 inet 10.10.10.10 -alias
     



    6. HAProxy·Î ·Îµå ¹ë·±½Ì(Load Balancing, LB)Çϱâ

    CARP+HAProxy ±¸¼ºÀ¸·Î 2´ë ¶Ç´Â ±× ÀÌ»óÀÇ ¼­¹ö¸¦ ·Îµå ¹ë·±½ÌÇÒ ¼ö ÀÖ´Ù.
    CARP´Â 1´ë¸¸ Active·Î µÇ°í ³ª¸ÓÁö´Â Standby »óÅ¿©¾ß Çؼ­ ¼­¹ö È¿À²¼ºÀÌ ¶³¾îÁø´Ù. ÀÏÇÏ´Â ¼­¹ö´Â ¿­½ÉÈ÷ ÀÏÇÏ°í, ³ª¸ÓÁö´Â ±¸°æ²ÛÀÌ µÇ´Â °ÍÀÌ´Ù. CARP¿¡ HAProxy±îÁö ¿î¿µÇÑ´Ù¸é ¸ðµç ¼­¹ö°¡ ÇÔ²² ÀÏÇÏ°í ¾î´À ÇÑ ¼­¹ö°¡ ¾ÆÇÁ¸é ³ª¸ÓÁö ¼­¹ö°¡ ÇÑ ¼­¹öÀÇ ¸ò±îÁö ÀÏÀ» ÇÏ°Ô µÈ´Ù.

    ¼­¹ö ȯ°æÀº ´ÙÀ½°ú °°´Ù.

    - À¥¼­ºñ½º¸¦ ÇÏ°íÀÚ ÇÑ´Ù.
    - VIP    : 10.10.10.30
    - ¼­¹ö 1 : 10.10.10.1
    - ¼­¹ö 2 : 10.10.10.2
    - ¼­¹ö 3 : 10.10.10.3

    °¢ ¼­¹ö¿¡ CARP¿Í HAProxy µ¥¸óÀ» ¼³Á¤ÇÑ´Ù. HAProxy´Â ¼­¹ö¸¶´Ù µ¿ÀÏÇÏ°Ô ¼³Á¤ÇÑ´Ù. (HAProxy ¼³Á¤Àº '7. Âü°íÀÚ·á'ÀÇ HAProxy °ü·Ã ±ÛÀ» Âü°íÇÒ °Í)

    [ haproxy.cfg ÀϺΠ]
     
    listen wwwlb 0.0.0.0:80
            balance roundrobin
            server  www1 10.10.10.1:8080 check inter 3000 rise 2 fall 1
            server  www2 10.10.10.2:8080 check inter 3000 rise 2 fall 1
            server  www3 10.10.10.3:8080 check inter 3000 rise 2 fall 1
     


    »óȲº°·Î ¾î¶»°Ô 󸮵ǴÂÁö º¸ÀÚ.

    (»óȲ 1) ¼­¹ö 1ÀÌ MASTERÀÎ °æ¿ì¸¦ °¡Á¤ÇÏÀÚ. (¼­ºñ½º Á¤»ó)
      1) MASTER : ¼­¹ö 1
      2)---------+-----+-----+-----+
         »óÅ    |¼­¹ö1|¼­¹ö2|¼­¹ö3|
        ---------+-----+-----+-----+
        HAProxy  | OK  | OK  | OK  |
        WEB      | OK  | OK  | OK  |

    VIP·Î À¥Á¢¼ÓÀ» Çϸé, ¼­¹ö 1·Î ¿äûÀÌ µé¾î¿Â´Ù. ¼­¹ö 1ÀÇ HAProxy´Â ·Îµå ¹ë·±½Ì ¼³Á¤(À§¿¡¼­ balance roundrobin)¿¡ µû¶ó¼­ ¼­¹ö 1¹øÀ¸·Î º¸³½´Ù. ´ÙÀ½ ¿äûÀ» ¹ÞÀ¸¸é ¼­¹ö 2¹øÀ¸·Î º¸³½´Ù. ÀÌ·¸°Ô ¼øÂ÷ÀûÀ¸·Î 󸮸¦ ÇÑ´Ù. ³ª Çϳª, ³ÊÇϳª, Çü Çϳª. »çÀÌ ÁÁ°Ô.

    (»óȲ 2) ¼­¹ö 1ÀÌ °ú·Î·Î downµÇ¾ú´Ù. (¼­ºñ½º Á¤»ó)
      1) MASTER : ¼­¹ö 2
      2)---------+-----+-----+-----+
         »óÅ    |¼­¹ö1|¼­¹ö2|¼­¹ö3|
        ---------+-----+-----+-----+
        HAProxy  | down| OK  | OK  |
        WEB      | down| OK  | OK  |

    VIP°¡ ´ÙÀ½ ¼­¹ö·Î ³Ñ°ÜÁø´Ù. ¼­¹ö 2 ¶Ç´Â ¼­¹ö 3ÀÌ MASTER°¡ µÉ °ÍÀε¥, CARPÀÇ advskew °ªÀÌ ³·Àº ¼­¹ö°¡ MASTER°¡ µÉ °¡´É¼ºÀÌ ³ô´Ù. ¼­¹ö 2°¡ MASTER°¡ µÇ¾ú´Ù°í °¡Á¤ÇÏÀÚ. VIP·Î À¥Á¢¼ÓÀ» Çϸé, ¼­¹ö 2·Î ¿äûÀÌ µé¾î¿Â´Ù. ¼­¹ö 2ÀÇ HAProxy´Â ¼­¹ö 1¹øÀÌ Á×Àº °ÍÀ» °¨ÁöÇß´Ù. À§¿¡¼­´Â 3ÃÊ°£°ÝÀ¸·Î 1¹ø¸¸ fail(inter 3000 rise 2 fall 1)ÀÌ ¹ß»ýÇصµ ¼­ºñ½º¿¡¼­ Á¦¿Ü½ÃŲ´Ù. HAProxy´Â ¼­¹ö 2ÀÇ À¥¼­¹ö·Î ¿äûÀ» º¸³½´Ù. ±× ´ÙÀ½Àº ¼­¹ö 3, ... ÀÌ·¸°Ô ¼øÂ÷ó¸®ÇÑ´Ù.

    (»óȲ 3) ¼­¹ö 1À» »ì·È´Ù. ±×¸®°í ¼­¹ö 3ÀÇ À¥¼­¹ö µ¥¸ó¸¸ Á×¾ú´Ù. (¼­ºñ½º Á¤»ó)
      1) MASTER : ¼­¹ö 2
      2)---------+-----+-----+-----+
         »óÅ    |¼­¹ö1|¼­¹ö2|¼­¹ö3|
        ---------+-----+-----+-----+
        HAProxy  | OK  | OK  | OK  |
        WEB      | OK  | OK  | down|

    ¿©ÀüÈ÷ ¼­¹ö 2°¡ MASTER´Ù. VIP·Î À¥Á¢¼ÓÀ» Çϸé, ¼­¹ö 2·Î ¿äûÀÌ µé¾î¿Â´Ù. HAProxy´Â ¼­¹ö 1¹øÀÇ À¥¼­¹ö°¡ »ì¾ÒÀ½À», 3¹øÀÌ Á×¾úÀ½À» °¨ÁöÇß´Ù. ¼­¹ö 1¹øÀ¸·Î ¿äûÀ» º¸³½´Ù. ´ÙÀ½Àº 2¹øÀ¸·Î º¸³½´Ù. ¼­¹ö 1°ú ¼­¹ö 2°¡ ¹ø°¥¾Æ°¡¸é¼­ ¿äûÀ» ó¸®ÇÑ´Ù. ¿£Áö´Ï¾î´Â ¼­¹ö 3ÀÇ À¥¼­¹ö µ¥¸ó ¹× ¼³Á¤À» È®ÀÎÇؼ­ ¹®Á¦¾øÀ¸¸é start½ÃŲ´Ù.

    (»óȲ 4) ¼­¹ö 3ÀÇ HAProxy°¡ Á×¾ú´Ù. (¼­ºñ½º Á¤»ó)
      1) MASTER : ¼­¹ö 2
      2)---------+-----+-----+-----+
         »óÅ    |¼­¹ö1|¼­¹ö2|¼­¹ö3|
        ---------+-----+-----+-----+
        HAProxy  | OK  | OK  | down|
        WEB      | OK  | OK  | OK  |

    ¼­ºñ½º¿¡ ¿µÇâ¾ø´Ù. ¼­¹ö 2°¡ MASTERÀ̹ǷΠ³ª¸ÓÁö ¼­¹öÀÇ HAProxy´Â ¿äûÀ» ¹ÞÁö ¾Ê´Â´Ù. Á׾ ¼­ºñ½º¿¡ ¿µÇâÀÌ ¾ø´Ù. ¿£Áö´Ï¾î´Â ¼­¹ö 3ÀÇ HAProxy°¡ ÀÌ»ó¾øÀ¸¸é start½ÃŲ´Ù.

    (»óȲ 5) ¼­¹ö 2ÀÇ À¥¼­¹ö µ¥¸óÀÌ Á×¾ú´Ù. (¼­ºñ½º Á¤»ó)
      1) MASTER : ¼­¹ö 2
      2)---------+-----+-----+-----+
         »óÅ    |¼­¹ö1|¼­¹ö2|¼­¹ö3|
        ---------+-----+-----+-----+
        HAProxy  | OK  | OK  | OK  |
        WEB      | OK  | down| OK  |

    ¼­¹ö 2ÀÇ HAProxy´Â ¼­¹ö 2ÀÇ À¥¼­¹ö°¡ Á×¾úÀ½À» °¨ÁöÇÏ°í À¥¼­ºñ½º¿¡¼­ Á¦¿Ü½ÃŲ´Ù. ¼­¹ö 1°ú ¼­¹ö 3À¸·Î À¥¼­¹ö ¿äûÀ» º¸³½´Ù. ¿£Áö´Ï¾î´Â ¼­¹ö 2ÀÇ À¥¼­¹ö°¡ ÀÌ»ó¾øÀ¸¸é start½ÃŲ´Ù.

    (»óȲ 6) ¼­¹ö 2ÀÇ HAProxy µ¥¸óÀÌ Á×¾ú´Ù. (Àå¾Ö ¹ß»ý)
      1) MASTER : ¼­¹ö 2
      2)---------+-----+-----+-----+
         »óÅ    |¼­¹ö1|¼­¹ö2|¼­¹ö3|
        ---------+-----+-----+-----+
        HAProxy  | OK  | down| OK  |
        WEB      | OK  | OK  | OK  |

    ÀÌ ¶§´Â Àå¾Ö°¡ ¹ß»ýÇÑ´Ù. ¼­¹ö 2°¡ MASTERÀ̹ǷΠ¼­¹ö 2ÀÇ HAProxy·Î ¿äûÀÌ µé¾î¿À´Âµ¥, µ¥¸óÀÌ Á×¾îÀÖÀ¸´Ï À¥¼­ºñ½º°¡ ¿­¸®Áö ¾Ê´Â´Ù. ¼­¹ö 2ÀÇ HAProxy¸¦ start½ÃÅ°°Å³ª ´Ù¸¥ ¼­¹ö·Î MASTER¼­¹ö¸¦ ³Ñ±â¸é ÇØ°áµÈ´Ù. »ç½Ç ÀÌ·± °æ¿ì´Â °ÅÀÇ ¾ø´Ù. ÀÌ Á¡¸¸ ÁÖÀÇÇÏ¸é µÈ´Ù. MASTER¼­¹öÀÇ HAProxy ¼³Á¤À» ¹Ù²Ù°Å³ª stop½ÃÄѾßÇÒ ¶§´Â ¹Ýµå½Ã ´Ù¸¥ ¼­¹ö·Î MASTER¼­¹ö¸¦ ³ä°ÜÁÖ°í ÀÛ¾÷ÇÏ¸é µÈ´Ù.

    ÇÑ°¡Áö ´õ ÁÖÀÇÇÒ °ÍÀÌ ÀÖ´Ù. MASTER¼­¹ö¸¦ ¸®ºÎÆÃÇÒ ¶§ ¹Ì¸® ´Ù¸¥ ¼­¹ö·Î MASTER¸¦ ³Ñ°ÜÁÖ°í ¸®ºÎÆÃÇØ¾ß ¸îÃÊ°£ÀÇ Àå¾Ö ½Ã°£À» ÁÙÀÏ ¼ö ÀÖ´Ù.
    ¸®ºÎÆÃÇÒ ¶§ µ¥¸óµéÀÌ Çϳª¾¿ Á×°í, ³×Æ®¿÷ÀÌ ²÷±ä´Ù. MASTER ¸®ºÎÆýà HAProxy´Â stopµÇ¾ú´Âµ¥, ³×Æ®¿÷Àº ¿¬°áµÈ »óÅ°¡ ¸î ÃÊ°£ À¯ÁöµÉ ¼ö ÀÖ´Ù. ÀÌ ½Ã°£µ¿¾È ¼­ºñ½º Àå¾Ö°¡ ¹ß»ýÇÑ´Ù.


    7. Âü°í ÀÚ·á

    * FreeBSD Handbook : 31.10. Common Address Redundancy Protocol (CARP)
      https://www.freebsd.org/doc/handbook/carp.html

    * ifconfig man page
      https://www.freebsd.org/cgi/man.cgi?ifconfig

    * CARP changes in FreeBSD 10-Release
      http://aaronrenoir.com/2014/02/12/carp-changes-FreeBSD-10.html

    * Set up CARP Fail-over and High Availability on FreeBSD
      https://www.youtube.com/watch?v=VjYb9mKB4jU

    * HAProxy·Î ·Îµå¹ë·±½Ì(LB, ÀÌÁßÈ­) ±¸¼º (±Û ÁÁÀºÁøÈ£, 2015.3)
      http://coffeenix.net/board_view.php?bd_code=1771
      Ä¿ÇǴнº Ä«Æä ÃÖ±Ù ±Û
    [03/18] ±¹°¡&#5
    [10/20] Cross Compiler ±ò
    [07/14] SSL ¬¡¬°
    [04/26] Re: µµ½ºÈ­¸é ¿ø°ÝÁ¶Á¾ ¿©ºÎ
    [04/25] µµ½ºÈ­¸é ¿ø°ÝÁ¶Á¾ ¿©ºÎ
    [10/30] Cshell¿¡¼­ ³­¼ö ¼³Á¤
    [10/23] °øÇ×öµµÁÖ½Äȸ»ç SE ±¸ÀÎ Ëì
    [01/26] Re: wgetÀ¸·Î ´Ù¸¥¼­¹ö¿¡ÀÖ´Â µð·ºÅ丮¸¦ °¡Á®¿À·Á°íÇÕ´Ï´Ù.
    [01/25] wgetÀ¸·Î ´Ù¸¥¼­¹ö¿¡ÀÖ´Â µð·ºÅ丮¸¦ °¡Á®¿À·Á°íÇÕ´Ï´Ù.
    [01/11] ƯÁ¤ ¾Èµå·ÎÀ̵å WebView ¹öÀü¿¡¼­ SSL ¹®Á¦ (WebView ¹ö±×)
    [08/01] DNS forwarder (Àü´ÞÀÚ) ¼­¹ö¸¦ ÅëÇؼ­ Äõ¸®ÇÏ¸é ¿ª¹æÇâÀ» ¹Þ¾Æ¿ÀÁú ¸øÇÕ´Ï´Ù.
    [05/16] (ÁÖ)ÈÄÀÌÁî ½Ã½ºÅÛ¿£Áö´Ï¾î (°æ·ÂÀÚ) ¸ðÁý
    [02/15] [AWS] Cloudfront edge È®ÀÎÇϱâ
    [01/20] Mobile Service/eCommerce ±â¾÷¿¡¼­ Server / Java / PHP °³¹ßÀÚ ±¸ÀÎ
    [01/11] źźÇÑ ÆÛºí¸®½Ì ¸ð¹ÙÀϱâ¾÷¿¡¼­ Mobile °³¹ßÀÚ¸¦ ¸ð½Ê´Ï´Ù.
      New!   ÃÖ±Ù¿¡ µî·ÏÇÑ ÆäÀÌÁö
      KiCad EDA Suite project (Free/Libre/Open-Source EDA Suite) (CAD)
      ¿ÀÇÂij½ºÄÉÀ̵å ijµå (OpenCASCADE CAD)
      QCad for Windows --- GNU GPL (Free Software)
      The Hello World Collection
      IPMI¸¦ È°¿ëÇÑ ¸®´ª½º ¼­¹ö°ü¸®
      DNS ¼³Á¤ °Ë»ç
      nagiosgraph ¼³Ä¡ ¹æ¹ý
      Slony-I ¼³Ä¡ ¹æ¹ý (postgresql replication tool)
      Qmail±â¹ÝÀÇ Anti spam ½Ã½ºÅÛ ±¸ÃàÇϱâ
      clusterssh

    [ ÇÔ²²ÇÏ´Â »çÀÌÆ® ]




    ¿î¿µÁø : ÁÁÀºÁøÈ£(truefeel), ¾ß¼ö(yasu), ¹ü³ÃÀÌ, sCag
    2003³â 8¿ù 4ÀÏ~