
Erasure Coding là kỹ thuật bảo vệ dữ liệu được sử dụng phổ biến trong Object Storage và Cloud Storage. Thay vì lưu nhiều bản sao như Replication, Erasure Coding chia dữ liệu thành các khối và tạo thêm dữ liệu dự phòng để tiết kiệm dung lượng mà vẫn có thể khôi phục khi xảy ra sự cố. Bài viết sẽ giải thích Erasure Coding là gì, cách hoạt động và điểm khác biệt so với RAID.
Erasure Coding (mã hóa xóa) là phương pháp bảo vệ dữ liệu được sử dụng trong thiết kế hệ thống nhằm đảm bảo độ tin cậy và khả năng sẵn sàng của dữ liệu. Phương pháp này hoạt động bằng cách chia dữ liệu thành nhiều khối nhỏ, sau đó sử dụng các thuật toán toán học để tạo thêm các khối dữ liệu dự phòng (parity). Nhờ đó, hệ thống vẫn có thể khôi phục dữ liệu gốc ngay cả khi một số khối dữ liệu bị mất hoặc bị hỏng.

Quy trình hoạt động của Erasure Coding gồm các bước sau:
Erasure Coding đặc biệt phù hợp với hệ thống lưu trữ phân tán (Distributed Storage) và lưu trữ đám mây (Cloud Storage) nhờ khả năng đảm bảo độ tin cậy của dữ liệu trong khi sử dụng ít dung lượng lưu trữ hơn so với phương pháp sao chép dữ liệu (Replication). Điều này giúp các tổ chức vừa duy trì tính toàn vẹn của dữ liệu, vừa tối ưu chi phí lưu trữ.
Để Erasure Coding hoạt động, hệ thống dựa trên ba thành phần chính gồm các mảnh dữ liệu gốc, các mảnh dự phòng và thuật toán mã hóa, cụ thể:
Erasure Coding hoạt động dựa trên nguyên tắc chia nhỏ dữ liệu, tạo dữ liệu dự phòng và phân tán chúng trên nhiều thiết bị lưu trữ. Khi một phần dữ liệu bị mất hoặc hỏng, hệ thống sẽ sử dụng các khối dữ liệu còn lại cùng với dữ liệu dự phòng để khôi phục dữ liệu gốc.

Bước đầu tiên, dữ liệu gốc được chia thành nhiều khối dữ liệu (data chunks) có kích thước bằng nhau. Việc chia nhỏ dữ liệu giúp hệ thống dễ dàng phân phối dữ liệu đến nhiều nút lưu trữ, đồng thời tạo nền tảng cho quá trình khôi phục khi xảy ra sự cố.
Sau khi chia dữ liệu, hệ thống sử dụng các thuật toán mã hóa, phổ biến nhất là Reed-Solomon, để tạo thêm các khối dữ liệu dự phòng (parity chunks). Các khối này không chứa bản sao của dữ liệu gốc mà lưu trữ thông tin toán học, cho phép tái tạo dữ liệu nếu một hoặc nhiều khối bị mất.
Các khối dữ liệu và khối dự phòng được phân bố trên nhiều ổ đĩa hoặc nhiều nút lưu trữ thay vì tập trung tại một vị trí. Cách phân tán này giúp hệ thống vẫn duy trì khả năng truy cập dữ liệu ngay cả khi một số ổ đĩa hoặc máy chủ gặp sự cố, đồng thời giảm nguy cơ mất dữ liệu do lỗi phần cứng.
Khi một hoặc nhiều khối dữ liệu bị mất hoặc hỏng, hệ thống sẽ sử dụng các khối dữ liệu còn lại cùng với dữ liệu dự phòng để tái tạo dữ liệu ban đầu. Khả năng khôi phục phụ thuộc vào cấu hình Erasure Coding, nhưng chỉ cần số lượng khối còn lại đáp ứng ngưỡng yêu cầu thì dữ liệu vẫn có thể được phục hồi đầy đủ.
Erasure Coding và RAID đều là kỹ thuật bảo vệ dữ liệu bằng cách bổ sung dữ liệu dự phòng, nhưng được thiết kế cho những môi trường lưu trữ khác nhau và phù hợp với những nhu cầu triển khai riêng. Bảng dưới đây sẽ giúp bạn thấy rõ sự khác biệt giữa hai giải pháp này:
Tiêu chí | RAID | Erasure Coding |
Môi trường triển khai | Một máy chủ hoặc một nhóm ổ đĩa | Hệ thống lưu trữ phân tán, Cloud Storage, Object Storage |
Cách bảo vệ dữ liệu | Sử dụng bản sao hoặc dữ liệu parity giữa các ổ đĩa | Chia dữ liệu thành nhiều khối và tạo thêm các khối parity bằng thuật toán mã hóa |
Khả năng mở rộng | Phù hợp với số lượng ổ đĩa hạn chế | Có thể mở rộng lên hàng trăm hoặc hàng nghìn nút lưu trữ |
Hiệu quả sử dụng dung lượng | Phụ thuộc vào từng cấp RAID | Thường tối ưu hơn khi triển khai ở quy mô lớn |
Ứng dụng phổ biến | Máy chủ, NAS, SAN | Ceph, MinIO, Amazon S3, Azure Blob Storage |
Mặc dù đều sử dụng dữ liệu dự phòng (parity) để khôi phục dữ liệu khi xảy ra sự cố, Erasure Coding không phải là phiên bản thay thế RAID mà là giải pháp được tối ưu cho các hệ thống lưu trữ phân tán. Trong thực tế, nhiều nền tảng lưu trữ hiện đại như Ceph, MinIO hay Amazon S3 sử dụng Erasure Coding để giảm chi phí lưu trữ nhưng vẫn đảm bảo khả năng chịu lỗi khi một hoặc nhiều nút lưu trữ gặp sự cố.
Erasure Coding mang lại nhiều lợi ích trong việc bảo vệ và tối ưu dữ liệu, đặc biệt đối với các hệ thống lưu trữ phân tán. Dưới đây là những vai trò chính của Erasure Coding:
Erasure Coding chia dữ liệu thành nhiều khối dữ liệu (data chunks) và tạo thêm khối dự phòng (parity chunks) bằng các thuật toán như Reed-Solomon. Các khối này được phân tán trên nhiều thiết bị hoặc nút lưu trữ, vì vậy khi một phần dữ liệu gặp sự cố, hệ thống vẫn có đủ thông tin để khôi phục dữ liệu ban đầu.
Khi một ổ đĩa hoặc máy chủ bị lỗi, dữ liệu trên đó có thể không còn khả dụng. Erasure Coding cho phép hệ thống sử dụng các khối dữ liệu và parity còn lại để tái tạo phần dữ liệu bị mất, nhờ đó hạn chế ảnh hưởng của lỗi phần cứng đến khả năng truy cập dữ liệu.
Ví dụ, với cấu hình 4+2, dữ liệu được chia thành 4 khối và tạo thêm 2 khối parity. Chỉ cần còn 4 trong tổng số 6 khối, hệ thống vẫn có thể khôi phục dữ liệu gốc.

