IBM Systems ブロック・ストレージ CSI ドライバー
The Block Storage for Classic CSI driver for IBM Cloud Satellite® is based on an IBM open-source project, and integrated into the IBM Storage orchestration for containers. IBM Storage orchestration for containers enables enterprises to implement a modern container-driven hybrid multicloud environment that can reduce IT costs and enhance business agility, while continuing to derive value from existing systems.
完全なリリースノート、互換性、インストール、およびユーザー情報については、Block Storage for Classic CSI driver documentationを参照してください。
Satellite でサポートされる IBM ストレージ・システムには、以下のものがあります。
- IBM SAN ボリューム・コントローラー (SVC) を含む IBM Spectrum Virtualize ファミリー、および IBM Spectrum® Virtualize が組み込まれた IBM FlashSystem® ファミリー・メンバー (FlashSystem 5010、5030、5100、5200、7200、9100、9200、9200R)
- IBM FlashSystem A9000 および A9000R
- IBM DS8000 ファミリー
ご使用のロケーションのクラスターにストレージ・テンプレートをデプロイする前に、コンソールで 「 Satellite Config のクラスター管理アクセスを有効にする」 オプションを選択するか、クラスターの作成時に --enable-config-admin
オプションを含めることによって、 Satellite 構成をセットアップしてください。
Satellite ストレージ・サービスのスコープをリソース・グループに設定することはできません。 ただし、ロケーションやクラスターなどの他のリソースのスコープをリソース・グループに設定する場合は、アカウント内のすべてのリソースに対して Satellite リーダーとリンク管理者の役割を追加する必要があります。
Block Storage for Classic使用するための前提条件
ロケーションにホストを割り当てる前に、必ずすべての前提条件およびインストール手順を完了してください。 Kubernetes クラスターは作成しないでください。
-
互換性および要件に関する資料を参照してください。
コンソールでの構成の作成と割り当て
-
Locationsコンソールから、ストレージ構成を作成する場所を選択します。
-
ストレージ > ストレージ構成の作成を選択します。
-
構成の名前を入力します。
-
ストレージタイプを選択します。
-
バージョンを選択し、「次へ」をクリックします
-
選択した 「ストレージ・タイプ」 がカスタム・パラメーターを受け入れる場合は、 「パラメーター」 タブでそれらのパラメーターを入力します。
-
選択した ストレージ・タイプ にシークレットが必要な場合は、 「シークレット (Secrets)」 タブに入力します。
-
ストレージ・クラスタブで、構成によってデプロイされたストレージ・クラスを確認するか、カスタム・ストレージ・クラスを作成します。
-
サービスへの割り当てタブで、構成の割り当て先となるサービスを選択します。
-
完了をクリックして、ストレージ構成を割り当てます。
CLI での構成の作成
-
使用するテンプレート・バージョンの パラメーター・リファレンス を確認します。
-
IBM Cloud CLI にログインします。
ibmcloud login
-
Satellite ロケーションをリストして、
Managed from
列をメモします。ibmcloud sat location ls
-
Satellite ロケーションの
Managed from
リージョンをターゲットにします。 例えば、wdc
の場合は、us-east
をターゲットにします。 詳しくは、Satellite リージョンを参照してください。ibmcloud target -r us-east
-
default
以外のリソース・グループを使用する場合は、そのリソース・グループをターゲットにします。ibmcloud target -g <resource-group>
-
使用するテンプレート・バージョンについて、以下のいずれかのコマンド例をコピーします。 コマンドについて詳しくは、 コマンド・リファレンス の
ibmcloud sat storage config create
を参照してください。バージョン 1.10.0 構成を作成するためのサンプル・コマンド。
ibmcloud sat storage config create --location LOCATION --name NAME --template-name ibm-system-storage-block-csi-driver --template-version 1.10.0 --param "namespace=NAMESPACE"
バージョン 1.11.1 構成を作成するコマンドの例。
ibmcloud sat storage config create --location LOCATION --name NAME --template-name ibm-system-storage-block-csi-driver --template-version 1.11.1 --param "namespace=NAMESPACE"
バージョン 1.11.2 構成を作成するコマンドの例。
ibmcloud sat storage config create --location LOCATION --name NAME --template-name ibm-system-storage-block-csi-driver --template-version 1.11.2 --param "namespace=NAMESPACE" --param "secret-name=SECRET-NAME" --param "secret-management-address=SECRET-MANAGEMENT-ADDRESS" --param "secret-username=SECRET-USERNAME" --param "secret-password=SECRET-PASSWORD"
-
使用する設定に基づいて、コマンドをカスタマイズします。
-
コマンドを実行してコンフィギュレーションを作成する。
-
コンフィギュレーションが作成されたことを確認する。
ibmcloud sat storage config get --config CONFIG
API での構成の作成
-
API キーを生成してから、リフレッシュ・トークンを要求します。 詳しくは、API キーを使用した IBM Cloud IAM トークンの生成を参照してください。
-
使用するテンプレート・バージョンの パラメーター・リファレンス を確認します。
-
以下のいずれかの要求例をコピーし、使用する変数を置き換えます。
バージョン 1.10.0 構成を作成する要求の例。
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\": \"ibm-system-storage-block-csi-driver\", \"storage-template-version\": \"1.10.0\", \"update-assignments\": true, \"user-config-parameters\": { \"entry.name\": \"NAMESPACE\",\"user-secret-parameters\": }
バージョン 1.11.1 構成を作成する要求の例。
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\": \"ibm-system-storage-block-csi-driver\", \"storage-template-version\": \"1.11.1\", \"update-assignments\": true, \"user-config-parameters\": { \"entry.name\": \"NAMESPACE\",\"user-secret-parameters\": }
バージョン 1.11.2 構成を作成する要求の例。
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\": \"ibm-system-storage-block-csi-driver\", \"storage-template-version\": \"1.11.2\", \"update-assignments\": true, \"user-config-parameters\": { \"entry.name\": \"NAMESPACE\", { \"entry.name\": \"SECRET-NAME\",\"user-secret-parameters\": { \"entry.name\": \"SECRET-MANAGEMENT-ADDRESS\",{ \"entry.name\": \"SECRET-USERNAME\",{ \"entry.name\": \"SECRET-PASSWORD\",}
CLIで課題を作成する
-
ストレージ構成をリストアップし、クラスタに割り当てるストレージ構成をメモしておきます。
ibmcloud sat storage config ls
-
ストレージを割り当てるクラスタ、クラスタグループ、またはサービスのIDを取得します。
クラスターが Satellite Config に登録されていることを確認したり、グループを作成したりするには、Satellite Config で使用するためのクラスターのセットアップを参照してください。
クラスター・グループをリストするコマンドの例。
ibmcloud sat group ls
クラスターをリストするコマンドの例。
ibmcloud oc cluster ls --provider satellite
Satellite サービスをリストするコマンドの例。
ibmcloud sat service ls --location <location>
-
以前に取得したクラスター、グループ、またはサービスにストレージ構成を割り当てます。 詳しくは、
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
-
割り当てが作成されたことを確認します。
ibmcloud sat storage assignment ls (--cluster CLUSTER | --config CONFIG | --location LOCATION | --service-cluster-id CLUSTER)
API でのストレージ割り当ての作成
-
以下のいずれかの要求例をコピーします。
構成をクラスターに割り当てる要求の例。
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\"}"
-
変数を自分の詳細に置き換え、要求を実行します。
-
割り当てをリストして、割り当てが作成されたことを確認します。
curl -X GET "https://containers.cloud.ibm.com/global/v2/storage/satellite/getAssignments" -H "accept: application/json" -H "Authorization: Bearer TOKEN"
コンソールでのストレージ割り当ての更新
Satellite コンソール を使用して、割り当てに最新のパッチ更新を適用できます。
-
Satellite コンソールの 「ロケーション」 ページで、ロケーションを選択します。
-
「ストレージ」 タブをクリックして、構成を表示します。
-
更新したい設定をクリックします。
-
「情報」 (i) アイコンをクリックして、最新のリビジョンまたはパッチを適用します。
-
オプション: ストレージ割り当ての自動パッチ更新を有効にします。 自動パッチ更新を有効にすると、割り当てに常に最新のセキュリティー・フィックスが適用されます。
自動パッチ更新を有効にした場合でも、メジャー更新を手動で適用する必要があります。
CLI での割り当ての手動アップグレード
最新のストレージ・テンプレート・リビジョンを使用するように割り当てをアップグレードします。
-
Satellite ストレージ割り当てをリストし、アップグレードする Satellite 割り当てを書き留めます。
ibmcloud sat storage assignment ls
-
Satellite ストレージ・テンプレートをリストして、使用可能な最新バージョンを確認します。
ibmcloud sat storage template ls
-
Satellite 割り当てをアップグレードします。
割り当てをアップグレードするコマンドの例。
ibmcloud sat storage assignment upgrade --assignment ASSIGNMENT
CLI での構成および割り当ての自動パッチ更新の有効化
sat storage assignment autopatch enable
CLI を使用して、割り当ての自動パッチ更新を有効にすることができます。 自動パッチ更新を有効にすると、最新のストレージ・テンプレート・リビジョン (パッチ) が自動的に適用されます。 ただし、メジャー更新は手動で適用する必要があります。
-
Satellite ストレージ構成をリストします。 コンフィギュレーションIDをメモしておく。
ibmcloud sat storage assignment ls
-
以下のいずれかのコマンド例を実行して、ご使用の構成とその関連割り当てに対して自動パッチ更新を有効にします。 前のステップで取得したコンフィグレーション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 を使用して、新しいクラスターまたはクラスター・グループで割り当てを更新できます。 改訂の更新を適用するには、
updateConfigVersion
を true
に設定します。
-
以下の要求例をコピーし、更新するクラスター・グループおよび割り当ての変数を置き換えます。
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\"}"
-
要求を実行します。
-
更新を確認するために割り当ての詳細を取得します。
curl -X GET "https://containers.cloud.ibm.com/global/v2/storage/satellite/getAssignment?uuid=ASSIGNMENT-ID" -H "accept: application/json" -H "Authorization: Bearer TOKEN"
API での割り当ての自動パッチ更新の有効化
/v2/storage/satellite/setAssignmentAutoupgrade
API を使用して、割り当ての自動パッチ更新を有効にすることができます。 自動パッチ更新を有効にすると、最新のストレージ・テンプレート・リビジョン (パッチ) が自動的に適用されます。 ただし、メジャー更新は手動で適用する必要があります。
-
以下の要求例をコピーし、更新するクラスター・グループおよび割り当ての変数を置き換えます。
curl -X PATCH "https://containers.cloud.ibm.com/global/v2/storage/satellite/setAssignmentAutoupgrade" -H "accept: application/json" -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" -d { "config": "string", "controller": "string", "autopatch": boolean,"assignment" : { "all": boolean, "uuid": ["string", "string", ...], } }
-
要求を実行します。
-
割り当ての詳細を取得して、アップグレードを検証します。
curl -X GET "https://containers.cloud.ibm.com/global/v2/storage/satellite/getAssignment?uuid=ASSIGNMENT-ID" -H "accept: application/json" -H "Authorization: Bearer TOKEN"
Block Storage for Classicを使用するアプリをデプロイする
ibm-system-storage-block-csi-driver
を使用して、クラスター・ワークロードで使用できる PVC を作成できます。
- あなたのBlock Storage for Classic認証情報を含むKubernetes秘密設定ファイルを作成します。
kind: Secret apiVersion: v1 metadata: name: demo-secret namespace: default type: Opaque stringData: management_address: demo-management-address # Example: baremetal-cluster.xiv.ibm.com username: demo-username data: password: AAAA1AAA
- クラスター内にシークレットを作成します。
oc apply -f <secret.yaml>
- Block Storage for Classicドライバを使用するストレージ・クラスを作成する。
kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: demo-storageclass provisioner: block.csi.ibm.com parameters: SpaceEfficiency: deduplicated # Optional. pool: demo-pool csi.storage.k8s.io/provisioner-secret-name: demo-secret csi.storage.k8s.io/provisioner-secret-namespace: default csi.storage.k8s.io/controller-publish-secret-name: demo-secret csi.storage.k8s.io/controller-publish-secret-namespace: default csi.storage.k8s.io/controller-expand-secret-name: demo-secret csi.storage.k8s.io/controller-expand-secret-namespace: default csi.storage.k8s.io/fstype: xfs # Optional. Values ext4\xfs. The default is ext4. volume_name_prefix: demoPVC # Optional allowVolumeExpansion: true
- クラスター内にストレージ・クラスを作成します。
oc apply -f sc.yaml
- ストレージ・クラスが作成されていることを確認します。
oc get sc
- 先ほど作成したストレージ・クラスを参照するPVCを作成する。
kind: PersistentVolumeClaim apiVersion: v1 metadata: name: demo-pvc-file spec: volumeMode: Filesystem accessModes: - ReadWriteOnce resources: requests: storage: 1Gi storageClassName: demo-storageclass
- クラスター内に PVC を作成します。
oc apply -f pvc.yaml
- PVC が作成され、状況が
Bound
であることを確認します。oc get pvc
- 作成した PVC をマウントするステートフル・セットの YAML 構成ファイルを作成します。
kind: StatefulSet apiVersion: apps/v1 metadata: name: demo-statefulset-file-system spec: selector: matchLabels: app: demo-statefulset serviceName: demo-statefulset replicas: 1 template: metadata: labels: app: demo-statefulset spec: containers: - name: demo-container image: registry.access.redhat.com/ubi8/ubi:latest command: [ "/bin/sh", "-c", "--" ] args: [ "while true; do sleep 30; done;" ] volumeMounts: - name: demo-volume-file-system mountPath: "/data" volumes: - name: demo-volume-file-system persistentVolumeClaim: claimName: demo-pvc-file
- クラスター内にポッドを作成します。
oc apply -f <stateful-set>.yaml
- ポッドがデプロイされたことを確認します。 アプリが
Running
状態になるまでに数分かかることがあることに注意してください。
出力例oc get pods
NAME READY STATUS RESTARTS AGE demo-statefulset-file-system-0 1/1 Running 0 2m58s
- アプリが IBM Block Storage インスタンスに書き込めることを確認します。
- ポッドにログインします。
oc exec demo-statefulset-file-system-0 -it bash
/data
ディレクトリーに変更してtest.txt
ファイルを書き込み、test.txt
ファイルの内容を表示して、アプリが永続ストレージにデータを書き込めていることを確認します。
出力例cd data && echo "Testing" >> test.txt && cat test.txt
Testing
- ポッドを終了します。
exit
- ポッドにログインします。
パラメーターのリファレンス
1.10.0 パラメーター・リファレンス
表示名 | CLI オプション | タイプ | 説明 | 必須ですか? | デフォルト値 |
---|---|---|---|---|---|
名前空間 | namespace |
構成 | デプロイメントを作成する対象の名前空間。 | はい | default |
1.11.1 パラメーター・リファレンス
表示名 | CLI オプション | タイプ | 説明 | 必須ですか? | デフォルト値 |
---|---|---|---|---|---|
名前空間 | namespace |
構成 | デプロイメントを作成する対象の名前空間。 | はい | default |
1.11.2 パラメーター・リファレンス
表示名 | CLI オプション | タイプ | 説明 | 必須ですか? | デフォルト値 |
---|---|---|---|---|---|
名前空間 | namespace |
構成 | デプロイメントを作成する対象の名前空間。 | はい | default |
シークレット名 | secret-name |
構成 | 作成するシークレットの名前。 | はい | 該当なし |
シークレット管理アドレス | secret-management-address |
シークレット | 管理サーバーのアドレスです。 これは、IP アドレスまたは URL のいずれかです。 例: example-cluster.xiv.ibm.com |
はい | 該当なし |
シークレット・ユーザー名 | secret-username |
シークレット | 管理サーバーへの認証に使用するユーザー名。 | はい | 該当なし |
シークレット・パスワード | secret-password |
シークレット | 管理サーバーへの認証に使用するパスワード。 | はい | 該当なし |
Block Storage for Classic のヘルプおよびサポートの利用
- Block Storage for Classic の資料で FAQ を確認します。
- 一般的な問題をトラブルシューティングして解決するには、 トラブルシューティング資料 を参照してください。
- Status ページにアクセスして、IBM Cloudプラットフォームとリソースのステータスを確認してください。
- Stack Overflow で、他のユーザーが同じ問題を経験しているかどうかを確認します。 質問に
ibm-cloud
というタグを付けます。 - Block Storage for Classic で問題が発生した場合は、 IBM Cloud® サポートにサポート要求を送信します。