Standard Disk Snapshot trên Cloud

Standard Disk Snapshot trên Cloud

Bài viết này sẽ chỉ đề cập tới standard snapshot của compute chứ chưa bao gồm các lựa chọn snapshot loại archive hay instant đặc biệt khác.

Incremental snapshot là gì

Cơ chế lưu trữ snapshot là Incremental.

  • Các bản snapshot của cùng 1 ổ đĩa sẽ tạo thành chuỗi (chain), bản sau refer tới bản trước.

  • Bản sau chỉ lưu trữ những sự thay đổi (thêm/xoá) kể từ thời điểm của bản snapshot trước

    • Đó là lý do mà nó được gọi là snapshot chứ ko phải (full) backup.
  • Tổng size của tất cả các snapshot sẽ xấp xỉ usage size (ko phải capacity) trong disk

    • Như vậy, tần suất đặt lịch auto snapshot dày hay mỏng sẽ ko khác biệt nhiều về chi phí, tổng size vẫn sẽ same same.
  • Nếu xoá các bản snapshot trước trong chuỗi thì lượng thay đổi của các snapshot bị xoá sẽ dồn sang snapshot liền kề sau đó.

    • Tuỳ khối lượng tỉ lệ với thời gian, đợi 1 lúc bạn sẽ nhìn thấy size của snapshot liền kề đó tăng lên

Nguồn ảnh: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSSnapshots.html#how_snapshots_work

  • Như vậy, nếu nhìn thấy nhiều snapshot đến từ cùng 1 disk tạo bởi Lifecycle, bạn ko phải hốt hoảng rồi đi xoá bớt đâu. Tiền vẫn vậy thôi, trừ khi bạn xoá lifecycle rồi xoá hoàn toàn tất cả snapshot của disk đó.

    • Việc manual xoá bớt snapshot để dồn lại ít snapshot hơn cho cùng 1 disk có thể giảm chút tiền nếu giữa các snapshot đó có sự thay đổi xoá nhiều đáng kể. Tuy nhiên, 1 vài ngày rồi lifecycle/schedule cũng sẽ tự động làm việc dọn bỏ các snapshot cũ nhất thôi.

Xem size của snapshot

Snapshot được cloud tự động nén (compress) khi lưu trữ nên khi xem snapshot size lưu ý chỉ dùng để tham khảo và ước lượng.

Khá bất tiện khi UI và CLI của AWS đều ko có thông tin size của snapshot. Đọc tài liệu của Azure có vẻ cũng tương tự.

GCP thì từ trước 2017 mình dùng thấy đã có sẵn thông tin size từng snapshot trên UI list. (How??)

Làm sao để xem được size snapshot nếu cloud provider ko có sẵn?

Cách cơ bản là edit lifecycle/schedule để đánh tag/billing label cho các snapshot sinh ra, rồi từ đó filter để phân tích trên AWS Cost Explorer/ GCP Billing Report.

Thấy cũng có người post là viết python để tính số block thay đổi thế nào đó.

Note

Nội dung ở blog này chủ yếu mình viết chia sẻ trải nghiệm của mình giữa GCP và AWS với bạn bè. Nếu ae thấy có gì chưa chính xác thì feedback giúp nhé.