Sử dụng tính năng container lifecycle

Lifecycle là một tính năng do VNG Cloud phát triển cho phép bạn thiết lập các hành động mà vStorage áp dụng cho một container. Chúng tôi định nghĩa 2 loại rule sau đây để hỗ trợ bạn quản lý vòng đời của container:

  • Transition rule: Rule hỗ trợ di chuyển object giữa các storage class. Ví dụ bạn có thể thiết lập một lifecycle rule di chuyển object từ storage class Gold qua storage class Silver nếu trong vòng 30 ngày mà object không được truy cập.

  • Expiration rule: Rule hỗ trợ xóa các object theo điều kiện ràng buộc. Ví dụ bạn có thể thiết lập xóa object thuộc storage class Gold sau một khoảng thời gian nhất định kể từ ngày object tồn tại trên hệ thống vStorage.

Lưu ý:

Việc xử lý object trong một lần chạy lifecycle rule phụ thuộc vào số lượng object trong container được thiết lập lifecycle rule của bạn và workload của hệ thống chúng tôi. Nếu container có nhiều object hoặc hệ thống có tải cao, việc xử lý sẽ chậm và kéo dài qua các ngày kế tiếp. Nếu container có ít object hoặc hệ thống có tải thấp, việc xử lý sẽ nhanh và có thể hoàn thành trong một ngày. Để đảm bảo việc xử lý object diễn ra hiệu quả và nhanh chóng, bạn nên chia nhỏ các lần chạy lifecycle rule và sử dụng Bộ lọc để giảm thiểu số lượng object cần xử lý.

Để tạo một lifecycle container, bạn có thể thực hiện qua vStorage Portal theo hướng dẫn bên dưới:

Sử dụng vStorage Portal

  1. Chọn project và chọn container bạn muốn thiết lập lifecycle.

  2. Màn hình Lifecycle được hiển thị. Chọn Tạo một quy tắc lifecycle.

  3. Nhập Tên quy tắc Lifecycle. Tên quy tắc Lifecycle mà chúng tôi cho phép bạn nhập bao gồm các chữ cái (a-z, A-Z, 0-9, '_', '-'). Độ dài Tên quy tắc Lifecycle của bạn phải nằm trong khoảng từ 5 đến 50.

  4. Chọn Loại quy tắc và nhập Mô tả quy tắc nếu có. Chúng tôi cung cấp cho bạn 2 loại quy tắc bao gồm:

    1. Transition: Rule hỗ trợ di chuyển object giữa các storage class.

    2. Expiration: Rule hỗ trợ xóa các object theo điều kiện ràng buộc.

  5. Nhập Bộ lọc. Bộ lọc này được áp dụng cho một lifecycle rule cụ thể. Mỗi lifecycle rule chỉ được đặt 1 bộ lọc duy nhất, nếu bạn không nhập chuỗi ký tự bất kỳ nào tại đây thì mặc định chúng tôi sẽ áp dụng quy tắc lifecycle mà bạn đang tạo lên tất cả các object thuộc container này. Bạn có thể lọc các object mong muốn áp dụng lifecycle rule thông qua các phương thức sau:

    1. Nếu bạn muốn tìm kiếm object theo Prefix:

      1. Chọn Prefix.

      2. Nhập chuỗi ký tự là tiền tố bạn muốn tìm kiếm.

    2. Nếu bạn muốn tìm kiếm object theo Wildcard:

      1. Chọn Wildcard.

      2. Nhập chuỗi ký tự là tiền tố bạn muốn tìm kiếm.

    3. Nếu bạn muốn tìm kiếm object theo Regex:

      1. Chọn Regex.

      2. Nhập chuỗi ký tự là tiền tố bạn muốn tìm kiếm.

Ví dụ: nếu bạn muốn tìm kiếm các object có điểm chung là tiền tố trong tên object là file thì bạn cần thực hiện nhập bộ lọc:

  • Chọn Prefix

  • Nhập tiền tố file

Bạn có thể tìm hiểu thêm cách chúng tôi tìm kiếm kết quả Search theo mỗi phương thức tại bảng bên dưới:

Phương thức (Search by)Cú pháp mẫuKết quả tìm kiếmGiải thích ý nghĩa

Name match by prefix

Name match by prefix abc (object nằm trong container)

Name match by prefix directoryA/abc (object nằm trong directoryA)

abc1, abc2,…có phân biệt hoa thường.

Tìm kiếm bằng cách so sánh chuỗi ký tự nhập vào với tiền tố của tên object.

Name match by wildcard

Name match by wildcard ab*c (object nằm trong container)

Name match by wildcard ?abc? (object nằm trong container)

Name match by wildcard abc*.?xt (object nằm trong container)

Name match by wildcard ab\*c.txt (object nằm trong container)

