리전 영구 디스크 장애 조치

리전 영구 디스크는 리전의 두 영역 간에 데이터를 동기식으로 복제합니다. 리전 영구 디스크는 Compute Engine에서 고가용성(HA) 서비스를 구현할 때 유용한 구성 요소가 될 수 있습니다. 또한 리전 영구 디스크는 리전 관리형 인스턴스 그룹과 함께 사용하도록 설계되었습니다.

오류 시나리오

리전 영구 디스크를 사용하면 데이터가 한 리전의 두 영역에 자동으로 복제됩니다. 리전 디스크 작업의 일시적 오류는 리전 영구 디스크에서 투명하게 처리됩니다. 리전 영구 디스크는 오류 및 속도 저하를 자동으로 감지하고 한 영역에만 복제된 데이터를 포착합니다.

두 복제본을 모두 사용할 수 있는 경우 쓰기가 두 복제본에서 지속적으로 유지되면 VM에 다시 확인됩니다. 복제본 중 하나를 사용할 수 없는 경우에는 쓰기가 정상 복제본에 지속적으로 유지된 후 확인됩니다. 비정상 복제본이 백업되면(Compute Engine에서 감지) 정상 복제본과 동기화됩니다. 이 작업은 VM에 대해 투명합니다.

두 복제본을 동시에 사용할 수 없는 경우 의도하지 않은 데이터 손실을 방지하려면 스냅샷을 사용하여 리전 영구 디스크를 정기적으로 백업하는 것이 좋습니다.

영역 오류

리전 영구 디스크는 두 영역에 복제됩니다.

  • 복제본 하나는 연결된 VM 인스턴스와 동일한 영역(기본 영역)에 있습니다.
  • 다른 복제본은 동일한 리전의 대체 영역(보조 영역)에 있습니다.

기본 영역 오류가 발생하는 경우 --force-attach 플래그를 attach-disk 명령어와 함께 사용하여 리전 영구 디스크를 다른 영역의 VM 인스턴스로 장애 조치할 수 있습니다.

이 시나리오에서는 분리 작업을 수행하기 위해 인스턴스에 연결할 수 없으므로 디스크를 인스턴스에서 분리하지 못할 수도 있습니다. 강제 연결을 사용하면 리전 영구 디스크가 현재 다른 인스턴스에 연결되어 있어도 이 디스크를 VM 인스턴스에 연결할 수 있습니다.

force-attach 작업을 완료한 후 Compute Engine은 원래 VM이 디스크에 쓰지 못하게 합니다. force-attach를 사용하면 안전하게 데이터에 대한 액세스 권한을 다시 얻고 서비스를 복구할 수 있습니다. force-attach 단계를 수행한 후 인스턴스를 수동으로 종료할 수도 있습니다.

보조 영역 오류가 발생하는 경우 보조 영역이 복구되면 비정상 복제본이 정상 복제본과 자동으로 동기화됩니다.

초기 상태 오류 새로운 상태 작업
2개의 정상 영역 기본 영역 오류
  • 정상 복제본에 모든 디스크 데이터가 있습니다.
  • 새 비정상 복제본에는 모든 디스크 데이터가 있다고 보장할 수 없습니다.
정상 영역의 VM에 디스크를 강제로 연결합니다.
2개의 정상 영역 보조 영역 오류
  • 영역이 복구될 때까지는 비정상 복제본에 모든 디스크 데이터가 있다고 보장할 수 없습니다.
작업 불필요. 영역이 복구되면 비정상 복제본이 다시 동기화됩니다.
  • 1개의 정상 영역
  • 1개의 비정상 영역
정상 영역 오류
  • 두 복제본 모두 비정상 영역에 있으며 트래픽을 처리할 수 없습니다. 디스크를 사용할 수 없습니다.
  • 영역 장애가 일시적인 경우 데이터가 손실되지 않습니다.
  • 영역 장애가 영구적이면 정상 복제본에만 기록된 데이터가 영구적으로 손실됩니다.
  • 디스크가 트래픽을 처리할 수 없으므로 강제 연결하지 않는 것이 좋습니다.
  • 영역이 복구될 때까지는 디스크의 스냅샷을 만들 수 없습니다. 스냅샷을 사용하여 정기적으로 리전 영구 디스크를 백업하는 것이 좋습니다.

애플리케이션 및 VM 오류

