<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[Ops运维 | Mr`kang Blog｜小豆子]]></title> 
<link>https://www.cnmysql.com/index.php</link> 
<description><![CDATA[关注服务器运维技术、DB优化、Docker虚拟化、自动化运维、工作积累]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[Ops运维 | Mr`kang Blog｜小豆子]]></copyright>
<item>
<link>https://www.cnmysql.com/post//</link>
<title><![CDATA[集群之LVS的三种模式详细步骤]]></title> 
<author>kangyang &lt;kangyang315@qq.com&gt;</author>
<category><![CDATA[LINUX系统管理]]></category>
<pubDate>Wed, 20 Aug 2014 07:27:24 +0000</pubDate> 
<guid>https://www.cnmysql.com/post//</guid> 
<description>
<![CDATA[ 
	<span style="font-size: 12px;"><span style="font-family: 宋体;">Cluster原理<br/>集群的总类：<br/>1.负载均衡集群(LB:Load Banlancing):实现将一个访问量或者任务量特别大的应用，给他<br/>平均分配到不同的服务器上面，以提供高容量、大并发。<br/>2.高可用集群(HA:High Avalibility):将多台计算机组合起来，避免一个服务因某台机器<br/>出现故障，而导致服务中断的，在于保障服务的可持续性。<br/>3.高性能集群(HP:High Performance)又叫科学运算集群:解决复杂的计算，组合起来的集群，一般要很大量<br/>的计算机组成。suse用的比较多<br/> <br/>集群分别代表的软件<br/>LB：负载均衡集群(LB:Load Banlancing)<br/>lvs(Linux Virtual Serverlinux虚拟服务器)：提供更高的吞吐率、提供冗余、更灵活的实用性<br/>&nbsp;&nbsp; lvs:ipvsadm(工作在用户空间)/(ipvs工作在内核空间)和iptables/netfilter类似<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp; lvs的四个ip地址<br/>&nbsp;&nbsp;&nbsp;&nbsp;1)Virtual IP address(VIP):面向用户提供服务的地址<br/>&nbsp;&nbsp;&nbsp;&nbsp;2)Real IP address(RIP):real server的ip地址<br/>&nbsp;&nbsp;&nbsp;&nbsp;3)Director’s IP address(DIP):director与real server连接的ip地址，DIP是配置在director上面<br/>&nbsp;&nbsp;&nbsp;&nbsp;4)Client computer’s IP address(CIP): 客户端地址<br/> 拓扑图：&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(ip4)web server1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[LVS]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /<br/>&nbsp;&nbsp;&nbsp;&nbsp;user(ip1)—-(ip2)director(ip3)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#92;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (ip5)web server2<br/> <br/>&nbsp;&nbsp;&nbsp;&nbsp; ip1表示CIP,ip2表示VIP,ip3表示DIP,ip4和ip5表示RIP<br/>&nbsp;&nbsp; <br/>&nbsp;&nbsp; lvs的三个种类(或者三个模型)<br/>&nbsp;&nbsp;&nbsp;&nbsp; 1)NAT:Network address translation网络地址转换(LVS-NAT)—>目标地址转换<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;如何实现：<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CIP–>VIP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DIP–>RIP<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Client————->Director————->Cluster node(server)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <————-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<————-<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CIP<–VIP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DIP<–VIP<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NAT模型一般承受5-6台server node<br/> <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;拓扑图：<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (ip4)web server1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[LVS]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /<br/>&nbsp;&nbsp;&nbsp;&nbsp; user(ip1)—-(ip2)director(ip3)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#92;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (ip5)web server2<br/>&nbsp;&nbsp;&nbsp;&nbsp; 请求的过程:user[S(CIP)D(VIP)]——>director[S(CIP)D(RIP)]—–>web <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 涉及到目标地址转换(DNAT)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;回复的过程:web—–>director[S(RIP)D(CIP)]—–>user[S(VIP)D(CIP)]<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 涉及到源地址转换(SNAT)&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;web server 的网关是指向director的DIP。 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NAT模型的要求:集群节点必须在同一个网段当中，即DIP与RIP在同一个网段；RIP通常使用私有IP<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 地址，仅用于和DIP地址进行通信；director将处理在客户端与server之间的所有通信；server<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 必须把DIP设置为默认的网关；director可以实现端口映射，即VIP的端口和RIP的端口可以不一<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 样；server可以使用任意的操作系统；director所能支持的server的数量不多；<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp; 2)Direct routing:直接路由(LVS-DR)使用最多的模型，用于生产环境中<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DR模式可以承受上百台server<br/>&nbsp;&nbsp;&nbsp;&nbsp; 拓扑图：<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; web server1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (RIP)—–> 虚拟一个VIP<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /<br/> user(CIP)——router——–switch—-(VIP/DIP)director<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#92;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (RIP)—-> 虚拟一个VIP<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;web server2<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 请求的过程:user[S(CIP)D(VIP)]——>director[S(CIP)D(VIP)]—–>web <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 回复的过程web——->user[S(VIP)D(CIP)]<br/>&nbsp;&nbsp;&nbsp;&nbsp; DR模型中web server和director都有两个IP，server是RIP和VIP,每个server的VIP都一样，但是RIP<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;不一样。<br/>&nbsp;&nbsp;&nbsp;&nbsp; DR模型的要求：server必须和director在同一个物理网络上；RIP可以使用公网地址，使用公网地址的好处<br/>&nbsp;&nbsp;&nbsp;&nbsp; 如果director出现故障，可以用dns的A记录来指向server的RIP；director仅处理发来的请求，响应的请求<br/>&nbsp;&nbsp;&nbsp;&nbsp; 将不在通过director；通常server的网关一定不能指向director；director不能做端口映射，server可以<br/>&nbsp;&nbsp;&nbsp;&nbsp; 使用任意的操作系统；director能支持大量的server；<br/> <br/>&nbsp;&nbsp;&nbsp;&nbsp; 3)IP tunneling:IP隧道(LVS-TUN)<br/> <br/>&nbsp;&nbsp; 拓扑图：<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (RIP)web server1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<br/> user(CIP)——router——–network cloud—-(VIP/DIP)director<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#92;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (RIP)web server2<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 请求的过程:user[S(CIP)D(VIP)]——>director[S(DIP)D(RIP)]—–>web<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 把源[S(CIP)D(VIP)]进行了封装成DIP<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 回复的过程：web[S(VIP)D(CIP)]—–>user<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 把从director接受到的包解分装，发现源是director的VIP，目的是<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; user的CIP<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TUN模型的要求：server和director在不同的网络上；RIP必须是公网IP地址；director只<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;需要处理传来的请求，同时响应的数据包一定不能经过director；director不能做端口映射；<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;只有支持IP隧道的操作系统才能是server<br/> <br/>director的调度server的方法：<br/>1）静态调度方法：fixed Scheduling Methods指director在选举server的时候不会考虑这个server当前<br/>&nbsp;&nbsp; 的连接的活动状态。<br/>代表算法<br/>&nbsp;&nbsp; RR(Round-robin)轮叫算法<br/>&nbsp;&nbsp; WRR(Weighted round-robin)加权轮叫算法—>适合server的硬件不同和性能不同<br/>&nbsp;&nbsp; DH(Destination hashing)目标地址哈希算法—->将同一个ip地址的请求发给同一个server，应&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 用的server为sqiud server 缓存服务器<br/>&nbsp;&nbsp; SH(Source hashing)源地址哈希算法—->适合公司很多员工，然后自己上网的外接口有两个<br/>2）动态调度方法：dynamic scheduling methods指director每选举server的时候会判断这个server当前连接<br/>&nbsp;&nbsp; 状态是不是很多，如果很多则排除在外，然后选择那些连接状态比较少的，如果连接状态都一样多，那就选择排在最上面的。<br/>&nbsp;&nbsp;TCP连接&nbsp;&nbsp;活动状态的标识是established并且有数据传输，非活动状态的标识是非established状态的连接，连接还没有断开，但是已经不在传输数据了。还有一种就是根本没有连接<br/>代表算法<br/>&nbsp;&nbsp; LC(Least-connection)最少连接数—->每当一个新的请求连接进来，director会查看每个&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;server上当前处于活动状态的个数和处于非活动状态的个数，计算方法&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;overhaed(当前的负载个数)=10(处于活动状态的个数)*256+10000(非活&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;动状态)，首先那个server的overhead个数少就选那个server，如果&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;server的overhead相同，那就选择排列在server列表的最上方的一个server。<br/>&nbsp;&nbsp;WLC(Weight Least-connection)是最优算法，也是默认的算法，计算方法overhead/weight(权重)<br/>&nbsp;&nbsp;SED(Shortst Expected Delay)最少期望延迟—->是WLC的改进算法，在算overhaed值的时候不考&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;虑非活动状态的值，计算方法overhaed=(n+1)*256/weight，n表示&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;活动的个数，weight表示权重。<br/>&nbsp;&nbsp;NQ(Never Queue)从不排队—->对SED的算法的改进，先不管overhaed是多少，只要有server的连&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 接状态为0，则会给你一个连接个数。<br/>&nbsp;&nbsp;LBLC(Locality-Based Least-Connection)基于本地的最少连接，是DH算法的动态调度。<br/>&nbsp;&nbsp;LBLCR(Locality-Based Least-Connection with Replication Scheduing)带复制的基于本地的最&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;少连接，时候director后面接cache服务器的，在接后面的server<br/> <br/> <br/>LVS的实验：NAT模式<br/>拓扑图：<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (ip4)web server1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[LVS]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#92;<br/>&nbsp;&nbsp;&nbsp;&nbsp; user(ip1)—-(ip2)director(ip3)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;====nfs(来共享文件)&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#92;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (ip5)web server2<br/> <br/>ip地址规划<br/> <br/>保证web server的数据一致—->1.rsync实现文件级别的同步,效率不高<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2.drbd基于主机的磁盘镜像，高可用集群中用到&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3.share storage共享存储 a.DAS直接附加存储&nbsp;&nbsp;b.NAS(nfs、&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;samba)文件服务&nbsp;&nbsp;c.SAN存储区域网络，本身具有冗余<br/> <br/>1.看内核是否支持ipvs<br/>grep -i ‘ip_vs’ /boot/config-2.6.32-71.el6.i686 <br/>CONFIG_IP_VS=m<br/>CONFIG_IP_VS_IPV6=y<br/># CONFIG_IP_VS_DEBUG is not set<br/>CONFIG_IP_VS_TAB_BITS=12<br/>CONFIG_IP_VS_PROTO_TCP=y<br/>CONFIG_IP_VS_PROTO_UDP=y<br/>CONFIG_IP_VS_PROTO_AH_ESP=y<br/>CONFIG_IP_VS_PROTO_ESP=y<br/>CONFIG_IP_VS_PROTO_AH=y<br/>CONFIG_IP_VS_RR=m<br/>CONFIG_IP_VS_WRR=m<br/>CONFIG_IP_VS_LC=m<br/>CONFIG_IP_VS_WLC=m<br/>CONFIG_IP_VS_LBLC=m<br/>CONFIG_IP_VS_LBLCR=m<br/>CONFIG_IP_VS_DH=m<br/>CONFIG_IP_VS_SH=m<br/>CONFIG_IP_VS_SED=m<br/>CONFIG_IP_VS_NQ=m<br/>CONFIG_IP_VS_FTP=m<br/> <br/>2.拓扑规划ip<br/>Client：<br/>ip1(CIP)=192.168.1.1<br/> <br/>Director：<br/>ip2(VIP)=192.168.1.10 gw=192.168.1.1<br/>ip3(DIP)=192.168.14.50<br/> <br/>Web server1：<br/>ip4(RIP)=192.168.14.51 gw=192.168.14.50<br/> <br/>Web Server2:<br/>ip5(RIP)=192.168.14.52 gw=192.168.14.50<br/> <br/>3.Diretor的配置:<br/>ifconfig eth0 192.168.1.10/24<br/>ifconfig eth1 192.168.14.50<br/>route add default gw 192.168.1.1<br/>iptables -F<br/>a)yum -y install ipvsadm<br/>b)man ipvsadm<br/>ipvsadm -D -t&#124;u&#124;f service-address&nbsp;&nbsp;删除集群服务<br/>ipvsadm -C&nbsp;&nbsp;&nbsp;&nbsp;清空集群服务的<br/>ipvsadm -R <br/>ipvsadm -S [-n]&nbsp;&nbsp;显示统计数据的<br/>ipvsadm -d -t&#124;u&#124;f service-address -r server-address&nbsp;&nbsp;从集群服务里面删除real server的<br/>ipvsadm -L&#124;l [options]&nbsp;&nbsp;显示状态表或者查看<br/>ipvsadm -Z [-t&#124;u&#124;f service-address]&nbsp;&nbsp;清空计数器的<br/>ipvsadm –set tcp tcpfin udp&nbsp;&nbsp;设置超时时间<br/>ipvsadm –start-daemon state [--mcast-interface interface]<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[--syncid syncid]<br/>ipvsadm –stop-daemon state<br/>ipvsadm -h&nbsp;&nbsp;帮助<br/>&nbsp;&nbsp;1.定义一个集群服务：<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ipvsadm -A&#124;E -t&#124;u&#124;f service-address [-s scheduler]<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [-p [timeout]] [-O] [-M netmask]&nbsp;&nbsp; 定义集群服务<br/> 解释：-A&#124;E -A表示add，E表示修改&nbsp;&nbsp;<br/>-t&#124;u&#124;f t(后面可接端口号)表示tcp协议，u(后面可接端口号)表示udp协议，f表示firewall-mark&nbsp;&nbsp; <br/>service-address服务地址即director (VIP)<br/>-s指明调度方法(默认是WLC)<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;eg：ipvsadm -A -t&nbsp;&nbsp;192.168.1.112:80 -s rr<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;2.向此集群服务器添加RealServer&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ipvsadm -a&#124;e -t&#124;u&#124;f service-address -r server-address<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [-g&#124;i&#124;m] [-w weight] [-x upper] [-y lower]&nbsp;&nbsp; 向集群服务添加real server的<br/>&nbsp;&nbsp;&nbsp;&nbsp;解释：-a&#124;e -A表示add，E表示修改&nbsp;&nbsp;<br/>-t&#124;u&#124;f t(后面可接端口号)表示tcp协议，u(后面可接端口号)表示udp协议，f表示firewall-mark&nbsp;&nbsp; <br/>service-address服务地址 director<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-r 指明real server的地址 server-address<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[-g&#124;i&#124;m] g表示直接路由模型 i隧道模型&nbsp;&nbsp;m表示nat模型&nbsp;&nbsp; 默认是-g DR模型<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-w 表示权重 可以省略，省略表示1，选择这个之前你的算法可以支持权重<br/>-x 连接的个数的上限<br/>-y&nbsp;&nbsp;连接的个数的下限<br/><br/>eg：ipvsadm -a -t 192.168.1.112:80 -r 192.168.14.51 -m -w 1<br/>&nbsp;&nbsp; ipvsadm -a -t 192.168.1.112:80 -r 192.168.14.52 -m -w 2 <br/><br/> <br/>c)设置转发<br/>sysctl -w net.ipv4.ip_forward=1<br/>or<br/>sed -i ‘/net.ipv4.ip_forward/s/0/1/’&nbsp;&nbsp;/etc/sysctl.conf <br/>sysctl -p<br/> <br/>4.Web Server1的配置:<br/>ifconfig eth0 192.168.14.51/24<br/>route add default gw 192.168.14.50<br/>a)yum -y install httpd<br/>b)sed -i ‘$a ServerName 192.168.14.51:80′ /etc/httpd/conf/httpd.conf<br/>c)echo “this is web1 server” >> /var/www/html/index.html<br/>d)service httpd restart<br/> <br/>5.Web Server 的配置<br/>ifconfig eth0 192.168.14.52/24<br/>route add default gw 192.168.14.50<br/>a)yum -y install httpd<br/>b)sed -i ‘$a ServerName 192.168.14.52:80′ /etc/httpd/conf/httpd.conf<br/>c)echo “this is web2 server” >> /var/www/html/index.html<br/>d)service httpd restart<br/> <br/> <br/>LVS:DR模型<br/>&nbsp;&nbsp;&nbsp;&nbsp; 拓扑图：<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; web server1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (RIP)—–> 虚拟一个VIP<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /<br/> user(CIP)——router——–switch—-(VIP/DIP)director<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#92;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (RIP)—-> 虚拟一个VIP<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;web server2<br/> <br/> <br/>1.规划ip<br/>Client：<br/>CIP=172.16.1.1<br/> <br/>director：<br/>VIP=172.16.1.100—->eth0:1(虚拟的ip)<br/>DIP=172.16.1.200—>eth0<br/> <br/>web server1：<br/>VIP=172.16.1.100(指向director的VIP) —> lo:1 (虚拟的ip)&nbsp;&nbsp;gw可以不配置 配置一定不能指向director的DIP上面<br/>RIP=172.16.1.10—->eth0<br/> <br/>web server2：<br/>VIP=172.16.1.100—> lo:1 (虚拟的ip)&nbsp;&nbsp; gw可以不配置 配置一定不能指向director的DIP上面<br/>RIP=172.16.1.20—->eth0<br/> <br/> <br/>director的配置：<br/>ifconfig eth0 172.16.1.200/24<br/>ifconfig eth0:1 172.16.1.100 broadcast 172.16.1.100 netmask 255.255.255.255 up<br/>route add -host 172.16.1.100 dev eth0:1<br/>yum -y install ipvsadm<br/>ipvsadm -A -t 172.16.1.100:80 -s wlc<br/>ipvsadm -a -t 172.16.1.100:80 -r 172.16.1.10 -w 2 -g<br/>ipvsadm -a -t 172.16.1.100:80 -r 172.16.1.20 -w 2 -g<br/> <br/>web server1的配置：<br/>ifconfig eth0 172.16.1.10/24<br/>echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore<br/>echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce<br/>echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore<br/>echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce<br/>ifconfig lo:1 172.16.1.100 broadcast 172.16.1.100 netmask 255.255.255.255 up<br/>route add -host 172.16.1.100 dev lo:1<br/>yum -y install httpd<br/>sed -i ‘$a ServerName 172.16.1.10:80′ /etc/httpd/conf/httpd.conf<br/>echo “this is web1 server” >> /var/www/html/index.html<br/>service httpd restart<br/> <br/>web server2的配置：<br/>ifconfig eth0 172.16.1.20/24<br/>echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore<br/>echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce<br/>echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore<br/>echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce<br/>ifconfig lo:1 172.16.1.100 broadcast 172.16.1.100 netmask 255.255.255.255 up<br/>route add -host 172.16.1.100 dev lo:1<br/>yum -y install httpd<br/>sed -i ‘$a ServerName 172.16.1.20:80′ /etc/httpd/conf/httpd.conf<br/>echo “this is web2 server” >> /var/www/html/index.html<br/>service httpd restart<br/> <br/> <br/>DR模型的脚本<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Real(web) server script<br/>vim /etc/init.d/real<br/>##################<br/>#!/bin/bash<br/>#script to start lvs-dr web server<br/>. /etc/rc.d/init.d/functions<br/>read -p “please input a ip for set up real server VIP:” VIP<br/>case “$1″ in<br/>start)<br/>/sbin/ifconfig lo down<br/>/sbin/ifconfig lo up<br/>echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore<br/>echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce<br/>echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore<br/>echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce<br/>/sbin/ifconfig lo:1 $VIP broadcast $VIP netmask 255.255.255.255 up<br/>/sbin/route add -host $VIP dev lo:1<br/>;;<br/>stop)<br/>/sbin/ifconfig lo:1 down<br/>echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore<br/>echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce<br/>echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore<br/>echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce<br/>;;<br/>status)<br/>islothere=`/sbin/ifconfig lo:1 &#124; grep $VIP`<br/>isrothere=`netstat -rn &#124; grep “lo:1″ &#124; grep $VIP`<br/>if [ ! "islothere" -o ! "isrothere" ];then<br/>&nbsp;&nbsp; echo “LVS-DR real server Stopped.”<br/>else<br/>&nbsp;&nbsp; echo “LVS-DR real server Running.”<br/>fi<br/>;;<br/>*)<br/>echo ” Usage: $0 (start&#124;status&#124;stop)”<br/>exit 1<br/>;;<br/>esac<br/>###########保存退出 +x<br/>service real start&#124;stop&#124;status<br/> <br/> <br/>&nbsp;&nbsp;&nbsp;&nbsp;director script<br/>vim /etc/init.d/ipvs<br/>######<br/>#!/bin/bash<br/>#script to start lvs-dr director server<br/>. /etc/rc.d/init.d/functions<br/>VIP=<br/>RIP1=<br/>RIP2=<br/>PORT=80<br/>case “$1″ in<br/>start)<br/>/sbin/ifconfig eth0:1 $VIP broadcast $VIP netmask 255.255.255.255 up<br/>/sbin/route add -host $VIP dev eth0:1<br/>echo 1 > /proc/sys/net/ipv4/ip_forward<br/>/sbin/iptables -F<br/>/sbin/ipvsadm -C<br/>ipvsadm -A -t $VIP:$PORT -s wlc<br/>ipvsadm -a -t $VIP:$PORT -r $RIP1 -w 2 -g<br/>ipvsadm -a -t $VIP:$PORT -r $RIP2 -w 2 -g<br/>/bin/touch /var/lock/subsys/ipvsadm &> /dev/null<br/>;;<br/>stop)<br/>echo 0 > /proc/sys/net/ipv4/ip_forward<br/>/sbin/ipvsadm -C<br/>/sbin/ifconfig eth0:1 down<br/>/sbin/route del $VIP<br/>/bin/rm -f&nbsp;&nbsp;/var/lock/subsys/ipvsadm<br/>echo “ipvs is stopped….”<br/>;;<br/>status)<br/>if [ ! -e /var/lock/subsys/ipvsadm ];then<br/>&nbsp;&nbsp; echo “ipvsadm is stopped…”<br/>else<br/>&nbsp;&nbsp; echo “ipvsadm is running…”<br/>&nbsp;&nbsp; ipvsadm -L -n<br/>fi<br/>;;<br/>*)<br/>echo “$0: Usage: $0 (start&#124;status&#124;stop)”<br/>exit 1<br/>;;<br/>esac<br/>######保存退出 +x<br/>service ipvs start&#124;stop&#124;status</span></span><br/>Tags - <a href="https://www.cnmysql.com/tags/lvs/" rel="tag">lvs</a> , <a href="https://www.cnmysql.com/tags/%25E9%259B%2586%25E7%25BE%25A4/" rel="tag">集群</a>
]]>
</description>
</item><item>
<link>https://www.cnmysql.com/post//#blogcomment</link>
<title><![CDATA[[评论] 集群之LVS的三种模式详细步骤]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>https://www.cnmysql.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>