Ceph存储集群手动部署指南
概述
Ceph是一个开源的分布式存储系统,提供高性能、高可靠性和高扩展性的存储服务。本文将详细介绍如何手动部署一个基础的Ceph存储集群,包括监控器(Monitor)、对象存储设备(OSD)以及可选的管理器(Manager)等核心组件。
集群架构规划
一个基本的Ceph集群需要至少包含以下组件:
- 1个或多个Monitor节点(推荐3个以实现高可用)
- 多个OSD节点(数量取决于数据副本数)
示例架构:
管理节点 → Monitor节点(mon-node1)
↘ OSD节点1(osd-node1)
↘ OSD节点2(osd-node2)
Monitor节点部署
准备工作
-
登录Monitor节点:
ssh mon-node1
-
创建配置目录:
sudo mkdir -p /etc/ceph
配置集群参数
-
生成集群唯一标识:
uuidgen
-
创建基础配置文件:
sudo vim /etc/ceph/ceph.conf
添加以下内容:
[global] fsid = {生成的UUID} mon_initial_members = mon-node1 mon_host = {Monitor节点IP}
密钥管理
-
创建Monitor密钥环:
sudo ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'
-
创建管理员密钥:
sudo ceph-authtool --create-keyring /etc/ceph/ceph.client.admin.keyring --gen-key -n client.admin --cap mon 'allow *' --cap osd 'allow *' --cap mds 'allow *' --cap mgr 'allow *'
-
创建OSD引导密钥:
sudo ceph-authtool --create-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring --gen-key -n client.bootstrap-osd --cap mon 'profile bootstrap-osd' --cap mgr 'allow r'
初始化Monitor
-
生成Monitor映射:
monmaptool --create --add mon-node1 {IP地址} --fsid {UUID} /tmp/monmap
-
创建数据目录:
sudo -u ceph mkdir /var/lib/ceph/mon/ceph-mon-node1
-
初始化Monitor:
sudo -u ceph ceph-mon --mkfs -i mon-node1 --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring
-
启动Monitor服务:
sudo systemctl start ceph-mon@mon-node1
-
配置防火墙:
sudo firewall-cmd --zone=public --add-service=ceph-mon sudo firewall-cmd --zone=public --add-service=ceph-mon --permanent
OSD节点部署
快速部署方法(推荐)
-
准备OSD:
sudo ceph-volume lvm prepare --data /dev/{设备名}
-
激活OSD:
sudo ceph-volume lvm activate {OSD ID} {FSID}
手动部署方法
-
生成OSD UUID和密钥:
UUID=$(uuidgen) OSD_SECRET=$(ceph-authtool --gen-print-key)
-
创建OSD:
ID=$(echo "{\"cephx_secret\": \"$OSD_SECRET\"}" | ceph osd new $UUID -i - -n client.bootstrap-osd -k /var/lib/ceph/bootstrap-osd/ceph.keyring)
-
准备存储设备:
mkfs.xfs /dev/{设备名} mount /dev/{设备名} /var/lib/ceph/osd/ceph-$ID
-
初始化OSD:
ceph-osd -i $ID --mkfs --osd-uuid $UUID
-
启动OSD服务:
sudo systemctl enable ceph-osd@$ID sudo systemctl start ceph-osd@$ID
可选组件部署
管理器(Manager)部署
在每个Monitor节点上部署Manager服务:
sudo systemctl start ceph-mgr@$(hostname -s)
元数据服务器(MDS)部署
-
创建数据目录:
mkdir -p /var/lib/ceph/mds/ceph-{id}
-
创建密钥环:
ceph-authtool --create-keyring /var/lib/ceph/mds/ceph-{id}/keyring --gen-key -n mds.{id}
-
添加权限:
ceph auth add mds.{id} osd "allow rwx" mds "allow *" mon "allow profile mds" -i /var/lib/ceph/mds/ceph-{id}/keyring
-
启动服务:
sudo systemctl start ceph-mds@{id}
对象网关(RGW)部署
-
创建认证密钥:
ceph auth get-or-create client.$(hostname -s) mon 'allow rw' osd 'allow rwx'
-
准备数据目录:
install -d -o ceph -g ceph /var/lib/ceph/radosgw/ceph-$(hostname -s)
-
启动服务:
sudo systemctl start ceph-radosgw@$(hostname -s).service
集群验证
-
检查集群状态:
ceph -s
-
查看OSD树:
ceph osd tree
总结
通过以上步骤,我们完成了Ceph存储集群的基础部署。实际生产环境中,建议至少部署3个Monitor节点以实现高可用,并根据数据规模和性能需求配置足够数量的OSD节点。部署完成后,可以通过Ceph CLI工具进行集群管理和监控。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考