Db2uInstance カスタム・リソースを使用した Db2 のデプロイ

Db2® がインストールされると Db2uInstance Db2の展開に必要なインターフェースを提供します。 この CR は、 Red Hat OpenShift CR 定義でサポートされます。

Db2uInstance カスタム・リソースへのアクセス

YAML スクリプトを使用して Db2uInstance CR コマンドを実行することにより、 Db2 をデプロイします。 これは、次のようないくつかの方法で実行できます。
  • Red Hat® OpenShift® コンソールを使用します。
  • Red Hat OpenShift コマンド・ライン・ツールを使用します。
  • Kubernetes クラスターのコマンド・ライン・ツールを使用する。
Red Hat OpenShift コンソールを使用するには、 「インストール済みオペレーター (Installed Operators)」 > IBM Db2 に移動し、 Db2uInstance タブをクリックします。 このタブ・ページを使用して、 db2uCluster API (YAML ビュー) または Db2uInstance CR を介して Db2 を作成し、 Db2をデプロイします。

以下のセクションでは、YAML ファイルに含めることができる CR オプションについて説明します。 完成した Db2uInstance CR の例も含まれています。

Db2 バージョンの構成

インストールされている Db2に基づいて Db2のバージョンを指定します
spec:
  version: "s11.5.9.0<container layer release number>"

データベース名の構成

目的の Db2 データベースの名前を指定します。

以下の例は、データベース名を構成する方法を示しています。
spec: 
  environment:
    dbType: db2oltp
    databases:
      - name: BLUDB

専用ノードへのデプロイ

専用デプロイメント用に特定のノードのラベルをターゲットにする方法を指定します。 専用ノードへのデプロイは、実稼働環境でのベスト・プラクティスです。 Db2 デプロイメントに専用ノードを設定する を参照してください。

以下の例は、専用ノードをデプロイする方法を示しています。
spec:
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
        - matchExpressions:
          - key: database
            operator: In
            values:
            - db2u-affinity
  tolerations:
  - key: "database"
    operator: "Equal"
    value: "db2u-affinity"
    effect: "NoSchedule"

メモリーと CPU の使用量の構成

Db2 を使用して Db2 を展開する際には、CPUとメモリのプロファイルを割り当てることができます。 これにより Db2を実行するコンテナにCPU/MEM値が割り当てられます。

以下の例は、 Db2 インスタンスのメモリーと CPU の制限を設定する方法を示しています。
spec:
  podTemplate:
    db2u:
      resource:
        db2u:
          limits:
            cpu: 5
            memory: 8Gi

ストレージの構成

以下のストレージ・カテゴリーに対して別個のストレージ域を構成します。
  • db2 メタデータ用の meta 共有ストレージ・ボリューム。
  • データベース・ストレージ用の data 非共有ストレージ・ボリューム。 
  • データベースをバックアップするための backup 共有ストレージ・ボリューム (オプション)。
  • トランザクション・ログ用の activelogs 非共有ストレージ・ボリューム (オプション)。 これは、単一モード (SMP) デプロイメントでのみサポートされ、MPP ではサポートされません。 詳細については、データベース・トランザクション・ログ用に別のストレージを作成するを参照してください。
  • TEMPORARY 表スペースの tempts 非共用ストレージ・ボリューム (オプション)。 詳細については、一時的なテーブル・スペース用に別のストレージを作成するを参照してください。
  • アーカイブ・ログ用の archivelogs 非共有ストレージ・ボリュームは 必須です。 詳しくは、「データベース・アーカイブ・ログ用の別個のストレージの作成」を参照してください。
注: 特定のストレージ・ソリューションでは、両方に同じストレージ・クラスを指定できます。

行う CR 呼び出しは、新規または既存のストレージを構成するか、テンプレート・ストレージを構成するかによって異なります。

例えば、以下の CR 呼び出しを使用して、新規または既存のストレージを構成できます。
spec:
  storage:
  - name: meta
    spec:
      accessModes:
      - ReadWriteMany
      resources:
        requests:
          storage: 100Gi
      storageClassName: ocs-storagecluster-cephfs
    type: create
  - name: backup
    spec:
      accessModes:
      - ReadWriteMany
      resources:
        requests:
          storage: 100Gi
      storageClassName: ocs-storagecluster-cephfs
    type: create
  - name: archivelogs
    spec:
      accessModes:
      - ReadWriteMany
      resources:
        requests:
          storage: 100Gi
      storageClassName: ocs-storagecluster-cephfs
    type: create
注:

あなたがいる場合Q レプリケーションの導入ただし、以下のカスタムリソース(CR)呼び出しは、Db2uInstanceのためにDb2 WarehouseSMP または MPP。 これらの呼び出しは、オンライン・トランザクション処理 (OLTP) のために Db2uInstance にデプロイされた Q レプリケーションでは機能しません。

