25장. 노드 배치 전략 구성
Pacemaker는 모든 노드의 리소스 할당 점수에 따라 리소스를 배치할 위치를 결정합니다. 리소스는 리소스의 점수가 가장 높은 노드에 할당됩니다. 이 할당 점수는 리소스 제약 조건, resource-stickiness 설정, 각 노드에 있는 리소스의 사전 실패 내역, 각 노드의 사용률 등 요인의 조합에서 파생됩니다.
모든 노드의 리소스 할당 점수가 동일하면 기본 배치 전략 Pacemaker에서 로드 밸런싱을 위해 할당된 리소스 수가 가장 적은 노드를 선택합니다. 각 노드의 리소스 수가 동일하면 CIB에 나열된 첫 번째 적격 노드가 리소스를 실행하도록 선택됩니다.
그러나 다른 리소스가 노드 용량(예: 메모리 또는 I/O)의 비율을 크게 다르게 사용하는 경우가 많습니다. 노드에 할당된 리소스 수만 고려하여 적절하게 부하를 분산할 수는 없습니다. 또한 결합된 요구 사항이 제공된 용량을 초과하도록 리소스를 배치하면 완전히 시작되지 않거나 성능이 저하된 상태로 실행될 수 있습니다. 이러한 요인을 고려하여 Pacemaker를 사용하면 다음 구성 요소를 구성할 수 있습니다.
- 특정 노드가 제공하는 용량
- 특정 리소스에 필요한 용량
- 리소스 배치를 위한 전체 전략
25.1. 사용률 속성 및 배치 전략 링크 복사링크가 클립보드에 복사되었습니다!
노드에서 제공하거나 리소스에 필요한 용량을 구성하려면 노드 및 리소스에 사용 속성을 사용할 수 있습니다. 리소스에 대한 사용률 변수를 설정하고 해당 변수에 값을 할당하여 리소스가 필요한 사항을 나타내는 다음 해당 노드에 대해 동일한 사용률 변수를 설정하고 해당 노드에서 제공하는 내용을 나타내는 값을 해당 변수에 할당합니다.
기본 설정에 따라 사용률 속성의 이름을 지정하고 구성 요구 사항에 따라 많은 이름과 값 쌍을 정의할 수 있습니다. 사용률 속성 값은 정수여야 합니다.
25.1.1. 노드 및 리소스 용량 구성 링크 복사링크가 클립보드에 복사되었습니다!
다음 예제에서는 두 개의 노드에 대한 CPU 용량의 utilization 속성을 구성하여 이 속성을 cpu 로 설정합니다. 또한 이 속성을 변수 메모리 로 설정하여 RAM 용량의 사용률 속성을 구성합니다. 이 예제에서는 다음을 수행합니다.
- 노드 1은 두 개의 CPU 용량과 RAM 용량이 2048인으로 정의됩니다.
- 노드 2는 CPU 용량을 4개로 제공하고 RAM 용량이 2048인 것으로 정의됩니다.
pcs node utilization node1 cpu=2 memory=2048 pcs node utilization node2 cpu=4 memory=2048
# pcs node utilization node1 cpu=2 memory=2048
# pcs node utilization node2 cpu=4 memory=2048
다음 예제에서는 세 가지 다른 리소스에 필요한 것과 동일한 사용률 속성을 지정합니다. 이 예제에서는 다음을 수행합니다.
-
리소스
dummy-small에는 CPU 용량이 1이고 RAM 용량이 1024입니다. -
리소스
dummy-medium에는 CPU 용량이 2이고 RAM 용량이 2048입니다. -
리소스
dummy-large에는 CPU 용량이 1이고 RAM 용량이 3072입니다.
pcs resource utilization dummy-small cpu=1 memory=1024 pcs resource utilization dummy-medium cpu=2 memory=2048 pcs resource utilization dummy-large cpu=3 memory=3072
# pcs resource utilization dummy-small cpu=1 memory=1024
# pcs resource utilization dummy-medium cpu=2 memory=2048
# pcs resource utilization dummy-large cpu=3 memory=3072
사용률 속성에 정의된 대로 리소스의 요구 사항을 충족할 수 있는 충분한 용량이 있는 경우 노드는 리소스에 적합한 것으로 간주됩니다.
25.1.2. 배치 전략 구성 링크 복사링크가 클립보드에 복사되었습니다!
노드가 제공하는 용량과 리소스에 필요한 용량을 구성한 후 placement-strategy 클러스터 속성을 설정해야 합니다. 그렇지 않으면 용량 구성이 적용되지 않습니다.
placement-strategy 클러스터 속성에 네 가지 값을 사용할 수 있습니다.
-
기본값- 사용률 값은 전혀 고려되지 않습니다. 리소스는 할당 점수에 따라 할당됩니다. 점수가 동일하면 리소스가 노드 간에 균등하게 분산됩니다. -
utilization- 사용 값은 노드가 적합한 것으로 간주되는지(즉, 리소스의 요구 사항을 충족하기에 충분한 여유 용량이 있는지 여부)를 결정할 때만 고려됩니다. 노드에 할당된 리소스 수에 따라 로드 밸런싱이 계속 수행됩니다. -
balanced- 노드가 리소스를 제공할 자격이 있는지와 부하 분산 시 사용 값을 고려하여 리소스 성능을 최적화하는 방식으로 리소스를 분산하려고 합니다. -
최소- 사용 값은 노드가 리소스를 제공할 자격이 있는지 여부를 결정할 때만 고려됩니다. 로드 밸런싱의 경우 가능한 한 적은 수의 노드에 리소스를 집중시키려고 하므로 나머지 노드에서 전력을 절감할 수 있습니다.
다음 예제 명령은 placement-strategy 값을 balanced 로 설정합니다. 이 명령을 실행한 후 Pacemaker는 복잡한 공동 배치 제약 조건 세트가 필요 없이 클러스터 전체에서 리소스의 부하를 균등하게 분배하도록 합니다.
pcs property set placement-strategy=balanced
# pcs property set placement-strategy=balanced