Nova 컴퓨트 스케줄러 편집하기

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.

편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.

최신판 당신의 편집
1번째 줄: 1번째 줄:
==개요==
==개요==
[[분류: 미완성]]
[[분류: Nova]]
[[분류: Nova]]
;Compute schedulers
;Compute schedulers
;컴퓨트 스케줄러
;컴퓨트 스케줄러
https://docs.openstack.org/nova/2024.1/admin/scheduling.html
* https://docs.openstack.org/nova/2024.1/admin/scheduling.html


Compute는 <code>nova-scheduler</code> 서비스를 사용하여 컴퓨팅 요청을 처리할 호스트나 노드를 결정합니다. 예를 들어, <code>nova-scheduler</code> 서비스는 VM이 실행될 호스트나 노드를 결정합니다. 스케줄러는 다양한 옵션으로 설정할 수 있습니다.
Compute는 <code>nova-scheduler</code> 서비스를 사용하여 컴퓨팅 요청을 처리할 호스트나 노드를 결정합니다. 예를 들어, <code>nova-scheduler</code> 서비스는 VM이 실행될 호스트나 노드를 결정합니다. 스케줄러는 다양한 옵션으로 설정할 수 있습니다.
11번째 줄: 12번째 줄:
* 요청된 [https://docs.openstack.org/nova/2024.1/reference/glossary.html#term-Availability-Zone 가용성 영역](map_az_to_placement_aggregate)에 배치(placement) 프리필터에 있음
* 요청된 [https://docs.openstack.org/nova/2024.1/reference/glossary.html#term-Availability-Zone 가용성 영역](map_az_to_placement_aggregate)에 배치(placement) 프리필터에 있음
* 요청을 처리할 수 있으며, 타겟 노드를 처리하는 nova-compute 서비스가 사용 가능하고 비활성화되지 않음 (ComputeFilter)
* 요청을 처리할 수 있으며, 타겟 노드를 처리하는 nova-compute 서비스가 사용 가능하고 비활성화되지 않음 (ComputeFilter)
* 인스턴스 유형과 관련된 부가 스펙 충족 (ComputeCapabilitiesFilter)
* 인스턴스 유형과 관련된 추가 사양 충족 (ComputeCapabilitiesFilter)
* 인스턴스 이미지 속성에 지정된 아키텍처, 하이퍼바이저 유형 또는 가상머신 모드 속성 충족 (ImagePropertiesFilter)
* 인스턴스 이미지 속성에 지정된 아키텍처, 하이퍼바이저 유형 또는 가상머신 모드 속성 충족 (ImagePropertiesFilter)
* (요청된 경우) 그룹의 다른 인스턴스와 다른 호스트에 있음 (ServerGroupAntiAffinityFilter)
* (요청된 경우) 그룹의 다른 인스턴스와 다른 호스트에 있음 (ServerGroupAntiAffinityFilter)
130번째 줄: 131번째 줄:


===<code>AggregateInstanceExtraSpecsFilter</code>===
===<code>AggregateInstanceExtraSpecsFilter</code>===
인스턴스 유형의 부가 스펙에 정의된 속성을 호스트 애그리게이트의 관리자 정의 속성과 비교합니다. <code>aggregate_instance_extra_specs</code>로 스코프가 지정된 스펙과 함께 작동합니다. 여러 값은 쉼표로 구분된 목록으로 제공될 수 있습니다. 하위호환성을 위해, 스코프가 지정되지 않은 스펙과도 작동하지만, 이 작업은 [https://docs.openstack.org/nova/2024.1/admin/scheduling.html#computecapabilitiesfilter ComputeCapabilitiesFilter] 필터를 둘 다 활성화할 경우 충돌하기 때문에 강력히 권장되지 않습니다.
인스턴스 유형의 추가 사양에 정의된 속성을 호스트 애그리게이트의 관리자 정의 속성과 비교합니다. <code>aggregate_instance_extra_specs</code>로 스코프가 지정된 사양과 함께 작동합니다. 여러 값은 쉼표로 구분된 목록으로 제공될 수 있습니다. 하위호환성을 위해, 스코프가 지정되지 않은 사양과도 작동하지만, 이 작업은 [https://docs.openstack.org/nova/2024.1/admin/scheduling.html#computecapabilitiesfilter ComputeCapabilitiesFilter] 필터를 둘 다 활성화할 경우 충돌하기 때문에 강력히 권장되지 않습니다.


자세한 내용은 [https://docs.openstack.org/nova/2024.1/admin/aggregates.html 호스트 집합체]를 참조하십시오.
자세한 내용은 [https://docs.openstack.org/nova/2024.1/admin/aggregates.html 호스트 집합체]를 참조하십시오.
154번째 줄: 155번째 줄:


===<code>AggregateTypeAffinityFilter</code>===
===<code>AggregateTypeAffinityFilter</code>===
호스트 집합의 메타데이터에 설정된 <code>instance_type</code> 키의 이름이 인스턴스의 플레이버 이름과 일치하거나 <code>instance_type</code> 키가 설정되지 않은 경우 해당 집합의 호스트를 필터링합니다.
호스트 집합의 메타데이터에 설정된 <code>instance_type</code> 키의 이름이 인스턴스의 flavor 이름과 일치하거나 <code>instance_type</code> 키가 설정되지 않은 경우 해당 집합의 호스트를 필터링합니다.


<code>instance_type</code> 메타데이터 항목의 값은 단일 <code>instance_type</code> 이름 또는 <code>m1.nano</code>나 <code>m1.nano,m1.small</code>과 같이 쉼표로 구분된 <code>instance_type</code> 이름 목록일 수 있는 문자열입니다.
<code>instance_type</code> 메타데이터 항목의 값은 단일 <code>instance_type</code> 이름 또는 <code>m1.nano</code>나 <code>m1.nano,m1.small</code>과 같이 쉼표로 구분된 <code>instance_type</code> 이름 목록일 수 있는 문자열입니다.
168번째 줄: 169번째 줄:


===<code>ComputeCapabilitiesFilter</code>===
===<code>ComputeCapabilitiesFilter</code>===
호스트를 필터링하여 플레이버의 부가 스펙에 정의된 속성을 컴퓨팅 기능과 매칭합니다. 부가 스펙 키에 콜론(:)이 포함된 경우, 콜론 앞의 모든 내용은 네임스페이스로 간주되고 콜론 뒤의 모든 내용은 매칭할 키로 간주됩니다. 네임스페이스가 존재하고 <code>capabilities</code>가 아닌 경우, 필터는 네임스페이스를 무시합니다. 예를 들어, <code>capabilities:cpu_info:features</code>는 유효한 스코프 형식입니다. 하위호환성을 위해, 필터는 네임스페이스가 없는 경우에도 부가 스펙 키를 매칭할 키로 간주합니다. 그러나 이 방법은 [https://docs.openstack.org/nova/2024.1/admin/scheduling.html#aggregateinstanceextraspecsfilter AggregateInstanceExtraSpecsFilter] 필터를 활성화한 경우 충돌을 일으킬 수 있으므로 권장되지 않습니다.
호스트를 필터링하여 flavor의 엑스트라 스펙에 정의된 속성을 컴퓨팅 기능과 매칭합니다. 엑스트라 스펙 키에 콜론(:)이 포함된 경우, 콜론 앞의 모든 내용은 네임스페이스로 간주되고 콜론 뒤의 모든 내용은 매칭할 키로 간주됩니다. 네임스페이스가 존재하고 <code>capabilities</code>가 아닌 경우, 필터는 네임스페이스를 무시합니다. 예를 들어, <code>capabilities:cpu_info:features</code>는 유효한 스코프 형식입니다. 하위호환성을 위해, 필터는 네임스페이스가 없는 경우에도 엑스트라 스펙 키를 매칭할 키로 간주합니다. 그러나 이 방법은 [https://docs.openstack.org/nova/2024.1/admin/scheduling.html#aggregateinstanceextraspecsfilter AggregateInstanceExtraSpecsFilter] 필터를 활성화한 경우 충돌을 일으킬 수 있으므로 권장되지 않습니다.


부가 스펙은 키/값 쌍의 값 문자열 앞에 연산자를 가질 수 있습니다. 연산자가 지정되지 않은 경우 기본 연산자는 <code>s==</code>입니다. 유효한 연산자는 다음과 같습니다:
엑스트라 스펙은 키/값 쌍의 값 문자열 앞에 연산자를 가질 수 있습니다. 연산자가 지정되지 않은 경우 기본 연산자는 <code>s==</code>입니다. 유효한 연산자는 다음과 같습니다:


* <code>=</code> (숫자로서 같거나 큰 값; vcpus 경우와 동일)
* <code>=</code> (숫자로서 같거나 큰 값; vcpus 경우와 동일)
201번째 줄: 202번째 줄:
* <code>vcpus_used</code> (숫자로 비교, 예: <code>= 0</code>, <code><= 10</code>)
* <code>vcpus_used</code> (숫자로 비교, 예: <code>= 0</code>, <code><= 10</code>)


일부 virt 드라이버는 CPU 특성을 Placement 서비스에 보고하는 기능을 지원합니다. 이 기능이 사용가능한 경우, <code>ComputeCapabilitiesFilter</code> 대신 플레이버에서 특성을 사용하는 것을 고려해야 합니다. 특성은 일부 virt 드라이버에서 CPU 기능에 대해 일관된 네이밍을 제공하며, 특성 쿼리는 효율적입니다. 자세한 내용은 [https://docs.openstack.org/nova/2024.1/user/support-matrix.html 기능 지원 매트릭스], [https://docs.openstack.org/nova/2024.1/user/flavors.html#extra-specs-required-traits 필수 특성], [https://docs.openstack.org/nova/2024.1/user/flavors.html#extra-specs-forbidden-traits 금지된 특성], [https://specs.openstack.org/openstack/nova-specs/specs/rocky/approved/report-cpu-features-as-traits.html CPU 기능을 Placement 서비스에 보고하기]를 참조하십시오.
일부 virt 드라이버는 CPU 특성을 Placement 서비스에 보고하는 기능을 지원합니다. 이 기능이 사용가능한 경우, <code>ComputeCapabilitiesFilter</code> 대신 flavor에서 특성을 사용하는 것을 고려해야 합니다. 특성은 일부 virt 드라이버에서 CPU 기능에 대해 일관된 네이밍을 제공하며, 특성 쿼리는 효율적입니다. 자세한 내용은 [https://docs.openstack.org/nova/2024.1/user/support-matrix.html 기능 지원 매트릭스], [https://docs.openstack.org/nova/2024.1/user/flavors.html#extra-specs-required-traits 필수 특성], [https://docs.openstack.org/nova/2024.1/user/flavors.html#extra-specs-forbidden-traits 금지된 특성], [https://specs.openstack.org/openstack/nova-specs/specs/rocky/approved/report-cpu-features-as-traits.html CPU 기능을 Placement 서비스에 보고하기]를 참조하십시오.


또한 [https://docs.openstack.org/nova/2024.1/admin/scheduling.html#id19 특성으로서의 컴퓨트 능력(Compute capabilities as traits)]도 참조하십시오.
또한 [https://docs.openstack.org/nova/2024.1/admin/scheduling.html#id19 특성으로서의 컴퓨트 능력(Compute capabilities as traits)]도 참조하십시오.
487번째 줄: 488번째 줄:


===<code>RAMWeigher</code>===
===<code>RAMWeigher</code>===
호스트의 사용가능한 RAM을 기준으로 가중치를 산정합니다. 가장 큰 가중치가 우선하도록 정렬됩니다. <code>[https://docs.openstack.org/nova/2024.1/configuration/config.html#filter_scheduler.ram_weight_multiplier filter_scheduler.ram_weight_multiplier]</code>가 음수인 경우, 사용가능한 RAM이 가장 적은 호스트가 우선하게 됩니다(호스트를 분산시키는 대신 쌓고 싶은 경우에 유용함).
호스트의 사용가능한 RAM을 기준으로 가중치를 계산합니다. 가장 큰 가중치가 우선하도록 정렬됩니다. <code>[https://docs.openstack.org/nova/2024.1/configuration/config.html#filter_scheduler.ram_weight_multiplier filter_scheduler.ram_weight_multiplier]</code>가 음수인 경우, 사용가능한 RAM이 가장 적은 호스트가 우선하게 됩니다(호스트를 분산시키는 대신 쌓고 싶은 경우에 유용함).


Stein 릴리스부터는, 키가 <code>ram_weight_multiplier</code>인 집합체당(per-aggregate) 값이 있으면,  값이 RAM 가중치 배수로 선택됩니다. 그렇지 않으면 <code>[https://docs.openstack.org/nova/2024.1/configuration/config.html#filter_scheduler.ram_weight_multiplier filter_scheduler.ram_weight_multiplier]</code>로 대체됩니다. 호스트의 집합체 메타데이터에 둘 이상의 값이 있으면 최소값이 사용됩니다.
Stein 릴리스부터는, 키가 <code>ram_weight_multiplier</code>인 집합체당(per-aggregate) 값이 있으면,  값이 RAM 가중치 배수로 선택됩니다. 그렇지 않으면 <code>[https://docs.openstack.org/nova/2024.1/configuration/config.html#filter_scheduler.ram_weight_multiplier filter_scheduler.ram_weight_multiplier]</code>로 대체됩니다. 호스트의 집합체 메타데이터에 둘 이상의 값이 있으면 최소값이 사용됩니다.


===<code>CPUWeigher</code>===
===<code>CPUWeigher</code>===
컴퓨트 노드에서 사용가능한 vCPU를 기반으로 가중치를 산정합니다. 가장 큰 가중치가 우선하도록 정렬됩니다. <code>filter_scheduler.cpu_weight_multiplier</code> 가중치 배수가 음수인 경우, 사용가능한 CPU가 가장 적은 호스트가 우선하게 됩니다(호스트를 분산시키는 대신 쌓고 싶은 경우에 유용함).
컴퓨트 노드에서 사용가능한 vCPU를 기반으로 가중치를 계산합니다. 가장 큰 가중치가 우선하도록 정렬됩니다. <code>filter_scheduler.cpu_weight_multiplier</code> 가중치 배수가 음수인 경우, 사용가능한 CPU가 가장 적은 호스트가 우선하게 됩니다(호스트를 분산시키는 대신 쌓고 싶은 경우에 유용함).


Stein 릴리스부터는, <code>cpu_weight_multiplier</code> 키를 가진 집합체당(per-aggregate) 값이 있으면, 그 값이 CPU 가중치 배수로 선택됩니다. 그렇지 않으면 <code>[https://docs.openstack.org/nova/2024.1/configuration/config.html#filter_scheduler.cpu_weight_multiplier filter_scheduler.cpu_weight_multiplier]</code>로 대체됩니다. 호스트의 집합체 메타데이터에 둘 이상의 값이 있으면 최소값이 사용됩니다.
Stein 릴리스부터는, <code>cpu_weight_multiplier</code> 키를 가진 집합체당(per-aggregate) 값이 있으면, 그 값이 CPU 가중치 배수로 선택됩니다. 그렇지 않으면 <code>[https://docs.openstack.org/nova/2024.1/configuration/config.html#filter_scheduler.cpu_weight_multiplier filter_scheduler.cpu_weight_multiplier]</code>로 대체됩니다. 호스트의 집합체 메타데이터에 둘 이상의 값이 있으면 최소값이 사용됩니다.
502번째 줄: 503번째 줄:


===<code>MetricsWeigher</code>===
===<code>MetricsWeigher</code>===
이 웨이어(weigher, 가중치 계산기)는 컴퓨트 노드 호스트의 다양한 메트릭을 기반으로 가중치를 산정할 수 있습니다. 가중치를 부여할 메트릭과 그 가중치 비율은 <code>[https://docs.openstack.org/nova/2024.1/configuration/config.html#metrics.weight_setting metrics.weight_setting]</code> 설정 옵션을 사용하여 지정합니다. 예를 들면 다음과 같습니다:
이 웨이어(weigher, 가중치 계산기)는 컴퓨트 노드 호스트의 다양한 메트릭을 기반으로 가중치를 계산할 수 있습니다. 가중치를 부여할 메트릭과 그 가중치 비율은 <code>[https://docs.openstack.org/nova/2024.1/configuration/config.html#metrics.weight_setting metrics.weight_setting]</code> 설정 옵션을 사용하여 지정합니다. 예를 들면 다음과 같습니다:


<syntaxhighlight lang='ini'>
<syntaxhighlight lang='ini'>
514번째 줄: 515번째 줄:


===<code>IoOpsWeigher</code>===
===<code>IoOpsWeigher</code>===
이 웨이어는 컴퓨트 노드 호스트의 워크로드를 기반으로 가중치를 산정할 수 있습니다. 이는 <code>building</code> <code>vm_state</code> 또는 다음 <code>task_state</code> 중 하나인 <code>resize_migrating</code>, <code>rebuilding</code>, <code>resize_prep</code>, <code>image_snapshot</code>, <code>image_backup</code>, <code>rescuing</code>, <code>unshelving</code>에 있는 인스턴스의 수를 검사하여 계산됩니다. 기본값은 가벼운 워크로드의 컴퓨트 호스트를 선호하도록 설정되어 있습니다. 만약 배수가 양수라면, 웨이어는 무거운 워크로드의 컴퓨트 호스트를 선호하게 되며, 이는 기본값과 반대의 효과를 갖습니다.
Stein 릴리스부터, <code>io_ops_weight_multiplier</code>라는 키를 가진 집합체당(per-aggregate) 값이 있으면, 그 값이 IO ops 가중치 배수로 선택됩니다. 그렇지 않으면 <code>[https://docs.openstack.org/nova/2024.1/configuration/config.html#filter_scheduler.io_ops_weight_multiplier filter_scheduler.io_ops_weight_multiplier]</code>로 대체됩니다. 호스트의 집합체 메타데이터에 둘 이상의 값이 있으면, 최소값이 사용됩니다.
===<code>PCIWeigher</code>===
===<code>PCIWeigher</code>===
호스트에 있는 PCI 디바이스 수와 인스턴스에서 요청하는 PCI 디바이스 수를 기반으로 가중치를 산정합니다. 예를 들어, 세 개의 호스트가 있을 때 - 하나는 PCI 디바이스가 하나 있고, 하나는 많은 PCI 디바이스가 있으며, 나머지 하나는 PCI 디바이스가 없는 경우 - nova는 인스턴스의 요구사항에 따라 이들을 다르게 우선순위로 둡니다. 인스턴스가 하나의 PCI 디바이스를 요청하면 첫 번째 호스트가 우선되어야 합니다. 마찬가지로 인스턴스가 여러 개의 PCI 디바이스를 요청하면 두 번째 호스트가 우선되어야 합니다. 마지막으로 인스턴스가 PCI 디바이스를 요청하지 않으면 세 번째 호스트가 우선되어야 합니다.
이 기능이 유용하려면 <code>PciPassthroughFilter</code> 또는 <code>NUMATopologyFilter</code> 필터 중 하나가 활성화되어 있어야 합니다.
Stein 릴리스부터는, <code>pci_weight_multiplier</code> 키에 집합체당(per-aggregate) 값이 있으면, 그 값이 PCI 가중치 배수로 선택됩니다. 그렇지 않으면 <code>filter_scheduler.pci_weight_multiplier</code>로 대체됩니다. 호스트의 집합체 메타데이터에 둘 이상의 값이 있으면 최소값이 사용됩니다.
{{IMPORTANT}}
이 웨이어에는 양수 값만 허용됩니다. 음수 값은 PCI 디바이스가 없는 인스턴스를 PCI 디바이스가 없는 호스트에서 멀어지게 하여 향후 스케줄링 문제를 야기할 수 있습니다.
{{/IMPORTANT}}
===<code>ServerGroupSoftAffinityWeigher</code>===
===<code>ServerGroupSoftAffinityWeigher</code>===
이 웨이어는 같은 서버 그룹에서 실행되는 인스턴스 수를 기반으로 가중치를 산정할 수 있습니다. 가장 큰 가중치는 새 인스턴스를 위한 선호 호스트를 정의합니다. 산정을 위한 배수로는 양수 값만 허용됩니다.
Stein 릴리스부터는, <code>soft_affinity_weight_multiplier</code> 키의 집합체당(per-aggregate) 값이 있으면, 그 값이 소프트 어피니티 가중치 배수로 선택됩니다. 그렇지 않으면 <code>filter_scheduler.soft_affinity_weight_multiplier</code>로 대체됩니다. 호스트의 집합체 메타데이터에 둘 이상의 값이 있면 최소값이 사용됩니다.
===<code>ServerGroupSoftAntiAffinityWeigher</code>===
===<code>ServerGroupSoftAntiAffinityWeigher</code>===
이 웨이어는 같은 서버 그룹에서 실행되는 인스턴스 수를 기반으로 가중치를 음수 값으로 산정할 수 있습니다. 가장 큰 가중치는 새 인스턴스에 대해 선호되는 호스트를 정의합니다. 산정을 위한 배수로는 양수 값만 허용됩니다.
Stein 릴리스부터, <code>soft_anti_affinity_weight_multiplier</code> 키의 집합체당(per-aggregate) 값이 있으면, 그 값이 소프트 안티어피니티 가중치 배수로 선택됩니다. 그렇지 않으면 <code>[https://docs.openstack.org/nova/2024.1/configuration/config.html#filter_scheduler.soft_anti_affinity_weight_multiplier filter_scheduler.soft_anti_affinity_weight_multiplier]</code>로 대체됩니다. 호스트의 집합체 메타데이터에 둘 이상의 값이 있으면 최소값이 사용됩니다.
===<code>BuildFailureWeigher</code>===
===<code>BuildFailureWeigher</code>===
최근 부팅 시도 실패 횟수에 따라 호스트의 가중치를 산정합니다. 이는 빌드 실패 카운터를 고려하며 최근 실패가 있는 호스트에 부정적인 가중치를 부여할 수 있습니다. 이를 통해 컴퓨트 노드가 완전히 회전에서 제외되는 것을 방지할 수 있습니다.
Stein 릴리스부터는 키가 <code>build_failure_weight_multiplier</code>인 집합체당(per-aggregate) 값이 있으면, 그 값을 빌드 실패 가중치 배수로 선택합니다. 그렇지 않으면 <code>filter_scheduler.build_failure_weight_multiplier</code>로 대체됩니다. 호스트의 집합체 메타데이터에 둘 이상의 값이 있으면 최소값이 사용됩니다.
{{IMPORTANT}}
<code>[https://docs.openstack.org/nova/2024.1/configuration/config.html#filter_scheduler.build_failure_weight_multiplier filter_scheduler.build_failure_weight_multiplier]</code> 옵션의 기본값은 매우 높은 값으로 설정됩니다. 이는 사용가능한 리소스에 의해 다른 활성화된 웨이어들이 주는 가중치를 상쇄시켜 이 웨이어에 우선권을 주기 위함입니다. 그러나 모든 빌드 실패가 호스트 자체의 문제를 의미하는 것은 아닙니다. 사용자 오류일 수도 있지만, 이러한 실패도 여전히 계산됩니다. 호스트가 자주 빌드 실패를 보고하여 스케줄링 중에 효과적으로 제외되는 경우, 배수의 크기를 낮추는 것을 고려할 수 있습니다.
{{/IMPORTANT}}
===<code>CrossCellWeigher</code>===
===<code>CrossCellWeigher</code>===
''버전 21.0.0 (Ussuri)에서 새로 추가됨''
''버전 21.0.0 (Ussuri)에서 새로 추가됨''
643번째 줄: 614번째 줄:
''버전 19.0.0 (Stein)에 새로 추가됨''
''버전 19.0.0 (Stein)에 새로 추가됨''


<code>nova-compute</code> 서비스는 자체 컴퓨팅 드라이버 기능을 기반으로 특정 <code>COMPUTE_*</code> 특성을 placement 서비스에 보고합니다. 이러한 특성은 해당 컴퓨팅 서비스의 리소스 제공자와 연관됩니다. 이러한 특성은 [https://docs.openstack.org/nova/2024.1/user/flavors.html#extra-specs-required-traits 필수 특성(Required traits)] 또는 [https://docs.openstack.org/nova/2024.1/user/flavors.html#extra-specs-forbidden-traits 금지된 특성(Forbidden traits)]으로 플레이버를 구성하여 스케줄링 중에 사용할 수 있습니다. 예를 들어, multi-attach 볼륨을 지원하는 일련의 컴퓨트 노드가 있는 호스트 집합체가 있는 경우, 플레이버에 <code>trait:COMPUTE_VOLUME_MULTI_ATTACH=required</code>부가 스펙을 추가하고, [https://docs.openstack.org/nova/2024.1/admin/aggregates.html#config-sch-for-aggs 일반적인 방식]으로 플레이버를 집합체에 제한할 수 있습니다.
<code>nova-compute</code> 서비스는 자체 컴퓨팅 드라이버 기능을 기반으로 특정 <code>COMPUTE_*</code> 특성을 placement 서비스에 보고합니다. 이러한 특성은 해당 컴퓨팅 서비스의 리소스 제공자와 연관됩니다. 이러한 특성은 [https://docs.openstack.org/nova/2024.1/user/flavors.html#extra-specs-required-traits 필수 특성(Required traits)] 또는 [https://docs.openstack.org/nova/2024.1/user/flavors.html#extra-specs-forbidden-traits 금지된 특성(Forbidden traits)]으로 flavor를 구성하여 스케줄링 중에 사용할 수 있습니다. 예를 들어, multi-attach 볼륨을 지원하는 일련의 컴퓨트 노드가 있는 호스트 집합체가 있는 경우, flavor에 <code>trait:COMPUTE_VOLUME_MULTI_ATTACH=required</code>엑스트라 스펙을 추가하고, [https://docs.openstack.org/nova/2024.1/admin/aggregates.html#config-sch-for-aggs 일반적인 방식]으로 flavor를 집합체에 제한할 수 있습니다.


다음은 특정 CPU 기능을 특성으로, 드라이버 기능을 특성으로, 그리고 <code>CUSTOM_</code> 접두어가 붙은 커스텀 특성을 노출하는 libvirt 컴퓨트 노드 리소스 제공자 예제입니다:
다음은 특정 CPU 기능을 특성으로, 드라이버 기능을 특성으로, 그리고 <code>CUSTOM_</code> 접두어가 붙은 커스텀 특성을 노출하는 libvirt 컴퓨트 노드 리소스 제공자 예제입니다:
683번째 줄: 654번째 줄:


* <code>HostState</code> 객체: 호스트의 속성을 얻을 수 있습니다.
* <code>HostState</code> 객체: 호스트의 속성을 얻을 수 있습니다.
* <code>RequestSpec</code> 객체: 사용자 요청을 설명하며, 플레이버, 이미지, 스케줄러 힌트를 포함합니다.
* <code>RequestSpec</code> 객체: 사용자 요청을 설명하며, flavor, 이미지 스케줄러 힌트를 포함합니다.


이 객체와 해당 속성에 대한 자세한 내용은 코드베이스(다른 필터 코드를 살펴보는 정도로도 충분합니다)를 참조하거나 <code>#openstack-nova</code> IRC 채널에서 도움을 요청하세요.
이 객체와 해당 속성에 대한 자세한 내용은 코드베이스(다른 필터 코드를 살펴보는 정도로도 충분합니다)를 참조하거나 <code>#openstack-nova</code> IRC 채널에서 도움을 요청하세요.
778번째 줄: 749번째 줄:
==웨이어 직접 작성하기==
==웨이어 직접 작성하기==
웨이어를 직접 작성하려면 <code>BaseHostFilter</code>를 상속해야 합니다. 웨이어는 <code>weight_multiplier</code>와 <code>_weight_object</code> 메소드를 모두 구현하거나 <code>weight_objects</code> 메소드만 구현할 수 있습니다. <code>weight_objects</code> 메소드는 모든 객체에 접근해야 하는 경우에만 재정의하며, 단순히 가중치 목록을 반환할 뿐 객체의 가중치를 직접 수정하지 않습니다. 최종 가중치는 <code>weight.BaseWeightHandler</code>에 의해 정규화되어 계산됩니다.
웨이어를 직접 작성하려면 <code>BaseHostFilter</code>를 상속해야 합니다. 웨이어는 <code>weight_multiplier</code>와 <code>_weight_object</code> 메소드를 모두 구현하거나 <code>weight_objects</code> 메소드만 구현할 수 있습니다. <code>weight_objects</code> 메소드는 모든 객체에 접근해야 하는 경우에만 재정의하며, 단순히 가중치 목록을 반환할 뿐 객체의 가중치를 직접 수정하지 않습니다. 최종 가중치는 <code>weight.BaseWeightHandler</code>에 의해 정규화되어 계산됩니다.
==같이 보기==
* [[컴퓨트]]
* [[스케줄러]]
* [[Nova 원격 콘솔 접근 설정]]
* [[Nova 설정 드라이브]]

제타위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-동일조건변경허락 3.0 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는 제타위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다. 저작권이 있는 내용을 허가 없이 저장하지 마세요!

취소 편집 도움말 (새 창에서 열림)