ºìÁªLinuxÃÅ»§
Linux°ïÖú

DRÅäÖãºLinux Virtual Server¸ºÔؾùºâ

·¢²¼Ê±¼ä:2008-04-19 00:43:10À´Ô´:ºìÁª×÷Õß:bychina
¡¡¡¡1£® °²×°ipvsadm

¡¡¡¡ÏÂÔØipvsadm£¬ÏÂÔØÊ±Ðè×¢Òâ¶ÔÓ¦×Ô¼ºµÄÄں˰汾¡£

¡¡¡¡ipvsadmÏÂÔØÍøÖ·£ºhttp://www.linuxvirtualserver.org/software/

¡¡¡¡±¾ÎÄʹÓõÄÊÇFC8ϵͳ£¬Äں˰汾2.6.23.1£¬¶ÔÓ¦ipvsadm°æ±¾1.24¡£

¡¡¡¡°²×°Ê±ÐèÒªLinuxÄÚºËÔ´Â룬Èç¹û°²×°ÏµÍ³Ê±Ã»Óа²×°Ô´Â룬ÐèÒªÔÙÏÂÔØÄÚºËÔ´Âë¡£±¾ÎÄʹÓõÄÄÚºËÊÇlinux-2.6.23.1.tar.bz2¡£°ÑÄں˽âѹµ½/usr/src/linux-2.6.23.1¡£ÏÂÃæ¿ªÊ¼±àÒë°²×°£º

¡¡¡¡½¨Á¢Äں˿ì½Ý·½Ê½£ºln -s /usr/src/linux-2.6.23.1 /usr/src/linux

¡¡¡¡½âѹipvsadm£º

¡¡¡¡tar zxvf ipvsadm-1.24.tar.gz

¡¡¡¡°²×°ipvsadm£º

¡¡¡¡cd ipvsadm-1.24

¡¡¡¡make

¡¡¡¡make install

¡¡¡¡°²×°Íê³Éºó£¬ÏÂÒ»²½ÎÒÃÇ¿ªÊ¼ÅäÖÃIPVS£¬±¾ÎÄÖ÷Òª½éÉÜDirect Routing·½Ê½µÄÅäÖá£

¡¡¡¡2£® ÅäÖÃIPVS(Direct Routing)

¡¡¡¡2.1£®ÍøÂç½á¹¹

¡¡¡¡Èý̨¼ÆËã»ú£¬Ò»Ì¨Director°²×°Linux×÷¸ºÔؾùºâÆ÷£¬ÁíÁ½Ì¨Real ServerÌṩ·þÎñ¡£

¡¡¡¡Director£ºeth0=192.168.34.40£¬eth0:0(Virtual IP) =192.168.34.41

¡¡¡¡RealServer1£ºIP=192.168.34.26

¡¡¡¡RealServer2£ºIP=192.168.34.27

¡¡¡¡·þÎñ¶Ë¿Ú£º443

¡¡¡¡¿Í»§Í¨¹ýVirtual IP 192.168.34.41·ÃÎÊ·þÎñÆ÷¡£Load Balancer½«À´×Ô¿Í»§µÄ·ÃÎʰ´Ò»¶¨µÄ¸ºÔؾùºâ»úÖÆ·Ö·¢µ½192.168.34.26ºÍ192.168.34.27ÕâÁ½Ì¨Êµ¼ÊÌṩ·þÎñµÄ·þÎñÆ÷¡£

¡¡¡¡2.2£®Load BalancerÅäÖÃ

¡¡¡¡²½Öè1£ºÅäÖÃDirector IP

¡¡¡¡ÔÚDirectorÉÏÅäÖúÃeth0µÄIP£¨192.168.34.40£©£¬È»ºóÔÚeth0ÉÏÐÂÔöÒ»¸öIP£¨192.168.34.41£©£¬ÃüÃûΪeth0:0£¬×÷ΪVirtual IP¡£

¡¡¡¡²½Öè2£ºÅäÖÃIPVS Table½Å±¾

¡¡¡¡±àдsh½Å±¾ÈçÏ£º

¡¡¡¡VIP=192.168.34.41 #Vritual IPµØÖ·
¡¡¡¡RIP1=192.168.34.27 #Real Server 1 IP
¡¡¡¡RIP2=192.168.34.26 #Real Server 2 IP
¡¡¡¡GW=192.168.34.1 #Real Server Íø¹ØIP

¡¡¡¡#Çå³ýIPVS Table
¡¡¡¡ipvsadm -C

¡¡¡¡#ÉèÖÃIPVS Table
¡¡¡¡ipvsadm -A -t $VIP:443 -s wlc
¡¡¡¡ipvsadm -a -t $VIP:443 -r $RIP1:443 -g -w 1
¡¡¡¡ipvsadm -a -t $VIP:443 -r $RIP2:443 -g -w 1

