简介:本文详解单机部署Ceph的完整流程,涵盖环境准备、组件配置、服务启动及验证步骤,适合开发测试与小型存储场景,提供配置优化建议与故障排查指南。
Ceph作为分布式存储系统,通常以多节点集群形式部署以实现高可用与横向扩展。但在开发测试、教育演示或资源受限的小型存储场景中,单机部署Ceph可提供轻量级解决方案。其核心价值包括:
需注意,单机部署的Ceph不具备生产级高可用性,单点故障会导致数据不可用,仅推荐用于非关键业务场景。
以Ubuntu为例,执行以下命令安装基础依赖:
sudo apt updatesudo apt install -y ceph ceph-common ceph-mds ceph-mon ceph-osd radosgw
或通过Ceph官方仓库安装最新版本:
wget -q -O- 'https://download.ceph.com/keys/release.asc' | sudo apt-key add -echo "deb https://download.ceph.com/debian-$(lsb_release -sc)/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/ceph.listsudo apt update && sudo apt install -y ceph
Monitor(MON)负责集群元数据管理,单机环境下需配置伪分布式模式:
# 创建MON数据目录sudo mkdir -p /var/lib/ceph/mon/ceph-localhost# 生成MON密钥环sudo ceph-authtool --create-keyring /var/lib/ceph/mon/ceph-localhost/keyring \--gen-key -n mon. --cap mon 'allow *'# 创建初始MON地图文件sudo ceph-mon --mkfs -i localhost --monmap /tmp/monmap --keyring /var/lib/ceph/mon/ceph-localhost/keyring# 启动MON服务sudo systemctl enable ceph-mon@localhostsudo systemctl start ceph-mon@localhost
OSD(Object Storage Device)是实际存储数据的组件,单机部署时需手动指定磁盘:
# 查看可用磁盘(避免使用系统盘)lsblk# 假设使用/dev/sdb作为OSD,先分区并创建文件系统(可选)sudo parted /dev/sdb mklabel gptsudo parted /dev/sdb mkpart primary 1MiB 100%sudo mkfs.xfs /dev/sdb1# 激活OSDsudo ceph-volume lvm activate --osd-id 0 --no-systemd# 或直接使用文件作为存储(测试用)sudo mkdir -p /var/lib/ceph/osd/ceph-0sudo ceph-osd -i 0 --mkfs --osd-data /var/lib/ceph/osd/ceph-0sudo systemctl enable ceph-osd@0sudo systemctl start ceph-osd@0
执行以下命令检查集群健康状态:
ceph -s# 正常输出应显示:# cluster:# id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx# health: HEALTH_OK# services:# mon: 1 daemons, quorum localhost# osd: 1 osds: 1 up, 1 in
创建存储池并初始化RBD设备:
ceph osd pool create rbd 128 128rbd pool init rbd# 创建并映射RBD设备rbd create test_image --size 10G --pool rbdsudo rbd map rbd/test_image --name client.admin# 查看映射的设备lsblk | grep rbd
# 创建RGW实例sudo ceph auth get client.rgw.localhost -o /etc/ceph/ceph.client.rgw.localhost.keyringsudo ceph-rgw -n client.rgw.localhost -k /etc/ceph/ceph.client.rgw.localhost.keyring --rgw-frontends="civetweb port=8080"# 测试对象存储curl -X PUT http://localhost:8080/testbucket -H "Content-Type: application/octet-stream" -d "test data"
/var/log/ceph/ceph-mon.localhost.log,确认密钥环与monmap路径正确。ceph osd tree查看OSD状态,若显示down,尝试重启服务:
sudo systemctl restart ceph-osd@0
ceph用户运行,而非root。--rgw-frontends参数中的端口。单机部署Ceph为开发测试提供了高效路径,但需明确其局限性。建议:
/var/lib/ceph目录,防止单点故障导致数据丢失。ceph tell osd.0 injectargs --osd_memory_target 2GB限制OSD内存使用。ceph-deploy添加新节点。通过本文的步骤,读者可在30分钟内完成单机Ceph的部署与基础功能验证,为后续分布式集群实践奠定基础。