How to setup Vertica native loadbalancing with NATed Ip

Hi,

We are using Vertica with Openstack.
The Vertica nodes have only one network interface with private IP.
We access to the nodes by using a public IPs defined with floating IP in Openstack.
The clients have access to Vertica cluster, only with the public IP.

When we setup the Vertica native loadbalancing on both server and client (jdbc), the client receive an error because it doesn't know the private IP sent by Vertica to the client.

 

How can we solve this problem without using the Linux IPVS (too complex to maintain) or a loadbalancer ?

 

Does changing the Vertica export_address with the public IP defined in openstack, could solve the loadbalancing problem with public IP (NATed private ip) ?


Can we create a new Vertica subnet & network interface to associate the Public IP to the "export_address" while there is no network interface defined for the public ips on the Vertica nodes ?

Thanks !

Please find below the context :

3 nodes :

node1, private ip=172.30.124.51 (eth0), public ip defined on openstack=10.56.124.51

node2, private ip=172.30.124.52 (eth0), public ip defined on openstack=10.56.124.52

node3, private ip=172.30.124.53 (eth0), public ip defined on openstack=10.56.124.53

 
By default, node_address & export_adress are the same.

dbadmin=> select node_name, node_address, export_address from V_CATALOG.NODES;

     node_name     | node_address  | export_address
-------------------+---------------+----------------
v_Cluster1_node0003 | 172.30.124.53 | 172.30.124.53
v_Cluster1_node0001 | 172.30.124.51 | 172.30.124.51
v_Cluster1_node0002 | 172.30.124.52 | 172.30.124.52
(3 rows)
 
dbadmin=> create network interface pubipvm1 on v_Cluster1_node0001 with '10.56.124.51' ;
ERROR 4125:  No valid address found for [10.56.124.51] on this node

Comments

  • Hi viewers,

    The problem is solved by creating a temporary network interface on each nodes and affecting the public IP to each temporary network interface.

    Then we can use with success the Vertica commands, create network interface and ALTER NODE to associate the public IPs with the private IPs.

    After that, we delete the temporary network interface created for the public IPs on each nodes.

    We did with sucess some checks with Talend using the Additional JDBC Parameters "ConnectionLoadBalance=true" and also from the nodes ( echo "SELECT NODE_NAME FROM V_MONITOR.CURRENT_SESSION;" | vsql -w####  -C --enable-connection-load-balance ).

     

    Jeff

Leave a Comment

BoldItalicStrikethroughOrdered listUnordered list
Emoji
Image
Align leftAlign centerAlign rightToggle HTML viewToggle full pageToggle lights
Drop image/file