Erasure Coding không chỉ giúp xử lý trường hợp dữ liệu bị mất mà còn hỗ trợ phát hiện và khôi phục dữ liệu bị hỏng. Khi một khối bị lỗi do hiện tượng như bit rot hoặc lỗi dữ liệu âm thầm, hệ thống có thể sử dụng các khối parity để tái tạo lại phần dữ liệu chính xác.
Một trong những lợi ích lớn của Erasure Coding là giảm dung lượng dành cho dữ liệu dự phòng so với việc lưu nhiều bản sao hoàn chỉnh. Chẳng hạn, cấu hình 6+3 sử dụng 9 khối để bảo vệ 6 khối dữ liệu, trong khi phương pháp sao chép 3 bản sẽ cần 18 khối để lưu cùng lượng dữ liệu gốc.
Erasure Coding có thể được triển khai trên nhiều nút lưu trữ và điều chỉnh số lượng khối dữ liệu, khối parity theo yêu cầu về khả năng chịu lỗi và dung lượng. Nhờ đó, kỹ thuật này phù hợp với các hệ thống lưu trữ phân tán, Cloud Storage và Object Storage có quy mô lớn.
Khi không cần duy trì nhiều bản sao đầy đủ của cùng một dữ liệu, hệ thống có thể giảm lượng phần cứng và dung lượng lưu trữ cần thiết mà vẫn duy trì khả năng chịu lỗi. Với các hệ thống có hàng petabyte dữ liệu, mức tiết kiệm này có thể tác động đáng kể đến tổng chi phí vận hành.
Nhờ khả năng bảo vệ dữ liệu hiệu quả trong khi vẫn tối ưu dung lượng lưu trữ, Erasure Coding được ứng dụng rộng rãi trong nhiều hệ thống lưu trữ hiện đại, đặc biệt là các hạ tầng phân tán quy mô lớn.
Đây là lĩnh vực ứng dụng phổ biến nhất của Erasure Coding. Các nền tảng như Ceph và MinIO sử dụng kỹ thuật này để bảo vệ dữ liệu trên nhiều node, giảm đáng kể dung lượng lưu trữ so với Replication nhưng vẫn đảm bảo khả năng khôi phục khi xảy ra sự cố phần cứng.

Erasure Coding phù hợp với các cụm lưu trữ đa node, nơi dữ liệu được phân tán trên nhiều máy chủ. Kỹ thuật này giúp hệ thống duy trì tính sẵn sàng ngay cả khi một hoặc nhiều node gặp lỗi.
Các nền tảng như Apache Hadoop HDFS hỗ trợ Erasure Coding để thay thế cơ chế Replication đối với dữ liệu ít truy cập, từ đó giảm đáng kể chi phí lưu trữ mà vẫn đảm bảo khả năng chịu lỗi.
Nhiều giải pháp lưu trữ doanh nghiệp ứng dụng Erasure Coding để tăng khả năng mở rộng, nâng cao độ bền dữ liệu và tối ưu chi phí vận hành trên quy mô lớn.

Với các dữ liệu sao lưu (Backup), snapshot hoặc kho lưu trữ ít truy cập, Erasure Coding giúp tiết kiệm dung lượng đáng kể so với Replication trong khi vẫn đảm bảo khả năng khôi phục dữ liệu khi cần.
Erasure Coding được sử dụng trong nhiều hệ thống lưu trữ quy mô lớn để tăng khả năng bảo vệ dữ liệu và tối ưu dung lượng lưu trữ. Hai ví dụ tiêu biểu là hệ thống F4 của Facebook và Azure Storage của Microsoft.
Khi triển khai Erasure Coding, doanh nghiệp cần cân nhắc một số yếu tố quan trọng để cân bằng giữa khả năng bảo vệ dữ liệu, hiệu quả lưu trữ và hiệu suất hệ thống, cụ thể:
Hy vọng bài viết đã giúp bạn hiểu rõ Erasure Coding là gì, các thành phần, cơ chế hoạt động cũng như những trường hợp nên triển khai trong thực tế. Tùy theo mục tiêu về hiệu năng, khả năng mở rộng và ngân sách đầu tư, doanh nghiệp có thể lựa chọn giải pháp phù hợp để xây dựng hạ tầng lưu trữ tối ưu.