dataactivelogs、または temptsのテンプレート・ストレージを構成する場合は、 databases セクションの下に以下の CR 呼び出しを追加する必要があります。
    databases:
      - name: BLUDB
        storage:
          - name: data
            type: template
            spec:
              accessModes:
                - ReadWriteOnce
              resources:
                requests:
                  storage: 100Gi
              storageClassName: ocs-storagecluster-ceph-rbd
          - name: activelogs
            type: template
            spec:
              accessModes:
                - ReadWriteOnce
              resources:
                requests:
                  storage: 10Gi
              storageClassName: ocs-storagecluster-ceph-rbd

サポートされているストレージ・ソリューションの完全なリストについては、Db2の認定ストレージ・オプションを参照してください。

既存の永続ストレージ要求の使用

既存のクレームは、任意の ストレージ・カテゴリーのデプロイメントにも使用できます。

以下の例は、6 つの既存のボリューム・クレームと別個のボリューム・クレームの追加を示しています。
storage:
  - claimName: <meta-pvc-name>
    name: meta
    spec:
      resources: {}
    type: existing
  - claimName: <data-pvc-name>
    name: data
    spec:
      resources: {}
    type: existing
  - claimName: <backup-pvc-name>
    name: backup
    spec:
      resources: {}
    type: existing
  - claimName: <activelogs-pvc-name>
    name: activelogs
    spec:
      resources: {}
    type: existing
  - claimName: <tempts-pvc-name>
    name: tempts
    spec:
      resources: {}
    type: existing
  - claimName: <archivelogs-pvc-name>
    name: archivelogs
    spec:
      resources: {}
    type: existing

4K サポートの有効化

OpenShift デプロイメント上の Db2 が OpenShift Data Foundation (ODF) または Portworx コンテナー・ストレージ (PX) のいずれかを使用するように構成されている場合は、 4K のサポートが有効になっていることを確認してください。

以下のコード例は、 ONに設定された 4K サポートを示しています。
spec:
  environment:
    ...
    instance:
      registry:
        DB2_4K_DEVICE_SUPPORT: "ON"

内部LDAP

LDAP ディレクトリー・サービスはデフォルトで有効になっています。 内部 LDAP ユーザーを追加および管理する方法については、 「内部 LDAP」 を参照してください。 以下の例は、LDAP を無効にする方法を示しています。
spec:
  environment:
    authentication:
      ldap:
        enabled: false
注: LDAP が無効になっているバージョン s11.5.8.0-cn1 で Db2uInstance をデプロイしていて、LDAP が有効になっている既存のインスタンスがある場合、または s11.5.8.0-cn2で LDAP を無効にしようとしている場合は、まずトラブルシューティング資料「 Recovering a Db2u deployment from failure secret due to missing user-gmt」を参照してください。

外部 LDAP

次の例は、外部 LDAP を構成する方法を示しています。
spec:
  environment:
    authentication:
       ldap:
          enabled: true
          admin: bluadmin
          externalLdap: 
            server: "my-ldap-server.example.com"
            port: "389"
            userGroup: usergrp
            adminGroup: admingrp
注記:外部LDAPは以下でのみサポートされていますDb211.5.9.0-cn2そして上へ。 既存のインスタンスにパッチを適用する場合Db2、再起動も必要になりますDb2ポッドからconfigure_user_managementスクリプトを実行しますDb2ヘッドノード上のポッド。 詳細は 「外部LDAP」 を参照してください。

ノード・ポート・サービスの無効化

デフォルトでは、 Db2 インスタンスを作成すると、外部データをクラスターに移動するために nodeport サービスがアクティブ化されます。 以下の例は、この動作を無効にする方法を示しています。
environment:
  disableNodePortService: true

制限された特権を持つ Db2 インスタンスのデプロイ

CRでパラメータを設定することで、 制限付きの権限を持つ Db2を作成することができます。 このオプションにより、セキュリティーが向上します。 次の例は、制限された権限を設定する方法を示しています。unsafe sysctls :
spec:
  account: 
    securityConfig:                                                             
      privilegedSysctlInit: false
      
次の例では、ノードのIPCカーネルパラメータを設定することで、制限付きの権限を設定する方法を示しています
spec:
  account: 
    securityConfig:                                                             
      privilegedSysctlInit: false
  advOpts:
    hostIPC: true

カスタム・サービス・アカウントを使用した Db2 のデプロイ

サービスアカウントは、コンポーネントがCRに直接アクセスできるようにする OpenShift Container Platformのアカウントです。 CRでパラメータを設定して、 カスタムサービスアカウントを持つ Db2を作成することができます。

以下の例は、作成したカスタム・サービス・アカウントと同じ名前にカスタム・サービス・アカウントを設定する方法を示しています。
spec:
  account:
    serviceAccountName: ${SERVICE_ACCOUNT}