VM 구성 오류, OS 업그레이드 실패 또는 기타 애플리케이션 오류로 인해 중단이 발생할 경우 리전 영구 디스크를 동일한 영역에 있는 VM 인스턴스에 force-attach할 수 있습니다.

오류 카테고리 및 확률 오류 유형 작업
애플리케이션 오류(높음) 애플리케이션 응답 없음
애플리케이션 관리자 작업(예: 업그레이드)
사용자 오류
(예: SSL 인증서, ACL 등의 매개변수 잘못 구성)
애플리케이션 제어 영역에서 상태 확인 임곗값에 따라 장애 조치를 트리거할 수 있습니다.
VM 오류(보통) 인프라/하드웨어 오류
CPU 경합, 중간 네트워크 중단으로 인해 VM이 응답하지 않음
VM은 일반적으로 자동 복구됩니다. 애플리케이션 제어 영역에서 상태 확인 임곗값에 따라 장애 조치를 트리거할 수 있습니다.
애플리케이션 손상(낮음-보통) 애플리케이션 데이터 손상
(예: 애플리케이션 버그 또는 OS 업그레이드 실패)
애플리케이션 복구:
  • 가능한 경우 애플리케이션별 복구 도구를 사용합니다. 예를 들어 MySQL 데이터베이스 페이지 손상을 사용할 수 있습니다.
  • 논리 복제 아카이브에서 복원합니다. 예를 들어 읽기 복제본이나 PostgreSQL 연속 보관처리 등을 통해 생성되는 논리 로그 보관 파일에서 복원합니다.

force-attach를 사용하여 리전 영구 디스크 장애 조치

Console

대기 VM 인스턴스를 만들고 인스턴스에 디스크를 force-attach합니다.

  1. Google Cloud Console에서 VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스로 이동

  2. 프로젝트를 선택합니다.

  3. 만들기를 클릭합니다.

  4. 인스턴스 이름을 지정합니다.

  5. 리전 영구 디스크가 상주할 리전을 선택합니다.

  6. 대기 VM 인스턴스의 영역을 선택합니다.

  7. 관리, 디스크, 네트워킹, SSH 키를 클릭합니다.

  8. 디스크를 클릭합니다.

  9. 추가 디스크 섹션에서 기존 디스크 연결을 클릭합니다.

  10. 목록에서 리전 영구 디스크를 선택합니다.

  11. 체크박스를 선택하여 디스크를 강제 연결합니다.

  12. 완료를 클릭합니다.

  13. 만들기를 클릭하여 인스턴스 만들기를 마칩니다. 새 VM 인스턴스가 VM 인스턴스 페이지에 나타납니다.

오류가 해결된 후 동일한 단계를 수행하여 원래 인스턴스에 디스크를 force-attach할 수 있습니다.

gcloud

gcloud 도구에서 instances attach-disk 명령어를 사용하여 복제본 디스크를 VM 인스턴스에 연결합니다. --disk-scope 플래그를 포함하고 regional로 설정합니다.

gcloud compute instances attach-disk INSTANCE_NAME  \
    --disk DISK_NAME --disk-scope regional \
    --force-attach

다음을 바꿉니다.

  • INSTANCE_NAME: 리전의 새 VM 인스턴스 이름
  • DISK_NAME: 디스크 이름

디스크를 force-attach한 후 필요하면 파일 시스템을 디스크에 마운트합니다. 인스턴스는 강제 연결된 디스크를 사용해 읽기 및 쓰기 작업을 계속할 수 있습니다.

API

compute.instances.attachDisk 메서드에 대한 POST 요청을 작성하고 방금 만든 영구 디스크의 URL을 포함합니다. 디스크를 새 VM 인스턴스에 연결하려면 기본 인스턴스에 여전히 디스크가 있더라도 forceAttach=true 쿼리 매개변수가 필요합니다.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/attachDisk?forceAttach=true

{
 "source": "projects/PROJECT_ID/regions/REGION/disks/DISK_NAME"
}

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID
  • ZONE: 인스턴스의 위치
  • INSTANCE_NAME: 새 영구 디스크를 추가할 인스턴스의 이름
  • REGION: 새 리전 영구 디스크가 위치하는 리전
  • DISK_NAME: 새 디스크의 이름

복제본 디스크를 연결한 후 필요하면 파일 시스템을 디스크에 마운트합니다. 인스턴스는 복제본 디스크를 사용하여 읽기 및 쓰기 작업을 계속할 수 있습니다.

다음 단계