LVS 之Direct Routing原理


下图为此转发的一个框架图:

具体的流程为:
===>1,client发送一条消息到virtual ip Address(linuxDirector) 
===>2,linuxDirector首先会先查一下是否已经保存了这个消息的链接,如果保存了,那么直接查出这个链接所链的real server; 否则linuxDirector会采用调度算法(均衡算法)从配置的real Server中选择一个real server,然后保存这个消息的链接与对应real Server的信息到hashtable中去。
===>3.linuxDirector会将消息发送过来的报文前面加上real server的MAC地址,然后推送到局域网中
 ===>4.real server会检测这条报文,如果发现MAC是自己,那么就处理这条消息
===>5.real server处理完成之后直接将结果消息转发给client。

下面是这个流程的流程图:

    从上面流程可以看出来,client每一次发送的消息都会经过LinuxDirector的,不管你是长连接还是短连接。那么这里面就有一个问题:如果我们在已有的集群中增加一台机器,而此时client却没有增加连接,那么我们这台real server就不会有链接过来了?哈哈,这个需要看看lvs负载均衡的算法是怎么实现的,看看hashtable什么时候重建。

实验证明:这个新增机器是会在长时间(30分钟)后有链接过来。











發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章