IBM Cloud Docs
ローカル・ストレージ・オペレーター - ブロック

ローカル・ストレージ・オペレーター - ブロック

IBM Cloud Satellite® クラスタ用にローカル・ボリュームを使用して永続ストレージをセットアップする。 Satellite ストレージ・テンプレートを使用して、ストレージ構成を作成できます。 ストレージ構成をクラスターに割り当てると、選択したストレージ・プロバイダーのストレージ・ドライバーがクラスターにインストールされます。

ローカル・ブロックのストレージ構成を作成するときには、クラスターで永続ボリューム (PV) として使用可能にするローカル・ブロック・ストレージのデバイス・パスを指定します。 ストレージ構成をクラスターに割り当てると、ローカル・ストレージ・オペレーターが Satellite からデプロイされ、このオペレーターが、構成に指定されているローカル・ディスクをマウントします。 このオペレーターはさらに、ローカル永続ボリュームを作成し、sat-local-block-gold ストレージ・クラスを作成します。このストレージ・クラスを使用して、永続ボリューム請求 (PVC) を作成できます。 その後、Kubernetes ワークロードでその PVC を参照できます。

Satellite ストレージ・サービスのスコープをリソース・グループに設定することはできません。 ただし、ロケーションやクラスターなどの他のリソースのスコープをリソース・グループに設定する場合は、アカウント内のすべてのリソースに対して Satellite リーダーとリンク管理者の役割を追加する必要があります。

ローカル・ブロック・ストレージを使用するための前提条件

ローカル・ブロックのストレージ構成を作成する前に、クラスター内のワーカー・ノードのうち、必要とする空きディスクが搭載されているものを確認する必要があります。 そして、それらのワーカー・ノードだけにローカル・ストレージ・ドライバーをインストールするために、それらのワーカー・ノードにラベルを付けます。

  1. Satellite ロケーションを作成します

  2. ストレージ構成で使用するクラスター内のワーカー・ノードには、Satellite に必要なディスクのほかに、使用可能なローカル・ディスクが 1 台以上ある必要があります。 この追加のディスクは未フォーマットでなければなりません。

  3. ワーカー・ノードのデバイスの詳細を取得します。

  4. 使用可能なディスクがあるワーカー・ノードのうち、構成で使用するワーカー・ノードにラベルを付けます。 ローカル・ストレージ・ドライバーは、ラベルの付いたワーカー・ノードだけにインストールされます。

ローカル・ブロックのストレージ構成に使用するデバイスの詳細を取得する

