配置
Trident中的配置分为两个主要阶段。第一阶段会将存储类与一组合适的后端存储池相关联,并在配置之前进行必要的准备。第二阶段包括卷创建本身、需要从与待定卷的存储类关联的存储池中选择一个存储池。
存储类关联
将后端存储池与存储类相关联取决于存储类请求的属性及其 storagePools
、 `additionalStoragePools`和 `excludeStoragePools`列表。创建存储类时, Trident 会将其每个后端提供的属性和池与存储类请求的属性和池进行比较。如果某个存储池的属性和名称与请求的所有属性和池名称匹配、则Trident会将该存储池添加到该存储类的一组合适存储池中。此外、Trident还会将列表中列出的所有存储池添加到该池 `additionalStoragePools`集中、即使其属性不满足存储类请求的全部或任何属性也是如此。您应使用此 `excludeStoragePools`列表覆盖存储池并将其从存储类中删除。每次添加新后端时、Trident都会执行类似的过程、检查其存储池是否满足现有存储类的要求、并删除标记为已排除的任何。
卷创建
然后、Trident使用存储类和存储池之间的关联来确定在何处配置卷。创建卷时、Trident会首先获取该卷的存储类的存储池集、如果为该卷指定协议、则Trident会删除无法提供所请求协议的存储池(例如、NetApp HCI或SolidFire后端无法提供基于文件的卷、而ONTAP后端无法提供基于块的卷)。Trident会随机排列此结果集的顺序、以便于均匀分布卷、然后在其中进行迭代、尝试依次在每个存储池上配置卷。如果在一个上成功,则它会成功返回,并记录在此过程中遇到的任何故障。只有当*无法在*所有*上配置可供请求的存储类和协议使用的存储池时、Trident才会返回故障。