Lưu trữ Phân tán
Bạn có thể sử dụng Ceph để xây dựng một cụm máy chủ để lưu trữ dữ liệu với độ sẵn sàng cao. Các bản sao dữ liệu hoặc các khối mã xóa được lưu trữ phân tán trong các thiết bị thuộc các miền lỗi đã được định nghĩa trước khác nhau. Ceph có thể duy trì dịch vụ dữ liệu của mình mà không bị mất dữ liệu khi nhiều thiết bị, nút máy chủ, giá đỡ hoặc địa điểm gặp sự cố cùng một lúc.
Lưu trữ Định nghĩa Bằng Phần mềm Ceph
Khách hàng tương tác trực tiếp với tất cả các thiết bị lưu trữ để đọc và ghi sử dụng thuật toán lưu trữ phân tán CRUSH của Ceph. Vì lý do này, nó loại bỏ nút thắt cổ chai trên Bộ điều hợp bus máy chủ truyền thống (HBA), điều này hạn chế khả năng mở rộng của hệ thống lưu trữ. Ceph có thể mở rộng khả năng của nó theo chiều ngang với hiệu suất lên đến quy mô exabyte.
Ceph được thiết kế để có khả năng mở rộng và không có điểm thất bại duy nhất. Monitor (MON), Object Storage Daemon (OSD), và Metadata Servers (MDS) là ba tiến trình chính (quá trình Linux) trong cụm Ceph. Thường thì, một cụm Ceph sẽ có ba hoặc nhiều hơn các nút giám sát để đảm bảo tính dự phòng. Các máy giám sát duy trì một bản sao chính của bản đồ cụm, cho phép khách hàng Ceph giao tiếp trực tiếp với OSD và MDS. Những bản đồ này là trạng thái cụm quan trọng cần thiết cho các tiến trình Ceph để phối hợp với nhau. Các bộ điều khiển cũng chịu trách nhiệm quản lý xác thực giữa các tiến trình và khách hàng. Số lượng màn hình lẻ duy trì bản đồ cụm bằng cách sử dụng một số phiếu. Thuật toán này tránh điểm thất bại đơn lẻ trên màn hình và đảm bảo rằng sự đồng thuận của họ là hợp lệ. OSD là daemon lưu trữ đối tượng cho Ceph. Nó lưu trữ dữ liệu, xử lý sao chép dữ liệu, phục hồi, cân bằng lại và cung cấp một số thông tin giám sát cho Ceph Monitors bằng cách kiểm tra các OSD Daemons khác để theo dõi nhịp tim. Mỗi máy chủ lưu trữ chạy một hoặc nhiều tiến trình OSD, một tiến trình cho mỗi thiết bị lưu trữ. Thường cần ít nhất 3 OSD để đảm bảo tính dự phòng và khả năng sẵn sàng cao. Daemon MDS quản lý siêu dữ liệu liên quan đến các tệp được lưu trữ trên Hệ thống Tệp Ceph và cũng phối hợp truy cập vào Cụm Lưu trữ Ceph chia sẻ. Bạn có thể có nhiều MDS hoạt động để dự phòng và cân bằng tải cho mỗi MDS. Bạn sẽ cần một hoặc nhiều Máy chủ Siêu dữ liệu (MDS) chỉ khi bạn muốn sử dụng hệ thống tệp chia sẻ.
Ceph là lưu trữ có thể mở rộng
Trong một hệ thống lưu trữ truyền thống, các khách hàng giao tiếp với một thành phần trung tâm (ví dụ: bộ điều hợp bus máy chủ hoặc cổng), đây là một điểm truy cập duy nhất vào một hệ thống con phức tạp. Bộ điều khiển tập trung đặt ra giới hạn cho cả hiệu suất và khả năng mở rộng cũng như giới thiệu một điểm thất bại duy nhất. Nếu thành phần trung tâm bị hỏng, toàn bộ hệ thống cũng sẽ bị hỏng. Các client Ceph nhận bản đồ cụm mới nhất từ các bộ giám sát và sử dụng thuật toán CRUSH để tính toán OSD nào trong cụm. Thuật toán này cho phép khách hàng tương tác trực tiếp với Ceph OSD mà không cần thông qua một bộ điều khiển tập trung. Thuật toán CRUSH loại bỏ đường đơn, điều này gây ra giới hạn về khả năng mở rộng. Cụm Ceph OSD cung cấp cho khách hàng một bể lưu trữ chia sẻ. Khi bạn cần thêm dung lượng hoặc hiệu suất, bạn có thể thêm OSD mới để mở rộng bể. Hiệu suất của một cụm Ceph tỷ lệ thuận với số lượng OSD. Hình ảnh dưới đây cho thấy số IOPS đọc/ghi tăng lên nếu chúng ta tăng số lượng OSD.
Hệ thống lưu trữ đĩa truyền thống sử dụng bộ điều khiển RAID để bảo vệ dữ liệu khỏi sự cố đĩa. Dung lượng của một ổ đĩa cứng khoảng 20MB khi công nghệ RAID được phát minh. Hôm nay, dung lượng đĩa lớn tới 16TB. Thời gian để khôi phục một ổ đĩa bị lỗi trong nhóm RAID có thể mất một tuần. Trong khi bộ điều khiển RAID đang xây dựng lại ổ đĩa bị lỗi, có khả năng ổ đĩa thứ hai có thể gặp sự cố đồng thời. Nếu việc xây dựng lại mất nhiều thời gian hơn, khả năng mất dữ liệu sẽ cao hơn.
Ceph phục hồi dữ liệu bị mất trong ổ đĩa hỏng bằng tất cả các ổ đĩa khỏe mạnh khác trong cụm. Ceph sẽ chỉ xây dựng lại dữ liệu được lưu trữ trong ổ đĩa hỏng. Nếu có nhiều ổ đĩa khỏe mạnh hơn, thời gian phục hồi sẽ ngắn hơn.
- Cấu hình Bản đồ & Quy tắc Ceph CRUSH