Học CEPH trong 8 tuần
Table of contents
- Tuần 1: Giới thiệu CEPH và Kiến trúc Cơ bản (Ngày 1-7)
- Tuần 2: Quản trị CEPH Nâng Cao (Ngày 8-14)
- Tuần 3: Tối ưu hóa Hiệu năng và Giám sát CEPH (Ngày 15-21)
- Tuần 4: Sao lưu và Phục hồi Dữ liệu CEPH (Ngày 22-28)
- Tuần 5: Tích hợp CEPH với OpenStack và Kubernetes (Ngày 29-35)
- Tuần 6: Xây dựng Ứng dụng Sử dụng CEPH (Ngày 36-42)
- Tuần 7: Tìm hiểu về các Tính năng Mới nhất của CEPH (Ngày 43-49)
- Tuần 8: Ôn tập và Thực hành Tổng hợp (Ngày 50-56)
Tuần 1: Giới thiệu CEPH và Kiến trúc Cơ bản (Ngày 1-7)
Ngày 1:
Kiến thức:
Giới thiệu về CEPH: Lịch sử, mục tiêu, các trường hợp sử dụng phổ biến.
Kiến trúc tổng quan của CEPH: Các thành phần chính (MON, OSD, MDS, MGR), mô hình lưu trữ đối tượng, khối, và file.
Cài đặt CEPH cơ bản với cephadm: Chuẩn bị môi trường, triển khai cluster mới.
Bài tập:
- Cài đặt một cluster CEPH đơn giản gồm 3 node sử dụng cephadm.
Ngày 2:
Kiến thức:
Tìm hiểu về RADOS: Mô hình lưu trữ đối tượng phân tán của CEPH, CRUSH algorithm, placement groups (PG).
Quản lý cluster CEPH với cephadm: Các lệnh cơ bản, giám sát trạng thái cluster, thêm/xóa node.
Bài tập:
Tạo một pool replicated với 3 bản sao và một pool erasure coded với profile
default
.Sử dụng
ceph -s
vàceph osd tree
để kiểm tra trạng thái cluster và vị trí các OSD.
Ngày 3:
Kiến thức:
- Tìm hiểu về Ceph Block Device (RBD): Các khái niệm cơ bản, tạo và quản lý image RBD, tích hợp với KVM/QEMU.
Bài tập:
Tạo một image RBD 10GB và map nó vào một máy ảo KVM.
Sử dụng
rbd bench
để kiểm tra hiệu năng của image RBD.
Ngày 4:
Kiến thức:
- Tìm hiểu về Ceph Object Storage (RGW): Các khái niệm S3, Swift, cài đặt và cấu hình RGW, quản lý user và bucket.
Bài tập:
Cài đặt và cấu hình RGW với frontend S3.
Tạo một bucket S3 và upload một file lên đó.
Sử dụng
s3cmd
để thực hiện các thao tác cơ bản với bucket và object S3.
Ngày 5:
Kiến thức:
- Tìm hiểu về Ceph File System (CephFS): Kiến trúc, các thành phần MDS, tạo và quản lý filesystem, mount và sử dụng CephFS.
Bài tập:
Tạo một filesystem CephFS và mount nó trên một client.
Tạo một thư mục và một file trên CephFS và kiểm tra hoạt động của MDS.
Ngày 6:
Kiến thức:
- Tìm hiểu về Ceph Manager Daemon (MGR): Vai trò, các module quản lý, giám sát hiệu năng và sức khỏe cluster.
Bài tập:
Cài đặt và kích hoạt module
dashboard
của MGR.Sử dụng dashboard để giám sát trạng thái cluster, pool, OSD, và các thành phần khác.
Ngày 7:
Kiến thức:
Tổng kết lại các kiến thức đã học trong tuần.
Giới thiệu một số khái niệm nâng cao như cache tiering, erasure coding với các profile khác nhau.
Bài tập:
Thực hiện một bài kiểm tra tổng hợp về kiến thức đã học trong tuần.
Nghiên cứu và thử nghiệm các tính năng nâng cao được giới thiệu.
Tuần 2: Quản trị CEPH Nâng Cao (Ngày 8-14)
Ngày 8:
Kiến thức: Quản lý pool trong CEPH: Tạo, cấu hình (pg_num, pgp_num, size, min_size, crush_rule), và tối ưu hóa pool cho các loại workload khác nhau.
Bài tập:
Tạo các loại pool khác nhau (replicated, erasure coded) với các cấu hình khác nhau.
Thử nghiệm và so sánh hiệu năng của các pool này với các workload khác nhau.
Tìm hiểu cách thay đổi cấu hình pool khi cần thiết.
Ngày 9:
Kiến thức: Cấu hình CRUSH map: Hiểu rõ về rule, weight, failure domain, và cách tối ưu CRUSH map cho hiệu suất và độ tin cậy.
Bài tập:
Tạo một CRUSH map tùy chỉnh với các failure domain khác nhau (host, rack, row, ...).
Sử dụng
ceph osd crush tree
để xem cấu trúc CRUSH map vàceph osd crush show-tunables
để xem các tham số cấu hình.Thử nghiệm và so sánh hiệu năng của cluster với các CRUSH map khác nhau.
Ngày 10:
Kiến thức: Tìm hiểu về Erasure Coding: Ưu nhược điểm so với replication, các loại plugin EC (LRC, SHEC, ISA), tính toán dung lượng và hiệu năng.
Bài tập:
Tạo các pool erasure coded với các plugin khác nhau và các profile khác nhau.
Tính toán dung lượng cần thiết cho các pool erasure coded với các profile khác nhau.
So sánh hiệu năng đọc/ghi của các pool erasure coded với các pool replicated.
Ngày 11:
Kiến thức: Cấu hình và quản lý Erasure Coding trong CEPH: Chọn plugin phù hợp, tính toán profile EC, giám sát và tối ưu hóa.
Bài tập:
Tạo một pool erasure coded với profile tùy chỉnh.
Sử dụng
ceph osd erasure-code-profile get
vàceph osd erasure-code-profile set
để xem và thay đổi cấu hình profile EC.Giám sát quá trình encoding và recovery của các pool erasure coded.
Ngày 12:
Kiến thức: Cấu hình cache tiering: Tích hợp CEPH với các loại cache (SSD, NVMe), tối ưu hóa hiệu năng đọc/ghi.
Bài tập:
Cấu hình cache tiering cho một pool sử dụng SSD làm cache tier.
Sử dụng
cache-mode
để cấu hình chế độ cache (writeback, readthrough, readonly).Giám sát hiệu năng đọc/ghi của pool sau khi cấu hình cache tiering.
Ngày 13:
Kiến thức: Tìm hiểu về CephX: Cơ chế xác thực trong CEPH, quản lý user và key, tích hợp với LDAP/Active Directory.
Bài tập:
Tạo một user mới và cấp quyền truy cập vào một pool cụ thể sử dụng CephX.
Cấu hình CEPH để sử dụng LDAP/Active Directory làm backend xác thực.
Thử nghiệm truy cập vào cluster CEPH từ các client khác nhau sử dụng CephX.
Ngày 14:
Kiến thức: Cấu hình bảo mật cho CEPH: Mã hóa dữ liệu, quản lý network security, cập nhật và vá lỗi bảo mật.
Bài tập:
Cấu hình mã hóa dữ liệu ở mức OSD sử dụng dm-crypt hoặc LUKS.
Cấu hình firewall để giới hạn truy cập vào các cổng của CEPH.
Thực hiện cập nhật CEPH lên phiên bản mới nhất và kiểm tra các bản vá lỗi bảo mật.
Tuần 3: Tối ưu hóa Hiệu năng và Giám sát CEPH (Ngày 15-21)
Ngày 15:
Kiến thức: Giới thiệu BlueStore: Ưu điểm so với FileStore, cấu trúc dữ liệu, cách thức hoạt động.
Bài tập:
Chuyển đổi một OSD từ FileStore sang BlueStore.
So sánh hiệu năng đọc/ghi của OSD trước và sau khi chuyển đổi.
Ngày 16:
Kiến thức: Tối ưu hóa cấu hình OSD: Các tham số quan trọng (filestore_max_sync_interval, osd_op_threads, osd_recovery_max_active), cách thức điều chỉnh.
Bài tập:
Điều chỉnh các tham số cấu hình OSD trên một cluster thử nghiệm.
Sử dụng các công cụ benchmark (vd: fio, rados bench) để đánh giá hiệu năng trước và sau khi điều chỉnh.
Ngày 17:
Kiến thức: Sử dụng các công cụ giám sát CEPH:
ceph -w
,ceph osd perf
,ceph df
, Grafana, Prometheus.Bài tập:
Cài đặt và cấu hình Grafana và Prometheus để giám sát CEPH.
Tạo các dashboard tùy chỉnh để hiển thị các thông tin quan trọng về cluster, pool, OSD.
Sử dụng các công cụ giám sát để phát hiện và phân tích các vấn đề hiệu năng.
Ngày 18:
Kiến thức: Hiểu về cơ chế heartbeat và peering trong CEPH: Cách thức hoạt động, vai trò trong việc đảm bảo tính khả dụng và đồng bộ dữ liệu.
Bài tập:
Sử dụng
ceph osd tree
để xem trạng thái peering của các OSD.Tìm hiểu cách khắc phục các sự cố peering thông qua log và các công cụ giám sát.
Ngày 19:
Kiến thức: Tìm hiểu về cơ chế recovery trong CEPH: Backfill, recovery, scrub, deep scrub.
Bài tập:
Gây ra một lỗi OSD (vd: tắt một OSD) và quan sát quá trình recovery.
Sử dụng
ceph osd scrub
vàceph osd deep-scrub
để kiểm tra tính toàn vẹn dữ liệu.
Ngày 20:
Kiến thức: Quản lý log trong CEPH: Cấu hình mức log, xoay vòng log, phân tích log để tìm lỗi.
Bài tập:
Cấu hình mức log cho các daemon CEPH khác nhau.
Tìm hiểu cách sử dụng các công cụ phân tích log như
ceph-log-tool
.
Ngày 21:
Kiến thức: Tổng kết các kiến thức về tối ưu hóa hiệu năng và giám sát CEPH.
Bài tập:
Thực hiện một bài kiểm tra tổng hợp về kiến thức đã học trong tuần.
Đề xuất các giải pháp tối ưu hóa hiệu năng cho một cluster CEPH cụ thể.
Tuần 4: Sao lưu và Phục hồi Dữ liệu CEPH (Ngày 22-28)
Ngày 22:
Kiến thức: Giới thiệu về các phương pháp sao lưu và phục hồi dữ liệu trong CEPH: Snapshot,
rbd mirror
, backup/restore RBD, sao lưu CephFS.Bài tập:
Tạo snapshot cho một image RBD và khôi phục dữ liệu từ snapshot đó.
Thực hiện backup một image RBD và restore nó trên một cluster khác.
Ngày 23:
Kiến thức: Cấu hình và sử dụng
rbd mirror
: Cơ chế hoạt động, cấu hình mirroring, giám sát và xử lý lỗi.Bài tập:
Cấu hình mirroring cho một image RBD giữa hai cluster CEPH.
Kiểm tra quá trình đồng bộ dữ liệu và failover khi có sự cố.
Ngày 24:
Kiến thức: Sử dụng các công cụ sao lưu CephFS:
cephfs-backup
,duplicity
.Bài tập:
Sao lưu một CephFS sử dụng
cephfs-backup
.Sử dụng
duplicity
để sao lưu CephFS vào một kho lưu trữ S3.
Ngày 25:
Kiến thức: Phục hồi dữ liệu từ các bản sao lưu: Khôi phục image RBD, khôi phục CephFS.
Bài tập:
Thực hiện khôi phục một image RBD từ bản sao lưu.
Khôi phục một CephFS từ bản sao lưu.
Ngày 26:
Kiến thức: Tìm hiểu về các giải pháp sao lưu của bên thứ ba cho CEPH: TrilioVault, CloudBerry Backup, Bacula.
Bài tập:
Nghiên cứu và so sánh các tính năng của các giải pháp sao lưu khác nhau.
Thử nghiệm một giải pháp sao lưu của bên thứ ba với CEPH.
Ngày 27:
Kiến thức: Xây dựng chiến lược sao lưu và phục hồi dữ liệu toàn diện cho CEPH: Xác định RPO, RTO, lựa chọn phương pháp sao lưu phù hợp.
Bài tập:
- Thiết kế một chiến lược sao lưu và phục hồi dữ liệu cho một môi trường CEPH cụ thể.
Ngày 28:
Kiến thức: Tổng kết các kiến thức về sao lưu và phục hồi dữ liệu CEPH.
Bài tập:
- Thực hiện một bài kiểm tra tổng hợp về kiến thức đã học trong tuần.
Tuần 5: Tích hợp CEPH với OpenStack và Kubernetes (Ngày 29-35)
Ngày 29:
Kiến thức: Giới thiệu về OpenStack và cách thức tích hợp với CEPH: Cinder (block storage), Glance (image storage), Nova (Ephemeral storage).
Bài tập:
- Cài đặt và cấu hình OpenStack để sử dụng CEPH làm backend storage.
Ngày 30:
Kiến thức: Tích hợp CEPH với Cinder: Cấu hình, quản lý volume, snapshot, và backup.
Bài tập:
Tạo, attach, và detach volume Cinder từ OpenStack.
Tạo snapshot và backup cho volume Cinder.
Ngày 31:
Kiến thức: Tích hợp CEPH với Glance: Cấu hình, quản lý image.
Bài tập:
- Upload và quản lý image trong Glance sử dụng CEPH làm backend.
Ngày 1:
Kiến thức: Tích hợp CEPH với Nova: Sử dụng CEPH làm ephemeral storage cho các instance.
Bài tập:
- Tạo một instance Nova sử dụng CEPH làm ephemeral storage.
Ngày 2:
Kiến thức: Giới thiệu về Kubernetes và cách thức tích hợp với CEPH: Rook.
Bài tập:
- Cài đặt Rook trên Kubernetes.
Ngày 3:
Kiến thức: Sử dụng Rook để triển khai và quản lý CEPH trên Kubernetes.
Bài tập:
- Triển khai một cluster CEPH trên Kubernetes sử dụng Rook.
Ngày 4:
Kiến thức: Tổng kết các kiến thức về tích hợp CEPH với OpenStack và Kubernetes.
Bài tập:
- Thực hiện một bài kiểm tra tổng hợp về kiến thức đã học trong tuần.
Tuần 6: Xây dựng Ứng dụng Sử dụng CEPH (Ngày 36-42)
Ngày 36:
Kiến thức: Giới thiệu về librados: Thư viện C/C++ để tương tác với CEPH, các khái niệm cơ bản, cách thức hoạt động.
Bài tập:
Cài đặt và sử dụng librados để kết nối đến cluster CEPH.
Thực hiện các thao tác cơ bản với object: đọc, ghi, xóa.
Ngày 37:
Kiến thức: Sử dụng librados để làm việc với pool và object: Tạo, xóa, liệt kê pool, đặt và lấy metadata của object.
Bài tập:
Tạo một pool mới sử dụng librados.
Đặt và lấy metadata cho một object trong pool.
Ngày 38:
Kiến thức: Sử dụng librados để làm việc với snapshot và versioning: Tạo, xóa, liệt kê snapshot, quản lý versioning của object.
Bài tập:
Tạo snapshot cho một object và khôi phục lại từ snapshot đó.
Thử nghiệm tính năng versioning của object.
Ngày 39:
Kiến thức: Giới thiệu về RBD API: Thư viện để tương tác với Ceph Block Device, các khái niệm cơ bản, cách thức hoạt động.
Bài tập:
Sử dụng RBD API để tạo, xóa, resize image RBD.
Thực hiện các thao tác snapshot và clone với image RBD.
Ngày 40:
Kiến thức: Giới thiệu về CephFS API: Thư viện để tương tác với Ceph File System, các khái niệm cơ bản, cách thức hoạt động.
Bài tập:
- Sử dụng CephFS API để tạo, xóa, đọc, ghi file và thư mục trên CephFS.
Ngày 41:
Kiến thức: Xây dựng một ứng dụng đơn giản sử dụng CEPH: Ví dụ ứng dụng backup/restore dữ liệu, ứng dụng quản lý file.
Bài tập:
- Xây dựng một ứng dụng đơn giản sử dụng librados để backup/restore dữ liệu từ một thư mục local lên CEPH.
Ngày 42:
Kiến thức: Tổng kết các kiến thức về xây dựng ứng dụng sử dụng CEPH.
Bài tập:
- Thực hiện một bài kiểm tra tổng hợp về kiến thức đã học trong tuần.
Tuần 7: Tìm hiểu về các Tính năng Mới nhất của CEPH (Ngày 43-49)
Ngày 43:
Kiến thức: Giới thiệu về Ceph Multisite: Kiến trúc, mục đích sử dụng, các khái niệm cơ bản.
Bài tập:
- Cài đặt và cấu hình một cluster CEPH multisite đơn giản.
Ngày 44:
Kiến thức: Cấu hình và quản lý replication giữa các site trong Ceph Multisite.
Bài tập:
Cấu hình replication cho một pool giữa hai site.
Kiểm tra quá trình replication và failover khi có sự cố.
Ngày 45:
Kiến thức: Tìm hiểu về các loại erasure coding mới trong CEPH: LRC, SHEC, ISA-LRC.
Bài tập:
Tạo các pool sử dụng các loại erasure coding mới.
So sánh hiệu năng và dung lượng sử dụng của các loại erasure coding này.
Ngày 46:
Kiến thức: Tìm hiểu về các cải tiến về hiệu năng và quản lý trong các phiên bản CEPH mới nhất.
Bài tập:
Nâng cấp một cluster CEPH lên phiên bản mới nhất.
Kiểm tra và so sánh hiệu năng trước và sau khi nâng cấp.
Ngày 47:
Kiến thức: Tìm hiểu về các tính năng quản lý mới trong CEPH: Self-healing, proactive support, telemetry.
Bài tập:
- Tìm hiểu cách sử dụng các tính năng quản lý mới để giám sát và tối ưu hóa cluster CEPH.
Ngày 48:
Kiến thức: Tìm hiểu về các tính năng bảo mật mới trong CEPH: FIPS 140-2, các cải tiến về CephX.
Bài tập:
- Cấu hình và sử dụng các tính năng bảo mật mới trong CEPH.
Ngày 49:
Kiến thức: Tổng kết các kiến thức về các tính năng mới nhất của CEPH.
Bài tập:
- Thực hiện một bài kiểm tra tổng hợp về kiến thức đã học trong tuần.
Tuần 8: Ôn tập và Thực hành Tổng hợp (Ngày 50-56)
Bài toán thực tế: Xây dựng một giải pháp lưu trữ cho một công ty startup công nghệ đang phát triển nhanh chóng. Công ty cần một hệ thống lưu trữ có thể mở rộng linh hoạt, đảm bảo tính sẵn sàng cao, và hỗ trợ nhiều loại dữ liệu (block, object, file). Ngoài ra, hệ thống cần có khả năng sao lưu và phục hồi dữ liệu để đảm bảo tính liên tục của hoạt động kinh doanh.
Ngày 50:
Kiến thức: Ôn tập kiến thức về kiến trúc CEPH, các thành phần chính, và mô hình lưu trữ.
Thực hành:
Thiết kế kiến trúc CEPH cho bài toán: Xác định số lượng MON, OSD, MDS, MGR cần thiết.
Lựa chọn phần cứng và cấu hình mạng phù hợp.
Ngày 51:
Kiến thức: Ôn tập kiến thức về quản lý pool, CRUSH map, và erasure coding.
Thực hành:
Tạo các pool cần thiết cho bài toán: pool cho block storage (Cinder), pool cho object storage (RGW), pool cho file system (CephFS).
Cấu hình CRUSH map để tối ưu hóa phân bố dữ liệu và đảm bảo tính sẵn sàng cao.
Cấu hình erasure coding cho các pool để tiết kiệm dung lượng lưu trữ.
Ngày 52:
Kiến thức: Ôn tập kiến thức về Ceph Block Device (RBD) và tích hợp với OpenStack Cinder.
Thực hành:
Cài đặt và cấu hình OpenStack Cinder để sử dụng CEPH làm backend storage.
Tạo và quản lý volume Cinder từ OpenStack.
Ngày 53:
Kiến thức: Ôn tập kiến thức về Ceph Object Storage (RGW) và tích hợp với OpenStack Swift.
Thực hành:
Cài đặt và cấu hình OpenStack Swift để sử dụng CEPH làm backend storage.
Tạo và quản lý container và object Swift từ OpenStack.
Ngày 54:
Kiến thức: Ôn tập kiến thức về Ceph File System (CephFS) và cách thức mount và sử dụng.
Thực hành:
Tạo một CephFS và mount nó trên một máy chủ ứng dụng.
Sử dụng CephFS để lưu trữ dữ liệu ứng dụng.
Ngày 55:
Kiến thức: Ôn tập kiến thức về sao lưu và phục hồi dữ liệu CEPH:
rbd mirror
, snapshot, backup/restore.Thực hành:
Cấu hình
rbd mirror
để sao lưu các image RBD quan trọng.Thiết lập một quy trình sao lưu định kỳ cho CephFS.
Ngày 56:
Kiến thức: Ôn tập kiến thức về giám sát và xử lý sự cố CEPH.
Thực hành:
Giám sát cluster CEPH bằng các công cụ như
ceph -w
,ceph osd perf
, Grafana, Prometheus.Tìm hiểu và thực hành các bước xử lý các lỗi thường gặp trong CEPH.