Ceph — Cluster Installation
DOC PATH deployments/ceph/cluster-installation
Mô hình và kế hoạch mạng
Mục có tiêu đề “Mô hình và kế hoạch mạng”Bài triển khai dùng Ubuntu Server 24.04 LTS, Ceph Tentacle 20.2.3, Podman 4.9.3, ba VM và một raw disk khoảng 15 GiB trên mỗi VM. Điều chỉnh phiên bản và tài nguyên theo yêu cầu của môi trường; không dùng cấu hình lab nhỏ làm cơ sở sizing cho production.
| Thành phần | Cấu hình trong bài |
|---|---|
| Orchestrator/runtime | cephadm + Podman; Python 3, systemd, time sync, LVM2 và SSH sẵn sàng. |
| MON | 3 daemon trên ba host, quorum 3/3. |
| MGR | 2 daemon trên hai host, 1 active + 1 standby. |
| OSD | 3 BlueStore OSD; mỗi host một data device, tách OS disk. |
| Management Network | Orchestrator host address và SSH connectivity. |
| Public Network | MON public addresses, client/OSD front traffic, Dashboard/API. |
| Cluster Network | OSD back traffic: replication, recovery, backfill. |
Chuẩn bị mapping hostname ↔ Management IP ↔ Public IP ↔ Cluster IP ↔ data disk cho từng host. Lấy tên interface và disk từ OS; đối chiếu inventory trước khi chọn device. Architecture trình bày topology; không cần dựng lại sơ đồ trong Installation.
Preflight
Mục có tiêu đề “Preflight”Trên từng host, kiểm tra hostname, time sync, network và device dự kiến dùng cho OSD. wipefs -n chỉ đọc metadata; không dùng lệnh xóa ở bước này.
hostnamectlcat /etc/os-releaseip -br linkip -br addrip routegetent hosts <host-1> <host-2> <host-3>timedatectlchronyc trackingpodman infolsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTSwipefs -n <osd-device>pvsvgslvsOS disk, partition đang mount, LVM volume hoặc device đã thuộc BlueStore không phù hợp để tạo OSD mới.
Kiểm tra kết nối giữa các host trên cả ba mạng, phân giải DNS và truy cập registry. Trong mô hình triển khai, default route đi qua Management Network. Chrony phải đồng bộ, Leap status=Normal; clock skew ảnh hưởng MON dù ping vẫn thành công.
Clone Identity
Mục có tiêu đề “Clone Identity”Clone VM có thể sao chép cả machine-id và SSH host key. Kiểm tra trên từng host:
cat /etc/machine-idssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pubNếu trùng, xử lý VM identity trước bootstrap. Tạo lại machine-id/SSH host keys theo quy trình của OS, kiểm tra sshd -t và reboot trên VM clone mới; không áp dụng máy móc cho node đã chạy workload. Sau đó xác nhận mỗi host có identity riêng, SSH hoạt động và time sync vẫn đạt.
Runtime and cephadm Version
Mục có tiêu đề “Runtime and cephadm Version”Trên tất cả host, kiểm tra Python 3, systemd, LVM2, SSH và Chrony. Ví dụ cài Podman từ OS repository trên Ubuntu:
python3 --versionsystemctl --versionsystemctl is-active sshsystemctl is-active chronyapt updateapt install -y podmanpodman --versionpodman infoQuy trình này chọn Podman, không dùng --docker. Giữ runtime nhất quán trên các host để dễ kiểm tra và bảo trì.
Standalone cephadm and Container Image
Mục có tiêu đề “Standalone cephadm and Container Image”Quy trình dùng standalone cephadm. Nếu APT source theo phiên bản hoặc bản phân phối trả 404, kiểm tra repository hỗ trợ trước khi chuyển cách cài. <ceph-release> là placeholder; chọn release/image tương thích với môi trường.
curl --fail --location --output ./cephadm \ https://download.ceph.com/rpm-<ceph-release>/el9/noarch/cephadmchmod +x ./cephadm./cephadm version# Chỉ install sau khi xác nhận đúng source/versioninstall -o root -g root -m 0755 ./cephadm /usr/local/sbin/cephadmhash -rcommand -v cephadmcephadm versioncephadm check-host --expect-hostname <host-1>Bản cephadm từ distro có thể được PATH ưu tiên hơn bản standalone. Kiểm tra command -v, package inventory và version; nếu gỡ package cũ, xem trước dependency impact. Không ghi đè/gỡ mọi package Ceph chỉ để xử lý một PATH mismatch.
cephadm --image quay.io/ceph/ceph:v<ceph-release> pullcephadm --image quay.io/ceph/ceph:v<ceph-release> inspect-imagecephadm --image quay.io/ceph/ceph:v<ceph-release> shell -- ceph --versioncephadm list-networksss -lntupKết quả mong đợi: host check đạt, CLI trong container đúng phiên bản đã chọn, Public/Cluster CIDR xuất hiện trên đúng interface. Trước bootstrap, kiểm tra các port 3300/6789 của MON và 8443 của Dashboard chưa bị chiếm; thiết lập firewall theo network plan.
Bootstrap and Scale-out
Mục có tiêu đề “Bootstrap and Scale-out”Bootstrap từ MON public address. Nếu admin host không cài ceph CLI, dùng cephadm shell -- ceph … cho mọi lệnh Ceph phía dưới.
cephadm --image quay.io/ceph/ceph:v<ceph-release> bootstrap \ --mon-ip <mon-public-ip> \ --cluster-network <cluster-network-cidr> \ --skip-monitoring-stack--skip-monitoring-stack giảm thành phần khởi tạo ban đầu, Dashboard vẫn được tạo; bỏ tùy chọn này nếu muốn bootstrap cả monitoring stack. Giai đoạn này tạo FSID, MON/MGR đầu tiên, config/keyring và cephadm SSH key, chưa provision raw OSD disk.
cephadm shell -- ceph -scephadm shell -- ceph health detailcephadm shell -- ceph fsidcephadm shell -- ceph mon statcephadm shell -- ceph mgr statcephadm shell -- ceph config dumpTrước khi provision OSD, HEALTH_WARN có thể do số OSD thấp hơn replica size; kiểm tra health detail để loại trừ warning khác. Public Network phải chứa MON IP, Cluster Network đúng CIDR đã chọn. Bảo vệ admin keyring; không đưa secret vào ghi chú.
Orchestrator SSH and Host Inventory
Mục có tiêu đề “Orchestrator SSH and Host Inventory”Cài public key của cluster vào SSH account được chọn trên host mới. Ví dụ dùng root qua Management IP; chỉ áp dụng khi chính sách SSH cho phép:
ssh-copy-id -f -i /etc/ceph/ceph.pub root@<management-ip-2>ssh-copy-id -f -i /etc/ceph/ceph.pub root@<management-ip-3>
ceph orch host add <host-2> <management-ip-2>ceph orch host add <host-3> <management-ip-3>ceph orch host lsTên host phải khớp hostname thực tế; xác nhận SSH/runtime trên từng host trước khi thêm. Host address trong orchestrator phục vụ management, không cần đổi sang MON Public address. Nếu host đầu tiên có address khác network plan, kiểm tra rồi cập nhật đúng Management IP bằng host-management workflow.
Explicit MON and MGR Placement
Mục có tiêu đề “Explicit MON and MGR Placement”ceph orch apply mon --placement="<host-1>,<host-2>,<host-3>" --dry-runceph orch apply mgr --placement="<host-1>,<host-2>" --dry-run
ceph orch apply mon --placement="<host-1>,<host-2>,<host-3>"ceph orch apply mgr --placement="<host-1>,<host-2>"ceph quorum_status -f json-prettyceph mgr statExplicit placement giữ daemon trên đúng control plane host khi inventory mở rộng; cần xác định cả số lượng và vị trí dịch vụ. Kết quả mong đợi: quorum 3/3, MGR khả dụng với một standby; active MGR có thể chuyển host khi failover.
OSD Provisioning
Mục có tiêu đề “OSD Provisioning”Chỉ tạo OSD sau khi orchestrator báo device Available và preflight không thấy filesystem/LVM cũ.
ceph orch device ls --refresh --wideceph orch daemon add osd <host-1>:<osd-device-1># Kiểm tra OSD vừa tạo trước khi tiếp tục host kế tiếpceph osd treeceph orch daemon add osd <host-2>:<osd-device-2>ceph osd treeceph orch daemon add osd <host-3>:<osd-device-3>Tạo từng OSD, chờ nó up và in, rồi mới tiếp tục device tiếp theo. Cách này khoanh vùng lỗi nhanh hơn provisioning hàng loạt.
Provisioning ghi metadata lên disk mục tiêu. Chọn từng device cụ thể thay vì --all-available-devices để tránh service rule tự sử dụng disk mới ngoài dự kiến. Sau provisioning, device chuyển sang AVAILABLE=No và có LVM/BlueStore metadata là trạng thái mong đợi.
ceph orch ps --daemon-type osd --refreshceph orch device ls --refresh --wideceph osd metadata <osd-id> -f json-prettyĐối chiếu hostname, front_addr với Public Network, back_addr với Cluster Network; CRUSH tree phải đặt OSD dưới đúng host. OSD IDs do cluster cấp, không suy ra từ số thứ tự host. Luôn lấy OSD ID từ inventory thực tế; một OSD thay thế có thể nhận ID mới.
Kiểm tra cấu hình
Mục có tiêu đề “Kiểm tra cấu hình”ceph -sceph health detailceph mon statceph mgr statceph osd treeceph orch psĐọc kết quả theo từng lớp: health detail, MON quorum, MGR standby, OSD up/in và host failure domain trong CRUSH tree. Kiểm tra Dashboard chỉ là lớp xác nhận bổ sung, không thay thế CLI validation.
Lấy Dashboard endpoint bằng ceph mgr services. Biểu đồ IOPS/latency có thể chưa có dữ liệu khi monitoring stack chưa được cấu hình.
Installation Troubleshooting
Mục có tiêu đề “Installation Troubleshooting”| Triệu chứng | Nguyên nhân cần kiểm tra | Cách xác nhận / xử lý |
|---|---|---|
APT Release file 404 |
Repository không có release cho phiên bản/OS đã chọn. | Kiểm tra source được hỗ trợ hoặc chọn standalone cephadm đúng version. |
| Gọi nhầm cephadm version | Distro package/PATH che standalone. | Kiểm tra command -v, version và package inventory. |
| Bash vẫn trỏ binary đã gỡ | Command hash còn path cũ. | hash -r, kiểm tra lại path. |
ceph: command not found trên host |
Host chưa cài CLI phù hợp. | Chạy cluster admin bằng cephadm shell -- ceph .... |
| Host add/daemon deployment lỗi | SSH, hostname hoặc prerequisite chưa đúng. | Kiểm tra management path, public key và host check. |
Device Available=No sau tạo OSD |
Disk đã thuộc BlueStore. | Đối chiếu OSD metadata; không wipe disk đang phục vụ dữ liệu. |
| Chart Dashboard trống | Bootstrap bỏ monitoring stack. | Triển khai/validate monitoring trong Operations Reference. |
Phạm vi quy trình kết thúc ở bước xác nhận cài đặt Ceph; triển khai compute và tích hợp OpenStack không nằm trong quy trình này.