Cơ chế caching đa tầng trong hệ thống lưu trữ Ceph

1. Giới thiệu

Một hệ thống lưu trữ bảo đảm tốc độ cần được kiến trúc và xây dựng theo các mô hình đa lớp, trong đó gồm ít nhất 01 lớp cache để phục vụ cho mục đích đệm – caching toàn bộ hệ thống và 01 lớp lưu trữ dạng back-end, chính là nơi lưu trữ dữ liệu thực sự của toàn bộ hệ thống lưu trữ. Kiến trúc này cho phép truy xuất dữ liệu với tốc độ cao để đạt được mức độ phản hồi tốt nhất với các yêu cầu từ phía các đối tượng sử dụng (clients).

Cache tier

Thông thường, các giải pháp lưu trữ chuyên dụng như các dòng SAN hỗ trợ rất tốt cơ chế này. Đặc biệt, các hệ thống SAN chuyên dụng hỗ trợ caching thông qua Memory – RAM nên cho tốc độ truy xuất cao nhất. Về hệ thống lưu trữ chuyên dụng, tôi sẽ giới thiệu và phân tích ở một bài viết khác cũng liên quan đến chủ đề lưu trữ. Bên cạnh các hệ thống SAN chuyên dụng, các hệ thống lưu trữ hỗ trợ caching thông thường hay sử dụng các đĩa cứng SSD làm thành 1 lớp cache bởi tốc độ truy xuất I/O nhanh hơn nhiều lần so với các loại đĩa cứng SAS hay SATA.

2. CEPH Caching tier

Trong các hệ thống lưu trữ sử dụng giải pháp nguồn mở, CEPH thường được nhắc đến và sử dụng trong nhiều hệ thống lớn trên thế giới. Tham khảo thêm 1 số link về các case-study sử dụng CEPH trên thế giới tại phần tham khảo cuối bài viết.

Bản thân giải pháp lưu trữ Ceph cho phép bật cơ chế phân lớp caching trong quá trình tương tác với các hệ thống khác khi kết nối sử dụng tài nguyên lưu trữ, cần lưu ý có thể sử dụng caching hoặc không cần đối với hệ thống CEPH. Các hệ thống kết nối với CEPH và sử dụng tài nguyên lưu trữ trên CEPH được gọi là các Ceph clients. Lớp caching trong CEPH thường bao gồm các thiết bị đọc ghi với tốc độ cao (thường dùng các đĩa cứng SSD). Tiếp đó là lớp lưu trữ back-end storage với các đĩa cứng lưu trữ giá rẻ, thường sử dụng các đĩa cứng SATA với dung lượng lớn (ví dụ: 2TB) và được sử dụng cho mục đích lưu trữ dữ liệu của toàn bộ hệ thống. 2 phân lớp caching và back-end storage này hoạt động nhịp nhàng cùng nhau để tiếp nhận các yêu cầu truy xuất, xử lý các yêu cầu dữ liệu và lưu trữ vào backend của hệ thống lưu trữ. Cần lưu ý, 2 phân lớp caching và backing storage cùng thuộc hệ thống Ceph và hoàn toàn trong suốt với người dùng.

Ceph diagram

Hình ảnh trên mô tả hoạt động và mối tương quan của các thành phần trong hệ thống CEPH.

Việc chuyển tải dữ liệu giữa 2 lớp cache và back-end được thực hiện thông qua các agent của hệ thống CEPH, các tiến trình chuyển đổi dữ liệu một cách tự động giữa 2 phân lớp caching và lưu trữ được thực hiện hoàn toàn tự động.

3. Chế độ hoạt động của CEPH

Có 2 chế độ hoạt động để quy định việc hoạt động của CEPH có cơ chế caching:
– Write back mode: tại mode hoạt động này, các Ceph clients sẽ ghi data vào lớp cache và nhận các phản hồi ACK từ lớp cache. Sau đó, data từ lớp cache sẽ đưa vào lớp back-end storage và giải phóng khỏi lớp cache. Như vậy, lớp cache sẽ đứng trước toàn bộ hệ thống lưu trữ phía sau. Khi một Ceph client cần truy xuất data tại backend storage, agent caching sẽ di chuyển data từ backend storage sang lớp cache dưới dạng đọc (read) và gởi đến cho Ceph client. Như vậy, Ceph client thực hiện truy xuất I/O thông qua lớp cache, cho đến khi data không còn được sử dụng. Đây là phương thức được sử dụng cho các loại data dạng mutable data (như sử photo, video, transaction, …)

– Read-proxy mode: mode này sử dụng bất kỳ objects nào tồn tại trong lớp cahe, nếu object đó không tồn tại trong lớp cache, yêu cầu truy cập sẽ được chuyển đến lớp backend storage. Phương thức này hiệu quả trong việc kết hợp sử dụng với writeback mode, trong trường hợp hệ thống cache bị quá tải, lúc này các truy xuất sẽ được xử lý trực tiếp bởi backend storage mà không cần phải nâng cấp hệ thống cache.

Mỗi lớp cache hay back-end storage được gọi là pool. Như vậy hệ thống CEHP cần được setup cache pool và back-end storage pool để hoạt động.

Lưu ý trong quá trình cài đặt backend storage pool

Có 2 phương án thiết lập hệ thống back-end storage, bao gồm:
– Standard storage: đây là phương thức triển khai thông thường của CEPH, sử dụng cho mục đích truy xuất data với tốc độ cao và bảo đảm tính dự phòng của dữ liệu. Cấu hình theo phương thức này thì back-end pool sẽ lưu trữ nhiều bản copy của 1 object trong cụm cluster lưu trữ, việc lưu trữ bao nhiêu phiên bản của data sẽ tùy theo cấu hình của từng hệ thống, thông thường sẽ chọn là 3 nhân bản.
– Erasure storage: đây là phương thức lưu trữ đặc biệt và ít được sử dụng trong các mô hình triển khai. Mô hình này phù hợp với việc lưu trữ các loại dữ liệu với dung lượng lớn nhưng rất ít khi được truy xuất, các loại dữ liệu này thường được gọi là cold-storage. So với cách thức Standard Storage thì Erasure Storage giúp tiết kiệm chi phí đầu tư đĩa cứng do tốn ít đĩa cứng hơn đối với cùng một khối lượng lưu trữ.

Xin đón đọc các phần tiếp theo liên quan đến việc xây dựng hệ thống CEPH ở mức cơ bản.

Một số case-study sử dụng Ceph:

Hệ thống Ceph tại đại học Monash sử dụng RedHat Ceph trên các máy chủ DELL, sử dụng cho Trung tâm Monash eResearch Centre (MeRC) tại Australia
https://www.redhat.com/en/resources/monash-university-improves-research-ceph-storage-case-study
Ceph tại đại học Alabama

Ceph tại đại học Pisa (https://www.unipi.it/index.php/english)
https://www.terena.org/activities/tf-storage/ws19/slides/20151014-unipi.pdf

Bình luận