¡¡¡¡#½«IPVS Table±£´æµ½/etc/sysconfig/ipvsadm
¡¡¡¡/etc/rc.d/init.d/ipvsadm save

¡¡¡¡#Æô¶¯IPVS
¡¡¡¡service ipvsadm start #»òÕß/etc/rc.d/init.d/ipvsadm startÒ²¿ÉÒÔ

¡¡¡¡#ÏÔʾIPVS״̬
¡¡¡¡ipvsadm -l

¡¡¡¡#½Å±¾½áÊø

¡¡¡¡¸Ã½Å±¾ÅäÖÃIPVS Table£¬²¢½«ÅäÖñ£´æµ½/etc/sysconfig/ipvsadmÎļþÖС£ÒÔºóÐÞ¸ÄIPVS TABLE¿ÉÖ±½ÓÐ޸ĸýű¾¡£µ±È»£¬ÄúÒ²¿ÉÒÔÖ±½Ó±à¼­¸ÃÎļþÀ´ÊµÏÖIPVS TableµÄÅäÖá£

¡¡¡¡ÅäÖÃÍê±ÏºóÖ´ÐÐ/etc/rc.d/init.d/ipvsadm start(»òservice ipvsadm start)Æô¶¯IPVS¡£

¡¡¡¡Í¨¹ýÒÔÉÏÁ½¸ö²½Ö裬¾ÍÍê³ÉÁ˸ºÔؾùºâÆ÷IPVSµÄÅäÖá£

¡¡¡¡2.3£®Real ServerÅäÖÃ

¡¡¡¡Real ServerÖ÷Òª×öÁ½¸öÅäÖã¬Ò»ÊÇÌí¼ÓÒ»¸öÐéÄâIP£¬¶þÊǹرոÃIPµÄARPÏìÓ¦¡£

¡¡¡¡2.3.1£®Windowsϵͳ

¡¡¡¡¶ÔÓÚWindowsϵͳµÄ·þÎñÆ÷£¬Ö»ÒªÌí¼ÓÒ»¸öLoopbackµÄÍø¿¨£¬IPµØÖ·ÉèÖóÉÐéÄâIP(192.168.34.41)£¬×ÓÍøÑÚÂëÉèÖóÉ255.255.255.255£¬Íø¹ØµØÖ·Áô¿Õ¡£

¡¡¡¡²Ù×÷£º

¡¡¡¡´Ó¿ØÖÆÃæ°åÑ¡ÔñÌí¼ÓÓ²¼þ£»

¡¡¡¡Ñ¡Ôñ¡°ÊÇ£¬Ó²¼þÒÑÁ¬ºÃ¡±£»

¡¡¡¡Ñ¡Ôñ¡°Ìí¼ÓеÄÓ²¼þÉ豸¡±£»
¡¡¡¡Ñ¡Ôñ¡°°²×°ÎÒÊÖ¶¯´ÓÁбíÑ¡ÔñµÄÓ²¼þ¡±£»

¡¡¡¡Ñ¡Ôñ¡°ÍøÂçÊÊÅäÆ÷¡±£»

¡¡¡¡´Ó³§ÉÌÁбíÑ¡Ôñ¡°Microsoft¡±£¬´ÓÍø¿¨ÁбíÑ¡Ôñ¡°Microsoft Loopback Adapter¡±£»

¡¡¡¡µãÏÂÒ»²½¿ªÊ¼°²×°Ó²¼þ£¬°²×°Íê±Ïºó³öÏÖÒ»¸öеÄÍø¿¨£¬ÅäÖúÃIPºÍ×ÓÍøÑÚÂë¡£Windows×ÓÍøÑÚÂëÎÞ·¨ÅäÖóÉ255.255.255.255£¬ÎÒÃÇ¿ÉÒÔÏȰ´Ä¬Èϵı£´æÅäÖã¬È»ºó´Ó×¢²á±íÐÞ¸Ä×ÓÍøÑÚÂë¡£

¡¡¡¡×¢²á±íÐÞ¸Ä×ÓÍøÑÚÂ룺

¡¡¡¡´Ó×¢²á±í[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces]ÏÂÕÒµ½¶ÔÓ¦µÄÍø¿¨£¬½«SubnetMaskÐ޸ijÉ255.255.255.255¡£È»ºó½ûÓÃÔÙÆôÓøÃÍø¿¨¼´¿É¡£

¡¡¡¡2.3.2£®Linuxϵͳ

¡¡¡¡3£®ÅäÖÃLDirectord RealServer¹ÊÕϼì²â¼°¹ÜÀí