ローカル・ブロックのストレージ構成を作成するときには、使用するデバイスを指定する必要があります。 以下の手順で取得したデバイス・パスを、構成の作成時にパラメーターとして指定します。

  1. クラスターにログインし、使用可能なワーカー・ノードのリストを取得します。 構成で使用するワーカー・ノードをメモします。

    oc get nodes
    
  2. ローカル・ストレージ構成で使用する各ワーカー・ノードにログインします。

    oc debug node/<node-name>
    
  3. ワーカー・ノードにデバッグ・ポッドがデプロイされている場合は、以下のコマンドを実行してワーカー・ノードの使用可能なディスクをリストします。

    1. ホスト・バイナリーを許可します。

      chroot /host
      
    2. デバイスをリストします。

      lsblk
      
    3. デバイスの詳細を取得します。 使用するデバイスが、未マウントかつ未フォーマットであることを確認します。

      fdisk -l
      
  4. ワーカー・ノードの使用可能なブロック・ストレージ・ディスクをリストします。 ローカル・ストレージ構成には、未マウントのディスクを使用する必要があります。 以下の lsblk コマンドの出力例では、nvme2n1 ディスクが未マウントであり、パーティションも作成されていません。

    NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
    nvme0n1     259:3    0   100G  0 disk
    |-nvme0n1p1 259:4    0     1M  0 part
    `-nvme0n1p2 259:5    0   100G  0 part /
    nvme1n1     259:0    0    20G  0 disk
    nvme2n1     259:1    0    20G  0 disk
    nvme3n1     259:2    0 139.7G  0 disk /var/data
    
  5. ローカル・ブロックのストレージ構成で使用するワーカー・ノードごとに上記の手順を繰り返します。

ローカル・ブロック・ストレージを使用する場合のワーカー・ノードのラベル付け

構成で使用するディスクのデバイス・パスを取得したら、それらのディスクがあるワーカー・ノードにラベルを付けます。

  1. ワーカー・ノードの IP アドレスを取得します。

    oc get nodes
    
  2. 先ほど取得したワーカー・ノードにラベルを付けます。 ローカル・ストレージ・ドライバーは、このラベルの付いたワーカー・ノードにデプロイされます。 このコマンドの例の storage=local-block ラベルを使用することも、key=value 形式で独自のラベルを作成することもできます。

    oc label nodes <worker-IP> <worker-IP> <worker-IP> "storage=local-block"
    

    出力例

    node/<worker-IP> labeled
    node/<worker-IP> labeled
    node/<worker-IP> labeled
    
  3. 使用するワーカー・ノードにラベルが追加されていることを確認します。 以下のコマンドを実行してワーカー・ノードのラベルを表示し、前の手順で追加したラベルに絞り込みます。

    oc get nodes --show-labels | grep --color=always storage=local-block
    

コンソールでの構成の作成と割り当て

  1. パラメーターのリファレンスを確認します

  2. Locationsコンソールから、ストレージ構成を作成する場所を選択します。

  3. ストレージ > ストレージ構成の作成を選択します。

  4. 構成の名前を入力します。

  5. ストレージタイプを選択します。

  6. バージョンを選択し、「 次へ 」をクリックします

  7. 選択した 「ストレージ・タイプ」 がカスタム・パラメーターを受け入れる場合は、 「パラメーター」 タブでそれらのパラメーターを入力します。

  8. 選択した ストレージ・タイプ にシークレットが必要な場合は、 「シークレット (Secrets)」 タブに入力します。

  9. ストレージ・クラスタブで、構成によってデプロイされたストレージ・クラスを確認するか、カスタム・ストレージ・クラスを作成します。

  10. サービスへの割り当てタブで、構成の割り当て先となるサービスを選択します。

  11. 完了をクリックして、ストレージ構成を割り当てます。

CLI での構成の作成

  1. 使用するテンプレート・バージョンの パラメーター・リファレンス を確認します。

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

    ibmcloud login
    
  3. Satellite ロケーションをリストして、Managed from 列をメモします。

    ibmcloud sat location ls
    
  4. Satellite ロケーションの Managed from リージョンをターゲットにします。 例えば、wdc の場合は、us-east をターゲットにします。 詳しくは、Satellite リージョンを参照してください。

    ibmcloud target -r us-east
    
  5. default 以外のリソース・グループを使用する場合は、そのリソース・グループをターゲットにします。

    ibmcloud target -g <resource-group>
    
  6. 使用するテンプレート・バージョンについて、以下のいずれかのコマンド例をコピーします。 コマンドについて詳しくは、 コマンド・リファレンスibmcloud sat storage config create を参照してください。

    バージョン 4.9 構成を作成するためのコマンド例。

    ibmcloud sat storage config create --location LOCATION --name NAME --template-name local-volume-block --template-version 4.9 --param "auto-discover-devices=AUTO-DISCOVER-DEVICES"  --param "label-key=LABEL-KEY"  --param "label-value=LABEL-VALUE"  --param "devicepath=DEVICEPATH"
    

    バージョン 4.10 構成を作成するコマンドの例。

    ibmcloud sat storage config create --location LOCATION --name NAME --template-name local-volume-block --template-version 4.10 --param "auto-discover-devices=AUTO-DISCOVER-DEVICES"  --param "label-key=LABEL-KEY"  --param "label-value=LABEL-VALUE"  --param "devicepath=DEVICEPATH"
    

    バージョン 4.11 構成を作成するコマンドの例。

    ibmcloud sat storage config create --location LOCATION --name NAME --template-name local-volume-block --template-version 4.11 --param "auto-discover-devices=AUTO-DISCOVER-DEVICES"  --param "label-key=LABEL-KEY"  --param "label-value=LABEL-VALUE"  --param "devicepath=DEVICEPATH"
    

    バージョン 4.12 構成を作成するコマンドの例。

    ibmcloud sat storage config create --location LOCATION --name NAME --template-name local-volume-block --template-version 4.12 --param "auto-discover-devices=AUTO-DISCOVER-DEVICES"  --param "label-key=LABEL-KEY"  --param "label-value=LABEL-VALUE"  --param "devicepath=DEVICEPATH"
    

    バージョン 4.13 構成を作成するコマンドの例。

    ibmcloud sat storage config create --location LOCATION --name NAME --template-name local-volume-block --template-version 4.13 --param "auto-discover-devices=AUTO-DISCOVER-DEVICES"  --param "label-key=LABEL-KEY"  --param "label-value=LABEL-VALUE"  --param "devicepath=DEVICEPATH"
    
  7. 使用する設定に基づいて、コマンドをカスタマイズします。

  8. コマンドを実行してコンフィギュレーションを作成する。

  9. コンフィギュレーションが作成されたことを確認する。

    ibmcloud sat storage config get --config CONFIG
    

API での構成の作成

  1. API キーを生成してから、リフレッシュ・トークンを要求します。 詳しくは、API キーを使用した IBM Cloud IAM トークンの生成を参照してください。

  2. 使用するテンプレート・バージョンの パラメーター・リファレンス を確認します。

  3. 以下のいずれかの要求例をコピーし、使用する変数を置き換えます。

    バージョン 4.9 構成を作成する要求の例。

    curl -X POST "https://containers.cloud.ibm.com/global/v2/storage/satellite/createStorageConfigurationByController" -H "accept: application/json" -H "Authorization: TOKEN" -H "Content-Type: application/json" -d "{ \"config-name\": \"string\", \"controller\": \"string\", \"storage-class-parameters\": [ { \"additionalProp1\": \"string\", \"additionalProp2\": \"string\", \"additionalProp3\": \"string\" } ], \"storage-template-name\": \"local-volume-block\", \"storage-template-version\": \"4.9\", \"update-assignments\": true, \"user-config-parameters\": { \"entry.name\": \"AUTO-DISCOVER-DEVICES\", { \"entry.name\": \"LABEL-KEY\", { \"entry.name\": \"LABEL-VALUE\", { \"entry.name\": \"DEVICEPATH\",\"user-secret-parameters\": }
    

    バージョン 4.10 構成を作成する要求の例。

    curl -X POST "https://containers.cloud.ibm.com/global/v2/storage/satellite/createStorageConfigurationByController" -H "accept: application/json" -H "Authorization: TOKEN" -H "Content-Type: application/json" -d "{ \"config-name\": \"string\", \"controller\": \"string\", \"storage-class-parameters\": [ { \"additionalProp1\": \"string\", \"additionalProp2\": \"string\", \"additionalProp3\": \"string\" } ], \"storage-template-name\": \"local-volume-block\", \"storage-template-version\": \"4.10\", \"update-assignments\": true, \"user-config-parameters\": { \"entry.name\": \"AUTO-DISCOVER-DEVICES\", { \"entry.name\": \"LABEL-KEY\", { \"entry.name\": \"LABEL-VALUE\", { \"entry.name\": \"DEVICEPATH\",\"user-secret-parameters\": }
    

    バージョン 4.11 構成を作成する要求の例。

    curl -X POST "https://containers.cloud.ibm.com/global/v2/storage/satellite/createStorageConfigurationByController" -H "accept: application/json" -H "Authorization: TOKEN" -H "Content-Type: application/json" -d "{ \"config-name\": \"string\", \"controller\": \"string\", \"storage-class-parameters\": [ { \"additionalProp1\": \"string\", \"additionalProp2\": \"string\", \"additionalProp3\": \"string\" } ], \"storage-template-name\": \"local-volume-block\", \"storage-template-version\": \"4.11\", \"update-assignments\": true, \"user-config-parameters\": { \"entry.name\": \"AUTO-DISCOVER-DEVICES\", { \"entry.name\": \"LABEL-KEY\", { \"entry.name\": \"LABEL-VALUE\", { \"entry.name\": \"DEVICEPATH\",\"user-secret-parameters\": }
    

    バージョン 4.12 構成を作成する要求の例。

    curl -X POST "https://containers.cloud.ibm.com/global/v2/storage/satellite/createStorageConfigurationByController" -H "accept: application/json" -H "Authorization: TOKEN" -H "Content-Type: application/json" -d "{ \"config-name\": \"string\", \"controller\": \"string\", \"storage-class-parameters\": [ { \"additionalProp1\": \"string\", \"additionalProp2\": \"string\", \"additionalProp3\": \"string\" } ], \"storage-template-name\": \"local-volume-block\", \"storage-template-version\": \"4.12\", \"update-assignments\": true, \"user-config-parameters\": { \"entry.name\": \"AUTO-DISCOVER-DEVICES\", { \"entry.name\": \"LABEL-KEY\", { \"entry.name\": \"LABEL-VALUE\", { \"entry.name\": \"DEVICEPATH\",\"user-secret-parameters\": }
    

    バージョン 4.13 構成を作成する要求の例。

    curl -X POST "https://containers.cloud.ibm.com/global/v2/storage/satellite/createStorageConfigurationByController" -H "accept: application/json" -H "Authorization: TOKEN" -H "Content-Type: application/json" -d "{ \"config-name\": \"string\", \"controller\": \"string\", \"storage-class-parameters\": [ { \"additionalProp1\": \"string\", \"additionalProp2\": \"string\", \"additionalProp3\": \"string\" } ], \"storage-template-name\": \"local-volume-block\", \"storage-template-version\": \"4.13\", \"update-assignments\": true, \"user-config-parameters\": { \"entry.name\": \"AUTO-DISCOVER-DEVICES\", { \"entry.name\": \"LABEL-KEY\", { \"entry.name\": \"LABEL-VALUE\", { \"entry.name\": \"DEVICEPATH\",\"user-secret-parameters\": }
    

CLIで課題を作成する

  1. ストレージ構成をリストアップし、クラスタに割り当てるストレージ構成をメモしておきます。

    ibmcloud sat storage config ls
    
  2. ストレージを割り当てるクラスタ、クラスタグループ、またはサービスのIDを取得します。

    クラスターが Satellite Config に登録されていることを確認したり、グループを作成したりするには、Satellite Config で使用するためのクラスターのセットアップを参照してください。

    クラスター・グループをリストするコマンドの例。

    ibmcloud sat group ls
    

    クラスターをリストするコマンドの例。

    ibmcloud oc cluster ls --provider satellite
    

    Satellite サービスをリストするコマンドの例。

    ibmcloud sat service ls --location <location>
    
  3. 以前に取得したクラスター、グループ、またはサービスにストレージ構成を割り当てます。 詳しくは、ibmcloud sat storage assignment create コマンドを参照してください。

    クラスター・グループに構成を割り当てるコマンドの例。

    ibmcloud sat storage assignment create --group GROUP --config CONFIG --name NAME
    

    クラスターに構成を割り当てるコマンドの例。

    ibmcloud sat storage assignment create --cluster CLUSTER --config CONFIG --name NAME
    

    サービス・クラスターに構成を割り当てるコマンドの例。

    ibmcloud sat storage assignment create --service-cluster-id CLUSTER --config CONFIG --name NAME
    
  4. 割り当てが作成されたことを確認します。

    ibmcloud sat storage assignment ls (--cluster CLUSTER | --config CONFIG | --location LOCATION | --service-cluster-id CLUSTER)
    

API でのストレージ割り当ての作成

  1. 以下のいずれかの要求例をコピーします。

    構成をクラスターに割り当てる要求の例。

    curl -X POST "https://containers.cloud.ibm.com/global/v2/storage/satellite/createAssignmentByCluster" -H "accept: application/json" -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" -d "{ \"channelName\": \"CONFIGURATION-NAME\", \"cluster\": \"CLUSTER-ID\", \"controller\": \"LOCATION-ID\", \"name\": \"ASSIGNMENT-NAME\"}"
    

    クラスター・グループに構成を割り当てる要求の例。

    curl -X POST "https://containers.cloud.ibm.com/global/v2/storage/satellite/createAssignment" -H "accept: application/json" -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" -d "{ \"channelName\": \"CONFIGURATION-NAME\", \"cluster\": \"string\", \"groups\": [ \"CLUSTER-GROUP\" ], \"name\": \"ASSIGNMENT-NAME\"}"
    
  2. 変数を自分の詳細に置き換え、要求を実行します。

  3. 割り当てをリストして、割り当てが作成されたことを確認します。

    curl -X GET "https://containers.cloud.ibm.com/global/v2/storage/satellite/getAssignments" -H "accept: application/json" -H "Authorization: Bearer TOKEN"
    

CLI での割り当ての手動アップグレード

最新のストレージ・テンプレート・リビジョンを使用するように割り当てをアップグレードします。

  1. Satellite ストレージ割り当てをリストし、アップグレードする Satellite 割り当てを書き留めます。

    ibmcloud sat storage assignment ls
    
  2. Satellite ストレージ・テンプレートをリストして、使用可能な最新バージョンを確認します。

    ibmcloud sat storage template ls
    
  3. Satellite 割り当てをアップグレードします。

    割り当てをアップグレードするコマンドの例。

    ibmcloud sat storage assignment upgrade --assignment ASSIGNMENT
    

CLI での構成および割り当ての自動パッチ更新の有効化

sat storage assignment autopatch enable CLI を使用して、割り当ての自動パッチ更新を有効にすることができます。 自動パッチ更新を有効にすると、最新のストレージ・テンプレート・リビジョン (パッチ) が自動的に適用されます。 ただし、メジャー更新は手動で適用する必要があります。

  1. Satellite ストレージ構成をリストします。 コンフィギュレーションIDをメモしておく。

    ibmcloud sat storage assignment ls
    
  2. 以下のいずれかのコマンド例を実行して、ご使用の構成とその関連割り当てに対して自動パッチ更新を有効にします。 前のステップで取得したコンフィグレーションIDを入力します。

    割り当ての自動パッチ更新を有効にするコマンドの例。

    ibmcloud sat storage assignment autopatch enable --config CONFIG  (--all | --assignment ASSIGNMENT-ID [--assignment ASSIGNMENT-ID])
    

    指定された構成下のすべてのストレージ割り当てに対して自動パッチ更新を有効にするコマンド例。

    ibmcloud sat storage assignment autopatch enable --config CONFIG --all
    

    特定の構成下のすべての割り当てに対して自動パッチ更新を無効にするコマンドの例。

    ibmcloud sat storage assignment autopatch disable --config CONFIG --all
    

    単一の割り当ておよび特定の構成に対して自動パッチ更新を無効にするコマンドの例。

    ibmcloud sat storage assignment autopatch disable --config CONFIG --assignment ASSIGNMENT-ID
    

    複数の割り当ておよび特定の構成に対する自動パッチ更新を無効にするコマンド例。

    ibmcloud sat storage assignment autopatch disable --config CONFIG --assignment ASSIGNMENT-ID --assignment ASSIGNMENT-ID
    

API での構成と割り当てのアップグレード

/v2/storage/satellite/updateAssignment API を使用して、新しいクラスターまたはクラスター・グループで割り当てを更新できます。 改訂の更新を適用するには、 updateConfigVersiontrue に設定します。

  1. 以下の要求例をコピーし、更新するクラスター・グループおよび割り当ての変数を置き換えます。

    curl -X PATCH "https://containers.cloud.ibm.com/global/v2/storage/satellite/updateAssignment" -H "accept: application/json" -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" -d "{ \"groups\": [ \"CLUSTER-GROUPS\" ], \"name\": \"ASSIGNMENT-NAME\", \"updateConfigVersion\": true, \"uuid\": \"ASSIGNMENT-ID\"}"
    
  2. 要求を実行します。

  3. 更新を確認するために割り当ての詳細を取得します。

    curl -X GET "https://containers.cloud.ibm.com/global/v2/storage/satellite/getAssignment?uuid=ASSIGNMENT-ID" -H "accept: application/json" -H "Authorization: Bearer TOKEN"
    

ローカル・ブロック・ストレージを使用するアプリのデプロイ

ローカル・ブロックのストレージ構成を作成してクラスターに割り当てたら、ローカル・ブロック・ストレージを使用するアプリを作成できます。

永続ボリュームにラベルを追加して、PVC を特定の永続ボリュームにマップできます。 詳しくは、セレクターに関する Kubernetes の資料を参照してください。

  1. 以下の PVC の YAML ファイルを local-pvc.yaml という名前でローカル・マシンに保存します。

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: local-pvc
    spec:
      accessModes:
      - ReadWriteOnce
      volumeMode: Block
      resources:
      requests:
        storage: 20Gi # Important: Ensure that size of your claim is not larger than the local disk.
      storageClassName: sat-local-block-gold
    
  2. クラスター内に PVC を作成します。

    oc create -f local-pvc.yaml
    
  3. PVC が作成されたことを確認します。 volumeBindingMode ストレージ・クラスの sat-local-block-goldwaitForFirstConsumer であることに注意してください。

    oc get pvc | grep local
    

    ストレージを搭載したワーカー・ノードにポッドが確実にスケジュールされるようにする、またはストレージを必要とするアプリが他のポッドからプリエンプトされないようにするには、nodeAffinity を指定し、ポッドの優先度をセットアップしてください。 詳しくは、ポッドの優先度およびプリエンプションおよび ノード・アフィニティーの設定についての Kubernetes の資料を参照してください。

  4. ローカル・ストレージの PVC を使用するアプリ・ポッドをデプロイします。 以下のサンプル・アプリの YAML を app.yaml という名前のファイルにしてローカル・マシンに保存します。 この例では、nodeAffinity の指定によって、指定したラベルの付いたワーカー・ノードだけにこのポッドがスケジュールされます。

    apiVersion: v1
    kind: Pod
    metadata:
      name: app
    spec:
      affinity:
      nodeAffinity:
        requiredDuringSchedulingIgnoredDuringExecution:
          nodeSelectorTerms:
          - matchExpressions:
            - key: storage # Enter the 'key' of the worker node label created earlier.
              operator: In
              values:
              - local-block # Enter the 'value' of the worker label that you created earlier.
      containers:
        - name: nginx
          image: nginx
          volumeDevices:
            - name: data
              devicePath: "/dev/nvme2n1" # Enter the path to your local device.
      volumes:
        - name: data
          persistentVolumeClaim:
          claimName: local-pvc
    
  5. クラスター内にアプリ・ポッドを作成します。

    oc create -f app.yaml
    
  6. アプリ・ポッドにログインし、ローカル・ディスクに書き込めることを確認します。

    kubectl exec <pod_name> -it bash
    
  7. ディレクトリーを dev フォルダーに変更します。

    cd dev
    
  8. ls -lR <device-path> コマンドを実行して、デバイスの詳細を確認します。コマンド出力の brw で示されているブロック・デバイスに対する読み取り権限と書き込み権限をアプリ・ポッドに付与できることを確認します。

    ls -lR /dev/nvme2n1
    

    出力例

    brw-rw-rw-. 1 root disk 202, 32 Mar  3 21:24 /dev/nvme2n1
    
  9. オプション 以下のコマンドを実行して、ブロック・デバイスにデータを書き込みます。

    1. アプリにマウントしたローカル・ストレージ・デバイスに "block_data" を書き込む。 <device-path> をストレージデバイスへのパスに置き換えてください。 例: /dev/nvme2n1

      kubectl exec <pod_name> -- bash -c "echo "block_data" | dd conv=unblock of=<device-path>"
      
    2. データがデバイスに書き込まれていることを確認します。 <device-path> をストレージ・デバイスへのパスに置き換えます。 例: /dev/nvme2n1

      kubectl exec <pod_name> -- bash -c "od -An -c -N 10 <device-path>"
      

      出力例

      b   l   o   c   k   _   d   a   t   a
      
  10. test ポッドを削除します。

oc delete pod <pod_name>

CLI での構成の手動アップグレード

Satelliteストレージ構成をアップグレードして、同じメジャーバージョン内で最新のストレージテンプレートリビジョンを取得することができます。

  1. Satellite ストレージ構成をリストし、アップグレードする Satellite 構成を書き留めます。

    ibmcloud sat storage config ls
    
  2. Satellite 構成をアップグレードします。 更新されるのは構成のみであることに注意してください。 この構成を使用する割り当てをアップグレードする場合は、--include-assignmentsオプションを指定するか、assignment updateコマンドを使用して各割り当てを手動で更新することができます。

    構成を最新リビジョンにアップグレードするためのコマンド例。

    ibmcloud sat storage config upgrade --config CONFIG [--include-assignments]
    

    構成とその関連割り当てを最新リビジョンにアップグレードするためのサンプル・コマンド。

    ibmcloud sat storage config upgrade --config CONFIG --include-assignments
    

コンソールでのストレージ割り当ての更新

Satellite コンソール を使用して、割り当てに最新のパッチ更新を適用できます。

  1. Satellite コンソール「ロケーション」 ページで、ロケーションを選択します。

  2. 「ストレージ」 タブをクリックして、構成を表示します。

  3. 更新したい設定をクリックします。

  4. 「情報」 (i) アイコンをクリックして、最新のリビジョンまたはパッチを適用します。

  5. オプション: ストレージ割り当ての自動パッチ更新を有効にします。 自動パッチ更新を有効にすると、割り当てに常に最新のセキュリティー・フィックスが適用されます。

自動パッチ更新を有効にした場合でも、メジャー更新を手動で適用する必要があります。

クラスターからのローカル・ブロックのストレージ構成の削除

ローカル・ブロック・ストレージをクラスターで使用する予定がもうない場合は、そのクラスターをストレージ構成の割り当てから解除することができます。

ストレージ構成を削除すると、ローカル・ストレージ・オペレーター・リソースと sat-local-block-gold ストレージ・クラスが、割り当てられているすべてのクラスターからアンインストールされることに注意してください。 PVC、PV、データは削除されません。 しかし、クラスターにドライバーを再インストールするまでデータにアクセスできない可能性があります。

コンソールからのローカル・ブロック・ストレージ構成の削除

コンソールを使用して、ストレージ構成を除去します。

  1. Satellite ストレージ・ダッシュボードから、削除するストレージ構成を選択します。
  2. アクション > 削除を選択します。
  3. ストレージ構成の名前を入力します。
  4. **「削除」**を選択します。

コマンド行からのローカル・ブロック・ストレージ構成の削除

  1. local-storage 名前空間のリソースをリストします。 ストレージ割り当てを削除すると、これらのリソースは削除されます。

    oc get all -n local-storage
    

    出力例

    NAME                                         READY   STATUS    RESTARTS   AGE
    pod/local-disk-local-diskmaker-clvg6         1/1     Running   0          29h
    pod/local-disk-local-diskmaker-kqddq         1/1     Running   0          29h
    pod/local-disk-local-diskmaker-p6z9q         1/1     Running   0          29h
    pod/local-disk-local-provisioner-dw5g7       1/1     Running   0          29h
    pod/local-disk-local-provisioner-hxd9n       1/1     Running   0          29h
    pod/local-disk-local-provisioner-tfg95       1/1     Running   0          29h
    pod/local-storage-operator-df4994656-7826l   1/1     Running   0          29h
    
    NAME                             TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)     AGE
    service/local-storage-operator   ClusterIP   172.21.147.17   <none>        60000/TCP   29h
    
    NAME                                          DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
    daemonset.apps/local-disk-local-diskmaker     3         3         3       3            3           <none>          29h
    daemonset.apps/local-disk-local-provisioner   3         3         3       3            3           <none>          29h
    
    NAME                                     READY   UP-TO-DATE   AVAILABLE   AGE
    deployment.apps/local-storage-operator   1/1     1            1           29h
    
    NAME                                               DESIRED   CURRENT   READY   AGE
    replicaset.apps/local-storage-operator-df4994656   1         1         1       29h
    
  2. ストレージ割り当てをリストし、クラスターに使用していた割り当てを見つけます。

    ibmcloud sat storage assignment ls (--cluster CLUSTER | --config CONFIG | --location LOCATION | --service-cluster-id CLUSTER)
    
  3. 割り当てを削除します。 割り当てを削除すると、そのストレージ割り当てに含まれていたすべてのクラスターから、ローカル・ストレージのドライバー・ポッドとストレージ・クラスが削除されます。

    ibmcloud sat storage assignment rm --assignment <assignment_ID>
    
  4. local-storage 名前空間のリソースをリストし、ローカル・ストレージ・ドライバー・ポッドが削除されていることを確認します。

    oc get all -n local-storage
    

    出力例

    No resources found in local-storage namespace.
    
  5. クラスターでストレージ・クラスをリストし、ローカル・ストレージ・クラスが削除されていることを確認します。

    oc get sc
    
  6. オプション: ストレージ構成を削除します。

    1. ストレージ構成をリストします。

      ibmcloud sat storage config ls
      
    2. ストレージ構成を削除します。

      ibmcloud sat storage config rm --config <config_name>
      
  7. PVC をリストし、削除する PVC の名前をメモします。

    oc get pvc
    
  8. 現在 PVC がマウントされているすべてのポッドを削除します。

    1. 削除する PVC を現在マウントしているポッドをすべてリストします。 ポッドが返されなければ、現在その PVC を使用しているポッドはありません。

      oc get pods --all-namespaces -o=jsonpath='{range .items[*]}{"\n"}{.metadata.name}{":\t"}{range .spec.volumes[*]}{.persistentVolumeClaim.claimName}{" "}{end}{end}' | grep "<pvc_name>"
      

      出力例

      app    sat-local-block-gold
      
    2. PVC を使用するポッドを削除します。 ポッドがデプロイメントの一部である場合は、デプロイメントを削除します。

      oc delete pod <pod_name>
      
      oc delete deployment <deployment-name>
      
    3. ポッドまたはデプロイメントが削除されたことを確認します。

      oc get pods
      
      oc get deployments
      
  9. PVC を削除します。 IBM 提供のローカル・ブロック・ストレージ・クラスはすべて Retain 再利用ポリシーを使用して指定されているので、アプリやデプロイメントを削除しても、PV と PVC は自動的に削除されません。

    oc delete pvc <pvc-name>
    
  10. PVC が削除されたことを確認します。

    oc get pvc
    
  11. PV をリストし、削除する PV の名前をメモします。

    oc get pv
    
  12. PV を削除します。 PV を削除すると、他のワークロードにディスクを使用できるようになります。

    oc delete pv <pv-name>
    
  13. PV が削除されたことを確認します。

    oc get pv
    

パラメーターのリファレンス

4.9 パラメーター・リファレンス

表1 4.9 パラメータ・リファレンス
表示名 CLI オプション タイプ 説明 デフォルト値
自動ストレージ・ボリューム・ディスカバリー auto-discover-devices 構成 ワーカーノードのストレージボリュームを自動的に検出して使用する場合は、 true に設定します。 false
ノード・ラベル・キー label-key 構成 ワーカーノードの key key=value ラベル。 該当なし
ノード・ラベル・キー値 label-value 構成 ワーカーノードの value key=value ラベル。 該当なし
デバイス・パス devicepath 構成 ローカル・ストレージ・デバイス・パス。 例: /dev/sdcauto-discover-devicesfalse に設定されている場合は必須。 該当なし

4.10 パラメーター・リファレンス

表2 4.10 パラメータ・リファレンス
表示名 CLI オプション タイプ 説明 デフォルト値
自動ストレージ・ボリューム・ディスカバリー auto-discover-devices 構成 ワーカーノードのストレージボリュームを自動的に検出して使用する場合は、 true に設定します。 false
ノード・ラベル・キー label-key 構成 ワーカーノードの key key=value ラベル。 該当なし
ノード・ラベル・キー値 label-value 構成 ワーカーノードの value key=value ラベル。 該当なし
デバイス・パス devicepath 構成 ローカル・ストレージ・デバイス・パス。 例: /dev/sdcauto-discover-devices が false に設定されている場合は必須。 該当なし

4.11 パラメーター・リファレンス

表3 4.11 パラメータ・リファレンス
表示名 CLI オプション タイプ 説明 デフォルト値
自動ストレージ・ボリューム・ディスカバリー auto-discover-devices 構成 ワーカーノードのストレージボリュームを自動的に検出して使用する場合は、 true に設定します。 false
ノード・ラベル・キー label-key 構成 ワーカーノードの key key=value ラベル。 該当なし
ノード・ラベル・キー値 label-value 構成 ワーカーノードの value key=value ラベル。 該当なし
デバイス・パス devicepath 構成 ローカル・ストレージ・デバイス・パス。 例: /dev/sdcauto-discover-devices が false に設定されている場合は必須。 該当なし

4.12 パラメーター・リファレンス

表4 4.12 パラメータ・リファレンス
表示名 CLI オプション タイプ 説明 デフォルト値
自動ストレージ・ボリューム・ディスカバリー auto-discover-devices 構成 ワーカーノードのストレージボリュームを自動的に検出して使用する場合は、 true に設定します。 false
ノード・ラベル・キー label-key 構成 ワーカーノードの key key=value ラベル。 該当なし
ノード・ラベル・キー値 label-value 構成 ワーカーノードの value key=value ラベル。 該当なし
デバイス・パス devicepath 構成 ローカル・ストレージ・デバイス・パス。 例: /dev/sdcauto-discover-devices が false に設定されている場合は必須。 該当なし

4.13 パラメーター・リファレンス

表5 4.13 パラメータ・リファレンス
表示名 CLI オプション タイプ 説明 デフォルト値
自動ストレージ・ボリューム・ディスカバリー auto-discover-devices 構成 ワーカーノードのストレージボリュームを自動的に検出して使用する場合は、 true に設定します。 false
ノード・ラベル・キー label-key 構成 ワーカーノードの key key=value ラベル。 該当なし
ノード・ラベル・キー値 label-value 構成 ワーカーノードの value key=value ラベル。 該当なし
デバイス・パス devicepath 構成 ローカル・ストレージ・デバイス・パス。 例: /dev/sdcauto-discover-devices が false に設定されている場合は必須。 該当なし

ローカル・ブロック・ストレージのストレージ・クラス・リファレンス

ローカル・ブロック・ストレージの Satellite ストレージ・クラスについて説明します。 oc describe sc <storage-class-name> コマンドを使用して、コマンド・ラインでストレージ・クラスを確認することができます。

ローカル・ブロック・ストレージ・クラス参照
ストレージ・クラス名 タイプ 再利用ポリシー
sat-local-block-gold ブロック 保持

ローカル・ブロック・ストレージのサポート

  1. Red Hat OpenShift の資料で FAQ を確認します。
  2. 一般的な問題をトラブルシューティングして解決するには、 トラブルシューティング資料 を参照してください。
  3. ステータスページで、 IBM Cloud プラットフォームとリソースのステータスを確認してください。
  4. Stack Overflow で、他のユーザーが同じ問題を経験しているかどうかを確認します。 IBM Cloud 開発チームによって認識されるように、ibm-cloud で質問にタグを付けます。
  5. Local Storage Operator - Block テンプレートで問題が発生した場合は、 Red Hat Customer Portal で問題を開くことができます。