デフォルトのデータベース設定をオーバーライドする

Db2 インスタンスのデフォルト・データベース設定をオーバーライドできます。
注意:
関連するリスクを認識している場合にのみ、デフォルトのデータベース設定をオーバーライドしてください。 確信が持てない場合は、デフォルト設定を受け入れます。
以下の例は、 Db2 インスタンスのデータベース値を設定する方法を示しています。
spec:
 environment:
   databases:
    - name: BLUDB
      settings:
        dftTableOrg: "COLUMN"
        dftPageSize: "32768"
        encrypt: "NO"
        codeset: "UTF-8"
        territory: "US"
        collation: "IDENTITY"   

Db2 データベース構成 (dbConfig) 設定のオーバーライド

Db2 インスタンスのデフォルトのデータベース構成設定をオーバーライドできます。
注意:
dbConfig 設定をオーバーライドするのは、関連するリスクを認識している場合のみにしてください。 確信が持てない場合は、デフォルト設定を受け入れます。
以下の例は、 Db2 インスタンスの dbConfig 値を設定する方法を示しています。
spec:
  environment:
    databases:
      - name: BLUDB
        dbConfig:
          LOGPRIMARY: "50"
          LOGSECOND: "35"
          APPLHEAPSZ: "25600"
          STMTHEAP: "51200 AUTOMATIC"

Db2 レジストリー変数を設定します。

Db2 インスタンスのデフォルトの Db2 レジストリー変数値をオーバーライドできます。
注意:
上書きするのはDb2関連するリスクを認識している場合は、レジストリ変数の設定を慎重に行ってください。 確信が持てない場合は、デフォルト設定を受け入れます。
以下の例は、 Db2 インスタンスの Db2 レジストリー変数値を設定する方法を示しています。
spec:
  environment:
    instance:
      registry:
        DB2_ATS_ENABLE: "NO"
        DB2_OBJECT_STORAGE_SETTINGS: "OFF"
        DB2_DISPATCHER_PEEKTIMEOUT: "2"
        DB2_COMPATIBILITY_VECTOR: "ORA"

完全な Db2uInstance CR の例

以下の例は、 Db2 クラスターをデプロイするための CR コードを示しています。 CR は、以下の構成で Db2 インスタンスを作成します。
  • データベース名: BLUDB。
  • 4 個の CPU。
  • 16 GB のメモリー。
  • 5 つのストレージ・ボリューム (metadatabackuparchivelogs、および tempts)。
  • DB2 4K SUPPORT が使用可能になりました。
  • LDAP が無効になりました。
  • 特権インスタンス。
apiVersion: db2u.databases.ibm.com/v1
kind: Db2uInstance
metadata:
  name: db2-example
spec:
  account:
    privileged: true
  environment:
    authentication:
      ldap:
        enabled: false
    databases:
    - dbConfig:
        APPLHEAPSZ: "25600"
        LOGPRIMARY: "50"
        LOGSECOND: "35"
        STMTHEAP: 51200 AUTOMATIC
      name: BLUDB
      storage:
        - name: data
          type: template
          spec:
            accessModes:
              - ReadWriteOnce
            resources:
              requests:
                storage: 100Gi
            storageClassName: ocs-storagecluster-ceph-rbd
        - name: activelogs
          type: template
          spec:
            accessModes:
              - ReadWriteOnce
            resources:
              requests:
                storage: 10Gi
            storageClassName: ocs-storagecluster-ceph-rbd           
    dbType: db2oltp 
    instance:
      dbmConfig:
        DIAGLEVEL: "2"
      registry:
        DB2_4K_DEVICE_SUPPORT: "ON"
        DB2_ATS_ENABLE: "NO"
        DB2_DISPATCHER_PEEKTIMEOUT: "2"
        DB2_OBJECT_STORAGE_SETTINGS: "OFF"
    partitionConfig:
      dataOnMln0: true
      total: 1
      volumePerPartition: true
  license:
    accept: true
  nodes: 1
  podTemplate:
    db2u:
      resource:
        db2u:
          limits:
            cpu: 4
            memory: 16Gi
  storage:
  - name: meta
    spec:
      accessModes:
      - ReadWriteMany
      resources:
        requests:
          storage: 10Gi
      storageClassName: ocs-storagecluster-cephfs
    type: create
  - name: backup
    spec:
      accessModes:
      - ReadWriteMany
      resources:
        requests:
          storage: 10Gi
      storageClassName: ocs-storagecluster-cephfs
    type: create
  - name: archivelogs
    spec:
      accessModes:
      - ReadWriteMany
      resources:
        requests:
          storage: 100Gi
      storageClassName: ocs-storagecluster-cephfs
    type: create
  version: s11.5.9.0-cn2