Cloud Pak for Data Group

 View Only

Deep dive in DMC components and related resources on Cloud Pak for Data v4 - Part I

By DA WEI ZHANG posted Sun April 24, 2022 11:15 PM


Data Management Console

IBM Db2 Data Management Console(DMC) is a tool that you can use to manage and monitor your integrated IBM Db2 databases from a single user interface. It can mange Db2, Db2 Warehouse and Data Virtualization services in Cloud Pak for Data.

From the console, you can:

  • Administer databases
  • Work with database objects and utilities
  • Develop and run SQL scripts
  • Move and load large amounts of data into databases for in-depth analysis
  • Monitor the performance of your Cloud Pak for Data integrated Db2 databases

DMC components in cp4d

Using opensource tool kubectl-tree, you can easily to get all resources list of DMC CustomResource:

Dmc Addons

When intalled DMC service you need to create DMC Addon CR:

cat <<EOF |oc apply -f -
kind: Dmcaddon
    name: dmc-addon # This is the recommended name, but you can change it
    namespace: project-name # Replace with the project where you will install Db2 Data Management Console
        accept: true
        license: Enterprise | Standard # Specify the license you purchased
    version: 4.0.7

Then use "kubectl tree" command to list resources:
# kubectl tree dmcaddons dmc-addon

Deployments and Services

DMC addon CR created two deployments and corresponding services:

ibm-dmc-addon-ui:  Provide provision UI for dmc services.

ibm-dmc-addon-api:  Provides service provider function in cloud pak for data. It interact with zen-core-api to perform service registration and manage dmc instances.


cpd-dmc-aux-br-cm: This is auxiliary meta for dmcaddon/dmc backup and restore operation
cpd-dmc-aux-qu-cm: This is auxiliary meta for dmcaddon/dmc quiesce and unquiesce operation
dmc-services-info-cm: DMC service info provided for about page.
ibm-dmc-addon-api-cm:  Used by ibm-dmc-addon-api deployments to store variables
zen-addon-cm-dmc: DMC meta data provided for zen-core-api.

Role and Rolebinding

Bind to zen-editor-sa and zen-admin-sa to operate dmc resources.
ibm-dmc-addon-api and ibm-dmc-addon-ui runs with service account zen-editor-sa.


Dmcs CustomResource represent the dmc instances. DMC instances can be provisioned from UI. If Data Virualization is installed withou existing dmc instance, a dmc instance will be provisioned automatically .

kind: Dmc
ansible.operator-sdk/reconcile-period: 30s "4"
creationTimestamp: "2022-04-01T09:57:17Z"
generation: 2
name: data-management-console
namespace: zen
resourceVersion: "19850375"
uid: b37be438-65db-48bc-a4b2-a5e33e30b764
description: IBM Db2 Data Management Console
accept: true
license: Standard
scaleConfig: small
storageClass: ocs-storagecluster-cephfs
storageSize: 10Gi
cpu: ""
memory: ""
version: 4.0.7
zenControlPlaneNamespace: zen
zenServiceInstanceDisplayName: data-management-console
zenServiceInstanceId: 1648807034329656
zenServiceInstanceNamespace: zen
zenServiceInstanceOwnerUID: 1000330999EOF

Use "kubectl tree" command to list resources:
# kubectl tree dmcs data-management-console

These can be groups to deployment/statefulset/pod, networkpolicy, service,persistent volumes, etc.

Deployment/StatefulSet and Service

ibm-dmc-<instance-id>-runsql: "Run SQL"
ibm-dmc-<instance-id>-explain: SQL explain in "Run SQL" menu.
ibm-dmc-<instance-id>-admin: Provide functionalities in "Data" menu
ibm-dmc-<instance-id>-dbapi:  Manipulate database profiles and connections 
ibm-dmc-<instance-id>-monitor: Provide functionalities in "Monitor" menu and "Report" menu
ibm-dmc-<instance-id>-job-scheduler: Provide functionalities in "Jobs" menu
ibm-dmc-<instance-id>-registry:  Register databases into profiles, init repository and allocate pods to handle it.
ibm-dmc-<instance-id>-nginx:  Provide access route to funtional pods.


<instance-id>: Store database profile information. Created by ibm-dmc-<instance-id>-registry pod, read by dbapi pod.
dmc-data-management-console-cm: Stored instance infromation and read by zen-watcher pod.   Then this information stored into zen-metastoredb.
ibm-dmc-<instance-id>-jobsconfigmap: Store jobs information.
ibm-dmc-<instance-id>-ucconfigmap:  Store profile lists and dmc config settings. Write by registry manager pod, read by other pods. 
ibm-dmc-<instance-id>-redis-client-cert:  CA certificate for redis service.


ibm-dmc-<instance-id>-console-api-key: Console api key to communicate between dmc instance pods.
ibm-dmc-<instance-id>-console-secret:  Apikey and password used for IBM cloud.
ibm-dmc-<instance-id>-job-scheduler: Store username and password to call job scheduler api.
ibm-dmc-<instance-id>-nginx-tls: Certificates for nginx service.
ibm-dmc-<instance-id>-redis: Store redis password.
ibm-dmc-<instance-id>-registry-manager: Store username and password to call registry manager api.


ibm-dmc-<instance-id>-data: Stored dmc config files and logs.

Redis related resources

Dmc use redis operator to be cache for monitored data.

OperandRequest:  data-management-console-dmc-requests-redis
RedisSentinels:  Redis resource object to reference other resources
PersistentVolume: data-c-ibm-dmc-<instance-id>-redis-m-1 and data-c-ibm-dmc-<instance-id>-redis-m-0 used by redis master pods.

Other related components in cp4d

DMC read some resources from other services or components to get neccessary information.

Zen core related

Configmap: product-configmap, DMC addon read this configmap to get cloud pak instance information.
Secret: internal-tls, DMC pods mount this secret as server certificate.

Database related

Before CP4D 4.0.7, dmc read database instance info and password from zen-core-api. In 4.0.8 and 4.5 later, will read password from database secrets.