프로비저닝
Trident에서의 프로비저닝은 기본적으로 두 가지 단계로 구성됩니다. 첫 번째 단계에서는 스토리지 클래스를 적절한 백엔드 스토리지 풀 세트와 연결하고 용량 할당 전에 필요한 준비 작업으로 수행됩니다. 두 번째 단계에서는 볼륨 생성 자체를 포함하며 보류 중인 볼륨의 스토리지 클래스와 연결된 스토리지 풀을 선택해야 합니다.
스토리지 클래스 연결
백엔드 스토리지 풀을 스토리지 클래스와 연결하려면 스토리지 클래스의 요청된 속성과 해당 속성, additionalStoragePools
및 excludeStoragePools
목록에 따라 storagePools
달라집니다. 스토리지 클래스를 생성할 때 Trident는 각 백엔드에서 제공하는 특성과 풀을 스토리지 클래스에서 요청한 속성과 비교합니다. 스토리지 풀의 속성 및 이름이 요청된 속성 및 풀 이름과 모두 일치하는 경우 Trident는 해당 스토리지 클래스에 적합한 스토리지 풀 세트에 해당 스토리지 풀을 추가합니다. 또한 Trident는 목록에 나열된 모든 스토리지 풀을 해당 집합에 추가합니다. 이러한 스토리지 풀의 additionalStoragePools
속성이 스토리지 클래스의 요청된 속성 중 일부 또는 전부를 충족하지 않는 경우에도 마찬가지입니다. 이 목록을 사용하여 excludeStoragePools
스토리지 클래스에 대해 스토리지 풀을 재정의하고 사용할 수 없도록 제거해야 합니다. Trident는 새 백엔드를 추가할 때마다 유사한 프로세스를 수행하여 해당 스토리지 풀이 기존 스토리지 클래스의 스토리지 풀을 만족하는지 확인하고 제외된 것으로 표시된 스토리지 풀을 제거합니다.
볼륨 생성
그런 다음 Trident는 스토리지 클래스와 스토리지 풀 간의 연결을 사용하여 볼륨을 프로비저닝할 위치를 결정합니다. 볼륨을 생성할 때 Trident는 먼저 해당 볼륨의 스토리지 클래스에 대한 스토리지 풀 세트를 가져오고, 볼륨에 대한 프로토콜을 지정하면 Trident는 요청된 프로토콜을 제공할 수 없는 스토리지 풀을 제거합니다(예: NetApp HCI/SolidFire 백엔드는 파일 기반 볼륨을 제공할 수 없지만 ONTAP NAS 백엔드는 블록 기반 볼륨을 제공할 수 없음). Trident은 볼륨을 균등하게 분산하기 위해 결과 세트의 순서를 무작위로 추출한 다음 이 순서를 반복하여 각 스토리지 풀에 볼륨을 차례로 프로비저닝합니다. 이 오류가 1에서 성공하면 프로세스에서 발생한 모든 오류를 로깅하여 성공적으로 반환됩니다. Trident는 요청된 스토리지 클래스 및 프로토콜에 사용할 수 있는 스토리지 풀을 * 모든 * 에서 프로비저닝하지 못한 경우에만 오류 * 를 반환합니다.