Creating an inter-pod communication network for Db2 Warehouse

You can improve the throughput of fast communications manager (FCM) traffic between the Db2® partitions on each pod in a Db2 Warehouse massively parallel processing (MPP) deployment by dedicating an additional IP address on each worker node for inter-pod communication.

About this task

You update the JSON file that is used by the database service with a list of the inter-node IP addresses and it changes your deployment to use hostNetwork for inter-pod traffic.

Procedure

  1. Run the following command to find the ansible service custom resources (CRs) as the owner of the configmap:
    oc get cm db2wh-json-cm -n ${PROJECT_CPD_INST_OPERANDS} \
          -ojsonpath={.metadata.ownerReferences[0].kind}; echo

    The command returns one of the following options as your ansible_service_cr:

    • Db2whService
    • Db2oltpService
    • Db2aaserviceService
  2. Add maintenance mode to your ansible_service_cr by running the following command:
    oc patch ansible_service_cr ansible_service_name --namespace ${PROJECT_CPD_INST_OPERANDS} --type=merge --patch '{"spec": {"ignoreForMaintenance": true}}' 

    Replace ansible_service_cr with the value returned from step 1 and ansible_service_name with the corresponding name of the ansible service CR: db2wh-cr, db2oltp-cr, or db2aaservice-cr.

  3. Open the db2wh-json-cm ConfigMap object in edit mode:
    oc edit cm db2wh-json-cm -n ${PROJECT_CPD_INST_OPERANDS}
  4. Type /fcm-ips to locate the fcm-ips section of the ConfigMap.
  5. Under the ibm-db2wh.json data option, set fcm-ips:
    "fcm-ips": "ip_address_1,ip_address_2,ip_address_3"

    Where ip_address_1,ip_address_2,ip_address_3 is a comma-delimited list of IP addresses that are to be used for Db2 FCM traffic in the cluster.

    Note: The number of IP addresses that you provide must match the number of nodes that you plan to allocate for Db2 Warehouse MPP. For example, if you plan to use four nodes but deploy only Db2 Warehouse on three of them, you must still provide four IP addresses because the fourth node can be targeted during failover.
  6. Save the change and exit the ConfigMap.
  7. Delete the zen-database-core pod in order for the ConfigMap changes to be remounted to the volume.
    oc delete po $(oc get po -n ${PROJECT_CPD_INST_OPERANDS} | grep zen-database-core | awk {'print $1'}) -n ${PROJECT_CPD_INST_OPERANDS}
  8. Deploy databases while the ansible service CR is in maintenance mode. For more information, see Creating a Db2 Warehouse database deployment on the cluster.
  9. Remove maintenance mode from the ansible service CR by running the following command:
    oc patch db2whservice db2wh-cr --namespace ${PROJECT_CPD_INST_OPERANDS} --type=merge --patch '{"spec": {"ignoreForMaintenance": false}}'

    Replace db2whservice db2wh-cr with:

    • db2oltpservice db2oltp-cr

    • db2aaserviceservice db2aaservice-cr

    Depending on the result from step 1.

    Note: If you reinstall or upgrade the Db2 Warehouse service, these steps must be completed again.