分布式存储系统Ceph以其高可靠性、可扩展性和高性能被广泛应用于企业级存储场景,其部署过程需严格遵循步骤,确保集群稳定运行,本文将从环境准备到集群验证,详细解析Ceph的完整部署流程。

环境准备与基础配置
Ceph部署前需完成硬件、网络及操作系统的基础配置,硬件方面,建议至少3个节点(用于MON和OSD部署),每个节点配置独立数据盘(建议SSD或HDD,根据性能需求选择),内存不低于8GB,CPU核心数不少于4核,网络需划分独立网络,如管理网络(用于节点间通信)、数据网络(用于数据传输)、客户端网络(用于客户端访问),避免流量冲突。
操作系统推荐使用CentOS 7/8或Ubuntu 20.04,需关闭防火墙(或开放必要端口:MON 6789、MGR 6800、OSD 6800-7300)、SELinux,并配置主机名与IP映射(在/etc/hosts中添加所有节点信息),时间同步是关键,需安装chrony或ntp服务,确保所有节点时间误差不超过1秒,可通过chronyc sources命令验证同步状态。
需在所有节点安装依赖包(如CentOS下的wget、curl、lsof、python3等),并创建专用部署用户(如cephuser),赋予sudo权限,禁用密码登录(通过SSH密钥实现节点间免密通信)。
部署监控与管理节点
Ceph Monitor(MON)负责维护集群状态映射表,是集群的核心组件;Manager(MGR)提供监控管理接口和仪表盘功能,两者均需部署奇数节点(3或5个)以保证高可用。
在管理节点(如第一个节点)下载Cephadm工具(官方容器化部署工具)或使用ceph-deploy(传统工具,本文以ceph-deploy为例),添加Ceph官方仓库:
# CentOS rpm --import https://download.ceph.com/keys/release.asc cat << EOF > /etc/yum.repos.d/ceph.repo [ceph] name=Ceph packages baseurl=https://download.ceph.com/rpm-nautilus/el7/noarch/ enabled=1 gpgcheck=1 type=rpm-md EOF
更新缓存后安装ceph-deploy:yum install ceph-deploy。
在部署目录(如~/ceph-cluster)初始化集群:
ceph-deploy new --public-network 192.168.10.0/24 --cluster-network 192.168.20.0/24 node1 node2 node3
此命令会生成ceph.conf配置文件,默认配置3副本MON,随后在所有节点安装Ceph软件包:

ceph-deploy install --no-repo-queries node1 node2 node3
最后部署MON节点:
ceph-deploy mon create-initial
此命令会在node1、node2、node3上创建MON服务,并生成密钥环文件,接着部署MGR:
ceph-deploy mgr create node1 node2 node3
配置存储节点(OSD)
OSD是Ceph的数据存储单元,每个数据盘均可配置为一个OSD,首先需初始化数据盘(以/dev/sdb为例),格式化文件系统(推荐XFS):
mkfs.xfs /dev/sdb mkdir /var/lib/ceph/osd/ceph-0 # OSD ID从0开始 mount /dev/sdb /var/lib/ceph/osd/ceph-0 echo "/dev/sdb /var/lib/ceph/osd/ceph-0 xfs defaults 0 2" >> /etc/fstab
通过ceph-deploy命令创建OSD,需在所有节点执行:
ceph-deploy osd create --data /dev/sdb node1 ceph-deploy osd create --data /dev/sdc node2 ceph-deploy osd create --data /dev/sdb node3
此命令会自动格式化磁盘、创建OSD目录,并将OSD加入集群,完成后可通过ceph osd tree查看OSD状态,确认所有OSD处于up和in状态。
创建存储池与客户端认证
存储池(Pool)是数据的逻辑分组,用于控制数据分布和副本策略,默认创建副本池(副本数为3):
ceph osd pool create rbd_pool 128 128 # 128为PG数量,根据OSD数量调整 ceph osd pool set rbd_pool size 3 # 设置3副本
若需创建纠删码池(适用于冷数据),需先安装插件:
ceph osd erasure-code-profile set myprofile k=4 m=2 # 4个数据块,2个校验块 ceph osd pool create ec_pool erasure-code-profile=myprofile
客户端认证需创建用户并生成密钥环,为客户端创建具有读写权限的用户:

ceph auth get-or-create client.admin mon 'allow *' osd 'allow *' mgr 'allow *' ceph auth get-or-create client.user osd 'allow rwx pool=rbd_pool' mon 'allow r'
将生成的密钥环文件(如ceph.client.user.keyring)分发至客户端,客户端通过ceph -k /path/to/keyring --user user命令访问存储池。
集群验证与功能测试
部署完成后,需验证集群状态和功能,首先查看集群健康状态:
ceph -s
输出应为HEALTH_OK,且所有MON、OSD、MGR状态正常。
通过RADOS命令测试存储功能:
rados -p rbd_pool put test_file /etc/hosts # 上传文件 rados -p rbd_pool get test_file /tmp/test_file # 下载文件
若使用RBD(块存储),可创建镜像并挂载:
rbd create rbd_pool/my_image --size 10G rbd map rbd_pool/my_image mkfs.ext4 /dev/rbd0 mount /dev/rbd0 /mnt/mydata
可通过Ceph Dashboard(默认端口8443)访问Web管理界面,实时监控集群性能、容量及节点状态,用户名和密码可通过ceph dashboard create-user-admin命令生成。
至此,Ceph分布式存储系统部署完成,后续可根据业务需求调整CRUSH规则、优化网络配置或扩展OSD节点,确保集群满足高可用与高性能要求,部署过程中需注意日志监控(ceph -w),及时发现并解决异常问题。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/209715.html


