プロビジョニング
Tridentのプロビジョニングには主に 2 つのフェーズがあります。最初のフェーズでは、ストレージ クラスを適切なバックエンド ストレージ プールのセットに関連付け、プロビジョニング前の必要な準備として実行されます。 2 番目のフェーズにはボリュームの作成自体が含まれ、保留中のボリュームのストレージ クラスに関連付けられているストレージ プールからストレージ プールを選択する必要があります。
ストレージクラスの関連付け
バックエンドストレージプールをストレージクラスに関連付けるには、ストレージクラスの要求された属性と storagePools、 additionalStoragePools 、 そして `excludeStoragePools`リスト。ストレージ クラスを作成すると、 Trident は各バックエンドが提供する属性とプールを、ストレージ クラスによって要求されたものと比較します。ストレージ プールの属性と名前が要求されたすべての属性とプール名と一致する場合、 Trident はそのストレージ プールをそのストレージ クラスに適したストレージ プールのセットに追加します。さらに、 Tridentは、 `additionalStoragePools`属性がストレージ クラスの要求された属性のすべてまたは一部を満たしていない場合でも、そのセットにリストを追加します。使用すべきは `excludeStoragePools`ストレージ クラスで使用されていないストレージ プールを上書きして削除するためのリスト。 Trident は、新しいバックエンドを追加するたびに同様のプロセスを実行し、そのストレージ プールが既存のストレージ クラスの要件を満たしているかどうかを確認し、除外としてマークされているものを削除します。
ボリュームの作成
次に、 Trident はストレージ クラスとストレージ プール間の関連付けを使用して、ボリュームをプロビジョニングする場所を決定します。ボリュームを作成すると、 Trident は最初にそのボリュームのストレージ クラスのストレージ プールのセットを取得し、ボリュームのプロトコルを指定すると、要求されたプロトコルを提供できないストレージ プールを削除します (たとえば、 NetApp HCI/ SolidFireバックエンドはファイルベースのボリュームを提供できず、 ONTAP NAS バックエンドはブロックベースのボリュームを提供できません)。 Trident は、ボリュームの均等な分散を容易にするために、この結果セットの順序をランダム化し、それを反復して、各ストレージ プールにボリュームを順番にプロビジョニングしようとします。 1 つでも成功すると、正常に戻り、プロセス中に発生したすべての失敗がログに記録されます。 Trident は、要求されたストレージ クラスとプロトコルで利用可能なすべてのストレージ プールのプロビジョニングに失敗した場合にのみ失敗を返します。