스케줄러 힌트 vs 플레이버 부가 스펙

Jmnote (토론 | 기여)님의 2024년 6월 14일 (금) 01:07 판 (→‎차이점)

1 개요

Scheduler hints versus flavor extra specs
스케줄러 힌트 vs 플레이버 엑스트라 스펙

Nova를 배포하고 작업하는 사람들은 종종 flavor extra specs와 scheduler hints가 스케줄링 결정에 어떤 역할을 하는지, 그리고 클라우드의 최종 사용자에게 기능을 노출하기 위해 어떤 것이 더 나은 선택인지에 대한 의문을 갖습니다. 여러 가지를 고려해야 하며 복잡해질 수 있습니다. 이 문서는 flavor extra specs와 scheduler hints의 주요 차이점과 단점에 대해 높은 수준에서 설명하려고 합니다.

2 엑스트라 스펙

일반적으로 flavor의 엑스트라 스펙은 클라우드의 구성 및 기능과 관련되어 있으며, 최종 사용자로부터 추상화되어야 합니다. 엑스트라 스펙은 호스트 집합체와 연결되어 있으며, VM의 감시기 동작(watchdog action)과 같은 하이퍼바이저에서 게스트가 생성되는 방식도 정의합니다. 엑스트라 스펙은 VM 동작에 관해서는 이미지 속성과 상호교환가능한 경우가 많습니다. 사용자에게는 flavor의 이름이나 특정 배포에 대한 문서, 예를 들어 베어메탈 인스턴스를 설정하는 방법을 설명하는 지침을 통해 이러한 내용이 전달됩니다.

3 스케줄러 힌트

스케줄러 힌트는 단순히 “힌트”라고도 하며, 서버 생성 시 스케줄러에 의해 서버의 배치를 조정하기 위해 지정할 수 있습니다. 이는 활성화된 스케줄러 필터에 따라 달라집니다. 예를 들어, ServerGroupAntiAffinityFilter 스케줄러 필터는 group 스케줄러 힌트와 함께 사용되어, 생성 중인 서버가 지정된 반-친화성 그룹의 구성원이어야 하며, 해당 필터는 그 서버를 그룹의 다른 모든 현재 구성원과 다른 컴퓨트 호스트에 배치해야 함을 나타냅니다.

힌트는 플레이버 엑스트라 스펙보다 더 “동적”이지 않습니다. 최종 사용자는 서버를 생성할 때 플레이버를 지정하고 선택적으로 힌트를 지정할 수 있지만, 궁극적으로 지정할 수 있는 것은 배포에 의해 정해진 고정적인 것입니다.

4 유사점

  • 스케줄러 힌트와 플레이버 엑스트라 스펙은 모두 스케줄러 필터에서 사용할 수 있습니다.
  • 둘 다 완전히 커스터마이징가능하며, Nova에는 이미지 속성과 달리 허용가능한 힌트나 엑스트라 스펙에 대한 화이트리스트가 없습니다.
  • 최종 사용자는 배포자의 동의 없이 새로운 동작을 실현할 수 없습니다. 예를 들어, 최종 사용자가 group 힌트를 지정하더라도, 배포자가 ServerGroupAntiAffinityFilter를 구성하지 않았다면 최종 사용자는 안티 어피니티(anti-affinity) 동작을 사용할 수 없습니다.

5 차이점

  • 서버의 호스트 위치 및/또는 동작은 다른 엑스트라 스펙을 가진 플레이버로 크기를 조정할 때 변경될 수 있습니다. 스케줄러 힌트는 서버 생성 시에만 지정할 수 있으며, 크기조정이나 다른 "이동" 작업 중에는 지정할 수 없습니다. 그러나 원래의 힌트는 이동 작업 중에도 여전히 적용됩니다.
  • 서버를 생성하거나 크기조정할 때 사용된 플레이버의 엑스트라 스펙은 2.47 마이크로버전의 컴퓨트 API를 통해 조회할 수 있습니다. 19.0.0 Stein 릴리스 기준으로, 컴퓨트 API를 통해 서버 생성 시 사용된 스케줄러 힌트를 조회할 수 있는 방법은 현재 없습니다.

Note

서버 생성 시 사용된 힌트를 노출하는 기능이 제안되었습니다. 이 기능이 없을 경우, 서버 메타데이터에 스케줄러 힌트를 포함시켜 나중에 메타데이터를 통해 조회하는 등의 방법으로 이 제한을 우회할 수 있습니다.

  • 힌트의 경우 최종 사용자가 힌트를 포함하지 않기로 결정할 수 있습니다. 반면, 최종 사용자는 새로운 플레이버를 생성할 수 없으므로(기본 정책에 따라) 엑스트라 스펙이 포함된 플레이버를 전달하지 않도록 할 수 없습니다. 플레이버는 배포자가 제어합니다.

6 발견가능성

7 상호운용성

8 어느 것을 쓸 것인가?

9 각주

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}