Ceph分布式存储系统搭建指南:从环境准备到安装部署全解析

Ceph是一个分布式存储系统,能够在统一架构下提供对象、块和文件存储服务。其主要组件包括:

  • Ceph监视器(ceph-mon)
    负责维护集群状态映射,如监视器映射、管理器映射、OSD映射、MDS映射和CRUSH 映射,这些映射是 Ceph 守护程序协同工作的关键。同时,它还承担客户端到Ceph存储的身份验证职责。为实现高可用性,通常需部署3个或更多的ceph-mon服务。
  • Ceph 管理器(ceph – mgr)
    ceph – mgr 守护进程用于跟踪运行时指标和集群当前状态,如存储利用率、性能指标及系统负载等。此外,它还托管一些 Python 模块,以实现基于 Web 的 Ceph 仪表盘和 REST API。实现高可用至少需要2个ceph-mgr进程,且通常与ceph-mon数量相同,每个ceph-mon所在节点会伴随一个ceph-mgr守护进程。
  • Ceph 对象存储(ceph-osd)
    ceph-osd作为对象存储守护程序,是数据存储的核心组件,负责数据的存储、复制、恢复及重新平衡,并通过检查其他ceph-osd守护程序的心跳,向ceph-mon和ceph-mgr提供监控信息。为实现冗余和高可用性,通常至少需要3个 ceph-osd,且部署时应与ceph-mon分开节点。
  • Ceph元数据服务(ceph-mds)
    ceph-mds为Ceph文件系统存储元数据,Ceph块设备和对象存储无需使用mds存储元数据。它允许POSIX文件系统用户执行基本命令,避免将压力集中在Ceph OSD集群上。通常建议部署至少2个mds节点,可与其他组件共置或分开部署。

解决方案

(一)环境准备

1.配置 yum源(使用阿里源)

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

2.配置时间同步

# 下载chrony服务
yum install chrony vim -y
# 编辑配置文件
[root@master ~]# vim /etc/chrony.conf
server ntp.aliyun.com iburst
# 重启服务
[root@master ~]# systemctl restart chronyd
# 将时间写入磁盘
[root@master ~]# hwclock -s

3.配置主机名

hostnamectl set-hostname master
hostnamectl set-hostname node1
hostnamectl set-hostname node2

4.配置免密码登录

[root@master data]# ssh-keygen -t rsa
[root@master data]# ssh-copy - id master
[root@master data]# ssh-copy - id node1
[root@master data]# ssh-copy - id node2

5.关闭防火墙和selinux

systemctl stop firewalld
systemctl disable firewalld
[root@master ~]# setenforce 0

6.配置Ceph源

# 安装ceph软件包相关依赖
yum install yum-plugin-priorities
# 确认优先级插件安装成功
cat /etc/yum/pluginconf.d/priorities.conf 
# 安装Ceph密钥
rpm --import 'https://download.ceph.com/keys/release.asc'
# 安装elep-release仓库及其他包
yum install epel-release
yum install snappy leveldb gdisk gperftools-libs
# 配置Ceph源
vim /etc/yum.repos.d/ceph-yum.repo
[ceph]
name = ceph
baseurl = https://mirrors.aliyun.com/ceph/rpm-nautilus/el7/x86_64/
gpgcheck = 0
priority = 1
enable = 1
[ceph - noarch]
name = cephnoarch
baseurl = https://mirrors.aliyun.com/ceph/rpm-nautilus/el7/noarch/
gpgcheck = 0
priority = 1
enable = 1
[ceph - source]
name = Ceph source packages
baseurl = https://mirrors.aliyun.com/ceph/rpm-nautilus/el7/SRPMS/
gpgcheck = 0
priority = 1
enable = 1

(二)管理节点master安装

1.安装cepth-deploy及相关软件包

[root@master yum.repos.d]# yum install python-setuptools  ceph-deploy -y 
# 安装成功后检查ceph - deploy命令可用性
[root@master yum.repos.d]# ceph-deploy --version
1.5.25

2.在存储节点安装ceph

# 安装所需工具集
sudo yum install epel-release -y
sudo yum install liboath lttng-ust leveldb python2-bcrypt python2-pecan
yum install ceph ceph-radosgw  -y 

3.创建集群

[root@master data]# mkdir /data
[root@master data]# cd /data
[root@master data]# ceph-deploy new master node1 node2
# 查看Ceph版本号
[root@master data]# ceph --version
ceph version 14.2.22 (ca74598065096e6fcbd8433c8779a2be0c889351) nautilus (stable)
# 备注:ceph - deploy new后接要初始化为monitor的节点

(三)安装monitor服务

1.修改ceph配置文件

将 ceph.conf 配置文件中默认副本数从 3 改为 2,在 [global] 段加入 “osd_pool_default_size = 2”,使仅有 2 个 osd 时也能达到 active + clean 状态。

