인스턴스의 고가용성 구성
OpenShift 환경의 Red Hat OpenStack Services에서 컴퓨팅 인스턴스의 고가용성 구성
초록
Red Hat 문서에 관한 피드백 제공 링크 복사링크가 클립보드에 복사되었습니다!
문서 개선을 위한 의견을 보내 주십시오. Red Hat이 어떻게 더 나은지 알려주십시오.
Create Issue 양식을 사용하여 OpenShift (RHOSO) 또는 이전 Red Hat OpenStack Platform (RHOSP)의 Red Hat OpenStack Services 문서에 대한 피드백을 제공합니다. RHOSO 또는 RHOSP 문서에 대한 문제를 생성할 때 RHOSO Jira 프로젝트에 문제가 기록되어 피드백의 진행 상황을 추적할 수 있습니다.
문제 생성 양식을 완료하려면 Jira에 로그인해야 합니다. Red Hat Jira 계정이 없는 경우 https://issues.redhat.com 에서 계정을 생성할 수 있습니다.
- 다음 링크를 클릭하여 문제 생성 페이지를 엽니다. https://issues.redhat.com/secure/CreateIssueDetails!init.jspa?pid=12336920&summary=Documentation%20feedback:%20%3CAdd%20summary%20here%3E&issuetype=1&description=<Include+the+documentation+URL,+the%20chapter+or+section+number,+and+a+detailed+description+of+the+issue.>&components=12391143&priority=10300
- 요약 및 설명 필드를 작성합니다. 설명 필드에 문서 URL, 장 또는 섹션 번호, 문제에 대한 자세한 설명을 포함합니다. 양식의 다른 필드를 수정하지 마십시오.
- 생성을 클릭합니다.
1장. 개요 링크 복사링크가 클립보드에 복사되었습니다!
Compute 인스턴스(Instance HA) 서비스에 대해 OpenShift(RHOSO) 고가용성을 사용하여 실패한 컴퓨팅 노드에서 인스턴스를 비우고 다른 정상 컴퓨팅 노드에서 인스턴스를 다시 생성하여 컴퓨팅 인스턴스의 고가용성을 관리할 수 있습니다.
- 인스턴스 HA 서비스는 공유 스토리지 또는 로컬 스토리지 환경에서 작동하므로 비우는 인스턴스는 고정 IP 주소 및 유동 IP 주소와 같은 네트워크 구성을 동일하게 유지합니다.
- 다시 생성된 인스턴스는 새 컴퓨팅 노드 내에서 동일한 특성을 유지합니다.
기본적으로 모든 컴퓨팅 노드는 비워 둘 수 있습니다. 그러나 중요한 인스턴스를 포함하는 컴퓨팅 노드만 비워야 합니다. 인스턴스 HA 서비스는 중요한 인스턴스를 실행하는 컴퓨팅 노드를 식별하는 데 다음 두 가지 방법을 제공합니다.
- 이러한 태그된 플레이버 또는 이미지를 구현하는 인스턴스가 포함된 Compute 노드에는 비워 둘 수 있도록 특정 이미지 또는 플레이버에 태그를 지정할 수 있습니다.
- 호스트 집계에 태그를 지정하여 태그가 지정된 호스트 집계에 포함된 모든 컴퓨팅 노드를 비울 수 있도록 할 수 있습니다.
기본적으로 이미지, 플레이버 또는 호스트 집계를 태그하는 경우 인스턴스 HA 서비스는 태그가 지정되지 않은 모든 컴퓨팅 노드 또는 인스턴스를 무시합니다. 자세한 내용은 비우기에 대한 태그 이미지, 플레이버 또는 호스트 집계를 참조하십시오.
인스턴스 HA 서비스는 실패한 컴퓨팅 노드의 인스턴스 비우기를 사용자 지정하는 데 사용할 수 있는 다양한 매개변수와 옵션을 제공합니다. 자세한 내용은 인스턴스 HA 서비스가 실패한 컴퓨팅 노드를 비우는 방법을 참조하십시오.
인스턴스 HA 서비스는 실패한 컴퓨팅 노드 비우는 프로세스를 관리하는 데 도움이 되며, 경우에 따라 조치를 취해야 합니다. 자세한 내용은 실패한 컴퓨팅 노드에서 인스턴스를 비우는 프로세스를 참조하십시오.
1.1. 인스턴스 HA 서비스가 실패한 컴퓨팅 노드를 비우는 방법 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat OpenStack Services on OpenShift(RHOSO) 서비스는 Compute 인스턴스(인스턴스 HA)의 고가용성을 통해 다음과 같은 반복 프로세스를 사용하여 실패한 컴퓨팅 노드의 인스턴스를 비웁니다.
프로세스
인스턴스 HA 서비스는 Compute 서비스(nova) 데이터베이스를 폴링하여 비우기를 받을 수 있는 실패한 컴퓨팅 노드를 식별합니다. 폴링 간격은
POLL인스턴스 HA 서비스 매개변수로 지정되며, 기본적으로 45초입니다.인스턴스 HA 서비스는 다음 필터링 방법론을 사용합니다.
- 비우기를 위해 컴퓨팅 노드에는 인스턴스가 포함되어야 합니다.
- 기본적으로 특정 플레이버 또는 이미지가 태그된 경우 이러한 플레이버 또는 이미지를 사용하는 인스턴스가 포함된 Compute 노드는 비워 둘 수 있습니다. 자세한 내용은 비우기에 대한 태그 이미지, 플레이버 또는 호스트 집계를 참조하십시오.
특정 호스트 집계를 태그한 경우 이러한 호스트 집계의 컴퓨팅 노드는 비워 둘 수 있습니다.
비우기를 받을 수 없는 모든 컴퓨팅 노드는 무시됩니다.
각 컴퓨팅 노드의 상태는
활성화되거나비활성화되어 있습니다. 이 컴퓨팅 노드가 의도적으로 비활성화되었다고 가정하기 때문에 비우기 및비활성화상태가 있는 모든 컴퓨팅 노드는 무시됩니다. 자세한 내용은 컴퓨팅 노드 비우기를 참조하십시오.참고정상적인 컴퓨팅 노드를 의도적으로 비활성화하여 실패한 컴퓨팅 노드 인스턴스를 비우기에 충분한 용량을 제공할 수 있습니다. 자세한 내용은 정상적인 컴퓨팅 노드 예약을 참조하십시오.
각 컴퓨팅 노드의 상태는
up또는down입니다. 상태가down인 경우 비워 둘 수 있는 컴퓨팅 노드가 실패했습니다.DELTA인스턴스 HA 서비스 매개변수는 실패한 컴퓨팅 노드를 감지하기 위해 인스턴스 HA 서비스에서 수행한 시간을 줄일 수 있습니다. 이 상태가 지정된DELTA기간 내에 업데이트되지 않는경우 활성화된상태를 보고하는 비우기를 수행할 수 있는 모든 컴퓨팅 노드도 실패했습니다. 기본적으로DELTA기간은 30초입니다. 자세한 내용은 인스턴스 HA 서비스 매개변수 편집을 참조하십시오.인스턴스 HA 서비스는 실패한 컴퓨팅 노드의 백분율을 계산하고 이 백분율을
THRESHOLD인스턴스 HA 서비스 매개변수 값과 비교합니다.-
백분율이
THRESHOLD값보다 작거나 같은 경우 인스턴스 HA 서비스는 컴퓨팅 노드를 계속 비웁니다. 백분율이
THRESHOLD값을 초과하면 인스턴스 HA 서비스에서 로그 메시지에 이 값을 표시하고 컴퓨팅 노드 비우기를 중지합니다.참고비우기 프로세스가 불가능하게 되기 전에 실패할 수 있는 컴퓨팅 노드 수를 지정하려면
THRESHOLD매개변수를 설정해야 합니다. 예를 들어 네트워크가 심각하게 손상되었거나 정상 컴퓨팅 노드가 충분하지 않은 경우 실패한 컴퓨팅 노드에서 인스턴스를 비울 수 있습니다.
-
백분율이
-
DISABLEDInstance HA service 매개변수를true로 설정하면 인스턴스 HA 서비스가 실패한 컴퓨팅 노드를 비우지 않습니다. 이 경우 인스턴스 HA 서비스는 컴퓨팅 노드가다운되었지만 더 이상 아무 작업도 수행하지 않습니다.DISABLED매개변수는 기본적으로false입니다. 자세한 내용은 컴퓨팅 노드 비우기를 참조하십시오. - 정상적인 컴퓨팅 노드를 예약한 경우 인스턴스 HA 서비스는 실패한 컴퓨팅 노드 각각에 대해 하나의 예약된 컴퓨팅 노드를 활성화하려고 합니다. 자세한 내용은 정상적인 컴퓨팅 노드 예약을 참조하십시오.
컴퓨팅 노드가 커널 덤프를 캡처하는지 감지하도록 인스턴스 HA 서비스를 구성하는 경우 인스턴스 HA 서비스는 각 컴퓨팅 노드의 펜싱 또는 전원을 끄고 비우기 전에
kdump서비스가 완료될 때까지 기다립니다. 자세한 내용은 컴퓨팅 노드가 커널 덤프를 캡처하는지 탐지를 참조하십시오.비우기를 받을 수 있는 모든 컴퓨팅 노드의 펜싱 에이전트를 구성해야 합니다. 자세한 내용은 컴퓨팅 노드의 펜싱 구성을 참조하십시오.
참고구성된 펜싱 에이전트가 없으면 컴퓨팅 노드를 비울 수 없습니다.
실패한 컴퓨팅 노드를 펜싱한 후 인스턴스 HA 서비스는 Compute 서비스(nova)를 호출하여 다음 작업을 수행합니다.
-
실패한 이 컴퓨팅 노드의 상태를
disabled로 설정하고--disable-reason인수에 대한 설명이 포함된 타임스탬프 메시지를 제공합니다. 이 컴퓨팅 노드의
forced Down플래그를true로 설정합니다.참고인스턴스 HA 서비스는 ACTIVE,ERROR 또는 STOPPED 상태인 인스턴스를 비웁니다. Compute 서비스는 다른 상태의 인스턴스를 비우지 않도록 합니다.
-
실패한 이 컴퓨팅 노드의 상태를
-
LEAVE_DISABLED인스턴스 HA 서비스 매개변수를true로 설정하면 비어 있는 컴퓨팅 노드가 비활성화된 상태로 유지됩니다. 이 작업을 수행하는 한 가지 이유는 결함이 있는 하드웨어로 인해 컴퓨팅 노드가 실패하는 경우 컴퓨팅 노드를 간단히 다시 시작하지 않도록 하는 것입니다. 기본적으로LEAVE_DISABLED매개변수는false로 설정되므로 비활성화된 컴퓨팅 노드를 성공적으로 비우는 후 비활성화됩니다. 이 경우 인스턴스 HA 서비스는 연결된 펜싱 에이전트에 컴퓨팅 노드의 전원을 켭니다. -
컴퓨팅 노드를 다시 사용할 때 컴퓨팅 노드를 비우고 성공적으로 재부팅하면 인스턴스 HA 서비스에서 실패한 컴퓨팅 노드의
Forced Down플래그를false로 설정합니다. 컴퓨팅 노드 비우기가 느리거나 실패한 경우 컴퓨팅 노드의Forced Down플래그를false로 설정할 수 있습니다. 자세한 내용은 Rehabilitating evacuated Compute nodes 를 참조하십시오. 기본적으로 인스턴스 HA 서비스는 실패한 컴퓨팅 노드의 인스턴스 비우기를 모니터링하지 않습니다. 해당 Compute 서비스(nova) API 요청이 수락되면 이러한 요청이 성공한다고 가정합니다.
SMART_EVACUATION인스턴스 HA 서비스 매개변수를true로 설정하면 인스턴스 HA 서비스에서 각 인스턴스의 비우기를 모니터링합니다. 이 경우 인스턴스 HA 서비스는 실패하는 경우 최대 5번 인스턴스를 다시 시도합니다. 인스턴스 비우기가 5회 실패하면 인스턴스 HA 서비스에서 다음 작업을 수행합니다.- 인스턴스 HA 서비스는 이 컴퓨팅 노드의 모든 인스턴스 비우기를 중지합니다.
-
인스턴스 HA 서비스는 실패한 컴퓨팅 노드의 상태를
disabled로 설정하고--disable-reason인수에 대한 설명 타임스탬프 메시지를 제공합니다. Instance HA 서비스는 이 컴퓨팅 노드의
Forced Down플래그를true로 설정합니다.실패한 컴퓨팅 노드를 복구하려면 다음 작업을 수행해야 합니다.
- 이 인스턴스를 비울 수 없는 이유를 확인해야 합니다.
- 이 컴퓨팅 노드의 다른 모든 인스턴스를 비웁니다.
-
이 컴퓨팅 노드의
Forced Down플래그를false로 설정해야 합니다. - 이 컴퓨팅 노드를 활성화해야 합니다.
이 컴퓨팅 노드가 성공적으로 재부팅되었는지 확인해야 합니다.
SMART_EVACUATION인스턴스 HA 서비스 매개변수를true로 설정하면WORKERS인스턴스 HA 서비스 매개변수를 사용하여 인스턴스 HA 서비스가 기본적으로 4인 동시에 비울 수 있는 인스턴스 수를 지정할 수 있습니다.SMART_EVACUATION매개변수는 기본적으로false입니다.
기본적으로 인스턴스 HA 서비스는 활성화된 각 컴퓨팅 노드를 주기적으로 폴링하지만
forced Down플래그가true로 설정되어 성공적으로 재부팅되었는지 확인합니다. 폴링 간격은POLL인스턴스 HA 서비스 매개변수로 지정되며, 기본적으로 45초입니다.FORCE_ENABLEInstance HA 서비스 매개변수를true로 설정하면 인스턴스 HA 서비스에서 실패한 컴퓨팅 노드의 인스턴스 비우기를 무시합니다. 그러나SMART_EVACUATION인스턴스 HA 서비스 매개변수를true로 설정하여 이 실패한 비우기를 모니터링 중인 경우에는 적용되지 않습니다. 이 경우 이전 단계에서 설명한 대로 실패한 컴퓨팅 노드가 명시적으로 비활성화되어 이 컴퓨팅 노드를 직접 정리해야 합니다. 기본적으로FORCE_ENABLE매개변수는false입니다.
1.2. 비우기를 위한 이미지, 플레이버 또는 호스트 집계 태그 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 모든 컴퓨팅 노드의 모든 인스턴스는 비우기를 수행할 수 있습니다. 그러나 중요한 인스턴스를 포함하는 컴퓨팅 노드만 비워야 합니다. 태그 지정을 사용하여 OpenShift(RHOSO)에서 컴퓨팅 인스턴스(인스턴스 HA) 서비스에서 사용할 Red Hat OpenStack Services를 비울 인스턴스를 식별할 수 있습니다.
CryostatA CUABLE_TAG Instance HA service 매개변수 값을 지정하는 플레이버 또는 이미지 메타데이터에 특성을 추가하여 중요한 플레이버 또는 이미지에 태그를 지정할 수 있습니다. 자세한 내용은 인스턴스 생성을 위해 Compute 서비스 구성의 플레이버 메타데이터 를 참조하십시오.
CryostatA CUABLE_TAG Instance HA service 매개변수의 기본값은 evacuable 입니다.
이 경우 다음 인스턴스 HA 서비스 매개변수 중 하나 또는 둘 다 true 로 설정된 경우 이러한 태그된 플레이버 또는 이미지를 구현하는 인스턴스가 포함된 모든 컴퓨팅 노드를 비울 수 있습니다.
-
기본적으로
TAGGED_FLAVORS인스턴스 HA 서비스 매개 변수는true로 설정되어 인스턴스 HA 서비스에서 태그된 플레이버를 확인합니다.TAGGED_FLAVORS매개변수를false로 설정하면 인스턴스 HA 서비스에서 태그된 플레이버를 확인하지 않습니다. 자세한 내용은 인스턴스 HA 서비스 매개변수 편집을 참조하십시오. -
기본적으로
TAGGED_IMAGES인스턴스 HA 서비스 매개 변수는true로 설정되어 인스턴스 HA 서비스에서 태그가 지정된 이미지를 확인합니다.TAGGED_IMAGES매개변수를false로 설정하면 인스턴스 HA 서비스에서 태그가 지정된 이미지를 확인하지 않습니다.
호스트 집계에 특성을 추가하여 CryostatA CUABLE_TAG 인스턴스 HA 서비스 매개변수의 값을 지정하여 중요한 호스트 집계를 태그할 수 있습니다. 자세한 내용은 인스턴스 생성을 위해 Compute 서비스 구성에서 호스트 집계 생성을 참조하십시오.
이 경우 다음 Instance HA 서비스 매개변수가 true 로 설정된 경우 이러한 태그된 호스트 집계에 포함된 모든 컴퓨팅 노드를 비울 수 있습니다.
-
기본적으로
TAGGED_AGREGATES인스턴스 HA 서비스 매개변수는true로 설정되어 있으므로 인스턴스 HA 서비스에서 태그된 호스트 집계를 확인합니다.TAGGED_AGREGATES매개변수를false로 설정하면 인스턴스 HA 서비스에서 태그된 호스트 집계를 확인하지 않으므로 모든 적격 컴퓨팅 노드를 비웁니다.
1.3. 정상적인 컴퓨팅 노드 예약 링크 복사링크가 클립보드에 복사되었습니다!
정상적인 컴퓨팅 노드를 의도적으로 예약하여 실패한 컴퓨팅 노드 인스턴스를 비우기에 충분한 용량을 제공할 수 있습니다. Red Hat OpenStack Services on OpenShift (RHOSO) 고가용성 Compute 인스턴스(인스턴스 HA)를 사용하면 실패한 컴퓨팅 노드마다 예약된 컴퓨팅 노드 1개를 사용할 수 있습니다.
프로세스
-
이 값을
true로 설정하여 인스턴스 HA 서비스의RESERVED_HOSTS매개변수를 활성화합니다. 이 매개변수는 기본적으로false입니다. 자세한 내용은 인스턴스 HA 서비스 매개변수 편집을 참조하십시오. 예약할 각 정상 컴퓨팅 노드를 비활성화하고
--disable-reason인수에예약된단어를 지정합니다. 예를 들어compute-1을 예약하려면 다음 명령을 지정합니다.$ openstack compute service set --disable --disable-reason “reserved” compute-1 nova-compute- 예약하려는 모든 컴퓨팅 노드를 비활성화할 때까지 2단계를 반복합니다.
1.4. 컴퓨팅 노드가 커널 덤프를 캡처하는지 감지 링크 복사링크가 클립보드에 복사되었습니다!
컴퓨팅 노드가 커널 덤프를 캡처하는지 감지하도록 OpenShift(RHOSO) 고가용성(Instance HA) 서비스에서 Red Hat OpenStack Services를 구성할 수 있습니다. 이 경우 인스턴스 HA 서비스는 kdump 서비스가 각 컴퓨팅 노드를 펜싱하고 비우기 전에 kdump 서비스가 완료될 때까지 기다립니다.
사전 요구 사항
-
또한 오류를 모니터링하려는 모든 컴퓨팅 노드에
fence_kdumpSTONITH 에이전트를 설치해야 합니다. - 인스턴스를 비워야 하는 모든 컴퓨팅 노드에 대한 관리자 권한이 있습니다.
- 인스턴스를 비워야 하는 모든 컴퓨팅 노드에 고가용성 애드온을 사용하여 RHEL(Red Hat Enterprise Linux) 9를 설치했습니다.
-
kdump서비스 및fence_kdumpSTONITH 에이전트의 구성 옵션을 계획했습니다. fence_kdumpSTONITH 에이전트의 UDPkdump알림을 전송하도록 선택한 네트워크는 다음 요구 사항을 충족해야 합니다.- 이 네트워크는 인스턴스를 비워야 하는 컴퓨팅 노드와 공유해야 합니다.
- 실패한 컴퓨팅 노드의 소스 IP 주소가 Compute 서비스(nova)로 알려진 각 컴퓨팅 호스트 이름으로 변환되도록 이 네트워크는 역방향 DNS 조회를 지원해야 합니다.
- 이 네트워크는 OVS Bonds 또는 OVS 브리지를 사용해서는 안 됩니다. 태그되지 않은 인터페이스 또는 태그된 VLAN 및 Linux 본딩을 적절하게 사용해야 합니다.
프로세스
컴퓨팅 노드에서
kdump서비스를 구성하려면 다음 방법 중 하나를 사용합니다.-
명령줄을 사용하여
kdump서비스를 구성할 수 있습니다. 자세한 내용은 RHEL 관리, 모니터링 및 커널 업데이트 의 명령줄에서 kdump 구성 을 참조하십시오. -
웹 콘솔을 사용하여
kdump서비스를 구성할 수 있습니다. 자세한 내용은 RHEL 관리, 모니터링 및 커널 업데이트 의 웹 콘솔에서 kdump 구성 을 참조하십시오.
-
명령줄을 사용하여
kdump서비스가 모든 컴퓨팅 노드에서 활성화되어 있는지 확인합니다. 다음 명령의 출력이활성상태인지 확인하여 이 작업을 수행할 수 있습니다.# systemctl is-active kdump컴퓨팅 노드에
fence_kdumpSTONITH 에이전트를 설치합니다.# dnf install fence-agents-kdumpYAML 인스턴스 HA 서비스 매니페스트 파일에서 인스턴스 HA 서비스 포드의 사양을 정의할 때 다음 옵션을 포함합니다.
-
.spec.networkAttachments:fence_kdumpSTONITH 에이전트의 UDPkdump알림을 전송하도록 선택한 네트워크를 지정해야 합니다. 예를 들어networkAttachments: ['internalapi']에서는 지정된 네트워크로internalapi를 지정합니다. .spec.instanceHaKdumpPort:fence_kdumpSTONITH 에이전트 7410에 기본 UDP 포트를 사용하지 않는 경우 이 옵션을 사용하여 선택한 UDP 포트를 지정해야 합니다.YAML 인스턴스 HA 서비스 매니페스트 파일을 생성하고 사양을 정의하는 방법에 대한 자세한 내용은 인스턴스 HA 서비스 Pod 사양 구성을 참조하십시오.
-
- 인스턴스 HA 서비스를 배포합니다. 자세한 내용은 인스턴스 HA 서비스 배포를 참조하십시오.
CHECK_KDUMP인스턴스 HA 서비스 매개변수를true로 설정합니다. 자세한 내용은 인스턴스 HA 서비스 매개변수 편집을 참조하십시오.주의내부
CHECK_KDUMP시간 제한을 30초로 수용하도록POLL인스턴스 HA 서비스 매개변수를 기본 설정인 45초 이상으로 설정해야 합니다. POLL 매개변수 값이 45초 미만이면 인스턴스를 비울 때 오류가 발생할 수 있습니다.배포된 인스턴스 HA 서비스 포드의 IP 주소를 검색합니다. 예를 들어
internalapi가 지정된 네트워크인 경우 다음 명령을 사용합니다.$ oc get instanceha -o json |jq -r '.items[0].status.networkAttachments["openstack/internalapi"][0]'배포된 인스턴스 HA 서비스 Pod의 IP 주소를 지정하도록 컴퓨팅 노드에서
fence_kdumpSTONITH 에이전트를 구성합니다. 예를 들어 172.16.0.178이 Instance HA 서비스 Pod의 IP 주소인 경우:# echo "fence_kdump_nodes 172.16.0.178 >> /etc/kdump.conf컴퓨팅 노드에서
fence_kdumpSTONITH 에이전트를 구성하여 UDP 포트, 프레임, 알림 메시지 수 및 해당 간격을 지정합니다. 예를 들어 다음 구성은 기본 7410 UDP 포트를 사용하고, 5초 간격으로 필요한 만큼 메시지를 전송하며kdump프로세스가 완료될 때까지 계속 메시지를 보냅니다.# echo 'fence_kdump_args -p 7410 -f auto -c 0 -i 5' >> /etc/kdump.confkdump서비스를 다시 시작하여 컴퓨팅 노드에서initrd이미지를 다시 생성합니다.# systemctl restart kdump
검증
컴퓨팅 노드 중 하나를 충돌하여 Instance HA 서비스 Pod 및
fence_kdump에이전트가 올바르게 구성되었는지 확인합니다.# echo c > /proc/sysrq-trigger-
충돌한 컴퓨팅 노드에서 관련 콘솔을 열고
kdump프로세스의 진행 상황을 확인할 수 있는지 확인합니다. -
인스턴스 HA 서비스 포드 로그 파일을 열고 이 로그 파일이 이 메시지를 수신하는지 확인합니다. 즉, 충돌한 컴퓨팅 노드를 지정하는
다음 compute(s)가 kdump입니다. 로그 파일을 보는 방법에 대한 자세한 내용은 인스턴스 HA 서비스 문제 해결을 참조하십시오.
2장. 컴퓨팅 인스턴스 서비스의 고가용성 배포 및 구성 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat OpenStack Services on OpenShift(RHOSO)의 Compute 인스턴스(인스턴스 HA)의 고가용성은 RHOSO가 기본적으로 설치하는 infra-operator 에 의해 관리됩니다.
실패한 컴퓨팅 노드에서 인스턴스를 비우려면 인스턴스 HA 서비스를 배포하여 컴퓨팅 노드 모니터링 프로세스를 자동화해야 합니다. 자세한 내용은 인스턴스 HA 서비스 배포를 참조하십시오.
RHOSO HCI(하이퍼 컨버지드 인프라) 환경에서 스토리지를 호스팅하는 컴퓨팅 노드를 비우려면 인스턴스 HA 서비스를 사용해서는 안 됩니다. HCI 환경에서는 Red Hat Ceph Storage 서비스를 호스팅하지 않는 컴퓨팅 노드의 하위 집합을 태그해야 합니다. 자세한 내용은 비우기에 대한 태그 이미지, 플레이버 또는 호스트 집계를 참조하십시오.
2.1. 인스턴스 HA 서비스 배포 링크 복사링크가 클립보드에 복사되었습니다!
실패한 컴퓨팅 노드 모니터링 프로세스를 자동화하고 실패한 컴퓨팅 노드에서 인스턴스를 비우려면 OpenShift(인스턴스 HA)에 Red Hat OpenStack Services를 배포해야 합니다.
클라우드가 여러 개 정의되어 있는 경우 별도의 인스턴스 HA 서비스 Pod를 생성하여 각 클라우드를 모니터링할 수 있습니다. 자세한 내용은 Instance HA 서비스 Pod 사양 구성을 참조하십시오.
프로세스
YAML 인스턴스 HA 서비스 매니페스트 파일을 생성합니다(예:
Instance-HA-service-0.yaml):-
인스턴스 HA 서비스 Pod의 사양
.spec및 name.metadata.name을 정의합니다. 자세한 내용은 Instance HA 서비스 Pod 사양 구성을 참조하십시오. -
비워 둘 수 있는 모든 컴퓨팅 노드의 펜싱 에이전트를 구성한 YAML 파일의 이름을 지정하도록
.spec.fencingSecret을 구성합니다. 이 예에서는 파일을fencing-0이라고 합니다. 자세한 내용은 컴퓨팅 노드의 펜싱 구성을 참조하십시오.
-
인스턴스 HA 서비스 Pod의 사양
인스턴스 HA 서비스 매니페스트 및
fencingSecret파일을 적용합니다.$ oc apply -f fencing-0.yaml $ oc apply -f Instance-HA-service-0.yaml계속하기 전에 인스턴스 HA 서비스 포드
메시지필드에설치 완료가 표시되는지 확인합니다.$ oc get instanceha -w NAME STATUS MESSAGE instanceha-0 True Setup complete참고매니페스트 파일에 지정한
.metadata.name에 고유한 문자열이 추가됩니다.배포된 인스턴스 HA 서비스 Pod의 정규화된 이름과 상태를 확인합니다.
$ oc get pods |grep instanceha instanceha-0-54f865b6dd-w6h4t 1/1 Running 0 10h이 예에서 정규화된 이름은
instanceha-0-54f865b6dd-w6h4t입니다.주의인스턴스 HA 서비스 포드가 다시 시작될 때마다 새로운 고유한 정규화된 이름이 생성됩니다. 이전 이름과 연결된 모든 로그 항목이 제거됩니다. 자세한 내용은 Instance HA 서비스 문제 해결을 참조하십시오.
다음 단계
-
인스턴스 HA 서비스 Pod 사양을 생성할 때
.spec.instanceHaConfigMap을 지정하지 않은 경우infra-operator는instanceha-config라는ConfigMap을 자동으로 생성합니다. 이 ConfigMap은 필요에 따라 수정할 수 있는 인스턴스 HA 서비스 매개변수의 기본값을 제공합니다. 자세한 내용은 Instance HA 서비스 매개변수 및 Instance HA 서비스 매개변수 편집을 참조하십시오. - 인스턴스 HA 서비스를 완전히 제거할 수 있습니다. 자세한 내용은 인스턴스 HA 서비스 제거를 참조하십시오.
2.1.1. 인스턴스 HA 서비스 Pod 사양 구성 링크 복사링크가 클립보드에 복사되었습니다!
Compute 인스턴스(Instance HA) 서비스에 대한 OpenShift(RHOSO) 고가용성에 Red Hat OpenStack Services를 배포할 때 YAML 인스턴스 HA 서비스 매니페스트 파일을 생성하여 인스턴스 HA 서비스 포드의 사양 을 정의해야 합니다.
이 예에서 YAML 인스턴스 HA 서비스 매니페스트 파일은 Instance-HA-service-0.yaml 입니다.
$ cat Instance-HA-service-0.yaml
---
apiVersion: instanceha.openstack.org/v1beta1
kind: InstanceHa
metadata:
name: instanceha-0
spec:
caBundleSecretName: combined-ca-bundle
fencingSecret: fencing-0
#instanceHaConfigMap:
#networkAttachments: ['internalapi']
#instanceHaKdumpPort:
#openStackCloud: "default"
#openStackConfigMap:
#openStackConfigSecret:
#nodeSelector:
- 1
- 인스턴스 HA 서비스 Pod의 사양
.spec을 정의할 때 다음 값을 지정해야 합니다. - 2
- RHOSO 배포 중에 사용된 CA 인증서 번들이 포함된 보안 이름을 지정하려면
.spec.caBundleSecretName을 사용해야 합니다. 기본적으로.spec.caBundleSecretName은combined-ca-bundle로 설정되지만 사용자 정의 TLS 인증서를 구현하면 이 값이 변경될 수 있습니다. 자세한 내용은 보안 서비스 구성에서 OpenShift에서 Red Hat OpenStack Services에 대한 사용자 지정 TLS 인증서 추가 를 참조하십시오. - 3
.spec.fencingSecret을 사용하여 비워 둘 수 있는 모든 컴퓨팅 노드의 구성된 펜싱 에이전트로 YAML 파일의 이름을 지정해야 합니다. 이 예에서는 이 파일을fencing-0이라고 합니다. 자세한 내용은 컴퓨팅 노드의 펜싱 구성을 참조하십시오.참고인스턴스 HA 서비스 포드의 사양을 정의하는 다른 모든 값은 선택 사항입니다. 이 예제에서는 주석 처리되었습니다.
- 4
- 선택 사항: 구성된 인스턴스 HA 서비스 매개변수를 제공하는
ConfigMap이 포함된 YAML 파일을 생성하고 이름을 지정할 수 있습니다. 이 경우.spec.instanceHaConfigMap을 사용하여 이 YAML 파일의 이름을 지정해야 합니다. 이 파일을 생성하지 않으면 인스턴스 HA 서비스가 설치될 때instanceha-config라는 YAML 파일이 자동으로 생성되어 인스턴스 HA 서비스 매개변수의 기본값을 제공합니다. - 5
- 선택 사항: 컴퓨팅 노드가 커널 덤프를 캡처하는지 감지하도록 인스턴스 HA 서비스를 구성하는 경우 다음을 수행합니다.
-
kdump서비스에서kdump알림을 수신하는 네트워크를 지정하려면.spec.networkAttachments를 사용해야 합니다. -
기본 UDP 포트 7410을 사용하지 않는 경우
kdump서비스에서kdump알림을 수신하는 UDP 포트를 지정하려면.spec.instanceHaKdumpPort를 사용해야 합니다. 자세한 내용은 컴퓨팅 노드가 커널 덤프를 캡처하는지 탐지를 참조하십시오.
-
- 6
- 선택 사항: 여러 클라우드가 정의된 경우 별도의 인스턴스 HA 서비스 Pod를 생성하여 각 클라우드를 모니터링할 수 있습니다. 이 경우 다음 설정을 사용하여 각 클라우드에 필요한 인증 세부 정보를 지정할 수 있습니다.
-
.spec.openStackCloud를 사용하여clouds.yaml파일에 자세히 설명된 클라우드의 이름을 지정할 수 있습니다. 값을 지정하지 않으면기본값이사용됩니다. -
.spec.openStackConfigMap을 사용하여clouds.yaml파일이 포함된ConfigMap의 이름을 지정할 수 있습니다. -
.spec.openStackConfigSecret을 사용하여 관리자 암호가 포함된 시크릿 이름을 지정할 수 있습니다.
-
- 7
- 선택 사항:
.spec.nodeSelector를 사용하여 실행할 인스턴스 HA 서비스 Pod가 필요한RHOCP(Red Hat OpenShift Container Platform) 작업자 노드의 레이블을 지정할 수 있습니다. 자세한 내용은 Cryostat 노드 의 노드 선택기를 사용하여 특정 노드에 Pod 배치를 참조하십시오.
2.1.2. 컴퓨팅 노드의 펜싱 구성 링크 복사링크가 클립보드에 복사되었습니다!
비우기를 받을 수 있는 각 컴퓨팅 노드를 펜싱해야 합니다. Compute 인스턴스(Instance HA) 서비스 Pod를 위해 OpenShift(RHOSO)에 Red Hat OpenStack Services를 배포할 때 지정하는 fencingSecret YAML 파일에 펜싱 에이전트를 구성합니다.
구성된 펜싱 에이전트가 없으면 컴퓨팅 노드를 비울 수 없습니다.
지원되는 펜싱 에이전트는 Metal의 펜싱 에이전트인 IPMI, Redfish 또는 BareMetalHost(BMH)입니다.
다음은 지원되는 세 가지 펜싱 에이전트의 구성 예를 제공하는 fencing-0.yaml 이라는 fencingSecret YAML 파일의 예입니다.
Compute 서비스(nova) 호스트 이름을 사용하여 각 컴퓨팅 노드(예: compute-0 )를 식별해야 합니다. 다음 명령을 사용하여 이러한 호스트 이름( $ openstack compute service list )을 가져올 수 있습니다.
$ cat fencing-0.yaml
---
apiVersion: v1
kind: Secret
metadata:
name: fencing-0
stringData:
fencing.yaml: |
FencingConfig:
compute-0:
agent: ipmi
ipaddr: 192.168.111.9
ipport: 443
login: admin
passwd: password
compute-1:
agent: redfish
ipaddr: 192.158.12.3
ipport: 8000
tls: 'true'
login: admin
passwd: password
uuid: b7d32e6b-edbc-477d-80bf-4cda77ada8cb
compute-2:
agent: bmh
host: edpm-compute-0
namespace: openstack-edpm-ipam
token: $2a$10$yc9Q.eHLiQmCdS0/LzxJ5.V5/lrmx8JxwFbU5X4Hdr1albfDl7wtm
- 1
- IPMI 펜싱 에이전트
에이전트를 제공해야 합니다. ipmi는 IPMI(Intelligent Platform Management Interface)의 IP 연결 및 사용자 인증 세부 정보를 제공해야 합니다. - 2
- Redfish 펜싱 에이전트
에이전트를 제공해야 합니다. redfish는 Redfish 호스트 인터페이스의 IP 연결 및 사용자 인증 세부 정보를 사용해야 합니다.Redfish 호스트 인터페이스에서 기본 443 포트를 사용하지 않는 경우
ipport매개변수를 지정해야 합니다. quotes에tls매개변수의 값을'true'로 지정해야 합니다.uuid매개변수는표준서버의 경우 선택 사항입니다. 이 경우 인스턴스 HA 서비스에서 기본값System.Embedded.1을 사용하여 Redfish 노드 UUID를 지정합니다. - 3
- MetalMetalHost(BMH) 에이전트의 BareMetalHost(BMH) 펜싱
에이전트를 제공해야 합니다. bmh에는 연결된 BMH 리소스의 세부 정보가 포함됩니다.이 명령을 사용하여 BMH 리소스의
호스트및네임스페이스를가져올 수 있습니다.$ oc get bmh NAME STATE CONSUMER ONLINE ERROR AGE edpm-compute-0 provisioned openstack-edpm-ipam true 17h edpm-compute-1 provisioned openstack-edpm-ipam true 17hNAME열은 BMH 리소스호스트를 제공합니다(예:edpm-compute-0).CONSUMER열에는 BMH 리소스네임스페이스(예:openstack-edpm-ipam)가 있습니다. BMH 리소스의 전원을 켜는 데 필요한 권한이 있는 사용자가 이미 있는 경우 인증 토큰을 BMH 리소스토큰으로제공할 수 있습니다. 그렇지 않은 경우 전용 RHOCP(OpenShift Container Platform) 서비스 계정을 생성하고 이 인증 토큰을 제공해야 합니다. 자세한 내용은: Cryostat 인증 및 권한 부여를 참조하십시오.
2.2. 인스턴스 HA 서비스 매개변수 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat OpenStack Services on OpenShift(인스턴스 HA) 서비스는 실패한 컴퓨팅 노드의 인스턴스 비우기 프로세스를 사용자 지정할 수 있는 여러 매개변수를 제공합니다. 이러한 매개변수 값을 편집하는 방법에 대한 자세한 내용은 인스턴스 HA 서비스 매개변수 편집을 참조하십시오.
| 매개변수 | Default | 설명 |
|---|---|---|
|
|
|
|
|
|
| 인스턴스 HA 서비스에서 Compute 서비스(nova) 데이터베이스를 폴링할 빈도를 초 단위로 지정해야 합니다. 자세한 내용은 인스턴스 HA 서비스가 실패한 컴퓨팅 노드를 비우는 방법을 참조하십시오. 주의
|
|
|
| 비우기 프로세스가 비현실적으로 되기 전에 실패할 수 있는 비우기를 수행할 수 있는 총 컴퓨팅 노드 수의 백분율을 지정해야 합니다. 이 백분율을 초과하면 인스턴스 HA 서비스가 컴퓨팅 노드 비우기를 중지합니다. 자세한 내용은 인스턴스 HA 서비스가 실패한 컴퓨팅 노드를 비우는 방법을 참조하십시오. |
|
|
|
인스턴스 HA 서비스 로그 파일 메시지가 제공할 세부 정보를 지정해야 합니다. |
|
|
| 선택 사항: 플레이버, 이미지 또는 호스트 집계에 태그를 지정하는 경우 메타데이터를 태그하는 데 사용하는 텍스트를 지정해야 합니다. 자세한 내용은 비우기에 대한 태그 이미지, 플레이버 또는 호스트 집계를 참조하십시오. |
|
|
| 선택 사항: 인스턴스 HA 서비스에서 비워 둘 컴퓨팅 노드를 결정할 때 태그된 호스트 집계를 확인할지 여부를 지정할 수 있습니다. 자세한 내용은 비우기에 대한 태그 이미지, 플레이버 또는 호스트 집계를 참조하십시오. |
|
|
| 선택 사항: 비워 둘 컴퓨팅 노드를 결정할 때 인스턴스 HA 서비스가 태그된 플레이버를 확인할지 여부를 지정할 수 있습니다. 자세한 내용은 비우기에 대한 태그 이미지, 플레이버 또는 호스트 집계를 참조하십시오. |
|
|
| 선택 사항: 인스턴스 HA 서비스에서 비워 둘 컴퓨팅 노드를 결정할 때 태그된 이미지를 확인할지 여부를 지정할 수 있습니다. 자세한 내용은 비우기에 대한 태그 이미지, 플레이버 또는 호스트 집계를 참조하십시오. |
|
|
|
선택 사항: |
|
|
|
선택 사항: |
|
|
| 선택 사항: 컴퓨팅 노드를 펜싱하기 전에 대기하는 시간을 초 단위로 지정할 수 있습니다. 자세한 내용은 인스턴스 HA 서비스가 실패한 컴퓨팅 노드를 비우는 방법을 참조하십시오. |
|
|
| 선택 사항: 정상적인 컴퓨팅 노드를 예약하여 실패한 컴퓨팅 노드 인스턴스를 비울 수 있습니다. 자세한 내용은 정상적인 컴퓨팅 노드 예약을 참조하십시오. |
|
|
| 선택 사항: 비우기한 후 펜싱된 컴퓨팅 노드를 비활성화 상태로 두도록 인스턴스 HA 서비스를 구성할 수 있습니다. 자세한 내용은 인스턴스 HA 서비스가 실패한 컴퓨팅 노드를 비우는 방법을 참조하십시오. |
|
|
| 선택 사항: 인스턴스가 성공적으로 비우지 않은 경우에도 컴퓨팅 노드를 활성화하도록 인스턴스 HA 서비스를 구성할 수 있습니다. 자세한 내용은 인스턴스 HA 서비스가 실패한 컴퓨팅 노드를 비우는 방법을 참조하십시오. |
|
|
| 선택 사항: 컴퓨팅 노드를 펜싱하고 컴퓨팅 노드를 비우기 전에 컴퓨팅 노드가 커널을 캡처하는지 감지하도록 인스턴스 HA 서비스를 구성할 수 있습니다. 자세한 내용은 컴퓨팅 노드가 커널 덤프를 캡처하는지 탐지를 참조하십시오. |
|
|
| 선택 사항: 실패한 컴퓨팅 노드를 비우지 않도록 인스턴스 HA 서비스를 구성할 수 있습니다. 자세한 내용은 인스턴스 HA 서비스가 실패한 컴퓨팅 노드를 비우는 방법을 참조하십시오. |
2.2.1. 인스턴스 HA 서비스 매개변수 편집 링크 복사링크가 클립보드에 복사되었습니다!
Compute 인스턴스(Instance HA) 서비스 포드에 대한 OpenShift(RHOSO)의 Red Hat OpenStack Services의 매개변수는 YAML ConfigMap 파일에 문자열로 저장됩니다. 지원되는 인스턴스 HA 서비스 매개변수에 대한 자세한 내용은 Instance HA 서비스 매개변수를 참조하십시오.
인스턴스 HA 서비스 매개변수 값을 편집하면 인스턴스 HA 서비스 포드가 다시 시작되면 모든 로그 파일 항목이 손실됩니다. 자세한 내용은 Instance HA 서비스 문제 해결을 참조하십시오.
모든 매개변수 값을 큰따옴표(")로 묶어야 합니다.
이 YAML ConfigMap 파일의 이름은 생성 방법에 따라 다릅니다.
-
구성된 인스턴스 HA 서비스 매개변수를 제공하는
ConfigMap이 포함된 YAML 파일을 생성하고 이름을 지정할 수 있습니다. 이 경우 인스턴스 HA 서비스 매니페스트 파일을 생성할 때.spec.instanceHaConfigMap을 사용하여 이 YAML 파일의 이름을 지정해야 합니다. 자세한 내용은 Instance HA 서비스 Pod 사양 구성을 참조하십시오. -
인스턴스 HA 서비스 Pod가 배포될 때
infra-operator에서 이 YAMLConfigMap을 생성하도록 선택할 수 있습니다. 이를instanceha-config라고 하며 필요에 따라 수정할 수 있는 인스턴스 HA 서비스 매개변수의 기본값을 포함합니다.
다음 명령을 사용하여 인스턴스 HA 서비스 매개변수를 편집할 수 있습니다.
$ oc edit cm <config_map_name>
-
&
lt;config_map_name>을 YAMLConfigMap파일의 이름으로 바꿉니다(예:instanceha-config).
다음 명령을 사용하여 인스턴스 HA 서비스 매개변수의 현재 구성을 표시할 수 있습니다.
$ oc get cm <config_map_name> -o yaml
다음 예제는 Instance HA 서비스 포드가 배포될 때 instanceha-config 파일에 구성된 매개변수의 기본값을 표시합니다.
$ oc get cm instanceha-config -o yaml
apiVersion: v1
data:
config.yaml: |
config:
EVACUABLE_TAG: "evacuable"
TAGGED_IMAGES: "true"
TAGGED_FLAVORS: "true"
DELTA: "30"
DELAY: "0"
POLL: "45"
THRESHOLD: "50"
WORKERS: "4"
SMART_EVACUATION: "false"
RESERVED_HOSTS: "false"
LEAVE_DISABLED: "false"
FORCE_ENABLE: "false"
CHECK_KDUMP: "false"
LOGLEVEL: "info"
DISABLED: "false"
kind: ConfigMap
2.3. 인스턴스 HA 서비스 제거 링크 복사링크가 클립보드에 복사되었습니다!
인스턴스 HA 서비스 제거 외에도 OpenShift(RHOSO)에서 Red Hat OpenStack Services on OpenShift (RHOSO) 고가용성을 완전히 제거하려면 인스턴스 HA 서비스 매개변수가 포함된 ConfigMap 과 비워질 수 있는 컴퓨팅 노드의 펜싱 구성이 포함된 펜싱 시크릿을 제거해야 합니다.
사전 요구 사항
-
매니페스트 파일에 지정한
.metadata.name인 배포된 인스턴스 HA 서비스의 이름을 알아야 합니다. 이 명령을 실행하여 이 이름을 가져올 수 있습니다.$ oc get instanceha. -
인스턴스 HA 서비스 매개변수가 포함된
ConfigMap의 이름을 알아야 합니다. -
비워 둘 수 있는 컴퓨팅 노드의 펜싱 구성이 포함된
fencingSecretYAML 파일의 이름을 알고 있어야 합니다.
프로세스
인스턴스 HA 서비스를 삭제합니다.
$ oc delete instanceha/<instanceha_service_name>-
&
lt;instanceha_service_name>을 배포된 인스턴스 HA 서비스의 이름으로 바꿉니다(예:instanceha-0).
-
&
Instance HA 서비스 매개변수가 포함된
ConfigMap을 삭제합니다.$ oc delete cm/<config_map_name> instanceha-config-
&
lt;config_map_name>을ConfigMap이름으로 바꿉니다. 예를 들어 기본ConfigMap을 사용하는 경우ConfigMap은instanceha-config입니다.
-
&
비워 둘 수 있는 컴퓨팅 노드의 펜싱 구성이 포함된 펜싱 보안을 삭제합니다.
$ oc delete secret/<fencing_secret_name>-
<
fencing_secret_name>을 인스턴스 HA 서비스 Pod의 사양을 정의할 때 지정한 펜싱 시크릿의 이름으로 바꿉니다(예:fencing-0).
-
<
3장. 실패한 컴퓨팅 노드에서 인스턴스 비우기 프로세스 유지 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat OpenStack Services on OpenShift(RHOSO)의 Compute 인스턴스(인스턴스 HA)의 고가용성은 실패한 컴퓨팅 노드에서 인스턴스를 비우는 프로세스를 관리하는 데 도움이 됩니다. 그러나 이 서비스는 감독이 필요하며 때로는 조치를 취해야 합니다.
인스턴스 HA 서비스는 의도적으로 비활성화한 컴퓨팅 노드를 무시합니다. 다음과 같은 이유로 컴퓨팅 노드를 의도적으로 비활성화할 수 있습니다.
- 정상적인 컴퓨팅 노드를 의도적으로 비활성화하여 실패한 컴퓨팅 노드 인스턴스를 비우기에 충분한 용량이 있는지 확인할 수 있습니다. 자세한 내용은 정상적인 컴퓨팅 노드 예약을 참조하십시오.
- 컴퓨팅 노드가 재부팅되거나 전원이 꺼지면 인스턴스 HA 서비스에 알림이 표시되지 않기 때문에 유지 관리 또는 구성해야 하는 컴퓨팅 노드를 의도적으로 비활성화할 수 있습니다. 자세한 내용은 컴퓨팅 노드 비우기를 참조하십시오.
-
DISABLEDInstance HA 서비스 매개변수를true로 설정하여 인스턴스 HA 서비스에서 실패한 컴퓨팅 노드를 비우지 않도록 할 수 있습니다. 이 모드에서 인스턴스 HA 서비스는 컴퓨팅 노드를 모니터링하고 실패했지만 더 이상 수행하지 않는 로그를 기록합니다. 자세한 내용은 인스턴스 HA 서비스 매개변수 편집을 참조하십시오. -
LEAVE_DISABLEDInstance HA service 매개변수를true로 설정하여 인스턴스 HA 서비스가 실패한 컴퓨팅 노드를 다시 활성화하지 못하도록 할 수 있습니다. 실패로 인해 결함이 있는 하드웨어가 표시될 수 있으므로 컴퓨팅 노드가 단순히 다시 실패하지 않도록 할 수 있습니다. - 인스턴스 HA 서비스에서 생성한 로그 파일을 보고 이 프로세스의 문제를 해결할 수 있습니다. 자세한 내용은 Instance HA 서비스 문제 해결을 참조하십시오.
-
컴퓨팅 노드 비우기가 느리거나 실패한 경우
forced Down플래그를false로 수동으로 설정할 수 있습니다. 자세한 내용은 Rehabilitating evacuated Compute nodes 를 참조하십시오.
3.1. 컴퓨팅 노드 비우기 비활성화 링크 복사링크가 클립보드에 복사되었습니다!
컴퓨팅 노드가 재부팅되거나 전원이 꺼지면 Compute 인스턴스(Instance HA) 서비스의 Red Hat OpenStack Services on OpenShift(RHOSO) 고가용성에 대한 알림이 표시되지 않습니다. 따라서 유지 관리 또는 구성하는 컴퓨팅 노드의 비우기를 비활성화해야 합니다.
프로세스
제한된 수의 컴퓨팅 노드를 구성하거나 유지하려는 경우 각 컴퓨팅 노드를 개별적으로 비활성화할 수 있습니다. 예를 들어 다음 명령을 사용하여 유지보수를 위해
compute-7이라는 컴퓨팅 노드를 비활성화할 수 있습니다.$ openstack compute service set --disable --disable-reason "maintenance" compute-7 nova-compute참고선택적
--disable-reason인수를 사용하여 컴퓨팅 노드를 비활성화하는 이유를 지정할 수 있습니다. 인스턴스 HA 서비스에서 이 단어를 사용하여 의도적으로 비활성화된 정상 컴퓨팅 노드를 식별하여 인스턴스 비우기 위해 예약 용량을 제공하기 때문에 설명에예약된단어를 사용하지 마십시오. 자세한 내용은 정상적인 컴퓨팅 노드 예약을 참조하십시오.-
많은 수의 컴퓨팅 노드를 구성하거나 유지하려는 경우
DISABLEDInstance HA 서비스 매개변수를true로 설정하여 인스턴스 HA 서비스에서 실패한 모든 컴퓨팅 노드를 비우지 않도록 일시적으로 비활성화할 수 있습니다. 자세한 내용은 인스턴스 HA 서비스 매개변수 편집을 참조하십시오.
3.2. 인스턴스 HA 서비스 문제 해결 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat OpenStack Services on OpenShift(인스턴스 HA) 서비스 Pod는 실패한 컴퓨팅 노드의 인스턴스 비우기 프로세스를 기록하는 로그 파일을 제공합니다.
이러한 로그 파일 항목은 매니페스트 파일에 지정한 .metadata.name 에 추가된 고유 문자열(예: instanceha-0-54f865b6dd-w6h4t )을 포함하는 정규화된 Pod 이름과 연결되어 있습니다.
인스턴스 HA 서비스 포드가 다시 시작되면 새 고유 문자열이 이름에 추가되고 이전 고유 인스턴스 HA 서비스 Pod 이름과 연결된 모든 로그 항목이 제거됩니다. 중앙 집중식 로깅을 구현하여 로그 파일 항목이 손실되지 않도록 할 수 있습니다.
예를 들어, ConfigMap 을 변경하는 Instance HA 서비스 매개변수를 편집하거나 fencingSecret YAML 파일을 변경하고 이 파일을 다시 적용하여 인스턴스 HA 서비스 Pod의 구성을 업데이트할 때 인스턴스 HA 서비스 포드가 다시 시작됩니다.
기본적으로 인스턴스 HA 서비스 매개 변수가 info 로 설정되어 있으므로 인스턴스 HA 서비스 로그 파일은 정보, 경고 및 오류 로그 메시지를 제공합니다. 그러나 인스턴스 HA 서비스의 문제를 해결하는 경우 로그 메시지의 수 및 세부 정보를 늘리기 위해 LOGLEVEL 매개변수를 debug 로 변경할 수 있습니다. 자세한 내용은 인스턴스 HA 서비스 매개변수 편집을 참조하십시오.
다음 명령을 사용하여 인스턴스 HA 서비스 포드 로그 파일을 볼 수 있습니다.
$ oc logs -l service=instanceha
$ oc logs <podname>
-
<
podname>을 배포된 인스턴스 HA 서비스 Pod의 정규화된 이름으로 바꿉니다(예:instanceha-0-54f865b6dd-w6h4t). 이 정규화된 포드 이름$ oc get pods |grep instanceha를 확인하려면 이 명령을 실행해야 합니다.
이 명령은 여러 클라우드가 정의되어 있고 각 클라우드를 모니터링하기 위해 별도의 인스턴스 HA 서비스 Pod를 배포한 경우에 유용합니다. 자세한 내용은 Instance HA 서비스 Pod 사양 구성을 참조하십시오.
다음은 LOGLEVEL the Instance HA service 매개변수가 info 로 설정된 경우 컴퓨팅 노드를 성공적으로 비우기 위해 생성된 로그 파일 메시지의 예입니다.
$ oc logs instanceha-0-54f865b6dd-w6h4t
2024-09-15 23:19:07,065 INFO Nova login successful
2024-09-15 23:21:38,105 WARNING The following computes are down:['compute-0.ctlplane.example.com']
2024-09-15 23:21:39,137 INFO Fencing compute-0.ctlplane.example.com
2024-09-15 23:21:39,137 INFO Fencing host compute-0.ctlplane.example.com off
2024-09-15 23:21:39,407 INFO Power off of compute-0.ctlplane.example.com ok
2024-09-15 23:21:39,824 INFO Nova login successful
2024-09-15 23:21:39,824 INFO Disabling compute-0.ctlplane.example.com before evacuation
2024-09-15 23:21:39,824 INFO Forcing compute-0.ctlplane.example.com down before evacuation
2024-09-15 23:21:40,094 INFO Service nova-compute on host compute-0.ctlplane.example.com is now disabled
2024-09-15 23:21:40,094 INFO Start evacuation of compute-0.ctlplane.example.com
2024-09-15 23:21:41,740 INFO Evacuation successful. Re-enabling compute-0.ctlplane.example.com
2024-09-15 23:21:41,741 INFO Fencing host compute-0.ctlplane.example.com on
2024-09-15 23:21:42,486 INFO Power on of compute-0.ctlplane.example.com ok
2024-09-15 23:21:42,486 INFO Trying to enable compute-0.ctlplane.example.com
2024-09-15 23:21:42,572 INFO Host compute-0.ctlplane.example.com is now enabled
2024-09-15 23:22:43,074 INFO Unsetting force-down on host compute-0.ctlplane.example.com after evacuation
2024-09-15 23:22:43,187 INFO Successfully unset force-down on host compute-0.ctlplane.example.com
3.3. 비우는 컴퓨팅 노드 복구 링크 복사링크가 클립보드에 복사되었습니다!
실패한 컴퓨팅 노드에서 인스턴스를 비우는 일반 프로세스 중에 Compute 인스턴스(Instance HA)의 Red Hat OpenStack Services on OpenShift (RHOSO) 고가용성은 컴퓨팅 노드의 Forced Down 플래그를 true 로 설정하여 성공적으로 재부팅되도록 컴퓨팅 노드의 Forced Down 플래그를 true로 설정합니다. 이 경우 인스턴스 HA 서비스는 컴퓨팅 노드의 Forced Down 플래그를 false 로 설정합니다.
컴퓨팅 노드 비우기가 느리거나 실패한 경우 컴퓨팅 노드의 Forced Down 플래그를 false 로 설정할 수 있습니다.
프로세스
컴퓨팅 노드 목록을 볼 때
--long인수를 사용하여Forced Down플래그의 상태를 표시합니다.$ openstack compute service list --long이 예에서
compute-fn93pyp7-2.ctlplane.example.com에는Status가활성화되어있지만Forced Down플래그는 여전히true로 설정되어 있으며 이 컴퓨팅 노드를 비우는 동안 문제가 있음을 나타냅니다.$ openstack compute service list --long +--------------------------------------+----------------+-----------------------------------------+----------+---------+-------+----------------------------+-----------------+-------------+ | ID | Binary | Host | Zone | Status | State | Updated At | Disabled Reason | Forced Down | +--------------------------------------+----------------+-----------------------------------------+----------+---------+-------+----------------------------+-----------------+-------------+ ... | c9590263-7fbd-4782-85d8-7cf7526ed292 | nova-compute | compute-fn93pyp7-0.ctlplane.example.com | nova | enabled | up | 2024-10-08T04:59:23.000000 | None | False | | 3319da3d-31e8-4877-a9d5-9f407e1356fa | nova-compute | compute-fn93pyp7-1.ctlplane.example.com | nova | enabled | up | 2024-10-08T04:59:18.000000 | None | False | | 1b89c4b9-bf16-45c0-9517-8f652ea5a129 | nova-compute | compute-fn93pyp7-2.ctlplane.example.com | nova | enabled | down | 2024-10-08T04:59:18.000000 | None | True |컴퓨팅 노드를 강제로 실행합니다.
$ openstack compute service set --up <Compute_node> nova-compute<
Compute_node>를 컴퓨팅 노드의 나열된 이름으로 바꿉니다(예:compute-fn93pyp7-2.ctlplane.example.com).&
lt;플래그는Compute_node>의 forced Downfalse로 설정됩니다.