¡¡¡¡LDirectord½ø³Ì¶¨Ê±¼ì²â¸÷Real ServerÔËÐÐ״̬£¬µ±¼ì²âµ½Ä³Ì¨Real Server¹ÊÕÏʱ£¬Ôò½«¸ÃServer´Ó¸ºÔؾùºâµ÷¶ÈÁбíɾ³ý£¬µ±»Ö¸´Õý³£Ê±ÔÙ¼ÓÈë¡£

¡¡¡¡3.1£®°²×°LDirectord

¡¡¡¡LDirectordÈí¼þ°üº¬ÔÚHeartBeatÈí¼þ°üÖС£°²×°HeartBeatʱ¾Íͬʱ°²×°ÁËLDirectord¡£

¡¡¡¡HeartBeatÏÂÔØÍøÖ·£ºhttp://www.linuxvirtualserver.org/software/¡£

¡¡¡¡°²×°HeartBeat»¹ÐèÒª°²×°libnetµÈÈí¼þ°ü¡£¿ÉÒÔµ½ÍøÉÏÏÂÔØÕâЩÈí¼þ°üÀ´°²×°¡£

¡¡¡¡LibnetÏÂÔØÍøÖ·£ºhttp://www.packetfactory.net/libnet/dist/libnet.tar.gz

¡¡¡¡°²×°libnet£º

¡¡¡¡tar zxf libnet.tar.gz

¡¡¡¡cd libnet

¡¡¡¡./configure

¡¡¡¡make

¡¡¡¡make install

¡¡¡¡°²×°HeartBeat£º

¡¡¡¡./ConfigureMe configure

¡¡¡¡make

¡¡¡¡make install

¡¡¡¡°²×°ÍêºóÖ´ÐÐÒÔÏÂÃüÁî¼ÓÈë×ÔÆô¶¯Ï

¡¡¡¡chkconfig -add ldirectord

¡¡¡¡3.2£®ÅäÖÃLDirectord

¡¡¡¡heartbeat/ldirectordĿ¼ÏÂÓиöldirectord.cfÎļþ¡£¸ÃÎļþÊÇldirectordµÄÅäÖ÷¶Àý¡£

¡¡¡¡ÔÚ/etc/ha.d/Ŀ¼ÏÂн¨Ò»¸öldirectord.cfÎļþ£¬°´ÅäÖ÷¶Àý¸ñʽ½øÐÐÅäÖã¬Ö÷ÒªÅäÖÃÏîÈçÏ£º

¡¡¡¡checktimeout=3 #¼ì²â³¬Ê±3s

¡¡¡¡checkinterval=1 #¼ì²â¼ä¸ô1s

¡¡¡¡fallback=127.0.0.1:443 #ËùÓзþÎñÆ÷¶¼¹ÊÕÏʱ·ÃÎʸ÷þÎñÆ÷

¡¡¡¡autoreload=yes #ÅäÖÃÎļþ¸Ä±äʱ×Ô¶¯¼ÓÔØ

¡¡¡¡logfile="/var/log/ldirectord.log" #ÈÕÖ¾Îļþ

¡¡¡¡quiescent=yes

¡¡¡¡virtual=192.168.34.41:443 #ÐéÄâIP

¡¡¡¡real=192.168.34.26:443 gate

¡¡¡¡real=192.168.34.27:443 gate

¡¡¡¡fallback=127.0.0.1:443 #ËùÓзþÎñÆ÷¶¼¹ÊÕÏʱ·ÃÎʸ÷þÎñÆ÷

¡¡¡¡service=none

¡¡¡¡scheduler=wlc

¡¡¡¡persistent=600

¡¡¡¡protocol=tcp

¡¡¡¡checktype=on

¡¡¡¡3.3£®Æô¶¯ldirectord

¡¡¡¡/etc/rc.d/init.d ldirectord start

¡¡¡¡×¢Ò⣬Æô¶¯Ê±Èç¹ûÌáʾldirectordijÐгö´í£¬Ò»°ãÊÇÓÐЩÔËÐÐÐèÒªµÄÈí¼þû°²×°£¬´ó²¿·ÖÊÇperl¿ªÍ·µÄÈí¼þ°ü¡£

¡¡¡¡net-snmp-5.3-4.2.i386.rpm
¡¡¡¡net-snmp-libs-5.3-4.2.i386.rpm
¡¡¡¡perl-Compress-Zlib-1.41-1.2.2.i386.rpm
¡¡¡¡perl-HTML-Parser-3.50-1.i386.rpm
¡¡¡¡perl-HTML-Tagset-3.10-2.1.noarch.rpm
¡¡¡¡perl-libwww-perl-5.805-1.1.noarch.rpm
¡¡¡¡perl-MailTools-1.74-1.fc5.noarch.rpm
¡¡¡¡perl-TimeDate-1.16-3.2.noarch.rpm
¡¡¡¡perl-URI-1.35-2.2.noarch.rpm Linux
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 0 ÌõÆÀÂÛ