加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

使用iControl获取F5负载均衡配置信息(一)

(2011-10-17 09:28:55)
标签:

icontrol

负载均衡

配置

杂谈

 杨洋

关于F5 iControl API的中文参考资料较少, 只好自己看着API手册研究.

看了一下iControlAPI, 发现通过API获取某些信息都要依靠VirtualServer(HAProxyFrontend).

于是, 第一版的获取配置信息的方法就”诞生”了.

 

流程如下:

1. 获取当前F5VirtualServer列表, 循环遍历取出每一个VirtualServer.

2. 通过VirtualServer获取到对应的VirtualAddress(IP+PORT形式,HAProxy中的Vip,F5FrontendVip是一对一关系).

2. 通过VirtualServer获取对应的DefaultPool(F5, VirtualServerPool也是一对一关系), 有一些VirtualServer做的七层负载均衡, 是没有DefaultPool, 所以要根据Rule来判断VirtualServer是四层还是七层.

3. 通过VirtualServer获取到对应的Rule(F5, VirtualServerRule也是一对一的关系), 判断RuleName是否为空, 若为空, 则是四层, 若不为空, 则是七层. 知道了VirtualServer是几层了, 就可以获取Pool.

4. 四层的Pool 只有一个, 就是VirtualServer对应的DefaultPool. 七层的Pool 需要先通过VirtualServerRuleName获取到对应的RuleDestination,RuleDestination中解析出所有Pool和规则信息.

5. 通过Pool获取对应的PoolMember(HAProxyRealServer), 再获取Pool的状态(GREEN/RED).

6. 通过VirtualServer获取VirtualServer的状态(GREEN/RED).

7. 保存本次循环的查询结果, 进入下一次循环.

8. 等待循环结束后, 将每次的查询结果存放到对应的数据类型内并返回结果.

 

经过测试发现, 按照以上方法获取配置信息, SOAP请求次数过多, 导致获取配置信息的耗时较长, 获取一台有400组配置信息的设备耗时在5分钟左右.

经过深入研究以后, 开发了第二版的获取配置信息的方法, 获取一台设备配置信息的时间可以控制在20秒内.

欲知详情, 请见下回分解...

 

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有