내용으로 건너뛰기

snapshot 생성 시 block의 데이터 유실 관련 질문

0

안녕하세요, AWS EBS 스냅샷 기능 관련하여 아래 두 가지 질문이 있어 문의드립니다.

  1. AWS EBS 스냅샷은 crash-consistent 상태를 보장하는 것으로 알고 있습니다. 이와 관련하여, 스냅샷 생성 API(SDK)를 호출한 후 응답(Response)을 받은 시점의 볼륨 상태가 snapshot에 보존되는 것이 보장되는지 궁금합니다. 아니면 snapshot의 상태가 completed가 될 때까지 해당 볼륨에 대한 I/O를 중단해야 하는지 확인 부탁드립니다.

  2. 위 질문과 연관하여, snapshot 생성 요청 이후 response를 받은 시점에서 snapshot은 block-level 메타데이터를 먼저 저장하고, block data는 비동기적으로 복사되는 것으로 알고 있습니다. 이때 snapshot이 아직 completed 상태가 아니고, A라는 block의 데이터가 아직 S3(snapshot 저장소)에 업로드되지 않은 상황에서 해당 block에 대한 쓰기 I/O가 발생한다면, snapshot 기능은 해당 block의 데이터를 먼저 S3에 안전하게 복사한 후 write를 수행하는지, 혹은 복사되지 않은 데이터가 유실될 가능성이 있는지 궁금합니다. 원리 설명까지는 필요하지 않지만, 해당 block의 데이터가 snapshot에서 유실될 수 있는지 여부에 대한 확인을 부탁드립니다.

감사합니다.

질문됨 5달 전47회 조회
1개 답변
1

안녕하세요.

re:Post 는 커뮤니티이기 떄문에 공개된 정보 안에서 답변을 해드리는 것이며, AWS 공식 답변이 아님을 알려드립니다.

1번 질문은 스냅샷을 생성한 후 응답이 오면 사용할 수 있느냐에 대한 질문에는 아니오 라고 답할 수 있습니다. 스냅샷은 비동기로 데이터를 복사하므로 생성이 완료되기 전의 이미지는 (데이터가 복사 완료된 상태가 아니기 때문에) 사용할 수 없는 이미지입니다. 생성하는 과정에서 I/O 는 사용하셔도 되나 스냅샷 요청 이후 업데이트 되는 내용은 저장에 포함되지 않습니다.

2번 질문은 스냅샷이 요청된 시점을 기준으로 볼륨의 데이터를 복사합니다. 따라서 이후에 변경되는 데이터의 내용이나 OS 등에서 캐시된 스냅샷 이후 데이터는 백업 데이터에 포함되지 않습니다.

https://docs.aws.amazon.com/ko_kr/ebs/latest/userguide/ebs-creating-snapshot.html 문서에서 참고하실 만한 내용을 붙여드립니다.

스냅샷 생성은 비동기식입니다. 스냅샷은 즉시 생성되지만 모든 데이터가 Amazon S3로 전송될 때까지 pending 상태를 유지합니다. 볼륨의 수정된 블록 수에 따라 완료하는 데 몇 시간이 걸릴 수 있습니다. 이 시간 동안 스냅샷에 영향을 주지 않고 볼륨을 계속 사용할 수 있습니다. 스냅샷에는 스냅샷이 요청된 시점을 기준으로 볼륨에 기록되어 있는 데이터만 포함됩니다. 애플리케이션 또는 운영 체제에 의해 캐시된 데이터는 포함되지 않습니다.

일관되고 완전한 스냅샷을 보장하려면 스냅샷을 생성하기 전에 볼륨에 대한 쓰기를 일시 중지하는 것이 좋습니다. 볼륨에 대한 쓰기를 일시 중지할 수 없는 경우 스냅샷을 생성하기 전에 인스턴스 내에서 볼륨을 탑재 해제하는 것이 좋습니다. 스냅샷이 pending 상태로 전환되면 볼륨을 다시 탑재하고 쓰기를 재개할 수 있습니다.

Amazon EC2 인스턴스의 루트 디바이스 역할을 하는 볼륨의 스냅샷을 생성하는 경우에는 스냅샷을 생성하기 전에 인스턴스를 중지하는 것이 좋습니다.

답변함 5달 전

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.