Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Redis

Đảm Bảo Độ Tin Cậy Dữ Liệu: Vai Trò Quan Trọng Của Persistence Và Backup Database

Chúng tôi gần đây có cơ hội làm việc với đội ngũ Cohesity để xác minh tích hợp giữa Helios và Redis Enterprise như một bước trong việc gia nhập Chương trình Đối tác Kỹ thuật Redis. Cohesity SmartFiles, dịch vụ chạy trên Helios, cung cấp cái nhìn đơn nhất và quản lý toàn cầu dữ liệu phi cấu trúc, bất kể dữ liệu ở đâu. Trong ngữ cảnh Redis Enterprise, SmartFiles cung cấp cái nhìn đơn nhất của snapshot database.

Tại sao cần persistence và backup? Thực tế: Nếu Redis dùng làm cache và có thể rehydrate từ backend database với ảnh hưởng hệ thống tối thiểu, thì không cần cả hai. Ngược lại, xem xét khi Redis dùng làm operational database cung cấp truy cập nhanh vào dữ liệu chậm (ví dụ: lịch sử giao dịch, đếm tồn kho, tra cứu khách hàng). Database Redis cần khôi phục nhanh từ sự cố phần cứng hoặc thậm chí failover sang datacenter khác.

Persistence (Bền Bỉ)

Tất cả dữ liệu trong database Redis được lưu và quản lý độc quyền trong RAM hoặc RAM + Flash Memory (Redis on Flash); nó có nguy cơ mất khi tiến trình hoặc server sập. Có một số chiến lược giảm thiểu rủi ro này: Database HA với shard primary và secondary, database active-active phân tán địa lý, và 당연히 persistence dựa trên đĩa. Về hiệu suất, luôn ưu tiên failover từ shard primary sang shard secondary đã đồng bộ, và đó là cách Redis Enterprise hoạt động; chỉ khi cả primary và secondary shard đều mất thì database mới khôi phục từ đĩa. Tương tự, nếu datacenter sập, failover sang database active-active đã đồng bộ ở datacenter khác sẽ nhanh hơn khôi phục từ đĩa.

Về persistence, Redis hỗ trợ append-only files (AOF) cho độ bền tốt hơn, tuy cần nhiều tài nguyên hơn, và snapshot (RDB), ít bền hơn nhưng ít tài nguyên hơn. Như mọi thứ, có sự đánh đổi (tradeoffs) có thể xem chi tiết trong tài liệu Redis Enterprise. Bài này giả định chúng ta muốn AOF cho độ bền tốt hơn.

Đảm Bảo Độ Tin Cậy Dữ Liệu: Vai Trò Quan Trọng Của Persistence Và Backup Database

Backup (Sao Lưu)

Redis Enterprise dựa vào persistence để khôi phục khi cả primary và secondary shard đều mất. Nếu không dùng active-active và rack chứa database cùng storage gắn bị mất, chúng ta chỉ còn khôi phục từ backup. Trong trường hợp Redis Enterprise, backup luôn là snapshot, kết hợp với AOF cho persistence tạo nên nền tảng dữ liệu bền bỉ và resilient.

Đây là nơi Cohesity SmartFiles đóng vai trò; Redis Enterprise dùng endpoint tương thích S3 do SmartFiles cung cấp cho backup được quản lý trên các đám mây. Để thiết lập, dùng Redis Enterprise REST API với các giả định:

  • $S3_IP là địa chỉ IP object store S3 của Cohesity và $BUCKET là tên bucket
  • $USER và $PASS là username và password admin Redis Enterprise
  • $ACCESS_KEY và $SECRET_KEY là access key và secret key của S3 object store

Bật persistence database.

curl -s -k -u $USER:$PASS -H content-type:application/json -XPUT https://localhost:9443/v1/bdbs/1 -d '{"data_persistence": "aof"}'

Cấu hình cụm dùng S3 object store bằng cách đặt S3 URL. Lưu ý tên bucket không nằm trong S3 URL.

curl -s -k -u $USER:$PASS -H content-type:application/json -X PUT https://localhost:9443/v1/cluster -d '{"s3_url": '"$S3_IP"'}'

Cấu hình backup S3 cụm chỉ cho riêng tư.

curl -s -k -u $USER:$PASS -H content-type:application/json -X PUT https://localhost:9443/v1/cluster -d '{"s3_certificate_verification":false}'

Xác thực vị trí backup. Chỉ phản hồi HTTP 200 OK nếu thành công.

curl -s -k -u $USER:$PASS -H content-type:application/json -X POST https://localhost:9443/v1/bdbs/actions/validate_backup_location -d '{"backup_location": {"type": "s3", "bucket_name": '"$BUCKET"', "subdir": "","access_key_id": '"$ACCESS_KEY"', "secret_access_key": '"$SECRET_KEY"'}}'

Tạo backup. Chỉ phản hồi HTTP 200 OK nếu thành công.

curl -s -k -u $USER:$PASS -H content-type:application/json -X POST https://localhost:9443/v1/bdbs/1/actions/export -d '{"export_location": {"type": "s3", "bucket_name": '"$BUCKET"', "subdir": "", "access_key_id": '"$ACCESS_KEY"', "secret_access_key": '"$SECRET_KEY"'}}'

Cấu hình backup định kỳ mỗi 30 phút. Chỉ phản hồi HTTP 200 OK nếu thành công.

curl -s -k -u $USER:$PASS -H content-type:application/json -X PUT https://localhost:9443/v1/bdbs/1 -d '{"backup":true, "backup_interval":1800, "backup_interval_offset":360, "backup_location": {"type": "s3", "bucket_name": '"$BUCKET"', "subdir": "", "access_key_id": '"$ACCESS_KEY"', "secret_access_key": '"$SECRET_KEY"'}}'

Suýt Gần Quên

Trong thế giới lý tưởng không ma sát, Redis Enterprise cấu hình HA và Active-Active giúp bạn không lo persistence và backup. Chúng ta không sống trong thế giới lý tưởng và cần cả persistence và backup (cùng HA) khi Redis mong đợi khôi phục từ lỗi hệ thống. Thường thấy endpoint backup S3 như các thiết bị từ Dell EMC, NetApp, hay Pure Storage. May mắn thay, tích hợp đã xác minh với Cohesity SmartFiles giúp dễ dàng dùng endpoint này và đưa backup vào chiến lược vận hành.