背景:深信服OpenAD是专门针对多租户云场景的负载均衡解决方案,以华为FusionCloud+深信服OpenAD组合”仅需要使用一台OpenAD就可以虚拟出多个负载均衡设备vLB,并和华为的FusionCloud融合。用户在使用华为云平台时可直接申请获得虚拟负载均衡设备,并做到网络隔离。
LBaaS是OpenStack的负载均衡服务,默认采用的是Haproxy作为Driver实现其负载均衡功能,默认情况下,LBaaS不提供高可能功能,也就是说,一个LBaaS实例故障,将可能会影响业务的负载均衡功能。
废话不多讲,直接开始上干货,现网配置,已脱敏仅供参考:
环境变量设置: Source set_env 密码为 FusionSphere123 Please choose environment variable -- 选1 注意:192.168.144.244 提示修改密码 已改成 Sangfor123
一、 AD设备部署 AD设备上架较简单,大概分为以下几个步骤: 1、 设备升级到最新OpenAD版本 2、 接通对应管理、业务和双机口 3、 将设备两两配置成集群 4、 在集群上将之前选取的业务口配置成bond,这里需要找交换机负责人在对应交换机上配置bond和trunk口 AD常规操作,这里不做详细描述
二、 Saas平台操作
1. 整体结构介绍
首先介绍一下整体云环境。 XX公司拥有“XX”和“XX”两个机房,每个机房又分别划分为互联网区和外网区,所以后面我们以“XX互联网”、“XX外网”、“XX互联网”和“XX外网”来称呼这几个区域。 我们需要关心两点,每个区域的控制节点和统一的前台配置管理页面。 1) 控制节点 每个区域有三个控制节点做冗余,我们需要登录每一个控制节点去上架我们的plugin部分代码。 这里列出所有区域的控制节点ip: XX互联网:192.168.22.213、192.168.22.17、192.168.23.211 XX外网:192.168.144.244、192.168.144.213、192.168.146.191 XX互联网:192.168.83.140、192.168.82.175、192.168.82.43 XX外网:192.168.211.120、192.168.210.71、192.168.209.33 2) 前台配置管理 所有区域使用统一的配置管理前台,需要设置host文件通过域名登录,host格式如下: 192.168.132.58 console.digitalgd.com.cn 192.168.132.58 auth.digitalgd.com.cn 192.168.132.58 docs.digitalgd.com.cn 通过console.digitalgd.com.cn登录即可,我们的测试账号密码为: User_id: sxf_test passwd: sangfor@123 登录后可选择配置区域: 注意区域名字后面的缩写,mmzwww对应的就是“XX外网”,其他以此类推即可。
2. 上架plugin 注意:以下操作需要在每一个控制节点上执行 首先,我们需要上传我们的代码包到每一台控制节点上面,建议使用winscp工具,账号密码如下: User_name:fsp passwd:Huawei@CLOUD8 暂时改成 Sangfor123 上传位置建议在fsp用户的个人目录/home/fsp下建立lbaas_tmp目录,将压缩包传到此位置。 接着通过ssh登录控制节点,用户名密码和winscp使用的相同。登陆成功后,执行su root切换用户为root,root密码为:Huawei@CLOUD8! 登陆后最好使用TMOUT=0命令,将超时时间去掉,登录永不超时。 进入刚才放置压缩包的lbaas_tmp目录,在解压之前,需要修改umask,不然解压后文件权限会有问题。执行 umask 0000 执行过后,可以解压代码包了,使用tar xvf <包名>解压。解压后文件列表如下: 由于使用setup.py安装存在权限问题,这里直接拷贝plugion文件到相应位置即可,执行命令如下: cp -rf sangfor /usr/lib/python2.7/site-packages/neutron_lbaas/drivers/ cp -rf sangfor-openstack-lbaasv2-driver/sangforlbaasdriver /usr/lib/python2.7/site-packages/ 如果不放心,可以尝试切换回fsp用户,用python加载对应路径,加载成功即可认为拷贝正常。 确认拷贝成功之后即可尝试修改neutron配置,这里操作和我们openstack测试环境不同,华为saas平台有统一的配置管理,需要通过特殊命令修改并下发配置。命令如下: 1、 修改service_plugin,增加loadbalancerV2(注意commit): cps template-params-update --parameter service_plugins=qos_extension,huawei_ac_l2br,huawei_ac_ext,networking_huawei.drivers.ac.plugins.fwaas.fwaas_plugin.HuaweiACFwaasPlugin,networking_huawei.drivers.ac.plugins.vpnaas.vpnaas_plugin.HuaweiIPsecVPNPlugin,networking_huawei.drivers.ac.plugins.l3.ac_l3_router_plugin.HuaweiACL3RouterPlugin,neutron_lbaas.services.loadbalancer.plugin_vlb.VlbLoadBalancerPluginV2 --service neutron neutron-server cps commit 2、 修改service_provider将我们的插件路径替换上去(注意commit): cps template-params-update --parameter service_provider=LOADBALANCERV2:Sangfor:neutron_lbaas.drivers.sangfor.driver_v2.SangforLBaaSV2Driver:default --service neutron neutron-server cps commit 3、 这时可以使用命令: cps template-params-show --service neutron neutron-server 查看参数是否修改成功,成功截图如下: 4、 确认无误后重启neutron-server,命令如下: cps host-template-instance-operate --service neutron neutron-server --action stop cps host-template-instance-operate --service neutron neutron-server --action start 重启后可以通过: tail -f /var/log/fusionsphere/component/neutron-server/neutron-server_info.log.200 查看三台控制节点的日志,如果存在我们插件问题导致的neutron-server启动失败,则需要立即查明原因并恢复 5、 这里有比较快速的修复方法,如果发现我们导致neutron-sever起不来,可以执行: cps template-params-update --parameter service_provider=LOADBALANCERV2:Haproxy:neutron_lbaas.drivers.haproxy.plugin_driver.HaproxyOnHostPluginDriver:default --service neutron neutron-server cps commit 将provider恢复为默认,之后再重启neutron-server即可。 3. 部署sangfor_lbaasv2_agent 以下操作在其中一台控制节点执行即可 进入之前解压文件的lbaas_tmp目录,进入其中的sangfor-openstack-agent文件夹,执行python setup.py install,将agent代码安装到设备上。 修改agent配置文件/etc/neutron/services/sangfor/sangfor-openstack-agent.ini,形式如下: 其中server_host为对应ad集群的管理ip,server_port为管理端口。Server_admin为集群用户,server_password为集群密码。External_physical_mappings和network_segment_physical_network按图中填写即可,后面如果有需求可以找编码人员更新。 配置修改后,使用service sangfor-openstack-agent start启动agent。 执行service sangfor-openstack-agent status验证进程是否启动成功,成功则执行结果如下: 接下来使用openstack平台命令验证,执行: neutron agent-list |grep sangfor 结果中agent状态为: )即可。
三、 AC(sdn)平台操作 可以参考华为AC配置文档。 四、 配置平台测试 1. 创建隶属于不同VPC的多个lb 登录“Saas整体结构介绍”中提到的配置平台,修改URL为: 登录后页面如下: 点击弹性负载均衡选项,进入负载配置页面: 在创建负载之前,建议登录AD后台执行: tail -f /tmp/openstack_api.log 观察配置期间调试日志,防止一些非明显错误引发的问题。 开始创建lb,测试vpc和subnet可以找华为实施方确认,找到合适的配置项,供应商务必选择sangfor。配置截图如下: 创建后,需要在AD上确认 netns、vlan、macvlan、wan口、IP组配置是否下发成功。并且用刚刚创建的网口尝试ping网关能通: 最后,尝试在另外一个vpc上创建lb,重复上面的测试步骤即可。 4. 在单个lb中创建多个监听器 进入上一步创建好的lb配置页面,点击添加监听器: 这里配置比较特殊,监听器包括传统openstack中的listener、pool和health_monitor,创建时可以指定会话保持。这里配置组合比较多,我只截取一种作为示范: 新建后建议继续观察设备上的/tmp/openstack_api.log日志,是否会有配置下发出错。 下发成功后,在ad设备上检查 服务、会话保持、节点监视器、节点池、虚拟服务配置。 重复上述步骤,新建多个监听器,配置建议尽量尝试多种配置组合。 下面尝试修改监听器配置,修改页如下: 建议一次修改包括 调度算法、会话保持和监视器的所有字段,方便测试。 修改后,观察ad上是否也走了对应改动。 下面测试添加后端云服务器,对应openstack的member,也就是我们的节点,添加比较简单,只能使用vpc内部的云服务器: 添加后,观察AD上的节点池中是否存在对应节点。 业务测试这里建议根据实际情况测试,如果云服务器比较难做处理,可以尝试用四层负载ssh。如果操作比较方便,可以直接测试http,这里是很常规的AD上架测试,不做赘述了。
5. 删除配置测试 根据 后端云服务器->监听器->负载 的顺序删除配置,每次删除后,去AD上查看openstack_api.log日志,同时检查对应配置是否删除成功。 |