Highlighted

[CSI][Powermax] カスタムでのPV作成方法

解決策を見る

お世話になります。

件名の件に関して質問させてください。

バックエンド: PowerMax 2000
CSI Drivers for Dell EMC PowerMax (https://github.com/dell/csi-powermax)
CSI test directory : csi-powermax/test/helm/xfspre のテストをやってみたところpodの作成に失敗してしまいました。PV作成に失敗したためと思われます。そこでcsi-powermax/test/helm/xfspre/templates/pv.yamlを確認してみたところ
下記の様な記載がされていました。
赤文字部分はどういった意味なのか知りたいです。

また、PVを正常に作成をするためにはどう記載すればよいでしょうか?


##############################

apiVersion: v1
kind: PersistentVolume
metadata:
name: vol4
namespace: {{ .Values.namespace }}
spec:
capacity:
storage: 16Gi
csi:
driver: powermax.emc.dell.com
fsType: xfs
volumeHandle: 72cebf0c00000001
volumeMode: Filesystem
accessModes:
- ReadWriteOnce
storageClassName: powermax

#############################

よろしくお願いいたします。

0 件の賞賛
1 件の受理された解決策

受理された解決策
Highlighted

Re: [CSI][Powermax] カスタムでのPV作成方法

解決策を見る

Uehara Y.さん、色々助かりました。ありがとうございます。

 

その後、開発関係の方と連絡が付きました。

Gitのレポジトリの内容に間違いがあることが分かり、今後修正いただけるとのことでした。

 

volumeHandleに関して、おっしゃる通り下記のフォーマットでの記載が必要でした。

volumeHandle: <Volume Identifier>-<Symmetrix ID>-<Symmetrix Vol ID>

 

英語のコミュニティですが、そのための手順等も含め詳細を記載いただけたので連携いたします。

https://www.dell.com/community/Containers/CSI-Powermax-How-to-create-a-customized-PV/m-p/7645242#M21...

 

これでテストもうまくいきました。

色々教えていただきありがとうございます。

 

よろしくお願いいたします。

 

元の投稿で解決策を見る

7件の返信7
Highlighted
モデレーター
モデレーター

Re: [CSI][Powermax] カスタムでのPV作成方法

解決策を見る

3BXndOF9gY1203489350822さん

 

(kubernetesについてはまだ勉強中の身ですが、調べてみて気になった点を書いてみます。)

 

まず、PowerMaxとのHelmの間の設定がきちんとできているのかを確認してみるのがよさそうです。
具体的には、CSI Driver for Dell EMC PowerMax Product Guideの内容、特にP.9-10の「Install the CSI Driver for Dell EMC PowerMax using Helm」の設定項目を確認して頂き、その後にP.16-17にあるTestがきちんと動くかを確認することは有意義だと思います。

これらのTestが上手く動いている場合には、設定自体に問題はないので、xfspreのtestにおける問題があると切り分けが出来るので。

 

その上で、ご質問にもあったvolumeHandleですが、kunernetesのドキュメントを見ると以下のように説明されていました。

 

volumeHandle: A string value that uniquely identifies the volume. This value must correspond to the value returned in the volume.id field of the CreateVolumeResponse by the CSI driver as defined in the CSI spec. The value is passed as volume_id on all calls to the CSI volume driver when referencing the volume.

 

これを見ると、どうも作成されたボリュームがそれぞれUniqueに持っているidのようです。xfspreのテスト以外のyamlファイルにはこのValueが出てこないのは、新たにボリュームを作成するというテストであるためと考えられるのですが、このxfspreテストのみ既存のボリュームに対してxfsのフォーマットをかけるという動きをするテストなのかもしれません。

 

もしもそうであるとすると、volumeHandleとして既存のvolume.idを指定する必要が出てくるのですが、volume.idはどのように取得できるのか?というと、githubのcsi-powermax/test/helm/に「get.volume.ids」というスクリプトが存在しており、その説明が「Script to list the volume IDs for all PVS in a namespace」なので、このスクリプトの実行によってvolume.idが入手できそうです。

 

(実機環境がなくドキュメントからの確認だけなので、見当違いのことを言っていたら申し訳ありません・・・)

Highlighted

Re: [CSI][Powermax] カスタムでのPV作成方法

解決策を見る

Uehara.Yさん、

返事が遅れて申し訳ありません。

情報ありがとうございます。

volume作成のTest自体は通っているので、

頂いた内容を確認&検証していきたいと思います。

0 件の賞賛
Highlighted

Re: [CSI][Powermax] カスタムでのPV作成方法

解決策を見る

Uehara.Yさん、


しばらく経ってしまいましたが、わかってきたこととしまして下記の通りになります。

 

csi-powermax/test/helm/xfspre/templates/pv.yaml に記載されているvolumeHandleは特に編集せず、get.volume.idsを流すとアウトプットは72cebf0c00000001(上記のpv.yaml記載されているものと一致)が出力される。

下記の通りWarningが確認できます。

sudo kubectl describe pod powermaxtest-0 -n test

~ ~ ~ ~ ~ 略 ~ ~ ~ ~ ~ ~ ~

  Warning  FailedAttachVolume  117s (x11 over 10m)   attachdetach-controller            AttachVolume.Attach failed for volume "vol4" : attachment timeout for volume 72cebf0c00000001

 

また、
sudo kubectl logs powermax-controller-0 -n powermax driver -f
の出力は何もなしのため、csi driverとしてはなにも実行していないように見えております。

そのため、SGを作成しておくなどPMAX側での前提条件を確認したく考えております。
(これ以外のhelmテストケースは通っている状態になります)

何か関連する資料、ナレッジなどございましたらご教授いただけますと幸いです。

0 件の賞賛
Highlighted
モデレーター
モデレーター

Re: [CSI][Powermax] カスタムでのPV作成方法

解決策を見る

3BXndOF9gY1203489350822さん

 

1点だけ念のために確認なのですが、helmのxfspreのテストを実行する際には、csi-powermax/test/helmディレクトリから「./starttest.sh -t xfpre -n test」コマンドを実行しているでしょうか。

 

もしも実行しているとすると、立ち上がるプロンプトに処理している内容や、問題がある場合にはその問題に関する出力が見られるはずなので解決のヒントになると思います。

0 件の賞賛
Highlighted

Re: [CSI][Powermax] カスタムでのPV作成方法

解決策を見る

Uehara Y.さん、はい、オペレーションはおっしゃる通りになります。

0 件の賞賛
Highlighted
モデレーター
モデレーター

Re: [CSI][Powermax] カスタムでのPV作成方法

解決策を見る

3BXndOF9gY1203489350822さん

 

オペレーション方法は問題ないということですね。。
そうなるとhttps://github.com/dell/csi-powermax/blob/master/test/helm/starttest.shスクリプトの中で、echoしてプロンプトに色々なメッセージが表示されるはずなのですが、どこの間でで止まるのかが分かればそれも問題解決の参考になると思います。
(もしくは最後まで流れてしまうのですかね・・・)

 

あとはhttps://github.com/dell/csi-powermax/blob/master/test/helm/get.volume.idsの中身をみるとかなり短くて実際にPowerMaxから何かを取ってきているわけではなく、設定ファイルから読み込んできているようでした(すいません。。)。

 

そうなると、やはりvolumeHandleに既にPowerMaxに実在するボリューム情報を記載しないと上手くいかないように思えます。
ググってみたら、Deployment of SQL Server infrastructureというサイトにvolumeHandleは"<volumeIdentifier>-<SymmID-<device ID>"という命名規則を持っていること、及びそれらの情報をUnisphereやCLIから取ってくる方法が記載されていたので、この情報を元にPowerMaxに実在するボリュームを指定すると上手く行ったりしないでしょうか。

 

(見当違いのことを言っていたらすいません)

0 件の賞賛
Highlighted

Re: [CSI][Powermax] カスタムでのPV作成方法

解決策を見る

Uehara Y.さん、色々助かりました。ありがとうございます。

 

その後、開発関係の方と連絡が付きました。

Gitのレポジトリの内容に間違いがあることが分かり、今後修正いただけるとのことでした。

 

volumeHandleに関して、おっしゃる通り下記のフォーマットでの記載が必要でした。

volumeHandle: <Volume Identifier>-<Symmetrix ID>-<Symmetrix Vol ID>

 

英語のコミュニティですが、そのための手順等も含め詳細を記載いただけたので連携いたします。

https://www.dell.com/community/Containers/CSI-Powermax-How-to-create-a-customized-PV/m-p/7645242#M21...

 

これでテストもうまくいきました。

色々教えていただきありがとうございます。

 

よろしくお願いいたします。

 

元の投稿で解決策を見る