Opensearch SM(Snapshot Management)이란 Snapshot을 생성하고 일정 기간 유지시켜 주며 일정 기간이 지날 경우 자동으로 Snapshot을 삭제하여 Snapshot Repository를 관리해 주는 역할을 수행합니다. Opensearch SM을 통하여 매일 스냅샷을 생성하여 안정적인 클러스터 운영이 가능해집니다.

먼저 시작하기 전에 스냅샷을 생성하기 위해 Snapshot Repository가 생성되어 있어야 합니다. Snapshot Repository 생성에 대해서는 이 전 글을 확인하여 주세요.

https://stdhsw.tistory.com/entry/Opensearch-Snapshot-AWS-S3%EB%B0%B1%EC%97%85-%EB%B0%8F-%EB%B3%B5%EA%B5%AC

 

SM Policy 생성하기

SM Policy 생성을 통하여 매일 자동적으로 스냅샷이 생성되고 생성된지 오래된 스냅샷을 자동적으로 삭제할 수 있습니다. 

POST _plugins/_sm/policies/my-policy
{
  "description": "Daily opensearch snapshot",
  "creation": {
    "schedule": {
      "cron": {
        "expression": "0 1 * * *",
        "timezone": "UTC"
      }
    },
    "time_limit": "1h"
  },
  "deletion": {
    "schedule": {
      "cron": {
        "expression": "0 1 * * *",
        "timezone": "UTC"
      }
    },
    "condition": {
      "max_age": "7d",
      "max_count": 14,
      "min_count": 7
    },
    "time_limit": "1h"
  },
  "snapshot_config": {
    "date_format": "yyyy-MM-dd-HH:mm",
    "timezone": "UTC",
    "indices": "*",
    "repository": "my_repository",
    "ignore_unavailable": "true",
    "include_global_state": "false",
    "partial": "false",
    "storage_type": "remote_snapshot"
  }
}

 

creation에서는 스냅샷을 생성하는 정책을 정의합니다.

  • schedule.cron.expression : 매번 반복적으로 스냅샷을 생성할 시간을 설정합니다.
  • schedule.cron.timezone : 반복적으로 작업될 타임존을 설정합니다.
  • time_limit : 스냅샷을 생성하는데 최대 시간을 설정합니다. 스냅샷을 생성할 때 지정한 시간이 넘어가면 실패로 처리됩니다.

deletion에서는 스냅샷을 삭제하는 정책을 정의합니다.

  • schedule.cron.expression : 매번 반복적으로 스냅샷을 삭제할 시간을 설정합니다.
  • schedule.cron.timezone : 반복적으로 작업될 타임존을 설정합니다.
  • time_limit : 스냅샷을 삭제하는데 최대 시간을 설정합니다. 스냅샷을 삭제할 때 지정한 시간이 넘어 가면 실패로 처리됩니다.
  • condition.max_age : 생성된 스냅샷이 보존되는 시간을 설정합니다.
  • condition.max_count : 최대로 가지고 있을 수 있는 스냅샷의 개수를 설정합니다.
  • condition.min_count : 최소로 유지할 스냅샷의 개수를 설정합니다.

snapshot_config에서는 스냅샷을 생성할 때 설정 값을 정의합니다.

  • date_format : 생성된 스냅샷의 이름 format을 설정합니다. ("폴리스명-yyyy-MM-dd-HH:mm-해쉬값" 형식으로 스냅샷이 생성됩니다.)
  • timezone : date_format에서 사용되는 타임존을 설정합니다.
  • indices : 스냅샷을 생성할 인덱스 리스트를 설정합니다.
  • repository : 스냅샷을 저장할 Repository를 설정합니다.
  • ignore_unavailable : 유효하지 않은 값을 무시하는지 설정합니다.
  • include_global_state : Cluster 상태 값을 포함할 것인지 설정합니다.
  • partial : 부분 스냅샷 저장을 허용할지 선택합니다. default는 false로 false일 경우 하나의 샤드가 문제가 발생하면 스냅샷이 실패합니다.
  • storage_type : searchable snapshot을 적용할 경우 remote_snapshot를 설정하고 아닐 경우 local로 설정합니다.

 

SM Policy 확인하기

SM Policy를 정상적으로 생성되었는지 확인합니다.

GET _plugins/_sm/policies/my-policy/_explain

 

 

SM Policy Start & Stop

자동적으로 스냅샷을 관리하는 기능을 잠시 중단하는 기능을 제공하고 있습니다.

# SM Policy 중지
POST _plugins/_sm/policies/my-policy/_stop

# SM Policy 시작
POST _plugins/_sm/policies/my-policy/_start

 

SM Policy 삭제

더 이상 사용되지 않는 SM Policy가 있다면 삭제합니다.

DELETE _plugins/_sm/policies/my-policy

 

 

스냅샷을 통한 데이터 복구는 이전 글을 확인하여 주세요.

https://stdhsw.tistory.com/entry/Opensearch-Snapshot-AWS-S3%EB%B0%B1%EC%97%85-%EB%B0%8F-%EB%B3%B5%EA%B5%AC

 

+ Recent posts