반응형
개인적으로 스토리지 공부를 위해 정리한 내용들입니다.
함께 공부하자는 취지로 내용을 공유합니다.
윈도우에는 시스템 복원(맥에서는 타임머신)이라는 기능이 있습니다.
윈도우 업데이트 문제로 시스템 오류가 발생하거나 실수로 중요한 자료를 지워버렸을 때 이 시스템 복원 기능을 사용하면 마치 과거로 시간 여행하듯이 컴퓨터를 과거의 복원 시점으로 되돌릴 수 있습니다.
새로 생성한 데이터는 존재하지 않게 되지만, 수정되거나 삭제된 데이터는 과거의 상태로 돌아오게 됩니다.
1. 스냅샷이란?
- 스토리지에 저장된 데이터를 과거 시점으로 되돌릴 수 있음
- 특정 시점에서 스냅샷을 생성하게 되면 백업처럼 원본 데이터(original data)를 별도로 준비된 스냅샷 공간(snapshot pool)에 복제해 놓고, 나중에 원본 데이터에 문제가 발생하게 되면 복원 작업을 진행
- 이처럼 특정 시점의 데이터를 복사해 놓는 방식을 point-in-time copy라고 함
- 단어 ‘스냅샷’의 의미인 ‘순간적으로 찍은 사진’처럼, 과거 시점의 시스템 상태를 마치 사진을 찍어서 그 순간을 남긴다는 개념
(1) Split-mirror 스냅샷
- 스냅샷 설정 시 원본 데이터를 통째로 복제하는 방식으로 가장 단순한 형태의 스냅샷
- 데이터가 통째로 복제되기 때문에 저장 방식과 구조가 단순하고, 무엇보다 원본에 문제가 생겼을 경우 다시 통째로 복원할 수 있다는 장점
- 원본 데이터와 같은 양의 스토리지 공간이 요구되기 때문에 다른 스냅샷 방식과 비교해 공간 효율이 떨어지고, 데이터의 양이 커질수록 스냅샷이 생성되는 속도가 느려지기 때문에 가용량과 성능에 부담을 줌
- 이 때문에 스냅샷 공간을 둘로 나누어 절반만 먼저 복제해서 속도와 공간을 확보하는 식으로 활용
(2) Copy-on-write 스냅샷
- 가장 널리 쓰이는 스냅샷 방식 중 하나
- ‘Copy-on-write’라는 의미 그대로 쓰기 작업(write)이 있을 시 데이터를 복제(copy)하기 때문에 실질적인 데이터 처리는 데이터가 변경되는 시점에서 이루어짐
- 스냅샷 생성 시
- 미리 확보해 놓은 스냅샷 공간에 바로 복제하지 않고 메타데이터만 만들어 놓기 때문에 거의 바로 생성
- 위의 그림처럼 스냅샷 1을 생성하면 스냅샷이 원본 데이터 A, B, C, D의 위치를 가리키고 있는데, 이를 포인터(pointer)라고 함
- 이 포인터를 통해 스토리지의 파일시스템이나 컨트롤러가 데이터를 추적
- 데이터가 수정 시
- COW 스냅샷에서는 원본 데이터를 미리 할당해 놓은 스냅샷 공간에 복제해 놓고 새로 수정된 데이터를 기존 위치에 덮어씀
- 다시 위 그림을 예시로, 데이터 A를 삭제하고, 데이터 B를 수정하고, E라는 데이터를 새로 생성하는 경우
- 데이터의 변경에 대한 요청이 들어오면 변경되는 데이터 A와 B에 대한 위치를 포인터로 추적해 데이터 읽기를 진행
- 읽어 들인 원본 데이터 A와 B는 스냅샷 공간으로 쓰기를 진행하고 포인터를 재설정
- 마지막으로 데이터 A와 B를 수정하고 새로운 데이터 E의 쓰기를 진행
- 이후 스냅샷 1에 요청이 들어오면 변경되지 않은 데이터 C와 D, 그리고 스냅샷 공간의 데이터 A와 B를 가리키는 포인터를 통해 불러올 수 있음
- COW 스냅샷은 즉각적으로 스냅샷을 생성할 수 있고, 변경되지 않은 데이터는 포인터로 지정해 놓기만 하면 되기 때문에 split-mirror 방식보다 데이터 이동이 적음
- 변경될 데이터를 스토리지 OS가 한번 읽어야 하고, 스냅샷 공간에 한번 쓰기 작업 후 다시 쓰기를 진행해야 하는 등 데이터가 변경될 때마다 CPU와 I/O에 부하가 발생
- SSD 티어링을 사용하면 쓰기 부하를 어느정도 완화할 수는 있음
- copy-on-write with background copy 스냅샷
- split-mirror 스냅샷에 COW 방식을 결합한 방식
- 스냅샷 생성 시
- 원본 데이터에 대한 포인터를 지정해 순간적으로 생성한 후, 백그라운드에서 스냅샷 공간으로 원본 데이터 전체를 복제하는 방식
- COW의 point-in-time 스냅샷이 가능하고, 데이터에 대한 접근성이 뛰어나는 등 각각의 장점을 가지고 있지만, CPU 오버헤드가 발생하는 등의 단점도 같음
(3) Redirect-on-write 스냅샷
- COW 방식에 비해 스토리지와 CPU의 오버헤드를 줄일 수있는 스냅샷 방식
- 변경되는 데이터를 여분의 공간에 직접 쓰기를 진행해 복사-붙이기 과정 하나를 생략할 수 있음
- 이는 쓰기 요청(write) 발생 시 새로운 공간으로 쓰기 위치를 재지정(redirect)하는 것을 의미
- 데이터 A와 B가 변경되고, 데이터 E가 생성되는 경우
- 데이터 변경이 확인되면 삭제되는 데이터 A에 대한 정보와 변경되는 데이터 B, 그리고 추가되는 데이터 E를 여분의 공간에 바로 쓰기 작업을 진행
- 여기서 원본 데이터가 저장된 기존 공간은 그대로 스냅샷을 위한 공간이 됨
- 이 방법은 COW와는 다르게(읽기 1회, 쓰기 2회) 새로 변경된 데이터의 쓰기 작업을 한번만 진행하면 되기 때문에 부하가 훨씬 덜 발생
- 이 때문에 최근에는 주류였던 COW 대신 ROW 스냅샷을 이용하는 경우가 많아지고 있음
- 스냅샷을 삭제하는 경우 수정된 데이터의 포인터를 재설정하는데 추가적인 리소스 비용이 발생
- 스냅샷을 여러 개 생성할수록 포인터가 복잡해지는 경우가 있음
(4) 증분 스냅샷
- 스냅샷 생성 이후에 변경되는 데이터만 새로운 스냅샷에 계속 기록하는 방식
- 아래 그림과 같이 스냅샷 1에 저장된 데이터 A, B, C, D에서 A와 B가 수정되었으면 수정된 A1과 B1이라는 데이터만 스냅샷 2에 저장
- 수정되지 않은 C와 D는 스냅샷 1에서 참조
- 스냅샷 3에서 B1과 C가 수정되면 스냅샷 3에는 수정된 데이터 B2와 C1만 저장되고, 나머지는 스냅샷 1과 2에서 참조
- 스냅샷을 생성할 때마다 스토리지 공간을 매우 적게 소모하기 때문에 다른 방식에 비해 스냅샷을 빠르고 자주 생성할 수 있음
(5) Continuous Data Protection
- 데이터 블록이 수정될 때마다 자동으로 스냅샷을 생성하는 방식
- 일정 시간 단위로 스냅샷을 생성하는 기존의 point-in-time 방식과는 다르게, 수정한 가장 최근 지점까지 롤백이 가능하기 때문에 시스템 중단이 일어나기 직전의 데이터까지 확보할 수 있음
- 변경이 가해질 때마다 스냅샷을 생성하기 때문에 필요 이상의 오버헤드가 가해질 수 있음
2. 스냅샷의 활용
- 스냅샷은 데이터 보호 방식 중에서도 가장 빠르고 많이 쓰이는 기능 중 하나
- 데이터를 따로 저장해 두고, 필요에 따라 복원하는 점은 일반적인 백업과 같음
- 스냅샷은 별도의 시스템이나 하드웨어 없이 보통 스토리지 공간 일부를 할애해 사용되기 때문에 저장과 복원을 더욱 빠르게 수행할 수 있음
- 저장공간의 한계로 스냅샷을 새로 생성할 때마다 오래된 스냅샷을 덮어씌우기 때문에 단기적인 백업 및 복구 용도로 사용할 수밖에 없음
- CDP를 제외한 point-in-time 스냅샷의 경우
- 일정 시간을 간격으로 스냅샷을 생성해 데이터 보호에 대비함
- 스냅샷의 생성 주기가 짧으면 복구될 수 있는 데이터의 비율이 100%에 가까워지겠지만, 그만큼 성능과 스토리지 공간을 소모
- 스냅샷 생성 시 작성되는 데이터의 양이 많거나 복잡도가 높을수록 장애로부터 복구하는데 시간이 더 걸림
- 데이터 보호
- 데이터의 복구 수준 : RPO(recovery point objective)
- 데이터 복구 시간의 목표치 : RTO(recovery time objective)
- 관리자들은 자신들의 IT 인프라의 특성을 파악해서 데이터 손실과 서비스 장애 시간을 최소화하기 위해 최적의 RPO와 RTO를 기준으로 스냅샷 방식을 선택
3. 정보 출처
https://tech.gluesys.com/blog/2020/12/16/storage_7_intro.html
반응형
'IT 이야기 > 공부합시다' 카테고리의 다른 글
[스토리지] 오브젝트 스토리지 (0) | 2023.06.19 |
---|---|
[스토리지] 씬 프로비저닝(Thin Provisioning) (0) | 2023.06.16 |
[스토리지] 데이터 보호 - RAID와 이레이저 코드 (0) | 2023.06.16 |
[스토리지] 데이터 티어링(스토리지 티어링) (0) | 2023.06.16 |
[스토리지] 중복제거 (2) | 2023.06.16 |
댓글