VMware Cloud Director 배치 엔진은 vApp의 VM(가상 시스템)이 배치될 리소스(예: 리소스 풀, 데이터스토어, 네트워크 또는 네트워크 풀)를 결정합니다. 이 엔진은 각 VM 요구 사항에 따라 vApp의 각 VM에 대해 독립적으로 배치 결정을 내립니다.
- VM을 생성할 때 배치 엔진은 VM이 배치될 리소스 풀, 데이터스토어 및 네트워크 풀을 결정합니다.
- VM을 시작할 때 VM의 전원이 켜지지 않으면 VMware Cloud Director는 VM을 다른 리소스 풀, 데이터스토어 또는 네트워크 풀로 선택적으로 이동할 수 있습니다.
- VM을 편집하여 해당 데이터스토어, 리소스 또는 네트워크 구성을 변경할 때 VMware Cloud Director는 새 VM 설정을 지원하는 다른 데이터스토어 및 리소스 풀로 VM을 이동할 수 있습니다. VMware Cloud Director는 현재 리소스가 새 요구 사항을 지원할 수 없는 경우에만 VM을 이동합니다.
- VM을 다른 리소스 풀로 마이그레이션할 때.
- 조직 VDC(가상 데이터 센터)가 VDC를 지원하는 vCenter 리소스 풀에서 생성된 VM을 검색하고 시스템이 검색된 각 VM을 포함하도록 간소화된 vApp을 구성할 때.
- CPU 용량
- 메모리 용량
- 가상 CPU 수
- 호스트에서 지원하고 제공자 VDC에서 허용하는 하드웨어 버전
- 선호도 규칙
배치 엔진은 후보 목록에서 비활성화된 리소스 풀을 필터링하여 제외합니다. 가능하면 VMware Cloud Director는 조직 VDC의 다른 VM과 동일한 호스트 클러스터에 VM을 배치합니다.
must run
이 있다는 조건이 있어야 합니다. VM-호스트 반선호도 규칙에는 그룹 내 호스트에 규칙
must not run
이 있다는 조건이 있어야 합니다.
- 스토리지 용량 및 임계값
- 스토리지 정책
- VM 간 선호도 요구 사항
- IOPS가 활성화된 경우 IOPS 용량 및 VM 디스크 IOPS
- 빨간색 임계값 - 데이터스토어에서 사용 가능한 공간의 크기가 이 값 미만이면 VM, 템플릿 또는 디스크와 같은 엔티티를 배치하는 동안 VMware Cloud Director가 해당 데이터스토어를 필터링하여 제외합니다.
데이터스토어가 빨간색 임계값에 도달하면 워크로드 배치 엔진은 vCenter에서 VM을 가져오는 동안을 제외하고는 데이터스토어에 새 VM 배치를 중지합니다. VM 가져오기의 경우 vCenter VM이 빨간색 임계값 데이터스토어에 이미 있으면 배치 엔진은 기존 데이터스토어를 선호합니다.
워크로드 배치 엔진은 모든 워크플로에 대해 빨간색 임계값을 사용합니다. 새로운 배치를 요청할 때, 배치 엔진은 먼저 빨간색 임계값을 위반한 데이터스토어 또는 스토리지 포드가 있으면 필터링하여 제외합니다. 기존 엔티티에 대한 배치 요청을 수행할 때 디스크가 빨간색 임계값을 위반하는 데이터스토어에 상주하는 경우에는 VMware Cloud Director가 해당 디스크를 사용 가능한 다른 데이터스토어로 재배치합니다. 그런 다음 엔진은 VMware Cloud Director의 선택기 논리 또는 vSphere Storage DRS 권장 사항을 통해 나머지 데이터스토어 또는 스토리지 포드 중에서 데이터스토어를 선택합니다.
- 노란색 임계값 - 데이터스토어에서 사용 가능한 공간의 크기가 이 값 미만이면 VMware Cloud Director가 빠르게 프로비저닝된 VM을 생성하는 섀도 VM을 배치하는 동안 VMware Cloud Director가 해당 데이터스토어를 필터링하여 제외합니다. 섀도 VM에 대한 자세한 내용은 가상 시스템의 빠른 프로비저닝을 참조하십시오.
VMware Cloud Director가 VM의 빠른 프로비저닝을 위해 사용하는 연결된 클론에는 노란색 임계값이 적용되지 않습니다. 배치 엔진이 연결된 클론에 대한 데이터스토어를 선택할 때 선택한 데이터스토어에 섀도 VM이 없으면 VMware Cloud Director가 데이터스토어에 섀도 VM을 생성합니다. 이 경우 임계값은 섀도 VM에 적용되지 않습니다.
노란색 임계값은 섀도 VM을 생성하는 주기적인 백그라운드 작업에만 적용됩니다. 활성화된 경우 작업은 24시간마다 실행되며 지정된 허브 및 스토리지 정책 쌍에 대해 각 데이터스토어에서 빠른 VM 생성을 사용합니다. 섀도 VM의 빠른 프로비저닝 작업을 활성화하려면 다음 속성을true
로 설정해야 합니다.valc.catalog.fastProvisioning=true
참고: 주기적인 백그라운드 작업은 모든 템플릿에 대한 모든 데이터스토어에 섀도 VM을 생성합니다. 이 작업은 데이터스토어 또는 섀도 VM을 사용하지 않는 경우에도 스토리지 사용량을 증가시킵니다.
대부분의 경우 배치 엔진은 후보 목록에서 비활성화된 빨간색 임계값 데이터스토어를 필터링하여 제외합니다. vCenter에서 VM을 가져올 때는 엔진이 이러한 데이터스토어를 필터링하여 제외하지 않습니다.
임계값 논리를 구현할 때 VMware Cloud Director는 현재 배치 주체의 요구 사항을 평가하지 않습니다. 워크로드 배치 엔진이 데이터스토어에 주체를 배치하려면 사용 가능한 공간(바이트)이 임계값(바이트)보다 커야 합니다. 예를 들어 사용 가능한 용량이 5GB이고 빨간색 임계값이 4GB로 설정된 데이터스토어의 경우 배치 엔진은 2GB 요구 사항이 있는 VM을 배치할 수 있습니다. VM 생성이 임계값을 위반하면 배치 엔진은 추가 배치를 위해 데이터스토어를 필터링하여 제외합니다.
배치 엔진은 네트워크 이름을 사용하여 vApp 및 해당 VM에 대한 후보 네트워크 풀을 선택합니다.
배치 엔진은 후보 리소스 집합을 선택한 후 각 VM의 CPU, 가상 RAM 및 스토리지 구성을 기반으로 리소스의 순위를 결정하고 각 VM에 대한 최상의 위치를 선택합니다.
배치 엔진은 리소스의 순위를 결정하는 동안 현재 및 향후의 예상 리소스 사용을 검사합니다. 향후 예상 사용량은 현재 지정된 리소스 풀에 배치된 전원 꺼진 VM 그리고 VM 전원이 켜진 후의 예상 사용량을 기반으로 계산됩니다. CPU와 메모리의 경우 배치 엔진은 현재 예약되지 않은 용량, 최대 사용량, 예약되지 않은 향후 예측 용량을 고려합니다. 스토리지의 경우 엔진은 각 리소스 풀이 속한 클러스터에서 제공하는 프로비저닝된 집계 용량을 고려합니다. 그런 다음 각 리소스 풀의 현재 및 향후 적합성에 대한 가중치 메트릭을 고려합니다.
이동이 필요한 경우 배치 엔진은 예약되지 않은 CPU, 메모리 및 스토리지 용량이 가장 많은 리소스 풀을 선호합니다. 또한 노란색 클러스터에는 더 낮은 우선 순위를 부여하여 배치 기준을 충족하는 정상 상태의 클러스터가 없는 경우에만 노란색 클러스터가 선택될 수 있도록 합니다. vCenter에서 VM을 가져올 때 VM 배치가 적절하면 이동을 최소화하기 위해 엔진은 임계값을 무시합니다.
VM의 전원을 켤 때 VMware Cloud Director는 현재 위치에서 전원을 켜려고 시도합니다. vCenter가 호스트 CPU 및 메모리 용량 오류를 보고하는 경우 VMware Cloud Director는 VM을 조직 VDC의 호환되는 다른 리소스 풀로 이동하기 전에 리소스 풀을 두 번 시도합니다. 배치 엔진을 다시 실행하여 호환되는 리소스 풀을 찾으려고 시도하는 동안 VMware Cloud Director는 이전에 시도했고 실패한 리소스 풀을 제외합니다. VMDK가 위치한 데이터스토어에 적합한 리소스 풀이 연결되어 있지 않은 경우 VM을 다른 리소스 풀로 이동하면 VM의 VMDK가 다른 데이터스토어로 마이그레이션될 수 있습니다. VM의 요구 사항을 충족하는 모든 위치에서 VM 배치가 실패하면 VMware Cloud Director는 배치가 가능하지 않다는 오류 메시지를 반환합니다. 현재 데이터스토어에 대한 선호도가 있고 데이터스토어를 사용할 수 없으면 배치 엔진은 배치가 가능하지 않다는 오류를 반환합니다. 이것은 시스템이 거의 전체 용량으로 작동하고 제안된 솔루션이 현재의 모든 요구 사항을 충족하지 않는 경우 시스템의 정상적인 상태입니다. 오류를 해결하려면 리소스를 추가하거나 확보한 후 재시도를 시작하면 됩니다. 특정 데이터스토어가 필요한 경우가 아니면 배치 엔진은 스토리지 정책, 스토리지 용량 및 IOPS 용량과 같은 다른 요구 사항을 충족하는 후보 호스트 클러스터 또는 리소스 풀에서 데이터스토어를 선택합니다.
리소스 풀이 용량 한계에 거의 도달했을 때 동시 배포가 진행되면 리소스 풀에 VM을 지원할 리소스가 부족하더라도 해당 리소스 풀의 유효성 검사가 성공할 수 있습니다. 이러한 경우 VM의 전원을 켤 수 없습니다. 이 상황에서 VM의 전원을 켜지 못하고 VDC를 지원하는 리소스 풀이 둘 이상 있는 경우 VMware Cloud Director에 VM을 다른 리소스 풀로 마이그레이션하라는 메시지를 표시하려면 전원 켜기 작업을 다시 시작합니다.
리소스 풀이 속한 클러스터의 용량이 한계에 거의 도달했을 때 개별 호스트에 VM의 전원을 켤 수 있는 용량이 없으면 해당 리소스 풀의 VM 전원을 켜지 못할 수 있습니다. 이 문제는 클러스터 수준에서 용량 조각화의 결과로 발생합니다. 이러한 경우 시스템 관리자는 일부 VM을 클러스터 외부로 마이그레이션하여 클러스터의 사용 가능한 용량이 충분히 유지될 수 있도록 해야 합니다.
VM 배치 엔진 알고리즘
- 각 호스트 클러스터에 대해 워크로드 배치 엔진은
capacityScore
,futureCapacityScore
및reservationScore
를 계산합니다. 배치 엔진은 CPU, 메모리 및 스토리지에 대한 각 점수를 개별적으로 계산합니다.capacityScore: (not available in some cases ) CPU = (cpuUnreservedCapacityMHz - (cupBurstMHz * _cpuBurstRatio)) / cpuRequirementMHz Memory = (memoryUnreservedCapacityMB - (memBurstMB * _memoryBurstRatio)) / memRequirementMB Storage = storageFreeCapacityMB / stgRequirementMB futureCapacityScore (not available in some cases) CPU = (cpuUnreservedCapacityMHz - (cpuUndeployedReservationMHz * _futureDeployRatio)) / cpuRequirementMHz Memory = (memoryUnreservedCapacityMB - (memUndeployedReservationMB * _futureDeployRatio)) / memRequirementMB Storage = storageFreeCapacityMB / stgRequirementMB reservationScore: (used for capacityScore and futureCapacityScore when those scores are unavailable) CPU = cpuUnreservedCapacityMHz / cpuRequirementMHz Memory = memoryUnreservedCapacityMB / memRequirementMB Storage = storageFreeCapacityMB / stgRequirementMB
- 각 호스트 클러스터에 대해 배치 엔진은 CPU, 메모리 및 스토리지에 대한
weightedCapacityScore
를 계산합니다.weightedCapacityScore = capacityScore * _currentScoreWeight + futureCapacityScore * (1 - _currentScoreWeight)
각
weightedCapacityScore
는 0에서 1 사이의 비율이며 값이 높을수록 사용 가능한 리소스가 더 많습니다.weightedCapacityScore
값은 단위가 없는 가용성 측정을 나타내기 때문에 다양한 리소스 유형(예: CPU, 메모리 및 스토리지) 간에 비교할 수 있습니다.weightedCapacityScore
가 높을수록 호스트 클러스터에서 해당 리소스의 가용성이 높습니다. - 배치 엔진은 CPU, 메모리 및 스토리지에 충분한 리소스가 있는지 확인합니다.
totalAvailable * _[memory|cpu|storage]headRoom < free / UnreservedCapacity
- 배치 엔진은
weightedCapacityScore
에서 제약이 가장 적은 호스트 클러스터가 첫 번째이고 가장 제약이 큰 호스트 클러스터가 마지막이 되도록 호스트 클러스터 목록을 정렬합니다. - 배치 엔진은 목록의 각 호스트 클러스터를 처리합니다.
- 호스트 클러스터를 피해야 하는 경우(예: 반선호도 규칙으로 인해) 엔진은 해당 호스트 클러스터를
avoidHubList
에 추가합니다. - 호스트 클러스터에 추가 리소스가 충분하지 않으면 엔진은 해당 호스트 클러스터를
noHeadRoomHubList
에 추가합니다. - 호스트 클러스터가 선호되는 경우(예: 강력한 선호도 규칙 또는 현재 호스트 클러스터이기 때문에) 엔진은 해당 호스트 클러스터를
preferredHubList
에 추가합니다. - 다른 모든 호스트 클러스터는
acceptableHubList
로 이동합니다.
각 목록 내에서 가장 선호되는 호스트 클러스터는 첫 번째이고 가장 선호되지 않는 호스트 클러스터가 마지막입니다.
- 호스트 클러스터를 피해야 하는 경우(예: 반선호도 규칙으로 인해) 엔진은 해당 호스트 클러스터를
엔진은 네 가지 목록을 통합합니다.
preferredHubList + acceptableHubList + noHeadRoomHubList + avoidHubList
엔진은 가장 선호되는 호스트 클러스터부터 가장 선호되지 않는 호스트 클러스터 순으로 결과 목록을 정렬합니다.
- 배치 엔진은 목록에서 최상위 호스트 클러스터를 대상 허브로 선택합니다.
조정 가능한 매개 변수
다양한 선택 알고리즘 임계값에 영향을 주기 위해 몇 가지 매개 변수를 사용자 지정할 수 있습니다. 단, VMware Cloud Director 작업에 대해 고급 지식이 있는 서비스 제공자 관리자만 이러한 매개 변수를 기본값에서 변경하려고 시도할 수 있습니다. 이러한 변경으로 원치 않고 예기치 않은 결과가 발생할 수 있기 때문입니다. 매개 변수 변경 내용은 비운영 환경에서 먼저 테스트하십시오.
셀 관리 도구를 사용하여 다음 매개 변수를 사용자 지정할 수 있습니다.
매개 변수 | 설명 |
---|---|
vcloud.placement.ranking.currentScoreWeight |
호스트 클러스터 점수에 대한 현재 구성 요소의 상대적 중요도입니다. 값의 범위는 [0.1]입니다. 값이 0이면 엔진은 이후 점수만을 기반으로 호스트 클러스터의 순위를 결정합니다. 값이 1이면 엔진은 현재 점수만을 기반으로 호스트 클러스터의 순위를 결정합니다. 기본값은 0.5입니다. |
|
순위 결정 기능이 클러스터의 로드를 추정하는 데 사용하는 VM의 예약을 초과하는 할당 비율입니다. 값은 0에서 1까지입니다. 0은 VM이 예약만 사용한다는 의미입니다. 1은 VM이 완전히 사용 중임을 의미합니다. 기본값은 0.67입니다. |
vcloud.placement.ranking.futureDeployRatio |
이 호스트 클러스터에서 배포되고 메모리 및 CPU를 사용할 것으로 예상되는 VM의 백분율입니다. 값은 0에서 1까지입니다. 기본값은 0.5입니다. |
|
이러한 매개 변수를 통해 호스트 클러스터에서 확장을 위해 추가 리소스를 남겨 두는 제어 기능을 사용할 수 있습니다. 엔진은 헤드룸을 예약되지 않은 리소스의 비율로 정의합니다. 예를 들어
예:
./cell-management-tool manage-config -n vcloud.placement.ranking.memoryHeadRoom -v 0.3 |
데이터스토어 필터 및 스토리지 배치 알고리즘
VMware Cloud Director 데이터스토어 필터 및 스토리지 배치 알고리즘은 기본 스토리지 리소스에서 VM 파일 및 디스크의 배치를 결정합니다. 스토리지 컨테이너는 스토리지 리소스(데이터스토어 또는 데이터스토어 클러스터)를 나타냅니다.
데이터스토어 필터는 스토리지 필터 체인의 일부로, 배치 주체의 요구 사항에 따라 적격 스토리지 컨테이너의 범위를 좁히는 데 도움이 됩니다. 필터는 제공자 VDC에서 사용 가능한 스토리지 컨테이너를 입력 목록으로 사용합니다. 필터는 미리 정의된 순서로 실행되며 각 필터는 세분화된 스토리지 컨테이너 목록을 다음 필터로 전달합니다. VMware Cloud Director는 적용할 수 없는 필터를 건너뜁니다. 예를 들어 IOPS 설정이 없는 VM의 경우 VMware Cloud Director는 IOPS 필터를 실행하지 않습니다.
필터 | 설명 |
---|---|
AffinityDatastoreFilter |
데이터스토어에 대해 정의된 선호도 및 반선호도 규칙을 기준으로 스토리지 컨테이너를 필터링합니다. VMware Cloud Director는 vCenter에서 VM 가져오기, 테넌트 마이그레이션 등과 같은 경우에 데이터스토어 선호도 규칙을 설정합니다. |
AlreadyOnValidDatastoreFilter |
배치 주체가 이미 유효한 데이터스토어에 배치되면 이 필터는 다른 모든 스토리지 컨테이너를 거부하고 유효한 데이터스토어만 유지합니다. |
BadHostsFilter |
하나 이상의 연결되어 있거나, 작동 중이거나, 전원이 켜진 호스트가 없는 스토리지 컨테이너를 필터링합니다. 인벤토리에서 삭제된 스토리지 컨테이너를 필터링합니다. |
DatastoreClusterFilter |
모든 데이터스토어 클러스터와 데이터스토어 클러스터의 일부인 데이터스토어를 필터링합니다. 이 필터는 배치 주체에 데이터스토어 클러스터가 필요하지 않은 경우에 사용됩니다. 예를 들어 |
DatastoreFsFilter |
지정된 파일 시스템의 일부인 모든 스토리지 컨테이너를 필터링합니다. 예를 들어 config: vcloud.disk.shared.allowOnNfs 를 기반으로 명명된 공유 디스크가 NFS 데이터스토어에서 허용되지 않는 경우에 해당합니다. 그러면 배치 알고리즘이 이 필터를 체인에 추가합니다. |
DisabledDatastoreFilter |
입력 목록에서 비활성화된 모든 스토리지 컨테이너를 필터링합니다. |
IopsCapacityDatastoreFilter |
VM에 대한 IOPS 용량이 충분하지 않은 모든 데이터스토어를 필터링합니다. 필터는 다음 사전 요구 사항이 충족되면 실행됩니다.
|
LeastProvisionedFilter |
프로비저닝이 가장 적은 스토리지 컨테이너를 단일화합니다. |
LinkedCloneFilter |
데이터스토어에 소스 VM 또는 해당 섀도 VM이 없는 모든 데이터스토어를 필터링합니다. VM의 가상 디스크에 허용되는 최대 체인 길이를 초과한 소스 VM이 있는 데이터스토어를 필터링합니다. |
MinFreeSpaceFilter |
배치 주체에 사용 가능한 공간이 충분하지 않은 스토리지 컨테이너를 필터링합니다. 스토리지 포드의 경우 하위 데이터스토어의 최대 사용 가능한 공간이 사용 가능한 공간을 결정하며, 하위 데이터스토어의 총 사용 가능한 공간이나 스토리지 포드의 사용 가능한 공간은 고려되지 않습니다. 예를 들어, 스토리지 포드에 각각 3GB와 5GB의 사용 가능한 공간이 있는 두 개의 데이터스토어가 있다고 가정하면 VMware Cloud Director는 스토리지 포드의 사용 가능한 공간을 5GB로 간주합니다. 그러한 컨테이너가 없으면 필터는 사용 가능한 공간이 가장 많은 컨테이너를 유지합니다. |
MostFreeSpaceFilter |
사용 가능한 공간이 가장 많은 스토리지 컨테이너를 선택합니다. |
StorageClassFilter |
요구 사항에 정의된 배치 주체의 스토리지 정책과 일치하지 않는 스토리지 컨테이너 또는 스토리지 포드를 필터링합니다. |
ThresholdFilter |
지정된 사용 가능한 용량 임계값에 도달하는 스토리지 컨테이너를 필터링합니다. VMware Cloud Director에는 노란색 및 빨간색 임계값이 있습니다. VMware Cloud Director에서 제공자 가상 데이터 센터 스토리지 컨테이너에 대한 디스크 공간 부족 임계값 구성의 내용을 참조하십시오. |
VirtualMachineFilter |
지정된 VM이 액세스할 수 없는 모든 스토리지 컨테이너를 필터링합니다. |
VMware Cloud Director는 배치 주체를 선택한 스토리지 컨테이너에 배치하려고 하는 스토리지 배치 알고리즘에 필터링된 스토리지 컨테이너의 최종 목록을 전달합니다.
배치 엔진에서 배치 주체 집합과 제공자 VDC를 지원하는 대상 리소스 풀을 수신합니다. 두 가지 대안이 있습니다.
- 일반적으로 이 알고리즘은 메타데이터 및 구성 정보가 포함된 VM 홈 파일과 빠른 프로비저닝이 사용되지 않는 일반 VM 배치를 위한 디스크 집합을 수신합니다.
- 이 알고리즘은 명명된 디스크 및 빠른 프로비저닝된 VM에 대해 집계 디스크 접근 방식을 사용할 수 있습니다. 다시 말해서 빠른 프로비저닝된 각 VM에 대해 이 알고리즘은 VM과 모든 해당 디스크에 대한 하나의 요구 사항을 수신합니다.
- 데이터스토어와 스토리지 포드를 모두 포함하는, 해당 허브에 적합한 스토리지 컨테이너 집합을 수신합니다.
- 이 알고리즘은 주체에 맞지 않는 스토리지 컨테이너를 필터링하기 위해 각 배치 주체에 대해 배치 필터의 정적 체인을 통해 실행됩니다. 예를 들어 VM 디스크가 특정 데이터스토어에 맞지 않는 경우 이 알고리즘은 해당 데이터스토어를 VM 디스크에 적합하지 않은 것으로 표시합니다.
- 해당 기본 설정 순서에 따라 각 주체에 대한 스토리지 컨테이너 순위를 지정하고 이후 다음 사항을 연속적으로 고려합니다.
- 컨테이너가 스토리지 포드인지 아니면 데이터스토어인지 여부
- 스토리지 포드를 유효한 컨테이너로 포함하는 다른 배치 주체의 수
- 컨테이너의 크기
- 컨테이너가 스토리지 포드인 경우 스토리지 포드를 데이터스토어로 줄이기 위해 이 알고리즘은 vSphere Storage DRS 호출 알고리즘을 실행합니다.
- 배치 주체 및 해당 유효한 데이터스토어 집합을 입력한 후 배치 주체가 상주해야 하는 위치를 결정합니다.
- 각 배치 주체가 상주해야 하는 데이터스토어를 결정하는 최종 배치 결과를 반환하거나 VMware Cloud Director 알고리즘이 적절한 배치를 찾을 수 없다는 오류를 반환합니다.