Name match by wildcard directoryA/ab*c (object nằm trong directoryA)

Name match by wildcard directoryA/?abc? (object nằm trong directoryA)

Name match by wildcard directoryA/abc*.?xt (object nằm trong directoryA)

Name match by wildcard directoryA/ab\*c.txt (object nằm trong directoryA)

abc, abdc, ab)c, abUUc, ab&-Bc…có phân biệt hoa thường.

1abcx, -abc*, 1abcD,… có phân biệt hoa thường.

abc.txt, abc123.^xt,… có phân biệt hoa thường.

ab*c.txt có phân biệt hoa thường.

*: 0 tới n ký tự bất kỳ, ký tự này có thể là chữ cái in hoa, in thường, ký tự số hoặc ký tự đặc biệt.

?: 1 ký tự bất kỳ, ký tự này có thể là chữ cái in hoa, in thường, ký tự số hoặc ký tự đặc biệt.

\*, \?: ký tự *, ? lúc này được coi là một ký tự trong bình thường, không phải là toán tử đại diện sử dụng để search.

Name match by regex

Name match by regex ab. (object nằm trong container)

Name match by regex directoryA/ab. (object nằm trong directoryA)

ab1,ab2,ab3, abx, ab*,… có phân biệt hoa thường.

.: 1 ký tự bất kỳ, ký tự này có thể là chữ cái in hoa, in thường, ký tự số hoặc ký tự đặc biệt.

Name match by regex abc? (object nằm trong container)

Name match by regex directoryA/abc? (object nằm trong directoryA)

ab, abc có phân biệt hoa thường.

?: không lặp lại ký tự liền kề gần nhất hoặc lặp lại ký tự gần nhất 1 lần.

Name match by regex ab+ (object nằm trong container)

Name match by regex directoryA/ab+ (object nằm trong directoryA)

ab, abb, abbb,… có phân biệt hoa thường.

+: lặp lại ký tự liền kề gần nhất 1 hoặc nhiều lần.

Name match by regex ab* (object nằm trong container)

Name match by regex directoryA/ab* (object nằm trong directoryA)

a, ab, abb, abbb,… có phân biệt hoa thường.

*: không lặp lại ký tự liền kề gần nhất hoặc lặp lại ký tự gần nhất 1 hoặc nhiều lần.

Name match by regex a{2} (object nằm trong container)

Name match by regex directoryA/a{2} (object nằm trong directoryA)

Name match by regex a{2,4} (object nằm trong container)

Name match by regex directoryA/a{2,4} (object nằm trong directoryA)

Name match by regex a{2,} (object nằm trong container)

Name match by regex directoryA/a{2,} (object nằm trong directoryA)

aa có phân biệt hoa thường.

aa, aaa, aaaa có phân biệt hoa thường.

aa, aaa, aaaa, aaaaa,… có phân biệt hoa thường.

{}: số ký tự tối thiếu và tối đa mà ký tự liền kề gần nhất lặp lại.

Hạn chế sử dụng số lớn trong ngoặc

Name match by regex abc|xyz (object nằm trong container)

Name match by regex directoryA/abc|xyz (object nằm trong directoryA)

abc, xyz có phân biệt hoa thường.

| hoặc.

Name match by regex

Name match by regex abc(xyz) (object nằm trong container)

Name match by regex directoryA/abc(xyz) (object nằm trong directoryA)

abc, abcxyz có phân biệt hoa thường.

() hoặc tồn tại.

Name match by regex [abc] (object nằm trong container)

Name match by regex directoryA/ [abc] (object nằm trong directoryA)

Name match by regex [a-d] (object nằm trong container)

Name match by regex directoryA/ [a-d] (object nằm trong directoryA)

Name match by regex [^abc\-] (object nằm trong container)

Name match by regex directoryA/ [^abc\-] (object nằm trong directoryA)

a, b, c có phân biệt hoa thường.

a, b, c, d có phân biệt hoa thường.

khác a, b, c, hoặc - có phân biệt hoa thường.

[ ] một trong các ký tự trong ngoặc.

^: ngoại trừ

\: hoặc

Name match by regex a{2,6}+d?*

Name match by regex directoryA/ a{2,6}+d?*

Name match by regex directoryA{2,6}+d?*/ a{2,6}+d?*/ a{2,6}+d?*

aaaaaaa, aaaaaaaaaaaaddddd,… có phân biệt hoa thường.

Sử dụng lồng các toán tử lại trong một cú pháp tìm kiếm regex.

Chú ý:

  1. Bạn có thể tạo lifecycle rule thuộc 1 trong 2 loại (transition, expiration) trên 1 container ở 1 project bất kỳ. Tức là nếu bạn đã thiết lập lifecycle rule loại transition cho container01 thì bạn không thể thiết lập lifecycle rule loại expiration cho container01 nữa và ngược lại.

  2. Nếu bạn thiết lập transition rule cho 1 container thì bạn có thể tạo tối đa 1 transition rule.

  3. Nếu bạn thiết lập expiration rule cho 1 container thì bạn có thể tạo tối đa 10 expiration rule.

