はじめに
- IBM Cloud上のマネージドOpenShift環境である ROKS に、Db2を導入した時の導入手順を備忘録として記録します
- OpenShift/Kubernetes環境でDb2を動かすには、マイクロサービスとして開発された専用のDb2を導入する必要があります
- Db2 for Red Hat OpenShift and Kubernetes、別名Db2Uとも呼ばれます
- Db2として公式の Kubernetes Operator が提供されます
- デフォルト構成に少し手を加えて、トランザクションログや一時表スペース用の領域を別個のPVCに分散配置する構成とします
- Db2 11.5.8-cn1以降はデフォルトで分散storage構成となります
- できる限りOCP Webコンソールのみを使ってDeployしますが、過去のリリースレベルと異なりエラーで先に進めなくなることもあったため、エラーメッセージや対処方法も残します
環境 / 構成
- OpenShift Container Platform 4.10.47
- Db2 Operator 110508.0.0
- Db2 for OpenShift and Kubernetes (Db2U) s11.5.8.0
- Persistent Volume Claim(PVC)構成 :
ストレージクラスは、今回の環境にて利用可能なものでDb2がサポートするクラスを指定します。
PVC | PVC作成の必要性 | アクセスモード | ストレージクラス |
---|---|---|---|
SHARED META | 必須 | RWX | ocs-storagecluster-cephfs |
DATA | 必須 | RWO | ocs-storagecluster-ceph-rbd |
アクティブログ | オプション(*1) | RWO | ocs-storagecluster-ceph-rbd |
アーカイブログ | オプション(*1) | RWO | ocs-storagecluster-ceph-rbd |
一時表スペース | オプション(*2) | RWO | ocs-storagecluster-ceph-rbd |
バックアップ | オプション(*2) | RWX | ocs-storagecluster-cephfs |
(*1) 専用PVCを作らない場合、DATAのPVCに保持される
(*2) 専用PVCを作らない場合、SHARED METAのPVCに保持される
前提条件についてはDb2マニュアルやDb2 Operator Readmeに記載がありますが、記載されるバージョンは古く、それほど高頻度に更新されているわけではないようです。
参考:
Deploying Db2 on your OpenShift cluster
Configuring database storage for Db2
導入手順(概要)
オンプレミスで使われるDb2インストールイメージ(db2setupやdb2_install)の利用は、OpenShift / Kubernetes 環境ではサポートされず、マイクロサービスとして実装される、Db2 for Red Hat OpenShift and Kubernetes(Db2U)(※) を利用する必要があります。
※ つい最近まで、Db2 on Red Hat OpenShift という名前でした。
以下の流れでデプロイを進めます。
- OpenShift プロジェクト作成
- Db2 Operator導入
- Security Context Constraint 設定
- Db2 エンジン導入
導入手順 (ログ)
IBM ROKS環境へ Db2U を導入した際の手順、スクリーンショットを記録として残します。
Step1. プロジェクト作成
Db2デプロイ用のネームスペースを作成します。
root@myhost:~# oc new-project db2u-1
Now using project "db2u-1" on server "https://c115-e.jp-tok.containers.cloud.ibm.com:30769".
You can add applications to this project with the 'new-app' command. For example, try:
oc new-app rails-postgresql-example
to build a new example application in Ruby. Or use kubectl to deploy a simple Kubernetes application:
kubectl create deployment hello-node --image=k8s.gcr.io/serve_hostname
root@myhost:~#
Step2. Db2 Operator導入
Step2-1. IBM Operator Catalog 導入
IBM Operator CatalogをOCP環境に導入します。
Db2マニュアルに提供されるYaml定義を利用して、IBM Operator Catalog の CatalogSourceリソースを作成します。
apiVersion: operators.coreos.com/v1alpha1
kind: CatalogSource
metadata:
name: ibm-operator-catalog
namespace: openshift-marketplace
spec:
displayName: "IBM Operator Catalog"
publisher: IBM
sourceType: grpc
image: icr.io/cpopen/ibm-operator-catalog
updateStrategy:
registryPoll:
interval: 45m
YAMLのインポート画面が開くので、エディタ部分に上記Yaml定義を貼付して「作成」を押下します
コマンドラインからも、CatalogSource およびパッケージマニフェストが正常に作成されていることを確認します
root@myhost:~# oc get CatalogSource -n openshift-marketplace
NAME DISPLAY TYPE PUBLISHER AGE
certified-operators Certified Operators grpc Red Hat 10d
community-operators Community Operators grpc Red Hat 10d
ibm-operator-catalog IBM Operator Catalog grpc IBM 73s
redhat-marketplace Red Hat Marketplace grpc Red Hat 10d
redhat-operators Red Hat Operators grpc Red Hat 10d
root@myhost:~#
"ibm-operator-catalog" が作成されていることが確認されます
Step2-2. Db2 Operator 導入
OpenShift Webコンソールを開き、メニューバーの [Operator] -> [OperatorHub] を選択します。
画面上部のテキストボックスに「Db2」と入力すると、Db2関連のオペレータに表示が絞られます。
「IBM Db2」を選択すると、Db2U Operator Readmeが表示されます。
Db2U Opearator 導入後~Db2エンジンのDeployまでに実行する必要のある作業や前提条件が記載されていますので必ず目を通します。
※ Operatorインストール後も同じReadmeを参照可能です
Operator Readme 画面左上の「インストール」を押下し、Db2U Operator を導入します。
インストールモード、インストール対象となるNamespaceなど必要な項目を選択し、「インストール」を押下するとDb2U Operatorの導入が始まります。
「更新の承認」を「手動」にしている場合は、承認が要求されます
「Operatorの表示」を押下すると、Db2U Operator の詳細画面に遷移します
これでDb2U Operatorのセットアップが完了しました。
Step3. セキュリティ構成
Step3-1. Secret 構成
後のDb2U Cluster(Db2インスタンス本体)の導入時に必要となる Entitlement key を取得し、この key を含む Secret を作成しておきます。
Db2U Cluster導入時には、この Entitlement key を保持する Secret の名前を指定します。
①Entitlement key の取得
MyIBM のサイトにアクセスし、ライセンスが付与されているソフトウェアに関連付けられた IBMid とパスワードを入力しログインします。
https://myibm.ibm.com/products-services/containerlibrary
「Container software library」ページに表示されるライセンスを確認します。
この例では「IBM SOFTWARE ACCESS 1 YEAR : all」と表示されています。(※この画面の表示は一例です)
続いて「Entitlement keys」に移動してキーを取得します
[Copy key]ボタンを押下し、Entitlement key をコピーします(→後ほど利用するため、テキストファイル等に一時保管しておく)
②Image Pull Secret の作成
①で取得したENTITLEDKEY、 EMAILアドレス、プロジェクト(ネームスペース)名を環境に応じて設定し、oc create secret コマンドを実行します。
OS環境変数の設定:
root@myhost:~# ENTITLEDKEY="①で取得したEntitlement key"
root@myhost:~# EMAIL="xxx@yyy.com"
root@myhost:~# NAMESPACE="db2u-1"
Secret作成:
root@myhost:~# oc create secret docker-registry ibm-registry \
--docker-server=cp.icr.io \
--docker-username=cp \
--docker-password=${ENTITLEDKEY} \
--docker-email=${EMAIL} \
--namespace=${NAMESPACE}
secret/ibm-registry created
Secretが作成されました
root@myhost:~# oc get secret | grep ibm-registry
ibm-registry kubernetes.io/dockerconfigjson 1 97s
root@myhost:~#
Step3-2. Security Context Constraints 構成
Db2マニュアル または Db2 Operator Readme に記載されるyaml定義をコピー&ペーストし、SecurityContextConstraints定義を作成します。
※マニュアルとDb2U Operator Readmeに記載されるSecurity Context Constraintsのyaml文は同一です
しかし、ここでエラー。
エラーメッセージ:
エラーが発生しました
サーバーにはリソースタイプ「kind: SecurityContextConstraints, apiVersion: v1」がありません。
こういった場合、コマンドラインで実行するほうが詳細なエラーメッセージが得られるため、クライアント端末から同じYamlファイルを指定してSCCを作成してみます。
root@myhost:~/db2u# oc create -f ./db2u-scc.yaml
W0209 18:47:15.366217 585 shim_kubectl.go:55] Using non-groupfied API resources is deprecated and will be removed in a future release, update apiVersion to "security.openshift.io/v1" for your resource
securitycontextconstraints.security.openshift.io/db2u-scc created
root@myhost:~/db2u#
コマンドラインであれば、作成できるようです。
しかし非推奨(将来削除される可能性)であると警告されています。
現在、apiVersion: v1
となっている箇所を apiVersion: security.openshift.io/v1
へ変更する必要があると。
こういった対応については、Db2の開発部門に拾っていただきたいです。
※2024.02のマニュアル更新にて修正されました。
db2u-sccが作成されていることを、確認します
root@myhost:~/db2u# oc get scc | grep db2u
db2u-scc true ["SYS_RESOURCE","IPC_OWNER","SYS_NICE","CHOWN","DAC_OVERRIDE","FSETID","FOWNER","SETGID","SETUID","SETFCAP","SETPCAP","SYS_CHROOT","KILL","AUDIT_WRITE"] MustRunAs RunAsAny RunAsAny RunAsAny 10 false ["awsElasticBlockStore","azureDisk","azureFile","cephFS","cinder","configMap","csi","downwardAPI","emptyDir","ephemeral","fc","flexVolume","flocker","gcePersistentDisk","gitRepo","glusterfs","iscsi","nfs","persistentVolumeClaim","photonPersistentDisk","portworxVolume","projected","quobyte","rbd","scaleIO","secret","storageOS","vsphere"]
今回はひとまず作成できたので、先に進みます。
Step4. Db2エンジンのDeploy
Db2エンジンのデプロイは、OCP Webコンソールでもコマンドラインでも実行可能です。
- OCP Webコンソール
- フォームビューとYamlビューが提供され、GUI/YamlベースどちらでもDeploy可
- 入力必須項目はほとんどフォームビュー(Dropdownメニュー、Textbox)で設定可能
- コマンドライン
- Yamlファイルを作成
- oc apply(create)コマンドでDeploy
今回はWebコンソールからデプロイします。
構成図の通り、パフォーマンス向上を目指して用途別にPersistent Volume Claimを分けた構成とします。
こういったユースケースごとのYamlサンプルはDb2マニュアルに豊富に提供されているので、フォームビューで基本構成を行った後、最後に変更したい部分のYamlサンプルをマニュアルから引用し、組み合わせて活用します。
Step4-1. フォームビューでの編集 (基本構成)
変更箇所:
- 名前:db2ucluster-1
- Account > Image Pull Secrets
- Step2-2で作成したsecret「ibm-registry」をドロップダウンリストから選択
- License > License
- Acceptにチェック
- Environment
- Database
- Name : sampledb
- 任意に指定可、デフォルトは「BLUDB」
- Setting
- Codeset : UTF-8
- Collation:IDENTITY
- Teritorry : JP
- Name : sampledb
- Database
- Instance
- Password : (db2inst1ユーザのパスワードを任意に指定)
※ ストレージ関連は一括でYamlを書き換えるため、ここでは編集しません
Step4-2. Yamlビューでの編集 (PV構成のカスタマイズ)
Yamlビューに切り替えます。
フォームビューでの入力内容が反映されていることがわかります。
ストレージ定義については、初期状態ではshareという名前の単一のストレージ定義が記述された状態です。(全て1つのPVにて保管)
この部分を削除し、Db2マニュアル(①、②)から、Storage定義部分をCopy&Pasteします。
①Deploying Db2 using the Db2uCluster custom resource
②Creating archive log storage for a new deployment of Db2 on OpenShift
storage:
- name: meta
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 10Gi
storageClassName: ocs-storagecluster-cephfs
type: create
- name: data
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
storageClassName: ocs-storagecluster-ceph-rbd
type: template
- name: backup
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Gi
storageClassName: ocs-storagecluster-cephfs
type: create
- name: activelogs
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
storageClassName: ocs-storagecluster-ceph-rbd
type: template
- name: tempts
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
storageClassName: ocs-storagecluster-ceph-rbd
type: template
- name: archivelogs
type: "template"
spec:
storageClassName: "ocs-storagecluster-ceph-rbd"
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
Yamlの編集が終わったら、このままデプロイに進みます。
【補足】
再度同じ構成でデプロイを行う場合は、デプロイ前にYamlビューにて、Yaml全文をテキストファイルに保管しておくと便利です。
Step4-3. デプロイ(作成)
「作成」ボタンを押して、デプロイを開始します。
Step4-4. デプロイの進行状況確認
デプロイ中、Webコンソール上、ステータスは「NotReady」、最終更新は「進行中」と表示されます。
デプロイ完了後は、ステータス「Ready」に変わり、最終更新は、デプロイ開始時刻のタイムスタンプが入ります。
コマンドラインでは、より詳細な状況が把握できます。
oc get pod(または oc get allなど)にて確認し、以下の状態になっていればDeploy完了です。
Pod名 | ステータス | 備考 |
---|---|---|
c-db2ucluster-1-db2u-0 | Running | Db2エンジンのPod * db2syscが稼働 |
c-db2ucluster-1-restore-morph-49ldd | Completed | Db2セットアップの最後の処理(Restore)を行うJobに属するPod |
root@myhost:~/db2u# date ; oc get all -o wide
2023年 2月 10日 金曜日 00:13:18 JST
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
pod/c-db2ucluster-1-db2u-0 1/1 Running 0 3h38m 172.17.9.104 10.244.64.4 <none> <none>
pod/c-db2ucluster-1-etcd-0 1/1 Running 0 3h40m 172.17.9.93 10.244.64.4 <none> <none>
pod/c-db2ucluster-1-instdb-7p5gt 0/1 Completed 0 3h40m 172.17.9.127 10.244.64.4 <none> <none>
pod/c-db2ucluster-1-ldap-6f4bf4c865-btdnm 1/1 Running 0 3h40m 172.17.12.83 10.244.64.6 <none> <none>
pod/c-db2ucluster-1-restore-morph-49ldd 0/1 Completed 0 3h36m 172.17.9.101 10.244.64.4 <none> <none>
pod/db2u-operator-manager-74c8746449-ncplx 1/1 Running 0 6d12h 172.17.43.154 10.244.64.5 <none> <none>
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S)
AGE SELECTOR
service/c-db2ucluster-1-db2u ClusterIP 172.21.117.217 <none> 50000/TCP,50001/TCP,25000/TCP,25001/TCP,25002/TCP,25003/TCP,25004/TCP,25005/TCP 3h38m app=db2ucluster-1,component=db2oltp,formation_id=db2ucluster-1,role=db,type=engine
service/c-db2ucluster-1-db2u-engn-svc NodePort 172.21.69.35 <none> 50000:30408/TCP,50001:32635/TCP 3h40m app=db2ucluster-1,component=db2oltp,formation_id=db2ucluster-1,role=db,type=engine
service/c-db2ucluster-1-db2u-head-engn-svc NodePort 172.21.167.203 <none> 50000:30899/TCP,50001:32537/TCP 3h40m app=db2ucluster-1,component=db2oltp,formation_id=db2ucluster-1,name=dashmpp-head-0,role=db,type=engine
service/c-db2ucluster-1-db2u-internal ClusterIP None <none> 50000/TCP,9443/TCP,50052/TCP 3h38m app=db2ucluster-1,component=db2oltp,formation_id=db2ucluster-1,role=db,type=engine
service/c-db2ucluster-1-etcd ClusterIP None <none> 2379/TCP,2380/TCP
3h40m app=db2ucluster-1,component=etcd,formation_id=db2ucluster-1
service/c-db2ucluster-1-ldap ClusterIP 172.21.33.121 <none> 50389/TCP
3h40m app=db2ucluster-1,formation_id=db2ucluster-1,role=ldap
NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES
SELECTOR
deployment.apps/c-db2ucluster-1-ldap 1/1 1 1 3h40m ldap icr.io/cpopen/db2u/db2u.auxiliary.auth@sha256:1da3c40ae5e5328215b86f425fd263ea11638d7e56956e293bcfa35c5384cfc5 app=db2ucluster-1,formation_id=db2ucluster-1,role=ldap
deployment.apps/db2u-operator-manager 1/1 1 1 6d12h manager icr.io/cpopen/db2u-operator@sha256:6305999c13c6fb507e7068b0c950d12c2ff0eed8a90a30c1ae2612158cb994a5 control-plane=db2u-operator-manager
NAME DESIRED CURRENT READY AGE CONTAINERS IMAGES
SELECTOR
repicaset.apps/c-db2ucluster-1-ldap-6f4bf4c865 1 1 1 3h40m ldap icr.io/cpopen/db2u/db2u.auxiliary.auth@sha256:1da3c40ae5e5328215b86f425fd263ea11638d7e56956e293bcfa35c5384cfc5 app=db2ucluster-1,formation_id=db2ucluster-1,pod-template-hash=6f4bf4c865,role=ldap
replicaset.apps/db2u-operator-manager-74c8746449 1 1 1 6d12h manager icr.io/cpopen/db2u-operator@sha256:6305999c13c6fb507e7068b0c950d12c2ff0eed8a90a30c1ae2612158cb994a5 control-plane=db2u-operator-manager,pod-template-hash=74c8746449
NAME READY AGE CONTAINERS IMAGES
statefulset.apps/c-db2ucluster-1-db2u 1/1 3h38m db2u icr.io/cpopen/db2u/db2u@sha256:2e6129927b61bc55998ba831b32ab54cc7306e915d3c752e1bedafee43082607
statefulset.apps/c-db2ucluster-1-etcd 1/1 3h40m etcd icr.io/cpopen/db2u/etcd@sha256:0a7a192ca4353203f26cf85ec55466b08c9fd0290370322e179769b596bdf55a
NAME COMPLETIONS DURATION AGE CONTAINERS IMAGES
SELECTOR
job.batch/c-db2ucluster-1-instdb 1/1 77s 3h40m instdb icr.io/cpopen/db2u/db2u.instdb@sha256:5a184681eef834f7b57a3aa951598e834b868347ae1df314435caf6205204755 controller-uid=e95ef428-708f-4b6b-b1bd-290002e8c7d1
job.batch/c-db2ucluster-1-restore-morph 1/1 11m 3h36m restore-morph icr.io/cpopen/db2u/db2u.tools@sha256:a824d2ed5e8e5afc4230e3e6e7070cc767b4b971524b16870cf3cf4226eea3ff controller-uid=8e602de3-6ee5-41ee-a54d-9f1a01bc6cf5
root@myhost:~/db2u#
おわりに
Db2 for Red Hat OpenShift and Kubernetes(Db2U)は、大きな視点でも小さな点でも進化を重ねていると感じます。
- OpenShiftだけでなく、EKSやAKSなど、Kubernetesもサポート対象に追加される
- ストレージの分散配置ができる(今回試したこと)
- Yamlに数行記述するだけで、性能を考慮した分散ストレージ構成が簡単に組める
- ストレージレイヤーと連携したバックアップ取得のサポート
- Webコンソール操作画面の改良
- これまで数分間隔で画面リセットが行われ入力内容が消えてしまっていたが、コンソールからのログアウトまで編集内容が維持されるようになった
- フォームビューにおける編集箇所は色が変わり、編集漏れがあっても気づきやすい(※Yamlビューに一度消えるとリセットされます)
など。
個人として一番うれしいのは、非機能要件きわまりないですが、4番です!
地味すぎる、でもこういった地味な改善も地味に大事で、小さな不便が見落とされず改善されているのはいいですね。
補足
(1) Db2エンジンDeploy用Yaml --- サンプルとして
今回、ストレージ分散構成でDb2Uデプロイした時のYamlはこちら。
apiVersion: db2u.databases.ibm.com/v1
kind: Db2uCluster
metadata:
name: db2ucluster-1
labels:
app.kubernetes.io/instance: db2u-operator
app.kubernetes.io/managed-by: Db2U-Team
app.kubernetes.io/name: db2u-operator
namespace: db2u-1
spec:
license:
accept: true
account:
imagePullSecrets:
- ibm-registry
privileged: true
environment:
database:
settings:
territory: JP
codeset: UTF-8
collation: IDENTITY
name: sampledb
instance:
password: cicdtest
dbType: db2oltp
version: s11.5.8.0
storage:
- name: meta
type: create
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 10Gi
storageClassName: ocs-storagecluster-cephfs
- name: data
type: template
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
storageClassName: ocs-storagecluster-ceph-rbd
- name: backup
type: create
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Gi
storageClassName: ocs-storagecluster-cephfs
- name: activelogs
type: template
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
storageClassName: ocs-storagecluster-ceph-rbd
- name: tempts
type: template
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
storageClassName: ocs-storagecluster-ceph-rbd
size: 1
(2) Deploy完了時のpsコマンド出力
[db2inst1@c-db2ucluster-1-db2u-0 - Db2U logs]$ ps auxwww
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
db2uadm 1 0.0 0.0 14856 3216 ? Ss Feb09 0:00 /bin/sh -x /etc/runit/entrypoint.sh
db2uadm 7 0.0 0.0 4412 944 ? S Feb09 0:01 runsvdir -P /etc/service log: ........................................................................................................................................................................................................................................................................................................+ exec ............................................................................................
db2uadm 8 0.0 0.0 4260 948 ? Ss Feb09 0:00 runsv sshd
db2uadm 9 0.0 0.0 4260 852 ? Ss Feb09 0:00 runsv db2u
db2uadm 10 0.0 0.0 4260 848 ? Ss Feb09 0:00 runsv db2uapi
db2uadm 11 0.0 0.0 4260 956 ? Ss Feb09 0:00 runsv wolverine
db2uadm 12 2.2 0.0 2232544 55180 ? Sl Feb09 31:34 db2u-apiserver --type control
db2uadm 13 0.0 0.0 25996 1440 ? S Feb09 0:00 /usr/bin/coreutils --coreutils-prog-shebang=sleep /usr/bin/sleep infinity
db2uadm 14 0.0 0.0 4404 860 ? S Feb09 0:00 svlogd -tt ./main
db2uadm 15 0.0 0.0 4404 936 ? S Feb09 0:03 svlogd -tt ./main
db2uadm 16 0.0 0.0 14856 3356 ? S Feb09 0:00 /bin/sh -e ./run
root 219 0.0 0.0 112976 7364 ? S Feb09 0:00 sudo -E /usr/sbin/sshd -D -p 50022 -e
root 225 0.0 0.0 76624 7660 ? S Feb09 0:03 /usr/sbin/sshd -D -p 50022 -e
db2uadm 460 0.0 0.0 4260 936 ? Ss Feb09 0:00 runsv sssd
db2uadm 462 0.0 0.0 14856 3180 ? S Feb09 0:00 /bin/sh -e ./run
root 463 0.0 0.0 123316 7348 ? S Feb09 0:00 sudo -E /usr/sbin/sssd -i --logger=files
root 464 0.0 0.0 174020 11468 ? S Feb09 0:00 /usr/sbin/sssd -i --logger=files
root 2291 0.0 0.0 181844 12944 ? S Feb09 0:00 /usr/libexec/sssd/sssd_be --domain implicit_files --uid 0 --gid 0 --logger=files
root 2292 0.0 0.0 206828 16168 ? S Feb09 0:01 /usr/libexec/sssd/sssd_be --domain local --uid 0 --gid 0 --logger=files
root 2293 0.0 0.0 200824 45100 ? S Feb09 0:08 /usr/libexec/sssd/sssd_nss --uid 0 --gid 0 --logger=files
root 2294 0.0 0.0 173268 10624 ? S Feb09 0:10 /usr/libexec/sssd/sssd_pam --uid 0 --gid 0 --logger=files
db2uadm 5399 0.0 0.0 15120 3864 pts/0 Ss 05:16 0:00 /bin/bash
root 5745 0.0 0.0 135372 6012 pts/0 S 05:17 0:00 su - db2inst1
db2inst1 5746 0.0 0.0 17132 4112 pts/0 S 05:17 0:00 -ksh
db2inst1 6657 0.0 0.0 193300 32788 pts/0 S 05:17 0:00 /mnt/blumeta0/home/db2inst1/sqllib/bin/db2bp 5746A500 5 A
root 21850 0.0 0.3 1304584 207400 ? Sl Feb09 0:00 db2wdog 0 [db2inst1]
db2inst1 21852 0.4 4.3 7511048 2856608 ? Sl Feb09 5:49 db2sysc 0
root 21866 0.0 0.2 1309176 163024 ? S Feb09 0:21 db2ckpwd 0
root 21867 0.0 0.2 1309176 163024 ? S Feb09 0:21 db2ckpwd 0
root 21868 0.0 0.2 1309176 163024 ? S Feb09 0:21 db2ckpwd 0
db2inst1 21870 0.0 0.1 682036 70780 ? S Feb09 0:00 db2vend (PD Vendor Process - 1) 0
db2inst1 21880 0.0 0.1 1647696 76652 ? Sl Feb09 0:25 db2acd 0 ,0,0,0,1,0,0,00000000,0,0,0000000000000000,0000000000000000,00000000,00000000,00000000,00000000,00000000,00000000,0000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000ccccc000,0000000000000000,0000000000000000,1,0,0,,,,,a89f30,14,1e014,2,0,1,0000000000041fc0,0x240000000,0x240000000,1600000,8023,2,40006
root 21959 0.0 0.0 135368 6096 ? S Feb09 0:00 su - db2uhausr -l --session-command=/db2uhausr/service/wolverine/run
db2uhau+ 22316 0.0 0.0 13388 3736 ? S Feb09 0:00 /bin/bash -x /db2uhausr/service/wolverine/run
db2uhau+ 22415 0.6 0.1 351224 118092 ? S Feb09 9:15 /usr/bin/python3 -m wolverine.ha.service --bootstrap --nodesfile /mnt/blumeta0/nodeslist --pid-file /db2u/tmp/ha.pid
db2fenc1 27129 0.0 0.0 1246668 58272 ? Sl Feb09 0:00 db2fmp ( ,1,0,0,0,0,0,00000000,0,0,0000000000000000,0000000000000000,00000000,00000000,00000000,00000000,00000000,00000000,0000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000ccccc000,0000000000000000,0000000000000000,1,0,0,,,,,a89f30,14,1e014,2,0,1,0000000000061fc0,0x240000000,0x240000000,1600000,8023,2,48034
db2inst1 337186 0.0 0.0 47620 3816 pts/0 R+ 10:58 0:00 ps auxwww
[db2inst1@c-db2ucluster-1-db2u-0 - Db2U logs]$
(3) 分散storage構成における、Db2 Pod内部のディレクトリ構成
PVC | ディレクトリ名 | 用途 |
---|---|---|
SHARED META | /mnt/blumeta0 | ・ Db2インスタンスホーム ・ DBディレクトリ ・ 自動ストレージパス ・ db2diag.log ・ ssh関連ファイル |
DATA | /mnt/bludata0 | ・ 外部表ファイル配置用ディレクトリ |
アクティブログ | /mnt/logs/active | |
アーカイブログ | /mnt/logs/archive | |
一時表スペース | /mnt/tempts | ・ TEMPSPACE1 ・ USERTEMPSPACE1 |
バックアップ | /mnt/backup |
PVC | ディレクトリ | ファイルシステム |
---|---|---|
SHARED META | /mnt/blumeta0 | 172.21.46.103:6789,172.21.215.255:6789,172.21.101.114:6789:/volumes/csi/csi-vol-e0726770-a86d-11ed-9726-da8f822b615d/702ffc43-c9ff-4fea-9dd7-aec5400698c5 |
DATA | /mnt/bludata0 | /dev/rbd0 |
アクティブログ | /mnt/logs/active | tmpfs |
アーカイブログ | /mnt/logs/archive | tmpfs |
一時表スペース | /mnt/tempts | /dev/rbd1 |
バックアップ | /mnt/backup | 172.21.46.103:6789,172.21.215.255:6789,172.21.101.114:6789:/volumes/csi/csi-vol-e0726336-a86d-11ed-9726-da8f822b615d/e91d21bf-42f2-438a-9e1a-58f48fae7e5e |
[db2inst1@c-db2ucluster-1-db2u-0 - Db2U logs]$ df -m
Filesystem
1M-blocks Used Available Use% Mounted on
overlay
99747 36805 57858 39% /
tmpfs
64 0 64 0% /dev
tmpfs
32201 0 32201 0% /sys/fs/cgroup
/dev/vda2
99747 36805 57858 39% /etc/hostname
/dev/vda2
99747 36805 57858 39% /etc/hosts
tmpfs
200 1 200 1% /run
172.21.46.103:6789,172.21.215.255:6789,172.21.101.114:6789:/volumes/csi/csi-vol-e0726770-a86d-11ed-9726-da8f822b615d/702ffc43-c9ff-4fea-9dd7-aec5400698c5 10240 728 9512 8% /mnt/blumeta0
/dev/rbd0
9980 549 9416 6% /mnt/bludata0
/dev/rbd1
9980 1 9964 1% /mnt/tempts
tmpfs
4096 1 4096 1% /secrets/db2instancepwd
tmpfs
1024 1 1024 1% /dev/shm
172.21.46.103:6789,172.21.215.255:6789,172.21.101.114:6789:/volumes/csi/csi-vol-e0726336-a86d-11ed-9726-da8f822b615d/e91d21bf-42f2-438a-9e1a-58f48fae7e5e 1024 0 1024 0% /mnt/backup
tmpfs
4096 1 4096 1% /db2u/license
/dev/rbd3
9980 236 9729 3% /mnt/logs/archive
tmpfs
4096 1 4096 1% /secrets/sshkeys/db2instusr
tmpfs
4096 1 4096 1% /secrets/sshkeys/db2uadm
tmpfs
4096 1 4096 1% /secrets/sshkeys/db2uhausr
tmpfs
4096 1 4096 1% /secrets/certs/db2u-api
/dev/rbd2
9980 255 9710 3% /mnt/logs/active
tmpfs
4096 1 4096 1% /secrets/certs/wv-rest
tmpfs
4096 1 4096 1% /run/secrets/kubernetes.io/serviceaccount
tmpfs
32201 0 32201 0% /proc/acpi
tmpfs
32201 0 32201 0% /proc/scsi
tmpfs
32201 0 32201 0% /sys/firmware
(4) Db2デプロイ方法(Webコンソール VS コマンドライン)
フォームビューではPVのサイズ等一部編集機能が提供されない設定項目があるため、Yamlビューも必要に応じて活用しつつ、Deployします。
それならいっそ、Yamlファイル+コマンドラインを利用してDeployすればという気持ちになりますが、Db2Uデプロイ用Yamlのひな型を入手するのは難しいです。
Db2マニュアルやDb2U Operator Readme にYamlサンプルは提供されていますが、バージョン(Fixレベル)によって使えずエラーでDeployが失敗することがあります。
その点、OpenShiftのWebコンソールでデプロイすると、ベースのYaml定義がバージョンに適合した内容で生成されるため、バージョン整合性の問題は確実に回避できます。