[root@master data]# vim ceph.conf
[global]
fsid = c3fce3e9-8710-4537-8329-5e60ca4d31ac # Ceph集群唯一标识符
mon_initial_members = master, node1, node2  # 初始监视器节点列表
mon_host = 192.168.1.11,192.168.1.12,192.168.1.13  # 监视器节点IP地址或主机名列表
auth_cluster_required = cephx    # 集群组件间身份验证机制
auth_service_required = cephx    # 服务间身份验证机制
auth_client_required = cephx      # 客户端与集群身份验证机制
filestore_xattr_use_omap = true    # 配置OSD使用OMAP存储扩展属性
osd_pool_default_size = 2        # 创建新存储池时的默认副本数
mon_clock_drift_allowed = 0.500   # 监视器节点间允许的最大时钟偏差量

2.安装monitor并收集秘钥

[root@master data]# ceph-deploy mon create - initial
[root@master data]# ll  *.keyring
ceph.bootstrap-mds.keyring  # 引导MDS的密钥
ceph.bootstrap-mgr.keyring  # 引导Mgr的密钥
ceph.bootstrap-osd.keyring  # 引导OSD的密钥
ceph.bootstrap-rgw.keyring  # 引导RGW的密钥
ceph.client.admin.keyring   # Ceph管理员客户端密钥
ceph.mon.keyring      # 引导和管理监视器通信的密钥

这些密钥文件在 ceph 集群启动和管理中至关重要,用于组件引导和授权,确保集群通信和访问控制安全,需严格保护。

3.部署osd服务

使用ceph-deploy工具在每个节点创建OSD,以/dev/sdb设备为例。

# master节点
[root@master data]# ceph-deploy osd create --data /dev/sdb master
# node1节点
[root@master data]# ceph-deploy osd create --data /dev/sdb node1
# node2节点
[root@master data]# ceph-deploy osd create --data /dev/sdb node2
# 查看OSD状态
[root@master data]# ceph-deploy osd list master node1 node2

4.创建ceph文件系统

[root@master data]# ceph-deploy mds create master node1 node2 
# 查看ceph当前文件系统
[root@master data]# ceph fs ls

若输出提示无文件系统或因配置文件位置问题报错,可通过以下方式解决:

export CEPH_CONF=/data/ceph.conf
export CEPH_CLIENT_ADMIN_KEYRING=/data/ceph.client.admin.keyring
# 或直接指定配置文件
[root@master data]# ceph --conf=/data/ceph.conf --keyring=/data/ceph.client.admin.keyring fs ls
# 或复制配置文件到默认位置
[root@master data]# cp -rp./* /etc/ceph/

5.创建存储池

[root@master data]# ceph osd pool create cephfs_data 8
pool 'cephfs_data' created
[root@master data]# ceph osd pool create cephfs_metadata 8
pool 'cephfs_metadata' created

此命令创建名为cephfs_data和cephfs_metadata的存储池,每个存储池设置8个pg。pg_num取值需根据OSD数量确定,常用规则如下:

  • 少于 5 个 OSD 时,pg_num 设置为 128。
  • OSD 数量在 5 到 10 个时,pg_num 设置为 512。
  • OSD 数量在 10 到 50 个时,pg_num 设置为 4096。
  • OSD 数量大于 50 时,需理解权衡方法并自行计算 pg_num 取值,可借助 pgcalc 工具。pg_num 取值对集群行为和数据持久性影响显著。

6.创建文件系统

[root@master data]# ceph fs new liangxi cephfs_metadata cephfs_data
new fs with metadata pool 2 and data pool 1
[root@master data]# ceph fs ls
name: liangxi, metadata pool: cephfs_metadata, data pools: [cephfs_data ]

7.部署mgr

[root@master data]# ceph-deploy mgr create master node1 node2
# 查看集群状态
[root@master data]# ceph -s

若集群状态出现警告,如 “mons are allowing insecure global_id reclaim”,可通过以下命令解决:

ceph config set mon auth_allow_insecure_global_id_reclaim false

若出现 “too many PGs per OSD (320> max 300)” 警告,可在配置文件中加入:

mon_pg_warn_max_per_osd = 1000 

然后重启守护进程:

systemctl restart ceph - mon.target 

再次查看状态,确保集群健康:

[root@master data]# ceph - s

8.查看ceph守护进程状态

[root@master data]#  systemctl status ceph - osd.target

原创文章,作者:运维侠,如若转载,请注明出处:https://www.yunweixia.com/knowledgebase/ceph-distributed-storage-deployment-guide-environment-to-install.html

(0)
运维侠的头像运维侠共建用户
上一篇 2025年8月20日 18:11
下一篇 2025年8月22日 18:11

相关推荐

发表回复

登录后才能评论