IBM Cloud SatelliteクラスターへのODF(OpenShift Data Foundation) 4.8のデプロイ - Satelliteストレージ・テンプレート'odf-local'使用

## はじめに
IBM Cloud Satellite環境のOpenShiftクラスターにODFをデプロイしました。その手順をご紹介します。

IBM Cloud Docs [Deploying OpenShift Data Foundation on Satellite clusters](https://cloud.ibm.com/docs/openshift?topic=openshift-deploy-odf-sat&locale=en) に次の注意書きがあります。
![odf_doc.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2164968/d621f6a6-f9bf-b6a3-1dcd-09cc80ad2347.png)

つまり、**Satelliteクラスターでは、OperatorHubからのODFインストールがサポートされていません。** そのため、ODFをインストールするには、次のいずれかの方法で行う必要があります。
- クラスターアドオンをデプロイする
- Satellite ストレージ・テンプレートを使用してデプロイする

今回ご紹介するのは、後者の **「Satellite ストレージ・テンプレートを使用してデプロイする」** の手順です。

こちらが公式ドキュメントです。
[OpenShift Data Foundation using local disks](https://cloud.ibm.com/docs/satellite?topic=satellite-config-storage-odf-local&interface=cli&locale=en)

> Satelliteクラスター用にODFをセットアップします。 Satellite ストレージ・テンプレートを使用して、ストレージ構成を作成できます。 クラスターにストレージ構成を割り当てると、選択したストレージプロバイダーのストレージ・ドライバーがクラスターにインストールされます。
現状、インターナルモードのみのサポートとなっています。


次の2つの手順を実行していきます。

1．[Creating an OpenShift Data Foundation configuration in the command line](https://cloud.ibm.com/docs/satellite?topic=satellite-config-storage-odf-local&interface=cli&locale=en#sat-storage-odf-local-cli) 
2．[Assigning your ODF storage configuration to a cluster](https://cloud.ibm.com/docs/satellite?topic=satellite-config-storage-odf-local&interface=cli&locale=en#assign-storage-odf-local)

## 環境

- Virtual server instance OS: Red Hat Enterprise Linux 7 
- OpenShift Container Platform 4.8

＊ODF用ワーカーノードにはODF用Data Volume(バージョン4.8以降は最低１つのRAWデバイスが必要)をattachしておく必要があります。詳細の要件は[こちら](https://cloud.ibm.com/docs/satellite?topic=satellite-config-storage-odf-local&interface=cli&locale=en#sat-storage-odf-local-prereq)をご参照ください。

構成概要図
![satellite_location.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2164968/99c6e4fd-d015-2219-3691-4522682d91e3.png)

## ODFストレージ構成の作成

１. IBM Cloud CLIにログインします。

２. Satelliteロケーションをリストし、`Managed from`列をメモします。
```
$ ibmcloud sat location ls
Retrieving locations...
OK
Name                          ID                     Status   Ready   Created        Hosts (used/total)   Managed From   
location-testxx-tokyo-vpc   ca6ocp8t0bgf9pneqgo0   normal   yes     5 days ago     10 / 10              tok 
```

３. ターゲットリージョンを`Managed from`列のリージョンに設定します。
```
$ ibmcloud target -r jp-tok
Switched to region jp-tok


                      
API endpoint:      https://cloud.ibm.com   
Region:            jp-tok   
User:              ******@xx.yyy.com   
Account:           *******   
Resource group:    No resource group targeted, use 'ibmcloud target -g RESOURCE_GROUP'   
CF API endpoint:      
Org:                  
Space: 
```
４. default以外のリソースグループを使用する場合は、次のように設定します。
```
$ ibmcloud target -g testxx
Targeted resource group testxx

                      
API endpoint:      https://cloud.ibm.com   
Region:            jp-tok   
User:              ******@xx.yyy.com   
Account:           *******   
Resource group:    testxx   
CF API endpoint:      
Org:                  
Space: 

```
５. 使用可能なテンプレートとバージョンをリストします。そして、使用したいテンプレートとバージョンをメモします。ストレージ・テンプレート・バージョンとクラスター・バージョンは一致している必要があります。
```
$ ibmcloud sat storage template ls
Listing Satellite storage templates...
OK
Name                                     Display Name                                   Versions   
aws-ebs-csi-driver                       AWS EBS CSI Driver                             0.9.14, 1.1.0, 1.5.1   
aws-efs-csi-driver                       AWS EFS CSI Driver                             1.2.2, 1.3.1, 1.3.7   
azuredisk-csi-driver                     Azure Disk CSI Driver                          1.4.0   
azurefile-csi-driver                     Azure File CSI Driver                          1.9.0   
gcp-compute-persistent-disk-csi-driver   GCP Compute Persistent Disk CSI Driver         1.0.4   
ibm-system-storage-block-csi-driver      IBM System Storage Block CSI driver            1.4.0, 1.5.0   
ibm-vpc-block-csi-driver                 [Beta] IBM VPC Block CSI driver                4.2.2, 4.3.0   
local-volume-block                       Local Storage Operator - Block                 4.10, 4.7, 4.8, 4.9   
local-volume-file                        Local Storage Operator - File                  4.10, 4.7, 4.8, 4.9   
netapp-ontap-nas                         NetApp Ontap-NAS Driver                        20.07, 21.04   
netapp-ontap-san                         NetApp Ontap-SAN Driver                        20.07, 21.04   
netapp-trident                           NetApp Trident Operator                        20.07, 21.04   
odf-local                                OpenShift Data Foundation for local devices    4.7, 4.8, 4.9   
odf-remote                               OpenShift Data Foundation for remote storage   4.7, 4.8, 4.9
```
６. 使用するクラスター・バージョンのテンプレートのパラメーターを確認します。
```
$ ibmcloud sat storage template get --name odf-local --version 4.8
Getting Satellite storage template details...
OK
                   
Name:           odf-local   
Display Name:   OpenShift Data Foundation for local devices   
Version:        4.8   

Configuration Parameters
Name                    Display Name                         Description                                                                                                                                                                                                                          Required   Type      Default    Mutable   
auto-discover-devices   Automatic storage volume discovery   Automatically discover and use the storage volumes on your worker nodes.                                                                                                                                                             false      boolean   false      false   
billing-type            Billing type                         The billing type you want to use. Choose from 'essentials' or 'advanced'.                                                                                                                                                            false      text      advanced   false   
cluster-encryption      Encryption enabled                   Set to 'true' if you want to enable cluster-wide encryption.                                                                                                                                                                         false      boolean   false      false   
ibm-cos-endpoint        IBM COS endpoint                     The IBM COS regional public endpoint.                                                                                                                                                                                                false      text      -          false   
ibm-cos-location        IBM COS location constraint          The location constraint that you want to use when creating your COS bucket. For example: 'us-east-standard'.                                                                                                                         false      text      -          false   
num-of-osd              Number of OSD volumes                The number OSD volumes that you want to provision. The total storage available to your apps is equal to the volume size (osd-size) multiplied by the number of volumes (num-of-osd). The default value is '1'.                       false      text      1          true   
odf-upgrade             Upgrade                              Set to 'true' if you want to upgrade the ODF version.                                                                                                                                                                                false      boolean   false      true   
osd-device-path         OSD volume IDs                       The local paths on your worker nodes to the volumes you want to use for the OSD pods.                                                                                                                                                false      text      -          true   
perform-cleanup         Perform Cleanup                      Set to 'true' if you want to perform complete cleanup of ODF on assignment deletion                                                                                                                                                  false      boolean   false      true   
worker-nodes            Worker node names                    The node names where you want to deploy ODF. Leave this field blank to deploy ODF across all worker nodes in your cluster. The minimum number of worker nodes is 3. You can find your worker node names by running 'oc get nodes'.   false      text      -          true   

Secret Parameters
Name                 Display Name        Description                            Required   Type   Default   Mutable   
iam-api-key          IAM API key         Your IAM API key.                      true       text   -         true   
ibm-cos-access-key   Access key ID       Your IBM COS HMAC access key ID .      false      text   -         true   
ibm-cos-secret-key   Secret access key   Your IBM COS HMAC secret access key.   false      text   -         true   

Pre-defined storage class parameters
Storage Class Name           Parameter Name                                          Parameter Value   
sat-ocs-cephrbd-gold         allowVolumeExpansion                                    true   
                             clusterID                                               openshift-storage   
                             csi.storage.k8s.io/controller-expand-secret-name        rook-csi-rbd-provisioner   
                             csi.storage.k8s.io/controller-expand-secret-namespace   openshift-storage   
                             csi.storage.k8s.io/fstype                               ext4   
                             csi.storage.k8s.io/node-stage-secret-name               rook-csi-rbd-node   
                             csi.storage.k8s.io/node-stage-secret-namespace          openshift-storage   
                             csi.storage.k8s.io/provisioner-secret-name              rook-csi-rbd-provisioner   
                             csi.storage.k8s.io/provisioner-secret-namespace         openshift-storage   
                             imageFeatures                                           layering   
                             imageFormat                                             2   
                             pool                                                    ocs-storagecluster-cephblockpool   
                             provisioner                                             openshift-storage.rbd.csi.ceph.com   
                             reclaimPolicy                                           Delete   
                             storageclass.kubernetes.io/is-default-class             false   
                             volumeBindingMode                                       Immediate   
                                                                                        
sat-ocs-cephfs-gold          allowVolumeExpansion                                    true   
                             clusterID                                               openshift-storage   
                             csi.storage.k8s.io/controller-expand-secret-name        rook-csi-cephfs-provisioner   
                             csi.storage.k8s.io/controller-expand-secret-namespace   openshift-storage   
                             csi.storage.k8s.io/node-stage-secret-name               rook-csi-cephfs-node   
                             csi.storage.k8s.io/node-stage-secret-namespace          openshift-storage   
                             csi.storage.k8s.io/provisioner-secret-name              rook-csi-cephfs-provisioner   
                             csi.storage.k8s.io/provisioner-secret-namespace         openshift-storage   
                             fsName                                                  ocs-storagecluster-cephfilesystem   
                             provisioner                                             openshift-storage.cephfs.csi.ceph.com   
                             reclaimPolicy                                           Delete   
                             storageclass.kubernetes.io/is-default-class             false   
                             volumeBindingMode                                       Immediate   
                                                                                        
sat-ocs-cephrgw-gold         objectStoreName                                         ocs-storagecluster-cephobjectstore   
                             objectStoreNamespace                                    openshift-storage   
                             provisioner                                             openshift-storage.ceph.rook.io/bucket   
                             reclaimPolicy                                           Delete   
                             region                                                  us-east-1   
                             storageclass.kubernetes.io/is-default-class             false   
                             volumeBindingMode                                       Immediate   
                                                                                        
sat-ocs-noobaa-gold          bucketclass                                             noobaa-default-bucket-class   
                             provisioner                                             openshift-storage.noobaa.io/obc   
                             reclaimPolicy                                           Delete   
                             storageclass.kubernetes.io/is-default-class             false   
                             volumeBindingMode                                       Immediate   
                                                                                        
sat-ocs-cephrbd-gold-metro   allowVolumeExpansion                                    true   
                             clusterID                                               openshift-storage   
                             csi.storage.k8s.io/controller-expand-secret-name        rook-csi-rbd-provisioner   
                             csi.storage.k8s.io/controller-expand-secret-namespace   openshift-storage   
                             csi.storage.k8s.io/fstype                               ext4   
                             csi.storage.k8s.io/node-stage-secret-name               rook-csi-rbd-node   
                             csi.storage.k8s.io/node-stage-secret-namespace          openshift-storage   
                             csi.storage.k8s.io/provisioner-secret-name              rook-csi-rbd-provisioner   
                             csi.storage.k8s.io/provisioner-secret-namespace         openshift-storage   
                             imageFeatures                                           layering   
                             imageFormat                                             2   
                             pool                                                    ocs-storagecluster-cephblockpool   
                             provisioner                                             openshift-storage.rbd.csi.ceph.com   
                             reclaimPolicy                                           Delete   
                             storageclass.kubernetes.io/is-default-class             false   
                             volumeBindingMode                                       WaitForFirstConsumer   
                                                                                        
sat-ocs-cephfs-gold-metro    allowVolumeExpansion                                    true   
                             clusterID                                               openshift-storage   
                             csi.storage.k8s.io/controller-expand-secret-name        rook-csi-cephfs-provisioner   
                             csi.storage.k8s.io/controller-expand-secret-namespace   openshift-storage   
                             csi.storage.k8s.io/node-stage-secret-name               rook-csi-cephfs-node   
                             csi.storage.k8s.io/node-stage-secret-namespace          openshift-storage   
                             csi.storage.k8s.io/provisioner-secret-name              rook-csi-cephfs-provisioner   
                             csi.storage.k8s.io/provisioner-secret-namespace         openshift-storage   
                             fsName                                                  ocs-storagecluster-cephfilesystem   
                             provisioner                                             openshift-storage.cephfs.csi.ceph.com   
                             reclaimPolicy                                           Delete   
                             storageclass.kubernetes.io/is-default-class             false   
                             volumeBindingMode                                       WaitForFirstConsumer   
```

７.  [Red Hat OpenShift container storage configuration parameters](https://cloud.ibm.com/docs/satellite?topic=satellite-config-storage-odf-local&interface=cli&locale=en#sat-storage-odf-local-params-cli) の該当するバージョンのパラメーターをレビューします。

８. 次のコマンド例を参考に、ストレージ構成を作成します。IBM Cloud IAM API Keyが必要です。
```
ibmcloud sat storage config create --name odf-local-auto --template-name odf-local --template-version 4.8 --location odf-sat-stage-location -p "ocs-cluster-name=ocscluster-auto" -p "auto-discover-devices=true" -p "iam-api-key=<api-key>"
```
実行例：
ここでは、`worker-nodes`パラメーターでODFをデプロイするノードを指定しています。
```
$ ibmcloud sat storage config create --name odf-local-auto --template-name odf-local --template-version 4.8 --location location-testxx-tokyo-vpc -p "ocs-cluster-name=ocscluster-auto" -p "auto-discover-devices=true" -p "worker-nodes=satellite-testxx-wd-8,satellite-testxx-wd-9,satellite-testxx-wd-10" -p "iam-api-key=<api-key>"
Creating Satellite storage configuration...
OK
Storage configuration 'odf-local-auto' was successfully created with ID '5f59b923-6212-4ff3-8f27-07eb293f771f’.
```

９. ストレージ構成が作成されたことを確認します。
```
$ ibmcloud sat storage config get --config odf-local-auto
Getting Satellite storage configuration details...
OK
                       
Name:               odf-local-auto   
ID:                 5f59b923-6212-4ff3-8f27-07eb293f771f   
Created:            2022-06-01T03:02:00.545Z   
Template Name:      odf-local   
Template Version:   4.8   
Location:           location-testxx-tokyo-vpc   

Configuration Parameters
Name                    Value   
auto-discover-devices   true   
billing-type            advanced   
cluster-encryption      false   
num-of-osd              1   
ocs-cluster-name        ocscluster-auto 
odf-upgrade             false   
perform-cleanup         false   
worker-nodes            satellite-testxx-wd-8,satellite-testxx-wd-9,satellite-testxx-wd-10   

Secret Parameters
Name          Value   
iam-api-key   *****   

Storage Class Parameters
Storage Class Name           Parameter Name                                          Parameter Value   
sat-ocs-cephrbd-gold         allowVolumeExpansion                                    true   
                             clusterID                                               openshift-storage   
                             csi.storage.k8s.io/controller-expand-secret-name        rook-csi-rbd-provisioner   
                             csi.storage.k8s.io/controller-expand-secret-namespace   openshift-storage   
                             csi.storage.k8s.io/fstype                               ext4   
                             csi.storage.k8s.io/node-stage-secret-name               rook-csi-rbd-node   
                             csi.storage.k8s.io/node-stage-secret-namespace          openshift-storage   
                             csi.storage.k8s.io/provisioner-secret-name              rook-csi-rbd-provisioner   
                             csi.storage.k8s.io/provisioner-secret-namespace         openshift-storage   
                             imageFeatures                                           layering   
                             imageFormat                                             2   
                             pool                                                    ocs-storagecluster-cephblockpool   
                             provisioner                                             openshift-storage.rbd.csi.ceph.com   
                             reclaimPolicy                                           Delete   
                             storageclass.kubernetes.io/is-default-class             false   
                             volumeBindingMode                                       Immediate   
                                                                                        
sat-ocs-cephfs-gold          allowVolumeExpansion                                    true   
                             clusterID                                               openshift-storage   
                             csi.storage.k8s.io/controller-expand-secret-name        rook-csi-cephfs-provisioner   
                             csi.storage.k8s.io/controller-expand-secret-namespace   openshift-storage   
                             csi.storage.k8s.io/node-stage-secret-name               rook-csi-cephfs-node   
                             csi.storage.k8s.io/node-stage-secret-namespace          openshift-storage   
                             csi.storage.k8s.io/provisioner-secret-name              rook-csi-cephfs-provisioner   
                             csi.storage.k8s.io/provisioner-secret-namespace         openshift-storage
                             fsName                                                  ocs-storagecluster-cephfilesystem    
                             provisioner                                             openshift-storage.cephfs.csi.ceph.com   
                             reclaimPolicy                                           Delete   
                             storageclass.kubernetes.io/is-default-class             false   
                             volumeBindingMode                                       Immediate   
                                                                                        
sat-ocs-cephrgw-gold         objectStoreName                                         ocs-storagecluster-cephobjectstore   
                             objectStoreNamespace                                    openshift-storage   
                             provisioner                                             openshift-storage.ceph.rook.io/bucket   
                             reclaimPolicy                                           Delete   
                             region                                                  us-east-1   
                             storageclass.kubernetes.io/is-default-class             false   
                             volumeBindingMode                                       Immediate   
                                                                                        
sat-ocs-noobaa-gold          bucketclass                                             noobaa-default-bucket-class   
                             provisioner                                             openshift-storage.noobaa.io/obc   
                             reclaimPolicy                                           Delete   
                             storageclass.kubernetes.io/is-default-class             false   
                             volumeBindingMode                                       Immediate   
                                                                                        
sat-ocs-cephrbd-gold-metro   allowVolumeExpansion                                    true   
                             clusterID                                               openshift-storage   
                             csi.storage.k8s.io/controller-expand-secret-name        rook-csi-rbd-provisioner   
                             csi.storage.k8s.io/controller-expand-secret-namespace   openshift-storage   
                             csi.storage.k8s.io/fstype                               ext4   
                             csi.storage.k8s.io/node-stage-secret-name               rook-csi-rbd-node   
                             csi.storage.k8s.io/node-stage-secret-namespace          openshift-storage   
                             csi.storage.k8s.io/provisioner-secret-name              rook-csi-rbd-provisioner   
                             csi.storage.k8s.io/provisioner-secret-namespace         openshift-storage   
                             imageFeatures                                           layering   
                             imageFormat                                             2   
                             pool                                                    ocs-storagecluster-cephblockpool   
                             provisioner                                             openshift-storage.rbd.csi.ceph.com   
                             reclaimPolicy                                           Delete
                             storageclass.kubernetes.io/is-default-class             false   
                             volumeBindingMode                                       WaitForFirstConsumer 

sat-ocs-cephfs-gold-metro    allowVolumeExpansion                                    true   
                             clusterID                                               openshift-storage   
                             csi.storage.k8s.io/controller-expand-secret-name        rook-csi-cephfs-provisioner   
                             csi.storage.k8s.io/controller-expand-secret-namespace   openshift-storage   
                             csi.storage.k8s.io/node-stage-secret-name               rook-csi-cephfs-node   
                             csi.storage.k8s.io/node-stage-secret-namespace          openshift-storage   
                             csi.storage.k8s.io/provisioner-secret-name              rook-csi-cephfs-provisioner   
                             csi.storage.k8s.io/provisioner-secret-namespace         openshift-storage   
                             fsName                                                  ocs-storagecluster-cephfilesystem   
                             provisioner                                             openshift-storage.cephfs.csi.ceph.com   
                             reclaimPolicy                                           Delete   
                             storageclass.kubernetes.io/is-default-class             false   
                             volumeBindingMode                                       WaitForFirstConsumer
```

## ODFストレージ構成のクラスターへの割り当て

１. 構成済みのSatellite ストレージ構成をリストして、クラスターに割り当てるストレージ構成をメモします。
```
$ ibmcloud sat storage config ls
Listing Satellite storage configurations...
OK
Name                           ID                                     Created                    Template Name       Template Version   Location   
odf-local-auto                 5f59b923-6212-4ff3-8f27-07eb293f771f   2022-06-01T03:02:00.545Z   odf-local           4.8                location-testxx-tokyo-vpc   
```

２. ストレージを割り当てるクラスターまたはクラスターグループのIDを取得します。 クラスターがSatellite 構成に登録されていることを確認する、またはグループを作成するには、[Setting up clusters to use with Satellite Config](https://cloud.ibm.com/docs/satellite?topic=satellite-setup-clusters-satconfig)を参照してください。

今回は、クラスターに割り当てるので、クラスターをリストします。
```
$ ibmcloud oc cluster ls --provider satellite
OK
Name                               ID                     State     Created        Workers   Location                      Version                 Resource Group Name   
ocp-satellite-testxx-tokyo-vpc   ca887i2t0u9pshag043g   normal    4 days ago     7         location-testxx-tokyo-vpc   4.8.36_1554_openshift   testxx   
```

３. 手順２で取得したクラスターまたはグループにストレージを割り当てます。`<group>`をクラスターグループのIDに置き換えるか、`<cluster>`をクラスターのIDに置き換えます。 `<config>`をストレージ構成の名前に置き換え、`<name>`をストレージ割り当ての名前に置き換えます。 詳細については、[「ibmcloud sat storage assignment create」コマンド](https://cloud.ibm.com/docs/satellite?topic=satellite-satellite-cli-reference#cli-storage-assign-create)を参照してください。

今回は、クラスターに割り当てます。
```
$ ibmcloud sat storage assignment create --cluster ca887i2t0u9pshag043g --config odf-local-auto --name odf-local-auto-assignment
Creating assignment...
OK
Assignment odf-local-auto-assignment was successfully created with ID 028d4eee-32a2-47f7-a82a-28f083642988.
```

４. 割り当てが作成されたことを確認します。
```
$ ibmcloud sat storage assignment ls --cluster ca887i2t0u9pshag043g
OK
Name                        ID                                     Configuration    Version              Assignment Type       Created   
odf-local-auto-assignment   028d4eee-32a2-47f7-a82a-28f083642988   odf-local-auto   odf-local-auto_v01   ChannelSubscription   2022-06-01T04:29:25.846Z
```

*ここからはIBM Cloudシェルではなく、OCPクラスターにログインして作業します。*

５. ストレージ構成のリソースがデプロイされたことを確認します。完了まで10分程度待つ場合があります。

a. デプロイしたstorageclusterを確認し、`PHASE`が`Ready`であることを確認します。
```
# oc get storagecluster -n openshift-storage
NAME                 AGE   PHASE   EXTERNAL   CREATED AT             VERSION
ocs-storagecluster   51m   Ready              2022-06-01T04:34:43Z   4.8.0
```

b. openshift-storage namespace のpodを取得し、`STATUS`が`Running`であることを確認します。

```
# oc get pods -n openshift-storage
NAME                                                              READY   STATUS      RESTARTS   AGE
csi-cephfsplugin-5h279                                            3/3     Running     0          51m
csi-cephfsplugin-5nqhq                                            3/3     Running     0          51m
csi-cephfsplugin-6vfrn                                            3/3     Running     0          51m
csi-cephfsplugin-8ntts                                            3/3     Running     0          51m
csi-cephfsplugin-hq294                                            3/3     Running     0          51m
csi-cephfsplugin-jqn84                                            3/3     Running     0          51m
csi-cephfsplugin-provisioner-7776f679d8-ctm22                     6/6     Running     0          51m
csi-cephfsplugin-provisioner-7776f679d8-r8dpt                     6/6     Running     0          51m
csi-cephfsplugin-x44nw                                            3/3     Running     0          51m
csi-rbdplugin-5sqbf                                               3/3     Running     0          51m
csi-rbdplugin-dw7b9                                               3/3     Running     0          51m
csi-rbdplugin-f7k47                                               3/3     Running     0          51m
csi-rbdplugin-fv8m7                                               3/3     Running     0          51m
csi-rbdplugin-kjjvz                                               3/3     Running     0          51m
csi-rbdplugin-p2rlx                                               3/3     Running     0          51m
csi-rbdplugin-provisioner-5c7889687-g5k66                         6/6     Running     0          51m
csi-rbdplugin-provisioner-5c7889687-p8qrs                         6/6     Running     0          51m
csi-rbdplugin-x5mjs                                               3/3     Running     0          51m
noobaa-core-0                                                     1/1     Running     0          46m
noobaa-db-pg-0                                                    1/1     Running     0          46m
noobaa-endpoint-77fc4f7c46-57mjp                                  1/1     Running     0          43m
noobaa-operator-5889454d56-4f46n                                  1/1     Running     0          52m
ocs-metrics-exporter-f9c58c549-6q6qx                              1/1     Running     0          52m
ocs-operator-7687d7854f-vg5nl                                     1/1     Running     0          52m
rook-ceph-crashcollector-satellite-testxx-wd-10-77df64dbqcrbx     1/1     Running     0          45m
rook-ceph-crashcollector-satellite-testxx-wd-8-7b64fcd57clv8z     1/1     Running     0          45m
rook-ceph-crashcollector-satellite-testxx-wd-9-698f8f9bdzqv9f     1/1     Running     0          45m
rook-ceph-mds-ocs-storagecluster-cephfilesystem-a-57c5644dzjg8v   2/2     Running     0          45m
rook-ceph-mds-ocs-storagecluster-cephfilesystem-b-5dbf997488z9j   2/2     Running     0          45m
rook-ceph-mgr-a-86cb89b7f4-47g4k                                  2/2     Running     0          46m
rook-ceph-mon-a-8499fc9b64-s6xlt                                  2/2     Running     0          48m
rook-ceph-mon-b-764c96bbdb-px4kr                                  2/2     Running     0          47m
rook-ceph-mon-c-dd987c7cd-66cf4                                   2/2     Running     0          46m
rook-ceph-operator-55fcb7b9fd-dzmd4                               1/1     Running     0          52m
rook-ceph-osd-0-9bf8f88cd-v6n6q                                   2/2     Running     0          46m
rook-ceph-osd-1-6fbcf8c64d-ldz6s                                  2/2     Running     0          46m
rook-ceph-osd-2-5798f5dc5-phzds                                   2/2     Running     0          46m
rook-ceph-osd-prepare-ocs-deviceset-0-data-0t775g-5dvkl           0/1     Completed   0          46m
rook-ceph-osd-prepare-ocs-deviceset-1-data-0jw2gl-8ff8w           0/1     Completed   0          46m
rook-ceph-osd-prepare-ocs-deviceset-2-data-0422s4-x7dfj           0/1     Completed   0          46m
rook-ceph-rgw-ocs-storagecluster-cephobjectstore-a-5bb7cb64ts77   2/2     Running     0          45m
```

c. ODFストレージクラスをリストします。

```
# oc get sc
NAME                          PROVISIONER                             RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
localblock                    kubernetes.io/no-provisioner            Delete          WaitForFirstConsumer   false                  52m
ocs-storagecluster-ceph-rbd   openshift-storage.rbd.csi.ceph.com      Delete          Immediate              true                   52m
ocs-storagecluster-ceph-rgw   openshift-storage.ceph.rook.io/bucket   Delete          Immediate              false                  52m
ocs-storagecluster-cephfs     openshift-storage.cephfs.csi.ceph.com   Delete          Immediate              true                   52m
openshift-storage.noobaa.io   openshift-storage.noobaa.io/obc         Delete          Immediate              false                  43m
sat-ocs-cephfs-gold           openshift-storage.cephfs.csi.ceph.com   Delete          Immediate              true                   54m
sat-ocs-cephfs-gold-metro     openshift-storage.cephfs.csi.ceph.com   Delete          WaitForFirstConsumer   true                   54m
sat-ocs-cephrbd-gold          openshift-storage.rbd.csi.ceph.com      Delete          Immediate              true                   54m
sat-ocs-cephrbd-gold-metro    openshift-storage.rbd.csi.ceph.com      Delete          WaitForFirstConsumer   true                   54m
sat-ocs-cephrgw-gold          openshift-storage.ceph.rook.io/bucket   Delete          Immediate              false                  54m
sat-ocs-noobaa-gold           openshift-storage.noobaa.io/obc         Delete          Immediate              false                  54m
```

d. persistent volumeをリストし、必要なものが作成されたことを確認します。

```
# oc get pv
NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                                           STORAGECLASS                  REASON   AGE
local-pv-44793425                          1200Gi     RWO            Delete           Bound    openshift-storage/ocs-deviceset-2-data-0422s4   localblock                             86m
local-pv-5b1bf187                          1200Gi     RWO            Delete           Bound    openshift-storage/ocs-deviceset-0-data-0t775g   localblock                             86m
local-pv-70fd792f                          1200Gi     RWO            Delete           Bound    openshift-storage/ocs-deviceset-1-data-0jw2gl   localblock                             86m
pvc-4a5d36fb-0be8-4fda-98a4-0594b71157af   50Gi       RWO            Delete           Bound    openshift-storage/db-noobaa-db-pg-0             ocs-storagecluster-ceph-rbd            81m
```

:::note info
2022/7現在、公式ドキュメントでは、このステップでMONとOSDボリュームが作成されたことを確認することになっていますが、ODF 4.8以降のodf-localストレージ・テンプレートではMONボリュームは作成されなくなったことをIBM Cloudサポートに確認済みです。ドキュメントは更新予定とのことです。
:::