Giới thiệu về CEPH
CEPH là hệ thống lưu trữ phân tán mã nguồn mở, cung cấp khả năng mở rộng vô hạn, hiệu suất cao và độ tin cậy vượt trội. Bài viết này hướng dẫn chi tiết cách triển khai CEPH cluster trong môi trường production với các node được phân tách rõ ràng theo chức năng.
Yêu cầu Hệ thống
Phần cứng Tối thiểu
-
Monitor Nodes: 3 node, mỗi node 2 CPU, 4GB RAM, 40GB disk
-
OSD Nodes: 4 node, mỗi node 4 CPU, 8GB RAM, multiple disks
-
Network: 10Gbps recommended cho cả public và cluster network
Phân bổ Disk
| Host | Disk Type | Số lượng | Dung lượng |
|---|---|---|---|
| data1 | SSD | 3 | 300GB each |
| data2 | SSD | 3 | 300GB each |
| data3 | HDD | 2 | 250GB each |
| data4 | HDD | 2 | 250GB each |
Quy hoạch Mạng
Sơ đồ Mạng
Public Network: 172.10.10.0/24 - Client communication Cluster Network: 172.10.20.0/24 - Data replication/rebalancing
IP Allocation
| Host | IP SSH | Public IP | Cluster IP |
|---|---|---|---|
| mon1 | 10.10.210.81 | 172.10.10.81 | 172.10.20.81 |
| mon2 | 10.10.210.82 | 172.10.10.82 | 172.10.20.82 |
| mon3 | 10.10.210.83 | 172.10.10.83 | 172.10.20.83 |
| data1 | 10.10.210.85 | 172.10.10.85 | 172.10.20.85 |
| data2 | 10.10.210.86 | 172.10.10.86 | 172.10.20.86 |
| data3 | 10.10.210.87 | 172.10.10.87 | 172.10.20.87 |
| data4 | 10.10.210.88 | 172.10.10.88 | 172.10.20.88 |
## Chuẩn bị Hệ thống ### Cập nhật và Cài đặt Gói cơ bản Thực hiện trên tất cả các node: # Cập nhật hệ thống sudo apt -y update && sudo apt -y upgrade # Cài đặt các gói cần thiết sudo apt -y install chrony net-tools jq curl wget # Cấu hình Chrony sudo systemctl restart chronyd sudo timedatectl set-timezone Asia/Ho_Chi_Minh # Tắt auto-upgrade sudo sed -i 's/1/0/g' /etc/apt/apt.conf.d/20auto-upgrades
Cấu hình Hostname và Network
Trên từng node, cấu hình hostname cho phù hợp:
# Trên mon1 sudo hostnamectl set-hostname mon1 # Trên mon2 sudo hostnamectl set-hostname mon2 # Trên mon3 sudo hostnamectl set-hostname mon3 # Trên các data node sudo hostnamectl set-hostname data1 # ... tương tự cho data2, data3, data4
Cấu hình /etc/hosts
Thêm các mục sau vào /etc/hosts trên tất cả các node:
172.10.10.81 mon1 172.10.10.82 mon2 172.10.10.83 mon3 172.10.10.85 data1 172.10.10.86 data2 172.10.10.87 data3 172.10.10.88 data4
Cài đặt Docker
CEPH sử dụng container để triển khai các services:
# Thêm Docker repository curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null # Cài đặt Docker sudo apt update -y sudo apt -y install docker-ce docker-ce-cli containerd.io # Khởi động và kích hoạt Docker sudo systemctl enable docker sudo systemctl start docker
Cài đặt CEPH
Cài đặt Cephadm trên mon1
# Thêm repository Ceph wget -q -O- 'https://download.ceph.com/keys/release.asc' | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/cephadm.gpg echo "deb https://download.ceph.com/debian-reef/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/cephadm.list > /dev/null # Cài đặt cephadm sudo apt update sudo apt -y install cephadm
Bootstrap Cluster
# Khởi tạo cluster sudo cephadm bootstrap \ --mon-ip 172.10.10.81 \ --cluster-network 172.10.20.0/24 \ --initial-dashboard-user admin \ --initial-dashboard-password 'Cloud360.vn' # Cài đặt công cụ quản lý Ceph sudo apt -y install ceph-common
Cấu hình SSH Key Distribution
# Cài đặt sshpass sudo apt -y install sshpass # Phân phối SSH key đến các node sshpass -p 'MAuySZ0aC' ssh-copy-id -f -i /etc/ceph/ceph.pub -o StrictHostKeyChecking=no root@mon2 sshpass -p 'MAuySZ0aC' ssh-copy-id -f -i /etc/ceph/ceph.pub -o StrictHostKeyChecking=no root@mon3 sshpass -p 'MAuySZ0aC' ssh-copy-id -f -i /etc/ceph/ceph.pub -o StrictHostKeyChecking=no root@data1 sshpass -p 'MAuySZ0aC' ssh-copy-id -f -i /etc/ceph/ceph.pub -o StrictHostKeyChecking=no root@data2 sshpass -p 'MAuySZ0aC' ssh-copy-id -f -i /etc/ceph/ceph.pub -o StrictHostKeyChecking=no root@data3 sshpass -p 'MAuySZ0aC' ssh-copy-id -f -i /etc/ceph/ceph.pub -o StrictHostKeyChecking=no root@data4
Thêm Host vào Cluster
# Thêm các host vào cluster ceph orch host add mon2 172.10.10.82 ceph orch host add mon3 172.10.10.83 ceph orch host add data1 172.10.10.85 ceph orch host add data2 172.10.10.86 ceph orch host add data3 172.10.10.87 ceph orch host add data4 172.10.10.88 # Gán nhãn cho các host ceph orch host label add mon1 _admin ceph orch host label add mon2 _admin ceph orch host label add mon3 _admin ceph orch host label add data1 osd ceph orch host label add data2 osd ceph orch host label add data3 osd ceph orch host label add data4 osd
Triển khai Monitor Services
# Triển khai MON trên 3 node ceph orch apply mon --placement="mon1,mon2,mon3" # Kiểm tra trạng thái MON ceph mon stat
Quản lý OSD
Kiểm tra Devices
# Liệt kê tất cả devices trong cluster ceph orch device ls
Thêm OSD Devices
# Thêm OSD cho data1 (SSD) ceph orch daemon add osd data1:/dev/sdb ceph orch daemon add osd data1:/dev/sdc ceph orch daemon add osd data1:/dev/sdd # Thêm OSD cho data2 (SSD) ceph orch daemon add osd data2:/dev/sdb ceph orch daemon add osd data2:/dev/sdc ceph orch daemon add osd data2:/dev/sdd # Thêm OSD cho data3 (HDD) ceph orch daemon add osd data3:/dev/sdb ceph orch daemon add osd data3:/dev/sdc # Thêm OSD cho data4 (HDD) ceph orch daemon add osd data4:/dev/sdb ceph orch daemon add osd data4:/dev/sdc
Điều chỉnh Device Class
# Thiết lập OSD class cho SSD (OSD 0-5) for osd_id in {0..5}; do ceph osd crush rm-device-class $osd_id ceph osd crush set-device-class ssd $osd_id done # Thiết lập OSD class cho HDD (OSD 6-9) for osd_id in {6..9}; do ceph osd crush rm-device-class $osd_id ceph osd crush set-device-class hdd $osd_id done
Cấu hình Cluster
Thiết lập Ceph Configuration
# Tắt autoscaling ceph config set global osd_pool_default_pg_autoscale_mode off # Tắt balancer ceph balancer off # Thiết lập kích thước replication ceph config set global osd_pool_default_size 2 ceph config set global osd_pool_default_min_size 1 # Cấu hình recovery ratio ceph config set global mon_osd_min_in_ratio 0.5 # Tắt memory autotune ceph config set osd osd_memory_target_autotune false
Tạo CRUSH Rules
# Tạo CRUSH rule cho SSD ceph osd crush rule create-replicated ssd_rule default host ssd # Tạo CRUSH rule cho HDD ceph osd crush rule create-replicated hdd_rule default host hdd
Kiểm tra và Giám sát
Kiểm tra Trạng thái Cluster
# Trạng thái tổng quan ceph -s # Kiểm tra health ceph health detail # Xem cây OSD ceph osd tree # Kiểm tra dung lượng ceph df
Kiểm tra Services
# Liệt kê tất cả services ceph orch ls # Kiểm tra host ceph orch host ls # Kiểm tra OSD ceph osd stat
Monitoring với Dashboard
Truy cập Ceph Dashboard tại: https://mon1:8443
-
Username: admin
-
Password: Cloud360.vn
Useful Commands for Maintenance
# Xem thông tin OSD ceph osd df tree # Kiểm tra PG distribution ceph pg stat # Xem thông tin monitor ceph mon stat # Kiểm tra usage detail ceph osd pool ls detail
Troubleshooting Common Issues
OSD Failure
# Restart OSD ceph orch daemon restart osd.<osd_id> # Redeploy OSD ceph orch daemon rm osd.<osd_id> ceph orch daemon add osd <host>:<device>
Disk Issues
# Kiểm tra disk health ceph device ls # Scan devices ceph orch device scan
Kết luận
Bạn đã triển khai thành công CEPH cluster với cấu hình production-ready. Cluster đã được tối ưu hóa với:
-
Phân tách rõ ràng giữa public và cluster network
-
OSD được phân loại theo device class (SSD/HDD)
-
Cấu hình replication phù hợp cho môi trường production
-
Hệ thống monitoring qua dashboard

3 Trả lời “Triển khai CEPH Cluster: Hướng dẫn Chi tiết từ A đến Z”