Khi bạn chọn:

Transition

Transition rule sẽ di chuyển các object thỏa điều kiện nhất định từ storage class Gold qua storage class Silver. Hiện tại tính năng transition chỉ hỗ trợ cho:

  • Chuyển object đối với tài khoản khách hàng trả sau.

  • Chuyển object từ Gold container sang Silver container.

8. Chọn vị trí và thời điểm mà các object được di chuyển

  • Transition to: chọn vStorage Silver.

  • Sau đó nhập số ngày kể từ lần cuối object được truy cập (Request Get / Tải xuống).

Sau khi bạn thực hiện tạo mới Lifecycle rule loại transition thành công, hệ thống vStorage sẽ tự động tạo một container với hậu tố tier với storage class Silver. Ví dụ khi bạn tạo lifecycle rule loại transition cho Container01 (storage class Gold) thì hệ thống sẽ tự động tạo Container01_tier (storage class Silver). Trong vòng 2h kể từ khi lifecycle rule được tạo, hệ thống vStorage sẽ thực hiện chạy rule, các object thỏa mãn điều kiện sẽ được di chuyển từ Container01 sang Container01_tier với URL object không thay đổi.

Expiration

Expiration rule sẽ xóa các object thuộc container theo các điều kiện ràng buộc nhất định. Hiện tại tính năng expiration hỗ trợ cho:

  • Xóa object đối với cả tài khoản khách hàng trả trước và tài khoản khách hàng trả sau.

  • Xóa object thuộc Gold container, Silver container và Archive container. (Đối với Archive container, số ngày tối thiểu có thể thực hiện xóa object là 180 ngày).

8. Chọn hành động xảy ra với object tại container mà bạn chọn, bao gồm:

  • Expire phiên bản hiện tại của các object (Expire current version of objects): sử dụng khi bạn muốn thiết lập xóa object thuộc container gốc đang thiết lập lifecycle rule sau một khoảng thời gian kể từ ngày object tồn tại trên hệ thống vStorage. Rule này áp dụng cho việc xóa object ở các container không phải versioning. Khi bạn chọn thiết lập này, bạn cần nhập số ngày kể từ khi khởi tạo object.

  • Xóa vĩnh viễn các phiên bản trước đó (Permanently delete previous versions): sử dụng khi bạn muốn thiết lập xóa object thuộc container version tương ứng của container gốc đang thiết lập lifecycle rule sau một khoảng thời gian kể từ lúc object version được sinh ra. Rule này áp dụng cho việc xóa object ở container versioning. Khi bạn chọn thiết lập này, bạn cần nhập số ngày kể từ khi object trở thành phiên bản cũ (tức object tồn tại trong container version)

  • Expire các object được đánh dấu là xóa (Expire marked-deleted objects): sử dụng khi bạn muốn thiết lập xóa các tệp tin delete marked sinh ra trong các container version. (Tệp tin delete marked là các tệp tin sinh ra khi bạn thực hiện xóa object thuộc container gốc mà container gốc này đã được bật versioning). Rule này áp dụng cho việc xóa object ở container versioning.

Sau khi bạn thực hiện tạo mới Lifecycle rule loại expiration thành công, trong vòng 2h kể từ khi lifecycle rule được tạo, hệ thống vStorage sẽ thực hiện chạy rule, các object thỏa mãn điều kiện sẽ được xóa.

Tham khảo 2 ví dụ bên dưới để hiểu cơ chế hoạt động của expiration rule:

Ví dụ 1: bạn đã tạo container01 (container01 chưa được bạn bật tính năng container versioning). Lúc này bạn có nhu cầu thiết lập 1 rule theo quy tắc: nếu 60 ngày mà các object không được truy cập thì hệ thống thực hiện xóa. Lúc này bạn sẽ thiết lập quy tắc expiration như sau:

Ví dụ 2: bạn đã tạo container01 (container01 đã được bạn bật tính năng container versioning). Lúc này bạn có nhu cầu thiết lập 1 rule theo quy tắc: nếu 60 ngày mà các object không được truy cập thì hệ thống thực hiện xóa. Lúc này bạn sẽ thiết lập quy tắc expiration như sau:

  • Xóa các object thuộc container01 thỏa mãn điều kiện 60 ngày không được truy cập.

  • Xóa các object thuộc container01_version thỏa mãn điều kiện 60 ngày trở thành phiên bản cũ (tức object tồn tại trong container01_version đủ 60 ngày).

  • Xóa các tệp tin delete marker sinh ra ở container01_version.

Last updated